Updates for static analysis

This commit is contained in:
David Bomba 2023-08-02 19:47:26 +10:00
parent 54420dfe99
commit e35a99d454
18 changed files with 64 additions and 253 deletions

View File

@ -38,6 +38,7 @@ class VersionCheck implements ShouldQueue
$version_file = trim(@file_get_contents(config('ninja.version_url'))); $version_file = trim(@file_get_contents(config('ninja.version_url')));
if (Ninja::isSelfHost() && $version_file) { if (Ninja::isSelfHost() && $version_file) {
/** @var \App\Models\Account $account **/
Account::whereNotNull('id')->update(['latest_version' => $version_file]); Account::whereNotNull('id')->update(['latest_version' => $version_file]);
} }

View File

@ -69,7 +69,6 @@ class CreditEmailEngine extends BaseEmailEngine
'company' => $this->credit->company->present()->name(), 'company' => $this->credit->company->present()->name(),
'amount' => Number::formatMoney($this->credit->balance, $this->client), 'amount' => Number::formatMoney($this->credit->balance, $this->client),
], ],
null,
$this->client->locale() $this->client->locale()
); );
@ -89,7 +88,6 @@ class CreditEmailEngine extends BaseEmailEngine
'number' => $this->credit->number, 'number' => $this->credit->number,
'account' => $this->credit->company->present()->name(), 'account' => $this->credit->company->present()->name(),
], ],
null,
$this->client->locale() $this->client->locale()
); );
} }
@ -101,7 +99,6 @@ class CreditEmailEngine extends BaseEmailEngine
'company' => $this->credit->company->present()->name(), 'company' => $this->credit->company->present()->name(),
'amount' => Number::formatMoney($this->credit->balance, $this->client), 'amount' => Number::formatMoney($this->credit->balance, $this->client),
], ],
null,
$this->client->locale() $this->client->locale()
)."\n\n".$this->invitation->getLink(); )."\n\n".$this->invitation->getLink();

View File

@ -76,7 +76,6 @@ class InvoiceEmailEngine extends BaseEmailEngine
'company' => $this->invoice->company->present()->name(), 'company' => $this->invoice->company->present()->name(),
'amount' => Number::formatMoney($this->invoice->balance, $this->client), 'amount' => Number::formatMoney($this->invoice->balance, $this->client),
], ],
null,
$this->client->locale() $this->client->locale()
); );
@ -90,7 +89,6 @@ class InvoiceEmailEngine extends BaseEmailEngine
'company' => $this->invoice->company->present()->name(), 'company' => $this->invoice->company->present()->name(),
'amount' => Number::formatMoney($this->invoice->balance, $this->client), 'amount' => Number::formatMoney($this->invoice->balance, $this->client),
], ],
null,
$this->client->locale() $this->client->locale()
)."\n\n".$this->invitation->getLink(); )."\n\n".$this->invitation->getLink();
@ -109,7 +107,6 @@ class InvoiceEmailEngine extends BaseEmailEngine
'number' => $this->invoice->number, 'number' => $this->invoice->number,
'account' => $this->invoice->company->present()->name(), 'account' => $this->invoice->company->present()->name(),
], ],
null,
$this->client->locale() $this->client->locale()
); );
} }

View File

@ -73,7 +73,6 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine
'company' => $this->purchase_order->company->present()->name(), 'company' => $this->purchase_order->company->present()->name(),
'amount' => Number::formatMoney($this->purchase_order->balance, $this->vendor), 'amount' => Number::formatMoney($this->purchase_order->balance, $this->vendor),
], ],
null,
$this->vendor->company->locale() $this->vendor->company->locale()
); );
@ -86,7 +85,6 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine
'company' => $this->purchase_order->company->present()->name(), 'company' => $this->purchase_order->company->present()->name(),
'amount' => Number::formatMoney($this->purchase_order->balance, $this->vendor), 'amount' => Number::formatMoney($this->purchase_order->balance, $this->vendor),
], ],
null,
$this->vendor->company->locale() $this->vendor->company->locale()
)."\n\n".$this->invitation->getLink(); )."\n\n".$this->invitation->getLink();
@ -105,7 +103,6 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine
'number' => $this->purchase_order->number, 'number' => $this->purchase_order->number,
'account' => $this->purchase_order->company->present()->name(), 'account' => $this->purchase_order->company->present()->name(),
], ],
null,
$this->vendor->company->locale() $this->vendor->company->locale()
); );
} }

View File

@ -68,7 +68,6 @@ class QuoteEmailEngine extends BaseEmailEngine
'company' => $this->quote->company->present()->name(), 'company' => $this->quote->company->present()->name(),
'amount' => Number::formatMoney($this->quote->amount, $this->client), 'amount' => Number::formatMoney($this->quote->amount, $this->client),
], ],
null,
$this->client->locale() $this->client->locale()
); );
@ -88,7 +87,6 @@ class QuoteEmailEngine extends BaseEmailEngine
'number' => $this->quote->number, 'number' => $this->quote->number,
'account' => $this->quote->company->present()->name(), 'account' => $this->quote->company->present()->name(),
], ],
null,
$this->client->locale() $this->client->locale()
); );
} }
@ -100,7 +98,6 @@ class QuoteEmailEngine extends BaseEmailEngine
'company' => $this->quote->company->present()->name(), 'company' => $this->quote->company->present()->name(),
'amount' => Number::formatMoney($this->quote->amount, $this->client), 'amount' => Number::formatMoney($this->quote->amount, $this->client),
], ],
null,
$this->client->locale() $this->client->locale()
)."\n\n".$this->invitation->getLink(); )."\n\n".$this->invitation->getLink();

View File

@ -1,36 +1,33 @@
<?php <?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\Mail; namespace App\Mail;
use App\Libraries\MultiDB; use App\Libraries\MultiDB;
use App\Models\Company; use App\Models\Company;
use App\Utils\Ninja; use App\Utils\Ninja;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
class MigrationCompleted extends Mailable class MigrationCompleted extends Mailable
{ {
// use Queueable, SerializesModels;
public $company_id; public ?Company $company;
public $db;
public $check_data;
public $company;
/** /**
* Create a new message instance. * Create a new message instance.
* *
* @return void * @return void
*/ */
public function __construct(int $company_id, string $db, $check_data = '') public function __construct(public int $company_id, public string $db, public string $check_data = '')
{ {
$this->company_id = $company_id;
$this->check_data = $check_data;
$this->db = $db;
} }
/** /**

View File

@ -11,13 +11,16 @@
namespace App\Mail\RecurringInvoice; namespace App\Mail\RecurringInvoice;
use App\Utils\Ninja;
use App\Models\Company;
use App\Models\ClientContact; use App\Models\ClientContact;
use App\Models\RecurringInvoice; use App\Models\RecurringInvoice;
use App\Utils\Ninja;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
class ClientContactRequestCancellationObject class ClientContactRequestCancellationObject
{ {
public Company $company;
public function __construct(public RecurringInvoice $recurring_invoice, public ClientContact $client_contact, private bool $gateway_refund_attempted) public function __construct(public RecurringInvoice $recurring_invoice, public ClientContact $client_contact, private bool $gateway_refund_attempted)
{ {
} }

View File

@ -78,54 +78,12 @@ use Laracasts\Presenter\PresentableTrait;
* @property-read mixed $hashed_id * @property-read mixed $hashed_id
* @property-read \App\Models\Payment|null $payment * @property-read \App\Models\Payment|null $payment
* @property-read int|null $users_count * @property-read int|null $users_count
* @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\AccountFactory factory($count = null, $state = []) * @method static \Database\Factories\AccountFactory factory($count = null, $state = [])
* @method static \Illuminate\Database\Eloquent\Builder|Account newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|Account newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Account newQuery() * @method static \Illuminate\Database\Eloquent\Builder|Account newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Account query() * @method static \Illuminate\Database\Eloquent\Builder|Account query()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel scope() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel scope()
* @method static \Illuminate\Database\Eloquent\Builder|Account whereAccountSmsVerificationCode($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereAccountSmsVerificationNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereAccountSmsVerified($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereBankIntegrationAccountId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereDefaultCompanyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereHostedClientCount($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereHostedCompanyCount($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereInappTransactionId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereIsFlagged($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereIsMigrated($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereIsOnboarding($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereIsSchedulerRunning($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereIsTrial($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereIsVerifiedAccount($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereKey($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereLatestVersion($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereNumUsers($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereOnboarding($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account wherePaymentId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account wherePlan($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account wherePlanExpires($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account wherePlanPaid($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account wherePlanPrice($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account wherePlanStarted($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account wherePlanTerm($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account wherePlatform($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereReferralCode($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereReportErrors($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereSetReactAsDefaultAp($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereTrialDuration($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereTrialPlan($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereTrialStarted($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereUserAgent($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereUtmCampaign($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereUtmContent($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereUtmMedium($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereUtmSource($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account whereUtmTerm($value)
* @method static \Illuminate\Database\Eloquent\Builder|Account first() * @method static \Illuminate\Database\Eloquent\Builder|Account first()
* @method static \Illuminate\Database\Eloquent\Builder|Account with() * @method static \Illuminate\Database\Eloquent\Builder|Account with()
* @method static \Illuminate\Database\Eloquent\Builder|Account count() * @method static \Illuminate\Database\Eloquent\Builder|Account count()

View File

@ -445,6 +445,8 @@ class Activity extends StaticModel
{ {
$system = ctrans('texts.system'); $system = ctrans('texts.system');
$translation = '';
match($variable) { match($variable) {
':invoice' => $translation = [substr($variable, 1) => [ 'label' => $this?->invoice?->number ?? '', 'hashed_id' => $this->invoice?->hashed_id ?? '']], ':invoice' => $translation = [substr($variable, 1) => [ 'label' => $this?->invoice?->number ?? '', 'hashed_id' => $this->invoice?->hashed_id ?? '']],
':user' => $translation = [substr($variable, 1) => [ 'label' => $this?->user?->present()->name() ?? $system, 'hashed_id' => $this->user->hashed_id ?? '']], ':user' => $translation = [substr($variable, 1) => [ 'label' => $this?->user?->present()->name() ?? $system, 'hashed_id' => $this->user->hashed_id ?? '']],

View File

@ -43,7 +43,6 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\BankTransaction> $transactions * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\BankTransaction> $transactions
* @property-read int|null $transactions_count * @property-read int|null $transactions_count
* @property-read \App\Models\User $user * @property-read \App\Models\User $user
* @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\BankIntegrationFactory factory($count = null, $state = []) * @method static \Database\Factories\BankIntegrationFactory factory($count = null, $state = [])
* @method static \Illuminate\Database\Eloquent\Builder|BankIntegration filter(\App\Filters\QueryFilters $filters) * @method static \Illuminate\Database\Eloquent\Builder|BankIntegration filter(\App\Filters\QueryFilters $filters)

View File

@ -34,9 +34,6 @@ class BankSubaccount extends BaseModel
{ {
use SoftDeletes; use SoftDeletes;
/**
* @var array
*/
/** /**
* @return BelongsTo * @return BelongsTo
*/ */

View File

@ -27,6 +27,7 @@ use Illuminate\Database\Eloquent\ModelNotFoundException as ModelNotFoundExceptio
* Class BaseModel * Class BaseModel
* *
* @method scope() static * @method scope() static
* @method company() static
* @package App\Models * @package App\Models
* @property-read mixed $hashed_id * @property-read mixed $hashed_id
* @property string $number * @property string $number
@ -36,7 +37,6 @@ use Illuminate\Database\Eloquent\ModelNotFoundException as ModelNotFoundExceptio
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel|Illuminate\Database\Eloquent\Relations\BelongsTo|\Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo|\App\Models\Company company() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel|Illuminate\Database\Eloquent\Relations\BelongsTo|\Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo|\App\Models\Company company()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel|Illuminate\Database\Eloquent\Relations\HasMany|BaseModel orderBy() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel|Illuminate\Database\Eloquent\Relations\HasMany|BaseModel orderBy()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel exclude($columns) * @method static \Illuminate\Database\Eloquent\Builder|BaseModel exclude($columns)
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel company()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel with($value) * @method static \Illuminate\Database\Eloquent\Builder|BaseModel with($value)
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel newModelQuery($query) * @method static \Illuminate\Database\Eloquent\Builder|BaseModel newModelQuery($query)
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel newQuery($query) * @method static \Illuminate\Database\Eloquent\Builder|BaseModel newQuery($query)
@ -51,15 +51,16 @@ use Illuminate\Database\Eloquent\ModelNotFoundException as ModelNotFoundExceptio
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel count() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel count()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel create($query) * @method static \Illuminate\Database\Eloquent\Builder|BaseModel create($query)
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel insert($query) * @method static \Illuminate\Database\Eloquent\Builder|BaseModel insert($query)
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel service() * @method BaseModel service()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel orderBy($column, $direction) * @method static \Illuminate\Database\Eloquent\Builder|BaseModel orderBy($column, $direction)
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel invitations() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel invitations()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel whereHas($query) * @method static \Illuminate\Database\Eloquent\Builder|BaseModel whereHas($query)
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\InvoiceInvitation | \App\Models\CreditInvitation | \App\Models\QuoteInvitation | \App\Models\RecurringInvoiceInvitation> $invitations * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\InvoiceInvitation | \App\Models\CreditInvitation | \App\Models\QuoteInvitation | \App\Models\RecurringInvoiceInvitation> $invitations
* @property-read int|null $invitations_count * @property-read int|null $invitations_count
* * @method static \Illuminate\Database\Eloquent\Builder<static> company()
* @method int companyId() * @method int companyId()
* @method createInvitations() * @method createInvitations()
* @method Builder scopeCompany(Builder $builder)
* @mixin \Eloquent * @mixin \Eloquent
* @mixin \Illuminate\Database\Eloquent\Builder * @mixin \Illuminate\Database\Eloquent\Builder
*/ */
@ -113,10 +114,8 @@ class BaseModel extends Model
return parent::__call($method, $params); return parent::__call($method, $params);
} }
/*
V2 type of scope public function scopeCompany($query): \Illuminate\Database\Eloquent\Builder
*/
public function scopeCompany($query)
{ {
/** @var \App\Models\User $user */ /** @var \App\Models\User $user */
$user = auth()->user(); $user = auth()->user();
@ -126,8 +125,8 @@ class BaseModel extends Model
return $query; return $query;
} }
/* /**
V1 type of scope * @deprecated version
*/ */
public function scopeScope($query) public function scopeScope($query)
{ {

View File

@ -733,48 +733,42 @@ class Company extends BaseModel
return $this->belongsTo(PaymentType::class); return $this->belongsTo(PaymentType::class);
} }
/** public function expenses(): \Illuminate\Database\Eloquent\Relations\HasMany
* @return mixed
*/
public function expenses()
{ {
return $this->hasMany(Expense::class)->withTrashed(); return $this->hasMany(Expense::class)->withTrashed();
} }
/** public function payments(): \Illuminate\Database\Eloquent\Relations\HasMany
* @return mixed
*/
public function payments()
{ {
return $this->hasMany(Payment::class)->withTrashed(); return $this->hasMany(Payment::class)->withTrashed();
} }
public function tokens() public function tokens(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(CompanyToken::class); return $this->hasMany(CompanyToken::class);
} }
public function client_gateway_tokens() public function client_gateway_tokens(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(ClientGatewayToken::class); return $this->hasMany(ClientGatewayToken::class);
} }
public function system_logs() public function system_logs(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(SystemLog::class)->orderBy('id', 'DESC')->take(100); return $this->hasMany(SystemLog::class)->orderBy('id', 'DESC')->take(100);
} }
public function system_log_relation() public function system_log_relation(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(SystemLog::class)->orderBy('id', 'DESC'); return $this->hasMany(SystemLog::class)->orderBy('id', 'DESC');
} }
public function tokens_hashed() public function tokens_hashed(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(CompanyToken::class); return $this->hasMany(CompanyToken::class);
} }
public function company_users() public function company_users(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(CompanyUser::class)->withTrashed(); return $this->hasMany(CompanyUser::class)->withTrashed();
} }
@ -811,7 +805,7 @@ class Company extends BaseModel
->firstOrFail(); ->firstOrFail();
} }
public function domain() public function domain(): string
{ {
if (Ninja::isHosted()) { if (Ninja::isHosted()) {
if ($this->portal_mode == 'domain' && strlen($this->portal_domain) > 3) { if ($this->portal_mode == 'domain' && strlen($this->portal_domain) > 3) {
@ -829,12 +823,12 @@ class Company extends BaseModel
return new NotificationService($this, $notification); return new NotificationService($this, $notification);
} }
public function routeNotificationForSlack($notification) public function routeNotificationForSlack($notification): string
{ {
return $this->slack_webhook_url; return $this->slack_webhook_url;
} }
public function file_path() public function file_path(): string
{ {
return $this->company_key.'/'; return $this->company_key.'/';
} }
@ -873,7 +867,7 @@ class Company extends BaseModel
return $data; return $data;
} }
public function timezone_offset() public function timezone_offset(): int
{ {
$offset = 0; $offset = 0;

View File

@ -318,17 +318,17 @@ class RecurringInvoice extends BaseModel
return $this->belongsTo(User::class, 'assigned_user_id', 'id')->withTrashed(); return $this->belongsTo(User::class, 'assigned_user_id', 'id')->withTrashed();
} }
public function invoices() public function invoices(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(Invoice::class, 'recurring_id', 'id')->withTrashed(); return $this->hasMany(Invoice::class, 'recurring_id', 'id')->withTrashed();
} }
public function invitations() public function invitations(): \Illuminate\Database\Eloquent\Relations\HasMany
{ {
return $this->hasMany(RecurringInvoiceInvitation::class); return $this->hasMany(RecurringInvoiceInvitation::class);
} }
public function documents() public function documents(): \Illuminate\Database\Eloquent\Relations\MorphMany
{ {
return $this->morphMany(Document::class, 'documentable'); return $this->morphMany(Document::class, 'documentable');
} }

View File

@ -61,6 +61,7 @@ use Laracasts\Presenter\PresentableTrait;
* @property string $balance * @property string $balance
* @property string|null $last_viewed * @property string|null $last_viewed
* @property int $frequency_id * @property int $frequency_id
* @property int $design_id
* @property string|null $last_sent_date * @property string|null $last_sent_date
* @property string|null $next_send_date * @property string|null $next_send_date
* @property int|null $remaining_cycles * @property int|null $remaining_cycles
@ -110,65 +111,6 @@ use Laracasts\Presenter\PresentableTrait;
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote onlyTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote query() * @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote query()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel scope() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel scope()
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereAmount($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereAssignedUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereAutoBill($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereAutoBillEnabled($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereBackup($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereBalance($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereClientId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCompanyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomSurcharge1($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomSurcharge2($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomSurcharge3($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomSurcharge4($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomSurchargeTax1($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomSurchargeTax2($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomSurchargeTax3($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomSurchargeTax4($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomValue1($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomValue2($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomValue3($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereCustomValue4($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereDiscount($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereDueDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereDueDateDays($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereExchangeRate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereFooter($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereFrequencyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereIsAmountDiscount($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereIsDeleted($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereLastSentDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereLastViewed($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereLineItems($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereNextSendDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote wherePaidToDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote wherePartial($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote wherePartialDueDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote wherePoNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote wherePrivateNotes($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereProjectId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote wherePublicNotes($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereRemainingCycles($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereStatusId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereSubscriptionId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereTaxName1($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereTaxName2($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereTaxName3($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereTaxRate1($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereTaxRate2($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereTaxRate3($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereTerms($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereTotalTaxes($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereUsesInclusiveTaxes($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote whereVendorId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote withTrashed() * @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote withTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote withoutTrashed() * @method static \Illuminate\Database\Eloquent\Builder|RecurringQuote withoutTrashed()
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
@ -176,61 +118,6 @@ use Laracasts\Presenter\PresentableTrait;
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Activity> $activities
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Document> $documents
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Backup> $history
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\RecurringQuoteInvitation> $invitations
* @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Quote> $quotes
* @mixin \Eloquent * @mixin \Eloquent
*/ */
class RecurringQuote extends BaseModel class RecurringQuote extends BaseModel

View File

@ -39,18 +39,6 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @method static \Illuminate\Database\Eloquent\Builder|Webhook onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|Webhook onlyTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|Webhook query() * @method static \Illuminate\Database\Eloquent\Builder|Webhook query()
* @method static \Illuminate\Database\Eloquent\Builder|BaseModel scope() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel scope()
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereCompanyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereEventId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereFormat($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereHeaders($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereIsDeleted($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereRestMethod($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereTargetUrl($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook whereUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Webhook withTrashed() * @method static \Illuminate\Database\Eloquent\Builder|Webhook withTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|Webhook withoutTrashed() * @method static \Illuminate\Database\Eloquent\Builder|Webhook withoutTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|Webhook where() * @method static \Illuminate\Database\Eloquent\Builder|Webhook where()
@ -268,12 +256,12 @@ class Webhook extends BaseModel
'deleted_at' => 'timestamp', 'deleted_at' => 'timestamp',
]; ];
public function user() public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{ {
return $this->belongsTo(User::class)->withTrashed(); return $this->belongsTo(User::class)->withTrashed();
} }
public function company() public function company(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{ {
return $this->belongsTo(Company::class); return $this->belongsTo(Company::class);
} }

View File

@ -142,7 +142,7 @@ trait ChartQueries
"), ['company_currency' => $this->company->settings->currency_id, 'company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]); "), ['company_currency' => $this->company->settings->currency_id, 'company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]);
} }
public function getRevenueQuery($start_date, $end_date) public function getRevenueQueryX($start_date, $end_date)
{ {
$user_filter = $this->is_admin ? '' : 'AND clients.user_id = '.$this->user->id; $user_filter = $this->is_admin ? '' : 'AND clients.user_id = '.$this->user->id;
@ -164,27 +164,23 @@ trait ChartQueries
"), ['company_currency' => $this->company->settings->currency_id, 'company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]); "), ['company_currency' => $this->company->settings->currency_id, 'company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]);
} }
// public function getPaymentsQuery($start_date, $end_date) public function getRevenueQuery($start_date, $end_date)
// { {
// $user_filter = $this->is_admin ? '' : 'AND clients.user_id = '.$this->user->id; $user_filter = $this->is_admin ? '' : 'AND payments.user_id = '.$this->user->id;
// return DB::select(DB::raw(" return DB::select(DB::raw("
// SELECT SELECT
// sum(payments.amount - payments.refunded) as paid_to_date, sum(payments.amount - payments.refunded) as paid_to_date,
// IFNULL(CAST(JSON_UNQUOTE(JSON_EXTRACT( clients.settings, '$.currency_id' )) AS SIGNED), :company_currency) AS currency_id payments.currency_id AS currency_id
// FROM payments FROM payments
// JOIN invoices WHERE payments.company_id = :company_id
// on invoices.client_id = clients.id AND payments.is_deleted = 0
// WHERE invoices.company_id = :company_id {$user_filter}
// AND clients.is_deleted = 0 AND payments.status_id IN (1,4,5,6)
// {$user_filter} AND (payments.date BETWEEN :start_date AND :end_date)
// AND invoices.is_deleted = 0 GROUP BY payments.currency_id
// AND invoices.amount > 0 "), ['company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]);
// AND invoices.status_id IN (3,4) }
// AND (invoices.date BETWEEN :start_date AND :end_date)
// GROUP BY currency_id
// "), ['company_currency' => $this->company->settings->currency_id, 'company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]);
// }
public function getInvoicesQuery($start_date, $end_date) public function getInvoicesQuery($start_date, $end_date)
{ {

View File

@ -11,4 +11,6 @@ parameters:
- 'app/DataMapper/Analytics/*' - 'app/DataMapper/Analytics/*'
universalObjectCratesClasses: universalObjectCratesClasses:
- App\DataMapper\Tax\RuleInterface - App\DataMapper\Tax\RuleInterface
- App\DataMapper\FeesAndLimits - App\DataMapper\FeesAndLimits
ignoreErrors:
- '#Call to an undefined method Illuminate\Database\Database\Eloquent\Builder::company()#'