Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
velz 2026-04-30 15:29:58 +05:30
commit 4a08f6d2c6
12 changed files with 133 additions and 52 deletions

View File

@ -226,8 +226,8 @@ class EmployeeServiceController extends AdminController
'col_cell_name' => 'M',
'col_name' => 'Phone',
'is_mandatory' => false,
'data_type' => 'str',
'format' => null,
'data_type' => 'mobile',
'format' => 'mobile',
'allowed_values' => null,
'custom' => 'check_dup_mobileno',
'params' => ['row', 'existing_mobilenos']
@ -940,6 +940,7 @@ class EmployeeServiceController extends AdminController
{
$is_mandatory = $columns_to_check[$keys[$col_key]]['is_mandatory'];
$format = $columns_to_check[$keys[$col_key]]['format'];
$data_type = $columns_to_check[$keys[$col_key]]['data_type'];
$allowed_values = $columns_to_check[$keys[$col_key]]['allowed_values'];
$custom_function = isset($columns_to_check[$keys[$col_key]]['custom']) ? $columns_to_check[$keys[$col_key]]['custom'] : null;
$binding_params = isset($columns_to_check[$keys[$col_key]]['params']) ? $columns_to_check[$keys[$col_key]]['params'] : null;
@ -986,15 +987,25 @@ class EmployeeServiceController extends AdminController
//format check
if(isset($format))
{
$format_error = check_excel_date_format($col,$format);
if(!$format_error['status'])
{
array_push($result['error_summary'],2);
$result['error_data'][$row_key][$keys[$col_key]]['col_name'] = $column_dispaly_name; //push column name
$result['error_data'][$row_key][$keys[$col_key]]['col_idx'] = $column_index; //push column index
$result['error_data'][$row_key][$keys[$col_key]]['error'][] = $format_error['error'];
{
$validation = validate_excel_value($col, $data_type, $format, $allowed_values);
if (!$validation['status']) {
array_push($result['error_summary'], 2);
$result['error_data'][$row_key][$keys[$col_key]]['col_name'] = $column_dispaly_name;
$result['error_data'][$row_key][$keys[$col_key]]['col_idx'] = $column_index;
$result['error_data'][$row_key][$keys[$col_key]]['error'][] = $validation['error'];
}
// $format_error = check_excel_date_format($col,$format);
// if(!$format_error['status'])
// {
// array_push($result['error_summary'],2);
// $result['error_data'][$row_key][$keys[$col_key]]['col_name'] = $column_dispaly_name; //push column name
// $result['error_data'][$row_key][$keys[$col_key]]['col_idx'] = $column_index; //push column index
// $result['error_data'][$row_key][$keys[$col_key]]['error'][] = $format_error['error'];
// }
}
// Kint::dump($is_mandatory);
//allowed values check

View File

@ -4168,7 +4168,7 @@ class PolicyTransactionController extends BaseController
//get no of line items and update in DB
$line_items = 0;
// get uploaded month transactions data
$source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id']);
$source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id'], month: $file['month']);
// var_dump($source_data);die();
// Kint::dump($source_data);die();
@ -4291,7 +4291,7 @@ class PolicyTransactionController extends BaseController
$line_items = 0;
// get uploaded month transactions data
$source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id']);
$source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id'], month: $file['month']);
// dd($source_data);
// check policy no,insurer and etc in DB for this month
@ -4439,7 +4439,7 @@ class PolicyTransactionController extends BaseController
//get no of line items and update in DB
$line_items = count($excel_data);
// get uploaded month transactions data
$source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id']);
$source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id: $file['insurer_id'], insurer_branch_id: $file['branch_id'], month: $file['month']);
// Kint::dump($source_data);//die;
// Kint::dump($excel_data);
// die;

View File

@ -476,6 +476,7 @@ class VidalApiController extends BaseController
$ticket = $this->db->table('ticket_master tm')
->select("
tm.id,
tm.doa,
tm.tpa_no as memberId,
tm.tpa_claim_push_reference_no as claimRefNo,
tm.tpa_claim_id as claimID,
@ -592,6 +593,7 @@ class VidalApiController extends BaseController
$TicketData = $this->db->table('ticket_master tm')
->select("
tm.id,
tm.doa,
tm.tpa_no as memberId,
tm.tpa_claim_push_reference_no as claimRefNo,
tm.tpa_claim_id as claimNo,
@ -1650,6 +1652,7 @@ class VidalApiController extends BaseController
$ticket = $this->db->table('ticket_master tm')
->select("
tm.id,
tm.doa,
tm.tpa_no as memberId,
tm.tpa_claim_push_reference_no as claimInwardNO,
tm.tpa_claim_id as claimNO,

View File

@ -3014,6 +3014,9 @@ if (!function_exists('validate_excel_value')) {
case 'date':
return validate_date_value($value, $format);
case 'str':
return check_excel_date_format($value, $format);
case 'mobile':
return validate_mobile_value($value);
@ -3064,7 +3067,7 @@ if (!function_exists('validate_mobile_value')) {
return [
'status' => false,
'error' => "Invalid mobile number. Expected 10 digits."
'error' => "Invalid mobile number. It must be exactly 10 digits, with no spaces and no +91 prefix."
];
}
}

View File

@ -72,11 +72,14 @@ class PTCOShareDetailsModel extends Model
'file_id',
];
public function getNonReconcileredPolicyTransactions(string $insurer_id,string $insurer_branch_id)
public function getNonReconcileredPolicyTransactions(string $insurer_id,string $insurer_branch_id, string $month)
{
$currentDate = date('Y-m-d');
$sixMonthsAgo = date('Y-m-01', strtotime('-6 months'));
$startDate = $month;
$endDate = date('Y-m-t', strtotime($startDate));
return $this->db->table('pt_co_share_details pt_co')
->select('
pt_co.id,
@ -109,8 +112,10 @@ class PTCOShareDetailsModel extends Model
->where('pt_co.insurer_branch_id', $insurer_branch_id)
// ->where('pt_co.statement_id is null')
->where('pt.status','completed')
->where('DATE(pt.created_at) >=', $sixMonthsAgo)
->where('DATE(pt.created_at) <=', $currentDate)
// ->where('DATE(pt.created_at) >=', $sixMonthsAgo)
// ->where('DATE(pt.created_at) <=', $currentDate)
->where('pt_co.pt_policy_issue_date >=', $startDate)
->where('pt_co.pt_policy_issue_date <=', $endDate)
// ->where('pt_co.exp_amt', 0.00)
// ->orWhere('pt_co.exp_amt is null')
->get()

View File

@ -172,7 +172,7 @@ input:checked + .slider-branch-contact:before {
<label for="branch_name">Branch Name<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_name" placeholder="Enter Branch Name"
name="branch_name" required data-parsley-minlength="3"
data-parsley-pattern="^[a-zA-Z0-9\\s_-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
<div class="form-group col-md-6">
@ -180,7 +180,9 @@ input:checked + .slider-branch-contact:before {
<input type="text" class="form-control" id="branch_code" placeholder="Enter Branch Code"
name="branch_code" onchange="setDefaultUnitValue(this)" required
data-parsley-pattern="^[a-zA-Z0-9_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, underscore (_) and hyphen (-).">
data-parsley-pattern-message="Branch Code can contain letters, numbers, underscore (_) and hyphen (-)."
oninput="this.value = this.value.replace(/[^A-Za-z0-9_-]/g, '')"
onblur="this.value = this.value.trim();">
</div>
</div>
@ -209,14 +211,14 @@ input:checked + .slider-branch-contact:before {
<label for="district">District<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="district" placeholder="Enter District"
name="district" required
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="District can contain letters, numbers, spaces, and hyphens.">
</div>
<div class="form-group col-md-3">
<label for="city">City<span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_city" placeholder="Enter City"
name="city" required
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="City can contain letters, numbers, spaces, and hyphens.">
</div>
<div class="form-group col-md-3">
@ -771,7 +773,7 @@ function appendContactHtml(contact = false, reset = false) {
<div class="form-group col-md-6">
<label for="${uniqueId}_first_name">Name<span class="text-danger">*</span></label>
<input value="${contact !== undefined && contact !== false ? contact.name : ''}" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" id="${uniqueId}_name" required
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern="^[A-Za-z\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
</div>
<div class="form-group col-md-6">
@ -1364,7 +1366,8 @@ function setDefaultUnitValue()
{
var client_id = $('#client_id_branch').val();
var branch_code = $('#branch_code').val();
var branch_code = ($('#branch_code').val() || '').trim();
$('#branch_code').val(branch_code);
var units = $('#selected').val();
console.log('client_id', client_id)

View File

@ -108,15 +108,17 @@
<input type="text" class="form-control" id="branch_name"
placeholder="Enter Branch Name" name="branch_name" required
data-parsley-minlength="3"
data-parsley-pattern="^[a-zA-Z0-9\\s_-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
<div class="form-group col-md-6">
<label for="branch_code">Branch Code <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_code"
placeholder="Enter Branch Code" name="branch_code" required
data-parsley-pattern="^[a-zA-Z0-9_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, underscore (_) and hyphen (-).">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, spaces, underscore (_) and hyphen (-)."
oninput="this.value = this.value.replace(/[^A-Za-z0-9_\- ]/g, '')"
onblur="this.value = this.value.trim();">
</div>
</div>
@ -147,7 +149,7 @@
<label for="district">District <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="district"
placeholder="Enter District" name="district" required
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="District can contain letters, numbers, spaces, and hyphens.">
</div>
</div>
@ -158,7 +160,7 @@
<label for="branch_city">City <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_city"
placeholder="Enter City" name="city" required
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="City can contain letters, numbers, spaces, and hyphens.">
</div>
<div class="form-group col-md-6">
@ -197,8 +199,8 @@
<div class="form-group col-md-12">
<label for="name">Name <span class="text-danger">*</span></label>
<input value="" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" id="name" required
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Contact name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
</div>
<div class="form-row">
@ -213,7 +215,7 @@
<div class="form-group col-md-12">
<label for="email">Email <span class="text-danger">*</span></label>
<input value="" type="email" data-parsley-trigger="change" class="form-control" placeholder="Enter Contact Email" name="email[]" id="email" required
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
data-parsley-pattern-message="Please enter a valid email format (e.g., name@domain.com).">
</div>
</div>
@ -456,7 +458,7 @@
if (!/^[a-zA-Z0-9\s_-]+$/.test(v)) return 'Branch Name can contain letters, numbers, spaces, underscore (_) and hyphen (-).';
return '';
case 'branch_code':
if (!/^[a-zA-Z0-9_-]+$/.test(v)) return 'Branch Code can contain letters, numbers, underscore (_) and hyphen (-).';
if (!/^[a-zA-Z0-9\s_-]+$/.test(v)) return 'Branch Code can contain letters, numbers, spaces, underscore (_) and hyphen (-).';
return '';
case 'address1':
return '';
@ -968,8 +970,8 @@
<div class="form-group col-md-12">
<label>Name<span class="text-danger">*</span></label>
<input value="${contact ? contact.name : ''}" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" required
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Contact name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
</div>
<div class="form-row">
@ -984,7 +986,7 @@
<div class="form-group col-md-12">
<label>Email<span class="text-danger">*</span></label>
<input value="${contact ? contact.email : ''}" type="email" data-parsley-trigger="change" class="form-control" placeholder="Enter Contact Email" name="email[]" required
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
data-parsley-pattern-message="Please enter a valid email format (e.g., name@domain.com).">
</div>
</div>

View File

@ -277,6 +277,7 @@
<script>
(function (window, document) {
var MAX_GLOBAL_UPLOAD_BYTES = 25 * 1024 * 1024; // 25 MB
var textEncoder = typeof TextEncoder !== 'undefined' ? new TextEncoder() : null;
function formatBytesToMb(bytes) {
return (bytes / (1024 * 1024)).toFixed(2);
@ -336,6 +337,51 @@
return true;
}
function formatPayloadSize(bytes) {
return {
bytes: bytes,
kb: (bytes / 1024).toFixed(2),
mb: (bytes / (1024 * 1024)).toFixed(2)
};
}
function getTextBytes(value) {
var textValue = String(value == null ? '' : value);
if (textEncoder) {
return textEncoder.encode(textValue).length;
}
return unescape(encodeURIComponent(textValue)).length;
}
function calculateFormPayloadBytes(form) {
if (!form || typeof FormData === 'undefined') {
return 0;
}
var total = 0;
var formData = new FormData(form);
formData.forEach(function (value) {
if (value instanceof File) {
total += value.size || 0;
} else {
total += getTextBytes(value);
}
});
return total;
}
function getFormIdentity(form) {
if (!form) {
return 'unknown-form';
}
if (form.id) {
return '#' + form.id;
}
if (form.name) {
return 'name="' + form.name + '"';
}
return form.getAttribute('action') || 'anonymous-form';
}
window.validateGlobalUploadPayload = validateGlobalUploadPayload;
document.addEventListener('change', function (event) {
@ -355,10 +401,16 @@
if (!form || !form.matches || !form.matches('form')) {
return;
}
if (!form.querySelector('input[type="file"]')) {
return;
}
if (!validateGlobalUploadPayload(form)) {
var payloadBytes = calculateFormPayloadBytes(form);
var payloadMeta = formatPayloadSize(payloadBytes);
console.log(
'[Form Payload] ' + getFormIdentity(form) +
' => ' + payloadMeta.bytes + ' bytes (' +
payloadMeta.kb + ' KB, ' + payloadMeta.mb + ' MB)'
);
if (form.querySelector('input[type="file"]') && !validateGlobalUploadPayload(form)) {
event.preventDefault();
event.stopPropagation();
}

View File

@ -10,7 +10,7 @@
<div class="text-center">
<div style="padding-left: 10px;" class="mb-3">
<div class="row">
<img src="https://venbait.in/nhance/helpdesk/dev/assets/helpdeskz/images/user.jpg"
<img src="<?= base_url('public/assets/images/user.jpg') ?>"
class="user-avatar rounded-circle img-fluid col-mb-6" style="max-width: 70px">
<div style="padding-left: 10px;padding-top: 15px;" class="col-mb-6"><?= $message_data['emp_name'] ?></div>
</div>
@ -58,7 +58,7 @@
<div class="text-center">
<div style="padding-left: 10px;" class="mb-3">
<div class="row">
<img src="https://venbait.in/nhance/helpdesk/dev/assets/helpdeskz/images/agent.jpg"
<img src="<?= base_url('public/assets/images/agent.jpg') ?>"
class="user-avatar rounded-circle img-fluid col-mb-6" style="max-width: 70px">
<div style="padding-left: 10px;padding-top: 15px;" class="col-mb-6"><?= $message['user_name'] ?? "Auto Mail" ?></div>

View File

@ -242,14 +242,16 @@
<label for="branch_name">Branch Name <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_name" placeholder="Enter Branch Name" name="branch_name" required maxlength="255" data-parsley-maxlength="255"
data-parsley-minlength="3"
data-parsley-pattern="^[a-zA-Z0-9\\s_-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
<div class="form-group col-md-6">
<label for="branch_code">Branch Code <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_code" placeholder="Enter Branch Code" name="branch_code" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[a-zA-Z0-9_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, underscore (_) and hyphen (-).">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Branch Code can contain letters, numbers, spaces, underscore (_) and hyphen (-)."
oninput="this.value = this.value.replace(/[^A-Za-z0-9_\- ]/g, '')"
onblur="this.value = this.value.trim();">
</div>
</div>
@ -280,7 +282,7 @@
<div class="form-group col-md-6">
<label for="district">District <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="district" placeholder="Enter District" name="district" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="District can contain letters, numbers, spaces, and hyphens.">
</div>
</div>
@ -290,7 +292,7 @@
<div class="form-group col-md-6">
<label for="branch_city">City <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="branch_city" placeholder="Enter City" name="city" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[a-zA-Z0-9\\s-]+$"
data-parsley-pattern="^[a-zA-Z0-9\s-]+$"
data-parsley-pattern-message="City can contain letters, numbers, spaces, and hyphens.">
</div>
<div class="form-group col-md-6">
@ -325,8 +327,8 @@
<div class="form-group col-md-12">
<label for="name">Name <span class="text-danger">*</span></label>
<input value="" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" id="name" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Contact name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
</div>
<div class="form-row">
@ -341,7 +343,7 @@
<div class="form-group col-md-12">
<label for="email">Email <span class="text-danger">*</span></label>
<input value="" type="email" data-parsley-trigger="change" class="form-control" placeholder="Enter Contact Email" name="email[]" id="email" required
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
data-parsley-pattern-message="Please enter a valid email format (e.g., name@domain.com).">
</div>
</div>
@ -970,8 +972,8 @@ function renumberContacts() {
<div class="form-group col-md-12">
<label>Name<span class="text-danger">*</span></label>
<input value="${contact ? contact.name : ''}" type="text" class="form-control" placeholder="Enter Contact Name" name="name[]" required maxlength="100" data-parsley-maxlength="100"
data-parsley-pattern="^[A-Za-z\\s]+$"
data-parsley-pattern-message="Contact name may contain only letters and spaces.">
data-parsley-pattern="^[a-zA-Z0-9\s_-]+$"
data-parsley-pattern-message="Contact name can contain letters, numbers, spaces, underscore (_) and hyphen (-).">
</div>
</div>
<div class="form-row">
@ -986,7 +988,7 @@ function renumberContacts() {
<div class="form-group col-md-12">
<label>Email<span class="text-danger">*</span></label>
<input value="${contact ? contact.email : ''}" type="email" data-parsley-trigger="change" class="form-control" placeholder="Enter Contact Email" name="email[]" required
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
data-parsley-pattern="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
data-parsley-pattern-message="Please enter a valid email format (e.g., name@domain.com).">
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB