Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev
This commit is contained in:
commit
78aab2055d
@ -783,19 +783,11 @@ class ClientController extends AdminController
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
|
||||||
// 'cd_ac_no' => [
|
|
||||||
// 'rules' => 'required|regex_match[/^[a-zA-Z0-9\/_\\-]+$/]',
|
|
||||||
// 'errors' => [
|
|
||||||
// 'required' => 'Account number is required',
|
|
||||||
// 'regex_match' => 'Account number can only contain letters, numbers, slashes (/), underscores (_), and hyphens (-)',
|
|
||||||
// ]
|
|
||||||
// ],
|
|
||||||
|
|
||||||
'cd_ac_no' => [
|
'cd_ac_no' => [
|
||||||
'rules' => 'required|numeric',
|
'rules' => 'required|regex_match[/^[a-zA-Z0-9\/\-_]+$/]',
|
||||||
'errors' => [
|
'errors' => [
|
||||||
'required' => 'CD Account number is required.',
|
'required' => 'CD Account number is required.',
|
||||||
'numeric' => 'CD Account number must contain only numbers.',
|
'regex_match' => 'CD Account number can only contain letters, numbers, hyphens(-), underscores(_), and slashes(/).',
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@ -336,9 +336,9 @@ class EmployeeController extends AdminController
|
|||||||
//endof validation process
|
//endof validation process
|
||||||
if (isset($result['error_summary']) && count($result['error_summary'])) {
|
if (isset($result['error_summary']) && count($result['error_summary'])) {
|
||||||
if(!empty($post_data)){
|
if(!empty($post_data)){
|
||||||
return ['status' => false, 'message' => 'file rejected with errors', 'file_id' => $file_id];
|
return ['status' => false, 'message' => 'File rejected with errors', 'file_id' => $file_id];
|
||||||
}else{
|
}else{
|
||||||
return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'file rejected with errors'], 200);
|
return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'File rejected with errors'], 200);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else //if file size greater than 1 add the file as job
|
} else //if file size greater than 1 add the file as job
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use CodeIgniter\Model;
|
use CodeIgniter\Model;
|
||||||
|
use Kint;
|
||||||
|
|
||||||
class PolicyTransactionModel extends Model
|
class PolicyTransactionModel extends Model
|
||||||
{
|
{
|
||||||
@ -3168,9 +3169,10 @@
|
|||||||
pt.installment,
|
pt.installment,
|
||||||
nhance_branch.branch_name as nhance_branch,
|
nhance_branch.branch_name as nhance_branch,
|
||||||
|
|
||||||
DATE_FORMAT(pt.policy_issue_date, '%d %b %Y') AS policy_issue_date,
|
DATE_FORMAT(pcsd.pt_policy_issue_date, '%d %b %Y') AS policy_issue_date,
|
||||||
DATE_FORMAT(pcsd.pt_policy_issue_date, '%b %Y') AS policy_issue_month,
|
DATE_FORMAT(pcsd.pt_policy_issue_date, '%b %Y') AS policy_issue_month,
|
||||||
pt.month as statement_month,
|
DATE_FORMAT(pcsd.pt_policy_issue_date, '%b %Y') AS statement_year_month,
|
||||||
|
pcsd.pt_policy_issue_date as statement_month,
|
||||||
|
|
||||||
'no statement uploaded' AS statement_uploaded,
|
'no statement uploaded' AS statement_uploaded,
|
||||||
|
|
||||||
@ -3331,8 +3333,9 @@
|
|||||||
pt.installment,
|
pt.installment,
|
||||||
nhance_branch.branch_name as nhance_branch,
|
nhance_branch.branch_name as nhance_branch,
|
||||||
|
|
||||||
DATE_FORMAT(pt.policy_issue_date, '%d %b %Y') AS policy_issue_date,
|
DATE_FORMAT(pcsd.pt_policy_issue_date, '%d %b %Y') AS policy_issue_date,
|
||||||
DATE_FORMAT(IF(insq.month IS NULL, pcsd.pt_policy_issue_date, insq.month),'%b %Y') AS policy_issue_month,
|
DATE_FORMAT(IF(insq.month IS NULL, pcsd.pt_policy_issue_date, insq.month),'%b %Y') AS policy_issue_month,
|
||||||
|
DATE_FORMAT(insq.month, '%b %Y') AS statement_year_month,
|
||||||
insq.month as statement_month,
|
insq.month as statement_month,
|
||||||
|
|
||||||
'statement uploaded' AS statement_uploaded,
|
'statement uploaded' AS statement_uploaded,
|
||||||
@ -3392,7 +3395,7 @@
|
|||||||
(pcsd.agreed_tp_per + pcsd.agreed_tep_per) AS agreed_tp_or_ter_per,
|
(pcsd.agreed_tp_per + pcsd.agreed_tep_per) AS agreed_tp_or_ter_per,
|
||||||
|
|
||||||
CASE
|
CASE
|
||||||
WHEN insq.month = pt.month THEN pcsd.exp_amt
|
WHEN DATE_FORMAT(insq.month, '%Y-%m') = DATE_FORMAT(pcsd.pt_policy_issue_date, '%Y-%m') THEN pcsd.exp_amt
|
||||||
ELSE 0
|
ELSE 0
|
||||||
END AS total_irda_amt_2,
|
END AS total_irda_amt_2,
|
||||||
|
|
||||||
@ -3521,8 +3524,9 @@
|
|||||||
pt.installment,
|
pt.installment,
|
||||||
nhance_branch.branch_name as nhance_branch,
|
nhance_branch.branch_name as nhance_branch,
|
||||||
|
|
||||||
DATE_FORMAT(pt.policy_issue_date, '%d %b %Y') AS policy_issue_date,
|
DATE_FORMAT(pcsd.pt_policy_issue_date, '%d %b %Y') AS policy_issue_date,
|
||||||
DATE_FORMAT(IF(insq.month IS NULL, pcsd.pt_policy_issue_date, insq.month),'%b %Y') AS policy_issue_month,
|
DATE_FORMAT(IF(insq.month IS NULL, pcsd.pt_policy_issue_date, insq.month),'%b %Y') AS policy_issue_month,
|
||||||
|
DATE_FORMAT(insq.month, '%b %Y') AS statement_year_month,
|
||||||
insq.month as statement_month,
|
insq.month as statement_month,
|
||||||
|
|
||||||
'statement uploaded' AS statement_uploaded,
|
'statement uploaded' AS statement_uploaded,
|
||||||
@ -3704,7 +3708,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// $countofalldata = count($result);
|
// $countofalldata = count($result);
|
||||||
// dd($result);
|
// Kint::dump($result);
|
||||||
// dd($this->db->getLastQuery()->getQuery());
|
// dd($this->db->getLastQuery()->getQuery());
|
||||||
|
|
||||||
$keys = [];
|
$keys = [];
|
||||||
@ -3732,7 +3736,7 @@
|
|||||||
|
|
||||||
// ✅ Stable key (NO reward flag)
|
// ✅ Stable key (NO reward flag)
|
||||||
$key = implode('|', [
|
$key = implode('|', [
|
||||||
$row['statement_month'],
|
$row['statement_year_month'],
|
||||||
$row['insurer_name'],
|
$row['insurer_name'],
|
||||||
$row['policy_no'],
|
$row['policy_no'],
|
||||||
$endorsement_number,
|
$endorsement_number,
|
||||||
@ -3753,7 +3757,7 @@
|
|||||||
// Reindex final output
|
// Reindex final output
|
||||||
$result = array_values($filtered);
|
$result = array_values($filtered);
|
||||||
|
|
||||||
// dd($countofalldata, $result);
|
// dd($result);
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -3776,7 +3780,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// dd($totalIrdaMap);
|
// dd($totalBilled, $totalIrdaMap);
|
||||||
|
|
||||||
$ptSeen = [];
|
$ptSeen = [];
|
||||||
$final = [];
|
$final = [];
|
||||||
@ -3785,8 +3789,10 @@
|
|||||||
$ptId = $row['pt_id'].'-'.$row['insurer_id'];
|
$ptId = $row['pt_id'].'-'.$row['insurer_id'];
|
||||||
if (!isset($ptSeen[$ptId])) {
|
if (!isset($ptSeen[$ptId])) {
|
||||||
// First entry → set unbilled amount
|
// First entry → set unbilled amount
|
||||||
$row['unbilled_amount'] = (float) (($totalIrdaMap[$ptId] ?? 0) - ($totalBilled[$ptId] ?? 0)) ?? '0.00';
|
$row['unbilled_amount'] = round(
|
||||||
|
(float) (($totalIrdaMap[$ptId] ?? 0) - ($totalBilled[$ptId] ?? 0)),
|
||||||
|
2
|
||||||
|
);
|
||||||
$ptSeen[$ptId] = true;
|
$ptSeen[$ptId] = true;
|
||||||
} else {
|
} else {
|
||||||
// Other entries → zero
|
// Other entries → zero
|
||||||
|
|||||||
@ -287,6 +287,8 @@ input:checked + .slider:before {
|
|||||||
var message = (PrimaryKey === '') ? 'Client General Info Created successfully' : 'Client General Info Updated successfully';
|
var message = (PrimaryKey === '') ? 'Client General Info Created successfully' : 'Client General Info Updated successfully';
|
||||||
toastr.success(message, 'Success');
|
toastr.success(message, 'Success');
|
||||||
$submitButton.prop('disabled', false);
|
$submitButton.prop('disabled', false);
|
||||||
|
let client_name = res.data.client_name ? (' - ' + res.data.client_name) : '';
|
||||||
|
$('#client_heading').text(client_name);
|
||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -273,9 +273,9 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row" style="padding-bottom: 10px;">
|
<div class="row" style="padding-bottom: 10px;">
|
||||||
<div class="col-6" style="align-self: center;">
|
<div class="col-6" style="align-self: center;">
|
||||||
<h4 style="position: relative;">Client Onboarding <?php if (isset($client)) {
|
<h4 style="position: relative;">Client Onboarding <span id="client_heading"><?php if (isset($client)) {
|
||||||
echo ' - ' . $client['client_name'];
|
echo ' - ' . $client['client_name'];
|
||||||
} ?></h4>
|
} ?></h4></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6" style="text-align: right;">
|
<div class="col-6" style="text-align: right;">
|
||||||
<a href="<?= base_url("client/list"); ?>"><i class="mdi mdi-arrow-left" style="font-size: 17px;"></i></a>
|
<a href="<?= base_url("client/list"); ?>"><i class="mdi mdi-arrow-left" style="font-size: 17px;"></i></a>
|
||||||
|
|||||||
@ -2713,13 +2713,10 @@
|
|||||||
if(allocg != 'EB'){
|
if(allocg != 'EB'){
|
||||||
tp = parseFloat($('#tp_premium_' + input).val()) || 0;
|
tp = parseFloat($('#tp_premium_' + input).val()) || 0;
|
||||||
}
|
}
|
||||||
// do not remove this commented item
|
|
||||||
// if(bap == 'Motor'){
|
|
||||||
// tp = parseFloat($('#tp_premium_' + input).val()) || 0;
|
|
||||||
// }
|
|
||||||
|
|
||||||
var tep = 0;
|
var tep = 0;
|
||||||
if(bap == 'Fire' || bap == 'Marine Cargo' || bap == 'Marine Hull'){
|
// if(bap == 'Fire' || bap == 'Marine Cargo' || bap == 'Marine Hull'){
|
||||||
|
if(allocg != 'EB'){
|
||||||
tep = parseFloat($('#ter_premium_' + input).val()) || 0;
|
tep = parseFloat($('#ter_premium_' + input).val()) || 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2732,7 +2729,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
var cotep = 0;
|
var cotep = 0;
|
||||||
if(bap == 'Fire' || bap == 'Marine Cargo' || bap == 'Marine Hull'){
|
// if(bap == 'Fire' || bap == 'Marine Cargo' || bap == 'Marine Hull'){
|
||||||
|
if(allocg != 'EB'){
|
||||||
cotep = parseFloat($('#co_ter_premium_' + input).val()) || 0;
|
cotep = parseFloat($('#co_ter_premium_' + input).val()) || 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -461,9 +461,34 @@
|
|||||||
location.reload();
|
location.reload();
|
||||||
},
|
},
|
||||||
error: function(xhr, status, error) {
|
error: function(xhr, status, error) {
|
||||||
toastr.error("Transaction save failed", "Error");
|
|
||||||
console.error(xhr.responseText);
|
console.error(xhr.responseText);
|
||||||
console.error(status, error);
|
console.error(status, error);
|
||||||
|
|
||||||
|
if (xhr.status === 400) {
|
||||||
|
let response = JSON.parse(xhr.responseText);
|
||||||
|
let errorMessages = "";
|
||||||
|
let seenMessages = []; // Array to store unique messages
|
||||||
|
if (response.errors) {
|
||||||
|
$.each(response.errors, function (field, message) {
|
||||||
|
if (!seenMessages.includes(message)) {
|
||||||
|
errorMessages += `• ${message}<br>`;
|
||||||
|
seenMessages.push(message); // Mark this message as "seen"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
toastr.error(errorMessages, 'Validation Error', { "allowHtml": true });
|
||||||
|
} else {
|
||||||
|
toastr.warning(response.message || 'Validation failed', 'Warning');
|
||||||
|
}
|
||||||
|
} else if (xhr.status === 403) {
|
||||||
|
let response = JSON.parse(xhr.responseText);
|
||||||
|
toastr.error(response.message, 'Security Policy');
|
||||||
|
} else if (xhr.status === 500) {
|
||||||
|
toastr.error('Something went wrong . Please try again later.', 'Server Error');
|
||||||
|
} else {
|
||||||
|
toastr.error('An unexpected error occurred. Please try again later.', 'Error');
|
||||||
|
}
|
||||||
|
|
||||||
location.reload(); // Uncomment if you need to reload the page on error
|
location.reload(); // Uncomment if you need to reload the page on error
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user