diff --git a/app/Jobs/Util/VersionCheck.php b/app/Jobs/Util/VersionCheck.php index c21fb1d4ac63..6d40a3e7172f 100644 --- a/app/Jobs/Util/VersionCheck.php +++ b/app/Jobs/Util/VersionCheck.php @@ -38,6 +38,7 @@ class VersionCheck implements ShouldQueue $version_file = trim(@file_get_contents(config('ninja.version_url'))); if (Ninja::isSelfHost() && $version_file) { + /** @var \App\Models\Account $account **/ Account::whereNotNull('id')->update(['latest_version' => $version_file]); } diff --git a/app/Mail/Engine/CreditEmailEngine.php b/app/Mail/Engine/CreditEmailEngine.php index 2bf98f78410d..09ef15e70abb 100644 --- a/app/Mail/Engine/CreditEmailEngine.php +++ b/app/Mail/Engine/CreditEmailEngine.php @@ -69,7 +69,6 @@ class CreditEmailEngine extends BaseEmailEngine 'company' => $this->credit->company->present()->name(), 'amount' => Number::formatMoney($this->credit->balance, $this->client), ], - null, $this->client->locale() ); @@ -89,7 +88,6 @@ class CreditEmailEngine extends BaseEmailEngine 'number' => $this->credit->number, 'account' => $this->credit->company->present()->name(), ], - null, $this->client->locale() ); } @@ -101,7 +99,6 @@ class CreditEmailEngine extends BaseEmailEngine 'company' => $this->credit->company->present()->name(), 'amount' => Number::formatMoney($this->credit->balance, $this->client), ], - null, $this->client->locale() )."\n\n".$this->invitation->getLink(); diff --git a/app/Mail/Engine/InvoiceEmailEngine.php b/app/Mail/Engine/InvoiceEmailEngine.php index 46604e71690e..debd20eaa6e6 100644 --- a/app/Mail/Engine/InvoiceEmailEngine.php +++ b/app/Mail/Engine/InvoiceEmailEngine.php @@ -76,7 +76,6 @@ class InvoiceEmailEngine extends BaseEmailEngine 'company' => $this->invoice->company->present()->name(), 'amount' => Number::formatMoney($this->invoice->balance, $this->client), ], - null, $this->client->locale() ); @@ -90,7 +89,6 @@ class InvoiceEmailEngine extends BaseEmailEngine 'company' => $this->invoice->company->present()->name(), 'amount' => Number::formatMoney($this->invoice->balance, $this->client), ], - null, $this->client->locale() )."\n\n".$this->invitation->getLink(); @@ -109,7 +107,6 @@ class InvoiceEmailEngine extends BaseEmailEngine 'number' => $this->invoice->number, 'account' => $this->invoice->company->present()->name(), ], - null, $this->client->locale() ); } diff --git a/app/Mail/Engine/PurchaseOrderEmailEngine.php b/app/Mail/Engine/PurchaseOrderEmailEngine.php index 4d104cc2d149..4bdd16f17e4a 100644 --- a/app/Mail/Engine/PurchaseOrderEmailEngine.php +++ b/app/Mail/Engine/PurchaseOrderEmailEngine.php @@ -73,7 +73,6 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine 'company' => $this->purchase_order->company->present()->name(), 'amount' => Number::formatMoney($this->purchase_order->balance, $this->vendor), ], - null, $this->vendor->company->locale() ); @@ -86,7 +85,6 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine 'company' => $this->purchase_order->company->present()->name(), 'amount' => Number::formatMoney($this->purchase_order->balance, $this->vendor), ], - null, $this->vendor->company->locale() )."\n\n".$this->invitation->getLink(); @@ -105,7 +103,6 @@ class PurchaseOrderEmailEngine extends BaseEmailEngine 'number' => $this->purchase_order->number, 'account' => $this->purchase_order->company->present()->name(), ], - null, $this->vendor->company->locale() ); } diff --git a/app/Mail/Engine/QuoteEmailEngine.php b/app/Mail/Engine/QuoteEmailEngine.php index 440624a3975f..8e36291b0d42 100644 --- a/app/Mail/Engine/QuoteEmailEngine.php +++ b/app/Mail/Engine/QuoteEmailEngine.php @@ -68,7 +68,6 @@ class QuoteEmailEngine extends BaseEmailEngine 'company' => $this->quote->company->present()->name(), 'amount' => Number::formatMoney($this->quote->amount, $this->client), ], - null, $this->client->locale() ); @@ -88,7 +87,6 @@ class QuoteEmailEngine extends BaseEmailEngine 'number' => $this->quote->number, 'account' => $this->quote->company->present()->name(), ], - null, $this->client->locale() ); } @@ -100,7 +98,6 @@ class QuoteEmailEngine extends BaseEmailEngine 'company' => $this->quote->company->present()->name(), 'amount' => Number::formatMoney($this->quote->amount, $this->client), ], - null, $this->client->locale() )."\n\n".$this->invitation->getLink(); diff --git a/app/Mail/MigrationCompleted.php b/app/Mail/MigrationCompleted.php index 3052f7adf792..9b62fb6fbab7 100644 --- a/app/Mail/MigrationCompleted.php +++ b/app/Mail/MigrationCompleted.php @@ -1,36 +1,33 @@ company_id = $company_id; - $this->check_data = $check_data; - $this->db = $db; } /** diff --git a/app/Mail/RecurringInvoice/ClientContactRequestCancellationObject.php b/app/Mail/RecurringInvoice/ClientContactRequestCancellationObject.php index 0ae4682d1c70..ab1011b08b9f 100644 --- a/app/Mail/RecurringInvoice/ClientContactRequestCancellationObject.php +++ b/app/Mail/RecurringInvoice/ClientContactRequestCancellationObject.php @@ -11,13 +11,16 @@ namespace App\Mail\RecurringInvoice; +use App\Utils\Ninja; +use App\Models\Company; use App\Models\ClientContact; use App\Models\RecurringInvoice; -use App\Utils\Ninja; use Illuminate\Support\Facades\App; class ClientContactRequestCancellationObject { + public Company $company; + public function __construct(public RecurringInvoice $recurring_invoice, public ClientContact $client_contact, private bool $gateway_refund_attempted) { } diff --git a/app/Models/Account.php b/app/Models/Account.php index 46ba1c330ace..0cdc5a09e373 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -78,54 +78,12 @@ use Laracasts\Presenter\PresentableTrait; * @property-read mixed $hashed_id * @property-read \App\Models\Payment|null $payment * @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 \Database\Factories\AccountFactory factory($count = null, $state = []) * @method static \Illuminate\Database\Eloquent\Builder|Account newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|Account newQuery() * @method static \Illuminate\Database\Eloquent\Builder|Account query() * @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 with() * @method static \Illuminate\Database\Eloquent\Builder|Account count() diff --git a/app/Models/Activity.php b/app/Models/Activity.php index 84d9bbda5ef1..7105dbda7298 100644 --- a/app/Models/Activity.php +++ b/app/Models/Activity.php @@ -445,6 +445,8 @@ class Activity extends StaticModel { $system = ctrans('texts.system'); + $translation = ''; + match($variable) { ':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 ?? '']], diff --git a/app/Models/BankIntegration.php b/app/Models/BankIntegration.php index c701831b162b..d6ec7ca94827 100644 --- a/app/Models/BankIntegration.php +++ b/app/Models/BankIntegration.php @@ -43,7 +43,6 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @property-read \Illuminate\Database\Eloquent\Collection $transactions * @property-read int|null $transactions_count * @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 \Database\Factories\BankIntegrationFactory factory($count = null, $state = []) * @method static \Illuminate\Database\Eloquent\Builder|BankIntegration filter(\App\Filters\QueryFilters $filters) diff --git a/app/Models/BankSubaccount.php b/app/Models/BankSubaccount.php index 29cd4a0de5de..c25f4d539750 100644 --- a/app/Models/BankSubaccount.php +++ b/app/Models/BankSubaccount.php @@ -34,9 +34,6 @@ class BankSubaccount extends BaseModel { use SoftDeletes; - /** - * @var array - */ /** * @return BelongsTo */ diff --git a/app/Models/BaseModel.php b/app/Models/BaseModel.php index f50ecb81cac2..ac19cb1f9054 100644 --- a/app/Models/BaseModel.php +++ b/app/Models/BaseModel.php @@ -27,6 +27,7 @@ use Illuminate\Database\Eloquent\ModelNotFoundException as ModelNotFoundExceptio * Class BaseModel * * @method scope() static + * @method company() static * @package App\Models * @property-read mixed $hashed_id * @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\HasMany|BaseModel orderBy() * @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 newModelQuery($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 create($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 invitations() * @method static \Illuminate\Database\Eloquent\Builder|BaseModel whereHas($query) * @property-read \Illuminate\Database\Eloquent\Collection $invitations * @property-read int|null $invitations_count - * + * @method static \Illuminate\Database\Eloquent\Builder company() * @method int companyId() * @method createInvitations() + * @method Builder scopeCompany(Builder $builder) * @mixin \Eloquent * @mixin \Illuminate\Database\Eloquent\Builder */ @@ -113,10 +114,8 @@ class BaseModel extends Model return parent::__call($method, $params); } - /* - V2 type of scope - */ - public function scopeCompany($query) + + public function scopeCompany($query): \Illuminate\Database\Eloquent\Builder { /** @var \App\Models\User $user */ $user = auth()->user(); @@ -126,8 +125,8 @@ class BaseModel extends Model return $query; } - /* - V1 type of scope + /** + * @deprecated version */ public function scopeScope($query) { diff --git a/app/Models/Company.php b/app/Models/Company.php index 11de4e8b9f93..d9285075983e 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -733,48 +733,42 @@ class Company extends BaseModel return $this->belongsTo(PaymentType::class); } - /** - * @return mixed - */ - public function expenses() + public function expenses(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(Expense::class)->withTrashed(); } - /** - * @return mixed - */ - public function payments() + public function payments(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(Payment::class)->withTrashed(); } - public function tokens() + public function tokens(): \Illuminate\Database\Eloquent\Relations\HasMany { 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); } - public function system_logs() + public function system_logs(): \Illuminate\Database\Eloquent\Relations\HasMany { 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'); } - public function tokens_hashed() + public function tokens_hashed(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(CompanyToken::class); } - public function company_users() + public function company_users(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(CompanyUser::class)->withTrashed(); } @@ -811,7 +805,7 @@ class Company extends BaseModel ->firstOrFail(); } - public function domain() + public function domain(): string { if (Ninja::isHosted()) { if ($this->portal_mode == 'domain' && strlen($this->portal_domain) > 3) { @@ -829,12 +823,12 @@ class Company extends BaseModel return new NotificationService($this, $notification); } - public function routeNotificationForSlack($notification) + public function routeNotificationForSlack($notification): string { return $this->slack_webhook_url; } - public function file_path() + public function file_path(): string { return $this->company_key.'/'; } @@ -873,7 +867,7 @@ class Company extends BaseModel return $data; } - public function timezone_offset() + public function timezone_offset(): int { $offset = 0; diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index 9bc2e06a00bb..248f946fe9ce 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -318,17 +318,17 @@ class RecurringInvoice extends BaseModel 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(); } - public function invitations() + public function invitations(): \Illuminate\Database\Eloquent\Relations\HasMany { return $this->hasMany(RecurringInvoiceInvitation::class); } - public function documents() + public function documents(): \Illuminate\Database\Eloquent\Relations\MorphMany { return $this->morphMany(Document::class, 'documentable'); } diff --git a/app/Models/RecurringQuote.php b/app/Models/RecurringQuote.php index 76d90a1da778..8652c8edca6d 100644 --- a/app/Models/RecurringQuote.php +++ b/app/Models/RecurringQuote.php @@ -61,6 +61,7 @@ use Laracasts\Presenter\PresentableTrait; * @property string $balance * @property string|null $last_viewed * @property int $frequency_id + * @property int $design_id * @property string|null $last_sent_date * @property string|null $next_send_date * @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 query() * @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 withoutTrashed() * @property-read \Illuminate\Database\Eloquent\Collection $activities @@ -176,61 +118,6 @@ use Laracasts\Presenter\PresentableTrait; * @property-read \Illuminate\Database\Eloquent\Collection $history * @property-read \Illuminate\Database\Eloquent\Collection $invitations * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes - * @property-read \Illuminate\Database\Eloquent\Collection $activities - * @property-read \Illuminate\Database\Eloquent\Collection $documents - * @property-read \Illuminate\Database\Eloquent\Collection $history - * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * @property-read \Illuminate\Database\Eloquent\Collection $quotes * @mixin \Eloquent */ class RecurringQuote extends BaseModel diff --git a/app/Models/Webhook.php b/app/Models/Webhook.php index 05eab5acd514..5a921eb1d8f2 100644 --- a/app/Models/Webhook.php +++ b/app/Models/Webhook.php @@ -39,18 +39,6 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @method static \Illuminate\Database\Eloquent\Builder|Webhook onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|Webhook query() * @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 withoutTrashed() * @method static \Illuminate\Database\Eloquent\Builder|Webhook where() @@ -268,12 +256,12 @@ class Webhook extends BaseModel 'deleted_at' => 'timestamp', ]; - public function user() + public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(User::class)->withTrashed(); } - public function company() + public function company(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Services/Chart/ChartQueries.php b/app/Services/Chart/ChartQueries.php index 9d7172ca13e7..e4b881c93688 100644 --- a/app/Services/Chart/ChartQueries.php +++ b/app/Services/Chart/ChartQueries.php @@ -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]); } - 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; @@ -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]); } - // public function getPaymentsQuery($start_date, $end_date) - // { - // $user_filter = $this->is_admin ? '' : 'AND clients.user_id = '.$this->user->id; + public function getRevenueQuery($start_date, $end_date) + { + $user_filter = $this->is_admin ? '' : 'AND payments.user_id = '.$this->user->id; - // return DB::select(DB::raw(" - // SELECT - // 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 - // FROM payments - // JOIN invoices - // on invoices.client_id = clients.id - // WHERE invoices.company_id = :company_id - // AND clients.is_deleted = 0 - // {$user_filter} - // AND invoices.is_deleted = 0 - // AND invoices.amount > 0 - // 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]); - // } + return DB::select(DB::raw(" + SELECT + sum(payments.amount - payments.refunded) as paid_to_date, + payments.currency_id AS currency_id + FROM payments + WHERE payments.company_id = :company_id + AND payments.is_deleted = 0 + {$user_filter} + AND payments.status_id IN (1,4,5,6) + AND (payments.date BETWEEN :start_date AND :end_date) + GROUP BY payments.currency_id + "), ['company_id' => $this->company->id, 'start_date' => $start_date, 'end_date' => $end_date]); + } public function getInvoicesQuery($start_date, $end_date) { diff --git a/phpstan.neon b/phpstan.neon index 6e4f01ab202e..fbcbb4b248a7 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -11,4 +11,6 @@ parameters: - 'app/DataMapper/Analytics/*' universalObjectCratesClasses: - App\DataMapper\Tax\RuleInterface - - App\DataMapper\FeesAndLimits \ No newline at end of file + - App\DataMapper\FeesAndLimits + ignoreErrors: + - '#Call to an undefined method Illuminate\Database\Database\Eloquent\Builder::company()#' \ No newline at end of file