Files
w4rpservices/app/Library/Finances/JumpBridgeTax.php
drkthunder02 f2f3e9779a Added new models for Lookup Tables
Added new Library class called LookupHelper to assist in easier access to reference tables across all classes.
Added lookup table migrations
Added chartjs package to composer, and laravel service provider
modified routes to make it easier to see what is going on rather than having different names for post things from get pages
2018-12-21 22:42:56 -06:00

130 lines
4.0 KiB
PHP

<?php
/** W4RP Services
* GNU Public License
*/
namespace App\Library\Finances;
use DB;
use Carbon\Carbon;
use App\Library\Esi;
use App\Models\Finances\JumpBridgeJournal;
use App\Models\User\UserToCorporation;
class JumpBridgeTax {
private $date;
public function __construct($days = null) {
if($days === null) {
$this->date = Carbon::now();
} else {
$this->date = Carbon::now()->subDays($days);
}
}
/**
* Function to insert journal entries into the database
*/
public function InsertJumpBridgeTax($journal, $corpId, $division) {
//Create the ESI Helper class
$esiHelper = new Esi;
//Check to see if we can find the entry in the database already.
//If we don't then add it to the database
if(!JumpBridgeJournal::where(['id' => $journal['id']])->exists()) {
$entry = new JumpBridgeJournal;
$entry->id = $journal['id'];
$entry->corporation_id = $corpId;
$entry->division = $division;
if(isset($journal['amount'])) {
$entry->amount = $journal['amount'];
}
if(isset($journal['balance'])) {
$entry->balance = $journal['balance'];
}
if(isset($journal['context_id'])) {
$entry->context_id = $journal['context_id'];
}
if(isset($journal['context_id_type'])) {
$entry->context_id_type = $journal['context_id_type'];
}
$entry->date = $esiHelper->DecodeDate($journal['date']);
$entry->description = $journal['description'];
if(isset($journal['first_party_id'])) {
$entry->first_party_id = $journal['first_party_id'];
}
if(isset($journal['reason'])) {
$entry->reason = $journal['reason'];
}
$entry->ref_type = $journal['ref_type'];
if(isset($journal['second_party_id'])) {
$entry->second_party_id = $journal['second_party_id'];
}
if(isset($journal['tax'])) {
$entry->tax = $journal['tax'];
}
if(isset($journal['tax_receiver_id'])) {
$entry->tax_receiver_id = $journal['tax_receiver_id'];
}
$entry->save();
}
}
/**
* Function to get the corporations using the jump bridge over a given time period
*/
public function CorporationUsage() {
//Make an array for corporations, and amounts
$corps = array();
$amounts = array();
//Get all of the parties which have utilized the jump bridge
$parties = DB::table('jump_bridge_journal')
->select('first_party_id')
->groupBy('first_party_id')
->whereTime('date', '>', $this->date)
->get();
//Run through each party and assign them into a corporation, then add the corporation to the corporation array if they don't
//exist in the array.
foreach($parties as $party) {
}
}
/**
* Returns the overall usage for statistics
*/
public function OverallTax() {
//Initalize the date
$dateInit = Carbon::now();
//Subtract the days from now
$date = $dateInit->subDays($days);
//Get the total usage
$usage = DB::table('jump_bridge_journal')
->select('amount')
->whereTime('date', '>', $this->date)
->sum(['amount']);
//Return the usage
return $usage;
}
/**
* Returns a specific briddge usage statistics for overall usage
*/
public function JBOverallUsage($structure) {
$usage = DB::table('jump_bridge_journal')
->select('amount')
->where('context_id', $structure)
->sum(['amount']);
return $usage;
}
}