10, 'number' => 10, 'bank_name' => 10, 'bank_phone' => 5, 'bank_address' => 2, ]; public function currency() { return $this->belongsTo('App\Models\Setting\Currency', 'currency_code', 'code'); } public function invoice_payments() { return $this->hasMany('App\Models\Income\InvoicePayment'); } public function revenues() { return $this->hasMany('App\Models\Income\Revenue'); } public function bill_payments() { return $this->hasMany('App\Models\Expense\BillPayment'); } public function payments() { return $this->hasMany('App\Models\Expense\Payment'); } public function canDelete() { $error = false; $bill_payments = $this->bill_payments(); if ($bill_payments->count()) { $error['bills'] = $bill_payments->count(); } $payments = $this->payments(); if ($payments->count()) { $error['payments'] = $payments->count(); } $invoice_payments = $this->invoice_payments(); if ($invoice_payments->count()) { $error['invoices'] = $invoice_payments->count(); } $revenues = $this->revenues(); if ($revenues->count()) { $error['revenues'] = $revenues->count(); } if ($error) { return $error; } return true; } /** * Get the current balance. * * @return string */ public function getBalanceAttribute() { // Opening Balance $total = $this->opening_balance; // Sum invoices foreach ($this->invoice_payments as $item) { $total += $item->amount; } // Sum revenues foreach ($this->revenues as $item) { $total += $item->amount; } // Subtract bills foreach ($this->bill_payments as $item) { $total -= $item->amount; } // Subtract payments foreach ($this->payments as $item) { $total -= $item->amount; } return $total; } }