diff --git a/app/Booking.php b/app/Booking.php index bcfaf56c..0ff1679f 100644 --- a/app/Booking.php +++ b/app/Booking.php @@ -100,15 +100,17 @@ class Booking extends Model return $this->hasOne(Invoice::class); } - public function delete() - { - $this->supplierBooking()->delete(); - $this->chinaBankSlip()->delete(); - $this->userBankSlip()->delete(); - $this->purchaseOrder()->delete(); - $this->invoice()->delete(); - - return parent::delete(); + public static function boot() { + parent::boot(); + self::deleting(function($booking) { + $booking->userBankSlip()->delete(); + $booking->supplierBooking()->delete(); + $booking->chinaBankSlip()->each(function($bankslip) { + $bankslip->delete(); + }); + $booking->purchaseOrder()->delete(); + $booking->invoice()->delete(); + }); } diff --git a/app/Invoice.php b/app/Invoice.php index 1e07a23f..2608bf2e 100644 --- a/app/Invoice.php +++ b/app/Invoice.php @@ -20,11 +20,15 @@ class Invoice extends Model return $this->hasMany(InvoiceStatuses::class); } - public function delete() - { - $this->invoiceDetails()->delete(); - $this->invoiceStatuses()->delete(); - - return parent::delete(); + public static function boot() { + parent::boot(); + self::deleting(function($invoice) { + $invoice->invoiceDetails()->each(function($invoiceDetails) { + $invoiceDetails->delete(); + }); + $invoice->invoiceStatuses()->each(function($invoiceStatuses) { + $invoiceStatuses->delete(); + }); + }); } }