diff --git a/app/Jobs/ProcessAccountDataJob.php b/app/Jobs/ProcessAccountDataJob.php index 067df63..d597ff2 100644 --- a/app/Jobs/ProcessAccountDataJob.php +++ b/app/Jobs/ProcessAccountDataJob.php @@ -25,6 +25,8 @@ private int $processedCount = 0; private int $errorCount = 0; + private $balanceData = []; + /** * Create a new job instance. */ @@ -147,6 +149,16 @@ if (empty($data['closure_date']) || $data['closure_date'] == "" || $data['closure_date'] == null) { $data['closure_date'] = null; } + + // Store balance data separately before removing from Account data + $this->balanceData = [ + 'open_actual_bal' => empty($data['open_actual_bal']) ? 0 : $data['open_actual_bal'], + 'open_cleared_bal' => empty($data['open_cleared_bal']) ? 0 : $data['open_cleared_bal'], + ]; + + // Remove balance fields from Account data + unset($data['open_actual_bal']); + unset($data['open_cleared_bal']); } private function saveRecord(array $data, int $rowCount, string $filePath) @@ -159,7 +171,7 @@ $account->fill($data); $account->save(); - $this->saveAccountBalance($data); + $this->saveAccountBalance($data['account_number']); $this->processedCount++; } } catch (Exception $e) { @@ -168,17 +180,17 @@ } } - private function saveAccountBalance(array $data) + private function saveAccountBalance(string $accountNumber) : void { // Store the opening balances in the AccountBalance model for this period - if (isset($data['open_actual_bal']) || isset($data['open_cleared_bal'])) { + if (isset($this->balanceData['open_actual_bal']) || isset($this->balanceData['open_cleared_bal'])) { // Prepare balance data for bulk insert/update $balanceData = [ - 'account_number' => $data['account_number'], + 'account_number' => $accountNumber, 'period' => $this->period, - 'actual_balance' => empty($data['open_actual_bal']) ? 0 : $data['open_actual_bal'], - 'cleared_balance' => empty($data['open_cleared_bal']) ? 0 : $data['open_cleared_bal'], + 'actual_balance' => $this->balanceData['open_actual_bal'], + 'cleared_balance' => $this->balanceData['open_cleared_bal'], 'created_at' => now(), 'updated_at' => now() ]; @@ -186,7 +198,7 @@ // Use updateOrInsert to reduce queries AccountBalance::updateOrInsert( [ - 'account_number' => $data['account_number'], + 'account_number' => $accountNumber, 'period' => $this->period ], $balanceData