2025-04-27 22:36:03 +07:00

54 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Billing extends Model
{
use HasFactory;
protected $table = 'billing';
protected $primaryKey = 'IdBilling';
protected $fillable = [
'IdRegistrasi',
'TanggalBilling',
'TotalBiaya',
'Dibayar',
'Sisa',
'StatusPembayaran',
'Keterangan'
];
public function registrasi()
{
return $this->belongsTo(TrRegistrasi::class, 'IdRegistrasi', 'IdRegistrasi');
}
// Mendapatkan detail transaksi untuk billing ini
public function getTransaksiDetails()
{
return $this->registrasi->transaksi;
}
// Menghitung total biaya dari semua transaksi
public function calculateTotalBiaya()
{
$total = 0;
foreach ($this->getTransaksiDetails() as $transaksi) {
$total += $transaksi->tindakan->TarifTindakan * $transaksi->JmlTindakan;
}
return $total;
}
// Mengupdate sisa pembayaran
public function updateSisa()
{
$this->Sisa = $this->TotalBiaya - $this->Dibayar;
$this->StatusPembayaran = ($this->Sisa <= 0) ? 'Lunas' : 'Belum Lunas';
$this->save();
}
}