SetStartStatus();
//Setup helper classes
$hFinances = new FinanceHelper();
$sHelper = new StructureTaxHelper();
$start = Carbon::now()->startOfMonth()->subMonth();
$end = Carbon::now()->endOfMOnth()->subMonth();
$end->hour = 23;
$end->minute = 59;
$end->second = 59;
//Get the set of corporations from the structure table
$corps = CorpStructure::select('corporation_id')->groupBy('corporation_id')->get();
$this->line('Got all of the corps with markets.' . sizeof($corps));
foreach($corps as $corp) {
$finalTaxes = $sHelper->GetTaxes($corp->corporation_id, 'Market', $start, $end);
if($finalTaxes < 0.00) {
$finalTaxes = 0.00;
}
$finalTaxes = number_format($finalTaxes, 2, '.', ',');
//Get the info about the structures from the database
$info = CorpStructure::where(['corporation_id' => $corp->corporation_id])->first();
$character = UserToCorporation::where(['character_id' => $info->character_id])->first();
//Store the value in the database
$bill = new MonthlyMarketTax;
$bill->character_id = $info->character_id;
$bill->character_name = $character->character_name;
$bill->corporation_id = $corp->corporation_id;
$bill->corporation_name = $character->corporation_name;
$bill->tax_owed = $finalTaxes;
$bill->month = $start->month;
$bill->year = $start->year;
$bill->save();
//Retrieve the token for main character to send mails from
$token = EsiToken::where(['character_id' => 93738489])->first();
//Create a new esi container and authentication
$config = config('esi');
$authentication = new EsiAuthentication([
'client_id' => $config['client_id'],
'secret' => $config['secret'],
'refresh_token' => $token->refresh_token,
]);
$esi = new Eseye($authentication);
//Send a mail out with the bill
$subject = 'Market Taxes Owed';
$body = 'Year ' . $start->year . ' ' .
'Month: ' .
$start->month .
'
Market Taxes Owed: ' .
$finalTaxes .
'
Please remit to Spatial Forces';
try {
$this->line('Attemping to send the mail.');
$esi->setBody(['\"approved_cost\": 0, \"body\": \"Test\", \"recipients\": [ { \"recipient_id\": 92626011, \"recipient_type\": \"character\" } ], \"subject\": \"Test\"'])
//$esi->setBody([
// 'approved_cost' => 50000,
// 'body' => $body,
// 'recipients' => [
// 'recipient_id' => (int)$info->character_id,
// 'recipient_type' => 'character',
// ],
// 'subject' => $subject,])
->invoke('post', '/characters/{character_id}/mail/', [
'character_id'=> 93738489,
]);
$this->line('Mail sent.');
} catch(RequestFailedException $e) {
$this->line('Error is ' . $e);
}
}
//Mark the job as finished
$task->SetStopStatus();
}
}