Updates for static analysis

This commit is contained in:
David Bomba 2023-08-06 12:20:18 +10:00
parent 3766a67ec1
commit fab3b30b38
16 changed files with 47 additions and 44 deletions

View File

@ -27,6 +27,7 @@ use App\Services\Subscription\SubscriptionService;
use App\Utils\Traits\MakesDates; use App\Utils\Traits\MakesDates;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
use Illuminate\Contracts\View\Factory; use Illuminate\Contracts\View\Factory;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Http\RedirectResponse; use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\View\View; use Illuminate\View\View;
@ -167,16 +168,19 @@ class PaymentController extends Controller
$payment = $payment->service()->applyCredits($payment_hash)->save(); $payment = $payment->service()->applyCredits($payment_hash)->save();
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Invoice> $invoices */
$invoices = Invoice::whereIn('id', $this->transformKeys(array_column($payment_hash->invoices(), 'invoice_id'))); $invoices = Invoice::whereIn('id', $this->transformKeys(array_column($payment_hash->invoices(), 'invoice_id')));
$invoices->each(function ($i) { $invoices->each(function ($invoice) {
$i->is_proforma = false; /** @var \App\Models\Invoice $invoice **/
$i->saveQuietly(); $invoice->is_proforma = false;
$invoice->saveQuietly();
}); });
event('eloquent.created: App\Models\Payment', $payment); event('eloquent.created: App\Models\Payment', $payment);
if ($invoices->sum('balance') > 0) { if ($invoices->sum('balance') > 0) {
/** @var \App\Models\Invoice $invoice **/
$invoice = $invoices->first(); $invoice = $invoices->first();
return redirect()->route('client.invoice.show', ['invoice' => $invoice->hashed_id, 'hash' => $request->input('hash')]); return redirect()->route('client.invoice.show', ['invoice' => $invoice->hashed_id, 'hash' => $request->input('hash')]);

View File

@ -168,7 +168,8 @@ class SendRecurring implements ShouldQueue
private function createRecurringInvitations($invoice) :Invoice private function createRecurringInvitations($invoice) :Invoice
{ {
if ($this->recurring_invoice->invitations->count() == 0) { if ($this->recurring_invoice->invitations->count() == 0) {
$this->recurring_invoice = $this->recurring_invoice->service()->createInvitations()->save(); $this->recurring_invoice->service()->createInvitations()->save();
$this->recurring_invoice = $this->recurring_invoice->fresh();
} }
$this->recurring_invoice->invitations->each(function ($recurring_invitation) use ($invoice) { $this->recurring_invoice->invitations->each(function ($recurring_invitation) use ($invoice) {
@ -195,18 +196,4 @@ class SendRecurring implements ShouldQueue
nlog(print_r($exception->getMessage(), 1)); nlog(print_r($exception->getMessage(), 1));
} }
} }
/**
*
* 1/8/2022
*
* Improvements here include moving the emailentity and autobilling into the queue.
*
* Further improvements could using the CompanyRecurringCron.php stub which divides
* the recurring invoices into companies and spins them off into their own queue to
* improve parallel processing.
*
* Need to be careful we do not overload redis and OOM.
*/

View File

@ -20,7 +20,7 @@ use Illuminate\Database\Eloquent\Model;
* @property string $hash * @property string $hash
* @property string $fee_total * @property string $fee_total
* @property int|null $fee_invoice_id * @property int|null $fee_invoice_id
* @property object|array $data * @property mixed $data
* @property int|null $payment_id * @property int|null $payment_id
* @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at * @property \Illuminate\Support\Carbon|null $updated_at

View File

@ -106,7 +106,7 @@ use Illuminate\Support\Facades\Storage;
* @property-read int|null $payments_count * @property-read int|null $payments_count
* @property-read \App\Models\Project|null $project * @property-read \App\Models\Project|null $project
* @property-read \App\Models\User $user * @property-read \App\Models\User $user
* @property-read \App\Models\Vendor|null $vendor * @property \App\Models\Vendor|null $vendor
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel company() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel company()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel exclude($columns) * @method static \Illuminate\Database\Eloquent\Builder|BaseModel exclude($columns)
* @method static \Database\Factories\PurchaseOrderFactory factory($count = null, $state = []) * @method static \Database\Factories\PurchaseOrderFactory factory($count = null, $state = [])

View File

@ -82,6 +82,8 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
* @property-read int|null $notifications_count * @property-read int|null $notifications_count
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyToken> $tokens * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CompanyToken> $tokens
* @property-read int|null $tokens_count * @property-read int|null $tokens_count
* @property \App\Models\CompanyToken $token
* @property int $company_id
* @method static \Database\Factories\UserFactory factory($count = null, $state = []) * @method static \Database\Factories\UserFactory factory($count = null, $state = [])
* @method static \Illuminate\Database\Eloquent\Builder|User filter(\App\Filters\QueryFilters $filters) * @method static \Illuminate\Database\Eloquent\Builder|User filter(\App\Filters\QueryFilters $filters)
* @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery()

View File

@ -74,9 +74,6 @@ class CheckoutComPaymentDriver extends BaseDriver
*/ */
public $gateway; public $gateway;
/**
* @var
*/
public $payment_method; //the gateway type id public $payment_method; //the gateway type id
public static $methods = [ public static $methods = [
@ -178,7 +175,7 @@ class CheckoutComPaymentDriver extends BaseDriver
/** /**
* Process the payment response * Process the payment response
* *
* @param Request $request The payment request * @param \Illuminate\Http\Request $request The payment request
* @return \Illuminate\View\View * @return \Illuminate\View\View
*/ */
public function processPaymentResponse($request) public function processPaymentResponse($request)

View File

@ -616,7 +616,7 @@ class PdfBuilder
/** /**
* Formats the line items for display. * Formats the line items for display.
* *
* @param mixed $items * @param array<\App\DataMapper\InvoiceItem> $items
* @param string $table_type * @param string $table_type
* *
* @return array * @return array
@ -954,7 +954,7 @@ class PdfBuilder
* Performs a variable check to ensure * Performs a variable check to ensure
* the variable exists * the variable exists
* *
* @param string $variables * @param string $variable
* @return bool * @return bool
* *
*/ */
@ -1468,7 +1468,7 @@ class PdfBuilder
* Passes an array of items by reference * Passes an array of items by reference
* and performs a nl2br * and performs a nl2br
* *
* @param array $variables * @param array $items
* @return void * @return void
* *
*/ */

View File

@ -103,26 +103,31 @@ class PdfMock
switch ($this->request['entity_type']) { switch ($this->request['entity_type']) {
case 'invoice': case 'invoice':
/** @var \App\Models\Invoice | \App\Models\Credit | \App\Models\Quote $entity */
$entity = Invoice::factory()->make(); $entity = Invoice::factory()->make();
$entity->client = Client::factory()->make(['settings' => $settings]); $entity->client = Client::factory()->make(['settings' => $settings]);
$entity->invitation = InvoiceInvitation::factory()->make(); $entity->invitation = InvoiceInvitation::factory()->make();
break; break;
case 'quote': case 'quote':
/** @var \App\Models\Invoice | \App\Models\Credit | \App\Models\Quote $entity */
$entity = Quote::factory()->make(); $entity = Quote::factory()->make();
$entity->client = Client::factory()->make(['settings' => $settings]); $entity->client = Client::factory()->make(['settings' => $settings]);
$entity->invitation = QuoteInvitation::factory()->make(); $entity->invitation = QuoteInvitation::factory()->make();
break; break;
case 'credit': case 'credit':
/** @var \App\Models\Invoice | \App\Models\Credit | \App\Models\Quote $entity */
$entity = Credit::factory()->make(); $entity = Credit::factory()->make();
$entity->client = Client::factory()->make(['settings' => $settings]); $entity->client = Client::factory()->make(['settings' => $settings]);
$entity->invitation = CreditInvitation::factory()->make(); $entity->invitation = CreditInvitation::factory()->make();
break; break;
case 'purchase_order': case 'purchase_order':
/** @var \App\Models\Invoice | \App\Models\Credit | \App\Models\Quote $entity */
$entity = PurchaseOrder::factory()->make(); $entity = PurchaseOrder::factory()->make();
$entity->client = Client::factory()->make(['settings' => $settings]); $entity->client = Client::factory()->make(['settings' => $settings]);
$entity->invitation = PurchaseOrderInvitation::factory()->make(); $entity->invitation = PurchaseOrderInvitation::factory()->make();
break; break;
case PurchaseOrder::class: case PurchaseOrder::class:
/** @var \App\Models\PurchaseOrder $entity */
$entity = PurchaseOrder::factory()->make(); $entity = PurchaseOrder::factory()->make();
$entity->invitation = PurchaseOrderInvitation::factory()->make(); $entity->invitation = PurchaseOrderInvitation::factory()->make();
$entity->vendor = Vendor::factory()->make(); $entity->vendor = Vendor::factory()->make();

View File

@ -42,7 +42,7 @@ class StubBuilder
public $entity_type; public $entity_type;
public mixed $recipient; public \App\Models\Client | \App\Models\Vendor $recipient;
public mixed $contact; public mixed $contact;

View File

@ -27,6 +27,7 @@ class UpdatePrice extends AbstractService
foreach ($line_items as $key => $line_item) { foreach ($line_items as $key => $line_item) {
/** @var \App\Models\Product $product **/
$product = Product::where('company_id', $this->recurring_invoice->company_id) $product = Product::where('company_id', $this->recurring_invoice->company_id)
->where('product_key', $line_item->product_key) ->where('product_key', $line_item->product_key)
->where('is_deleted', 0) ->where('is_deleted', 0)

View File

@ -11,15 +11,16 @@
namespace App\Transformers; namespace App\Transformers;
use App\Models\Client;
use App\Models\Vendor; use App\Models\Vendor;
use App\Models\Expense; use App\Models\Expense;
use App\Models\Invoice; use App\Models\Invoice;
use App\Models\ExpenseCategory;
use App\Transformers\ExpenseCategoryTransformer;
use App\Models\Document; use App\Models\Document;
use App\Models\ExpenseCategory;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
use League\Fractal\Resource\Item; use League\Fractal\Resource\Item;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use App\Transformers\ExpenseCategoryTransformer;
/** /**
* class ExpenseTransformer. * class ExpenseTransformer.

View File

@ -11,10 +11,12 @@
namespace App\Transformers; namespace App\Transformers;
use App\Models\PurchaseOrder;
use App\Models\PurchaseOrderInvitation;
use App\Models\Vendor; use App\Models\Vendor;
use App\Models\Expense;
use App\Models\Document;
use App\Models\PurchaseOrder;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
use App\Models\PurchaseOrderInvitation;
class PurchaseOrderTransformer extends EntityTransformer class PurchaseOrderTransformer extends EntityTransformer
{ {

View File

@ -11,10 +11,11 @@
namespace App\Transformers; namespace App\Transformers;
use App\Models\Activity;
use App\Models\Backup;
use App\Models\Document;
use App\Models\Quote; use App\Models\Quote;
use App\Models\Backup;
use App\Models\Client;
use App\Models\Activity;
use App\Models\Document;
use App\Models\QuoteInvitation; use App\Models\QuoteInvitation;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
use League\Fractal\Resource\Item; use League\Fractal\Resource\Item;

View File

@ -11,11 +11,13 @@
namespace App\Transformers; namespace App\Transformers;
use App\Models\Client;
use App\Models\Vendor;
use App\Models\Document; use App\Models\Document;
use App\Models\RecurringExpense;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
use Illuminate\Database\Eloquent\SoftDeletes; use App\Models\RecurringExpense;
use League\Fractal\Resource\Item; use League\Fractal\Resource\Item;
use Illuminate\Database\Eloquent\SoftDeletes;
/** /**
* class RecurringExpenseTransformer. * class RecurringExpenseTransformer.

View File

@ -11,9 +11,12 @@
namespace App\Transformers; namespace App\Transformers;
use App\Models\Document;
use App\Models\Project;
use App\Models\Task; use App\Models\Task;
use App\Models\User;
use App\Models\Client;
use App\Models\Invoice;
use App\Models\Project;
use App\Models\Document;
use App\Models\TaskStatus; use App\Models\TaskStatus;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
use League\Fractal\Resource\Item; use League\Fractal\Resource\Item;

View File

@ -45,15 +45,13 @@ trait MakesReminders
public function calculateTemplate(string $entity_string): string public function calculateTemplate(string $entity_string): string
{ {
/** @var \App\Models\Invoice | \App\Models\Quote | \App\Models\RecurringInvoice | \App\Models\Credit $this **/ /** @var \App\Models\Invoice | \App\Models\Quote | \App\Models\RecurringInvoice | \App\Models\Credit $this **/
$client = $this->client; $client = $this->client;
if ($entity_string != 'invoice') { if ($entity_string != 'invoice') {
return $entity_string; return $entity_string;
} }
//if the invoice
if ($this->inReminderWindow( if ($this->inReminderWindow(
$client->getSetting('schedule_reminder1'), $client->getSetting('schedule_reminder1'),
$client->getSetting('num_days_reminder1') $client->getSetting('num_days_reminder1')