creating the moon rental invoice verify

This commit is contained in:
2020-05-12 02:04:30 -05:00
parent 50441d6152
commit 47b0949290
3 changed files with 92 additions and 1 deletions

View File

@@ -29,6 +29,20 @@ class MoonRentalInvoiceCreate implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Timeout in seconds
*
* @var int
*/
public $timeout = 3600;
/**
* Retries
*
* @var int
*/
public $retries = 3;
/**
* Today's date
*

View File

@@ -14,11 +14,28 @@ use Log;
//App Models
use App\Models\Finances\PlayerDonationJournal;
use App\Models\MoonRentals\MoonRentalInvoice;
use App\Models\MoonRentals\MoonRentalPayment;
use App\Models\MoonRentals\MoonRent;
class MoonRentalInvoiceVerify implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Timeout in seconds
*
* @var int
*/
public $timeout = 3600;
/**
* Retries
*
* @var int
*/
public $retries = 3;
/**
* Create a new job instance.
*
@@ -36,6 +53,65 @@ class MoonRentalInvoiceVerify implements ShouldQueue
*/
public function handle()
{
//
//Create the date to look through
$date = Carbon::now()->subDays(60);
//Get the open moon rental invoices
$unpaid = MoonRentalInvoice::where([
'Paid' => 'No',
])->get();
//If there are no unpaid invoices, then return out of the job as successful
if($unpaid == null || $unpaid == false) {
return;
}
//Foreach unpaid invoice, run through them and check if there is an entry in the player journal table to verify the invoice
foreach($unpaid as $un) {
//Get everything which has a description like the invoice code.
$checkA = PlayerDonationJournal::where('description', 'like', '%' . $un->invoice_id . '%')->get();
//Get the player donations and corp transfers which have the amount we are looking for
$checkB = PlayerDonationJournal::where([
'amount' => $un->invoice_amount,
])->where('date', '>=', $date)->get();
//Check each of the checkA's for the correct description
foreach($checkA as $check) {
//Search for the sub string of the invoice id in the description
$desc = strstr($check->description, $un->invoice_id);
//If the description is found, then update the invoice.
//Create an invoice payment
if($desc == $un->invoice_id) {
//Insert a new moon rental payment once completed
MoonRentalPayment::insert([
'invoice_id' => $un->invoice_id,
'payment_amount' => $un->invoice_amount,
'reference_payment' => $check->id,
]);
//Update the invoice as paid
MoonRentalInvoice::where([
'invoice_id' => $un->invoice_id,
])->update([
'Paid' => 'Yes',
]);
//Increase the moon rental by another month
$moons = $un->rental_moons;
//Turns the moons into an array
$moons = explode(',', $moons);
foreach($moons as $moon) {
//Need to separate each moon into system, planet, and moon to update the moon rental
}
}
}
//Check each of checkB's for the invoice amount
foreach($checkB as $check) {
}
}
}
}

View File

@@ -21,6 +21,7 @@ class MoonRentalInvoice extends Model
* @var array
*/
protected $fillable = [
'invoice_id',
'character_id',
'character_name',
'corporation_id',