removed structure taxes from program
This commit is contained in:
@@ -1,106 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Console\Commands;
|
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use DB;
|
|
||||||
|
|
||||||
//Jobs
|
|
||||||
use App\Jobs\SendEveMailJob;
|
|
||||||
|
|
||||||
//Libraries
|
|
||||||
use Commands\Library\CommandHelper;
|
|
||||||
use App\Library\Finances\Helper\FinanceHelper;
|
|
||||||
use App\Library\Structures\StructureTaxHelper;
|
|
||||||
use App\Library\Esi\Esi;
|
|
||||||
|
|
||||||
//Models
|
|
||||||
use App\Models\Market\MonthlyMarketTax;
|
|
||||||
use App\Models\ScheduledTask\ScheduleJob;
|
|
||||||
use App\Models\Corporation\CorpStructure;
|
|
||||||
use App\Models\User\UserToCorporation;
|
|
||||||
use App\Models\Jobs\JobSendEveMail;
|
|
||||||
|
|
||||||
class CalculateMarketTaxCommand extends Command
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The name and signature of the console command.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $signature = 'services:CalculateMarketTax';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The console command description.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $description = 'Calculate the market taxes owed to the holding corporation and store in the database.';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 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) {
|
|
||||||
if($corp->corporation_id != 98287666) {
|
|
||||||
$finalTaxes = $sHelper->GetTaxes($corp->corporation_id, 'Market', $start, $end);
|
|
||||||
if($finalTaxes < 0.00) {
|
|
||||||
$finalTaxes = 0.00;
|
|
||||||
}
|
|
||||||
|
|
||||||
//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();
|
|
||||||
|
|
||||||
$mail = new JobSendEveMail;
|
|
||||||
$mail->sender = 93738489;
|
|
||||||
$mail->subject = 'Market Taxes Owed';
|
|
||||||
$mail->body = 'Year ' . $start->year . ' ' .
|
|
||||||
'Month: ' .
|
|
||||||
$start->month .
|
|
||||||
'<br>Market Taxes Owed: ' .
|
|
||||||
number_format($finalTaxes, 2, '.', ',') .
|
|
||||||
'<br>Please remit to Spatial Forces';
|
|
||||||
$mail->recipient = (int)$info->character_id;
|
|
||||||
$mail->recipient_type = 'character';
|
|
||||||
SendEveMailJob::dispatch($mail)->onQueue('default');
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//Mark the job as finished
|
|
||||||
$task->SetStopStatus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
<?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)->onQueue('journal');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Mark the job as finished
|
|
||||||
$task->SetStopStatus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -30,9 +30,6 @@ class Kernel extends ConsoleKernel
|
|||||||
*/
|
*/
|
||||||
protected function schedule(Schedule $schedule)
|
protected function schedule(Schedule $schedule)
|
||||||
{
|
{
|
||||||
$schedule->command('services:CorpJournal')
|
|
||||||
->hourly()
|
|
||||||
->withoutOverlapping();
|
|
||||||
$schedule->command('services:HoldingJournal')
|
$schedule->command('services:HoldingJournal')
|
||||||
->hourly()
|
->hourly()
|
||||||
->withoutOverlapping();
|
->withoutOverlapping();
|
||||||
@@ -42,9 +39,6 @@ class Kernel extends ConsoleKernel
|
|||||||
$schedule->command('services:GetCorps')
|
$schedule->command('services:GetCorps')
|
||||||
->monthlyOn(1, '09:00')
|
->monthlyOn(1, '09:00')
|
||||||
->withoutOverlapping();
|
->withoutOverlapping();
|
||||||
$schedule->command('services:CalculateMarketTax')
|
|
||||||
->monthlyOn(1, '08:00')
|
|
||||||
->withoutOverlapping();
|
|
||||||
$schedule->command('services:MoonMailer')
|
$schedule->command('services:MoonMailer')
|
||||||
->monthlyOn(1, '00:01')
|
->monthlyOn(1, '00:01')
|
||||||
->withoutOverlapping();
|
->withoutOverlapping();
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Structures;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Auth;
|
|
||||||
use DB;
|
|
||||||
|
|
||||||
use App\Models\Corporation\CorpStructure;
|
|
||||||
use App\Models\Corporation\CorpTaxRatio;
|
|
||||||
use App\Library\Esi\Esi;
|
|
||||||
|
|
||||||
class RegisterStructureController extends Controller
|
|
||||||
{
|
|
||||||
public function __construct() {
|
|
||||||
$this->middleware('auth');
|
|
||||||
$this->middleware('role:User');
|
|
||||||
$this->middleware('permission:structure.operator');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function displayRegisterStructure() {
|
|
||||||
//Check to see if the user has the read corp journal esi scope before allowing to register a structure
|
|
||||||
if(Auth()->user()->hasEsiScope('esi-wallet.read_corporation_wallets.v1')) {
|
|
||||||
return view('structures.register.register');
|
|
||||||
} else {
|
|
||||||
return view('dashboard')->with('error', 'You need to setup your esi scope for read corporation wallets');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function storeStructure(Request $request) {
|
|
||||||
$this->validate($request, [
|
|
||||||
'system' => 'required',
|
|
||||||
'structure_name' => 'required',
|
|
||||||
'tax' => 'required',
|
|
||||||
'structure_type' => 'required',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$eHelper = new Esi;
|
|
||||||
|
|
||||||
$tax = floatval($request->tax);
|
|
||||||
|
|
||||||
$structure = new CorpStructure();
|
|
||||||
$structure->character_id = Auth::user()->character_id;
|
|
||||||
$structure->corporation_id = $eHelper->FindCorporationId(Auth::user()->character_id);
|
|
||||||
$structure->corporation_name = $eHelper->FindCorporationName(Auth::user()->character_id);
|
|
||||||
$structure->region = $request->region;
|
|
||||||
$structure->system = $request->system;
|
|
||||||
$structure->structure_name = $request->structure_name;
|
|
||||||
$structure->structure_type = $request->structure_type;
|
|
||||||
$structure->save();
|
|
||||||
|
|
||||||
//Return the view and the message of user updated
|
|
||||||
return redirect('/dashboard')->with('success', 'Structure Added to Database');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Structures;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
class StructureAdminController extends Controller
|
|
||||||
{
|
|
||||||
public function __construct() {
|
|
||||||
$this->middleware('role:Admin');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function displayDashboard() {
|
|
||||||
return view('structures.admin.dashboard');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function storeTaxRatio(Request $request) {
|
|
||||||
$this->validate($request, [
|
|
||||||
'corpId',
|
|
||||||
'corporation',
|
|
||||||
'type',
|
|
||||||
'ratio',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$ratio = new CorpTaxRatio;
|
|
||||||
$ratio->corporation_id = $request->corpId;
|
|
||||||
$ratio->corporation_name = $request->corporation;
|
|
||||||
$ratio->structure_type = $request->type;
|
|
||||||
$ratio->ratio = $request->ratio;
|
|
||||||
$ratio->save();
|
|
||||||
|
|
||||||
return redirect('structure.admin.dashboard');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function updateTaxRatio(Request $request) {
|
|
||||||
$this->validate($request, [
|
|
||||||
'corporation',
|
|
||||||
'type',
|
|
||||||
'ratio',
|
|
||||||
]);
|
|
||||||
|
|
||||||
CorpTaxRatio::where([
|
|
||||||
'corporation_name' => $request->corporation,
|
|
||||||
'structure_type' => $request->type,
|
|
||||||
])->update([
|
|
||||||
'ratio' => $request->ratio,
|
|
||||||
]);
|
|
||||||
|
|
||||||
return redirect('/structure/admin/dashboard')->with('success', 'Tax Ratio updated for structure type: ' . $request->type . ' and corporation: ' . $request->corporation);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function displayTaxRatios() {
|
|
||||||
$taxRatios = CorpTaxRation::all();
|
|
||||||
|
|
||||||
return view('structure.admin.taxratios')->with('structures', $structures);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Structures;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
|
|
||||||
use Auth;
|
|
||||||
use DB;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
|
|
||||||
use App\Library\Structures\StructureTaxHelper;
|
|
||||||
use App\Library\Esi\Esi;
|
|
||||||
use App\Library\Lookups\LookupHelper;
|
|
||||||
|
|
||||||
use App\User;
|
|
||||||
use App\Models\User\UserRole;
|
|
||||||
use App\Models\User\UserPermission;
|
|
||||||
use App\Models\Corporation\CorpStructure;
|
|
||||||
use App\Models\Finances\StructureIndustryTaxJournal;
|
|
||||||
use App\Models\Esi\EsiToken;
|
|
||||||
|
|
||||||
use Seat\Eseye\Containers\EsiAuthentication;
|
|
||||||
use Seat\Eseye\Eseye;
|
|
||||||
use Seat\Eseye\Exceptions\RequestFailedException;
|
|
||||||
|
|
||||||
class StructureController extends Controller
|
|
||||||
{
|
|
||||||
public function __construct() {
|
|
||||||
$this->middleware('auth');
|
|
||||||
$this->middleware('role:User');
|
|
||||||
$this->middleware('permission:structure.operator');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function chooseCorpTaxes() {
|
|
||||||
$this->middleware('role:Admin');
|
|
||||||
|
|
||||||
$corps = CorpStructure::pluck('corporation_name', 'corporation_id');
|
|
||||||
return view('structures.admin.choosecorporation')->with('corps', $corps);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function displayCorpTaxes(Request $request) {
|
|
||||||
$this->middleware('role:Admin');
|
|
||||||
|
|
||||||
$corpId = $request->corpId;
|
|
||||||
$months = 3;
|
|
||||||
|
|
||||||
//Declare the structure tax helper class
|
|
||||||
$sHelper = new StructureTaxHelper();
|
|
||||||
|
|
||||||
//Get the dates we are working with
|
|
||||||
$dates = $sHelper->GetTimeFrameInMonths($months);
|
|
||||||
|
|
||||||
foreach($dates as $date) {
|
|
||||||
$totalTaxes[] = [
|
|
||||||
'date' => $date['start']->toFormattedDateString(),
|
|
||||||
'tax' => number_format($sHelper->GetTaxes($corpId, 'Market', $date['start'], $date['end']), 2, '.', ','),
|
|
||||||
'revenue' => number_format($sHelper->GetRevenue($corpId, 'Market', $date['start'], $date['end']), 2, '.', ',')
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
//Return the view with the data passed to it
|
|
||||||
return view('structures.admin.choosecorptaxes')->with('totalTaxes', $totalTaxes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function displayTaxes() {
|
|
||||||
//Declare new Lookup helper
|
|
||||||
$helper = new LookupHelper();
|
|
||||||
|
|
||||||
//Declare the structure tax helper class
|
|
||||||
$sHelper = new StructureTaxHelper();
|
|
||||||
|
|
||||||
$months = 3;
|
|
||||||
$totalTaxes = array();
|
|
||||||
|
|
||||||
//Get the character's corporation from the lookup table or esi
|
|
||||||
$corpId = $helper->LookupCharacter(Auth::user()->character_id);
|
|
||||||
|
|
||||||
|
|
||||||
//Get the dates we are working with
|
|
||||||
$dates = $sHelper->GetTimeFrameInMonths($months);
|
|
||||||
|
|
||||||
//Get the market taxes for this month from the database
|
|
||||||
foreach($dates as $date) {
|
|
||||||
$totalTaxes[] = [
|
|
||||||
'date' => $date['start']->toFormattedDateString(),
|
|
||||||
'tax' => number_format($sHelper->GetTaxes($corpId, 'Market', $date['start'], $date['end']), 2, '.', ','),
|
|
||||||
'revenue' => number_format($sHelper->GetRevenue($corpId, 'Market', $date['start'], $date['end']), 2, '.', ',')
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('structures.user.taxes')->with('totalTaxes', $totalTaxes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function displayTaxHistory(Request $request) {
|
|
||||||
//Declare new Lookup helper
|
|
||||||
$helper = new LookupHelper();
|
|
||||||
|
|
||||||
//Get the months from the request
|
|
||||||
$months = $request->months;
|
|
||||||
|
|
||||||
//Get the character's corporation from the lookup table or esi
|
|
||||||
$corpId = $helper->LookupCharacter(Auth::user()->character_id);
|
|
||||||
|
|
||||||
//Declare the structure tax helper class
|
|
||||||
$sHelper = new StructureTaxHelper();
|
|
||||||
|
|
||||||
//Get the dates we are working with
|
|
||||||
$dates = $sHelper->GetTimeFrameInMonths($months);
|
|
||||||
|
|
||||||
//Build the array for displaying the data on the view
|
|
||||||
$totalTaxes = array();
|
|
||||||
|
|
||||||
foreach($dates as $date) {
|
|
||||||
$totalTaxes[] = [
|
|
||||||
'date' => $date['start']->toFormattedDateString(),
|
|
||||||
'tax' => number_format($sHelper->GetTaxes($corpId, 'Market', $date['start'], $date['end']), 2, '.', ','),
|
|
||||||
'revenue' => number_format($sHelper->GetRevenue($corpId, 'Market', $date['start'], $date['end']), 2, '.', ',')
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
return view('structures.user.taxhistory')->with(compact('totalTaxes', 'months'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,219 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Library\Structures;
|
|
||||||
|
|
||||||
use DB;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
|
|
||||||
use App\User;
|
|
||||||
|
|
||||||
use App\Models\User\UserRole;
|
|
||||||
use App\Models\User\UserPermission;
|
|
||||||
|
|
||||||
use App\Models\Corporation\CorpStructure;
|
|
||||||
use App\Models\Corporation\CorpTaxRatio;
|
|
||||||
|
|
||||||
use App\Models\Finances\CorpMarketJournal;
|
|
||||||
use App\Models\Finances\ReprocessingTaxJournal;
|
|
||||||
use App\Models\Finances\StructureIndustryTaxJournal;
|
|
||||||
|
|
||||||
class StructureTaxHelper {
|
|
||||||
private $corpId;
|
|
||||||
private $refType;
|
|
||||||
private $start;
|
|
||||||
private $end;
|
|
||||||
|
|
||||||
public function __construct($corp = null, $ref = null, $st = null, $en = null) {
|
|
||||||
$this->corpId = $corp;
|
|
||||||
$this->refType = $ref;
|
|
||||||
$this->start = $st;
|
|
||||||
$this->end = $en;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function GetTaxes($corpId, $refType, $start, $end) {
|
|
||||||
$taxOwed = 0.00;
|
|
||||||
//Get the number of structures of a certain type
|
|
||||||
$count = $this->GetStructureCount($corpId, $refType);
|
|
||||||
|
|
||||||
//Calculate the fuel cost for one type of structure
|
|
||||||
$fuelCost = $this->CalculateFuelBlockCost($refType);
|
|
||||||
|
|
||||||
//Get the ratio from the table to be divided against the tax to find the
|
|
||||||
//acutal tax owed to the alliance. Revenue will be a separate function
|
|
||||||
$ratio = CorpTaxRatio::where([
|
|
||||||
'corporation_id' => $corpId,
|
|
||||||
'structure_type' => $refType,
|
|
||||||
])->get(['ratio']);
|
|
||||||
$ratio = $ratio[0]->ratio;
|
|
||||||
|
|
||||||
//Get the total taxes produced by the structure(s) over a given set of dates
|
|
||||||
$revenue = $this->GetRevenue($corpId, $refType, $start, $end);
|
|
||||||
|
|
||||||
//Calculate the total fuel block cost
|
|
||||||
$totalFuelCost = $fuelCost * $count;
|
|
||||||
|
|
||||||
//Calculate the total revenue minus the fuel block cost
|
|
||||||
$totalRevenue = $revenue - $totalFuelCost;
|
|
||||||
|
|
||||||
//Check to see if the revenue is greater than zero to avoid division by zero error.
|
|
||||||
//Then calculate the tax owed which is revenue divided by ratio previously calcualted.
|
|
||||||
if($totalRevenue > 0.00) {
|
|
||||||
$taxOwed = $totalRevenue / $ratio;
|
|
||||||
} else {
|
|
||||||
$taxOwed = 0.00;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Return the amount
|
|
||||||
return $taxOwed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function GetIndustryRevenue($start, $end) {
|
|
||||||
$revenue = 0.00;
|
|
||||||
|
|
||||||
$revenue = StructureIndustryTaxJournal::where(['ref_type' => 'facility_industry_tax', 'second_party_id' => '98287666'])
|
|
||||||
->whereBetween('date', [$start, $end])
|
|
||||||
->sum('amount');
|
|
||||||
|
|
||||||
return $revenue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function GetRevenue($corpId, $refType, $start, $end) {
|
|
||||||
$revenue = 0.00;
|
|
||||||
if($refType == 'Market') {
|
|
||||||
//Get the revenue from the corp_market_journals table and add it up.
|
|
||||||
$revenue = CorpMarketJournal::where(['ref_type' => 'brokers_fee', 'corporation_id' => $corpId, 'second_party_id' => $corpId])
|
|
||||||
->whereBetween('date', [$start, $end])
|
|
||||||
->sum('amount');
|
|
||||||
} else if($refType == 'Refinery'){
|
|
||||||
//Get the revenue from the reprocessing_tax_journal table and add it up.
|
|
||||||
$revenue = ReprocessingTaxJournal::where(['ref_type' => 'reprocessing_tax', 'corporation_id' => $corpId, 'second_party_id' => $corpId])
|
|
||||||
->whereBetween('date', [$start, $end])
|
|
||||||
->sum('amount');
|
|
||||||
} else {
|
|
||||||
//If it's not from one of the above tables, then it doesn't mean anything, so return nothing.
|
|
||||||
$revenue = 0.00;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (float)$revenue;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function CalculateTaxRatio($corpId, $overallTax, $type) {
|
|
||||||
//Get the ratio based on what was decided upon for the ratio of taxes.
|
|
||||||
//Default rate is 2.5 ratio.
|
|
||||||
|
|
||||||
|
|
||||||
//The alliance will get a ratio of the tax.
|
|
||||||
//We need to calculate the correct ratio based on structure tax,
|
|
||||||
//Then figure out what is owed to the alliance
|
|
||||||
if($type == 'Market') {
|
|
||||||
$ratioType = 2.5;
|
|
||||||
} else if($type == 'Refinery') {
|
|
||||||
$ratioType = 1.0;
|
|
||||||
} else {
|
|
||||||
$ratioType = 1.0;
|
|
||||||
}
|
|
||||||
//Calculate the ratio since we have the base percentage the alliance takes
|
|
||||||
$taxRatio = $overallTax / $ratioType;
|
|
||||||
|
|
||||||
//Return what is owed to the alliance
|
|
||||||
return $taxRatio;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function CalculateFuelBlockCost($type) {
|
|
||||||
//Calculate how many fuel blocks are used in a month by a structure type
|
|
||||||
if($type === 'Market') {
|
|
||||||
$fuelBlocks = 24*30*32;
|
|
||||||
} else if ($type === 'Refinery') {
|
|
||||||
$fuelBlocks = 24*30*8;
|
|
||||||
} else {
|
|
||||||
$fuelBlocks = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Multiply the amount of fuel blocks used by the structure by 20,000.
|
|
||||||
$cost = $fuelBlocks * 20000;
|
|
||||||
|
|
||||||
//Return to the calling function
|
|
||||||
return $cost;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function GetTimeFrame() {
|
|
||||||
$start = Carbon::now()->startOfMonth();
|
|
||||||
$end = Carbon::now()->endOfMonth();
|
|
||||||
$end->hour = 23;
|
|
||||||
$end->minute = 59;
|
|
||||||
$end->second = 59;
|
|
||||||
$startLast = new Carbon('first day of last month');
|
|
||||||
$endLast = new Carbon('last day of last month');
|
|
||||||
$endLast->hour = 23;
|
|
||||||
$endLast->minute = 59;
|
|
||||||
$endLast->second = 59;
|
|
||||||
|
|
||||||
$dates = [
|
|
||||||
'ThisMonthStart' => $start,
|
|
||||||
'ThisMonthEnd' => $end,
|
|
||||||
'LastMonthStart' => $startLast,
|
|
||||||
'LastMonthEnd' => $endLast,
|
|
||||||
];
|
|
||||||
|
|
||||||
return $dates;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a set of dates from now until the amount of months has passed
|
|
||||||
*
|
|
||||||
* @var integer
|
|
||||||
* @returns array
|
|
||||||
*/
|
|
||||||
public function GetTimeFrameInMonths($months) {
|
|
||||||
//Declare an array of dates
|
|
||||||
$dates = array();
|
|
||||||
//Setup the start of the array as the basis of our start and end dates
|
|
||||||
$start = Carbon::now()->startOfMonth();
|
|
||||||
$end = Carbon::now()->endOfMonth();
|
|
||||||
$end->hour = 23;
|
|
||||||
$end->minute = 59;
|
|
||||||
$end->second = 59;
|
|
||||||
|
|
||||||
if($months == 1) {
|
|
||||||
$dates = [
|
|
||||||
'start' => $start,
|
|
||||||
'end' => $end,
|
|
||||||
];
|
|
||||||
|
|
||||||
return $dates;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Create an array of dates
|
|
||||||
for($i = 0; $i < $months; $i++) {
|
|
||||||
if($i == 0) {
|
|
||||||
$dates[$i]['start'] = $start;
|
|
||||||
$dates[$i]['end'] = $end;
|
|
||||||
}
|
|
||||||
|
|
||||||
$start = Carbon::now()->startOfMonth()->subMonths($i);
|
|
||||||
$end = Carbon::now()->endOfMonth()->subMonths($i);
|
|
||||||
$end->hour = 23;
|
|
||||||
$end->minute = 59;
|
|
||||||
$end->second = 59;
|
|
||||||
$dates[$i]['start'] = $start;
|
|
||||||
$dates[$i]['end'] = $end;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Return the dates back to the calling function
|
|
||||||
return $dates;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function GetStructureTax($corpId, $structureType) {
|
|
||||||
$tax = CorpStructure::where(['corporation_id' => $corpId, 'structure_type' => $structureType])->avg('tax');
|
|
||||||
|
|
||||||
return (float) $tax;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function GetStructureCount($corpId, $structureType) {
|
|
||||||
$count = CorpStructure::where(['corporation_id' => $corpId, 'structure_type' => $structureType])->count();
|
|
||||||
|
|
||||||
return (int)$count;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models\Corporation;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
|
|
||||||
class CorpStructure extends Model
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Table Name
|
|
||||||
*/
|
|
||||||
protected $table = 'CorpStructures';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Timestamps
|
|
||||||
*/
|
|
||||||
public $timestamps = true;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The attributes that are mass assignable
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $fillable = [
|
|
||||||
'character_id',
|
|
||||||
'corporation_id',
|
|
||||||
'corporation_name',
|
|
||||||
'region',
|
|
||||||
'system',
|
|
||||||
'structure_name',
|
|
||||||
'structure_type',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Models\Corporation;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
|
|
||||||
class CorpTaxRatio extends Model
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Table Name
|
|
||||||
*/
|
|
||||||
protected $table = 'corp_tax_ratios';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Timestamps
|
|
||||||
*/
|
|
||||||
public $timestamps = true;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The attributes that are mass assignable
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $fillable = [
|
|
||||||
'corporation_id',
|
|
||||||
'corporation_name',
|
|
||||||
'structure_type',
|
|
||||||
'ratio',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -65,30 +65,6 @@ Route::group(['middleware' => ['auth']], function(){
|
|||||||
Route::post('/admin/add/allowedlogin', 'Dashboard\AdminController@addAllowedLogin');
|
Route::post('/admin/add/allowedlogin', 'Dashboard\AdminController@addAllowedLogin');
|
||||||
Route::post('/admin/rmoeve/allowedlogin', 'Dashboard\AdminController@removeAllowedLogin');
|
Route::post('/admin/rmoeve/allowedlogin', 'Dashboard\AdminController@removeAllowedLogin');
|
||||||
|
|
||||||
/**
|
|
||||||
* Register structure controller display pages
|
|
||||||
*/
|
|
||||||
Route::get('/structures/register', 'Structures\RegisterStructureController@displayRegisterstructure');
|
|
||||||
Route::post('/structures/register', 'Structures\RegisterStructureController@storeStructure');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Structure Admin Controller display pages
|
|
||||||
*/
|
|
||||||
Route::get('/structures/admin/dashboard', 'Structures\StructureAdminController@displayDashboard');
|
|
||||||
Route::post('/structures/admin/add/taxratio', 'Strutures\StructureAdminController@storeTaxRatio');
|
|
||||||
Route::post('/structures/admin/update/taxratio', 'Structures\StructureAdminController@updateTaxRatio');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Structure Controller display pages
|
|
||||||
* To be removed in future release. Functionality will be removed as well.
|
|
||||||
*/
|
|
||||||
Route::get('/structures/taxes/display', 'Structures\StructureController@displayTaxes');
|
|
||||||
Route::get('/structures/admin/taxes/display', 'Structures\StructureController@chooseCorpTaxes');
|
|
||||||
Route::get('/structures/admin/taxes/display/execute', 'Structures\StructureController@displayCorpTaxes');
|
|
||||||
Route::get('/structures/admin/taxes/industry', 'Structures\StructureController@displayIndustryTaxes');
|
|
||||||
Route::get('/structures/admin/taxes/reprocessing', 'Structures\StructureController@displayReprocessingTaxes');
|
|
||||||
Route::get('/structures/admin/display', 'Structures\StructureController@displayAdminPanel');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scopes Controller display pages
|
* Scopes Controller display pages
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user