Files
w4rpservices/app/Console/Commands/corpJournal.php
2019-05-05 03:10:31 -05:00

91 lines
2.5 KiB
PHP

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use DB;
use Carbon\Carbon;
//Libraries
use Commands\Library\CommandHelper;
use App\Library\Finances\Helper\FinanceHelper;
//Jobs
use App\Jobs\ProcessWalletJournalJob;
//Models
use App\Models\Corporation\CorpStructure;
use App\Models\Jobs\JobProcessWalletJournal;
class CorpJournalCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'services:CorpJournal';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Grabs the corporation journals and deposit in db.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//Create the command helper container
$task = new CommandHelper('CorpJournal');
//Add the entry into the jobs table saying the job is starting
$task->SetStartStatus();
//Setup the Finances Container
$finance = new FinanceHelper();
//Setup an array to store corporations which have been logged so we don't keep calling the same ones. We need
//this step in order to save time during the cronjob.
$finishedCorps = array();
$corpCompleted = false;
//Get the corps with structures logged in the database
$corps = CorpStructure::select('corporation_id')->groupBy('corporation_id')->get();
//For all of the corporations, go through each structure and get wallet data
foreach($corps as $corp) {
//If the corporation isn't the holding corporation, then process the data.
//We process holding corporation data elsewhere.
if($corp->corporation_id != 98287666) {
$structure = CorpStructure::where(['corporation_id' => $corp->corporation_id])->first();
$pages = $finance->GetJournalPageCount(1, $structure->character_id);
for($i = 1; $i <= $pages; $i++) {
$job = new JobProcessWalletJournal;
$job->division = 1;
$job->charId = $structure->character_id;
$job->page = $i;
ProcessWalletJournalJob::dispatch($job);
}
}
}
//Mark the job as finished
$task->SetStopStatus();
}
}