|
@@ -38,9 +38,18 @@ class TransactionFactory extends Factory
|
38
|
38
|
public function configure(): static
|
39
|
39
|
{
|
40
|
40
|
return $this->afterCreating(function (Transaction $transaction) {
|
41
|
|
- $transaction->journalEntries()->create([
|
|
41
|
+ $chartAccount = $transaction->account;
|
|
42
|
+ $bankAccount = $transaction->bankAccount->account;
|
|
43
|
+
|
|
44
|
+ $debitAccount = $transaction->type->isWithdrawal() ? $chartAccount : $bankAccount;
|
|
45
|
+ $creditAccount = $transaction->type->isWithdrawal() ? $bankAccount : $chartAccount;
|
|
46
|
+
|
|
47
|
+ if ($debitAccount === null || $creditAccount === null) {
|
|
48
|
+ return;
|
|
49
|
+ }
|
|
50
|
+
|
|
51
|
+ $debitAccount->journalEntries()->create([
|
42
|
52
|
'company_id' => $transaction->company_id,
|
43
|
|
- 'account_id' => $transaction->account_id,
|
44
|
53
|
'transaction_id' => $transaction->id,
|
45
|
54
|
'type' => 'debit',
|
46
|
55
|
'amount' => $transaction->amount,
|
|
@@ -49,9 +58,8 @@ class TransactionFactory extends Factory
|
49
|
58
|
'updated_by' => $transaction->updated_by,
|
50
|
59
|
]);
|
51
|
60
|
|
52
|
|
- $transaction->journalEntries()->create([
|
|
61
|
+ $creditAccount->journalEntries()->create([
|
53
|
62
|
'company_id' => $transaction->company_id,
|
54
|
|
- 'account_id' => $transaction->account_id,
|
55
|
63
|
'transaction_id' => $transaction->id,
|
56
|
64
|
'type' => 'credit',
|
57
|
65
|
'amount' => $transaction->amount,
|