CHANGE_IMPOERT_CD_AMT_BALANCE_CHECK

This commit is contained in:
VENKATESHWARAN 2025-10-27 13:06:51 +05:30
parent 0b04fdfa62
commit 7a968e2099
3 changed files with 98 additions and 12 deletions

View File

@ -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)) {

View File

@ -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,

View File

@ -82,14 +82,15 @@
<?php } else if ($file['status'] == 'partially success') { ?>
<?php echo $file['status']; ?>
<?php if ($file['error_data'] != 0) { ?>
<?php echo $file['status']; ?>
<a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top" title="<?= $file['error_data'] ?>"></a>
&nbsp;
<?php if ($file['error_data'] != 0) { ?>
<?php } ?>
<a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top" title="<?= $file['error_data'] ?>"></a>
&nbsp;
<?php } ?>
<?php } else if ($file['status'] == 'in-progress-partially') { ?>
@ -98,7 +99,6 @@
<a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top" title="<?= $file['error_data'] ?>"></a>
&nbsp;
<?php } ?>
<?php } else if ($file['status'] == 'failed-1') { ?>
@ -135,6 +135,11 @@
failed <a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top" title="There is no data to update"></a>
<?php } else if ($file['status'] == 'failed-7') { ?>
failed <a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top" title="<?= $file['error_data'] ?>"></a>
<?php } else { ?>
<?php echo $file['status']; ?>