FIX_FORM_VALIDATION

This commit is contained in:
VENKATESHWARAN 2026-02-13 11:56:16 +05:30
parent ad67bc647a
commit f387af204b

View File

@ -923,55 +923,47 @@
// ==========================================
// 1. CLIENT SECTION (5 Fields)
// ==========================================
'client_id' => ['label' => 'Client','rules' => 'required','errors' => ['required' => 'Please select a Client.']],
'client_type' => ['label' => 'Client Type', 'rules' => 'required', 'errors' => ['required' => 'Client Type must be selected.']],
'industry_type' => ['label' => 'Industry','rules' => 'permit_empty','errors' => []], // No errors needed for permit_empty unless adding other rules
'gst_no' => ['label' => 'GST Number','rules' => 'permit_empty|regex_match[/^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$/]','errors' => ['alpha_numeric' => 'GST Number should only contain letters and numbers.','regex_match' => 'Invalid GST format. (Example: 22AAAAA0000A1Z5)']],
'pan_no' => ['label' => 'PAN Number','rules' => 'permit_empty|regex_match[/^[A-Z]{5}[0-9]{4}[A-Z]{1}$/]','errors' => ['alpha_numeric' => 'PAN Number should only contain letters and numbers.','regex_match' => 'Invalid PAN format. (Example: ABCDE1234F)']],
// ==========================================
// 2. PRE-SALES SECTION (3 Fields)
// ==========================================
'lead_source' => ['label' => 'Lead Source', 'rules' => 'permit_empty', 'errors' => []],
'opportunity_id' => ['label' => 'Opportunity', 'rules' => 'permit_empty', 'errors' => []],
'quotation_ref' => ['label' => 'Quotation Ref', 'rules' => 'permit_empty', 'errors' => []],
// ==========================================
// 3. POLICY DOCUMENT (2 Fields)
// ==========================================
'policy_copy' => ['label' => 'Policy Copy', 'rules' => 'permit_empty', 'errors' => []],
'proposal_form' => ['label' => 'Proposal Form', 'rules' => 'permit_empty', 'errors' => []],
// ==========================================
// 4. VEHICLE DOCUMENT (2 Fields)
// ==========================================
'rc_copy' => ['label' => 'RC Copy', 'rules' => 'permit_empty', 'errors' => []],
'inspection_report' => ['label' => 'Inspection Report', 'rules' => 'permit_empty', 'errors' => []],
'client_id' => ['label' => 'Client', 'rules' => 'required', 'errors' => ['required' => 'Please select a Client.']],
'client_branch_id' => ['label' => 'Client Branch', 'rules' => 'required', 'errors' => ['required' => 'Client branch is required']],
'issue_type' => ['label' => 'Business Type', 'rules' => 'required', 'errors' => ['required' => 'Please select a Business Type.']],
'ref' => ['label' => 'Reference', 'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9 _-]+$/]', 'errors' => [
'regex_match' => 'The {field} can only contain letters, numbers, spaces, dashes, and underscores.'
]],
// ==========================================
// 5. SALES SECTION (12 Fields)
// ==========================================
'base_policy' => ['label' => 'Base Policy', 'rules' => 'permit_empty', 'errors' => []],
'policy_no' => ['label' => 'Policy Number', 'rules' => 'required|regex_match[/^[a-zA-Z0-9\/_-]+$/]',
'policy_no' => [
'label' => 'Policy Number',
'rules' => 'required|regex_match[/^[a-zA-Z0-9\/_-]+$/]',
'errors' => [
'required' => 'Policy Number is Must.',
'regex_match' => 'Policy Number can only contain letters, numbers, and symbols like / - or _'
]],
'policy_issue_date' => ['label' => 'Issue Date', 'rules' => 'required|valid_date[Y-m-d]|regex_match[/^\d{4}-\d{2}-\d{2}$/]',
]
],
'policy_issue_date' => [
'label' => 'Issue Date',
'rules' => 'required|valid_date[Y-m-d]|regex_match[/^\d{4}-\d{2}-\d{2}$/]',
'errors' => [
'required' => 'Policy Issue Date is required.',
'valid_date' => 'Please provide a valid Policy Issue Date.',
'regex_match' => 'The Policy Issue Date format is incorrect. '
]],
]
],
'month' => ['label' => 'Issue Month', 'rules' => 'required', 'errors' => [
'required' => 'Please select or enter the Policy Issue Month.'
]],
'policy_start_date' => ['label' => 'D.O.C',
'policy_start_date' => [
'label' => 'D.O.C',
'rules' => 'required|valid_date[Y-m-d]|regex_match[/^\d{4}-\d{2}-\d{2}$/]',
'errors' => [
'required' => 'D.O.C (Start Date) is required.',
'valid_date' => 'Please provide a valid D.O.C date.',
'regex_match' => 'The D.O.C date format is incorrect. '
]],
]
],
'policy_end_date' => ['label' => 'D.O.E', 'rules' => 'required|valid_date[Y-m-d]|regex_match[/^\d{4}-\d{2}-\d{2}$/]', 'errors' => [
'required' => 'D.O.E (Expiry Date) is required.',
'valid_date' => 'Please provide a valid D.O.E date.',
@ -983,8 +975,12 @@
'dependent_count' => ['label' => 'No of Dependents', 'rules' => 'permit_empty|numeric', 'errors' => [
'numeric' => 'No of Dependents must contain only numbers.'
]],
'installment' => ['label' => 'Installment', 'rules' => 'permit_empty','errors' => []],
'installment_data' => ['label' => 'Installment Data', 'rules' => 'permit_empty','errors' => []],
'installment' => ['label' => 'Installment', 'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9 _-]+$/]', 'errors' => [
'regex_match' => 'The {field} can only contain letters, numbers, spaces, dashes, and underscores.'
]],
'installment_data' => ['label' => 'Installment Data', 'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9 _-]+$/]', 'errors' => [
'regex_match' => 'The {field} can only contain letters, numbers, spaces, dashes, and underscores.'
]],
'co_share' => ['label' => 'CoP Yes', 'rules' => 'permit_empty', 'errors' => []],
'bro_payable_by' => ['label' => 'Remuneration Pay By', 'rules' => 'permit_empty', 'errors' => []],
'renewal_date' => ['label' => 'Renewal Date', 'rules' => 'required|valid_date[Y-m-d]|regex_match[/^\d{4}-\d{2}-\d{2}$/]', 'errors' => [
@ -999,6 +995,20 @@
// 'required' => 'Please select the service person for this policy.'
]],
'pos_id' => ['label' => 'POS', 'rules' => 'permit_empty', 'errors' => []],
'doc_name.*' => [
'label' => 'Policy Document Name',
'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9 _-]+$/]|min_length[2]|max_length[100]',
'errors' => [
'regex_match' => 'The {field} can only contain letters, numbers, spaces, dashes, and underscores.'
]
],
'other_docs_name.*' => [
'label' => 'Vehicle Document Name',
'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9 _-]+$/]|min_length[2]|max_length[100]',
'errors' => [
'regex_match' => 'The {field} can only contain letters, numbers, spaces, dashes, and underscores.'
]
],
// ==========================================
// 6. PREMIUM DETAILS (Array Fields - 25 Fields)
@ -1008,15 +1018,13 @@
'co_share_type.*' => ['label' => 'Is Leader', 'rules' => 'permit_empty', 'errors' => []],
'cd_ac_no_for_child.*' => ['label' => 'CD Acc No', 'rules' => 'permit_empty', 'errors' => []],
'cd_current_balance.*' => ['label' => 'CD Amount', 'rules' => 'permit_empty', 'errors' => []],
'follower_policy_no.*' => ['label' => 'Follower Policy No', 'rules' => 'permit_empty','errors' => []],
'follower_policy_no.*' => ['label' => 'Follower Policy No', 'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9\/_-]+$/]', 'errors' => [
'regex_match' => 'The {field} can only contain letters, numbers, spaces, dashes, and underscores.'
]],
'calc_policy_issue_date.*' => ['label' => 'Policy Issue Date', 'rules' => 'required', 'errors' => ['required' => 'Policy Issue Date is required']],
'co_share_per.*' => ['label' => 'Co-Share %', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Co-Share % must be a valid decimal.']],
'non_comm_per_amt.*' => ['label' => 'Non-Comm Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Amount must be numeric.']],
'base_premium.*' => ['label' => 'Base Premium', 'rules' => 'permit_empty|regex_match[/^-?\d+(\.\d+)?$/]|differs[0]',
'errors' => [
'regex_match' => 'Base Premium must be a valid positive or negative number.',
'differs' => 'Base Premium cannot be zero.'
]],
'base_premium.*' => ['label' => 'Base Premium','rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Base Premium must be numeric.']],
'tp_premium.*' => ['label' => 'TP Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'TP Premium must be numeric.']],
'ter_premium.*' => ['label' => 'TEP Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'TEP Premium must be numeric.']],
'co_premium.*' => ['label' => 'Co-Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Co-Premium must be numeric.']],
@ -1025,10 +1033,7 @@
'cgst.*' => ['label' => 'CGST', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'CGST must be numeric.']],
'sgst.*' => ['label' => 'SGST', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'SGST must be numeric.']],
'igst.*' => ['label' => 'IGST', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'IGST must be numeric.']],
'gst_amount.*' => ['label' => 'GST Amount', 'rules' => 'permit_empty|decimal|greater_than[0]','errors' => [
'decimal' => 'GST Amount must be a valid numeric value.',
'greater_than' => 'GST Amount cannot be zero; please enter a value greater than 0.'
]],
'gst_amount.*' => ['label' => 'GST Amount', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'GST Amount must be numeric.']],
'stamp_duty.*' => ['label' => 'Stamp Duty', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Stamp Duty must be numeric.']],
'total.*' => ['label' => 'Total', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Total must be a numeric value.']],
'agreed_bp.*' => ['label' => 'Agreed BP %', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Agreed BP % must be numeric.']],
@ -2482,11 +2487,7 @@
],
'base_premium.*' => [
'label' => 'Base Premium',
'rules' => 'permit_empty|regex_match[/^-?\d+(\.\d+)?$/]|differs[0]',
'errors' => [
'regex_match' => 'Base Premium must be a valid positive or negative number.',
'differs' => 'Base Premium cannot be zero.'
]
'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Base Premium must be a valid amount.']
],
'total.*' => [
'label' => 'Total Premium',
@ -2542,8 +2543,8 @@
],
'gst_amount.*' => [
'label' => 'GST Amount',
'rules' => 'permit_empty|decimal|greater_than[0]',
'errors' => ['decimal' => 'GST Amount must be numeric.','greater_than' => 'GST Amount cannot be zero; please enter a value greater than 0.']
'rules' => 'permit_empty|decimal',
'errors' => ['decimal' => 'GST Amount must be numeric.']
],
'stamp_duty.*' => [
'label' => 'Stamp Duty',
@ -2623,8 +2624,15 @@
'errors' => ['decimal' => 'Expected Amount must be numeric.']
],
'co_share_type.*' => ['label' => 'Is Leader', 'rules' => 'permit_empty','errors' => []],
'follower_policy_no.*' => ['label' => 'Follower Policy No', 'rules' => 'permit_empty','errors' => []],
'follower_policy_no.*' => ['label' => 'Follower Policy No', 'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9 _-]+$/]','errors' => ['regex_match' => 'The {field} can only contain letters, numbers, spaces, dashes, and underscores.']],
'co_share_id.*' => ['label' => 'Record ID', 'rules' => 'permit_empty','errors' => []],
'doc_name.*' => [
'label' => 'Policy Document Name',
'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9 _-]+$/]|min_length[2]|max_length[100]',
'errors' => [
'regex_match' => 'The {field} can only contain letters, numbers, spaces, dashes, and underscores.'
]
],
];
if (!$this->validate($rules)) {