fix: cascade delete related transactions and ledgers for sales and expenses
Ensure data integrity by cleaning up dependent records when deleting Sale or Expense models. This prevents orphaned transactions and ledgers in the database.
This commit is contained in:
@@ -25,6 +25,20 @@ class Sale extends Model
|
||||
return $this->morphMany(Transaction::class, 'transactionable');
|
||||
}
|
||||
|
||||
protected static function booted()
|
||||
{
|
||||
static::deleting(function ($sale) {
|
||||
$sale->transactions->each(function ($transaction) {
|
||||
// Delete associated ledgers first to trigger any ledger deletion logic if exists
|
||||
$transaction->ledgers->each(function ($ledger) {
|
||||
$ledger->balances()->delete(); // Delete balances associated with ledger
|
||||
$ledger->delete();
|
||||
});
|
||||
$transaction->delete();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public function branch(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Branch::class);
|
||||
|
||||
Reference in New Issue
Block a user