FIX_FORM_VALIDATION

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

View File

@ -1,48 +1,48 @@
<?php <?php
namespace App\Controllers; namespace App\Controllers;
use App\Controllers\BaseController; use App\Controllers\BaseController;
use App\Controllers\GoogleDriveController; use App\Controllers\GoogleDriveController;
use App\Helpers\DepositHelper; use App\Helpers\DepositHelper;
use CodeIgniter\API\ResponseTrait; use CodeIgniter\API\ResponseTrait;
use App\Models\PolicyTransactionModel; use App\Models\PolicyTransactionModel;
use App\Models\PolicyTransactionStatusModel; use App\Models\PolicyTransactionStatusModel;
use App\Models\ClientModel; use App\Models\ClientModel;
use App\Models\ClientBranchModel; use App\Models\ClientBranchModel;
use App\Models\ClientDepositModel; use App\Models\ClientDepositModel;
use App\Models\ClientPolicyModel; use App\Models\ClientPolicyModel;
use App\Models\PolicyTypeModel; use App\Models\PolicyTypeModel;
use App\Models\InsurerBranchModel; use App\Models\InsurerBranchModel;
use App\Models\InsurerModel; use App\Models\InsurerModel;
use App\Models\KYCEntityTypeModel; use App\Models\KYCEntityTypeModel;
use App\Models\ClientKYCDocsModel; use App\Models\ClientKYCDocsModel;
use App\Models\TPABranchModel; use App\Models\TPABranchModel;
use App\Models\TPAModel; use App\Models\TPAModel;
use App\Models\PTFileModel; use App\Models\PTFileModel;
use App\Models\PTCOShareDetailsModel; use App\Models\PTCOShareDetailsModel;
use App\Models\EmployeeModel; use App\Models\EmployeeModel;
use App\Models\UserTeamsModel; use App\Models\UserTeamsModel;
use App\Models\UserModel; use App\Models\UserModel;
use App\Models\EmployeePolicyModel; use App\Models\EmployeePolicyModel;
use App\Models\InsurerStatements; use App\Models\InsurerStatements;
use App\Models\InvPaymentDetailsModel; use App\Models\InvPaymentDetailsModel;
use App\Models\BatchFileModel; use App\Models\BatchFileModel;
use App\Models\FileModel; use App\Models\FileModel;
use App\Models\COShareStmtDetailsModel; use App\Models\COShareStmtDetailsModel;
use App\Models\BdsPlacementModel; use App\Models\BdsPlacementModel;
use Kint\Kint; use Kint\Kint;
use App\Helpers\MailHelper; use App\Helpers\MailHelper;
use App\Helpers\ExcelSanitizeHelper; use App\Helpers\ExcelSanitizeHelper;
use App\Models\NhanceBranchModel; use App\Models\NhanceBranchModel;
use App\Models\BDSDumpModel; use App\Models\BDSDumpModel;
use App\Models\VehicleModel; use App\Models\VehicleModel;
use Exception; use Exception;
class PolicyTransactionController extends BaseController class PolicyTransactionController extends BaseController
{ {
use ResponseTrait; use ResponseTrait;
protected $myLogger; protected $myLogger;
@ -923,128 +923,133 @@
// ========================================== // ==========================================
// 1. CLIENT SECTION (5 Fields) // 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.']],
'client_type' => ['label' => 'Client Type','rules' => 'required','errors' => ['required' => 'Client Type must be selected.']], 'client_id' => ['label' => 'Client', 'rules' => 'required', 'errors' => ['required' => 'Please select a Client.']],
'industry_type' => ['label' => 'Industry','rules' => 'permit_empty','errors' => []], // No errors needed for permit_empty unless adding other rules 'client_branch_id' => ['label' => 'Client Branch', 'rules' => 'required', 'errors' => ['required' => 'Client branch is required']],
'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)']], 'issue_type' => ['label' => 'Business Type', 'rules' => 'required', 'errors' => ['required' => 'Please select a Business Type.']],
'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)']], '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.'
// 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' => []],
// ========================================== // ==========================================
// 5. SALES SECTION (12 Fields) // 5. SALES SECTION (12 Fields)
// ========================================== // ==========================================
'base_policy' => ['label' => 'Base Policy', 'rules' => 'permit_empty','errors' => []], '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' => [ 'errors' => [
'required' => 'Policy Number is Must.', 'required' => 'Policy Number is Must.',
'regex_match' => 'Policy Number can only contain letters, numbers, and symbols like / - or _' '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' => [ 'errors' => [
'required' => 'Policy Issue Date is required.', 'required' => 'Policy Issue Date is required.',
'valid_date' => 'Please provide a valid Policy Issue Date.', 'valid_date' => 'Please provide a valid Policy Issue Date.',
'regex_match' => 'The Policy Issue Date format is incorrect. ' 'regex_match' => 'The Policy Issue Date format is incorrect. '
]], ]
'month' => ['label' => 'Issue Month', 'rules' => 'required','errors' => [ ],
'month' => ['label' => 'Issue Month', 'rules' => 'required', 'errors' => [
'required' => 'Please select or enter the Policy Issue Month.' '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}$/]', 'rules' => 'required|valid_date[Y-m-d]|regex_match[/^\d{4}-\d{2}-\d{2}$/]',
'errors' => [ 'errors' => [
'required' => 'D.O.C (Start Date) is required.', 'required' => 'D.O.C (Start Date) is required.',
'valid_date' => 'Please provide a valid D.O.C date.', 'valid_date' => 'Please provide a valid D.O.C date.',
'regex_match' => 'The D.O.C date format is incorrect. ' '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' => [ ],
'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.', 'required' => 'D.O.E (Expiry Date) is required.',
'valid_date' => 'Please provide a valid D.O.E date.', 'valid_date' => 'Please provide a valid D.O.E date.',
'regex_match' => 'The D.O.E date format is incorrect. ' 'regex_match' => 'The D.O.E date format is incorrect. '
]], ]],
'emp_count' => ['label' => 'No of Insured', 'rules' => 'permit_empty|numeric','errors' => [ 'emp_count' => ['label' => 'No of Insured', 'rules' => 'permit_empty|numeric', 'errors' => [
'numeric' => 'No of Insured must contain only numbers.' 'numeric' => 'No of Insured must contain only numbers.'
]], ]],
'dependent_count' => ['label' => 'No of Dependents', 'rules' => 'permit_empty|numeric','errors' => [ 'dependent_count' => ['label' => 'No of Dependents', 'rules' => 'permit_empty|numeric', 'errors' => [
'numeric' => 'No of Dependents must contain only numbers.' 'numeric' => 'No of Dependents must contain only numbers.'
]], ]],
'installment' => ['label' => 'Installment', 'rules' => 'permit_empty','errors' => []], 'installment' => ['label' => 'Installment', 'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9 _-]+$/]', 'errors' => [
'installment_data' => ['label' => 'Installment Data', 'rules' => 'permit_empty','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' => []], 'installment_data' => ['label' => 'Installment Data', 'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9 _-]+$/]', 'errors' => [
'renewal_date' => ['label' => 'Renewal Date', 'rules' => 'required|valid_date[Y-m-d]|regex_match[/^\d{4}-\d{2}-\d{2}$/]','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' => [
'required' => 'Renewal Date is required.', 'required' => 'Renewal Date is required.',
'valid_date' => 'Please provide a valid Renewal Date.', 'valid_date' => 'Please provide a valid Renewal Date.',
'regex_match' => 'The Renewal Date format is incorrect. ' 'regex_match' => 'The Renewal Date format is incorrect. '
]], ]],
'sales_generated_by' => ['label' => 'Sales Generated By', 'rules' => 'permit_empty','errors' => [ 'sales_generated_by' => ['label' => 'Sales Generated By', 'rules' => 'permit_empty', 'errors' => [
// 'required' => 'Please select the person who generated this sale.' // 'required' => 'Please select the person who generated this sale.'
]], ]],
'serviced_by' => ['label' => 'Serviced By', 'rules' => 'permit_empty','errors' => [ 'serviced_by' => ['label' => 'Serviced By', 'rules' => 'permit_empty', 'errors' => [
// 'required' => 'Please select the service person for this policy.' // 'required' => 'Please select the service person for this policy.'
]], ]],
'pos_id' => ['label' => 'POS', 'rules' => 'permit_empty','errors' => []], '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) // 6. PREMIUM DETAILS (Array Fields - 25 Fields)
// Use .* because these come from the dynamic table // Use .* because these come from the dynamic table
// ========================================== // ==========================================
'follow_insurer_id.*' => ['label' => 'Insurer', 'rules' => 'required','errors' => ['required' => 'Please select an Insurer.']], 'follow_insurer_id.*' => ['label' => 'Insurer', 'rules' => 'required', 'errors' => ['required' => 'Please select an Insurer.']],
'co_share_type.*' => ['label' => 'Is Leader', 'rules' => 'permit_empty','errors' => []], 'co_share_type.*' => ['label' => 'Is Leader', 'rules' => 'permit_empty', 'errors' => []],
'cd_ac_no_for_child.*' => ['label' => 'CD Acc No', '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' => []], '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' => [
'calc_policy_issue_date.*' => ['label' => 'Policy Issue Date', 'rules' => 'required','errors' => [ 'required' => 'Policy Issue Date is required' ]], 'regex_match' => 'The {field} can only contain letters, numbers, spaces, dashes, and underscores.'
'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.'
]], ]],
'tp_premium.*' => ['label' => 'TP Premium', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'TP Premium must be numeric.']], 'calc_policy_issue_date.*' => ['label' => 'Policy Issue Date', 'rules' => 'required', 'errors' => ['required' => 'Policy Issue Date is required']],
'ter_premium.*' => ['label' => 'TEP Premium', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'TEP Premium must be numeric.']], 'co_share_per.*' => ['label' => 'Co-Share %', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Co-Share % must be a valid decimal.']],
'co_premium.*' => ['label' => 'Co-Premium', 'rules' => 'permit_empty|decimal','errors'=> ['decimal' => 'Co-Premium must be numeric.']], 'non_comm_per_amt.*' => ['label' => 'Non-Comm Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Amount must be numeric.']],
'co_tp_premium.*' => ['label' => 'Co-TP Premium', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Co-TP Premium must be numeric.']], 'base_premium.*' => ['label' => 'Base Premium','rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Base Premium must be numeric.']],
'co_ter_premium.*' => ['label' => 'Co-TEP Premium', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Co-TEP Premium must be numeric.']], 'tp_premium.*' => ['label' => 'TP Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'TP Premium must be numeric.']],
'cgst.*' => ['label' => 'CGST', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'CGST must be numeric.']], 'ter_premium.*' => ['label' => 'TEP Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'TEP Premium must be numeric.']],
'sgst.*' => ['label' => 'SGST', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'SGST must be numeric.']], 'co_premium.*' => ['label' => 'Co-Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Co-Premium must be numeric.']],
'igst.*' => ['label' => 'IGST', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'IGST must be numeric.']], 'co_tp_premium.*' => ['label' => 'Co-TP Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Co-TP Premium must be numeric.']],
'gst_amount.*' => ['label' => 'GST Amount', 'rules' => 'permit_empty|decimal|greater_than[0]','errors' => [ 'co_ter_premium.*' => ['label' => 'Co-TEP Premium', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Co-TEP Premium must be numeric.']],
'decimal' => 'GST Amount must be a valid numeric value.', 'cgst.*' => ['label' => 'CGST', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'CGST must be numeric.']],
'greater_than' => 'GST Amount cannot be zero; please enter a value greater than 0.' '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.']],
'stamp_duty.*' => ['label' => 'Stamp Duty', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Stamp Duty must be numeric.']], 'gst_amount.*' => ['label' => 'GST Amount', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'GST Amount must be numeric.']],
'total.*' => ['label' => 'Total', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Total must be a numeric value.']], 'stamp_duty.*' => ['label' => 'Stamp Duty', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Stamp Duty must be numeric.']],
'agreed_bp.*' => ['label' => 'Agreed BP %', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Agreed BP % must be numeric.']], 'total.*' => ['label' => 'Total', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Total must be a numeric value.']],
'agreed_tp.*' => ['label' => 'Agreed TP %', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Agreed TP % must be numeric.']], 'agreed_bp.*' => ['label' => 'Agreed BP %', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Agreed BP % must be numeric.']],
'agreed_ter.*' => ['label' => 'Agreed TEP %', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Agreed TEP % must be numeric.']], 'agreed_tp.*' => ['label' => 'Agreed TP %', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Agreed TP % must be numeric.']],
'agreed_amount.*' => ['label' => 'Agreed Amount', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Agreed Amount must be numeric.']], 'agreed_ter.*' => ['label' => 'Agreed TEP %', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Agreed TEP % must be numeric.']],
'actual_bp_amt.*' => ['label' => 'Actual BP Amount', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Actual BP Amount must be numeric.']], 'agreed_amount.*' => ['label' => 'Agreed Amount', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Agreed Amount must be numeric.']],
'actual_tp_amt.*' => ['label' => 'Actual TP Amount', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Actual TP Amount must be numeric.']], 'actual_bp_amt.*' => ['label' => 'Actual BP Amount', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Actual BP Amount must be numeric.']],
'actual_tep_amt.*' => ['label' => 'Actual TEP Amount', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Actual TEP Amount must be numeric.']], 'actual_tp_amt.*' => ['label' => 'Actual TP Amount', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Actual TP Amount must be numeric.']],
'actual_bp_per.*' => ['label' => 'Actual BP %', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Actual BP % must be numeric.']], 'actual_tep_amt.*' => ['label' => 'Actual TEP Amount', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Actual TEP Amount must be numeric.']],
'actual_tp_per.*' => ['label' => 'Actual TP %', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Actual TP % must be numeric.']], 'actual_bp_per.*' => ['label' => 'Actual BP %', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Actual BP % must be numeric.']],
'actual_tep_per.*' => ['label' => 'Actual TEP %', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Actual TEP % must be numeric.']], 'actual_tp_per.*' => ['label' => 'Actual TP %', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Actual TP % must be numeric.']],
'actual_bp_brokerage_amt.*'=> ['label' => 'BP Remuneration', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'BP Remuneration must be numeric.']], 'actual_tep_per.*' => ['label' => 'Actual TEP %', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'Actual TEP % must be numeric.']],
'actual_tp_brokerage_amt.*'=> ['label' => 'TP Remuneration', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'TP Remuneration must be numeric.']], 'actual_bp_brokerage_amt.*' => ['label' => 'BP Remuneration', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'BP Remuneration must be numeric.']],
'actual_tep_brokerage_amt.*'=>['label' => 'TEP Remuneration', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'TEP Remuneration must be numeric.']], 'actual_tp_brokerage_amt.*' => ['label' => 'TP Remuneration', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'TP Remuneration must be numeric.']],
'exp_amt.*' => ['label' => 'Expected Amount', 'rules' => 'permit_empty|decimal','errors' => ['decimal'=> 'The Expected Amount field must contain a valid number.']] 'actual_tep_brokerage_amt.*' => ['label' => 'TEP Remuneration', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'TEP Remuneration must be numeric.']],
'exp_amt.*' => ['label' => 'Expected Amount', 'rules' => 'permit_empty|decimal', 'errors' => ['decimal' => 'The Expected Amount field must contain a valid number.']]
]; ];
if (!$this->validate($rules)) { if (!$this->validate($rules)) {
@ -1058,14 +1063,14 @@
$post_data = $post_data ? sanitizeInputArrayAdvanced($post_data) : []; $post_data = $post_data ? sanitizeInputArrayAdvanced($post_data) : [];
$this->myLogger->logme('error', 'Policy Trancaction form data : '. json_encode($post_data)); $this->myLogger->logme('error', 'Policy Trancaction form data : ' . json_encode($post_data));
$id = $post_data['id'] ?? null; $id = $post_data['id'] ?? null;
$data = $this->preparePolicyData(); $data = $this->preparePolicyData();
$data['cd_ac_pk'] = $post_data['cd_ac_no']; $data['cd_ac_pk'] = $post_data['cd_ac_no'];
$data['issuer'] = 2; $data['issuer'] = 2;
$data['status'] = 'completed'; $data['status'] = 'completed';
$this->myLogger->logme('error', 'Policy Trancaction modified form data ( insert data ) : '. json_encode($data)); $this->myLogger->logme('error', 'Policy Trancaction modified form data ( insert data ) : ' . json_encode($data));
if (!$id) { if (!$id) {
@ -2482,11 +2487,7 @@
], ],
'base_premium.*' => [ 'base_premium.*' => [
'label' => 'Base Premium', 'label' => 'Base Premium',
'rules' => 'permit_empty|regex_match[/^-?\d+(\.\d+)?$/]|differs[0]', 'rules' => 'permit_empty|decimal','errors' => ['decimal' => 'Base Premium must be a valid amount.']
'errors' => [
'regex_match' => 'Base Premium must be a valid positive or negative number.',
'differs' => 'Base Premium cannot be zero.'
]
], ],
'total.*' => [ 'total.*' => [
'label' => 'Total Premium', 'label' => 'Total Premium',
@ -2542,8 +2543,8 @@
], ],
'gst_amount.*' => [ 'gst_amount.*' => [
'label' => 'GST Amount', 'label' => 'GST Amount',
'rules' => 'permit_empty|decimal|greater_than[0]', 'rules' => 'permit_empty|decimal',
'errors' => ['decimal' => 'GST Amount must be numeric.','greater_than' => 'GST Amount cannot be zero; please enter a value greater than 0.'] 'errors' => ['decimal' => 'GST Amount must be numeric.']
], ],
'stamp_duty.*' => [ 'stamp_duty.*' => [
'label' => 'Stamp Duty', 'label' => 'Stamp Duty',
@ -2623,8 +2624,15 @@
'errors' => ['decimal' => 'Expected Amount must be numeric.'] 'errors' => ['decimal' => 'Expected Amount must be numeric.']
], ],
'co_share_type.*' => ['label' => 'Is Leader', 'rules' => 'permit_empty','errors' => []], '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' => []], '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)) { if (!$this->validate($rules)) {
@ -6019,4 +6027,4 @@
]; ];
} }
} }