sov bill journal

This commit is contained in:
2020-04-03 03:15:46 -05:00
parent a2673187d3
commit 06dd0669fe
11 changed files with 231 additions and 17 deletions

View File

@@ -71,6 +71,18 @@ class HoldingFinancesCommand extends Command
ProcessWalletJournalJob::dispatch($job)->onQueue('journal');
}
//Get the total pages for the journal for the sov bills from the holding corporation
$pages = $finance->GetJournalPageCount(6, $config['primary']);
//Dispatch a job for each page to process
for($i = 1; $i <= $pages; $i++) {
$job = new JobProcessWalletJournal;
$job->division = 6;
$job->charId = $config['primary'];
$job->page = $i;
ProcessWalletJournalJob::dispatch($job)->onQueue('journal');
}
//Mark the job as finished
$task->SetStopStatus();
}

View File

@@ -0,0 +1,46 @@
<?php
namespace App\Http\Controllers\Dashboard;
//Internal Library
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
use Khill\Lavacharts\Lavacharts;
use Illuminate\Support\Facades\Auth;
//Libraries
use App\Library\Taxes\TaxesHelper;
use App\Library\Wiki\WikiHelper;
use App\Library\Lookups\LookupHelper;
use App\Library\SRP\SRPHelper;
//Models
class AdminDashboardController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('role:Guest');
}
/**
* Show the administration dashboard.
*/
public function displayAdminDashboard() {
if(auth()->user()->hasRole('Admin') || auth()->user()->hasPermission('moon.admin') || auth()->user()->hasPermission('srp.admin') || auth()->user()->hasPermission('contract.admin')) {
//Do nothing and continue on
} else {
redirect('/dashboard');
}
return view('admin.dashboards.dashboard');
}
}

View File

@@ -8,6 +8,7 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Khill\Lavacharts\Lavacharts;
use Carbon\Carbon;
//Models
use App\Models\Esi\EsiScope;
@@ -30,17 +31,6 @@ class DashboardController extends Controller
$this->middleware('role:Guest');
}
/**
* Show the administration dashboard.
*/
public function displayAdminDashboard() {
if(auth()->user()->hasRole('Admin') || auth()->user()->hasPermission('moon.admin') || auth()->user()->hasPermission('srp.admin') || auth()->user()->hasPermission('contract.admin')) {
return view('admin.dashboards.dashboard');
} else {
redirect('/dashboard');
}
}
/**
* Show the application dashboard.
*

View File

@@ -30,6 +30,7 @@ use App\Library\Finances\OfficeFee;
use App\Library\Finances\PlanetProductionTax;
use App\Library\Finances\PISale;
use App\Library\Lookups\LookupHelper;
use App\Library\Finances\SovBillExpenses;
//Seat Stuff
use Seat\Eseye\Exceptions\RequestFailedException;
@@ -47,6 +48,7 @@ class FinanceHelper {
$industry = new StructureIndustryTax();
$office = new OfficeFee();
$esiHelper = new Esi();
$sovBillHelper = new SovBillExpenses();
$lookup = new LookupHelper;
//Get the ESI refresh token for the corporation to add new wallet journals into the database
@@ -113,6 +115,8 @@ class FinanceHelper {
$industry->InsertStructureIndustryTax($entry, $corpId, $division);
} else if($entry['ref_type'] == 'office_rental_fee' && $entry['second_party_id'] == 98287666) {
$office->InsertOfficeFee($entry, $corpId, $division);
} else if($entry['ref_type'] == 'infrastructure_hub_bill' && $entry['second_party_id'] == 9828766) {
$sovBillHelper->InsertSovBillExpense($entry, $corpId, $division);
}
}
}

View File

@@ -0,0 +1,63 @@
<?php
/**
* W4RP Services
* GNU Public License
*/
namespace App\Library\Finances;
//Library
use App\Library\Esi\Esi;
//Models
use App\Models\Finances\SovBillJournal;
class SovBillExpenses {
public function InsertSovBillExpense($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(!SovBillJournal::where(['id' => $journal['id']])->exists()) {
$entry = new SovBillJournal;
$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();
}
}
}
?>

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Models\Finances;
use Illuminate\Database\Eloquent\Model;
class SovBillJournal extends Model
{
/**
* Table Name
*/
protected $table = 'sov_bill_journal';
/**
* Timestamps
*/
public $timestamps = true;
/**
* The attributes that are mass assignable
*
* @var array
*/
protected $fillable = [
'id',
'corporation_id',
'division',
'amount',
'balance',
'context_id',
'context_id_type',
'date',
'description',
'first_party_id',
'reason',
'ref_type',
'second_party_id',
'tax',
'tax_receiver_id',
];
}

View File

@@ -0,0 +1,47 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateSovBillJournalTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
if(!Schema::hasTable('sov_bill_journal')) {
Schema::create('sov_bill_journal', function(Blueprint $table) {
$table->string('id')->unique();
$table->integer('corporation_id')->nullabe();
$table->integer('division')->default(0);
$table->decimal('amount', 20, 2)->nullable();
$table->decimal('balance', 20, 2)->nullable();
$table->bigInteger('context_id')->nullable();
$table->string('context_id_type')->nullable();
$table->dateTime('date')->nullabe();
$table->string('description')->nullabe();
$table->integer('first_party_id')->nullable();
$table->string('reason')->default(' ');
$table->string('ref_type')->nullabe();
$table->integer('second_party_id')->nullable();
$table->decimal('tax', 20, 2)->default(0.00);
$table->integer('tax_receiver_id')->nullable();
$table->timestamps();
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('sov_bill_journal');
}
}

View File

@@ -1,8 +1,13 @@
@extends('layouts.admin.b4')
@section('content')
<div class="container">
<h2>Admin Dashboard</h2><br>
This will eventually house statistics and financial status of the alliance.<br>
This page will house a graph at least of the financial statistics.
<div class="card">
<div class="card-header">
<h2>Admin Dashboard</h2>
</div>
<div class="card-body">
Draw a graph of income and expenses.
</div>
</div>
</div>
@endsection

View File

@@ -51,7 +51,7 @@ Route::group(['middleware' => ['auth']], function(){
Route::post('/admin/dashboard/wiki/newgroup', 'Dashboard\AdminController@insertNewWikiUserGroup');
Route::post('/admin/dashboard/wiki/purge', 'Dashboard\AdminController@purgeWikiUsers');
Route::get('/admin/dashboard/test', 'Dashboard\AdminController@displayTestAdminDashboard');
Route::get('/admin/dashboard', 'Dashboard\DashboardController@displayAdminDashboard');
Route::get('/admin/dashboard', 'Dashboard\AdminDashboardController@displayAdminDashboard');
/**
* Blacklist Controller display pages

View File

@@ -27,10 +27,11 @@ return array(
'App\\Http\\Controllers\\Contracts\\ContractController' => $baseDir . '/app/Http/Controllers/Contracts/ContractController.php',
'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\Dashboard\\AdminController' => $baseDir . '/app/Http/Controllers/Dashboard/AdminController.php',
'App\\Http\\Controllers\\Dashboard\\AdminDashboardController' => $baseDir . '/app/Http/Controllers/Dashboard/AdminDashboardController.php',
'App\\Http\\Controllers\\Dashboard\\DashboardController' => $baseDir . '/app/Http/Controllers/Dashboard/DashboardController.php',
'App\\Http\\Controllers\\Dashboard\\StatisticsController' => $baseDir . '/app/Http/Controllers/Dashboard/StatisticsController.php',
'App\\Http\\Controllers\\Flex\\FlexAdminController' => $baseDir . '/app/Http/Controllers/Flex/FlexAdminController.php',
'App\\Http\\Controllers\\Fuel\\FuelController' => $baseDir . '/app/Http/Controllers/Logistics/FuelController.php',
'App\\Http\\Controllers\\Logistics\\FuelController' => $baseDir . '/app/Http/Controllers/Logistics/FuelController.php',
'App\\Http\\Controllers\\Logistics\\StructureRequestAdminController' => $baseDir . '/app/Http/Controllers/Logistics/StructureRequestAdminController.php',
'App\\Http\\Controllers\\Logistics\\StructureRequestController' => $baseDir . '/app/Http/Controllers/Logistics/StructureRequestController.php',
'App\\Http\\Controllers\\Moons\\MoonLedgerController' => $baseDir . '/app/Http/Controllers/Moons/MoonLedgerController.php',
@@ -67,6 +68,7 @@ return array(
'App\\Library\\Finances\\PlanetProductionTax' => $baseDir . '/app/Library/Finances/PlanetProductionTax.php',
'App\\Library\\Finances\\PlayerDonation' => $baseDir . '/app/Library/Finances/PlayerDonation.php',
'App\\Library\\Finances\\ReprocessingTax' => $baseDir . '/app/Library/Finances/ReprocessingTax.php',
'App\\Library\\Finances\\SovBillExpenses' => $baseDir . '/app/Library/Finances/SovBillExpenses.php',
'App\\Library\\Finances\\StructureIndustryTax' => $baseDir . '/app/Library/Finances/StructureIndustryTax.php',
'App\\Library\\JumpBridges\\JumpBridgeHelper' => $baseDir . '/app/Library/JumpBridges/JumpBridgeHelper.php',
'App\\Library\\Lookups\\LookupHelper' => $baseDir . '/app/Library/Lookups/LookupHelper.php',
@@ -96,6 +98,7 @@ return array(
'App\\Models\\Finances\\PlanetProductionTaxJournal' => $baseDir . '/app/Models/Finances/PlanetProductionTaxJournal.php',
'App\\Models\\Finances\\PlayerDonationJournal' => $baseDir . '/app/Models/Finances/PlayerDonationJournal.php',
'App\\Models\\Finances\\ReprocessingTaxJournal' => $baseDir . '/app/Models/Finances/ReprocessingTaxJournal.php',
'App\\Models\\Finances\\SovBillJournal' => $baseDir . '/app/Models/Finances/SovBillJournal.php',
'App\\Models\\Finances\\StructureIndustryTaxJournal' => $baseDir . '/app/Models/Finances/StructureIndustryTaxJournal.php',
'App\\Models\\Flex\\FlexStructure' => $baseDir . '/app/Models/Flex/FlexStructure.php',
'App\\Models\\Jobs\\JobProcessAsset' => $baseDir . '/app/Models/Jobs/JobProcessAsset.php',

View File

@@ -491,10 +491,11 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Http\\Controllers\\Contracts\\ContractController' => __DIR__ . '/../..' . '/app/Http/Controllers/Contracts/ContractController.php',
'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\Dashboard\\AdminController' => __DIR__ . '/../..' . '/app/Http/Controllers/Dashboard/AdminController.php',
'App\\Http\\Controllers\\Dashboard\\AdminDashboardController' => __DIR__ . '/../..' . '/app/Http/Controllers/Dashboard/AdminDashboardController.php',
'App\\Http\\Controllers\\Dashboard\\DashboardController' => __DIR__ . '/../..' . '/app/Http/Controllers/Dashboard/DashboardController.php',
'App\\Http\\Controllers\\Dashboard\\StatisticsController' => __DIR__ . '/../..' . '/app/Http/Controllers/Dashboard/StatisticsController.php',
'App\\Http\\Controllers\\Flex\\FlexAdminController' => __DIR__ . '/../..' . '/app/Http/Controllers/Flex/FlexAdminController.php',
'App\\Http\\Controllers\\Fuel\\FuelController' => __DIR__ . '/../..' . '/app/Http/Controllers/Logistics/FuelController.php',
'App\\Http\\Controllers\\Logistics\\FuelController' => __DIR__ . '/../..' . '/app/Http/Controllers/Logistics/FuelController.php',
'App\\Http\\Controllers\\Logistics\\StructureRequestAdminController' => __DIR__ . '/../..' . '/app/Http/Controllers/Logistics/StructureRequestAdminController.php',
'App\\Http\\Controllers\\Logistics\\StructureRequestController' => __DIR__ . '/../..' . '/app/Http/Controllers/Logistics/StructureRequestController.php',
'App\\Http\\Controllers\\Moons\\MoonLedgerController' => __DIR__ . '/../..' . '/app/Http/Controllers/Moons/MoonLedgerController.php',
@@ -531,6 +532,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Library\\Finances\\PlanetProductionTax' => __DIR__ . '/../..' . '/app/Library/Finances/PlanetProductionTax.php',
'App\\Library\\Finances\\PlayerDonation' => __DIR__ . '/../..' . '/app/Library/Finances/PlayerDonation.php',
'App\\Library\\Finances\\ReprocessingTax' => __DIR__ . '/../..' . '/app/Library/Finances/ReprocessingTax.php',
'App\\Library\\Finances\\SovBillExpenses' => __DIR__ . '/../..' . '/app/Library/Finances/SovBillExpenses.php',
'App\\Library\\Finances\\StructureIndustryTax' => __DIR__ . '/../..' . '/app/Library/Finances/StructureIndustryTax.php',
'App\\Library\\JumpBridges\\JumpBridgeHelper' => __DIR__ . '/../..' . '/app/Library/JumpBridges/JumpBridgeHelper.php',
'App\\Library\\Lookups\\LookupHelper' => __DIR__ . '/../..' . '/app/Library/Lookups/LookupHelper.php',
@@ -560,6 +562,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
'App\\Models\\Finances\\PlanetProductionTaxJournal' => __DIR__ . '/../..' . '/app/Models/Finances/PlanetProductionTaxJournal.php',
'App\\Models\\Finances\\PlayerDonationJournal' => __DIR__ . '/../..' . '/app/Models/Finances/PlayerDonationJournal.php',
'App\\Models\\Finances\\ReprocessingTaxJournal' => __DIR__ . '/../..' . '/app/Models/Finances/ReprocessingTaxJournal.php',
'App\\Models\\Finances\\SovBillJournal' => __DIR__ . '/../..' . '/app/Models/Finances/SovBillJournal.php',
'App\\Models\\Finances\\StructureIndustryTaxJournal' => __DIR__ . '/../..' . '/app/Models/Finances/StructureIndustryTaxJournal.php',
'App\\Models\\Flex\\FlexStructure' => __DIR__ . '/../..' . '/app/Models/Flex/FlexStructure.php',
'App\\Models\\Jobs\\JobProcessAsset' => __DIR__ . '/../..' . '/app/Models/Jobs/JobProcessAsset.php',