1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-08 12:12:48 +01:00

Static analysis

This commit is contained in:
David Bomba 2024-07-14 21:28:54 +10:00
parent 273fe4d6eb
commit d818520c73
71 changed files with 155 additions and 95 deletions

View File

@ -82,6 +82,7 @@ class ContactExport extends BaseExport
$this->csv->insertOne($this->buildHeader());
$query->cursor()->each(function ($contact) {
/** @var \App\Models\ClientContact $contact */
$this->csv->insertOne($this->buildRow($contact));
});
@ -101,6 +102,7 @@ class ContactExport extends BaseExport
$report = $query->cursor()
->map(function ($contact) {
/** @var \App\Models\ClientContact $contact */
$row = $this->buildRow($contact);
return $this->processMetaData($row, $contact);
})->toArray();

View File

@ -52,6 +52,8 @@ class CreditExport extends BaseExport
$report = $query->cursor()
->map(function ($credit) {
/** @var \App\Models\Credit $credit */
$row = $this->buildRow($credit);
return $this->processMetaData($row, $credit);
})->toArray();
@ -139,6 +141,7 @@ class CreditExport extends BaseExport
$query->cursor()
->each(function ($credit) {
/** @var \App\Models\Credit $credit */
$this->csv->insertOne($this->buildRow($credit));
});

View File

@ -54,6 +54,8 @@ class DocumentExport extends BaseExport
$report = $query->cursor()
->map(function ($document) {
/** @var \App\Models\Document $document */
$row = $this->buildRow($document);
return $this->processMetaData($row, $document);
})->toArray();
@ -99,6 +101,7 @@ class DocumentExport extends BaseExport
$query->cursor()
->each(function ($entity) {
/** @var mixed $entity */
$this->csv->insertOne($this->buildRow($entity));
});

View File

@ -52,6 +52,8 @@ class ExpenseExport extends BaseExport
$report = $query->cursor()
->map(function ($resource) {
/** @var \App\Models\Expense $resource */
$row = $this->buildRow($resource);
return $this->processMetaData($row, $resource);
})->toArray();
@ -132,6 +134,8 @@ class ExpenseExport extends BaseExport
$query->cursor()
->each(function ($expense) {
/** @var \App\Models\Expense $expense */
$this->csv->insertOne($this->buildRow($expense));
});

View File

@ -99,6 +99,8 @@ class InvoiceExport extends BaseExport
$report = $query->cursor()
->map(function ($resource) {
/** @var \App\Models\Invoice $resource */
$row = $this->buildRow($resource);
return $this->processMetaData($row, $resource);
})->toArray();
@ -119,6 +121,8 @@ class InvoiceExport extends BaseExport
$query->cursor()
->each(function ($invoice) {
/** @var \App\Models\Invoice $invoice */
$this->csv->insertOne($this->buildRow($invoice));
});

View File

@ -113,6 +113,8 @@ class InvoiceItemExport extends BaseExport
$query->cursor()
->each(function ($resource) {
/** @var \App\Models\Invoice $resource */
$this->iterateItems($resource);
foreach($this->storage_array as $row) {
@ -141,6 +143,8 @@ class InvoiceItemExport extends BaseExport
$query->cursor()
->each(function ($invoice) {
/** @var \App\Models\Invoice $invoice */
$this->iterateItems($invoice);
});

View File

@ -92,6 +92,8 @@ class PaymentExport extends BaseExport
$report = $query->cursor()
->map(function ($resource) {
/** @var \App\Models\Payment $resource */
$row = $this->buildRow($resource);
return $this->processMetaData($row, $resource);
})->toArray();
@ -112,6 +114,8 @@ class PaymentExport extends BaseExport
$query->cursor()
->each(function ($entity) {
/** @var \App\Models\Payment $entity */
$this->csv->insertOne($this->buildRow($entity));
});

View File

@ -51,6 +51,8 @@ class ProductExport extends BaseExport
$report = $query->cursor()
->map(function ($resource) {
/** @var \App\Models\Product $resource */
$row = $this->buildRow($resource);
return $this->processMetaData($row, $resource);
})->toArray();
@ -103,7 +105,9 @@ class ProductExport extends BaseExport
$query->cursor()
->each(function ($entity) {
$this->csv->insertOne($this->buildRow($entity));
/** @var \App\Models\Product $entity */
$this->csv->insertOne($this->buildRow($entity));
});
return $this->csv->toString();

View File

@ -98,6 +98,8 @@ class PurchaseOrderExport extends BaseExport
$report = $query->cursor()
->map(function ($resource) {
/** @var \App\Models\PurchaseOrder $resource */
$row = $this->buildRow($resource);
return $this->processMetaData($row, $resource);
})->toArray();
@ -119,7 +121,9 @@ class PurchaseOrderExport extends BaseExport
$query->cursor()
->each(function ($purchase_order) {
$this->csv->insertOne($this->buildRow($purchase_order));
/** @var \App\Models\PurchaseOrder $purchase_order */
$this->csv->insertOne($this->buildRow($purchase_order));
});
return $this->csv->toString();

View File

@ -101,13 +101,15 @@ class PurchaseOrderItemExport extends BaseExport
$query->cursor()
->each(function ($resource) {
$this->iterateItems($resource);
/** @var \App\Models\PurchaseOrder $resource */
$this->iterateItems($resource);
foreach($this->storage_array as $row) {
$this->storage_item_array[] = $this->processItemMetaData($row, $resource);
}
foreach($this->storage_array as $row) {
$this->storage_item_array[] = $this->processItemMetaData($row, $resource);
}
$this->storage_array = [];
$this->storage_array = [];
});
@ -127,7 +129,9 @@ class PurchaseOrderItemExport extends BaseExport
$query->cursor()
->each(function ($purchase_order) {
$this->iterateItems($purchase_order);
/** @var \App\Models\PurchaseOrder $purchase_order */
$this->iterateItems($purchase_order);
});
$this->csv->insertAll($this->storage_array);

View File

@ -103,6 +103,8 @@ class QuoteExport extends BaseExport
$report = $query->cursor()
->map(function ($resource) {
/** @var \App\Models\Quote $resource */
$row = $this->buildRow($resource);
return $this->processMetaData($row, $resource);
})->toArray();
@ -125,6 +127,8 @@ class QuoteExport extends BaseExport
$query->cursor()
->each(function ($quote) {
/** @var \App\Models\Quote $quote */
$this->csv->insertOne($this->buildRow($quote));
});

View File

@ -104,6 +104,8 @@ class QuoteItemExport extends BaseExport
$query->cursor()
->each(function ($resource) {
/** @var \App\Models\Quote $resource */
$this->iterateItems($resource);
foreach($this->storage_array as $row) {
@ -134,6 +136,8 @@ class QuoteItemExport extends BaseExport
$query->cursor()
->each(function ($quote) {
/** @var \App\Models\Quote $quote */
$this->iterateItems($quote);
});

View File

@ -93,6 +93,8 @@ class RecurringInvoiceExport extends BaseExport
$query->cursor()
->each(function ($invoice) {
/** @var \App\Models\RecurringInvoice $invoice */
$this->csv->insertOne($this->buildRow($invoice));
});
@ -112,6 +114,8 @@ class RecurringInvoiceExport extends BaseExport
$report = $query->cursor()
->map(function ($resource) {
/** @var \App\Models\RecurringInvoice $resource */
$row = $this->buildRow($resource);
return $this->processMetaData($row, $resource);
})->toArray();

View File

@ -106,7 +106,9 @@ class TaskExport extends BaseExport
$query->cursor()
->each(function ($entity) {
$this->buildRow($entity);
/** @var \App\Models\Task $entity*/
$this->buildRow($entity);
});
$this->csv->insertAll($this->storage_array);
@ -128,6 +130,7 @@ class TaskExport extends BaseExport
$query->cursor()
->each(function ($resource) {
/** @var \App\Models\Task $resource*/
$this->buildRow($resource);
foreach($this->storage_array as $row) {

View File

@ -90,6 +90,8 @@ class VendorExport extends BaseExport
$report = $query->cursor()
->map(function ($resource) {
/** @var \App\Models\Vendor $resource */
$row = $this->buildRow($resource);
return $this->processMetaData($row, $resource);
})->toArray();
@ -107,7 +109,9 @@ class VendorExport extends BaseExport
$query->cursor()
->each(function ($vendor) {
$this->csv->insertOne($this->buildRow($vendor));
/** @var \App\Models\Vendor $vendor */
$this->csv->insertOne($this->buildRow($vendor));
});
return $this->csv->toString();

View File

@ -31,7 +31,7 @@ class GmailTransport extends AbstractTransport
protected function doSend(SentMessage $message): void
{
nlog("In Do Send");
$message = MessageConverter::toEmail($message->getOriginalMessage());
$message = MessageConverter::toEmail($message->getOriginalMessage()); //@phpstan-ignore-line
/** @phpstan-ignore-next-line **/
$token = $message->getHeaders()->get('gmailtoken')->getValue(); // @phpstan-ignore-line

View File

@ -25,7 +25,8 @@ class Office365MailTransport extends AbstractTransport
protected function doSend(SentMessage $message): void
{
$symfony_message = MessageConverter::toEmail($message->getOriginalMessage());
$symfony_message = MessageConverter::toEmail($message->getOriginalMessage()); //@phpstan-ignore-line
$graph = new Graph();

View File

@ -376,6 +376,7 @@ class LoginController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
/** @var Builder $cu */
$cu = CompanyUser::query()->where('user_id', $user->id);
if ($cu->count() == 0) {
@ -398,18 +399,15 @@ class LoginController extends BaseController
$truth->setCompany($set_company);
//21-03-2024
$cu->each(function ($cu) {
if(CompanyToken::where('company_id', $cu->company_id)->where('user_id', $cu->user_id)->where('is_system', true)->doesntExist()) {
/** @var \App\Models\CompanyUser $cu */
if(CompanyToken::query()->where('company_id', $cu->company_id)->where('user_id', $cu->user_id)->where('is_system', true)->doesntExist()) {
(new CreateCompanyToken($cu->company, $cu->user, request()->server('HTTP_USER_AGENT')))->handle();
}
});
// $user->account->companies->each(function ($company) use ($user) {
// if ($company->tokens()->where('user_id',$user->id)->where('is_system', true)->count() == 0) {
// (new CreateCompanyToken($company, $user, request()->server('HTTP_USER_AGENT')))->handle();
// }
// });
$truth->setCompanyToken(CompanyToken::where('user_id', $user->id)->where('company_id', $set_company->id)->where('is_system', true)->first());
return CompanyUser::query()->where('user_id', $user->id);

View File

@ -97,7 +97,7 @@ class YodleeController extends BaseController
}
$company->account->bank_integrations->where("integration_type", BankIntegration::INTEGRATION_TYPE_YODLEE)->where('auto_sync', true)->each(function ($bank_integration) use ($company) { // TODO: filter to yodlee only
ProcessBankTransactionsYodlee::dispatch($company->account->id, $bank_integration);
ProcessBankTransactionsYodlee::dispatch($company->account->bank_integration_account_id, $bank_integration);
});
}

View File

@ -197,6 +197,7 @@ class BankIntegrationController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
/** @var \App\Models\Account $user_account */
$user_account = $user->account;
$this->refreshAccountsYodlee($user);
@ -210,12 +211,14 @@ class BankIntegrationController extends BaseController
// Processing transactions for each bank account
if (Ninja::isHosted() && $user->account->bank_integration_account_id) {
$user_account->bank_integrations->where("integration_type", BankIntegration::INTEGRATION_TYPE_YODLEE)->each(function ($bank_integration) use ($user_account) {
ProcessBankTransactionsYodlee::dispatch($user_account->id, $bank_integration);
/** @var \App\Models\BankIntegration $bank_integration */
ProcessBankTransactionsYodlee::dispatch($user_account->bank_integration_account_id, $bank_integration);
});
}
if (config('ninja.nordigen.secret_id') && config('ninja.nordigen.secret_key') && (Ninja::isSelfHost() || (Ninja::isHosted() && $user_account->isEnterprisePaidClient()))) {
$user_account->bank_integrations->where("integration_type", BankIntegration::INTEGRATION_TYPE_NORDIGEN)->each(function ($bank_integration) {
$user_account->bank_integrations->where("integration_type", BankIntegration::INTEGRATION_TYPE_NORDIGEN)->each(function ($bank_integration) {
/** @var \App\Models\BankIntegration $bank_integration */
ProcessBankTransactionsNordigen::dispatch($bank_integration);
});
}
@ -345,7 +348,7 @@ class BankIntegrationController extends BaseController
if (Ninja::isHosted() && $account->isPaid() && $account->plan == 'enterprise') {
$account->bank_integrations()->where('integration_type', BankIntegration::INTEGRATION_TYPE_YODLEE)->where('auto_sync', true)->cursor()->each(function ($bank_integration) use ($account) {
(new ProcessBankTransactionsYodlee($account->id, $bank_integration))->handle();
(new ProcessBankTransactionsYodlee($account->bank_integration_account_id, $bank_integration))->handle();
});
}

View File

@ -653,7 +653,7 @@ class BaseController extends Controller
/**
* Passes back the miniloaded data response
*
* @param Builder $query
* @param mixed $query
*
*/
protected function timeConstrainedResponse($query)
@ -894,11 +894,7 @@ class BaseController extends Controller
$resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
}
// else {
// $resource = new Collection($query, $transformer, $this->entity_type);
// }
return $this->response($this->manager->createData($resource)->toArray());
return $this->response($this->manager->createData($resource)->toArray()); //@phpstan-ignore-line
}
/**

View File

@ -209,7 +209,7 @@ class PaymentController extends Controller
if (property_exists($payment_hash->data, 'billing_context')) {
$billing_subscription = \App\Models\Subscription::find($this->decodePrimaryKey($payment_hash->data->billing_context->subscription_id));
/** @var \App\Models\Subscription $billing_subscription */
return (new SubscriptionService($billing_subscription))->completePurchase($payment_hash);
}

View File

@ -183,7 +183,7 @@ class DocumentController extends BaseController
}
if ($action == 'download') {
ZipDocuments::dispatch($documents->pluck('id'), $user->company(), auth()->user());
ZipDocuments::dispatch($documents->pluck('id'), $user->company(), auth()->user()); //@phpstan-ignore-line
return response()->json(['message' => ctrans('texts.sent_message')], 200);
}

View File

@ -24,8 +24,9 @@ class PaymentNotificationWebhookController extends Controller
public function __invoke(PaymentNotificationWebhookRequest $request, string $company_key, string $company_gateway_id, string $client_hash)
{
/** @var \App\Models\CompanyGateway $company_gateway */
$company_gateway = CompanyGateway::find($this->decodePrimaryKey($company_gateway_id));
/** @var \App\Models\Client $client */
$client = Client::find($this->decodePrimaryKey($client_hash));
return $company_gateway

View File

@ -125,7 +125,7 @@ class PreviewController extends BaseController
$response = Response::make($pdf, 200);
$response->header('Content-Type', 'application/pdf');
$response->header('Server-Timing', microtime(true) - $start);
$response->header('Server-Timing', (string) (microtime(true) - $start));
return $response;
}

View File

@ -11,13 +11,14 @@
namespace App\Http\Requests\Client;
use App\DataMapper\CompanySettings;
use App\Http\Requests\Request;
use App\Http\ValidationRules\ValidClientGroupSettingsRule;
use App\Utils\Traits\ChecksEntityStatus;
use App\Utils\Traits\MakesHash;
use Illuminate\Support\Facades\Cache;
use Illuminate\Validation\Rule;
use App\DataMapper\CompanySettings;
use Illuminate\Support\Facades\Cache;
use App\Utils\Traits\ChecksEntityStatus;
use App\Http\ValidationRules\EInvoice\ValidClientScheme;
use App\Http\ValidationRules\ValidClientGroupSettingsRule;
class UpdateClientRequest extends Request
{
@ -66,6 +67,8 @@ class UpdateClientRequest extends Request
$rules['id_number'] = ['sometimes', 'bail', 'nullable', Rule::unique('clients')->where('company_id', $user->company()->id)->ignore($this->client->id)];
$rules['number'] = ['sometimes', 'bail', Rule::unique('clients')->where('company_id', $user->company()->id)->ignore($this->client->id)];
$rules['e_invoice'] = ['sometimes','nullable', new ValidClientScheme()];
$rules['settings'] = new ValidClientGroupSettingsRule();
$rules['contacts'] = 'array';
$rules['contacts.*.email'] = 'bail|nullable|distinct|sometimes|email';

View File

@ -29,7 +29,7 @@ class CreatePaymentMethodRequest extends FormRequest
$available_methods = [];
collect($client->service()->getPaymentMethods(-1))
->filter(function ($method) use (&$available_methods) {
->filter(function ($method) use (&$available_methods) { //@phpstan-ignore-line
$available_methods[] = $method['gateway_type_id'];
});

View File

@ -48,7 +48,7 @@ class StoreCompanyGatewayRequest extends Request
{
$input = $this->all();
if ($gateway = Gateway::where('key', $input['gateway_key'])->first()) {
if ($gateway = Gateway::query()->where('key', $input['gateway_key'])->first()) {
$default_gateway_fields = json_decode($gateway->fields);
/*Force gateway properties */

View File

@ -48,7 +48,7 @@ class UpdateCompanyGatewayRequest extends Request
/*Force gateway properties */
if (isset($input['config']) && is_object(json_decode($input['config'])) && array_key_exists('gateway_key', $input)) {
$gateway = Gateway::where('key', $input['gateway_key'])->first();
$gateway = Gateway::query()->where('key', $input['gateway_key'])->first();
$default_gateway_fields = json_decode($gateway->fields);
foreach (json_decode($input['config']) as $key => $value) {

View File

@ -34,7 +34,10 @@ class BulkRecurringExpenseRequest extends Request
return false;
}
return auth()->user()->can(auth()->user()->isAdmin(), RecurringExpense::class);
/** @var \App\Models\User $user */
$user = auth()->user();
return $user->can('edit', RecurringExpense::class);
}
/**

View File

@ -34,7 +34,11 @@ class BulkVendorRequest extends Request
return false;
}
return auth()->user()->can(auth()->user()->isAdmin(), Vendor::class);
/** @var \App\Models\User $user */
$user = auth()->user();
return $user->can('edit', Vendor::class);
}
/**

View File

@ -448,6 +448,6 @@ class MatchBankTransactions implements ShouldQueue
public function middleware()
{
return [new WithoutOverlapping($this->company_id)];
return [new WithoutOverlapping($this->company->account->bank_integration_account_id)];
}
}

View File

@ -35,10 +35,6 @@ class ProcessBankTransactionsYodlee implements ShouldQueue
use Queueable;
use SerializesModels;
private string $bank_integration_account_id;
private BankIntegration $bank_integration;
private ?string $from_date;
private bool $stop_loop = true;
@ -50,10 +46,8 @@ class ProcessBankTransactionsYodlee implements ShouldQueue
/**
* Create a new job instance.
*/
public function __construct(string $bank_integration_account_id, BankIntegration $bank_integration)
public function __construct(private string $bank_integration_account_id, private BankIntegration $bank_integration)
{
$this->bank_integration_account_id = $bank_integration_account_id;
$this->bank_integration = $bank_integration;
$this->from_date = $bank_integration->from_date;
$this->company = $this->bank_integration->company;
}

View File

@ -93,8 +93,7 @@ class ProcessBrevoWebhook implements ShouldQueue
{
MultiDB::findAndSetDbByCompanyKey($this->request['tags'][0]);
/** @phpstan-ignore-next-line */
$this->company = Company::where('company_key', $this->request['tags'][0])->first();
$this->company = Company::query()->where('company_key', $this->request['tags'][0])->first();
$this->invitation = $this->discoverInvitation($this->request['message-id']);

View File

@ -58,7 +58,7 @@ class CheckVat implements ShouldQueue
public function middleware()
{
return [new WithoutOverlapping($this->client->id)];
return [new WithoutOverlapping($this->client->client_hash)];
}
}

View File

@ -108,7 +108,8 @@ class CompanyExport implements ShouldQueue
$this->export_data['users'] = $this->company->users()->withTrashed()->cursor()->map(function ($user) {
$user->account_id = $this->encodePrimaryKey($user->account_id);
/** @var \App\Models\User $user */
$user->account_id = $this->encodePrimaryKey($user->account_id); //@phpstan-ignore-line
return $user;
})->all();

View File

@ -94,7 +94,7 @@ class CompanyTaxRate implements ShouldQueue
public function middleware()
{
return [new WithoutOverlapping($this->company->id)];
return [new WithoutOverlapping($this->company->company_key)];
}
public function failed($e)

View File

@ -65,7 +65,7 @@ class AutoBillCron
$auto_bill_partial_invoices->chunk(400, function ($invoices) {
foreach ($invoices as $invoice) {
AutoBill::dispatch($invoice->id, false);
AutoBill::dispatch($invoice->id, null);
}
sleep(2);
@ -87,7 +87,7 @@ class AutoBillCron
$auto_bill_invoices->chunk(400, function ($invoices) {
foreach ($invoices as $invoice) {
AutoBill::dispatch($invoice->id, false);
AutoBill::dispatch($invoice->id, null);
}
sleep(2);

View File

@ -47,10 +47,12 @@ class CopyDocs implements ShouldQueue
{
MultiDB::setDb($this->db);
Document::whereIn('id', $this->document_ids)
Document::query()
->whereIn('id', $this->document_ids)
->where('company_id', $this->entity->company_id)
->each(function ($document) {
/** @var \App\Models\Document $document */
$file = $document->getFile();
$extension = pathinfo($document->name, PATHINFO_EXTENSION);

View File

@ -63,7 +63,7 @@ class CreateUbl implements ShouldQueue
// invoice
$ubl_invoice->setId($invoice->number);
$ubl_invoice->setIssueDate(date_create($invoice->date));
$ubl_invoice->setInvoiceTypeCode($invoice->amount < 0 ? self::INVOICE_TYPE_CREDIT : self::INVOICE_TYPE_STANDARD);
$ubl_invoice->setInvoiceTypeCode($invoice->amount < 0 ? (string)self::INVOICE_TYPE_CREDIT : (string)self::INVOICE_TYPE_STANDARD);
$supplier_party = $this->createParty($company, $invoice->user);
$ubl_invoice->setAccountingSupplierParty($supplier_party);

View File

@ -75,6 +75,6 @@ class ClientLedgerBalanceUpdate implements ShouldQueue
public function middleware()
{
return [(new WithoutOverlapping($this->client->id))->dontRelease()];
return [(new WithoutOverlapping($this->client->client_hash))->dontRelease()];
}
}

View File

@ -94,7 +94,7 @@ class ProcessMailgunWebhook implements ShouldQueue
}
MultiDB::findAndSetDbByCompanyKey($this->request['event-data']['tags'][0]);
$company = Company::where('company_key', $this->request['event-data']['tags'][0])->first();
$company = Company::query()->where('company_key', $this->request['event-data']['tags'][0])->first();
if ($company && $this->request['event-data']['event'] == 'complained' && config('ninja.notification.slack')) {
$company->notification(new EmailSpamNotification($company))->ninja();

View File

@ -87,7 +87,7 @@ class ProcessPostmarkWebhook implements ShouldQueue
public function handle()
{
MultiDB::findAndSetDbByCompanyKey($this->request['Tag']);
$this->company = Company::where('company_key', $this->request['Tag'])->first(); /** @phpstan-ignore-line */
$this->company = Company::query()->where('company_key', $this->request['Tag'])->first(); /** @phpstan-ignore-line */
$this->invitation = $this->discoverInvitation($this->request['MessageID']);

View File

@ -253,7 +253,7 @@ class Import implements ShouldQueue
$this->setInitialCompanyLedgerBalances();
// $this->fixClientBalances();
$check_data = (new CheckCompanyData($this->company, md5(time())))->handle();
$check_data = (new CheckCompanyData($this->company, md5(time())))->handle(); //@phpstan-ignore-line
// if(Ninja::isHosted() && array_key_exists('ninja_tokens', $data))
$this->processNinjaTokens($data['ninja_tokens']);

View File

@ -38,7 +38,7 @@ class UploadAvatar implements ShouldQueue
public function handle(): ?string
{
$tmp_file = sha1(time()).'.png';
$tmp_file = sha1(time()).'.png'; //@phpstan-ignore-line
$im = imagecreatefromstring(file_get_contents($this->file));
imagealphablending($im, false);

View File

@ -94,7 +94,7 @@ class VersionCheck implements ShouldQueue
Client::doesntHave('contacts')
->cursor()
->each(function (Client $client) {
->each(function (Client $client) { //@phpstan-ignore-line
$new_contact = ClientContactFactory::create($client->company_id, $client->user_id);
$new_contact->client_id = $client->id;
@ -107,7 +107,7 @@ class VersionCheck implements ShouldQueue
Vendor::doesntHave('contacts')
->cursor()
->each(function (Vendor $vendor) {
->each(function (Vendor $vendor) { //@phpstan-ignore-line
$new_contact = VendorContactFactory::create($vendor->company_id, $vendor->user_id);
$new_contact->vendor_id = $vendor->id;

View File

@ -58,7 +58,7 @@ class Apple
'bid' => $this->bundle_id,
];
$jwt = JWT::encode($payload, $this->private_key, $this->alg, $header);
$jwt = JWT::encode($payload, $this->private_key, $this->alg, null, $header);
$decoded = JWT::decode($jwt, new Key($this->private_key, $this->alg));

View File

@ -61,7 +61,7 @@ class Backup extends BaseModel
}
$path = $client_or_vendor->backup_path().'/';
$filename = now()->format('Y_m_d').'_'.md5(time()).'.html';
$filename = now()->format('Y_m_d').'_'.md5(time()).'.html'; //@phpstan-ignore-line
$file_path = $path.$filename;
Storage::disk(config('filesystems.default'))->put($file_path, $html);

View File

@ -38,7 +38,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @property string|null $participant
* @property string|null $participant_name
* @property string $invoice_ids
* @property int|null $expense_id
* @property string|null $expense_id
* @property int|null $vendor_id
* @property int $status_id
* @property bool $is_deleted

View File

@ -573,7 +573,7 @@ class Client extends BaseModel implements HasLocalePreference
if ($pm['gateway_type_id'] == GatewayType::BACS) {
$cg = CompanyGateway::query()->find($pm['company_gateway_id']);
if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::BACS)) {
if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::BACS)) { //@phpstan-ignore-line
$fees_and_limits = $cg->fees_and_limits;
$fees_and_limits->{GatewayType::BACS} = new FeesAndLimits();
$cg->fees_and_limits = $fees_and_limits;
@ -597,7 +597,7 @@ class Client extends BaseModel implements HasLocalePreference
if ($pm['gateway_type_id'] == GatewayType::ACSS) {
$cg = CompanyGateway::query()->find($pm['company_gateway_id']);
if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::ACSS)) {
if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::ACSS)) { //@phpstan-ignore-line
$fees_and_limits = $cg->fees_and_limits;
$fees_and_limits->{GatewayType::ACSS} = new FeesAndLimits();
$cg->fees_and_limits = $fees_and_limits;
@ -624,7 +624,7 @@ class Client extends BaseModel implements HasLocalePreference
if ($pm['gateway_type_id'] == GatewayType::BANK_TRANSFER) {
$cg = CompanyGateway::query()->find($pm['company_gateway_id']);
if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::BANK_TRANSFER)) {
if ($cg && ! property_exists($cg->fees_and_limits, GatewayType::BANK_TRANSFER)) { //@phpstan-ignore-line
$fees_and_limits = $cg->fees_and_limits;
$fees_and_limits->{GatewayType::BANK_TRANSFER} = new FeesAndLimits();
$cg->fees_and_limits = $fees_and_limits;

View File

@ -59,7 +59,7 @@ class DateFormat extends StaticModel
*/
public function __toString()
{
$date = mktime(0, 0, 0, 12, 31, date('Y'));
$date = mktime(0, 0, 0, 12, 31, date('Y')); //@phpstan-ignore-line
return date($this->format, $date);
}

View File

@ -32,7 +32,7 @@ class DatetimeFormat extends StaticModel
*/
public function __toString()
{
$date = mktime(0, 0, 0, 12, 31, date('Y'));
$date = mktime(0, 0, 0, 12, 31, date('Y')); //@phpstan-ignore-line
return date($this->format, $date);
}

View File

@ -24,7 +24,7 @@ namespace App\Models;
* @property string|null $site_url
* @property bool $is_offsite
* @property bool $is_secure
* @property object|null $fields
* @property object|null|string $fields
* @property string $default_gateway_type_id
* @property int|null $created_at
* @property int|null $updated_at

View File

@ -375,6 +375,7 @@ class BaseDriver extends AbstractPaymentDriver
// To access campaign data => Cache::get(CAMPAIGN_HASH)
// To access utm data => session()->get('utm-' . CAMPAIGN_HASH);
/** @var \App\Models\Subscription $billing_subscription */
(new SubscriptionService($billing_subscription))->completePurchase($this->payment_hash);
}

View File

@ -83,7 +83,7 @@ class CreditCard
if ($this->braintree->company_gateway->getConfigField('merchantAccountId')) {
/** https://developer.paypal.com/braintree/docs/reference/request/client-token/generate#merchant_account_id */
$data['client_token'] = $this->braintree->gateway->clientToken()->generate([
$data['client_token'] = $this->braintree->gateway->clientToken()->generate([ //@phpstan-ignore-line
'merchantAccountId' => $this->braintree->company_gateway->getConfigField('merchantAccountId'),
]);
}
@ -118,7 +118,7 @@ class CreditCard
$token = $this->getPaymentToken($request->all(), $customer->id);
$data = [
'amount' => $this->braintree->payment_hash->data->amount_with_fee,
'amount' => $this->braintree->payment_hash->data->amount_with_fee, //@phpstan-ignore-line
'paymentMethodToken' => $token,
'deviceData' => $state['client-data'],
'options' => [

View File

@ -387,7 +387,7 @@ class BraintreePaymentDriver extends BaseDriver
foreach($cards as $card) {
if($this->getToken($card->token, $card->customerId) || Carbon::createFromDate($card->expirationYear, $card->expirationMonth, '1')->lt(now())) {
if($this->getToken($card->token, $card->customerId) || Carbon::createFromDate($card->expirationYear, $card->expirationMonth, '1')->lt(now())) { //@phpstan-ignore-line
continue;
}

View File

@ -592,7 +592,7 @@ class CheckoutComPaymentDriver extends BaseDriver
foreach($customer['instruments'] as $card) {
if(
$card['type'] != 'card' ||
Carbon::createFromDate($card['expiry_year'], $card['expiry_month'], '1')->lt(now()) ||
Carbon::createFromDate($card['expiry_year'], $card['expiry_month'], '1')->lt(now()) || //@phpstan-ignore-line
$this->getToken($card['id'], $customer['id'])
) {
continue;

View File

@ -297,7 +297,6 @@ class PayPalWebhook implements ShouldQueue
$gateway = CompanyGateway::query()
->where('company_id', $company->id)
->where('gateway_key', $this->gateway_key)
->cursor()
->first(function ($cg) use ($merchant_id) {
$config = $cg->getConfig();

View File

@ -188,7 +188,7 @@ class SquarePaymentDriver extends BaseDriver
} else {
/** @var \Square\Models\Error $error */
$error = end($apiResponse->getErrors());
$error = end($apiResponse->getErrors()); //@phpstan-ignore-line
$data = [
'transaction_reference' => $payment->transaction_reference,

View File

@ -267,6 +267,7 @@ class ACSS
$gateway_response = json_decode($request->gateway_response);
/** @var \App\Models\ClientGatewayToken $cgt */
$cgt = ClientGatewayToken::find($this->decodePrimaryKey($request->token));
/** @var \Stripe\PaymentIntent $intent */

View File

@ -208,7 +208,7 @@ class ImportCustomers
if (! $cgt) {
nlog('customer '.$searchResults->data[0]->id.' does not exist.');
$this->update_payment_methods->updateMethods($searchResults->data[0], $client);
$this->update_payment_methods->updateMethods($searchResults->data[0], $client); //@phpstan-ignore-line
}
}
}

View File

@ -41,7 +41,7 @@ class ActivityRepository extends BaseRepository
* Save the Activity.
*
* @param \stdClass $fields The fields
* @param \App\Models\Invoice | \App\Models\Quote | \App\Models\Credit | \App\Models\PurchaseOrder | \App\Models\Expense $entity
* @param \App\Models\Invoice | \App\Models\Quote | \App\Models\Credit | \App\Models\PurchaseOrder | \App\Models\Expense | \App\Models\Payment $entity
* @param array $event_vars
*/
public function save($fields, $entity, $event_vars)

View File

@ -124,7 +124,7 @@ class SubscriptionRepository extends BaseRepository
*
* Removing the nested keys of the items array
*
* @param array $bundle
* @param mixed $bundle
* @return array
*/
private function convertV3Bundle($bundle): array

View File

@ -166,7 +166,7 @@ class PaymentMethod
//note we have to use GatewayType::CREDIT_CARD as alias for CUSTOM
foreach ($this->gateways as $gateway) {
foreach ($gateway->driver($this->client)->gatewayTypes() as $type) {
if (isset($gateway->fees_and_limits) && is_object($gateway->fees_and_limits) && property_exists($gateway->fees_and_limits, GatewayType::CREDIT_CARD)) {
if (isset($gateway->fees_and_limits) && is_object($gateway->fees_and_limits) && property_exists($gateway->fees_and_limits, GatewayType::CREDIT_CARD)) { //@phpstan-ignore-line
if ($this->validGatewayForAmount($gateway->fees_and_limits->{GatewayType::CREDIT_CARD}, $this->amount)) {
// $this->payment_methods[] = [$gateway->id => $type];
//@15-06-2024

View File

@ -187,7 +187,7 @@ class Statement
$pdf = $this->makePdf(null, null, $html);
}
} catch (\Exception $e) {
nlog(print_r($e->getMessage(), 1));
nlog(print_r($e->getMessage(), true));
}
@ -385,7 +385,6 @@ class Statement
/**
* Get correct invitation ID.
*
* @return int|bool
*/
protected function getInvitation()
{

View File

@ -231,9 +231,9 @@ class CompanyLevel
// #[SerializedName('cac:BuyerCustomerParty')]
// public $BuyerCustomerParty;
// /** @var SellerSupplierParty */
// #[SerializedName('cac:SellerSupplierParty')]
// public $SellerSupplierParty;
/** @var SellerSupplierParty */
#[SerializedName('cac:SellerSupplierParty')]
public $SellerSupplierParty;
/** @var TaxRepresentativeParty */
#[SerializedName('cac:TaxRepresentativeParty')]

View File

@ -433,7 +433,7 @@ class AutoBillInvoice extends AbstractService
$company_gateway = $gateway_token->gateway;
//check if fees and limits are set
if (isset($company_gateway->fees_and_limits) && ! is_array($company_gateway->fees_and_limits) && property_exists($company_gateway->fees_and_limits, $gateway_token->gateway_type_id)) {
if (isset($company_gateway->fees_and_limits) && ! is_array($company_gateway->fees_and_limits) && property_exists($company_gateway->fees_and_limits, $gateway_token->gateway_type_id)) { //@phpstan-ignore-line
//if valid we keep this gateway_token
if ($this->invoice->client->validGatewayForAmount($company_gateway->fees_and_limits->{$gateway_token->gateway_type_id}, $amount)) {
return true;

View File

@ -306,7 +306,7 @@ class PdfConfiguration
$decimal = $this->country->decimal_separator;
}
if (isset($this->country->swap_currency_symbol) && strlen($this->country->swap_currency_symbol) >= 1) {
if (isset($this->country->swap_currency_symbol) && $this->country->swap_currency_symbol) {
$swapSymbol = $this->country->swap_currency_symbol;
}

View File

@ -175,7 +175,7 @@ class SystemHealth
public static function checkOpenBaseDir()
{
if (strlen(ini_get('open_basedir') == 0)) {
if (strlen(ini_get('open_basedir')) == 0) {
return true;
}

View File

@ -39,7 +39,7 @@ trait CompanySettingsSaver
* Saves a setting object.
*
* Works for groups|clients|companies
* @param array $settings The request input settings array
* @param mixed $settings The request input settings array
* @param object $entity The entity which the settings belongs to
* @return void
*/

View File

@ -441,7 +441,7 @@ trait GeneratesCounter
/**
* Formats the entity number according to pattern, prefix and padding.
*
* @param Collection $entity The entity ie App\Models\Client, Invoice, Quote etc
* @param mixed $entity The entity ie App\Models\Client, Invoice, Quote etc
* @param int $counter The counter
* @param int $padding The padding
* @param string $pattern