芝麻web文件管理V1.00
编辑当前文件:/home/sditechnicalteam/public_html/app/Models/CreditNotes.php
belongsTo(Project::class, 'project_id'); } public function client(): BelongsTo { return $this->belongsTo(User::class, 'client_id')->withoutGlobalScope(ActiveScope::class); } public function clientdetails(): BelongsTo { return $this->belongsTo(ClientDetails::class, 'client_id', 'user_id'); } public function invoice(): BelongsTo { return $this->belongsTo(Invoice::class, 'invoice_id', 'id'); } public function invoices(): HasMany { return $this->hasMany(Invoice::class); } public function items(): HasMany { return $this->hasMany(CreditNoteItem::class, 'credit_note_id'); } public function payment(): HasMany { return $this->hasMany(Payment::class, 'invoice_id', 'invoice_id')->orderBy('paid_on', 'desc'); } public function currency(): BelongsTo { return $this->belongsTo(Currency::class, 'currency_id'); } public static function clientInvoices($clientId) { return CreditNotes::join('projects', 'projects.id', '=', 'credit_notes.project_id') ->select('projects.project_name', 'credit_notes.*') ->where('projects.client_id', $clientId) ->get(); } public function getPaidAmount() { return $this->payment->sum('amount'); } public function creditAmountUsed() { $payment = Payment::where('credit_notes_id', $this->id)->get(); return ($payment) ? $payment->sum('amount') : 0; } /* This is overall amount, cannot be used for particular credit note */ public function creditAmountRemaining() { return ($this->total) - $this->creditAmountUsed(); } public function getTotalAmountAttribute() { return $this->total + $this->adjustment_amount; } public function getIssueOnAttribute() { if (!is_null($this->issue_date)) { return Carbon::parse($this->issue_date)->format('d F, Y'); } return ''; } public function getOriginalCnNumberAttribute() { $invoiceSettings = invoice_setting(); $zero = ''; if (strlen($this->attributes['cn_number']) < $invoiceSettings->invoice_digit) { $condition = $invoiceSettings->invoice_digit - strlen($this->attributes['cn_number']); for ($i = 0; $i < $condition; $i++) { $zero = '0' . $zero; } } return '#' . $zero . $this->attributes['cn_number']; } public function getCnNumberAttribute($value) { if (!is_null($value)) { $invoiceSettings = invoice_setting(); $zero = ''; if (strlen($value) < $invoiceSettings->credit_note_digit) { $condition = $invoiceSettings->credit_note_digit - strlen($value); for ($i = 0; $i < $condition; $i++) { $zero = '0' . $zero; } } return $invoiceSettings->credit_note_prefix . '#' . $zero . $value; } return ''; } public function setIssueDateAttribute($issue_date) { $issue_date = Carbon::createFromFormat(company()->date_format, $issue_date, company()->timezone)->format('Y-m-d'); $issue_date = Carbon::parse($issue_date)->setTimezone('UTC'); $this->attributes['issue_date'] = $issue_date; } public function setDueDateAttribute($due_date) { if (!is_null($due_date)) { $due_date = Carbon::createFromFormat(company()->date_format, $due_date, company()->timezone)->format('Y-m-d'); $due_date = Carbon::parse($due_date)->setTimezone('UTC'); $this->attributes['due_date'] = $due_date; } } }