prevented main users from being registered as alts in a strange oddity.

This commit is contained in:
2021-05-21 03:41:41 +09:00
parent 7d31892c57
commit 63a54c78e2
4 changed files with 163 additions and 31 deletions

View File

@@ -160,9 +160,14 @@ class LoginController extends Controller
* @param \Laravel\Socialite\Two\User $user
*/
private function createAlt($user, $orgCharacter) {
//Check to see if the alt is already in the database
$altCount = UserAlt::where(['character_id' => $user->id])->count();
$altCount = UserAlt::where('character_id', $user->id)->count();
if($altCount == 0) {
//Check to see if the new character being added is already a main character
$mainCount = User::where(['character_id' => $user->id])->count();
//If not already in the database, then add the new character
if($altCount == 0 && $mainCount == 0) {
//Create the new alt in the table
$newAlt = new UserAlt;
$newAlt->name = $user->getName();
@@ -175,7 +180,6 @@ class LoginController extends Controller
$newAlt->expires_in = $user->expiresIn;
$newAlt->save();
//Create the entry into the EsiToken table
//Create the entry into the EsiToken table
if(EsiToken::where(['character_id' => $user->id])->count() == 0) {
$this->SaveEsiToken($user);

View File

@@ -22,4 +22,56 @@ class TestController extends Controller
public function CharacterLookupTest(Request $request) {
}
public function DebugMiningTaxes($invoiceId) {
$invoice = array();
$ores = array();
$totalPrice = 0.00;
$body = null;
$lookup = new LookupHelper;
$config = config('esi');
$rows = Ledger::where([
'invoice_id' => $invoiceId,
])->get()->toArray();
//Taly up the item composition from each row and multiply by the quantity
if(sizeof($rows) > 0) {
foreach($rows as $row) {
if(!isset($ores[$row['type_id']])) {
$ores[$row['type_id']] = 0;
}
$ores[$row['type_id']] = $ores[$row['type_id']] + $row['quantity'];
//Add up the total price from the ledger rows for the report later
$totalPrice = $totalPrice + $row['amount'];
}
//Reduce the total price by the take percentage
$invoiceAmount = $totalPrice * $config['mining_tax'];
$invoiceAmount = round($invoiceAmount, 2);
//Get the character name from the character id
$charName = $lookup->CharacterIdToName($charId);
//Generate a unique invoice id
$invoiceId = "M" . uniqid();
//Set the due date of the invoice
$dateDue = Carbon::now()->addDays(7);
$invoiceDate = Carbon::now();
//Format the mining tax into a human readable number
$numberMiningTax = number_format(($config['mining_tax'] * 100.00), 2, ".", ",");
}
return view('test.miningtax.display')->with('rows', $rows)
->with('ores', $ores)
->with('totalPrice', $totalPrice)
->with('invoiceAmount', $invoiceAmount)
->with('charName', $charName)
->with('invoiceId', $invoiceId)
->with('dateDue' $dateDue)
->with('invoiceDate', $invoiceDate)
->with('numberMiningTax', $numberMiningTax);
}
}

View File

@@ -209,8 +209,6 @@ class SendMiningTaxesInvoices implements ShouldQueue
$mailDelay = $mailDelay + 20;
}
}
return 0;
}
private function CreateInvoice($charId, $ledgers, &$mailDelay) {
@@ -326,11 +324,7 @@ class SendMiningTaxesInvoices implements ShouldQueue
//Increase the delay for the next mail
$mailDelay += 20;
} else {
return null;
}
return 0;
}
private function LedgersWithAlts($charId) {
@@ -371,32 +365,41 @@ class SendMiningTaxesInvoices implements ShouldQueue
}
}
//If the alt count is greater than zero, let's add the alt's ledgers to the ledger array
if($altCount > 0) {
//Run through all of the alts and add the individual ledger rows to the ledger array
foreach($alts as $alt) {
$rows = Ledger::where([
'character_id' => $alt->character_id,
'invoiced' => 'No',
])->get();
//Check to make sure we aren't adding the main character twice
if($alt->character_id != $charId){
//Get the count of the ledgers to make sure something is actually there to process
$rowCount = Ledger::where([
'character_id' => $alt->character_id,
'invoiced' => 'No',
])->count();
$rowCount = Ledger::where([
'character_id' => $alt->character_id,
'invoiced' => 'No',
])->count();
//If there are rows to process, get the rows, and add to the array
if($rowCount > 0) {
//Get all of the rows
$rows = Ledger::where([
'character_id' => $alt->character_id,
'invoiced' => 'No',
])->get();
if($rowCount > 0) {
foreach($rows as $row) {
array_push($ledgers, [
'character_id' => $row->character_id,
'character_name' => $row->character_name,
'observer_id' => $row->observer_id,
'last_updated' => $row->last_updated,
'type_id' => $row->type_id,
'ore_name' => $row->ore_name,
'quantity' => $row->quantity,
'amount' => $row->amount,
'invoiced' => $row->invoiced,
'invoice_id' => $row->invoice_id,
]);
//Add all of the rows to the ledger array
foreach($rows as $row) {
array_push($ledgers, [
'character_id' => $row->character_id,
'character_name' => $row->character_name,
'observer_id' => $row->observer_id,
'last_updated' => $row->last_updated,
'type_id' => $row->type_id,
'ore_name' => $row->ore_name,
'quantity' => $row->quantity,
'amount' => $row->amount,
'invoiced' => $row->invoiced,
'invoice_id' => $row->invoice_id,
]);
}
}
}
}

View File

@@ -0,0 +1,73 @@
<?php
namespace App\Library\Helpers;
//Internal Libraries
use Log;
use Carbon\Carbon;
use Illuminate\Support\Collection;
use Illuminate\Support\Str;
//Application Library
use App\Library\Helpers\LookupHelper;
//Models
use App\Models\MiningTax\Invoice;
use App\Models\MiningTax\Ledger;
use App\Models\User\User;
use App\Models\User\UserAlt;
class MiningTaxHelper {
/**
* Private variables
*/
/**
* Constructor
*/
public function __construct() {
}
/**
* Get the main character ledgers and send back as a collection
*
* @var $charId
* @return collection $ledgers
*/
public function GetMainLedgers($charId) {
$ledgers = new Collection;
$rowCount = Ledger::where([
'character_id' => $charId,
'invoiced' => 'No',
])->count();
$rows = Ledger::where([
'character_id' => $charId,
'invoiced' => 'No',
])->get()->toArry();
if($rowCount > 0) {
foreach($rows as $row) {
$ledgers->push($row);
}
}
return $ledgers;
}
/**
* Get the alt characters ledgers and send back as a collection
*
* @var array $alts
* @return collection ledgers
*/
public function GetAltLedgers($alts) {
$ledgers = new Collection;
}
public function
}