Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/topnotchcv/public_html/app/Models/Invoice.php
<?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;
    }
}

Spamworldpro Mini