Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
4a08f6d2c6
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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."
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
BIN
public/assets/images/agent.jpg
Normal file
BIN
public/assets/images/agent.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
public/assets/images/user.jpg
Normal file
BIN
public/assets/images/user.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.2 KiB |
Loading…
Reference in New Issue
Block a user