diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index 1c9fac18..4b51b5a4 100755
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -1457,6 +1457,47 @@ class EmpDataServiceController extends BaseController
//get the employee data for excel file validation
$employee_data = $this->employeePolicyModel->getInceptionEmployeeDataForExportExcel($ref_data, 1);
+ // ----------------- CD BALANCE CHECK ---------------------------------------------------------------------------
+
+ $cash_balance = $this->clientDepositModel
+ ->where('cd_ac_pk', $client_policy_data['cd_ac_pk'])
+ ->where('is_active', 1)
+ ->orderBy('id', 'DESC')
+ ->first();
+
+ if ($cash_balance == null) {
+ $balance = $this->CDMasterModel
+ ->where('client_id', $file['client_id'])
+ ->where('insurer_id', $client_policy_data['insurer_id'])
+ ->where('id', $client_policy_data['cd_ac_pk'])
+ ->first();
+
+ $cash_balance['balance'] = $balance['opening_bal'];
+ }
+
+ // Calculate the total amount from the objects
+ $totals = 0;
+ foreach ($employee_data as $item) {
+ $totals = $totals + $item['total'];
+ }
+
+ $totals = round($totals, 2);
+
+ //check CD amt insufficient only insurer, not tpa
+ if($file['insurer_or_tpa'] == 'insurer')
+ {
+ if (!empty($cash_balance)) {
+ if ((int) $cash_balance['balance'] < (int) $totals) {
+ $this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
+ $this->batchFileModel->where('id', $file_id)->set(['status' => 'failed-7', 'error_data' => 'Insufficient deposit balance. Available CD Balance: ' . $cash_balance['balance'] . ', Excel Total Amount: ' . $totals])->update();
+ return ['status' => 'error', 'message' => 'Insufficient deposit balance. Available CD Balance: ' . $cash_balance['balance'] . ', Required Amount: ' . $totals];
+ }
+ }
+ }
+
+ // ---------------- END CD BALANCE CHECK ----------------------------------------------------------------------------
+
+
if ($employee_data == null || empty($employee_data)) {
if ($insurer_or_tpa == 'tpa') {
@@ -2569,6 +2610,7 @@ class EmpDataServiceController extends BaseController
'event_type' => $file['event_type'],
];
+ $client_policy_data = $this->clientPolicyModel->where('id', $client_policy_id)->first();
$file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
@@ -2691,6 +2733,47 @@ class EmpDataServiceController extends BaseController
// dd($endorsement_data, $excel_data);
+ // ----------------- CD BALANCE CHECK ---------------------------------------------------------------------------
+
+ $cash_balance = $this->clientDepositModel
+ ->where('cd_ac_pk', $client_policy_data['cd_ac_pk'])
+ ->where('is_active', 1)
+ ->orderBy('id', 'DESC')
+ ->first();
+
+ if ($cash_balance == null) {
+ $balance = $this->CDMasterModel
+ ->where('client_id', $file['client_id'])
+ ->where('insurer_id', $client_policy_data['insurer_id'])
+ ->where('id', $client_policy_data['cd_ac_pk'])
+ ->first();
+
+ $cash_balance['balance'] = $balance['opening_bal'];
+ }
+
+ // Calculate the total amount from the objects
+ $totals = 0;
+ foreach ($endorsement_data as $item) {
+ $totals = $totals + $item['total'];
+ }
+
+ $totals = round($totals, 2);
+
+ //check CD amt insufficient only insurer, not tpa
+ if($file['insurer_or_tpa'] == 'insurer')
+ {
+ if (!empty($cash_balance)) {
+ if ((int) $cash_balance['balance'] < (int) $totals) {
+ $this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
+ $this->batchFileModel->where('id', $file_id)->set(['status' => 'failed-7', 'error_data' => 'Insufficient deposit balance. Available CD Balance: ' . $cash_balance['balance'] . ', Excel Total Amount: ' . $totals])->update();
+ return ['status' => 'error', 'message' => 'Insufficient deposit balance. Available CD Balance: ' . $cash_balance['balance'] . ', Required Amount: ' . $totals];
+ }
+ }
+ }
+
+ // ---------------- END CD BALANCE CHECK ----------------------------------------------------------------------------
+
+
if ($endorsement_data == null || empty($endorsement_data)) {
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index 0dbac06f..0005c651 100755
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -388,13 +388,11 @@ class EmployeeController extends AdminController
batch_files.client_branch_id,
CASE
- WHEN batch_files.status = 'partially success' OR batch_files.status = 'in-progress-partially' THEN
- batch_files.error_data
- ELSE
- NULL
+ WHEN batch_files.status IN ('partially success', 'in-progress-partially', 'failed-7')
+ THEN batch_files.error_data
+ ELSE NULL
END AS error_data,
-
clients.short_name as client_short_name,
client_branch.branch_name,
client_policy.policy_no,
diff --git a/app/Views/batch_list.php b/app/Views/batch_list.php
index cbbc1731..d4b69dcf 100755
--- a/app/Views/batch_list.php
+++ b/app/Views/batch_list.php
@@ -82,14 +82,15 @@
-
-
+
-
-
+
-
+
+
+
+
@@ -98,7 +99,6 @@
-
@@ -135,6 +135,11 @@
failed
+
+
+ failed
+