![]() Server : Apache System : Linux server2.thebrownbagmedia.com 4.18.0-553.34.1.el8_10.x86_64 #1 SMP Wed Jan 8 09:40:06 EST 2025 x86_64 User : topnotchcv ( 1029) PHP Version : 8.1.32 Disable Function : NONE Directory : /home/topnotchcv/public_html/app/Models/ |
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Invoice extends Model { use HasFactory; protected $fillable = [ 'case_id', 'client_id', 'advocate_id', 'date', 'status', 'parent_id', ]; public static $status = [ 'open' => 'Open', 'paid' => 'Paid', 'partial_paid' => 'Partial Paid', ]; public function InvoiceItem() { return $this->hasMany('App\Models\InvoiceItem', 'invoice_id', 'id'); } public function payments() { return $this->hasMany('App\Models\InvoicePayment', 'invoice_id', 'id'); } public function user() { return $this->hasOne('App\Models\User', 'id', 'client_id'); } public function case() { return $this->hasOne('App\Models\Cases', 'id', 'case_id'); } public function advocates() { return $this->hasOne('App\Models\User', 'id', 'advocate_id'); } public function clients() { return $this->hasOne('App\Models\User', 'id', 'client_id'); } public function getInvoiceSubTotalAmount() { $invoiceSubTotal = 0; foreach ($this->InvoiceItem as $item) { $invoiceSubTotal += $item->amount; } return $invoiceSubTotal; } public function getInvoiceDueAmount() { $invoiceDue = 0; foreach ($this->payments as $payment) { $invoiceDue += $payment->amount; } return $this->getInvoiceSubTotalAmount() - $invoiceDue; } public static function statusChange($invoice_id, $status) { $invoice = Invoice::find($invoice_id); $invoice->status = $status; $invoice->save(); return $invoice; } }