SetStartStatus();
//Declare the moon calc class variable to utilize the library to update the price
$moonCalc = new MoonCalc();
//Get all of the moons from the rental list
$rentals = MoonRent::all();
//Update the price for all moon rentals before sending out the mail
foreach($rentals as $rental) {
$price = $moonCalc->SpatialMoonsOnlyGoo($rental->FirstOre, $rental->FirstQuantity, $rental->SecondOre, $rental->SecondQuantity,
$rental->ThirdOre, $rental->ThirdQuantity, $rental->FourthOre, $rental->FourthQuantity);
//Update the moon rental price
MoonRent::where([
'System' => $rental->System,
'Planet' => $rental->Planet,
'Moon' => $rental->Moon,
])->update([
'Price' => $price[$rental->Type],
]);
}
//Re-pull all of the rentals from the database
$rentals = MoonRent::all();
//Cycle through each rental and send a mail out
foreach($rentals as $rental) {
//Create the body for the mail to be sentout
$body = "Moon Rent is due for " . $rental->System . " Planet: " . $rental->Planet . " Moon: " . $rental->Moon . "
";
$body .= "The price for next month's rent is " . $rental->Price . "
";
$body .= "Please remite payment to Spatial Forces by the 1st should you continue to wish to rent the moon.
";
$body .= "Sincerely,
";
$body .= "Spatial Forces
";
//Send a mail to the contact listing for the moon
$mail = new EveMail;
$mail->sender = 93738489;
$mail->subject = "Moon Rental";
$mail->body = $body;
$mail->recipient = (int)$rental->contact;
$mail->recipient_type = 'character';
$mail->save();
//Dispatch the job and cycle to the next moon rental
SendEveMail::dispatch($mail)->delay(Carbon::now()->addseconds(15));
}
//Remove all moon rentals from the database
DB::table('moon_rents')->delete();
//Mark the job as finished
$task->SetStopStatus();
}
}