diff --git a/app/Config/Constants.php b/app/Config/Constants.php
index d86cf312..fb86b921 100755
--- a/app/Config/Constants.php
+++ b/app/Config/Constants.php
@@ -102,6 +102,7 @@ define('CLAIMS_TEAM_ID', '2');
define('BUSINESS_TEAM_ID', '3');
define('FINANCE_TEAM_ID', '4');
define('SALES_TEAM_ID', '5');
+define('MANAGEMENT_TEAM_ID', '6');
/**
* @User Teams Constant
diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index f8d085da..933ef8aa 100755
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -12,7 +12,7 @@ $routes->get('/swagger', 'SwaggerController::index', ['filter' => 'authMVC']);
// Reminder Mail Notification
$routes->get("reminder_mail", "NotificationController::reminder_mail");
-// $routes->get("testing", "ClientController::Testing");
+$routes->get("getClientData", "ClientController::getClientData");
$routes->get("testing_for_review_mail/(:any)", "ClientController::testingForReviewMail/$1");
$routes->get("update-policy-terms-for-corrections", "ClientController::updatePolicyTermsForCorrections");
$routes->get("update_rack_rate_json", "ClientController::updateRackRateJson");
@@ -48,7 +48,6 @@ $routes->group("/user", ["filter" => "authMVC"], function ($routes) {
$routes->get("rolesandteams", "UserController::getRolesAndTeams");
});
-
$routes->group("/dashboard", ["filter" => "authMVC"], function ($routes) {
$routes->get("view", "DashboardController::dashboard");
$routes->get('get-notification', 'DashboardController::getDashboardNotifications');
@@ -56,33 +55,21 @@ $routes->group("/dashboard", ["filter" => "authMVC"], function ($routes) {
$routes->get('get-pending-action', 'PendingActionsController::getPendingActions');
});
-
$routes->group("/client", ["filter" => "authMVC"], function ($routes) {
$routes->get("list", "ClientController::index");
$routes->get("create", "ClientController::clientOnboarding");
$routes->get('deposit/(:num)', 'ClientController::deposit/$1');
$routes->get('remove/(:num)', 'ClientController::removeClient/$1');
+ $routes->get("list/(:any)", "ClientController::editClientOnboarding/$1");
// application/config/routes.php
// Add a route for the view_Deposit method
$routes->get('view_deposit/(:num)', 'ClientController::view_Deposit/$1');
$routes->get('createtransaction', 'ClientController::createtransaction');
-
$routes->post('save_deposit', 'ClientController::saveDeposit');
-
-
-
-
-
-
// $routes->get('view_Deposit/(:num)/(:num)','ClientController/view_Deposit/$1/$2');
-
-
- $routes->get("list/(:any)", "ClientController::editClientOnboarding/$1");
-
-
$routes->group("notification", ["filter" => "authMVC"], function ($routes) {
$routes->post("create", "NotificationController::createNotification");
$routes->post("update_enable", "NotificationController::update_enable");
@@ -141,7 +128,6 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) {
});
});
-
$routes->group("/employee", ["filter" => "authMVC"], function ($routes) {
$routes->get("list", "EmployeeController::list");
$routes->get("search", "EmployeeController::search");
@@ -156,13 +142,10 @@ $routes->group("/employee", ["filter" => "authMVC"], function ($routes) {
$routes->post("test-rack-rate", "EmployeeController::testRackRate");
});
-
$routes->group("/master", ["filter" => "authMVC"], function ($routes) {
-
$routes->group("insurer", ["filter" => "authMVC"], function ($routes) {
-
$routes->get("list", "MasterController::insurerList");
$routes->get("remove/(:any)", "MasterController::insurerRemove/$1");
$routes->get("create", "MasterController::insurerOnboarding");
@@ -197,6 +180,7 @@ $routes->group("/master", ["filter" => "authMVC"], function ($routes) {
});
$routes->group("kyc", ["filter" => "authMVC"], function ($routes) {
+
$routes->get("list", "MasterController::kycList");
$routes->get("create", "MasterController::kycOnboarding");
$routes->post("createpost", "MasterController::createKYCInfo");
@@ -205,7 +189,6 @@ $routes->group("/master", ["filter" => "authMVC"], function ($routes) {
$routes->get("remove/(:any)", "MasterController::kycRemove/$1");
$routes->get("delete/(:any)", "MasterController::deleteClientKycDocs/$1");
-
$routes->group("kycdocs", ["filter" => "authMVC"], function ($routes) {
$routes->post("createpost", "MasterController::createKycDocs");
$routes->get("editget/(:any)", "MasterController::editKYCGet/$1");
@@ -217,6 +200,7 @@ $routes->group("/master", ["filter" => "authMVC"], function ($routes) {
});
$routes->group("policy", ["filter" => "authMVC"], function ($routes) {
+
$routes->get("list", "MasterController::policyTypeList");
$routes->get("create", "MasterController::policyTypeOnboarding");
$routes->post("createpost", "MasterController::createPolicyType");
@@ -224,7 +208,6 @@ $routes->group("/master", ["filter" => "authMVC"], function ($routes) {
$routes->get("list/(:any)", "MasterController::editPolicyTypeOnboarding/$1");
$routes->get("remove/(:any)", "MasterController::policyTypeRemove/$1");
-
$routes->group("policies", ["filter" => "authMVC"], function ($routes) {
$routes->post("createpost", "MasterController::createPolicies");
$routes->get("editget/(:any)", "MasterController::editPoliciesGet/$1");
@@ -250,7 +233,6 @@ $routes->group("/master", ["filter" => "authMVC"], function ($routes) {
});
});
-
$routes->group("/util", ["filter" => "authMVC"], function ($routes) {
$routes->get("clients-with-policies", "EmployeeController::getClientWithPolicies");
$routes->get("police-by-insurer/(:any)", "ClientController::getPolicesByInsurerId/$1");
@@ -316,10 +298,10 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) {
$routes->get("sentTestMail/(:any)", "NotificationController::sentTestMail/$1");
$routes->get("send_manual_reminder/(:any)", "DashboardController::sendManualReminder/$1");
$routes->get("get_client_policy_list_for_remainder/(:any)", "EmployeeController::get_client_policy_list_for_remainder/$1");
+ $routes->get("get_client_branch_data/(:any)", "ClientController::get_client_branch_data/$1");
});
-
$routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) {
$routes->group("inception", ["filter" => "authMVC"], function ($routes) {
@@ -341,6 +323,7 @@ $routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) {
$routes->get("report-varience-list", "PolicyTransactionController::reportVarience");
$routes->get("report-business-list", "PolicyTransactionController::reportBusinessList");
$routes->get("report-finance-list", "PolicyTransactionController::reportFinanceList");
+ $routes->get("report-outstanding-list", "PolicyTransactionController::reportOutstanding");
});
$routes->group("statement", ["filter" => "authMVC"], function ($routes) {
@@ -355,6 +338,13 @@ $routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) {
});
+$routes->group("leads", ["filter" => "authMVC"], function ($routes) {
+
+ $routes->get("list", "LeadsController::viewLeadsList");
+ $routes->post("create", "LeadsController::createLead");
+ $routes->get("list/(:any)", "LeadsController::getLeadDataForEdit/$1");
+});
+
$routes->get("driveListFiles", "GoogleDriveController::listFiles");
$routes->post('dmsSearch', 'PolicyTransactionController::dmsSearch', ['filter' => 'authMVC']);
$routes->get('dmsSearch', 'PolicyTransactionController::dmsSearch', ['filter' => 'authMVC']);
@@ -370,7 +360,6 @@ $routes->cli('cli/app_check_list', 'MasterController::appCheckList');
$routes->cli('cli/new_gdrive_token', 'GoogleDriveController::generateNewGoogleDriveAccessToken');
-
//Employee login api's
$routes->post("/employeeRest/verifyEmployeeNumber", "RestAuthenticationController::verifyEmployeeWithMobileNumber");
$routes->post("/employeeRest/getVerifiedUserData", "RestAuthenticationController::getVerifiedUserData");
diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php
index 6bad026d..020ff116 100755
--- a/app/Controllers/ClientController.php
+++ b/app/Controllers/ClientController.php
@@ -207,7 +207,7 @@ class ClientController extends AdminController
$this->myLogger->logme("info", $mail_send_return2);
}
}
-
+
}else{
$this->myLogger->logme("error", 'Client HR Mail Configuration not Enable for this client');
}
@@ -3458,7 +3458,12 @@ class ClientController extends AdminController
public function get_client_policy_data_using_policy_no($policy_no)
{
$data = $this->clientPolicyModel
- ->select('client_policy.*, clients.client_type')
+ ->select("
+ client_policy.*,
+ clients.client_type,
+ DATE_FORMAT(client_policy.policy_start_date, '%d/%m/%Y') as policy_start_date,
+ DATE_FORMAT(client_policy.policy_end_date, '%d/%m/%Y') as policy_end_date
+ ")
->join('clients', 'client_policy.client_id = clients.id')
->where('client_policy.policy_no', $policy_no)
->where('client_policy.is_active', 1)
@@ -3487,4 +3492,27 @@ class ClientController extends AdminController
return $this->respond(['status' => false, 'message' => 'No Data Found', 'code' => 404], 200);
}
}
+
+ public function get_client_branch_data($id = null)
+ {
+ if ($id) {
+ $branch_data = $this->clientBranchModel
+ ->select('client_branch.*, clients.pan')
+ ->join('clients', 'client_branch.client_id = clients.id')
+ ->where(['client_branch.id' => $id, 'client_branch.is_active' => 1])
+ ->first();
+ $branch_contact_data = $this->levelContactModel->where(['ref_id' => $id, 'contact_type' => 'client', 'is_active' => 1])->orderBy('id','asc')->first();
+ return $this->respond(['status' => true, 'code' => 200, 'data' => $branch_data, 'contact' => $branch_contact_data], 200);
+ } else {
+ return $this->respond(['status' => false, 'code' => 404, 'message' => 'no data found'], 200);
+ }
+ }
+
+ public function getClientData()
+ {
+ $client_id = $this->request->getGet('client_id') ?? null;
+ $result = $this->clientModel->getClientData($client_id);
+ dd($result);
+ }
+
}
diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php
index 38b727a2..bd126144 100755
--- a/app/Controllers/DashboardController.php
+++ b/app/Controllers/DashboardController.php
@@ -32,6 +32,8 @@ class DashboardController extends AdminController
protected $notificationModel;
protected $employeePolicyModel;
protected $policyTransactionModel;
+ protected $policyStatus;
+ protected $colorShades;
protected $myLogger;
@@ -48,6 +50,48 @@ class DashboardController extends AdminController
$this->myLogger = \Config\Services::mylogger();
+ $this->policyStatus = [
+ 'under_process' => 'Under Process',
+ 'client_pending' => 'Client Pending',
+ 'insurer_pending' => 'Insurer Pending',
+ 'co_insurer_pending' => 'Co-Insurer Pending',
+ 'tpa_pending' => 'TPA Pending',
+ 'validated' => 'Validated',
+ 'cancelled' => 'Cancelled',
+ 'instalment_pending' => 'Instalment Pending',
+ 'completed' => 'Completed',
+ ];
+
+ $this->colorShades = [
+
+ [
+ 'linear-gradient(45deg, #66e9eb, #5cc7d2)', // Lighter shade 1
+ 'linear-gradient(45deg, #4ce2e5, #45bcc9)', // Lighter shade 2
+ 'linear-gradient(45deg, #33dbe0, #2baebd)', // Original shade (slightly lighter)
+ 'linear-gradient(45deg, #00d6db, #00a8b5)', // Original
+ 'linear-gradient(45deg, #00bfc4, #00929f)', // Darker shade 1
+ 'linear-gradient(45deg, #009ea1, #00767a)' // Darker shade 2
+ ],
+ // Shades for Grenadier
+ [
+ 'linear-gradient(45deg, #ff9d37, #ff7a10)', // Grenadier shade 1
+ 'linear-gradient(45deg, #ff8b30, #ff7310)', // Grenadier shade 2
+ 'linear-gradient(45deg, #ff8020, #ff5a00)', // Grenadier shade 3
+ 'linear-gradient(45deg, #f06d15, #e05505)', // Grenadier shade 4
+ 'linear-gradient(45deg, #d85f10, #c04805)', // Grenadier shade 5
+ 'linear-gradient(45deg, #b85606, #a04605)' // Grenadier shade 6
+ ],
+ // Shades for SilverChalice
+ [
+ 'linear-gradient(45deg, #a3a8a8, #8f9494)', // SilverChalice shade 1
+ 'linear-gradient(45deg, #989d9d, #848989)', // SilverChalice shade 2
+ 'linear-gradient(45deg, #7e8484, #686e6e)', // SilverChalice shade 3
+ 'linear-gradient(45deg, #6c7676, #545e5e)', // SilverChalice shade 4
+ 'linear-gradient(45deg, #5c6363, #434949)', // SilverChalice shade 5
+ 'linear-gradient(45deg, #494f4f, #353d3d)' // SilverChalice shade 6
+ ]
+ ];
+
}
public function dashboard()
@@ -70,7 +114,9 @@ class DashboardController extends AdminController
$pendingActionsData = $pendingActionsController->getPendingActionsForDashBoard();
$businessTeamData = $this->policyTransactionModel->getBusinessReportList();
$financeTeamData = $this->policyTransactionModel->getFinanceReportList();
-
+ $businessTeamStatusData = $this->data_construct_for_bds($businessTeamData);
+ $financeTeamStatusData = $this->data_construct_for_bds($financeTeamData);
+
$groupedData = [];
foreach ($results as $row) {
@@ -163,6 +209,10 @@ class DashboardController extends AdminController
$data['pendingActionsData'] = $pendingActionsData;
$data['businessTeamCount'] = count($businessTeamData) ?? 0;
$data['financeTeamCount'] = count($financeTeamData) ?? 0;
+ $data['businessTeamStatusData'] = $businessTeamStatusData;
+ $data['financeTeamStatusData'] = $financeTeamStatusData;
+ $data['policyStatus'] = $this->policyStatus;
+ $data['colorShades'] = $this->colorShades;
// print_r($data);die;
$data['page_name'] = 'Dashboard';
@@ -494,5 +544,54 @@ class DashboardController extends AdminController
}
}
+ public function data_construct_for_bds($data){
+
+ $groupedData = [
+ 'under_process' => [],
+ 'client_pending' => [],
+ 'insurer_pending' => [],
+ 'co_insurer_pending' => [],
+ 'tpa_pending' => [],
+ 'validated' => [],
+ 'cancelled' => [],
+ 'instalment_pending' => [],
+ 'completed' => [],
+ ];
+
+ // Loop through results and group them by their status
+ foreach ($data as $row) {
+ switch ($row['status']) {
+ case 'completed':
+ $groupedData['completed'][] = $row;
+ break;
+ case 'cancelled':
+ $groupedData['cancelled'][] = $row;
+ break;
+ case 'client_pending':
+ $groupedData['client_pending'][] = $row;
+ break;
+ case 'insurer_pending':
+ $groupedData['insurer_pending'][] = $row;
+ break;
+ case 'co_insurer_pending':
+ $groupedData['co_insurer_pending'][] = $row;
+ break;
+ case 'tpa_pending':
+ $groupedData['tpa_pending'][] = $row;
+ break;
+ case 'validated':
+ $groupedData['validated'][] = $row;
+ break;
+ case 'instalment_pending':
+ $groupedData['instalment_pending'][] = $row;
+ break;
+ default:
+ $groupedData['under_process'][] = $row;
+ break;
+ }
+ }
+
+ return $groupedData;
+ }
}
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index fa90b6fe..20353e2f 100755
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -319,6 +319,7 @@ class EmpDataServiceController extends BaseController
->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id')
->where('client_policy.id', $export_data['client_policy_id'])
->where('insurer_excel_export_template.event_name', $export_data['event_type'])
+ ->where('insurer_excel_export_template.is_active', 1) //Live issue changes 17-10-2024
->where('insurer_excel_export_template.type_name', $export_data['actions'])
->first();
@@ -530,6 +531,7 @@ class EmpDataServiceController extends BaseController
->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id')
->where('client_policy.id', $export_data['client_policy_id'])
->where('insurer_excel_export_template.event_name', $export_data['event_type'])
+ ->where('insurer_excel_export_template.is_active', 1) //Live issue changes 17-10-2024
->where('insurer_excel_export_template.type_name', $export_data['actions'])
->first();
@@ -665,6 +667,7 @@ class EmpDataServiceController extends BaseController
->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id')
->where('client_policy.id', $export_data['client_policy_id'])
->where('insurer_excel_export_template.event_name', $export_data['event_type'])
+ ->where('insurer_excel_export_template.is_active', 1) //Live issue changes 17-10-2024
->where('insurer_excel_export_template.type_name', $export_data['actions'])
->first();
@@ -776,6 +779,7 @@ class EmpDataServiceController extends BaseController
->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id')
->where('client_policy.id', $export_data['client_policy_id'])
->where('insurer_excel_export_template.event_name', $export_data['event_type'])
+ ->where('insurer_excel_export_template.is_active', 1) //Live issue changes 17-10-2024
->where('insurer_excel_export_template.type_name', $export_data['actions'])
->first();
diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php
new file mode 100644
index 00000000..4aad7955
--- /dev/null
+++ b/app/Controllers/LeadsController.php
@@ -0,0 +1,221 @@
+myLogger = \Config\Services::mylogger();
+
+ $this->clientModel = new ClientModel();
+ $this->userModel = new UserModel();
+ $this->clientBranchModel = new ClientBranchModel();
+ $this->clientPolicyModel = new ClientPolicyModel();
+ $this->levelContactModel = new LevelContactModel();
+ $this->leadsModel = new LeadsModel();
+ $this->policyTypeModel = new PolicyTypeModel();
+ $this->kycEntityTypeModel = new KYCEntityTypeModel();
+ $this->policyTransactionStatusModel = new PolicyTransactionStatusModel();
+
+ $this->issuer = [1 => 'JIBS', 2 => 'Nhance'];
+ $this->clientType = [1 => 'Group', 2 => 'Individual'];
+ $this->leadType = [1 => 'Fresh', 2 => 'Renewal'];
+ $this->leadsStatus = [
+ 'queued' => 'Queued',
+ 'qcr_sent' => 'QCR sent',
+ 'lost' => 'Lost',
+ 'co_insurer_pending' => 'Co-Insurer Pending',
+ 'won' => 'Won',
+ 'completed_with_corrections' => 'Completed with Corrections',
+ 'completed_without_corrections' => 'Completed w/o Corrections',
+ ];
+ }
+
+ public function viewLeadsList()
+ {
+ $data['page_name'] = 'Leads';
+
+ $data['issuer'] = $this->issuer ;
+ $data['client_type'] = $this->clientType;
+ $data['lead_type'] = $this->leadType;
+ $data['lead_status'] = $this->leadsStatus;
+
+ $data['policy_type'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['entity'] = $this->kycEntityTypeModel->where('is_active', 1)->findAll();
+ $data['salse_team'] = $this->userModel
+ ->select('user_profiles.*')
+ ->join('user_teams', 'user_profiles.id = user_teams.user_id')
+ ->where('user_teams.team_id', 5)
+ ->where('user_teams.is_active', 1)
+ ->where('user_profiles.is_active', 1)
+ ->findAll();
+
+ $data['lead_data_list'] = $this->leadsModel->getLeadDataForLising();
+ // dd($data);
+ $this->loadLayout('leads_list', $data);
+ }
+
+ public function createLead()
+ {
+ // print_r($this->request->getPost()); die;
+ $id = $this->request->getPost('id');
+ $data = $this->prepareLeadData();
+ // print_r($this->request->getPost()); die;
+
+
+ if (!$id) {
+ return $this->insertNewLead($data);
+ } else {
+ return $this->updateOldLead($id, $data);
+ }
+ }
+
+ private function prepareLeadData()
+ {
+ $data = $this->request->getPost();
+
+ if($data['lead_type'] == 2){
+ $client_data = $this->clientModel->where('id', $data['client_id'])->where('is_active', 1)->first();
+ $data['client_name'] = $client_data['client_name'];
+ $data['client_short_name'] = $client_data['short_name'];
+ $data['entity_type_id'] = $client_data['entity_type_id'];
+ $data['client_type'] = $client_data['client_type'];
+ }else{
+ $data['client_id'] = 0;
+ $data['client_branch_id'] = 0;
+ $data['source_policy_id'] = 0;
+ }
+
+ $data['client_code'] = generate_client_code();
+ if($data['client_code'] == 2){
+ $data['client_code'] = generate_client_code('IC');
+ }
+
+ $data = $this->prepareMultipleLeadData($data);
+
+ return $data;
+ }
+
+ private function prepareMultipleLeadData($data)
+ {
+ $processedData = [];
+ foreach($data['policy_type_id'] as $index => $value){
+ $processedData = [
+ 'lead_type' => $data['lead_type'],
+ 'issuer' => $data['issuer'],
+ 'client_type' => $data['client_type'],
+ 'client_name' => $data['client_name'],
+ 'client_short_name' => $data['client_short_name'],
+ 'entity_type_id' => $data['entity_type_id'],
+ 'client_code' => $data['client_code'],
+ 'cost_center' => $data['cost_center'],
+ 'pan' => $data['pan'],
+ 'gst' => $data['gst'],
+ 'branch_name' => $data['branch_name'],
+ 'branch_code' => $data['branch_code'],
+ 'contact_person_name' => $data['contact_person_name'],
+ 'contact_person_mobile' => $data['contact_person_mobile'],
+ 'client_id' => $data['client_id'],
+ 'client_branch_id' => $data['client_branch_id'],
+ 'source_policy_id' => $data['source_policy_id'],
+ 'policy_type_id' => $value,
+ 'salse_person_id' => $data['salse_person_id'],
+ 'status' => $data['status'],
+ 'notes' => $data['notes'],
+ 'created_by' => $data['created_by'],
+ 'updated_by' => $data['updated_by'],
+ 'is_active' => $data['is_active'],
+ ];
+ }
+
+ return $processedData;
+ }
+
+ private function insertNewLead($data)
+ {
+ $insert = $this->leadsModel->insert($data);
+
+ if ($insert) {
+ $this->insertLeadStatus($insert, $data['status'], 3);
+ return $this->respond(['status' => true, 'lead_id' => $insert, 'message' => 'New Lead created successfully', 'data' =>$data], 200);
+ }
+
+ return $this->respond(['status' => true, 'lead_id' => $insert, 'message' => "Failed to create Lead", 'data' =>$data], 200);
+ }
+
+ private function updateOldLead($id, $data)
+ {
+ if ($this->leadsModel->update($id, $data)) {
+
+ $this->insertLeadStatus($id, $data['status'], 3);
+ return $this->respond(['status' => true, 'lead_id' => $id, 'message' => "Lead updated successfully", 'data' =>$data], 200);
+ }
+ return $this->respond(['status' => false, 'lead_id' => $id, 'message' => "Failed to update Lead", 'data' =>$data], 200);
+ }
+
+ // Get the Single Lead data for edit
+ public function getLeadDataForEdit($id)
+ {
+
+ $data = $this->leadsModel
+ ->where('leads.id', $id)
+ ->where('leads.is_active', 1)
+ ->first();
+
+ if($data){
+ return $this->respond(['status' => true, 'data' => $data], 200);
+ }else{
+ return $this->respond(['status' => false], 200);
+ }
+
+ }
+
+ private function insertLeadStatus($primaryKey, $status, $statusType)
+ {
+ $statusData = [
+ 'policy_tran_id' => $primaryKey,
+ 'status' => $status,
+ 'status_type' => $statusType,
+ 'created_by' => get_session_userid(),
+ ];
+ $this->policyTransactionStatusModel->insert($statusData);
+ }
+
+
+}
diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php
index 1eacb67f..0f735bdc 100644
--- a/app/Controllers/PolicyTransactionController.php
+++ b/app/Controllers/PolicyTransactionController.php
@@ -101,9 +101,10 @@ class PolicyTransactionController extends BaseController
// Policy Transaction Inception
public function viewInception()
- {
+ {
$data['page_name'] = 'Policy';
-
+
+ // Static arrays for dropdowns
$data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
$data['client_type'] = [1 => 'Group', 2 => 'Individual'];
$data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
@@ -143,8 +144,8 @@ class PolicyTransactionController extends BaseController
'policy_start_date' => 'Policy Start Date',
'policy_end_date' => 'Policy End Date',
];
-
- //filter datas
+
+ // Filter data
$start_date = $this->request->getGet('start_date');
$end_date = $this->request->getGet('end_date');
$client_id = $this->request->getGet('client_id');
@@ -153,28 +154,44 @@ class PolicyTransactionController extends BaseController
$date_type = $this->request->getGet('date_type');
$issuer = $this->request->getGet('issuer');
$status = $this->request->getGet('status');
-
- $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
- $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
-
- $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
- $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
- $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
- $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
- $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
- $status = (!isset($issuer) || $status === '' || $status === null) ? 0 : $status;
-
-
- $data['inception_data_list'] = $this->policyTransactionModel->getInceptionTranctionListData($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer, $status);
-
+
+ // Handle null or empty values
+ $start_date = empty($start_date) ? 0 : $start_date;
+ $end_date = empty($end_date) ? 0 : $end_date;
+ $client_id = empty($client_id) ? 0 : $client_id;
+ $insurer_id = empty($insurer_id) ? 0 : $insurer_id;
+ $policy_type_id = empty($policy_type_id) ? 0 : $policy_type_id;
+ $date_type = empty($date_type) ? 0 : $date_type;
+ $issuer = empty($issuer) ? 0 : $issuer;
+ $status = empty($status) ? 0 : $status; // Corrected from `$issuer`
+
+ // Fetch inception data list
+ $data['inception_data_list'] = $this->policyTransactionModel->getInceptionTranctionListData(
+ $start_date,
+ $end_date,
+ $client_id,
+ $insurer_id,
+ $policy_type_id,
+ $date_type,
+ $issuer,
+ $status
+ );
+
+ // Fetch additional data
$data['client'] = $this->clientModel->where('is_active', 1)->findAll();
$data['policy_type'] = $this->policyTypeModel->where('is_active', 1)->findAll();
$data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
- $data['entity'] = $this->kycEntityTypeModel->where('is_active', 1)->findAll();
+ $data['entity'] = $this->kycEntityTypeModel->where('is_active', 1)->findAll();
$data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
- $data['insurer_branch'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames();
- $data['tpa'] = $this->tpaBranchModel->getTpaBranchesWithTpaNames();
+ $data['insurer_branch'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames();
+ $data['tpa'] = $this->tpaBranchModel->getTpaBranchesWithTpaNames();
+
+ // Fetch PP Teams Data
+ $data['ppTeamsData'] = $this->userModel
+ ->where('is_active', 1)
+ ->findAll();
+ // Fetch Sales Team
$data['salse_team'] = $this->userModel
->select('user_profiles.*')
->join('user_teams', 'user_profiles.id = user_teams.user_id')
@@ -182,16 +199,22 @@ class PolicyTransactionController extends BaseController
->where('user_teams.is_active', 1)
->where('user_profiles.is_active', 1)
->findAll();
-
+
+ // Fetch ACM
$data['ACM'] = $this->userModel
- ->where('user_profiles.role', 3)
- ->where('user_profiles.is_active', 1)
+ ->where('role', 3) // Assuming `role` is in `user_profiles`
+ ->where('is_active', 1)
->findAll();
-
- $this->loadLayout('policy_transaction_inception_list', $data);
+ // echo '
';
+ // print_r($data['ppTeamsData']); die;
+
+ // dd($data);
+
+ // Load view
+ $this->loadLayout('policy_transaction_inception_list', $data);
}
-
+
// policy Transaction Create function start
public function createInceptionPolicy()
{
@@ -297,8 +320,8 @@ class PolicyTransactionController extends BaseController
$data['ct_type'] = 1;
}
- $month = '01-'.(string)$this->request->getPost('month');
- $data['month'] = empty($data['month']) ? null : date('Y-m-d', strtotime($month));
+ // $month = '01-'.(string)$this->request->getPost('month');
+ // $data['month'] = empty($data['month']) ? null : date('Y-m-d', strtotime($month));
// Determine $is_addon value
$data['is_addon'] = in_array($data['policy_type_id'], [1, 2, 6, 7]) ? 1 :
@@ -729,6 +752,8 @@ class PolicyTransactionController extends BaseController
if(!empty($data['month'])){
$data['month'] = change_date_format($data['month'], 'Y-m-d', 'M/Y');
+ }else{
+ $data['month'] = null;
}
@@ -744,7 +769,7 @@ class PolicyTransactionController extends BaseController
->findAll();
- $data['base_policy_data'] = $this->clientPolicyModel
+ $data['base_policy_data'] = $this->clientPolicyModel
->select('client_policy.*, policy_type.policy_type')
->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
->where('client_policy.client_id', $data['client_id'])
@@ -752,13 +777,18 @@ class PolicyTransactionController extends BaseController
->whereIn('client_policy.policy_type_id', [2, 3])
->where('client_policy.is_active', 1)
->findAll();
-
+
$data['pt_files'] = $this->PTFileModel
- ->join('policy_transaction', 'pt_files.pt_id = policy_transaction.id')
- ->where('pt_files.pt_id', $id)
- ->where('pt_files.is_active', 1)
+ ->join('policy_transaction', 'pt_files.pt_id = policy_transaction.id')
+ ->where('pt_files.pt_id', $id)
+ ->where('pt_files.is_active', 1)
+ ->findAll();
+
+ $data['pt_co_share_details'] = $this->PTCOShareDetailsModel
+ ->where('pt_id', $id)
+ ->where('is_active', 1)
+ ->orderBy('id', 'asc')
->findAll();
- $data['pt_co_share_details'] = $this->PTCOShareDetailsModel->where('pt_id', $id)->where('is_active', 1)->findAll();
$data['emp_data'] = $this->employeeModel
->select('employees.*, employee_polices.id as emp_policy_id')
->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left')
@@ -1146,9 +1176,9 @@ class PolicyTransactionController extends BaseController
'created_by' => get_session_userid(),
];
- $uploadFilePath = $uploadFilePath . '/' . $uploadedFileName;
+ // $uploadFilePath = $uploadFilePath . '/' . $uploadedFileName;
- $GoogleDriveController->uploadFiletoGdrive(client_policy_id: $client_policy_id, doc_type: 'POLICY', file_path: $uploadFilePath, file_name: $uploadedFileName);
+ // $GoogleDriveController->uploadFiletoGdrive(client_policy_id: $client_policy_id, doc_type: 'POLICY', file_path: $uploadFilePath, file_name: $uploadedFileName);
// Insert into database
$insert = $this->PTFileModel->insert($docData);
@@ -1374,8 +1404,6 @@ class PolicyTransactionController extends BaseController
$date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
$issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
-
-
$data['varience_list'] = $this->policyTransactionModel->getVarienceReportLIst($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
$this->loadLayout('variance_report_list', $data);
@@ -1462,6 +1490,46 @@ class PolicyTransactionController extends BaseController
$this->loadLayout('finance_team_list', $data);
}
+ public function reportOutstanding()
+ {
+ $data['page_name'] = 'Outstanding Report';
+
+ $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+ $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+ $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+ $data['date_type'] = [
+ 'policy_issue_date' => 'Policy Issue Date',
+ 'policy_start_date' => 'Policy Start Date',
+ 'policy_end_date' => 'Policy End Date',
+ 'data_received_date' => 'Data Received Date',
+ 'closure_date' => 'Closure Date',
+ ];
+
+ //filter datas
+ $start_date = $this->request->getGet('start_date');
+ $end_date = $this->request->getGet('end_date');
+ $client_id = $this->request->getGet('client_id');
+ $insurer_id = $this->request->getGet('insurer_id');
+ $policy_type_id = $this->request->getGet('policy_type_id');
+ $date_type = $this->request->getGet('date_type');
+ $issuer = $this->request->getGet('issuer');
+
+ $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
+ $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
+
+ $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
+ $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;
+ $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;
+ $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;
+ $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;
+
+ $data['outstanting_list'] = $this->policyTransactionModel->getOutstandingReportLIst($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
+ // dd($this->policyTransactionModel->getLastQuery());
+ // dd($data);
+ $this->loadLayout('outstanding_report_list', $data);
+
+ }
//---------------------------------------------------------------------------------------------------
diff --git a/app/Models/ClientModel.php b/app/Models/ClientModel.php
index e188b5bd..3b40a3fb 100755
--- a/app/Models/ClientModel.php
+++ b/app/Models/ClientModel.php
@@ -114,5 +114,96 @@ class ClientModel extends Model
}
+
+ public function getClientData($client_id = null)
+ {
+ // Load the database if not already loaded
+ $db = \Config\Database::connect();
+
+ // Clients query
+ $clientQuery = $db->table('clients')
+ ->groupStart() // Start grouping OR conditions
+ ->where('client_type IS NULL OR client_type = ""')
+ ->orWhere('entity_type_id IS NULL OR entity_type_id = ""')
+ ->orWhere('client_name IS NULL OR client_name = ""')
+ ->orWhere('short_name IS NULL OR short_name = ""')
+ ->orWhere('pan IS NULL OR pan = ""')
+ ->groupEnd(); // End grouping OR conditions
+
+ if ($client_id) {
+ // If client_id is passed, fetch data for this particular client
+ $clientQuery->where('id', $client_id);
+ }
+
+ $clients = $clientQuery->get()->getResultArray();
+
+ // Client Branch query
+ $branchQuery = $db->table('client_branch')
+ ->groupStart()
+ ->where('branch_name IS NULL OR branch_name = ""')
+ ->orWhere('branch_code IS NULL OR branch_code = ""')
+ ->orWhere('gst IS NULL OR gst = ""')
+ ->orWhere('units IS NULL OR units = ""')
+ ->groupEnd();
+
+ if ($client_id) {
+ // Add filter for particular client's branches if client_id is passed
+ $branchQuery->where('client_id', $client_id);
+ }
+
+ $clientBranches = $branchQuery->get()->getResultArray();
+
+ // Client Policy query
+ $policyQuery = $db->table('client_policy')
+ ->groupStart()
+ ->where('client_id IS NULL OR client_id = ""')
+ ->orWhere('client_branch_id IS NULL OR client_branch_id = ""')
+ ->orWhere('policy_id IS NULL OR policy_id = ""')
+ ->orWhere('policy_type_id IS NULL OR policy_type_id = ""')
+ ->orWhere('insurer_id IS NULL OR insurer_id = ""')
+ ->orWhere('insurer_branch_id IS NULL OR insurer_branch_id = ""')
+ ->orWhere('tpa_id IS NULL OR tpa_id = ""')
+ ->orWhere('tpa_branch_id IS NULL OR tpa_branch_id = ""')
+ ->orWhere('policy_start_date IS NULL OR policy_start_date = ""')
+ ->orWhere('policy_end_date IS NULL OR policy_end_date = ""')
+ ->orWhere('policy_no IS NULL OR policy_no = ""')
+ ->orWhere('cd_ac_no IS NULL OR cd_ac_no = ""')
+ ->orWhere('policy_terms IS NULL OR policy_terms = ""')
+ ->orWhere('gst IS NULL OR gst = ""')
+ ->groupEnd();
+
+ if ($client_id) {
+ // Add filter for particular client's policies if client_id is passed
+ $policyQuery->where('client_id', $client_id);
+ }
+
+ $clientPolicies = $policyQuery->get()->getResultArray();
+
+ // Client RM query
+ $rmQuery = $db->table('client_rm')
+ ->groupStart()
+ ->where('client_id IS NULL OR client_id = ""')
+ ->orWhere('user_id IS NULL OR user_id = ""')
+ ->orWhere('level IS NULL OR level = ""')
+ ->groupEnd();
+
+ if ($client_id) {
+ // Add filter for particular client's RM if client_id is passed
+ $rmQuery->where('client_id', $client_id);
+ }
+
+ $clientRms = $rmQuery->get()->getResultArray();
+
+ // Combine all results into a single array
+ $result = [
+ 'clients' => $clients,
+ 'client_branches' => $clientBranches,
+ 'client_policies' => $clientPolicies,
+ 'client_rms' => $clientRms
+ ];
+
+ return $result;
+ }
+
}
diff --git a/app/Models/LeadsModel.php b/app/Models/LeadsModel.php
new file mode 100644
index 00000000..0f171b50
--- /dev/null
+++ b/app/Models/LeadsModel.php
@@ -0,0 +1,94 @@
+select('
+ leads.*,
+ kyc_entity_type.name as entity_type,
+ policy_type.policy_type,
+ user_profiles.first_name as salse_person_name
+ ')
+ ->join('kyc_entity_type', 'leads.entity_type_id = kyc_entity_type.id', 'left')
+ ->join('user_profiles', 'leads.salse_person_id = user_profiles.id', 'left')
+ ->join('policy_type', 'leads.policy_type_id = policy_type.id', 'left')
+ ->where('leads.is_active', 1)
+ ->where('leads.is_active', 1)
+ ->where('leads.is_active', 1)
+ ->findAll();
+
+ }
+
+
+}
diff --git a/app/Models/PolicyTransactionModel.php b/app/Models/PolicyTransactionModel.php
index dca5d9b4..3fa28edd 100644
--- a/app/Models/PolicyTransactionModel.php
+++ b/app/Models/PolicyTransactionModel.php
@@ -565,7 +565,8 @@ class PolicyTransactionModel extends Model
'policy_transaction.action_type as action_type_full',
'pt_co_share_details.bp_amt',
'pt_co_share_details.tp_amt',
- 'pt_co_share_details.tep_amt'
+ 'pt_co_share_details.tep_amt',
+ 'policy_transaction.status'
])
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'clients.id = policy_transaction.client_id', 'left')
@@ -573,7 +574,7 @@ class PolicyTransactionModel extends Model
->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
->where('policy_transaction.is_active', 1)
- ->where('policy_transaction.status', 'completed')
+ // ->where('policy_transaction.status', 'completed')
->where('pt_co_share_details.bp_amt IS NULL OR pt_co_share_details.bp_amt = 0');
if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
@@ -633,7 +634,8 @@ class PolicyTransactionModel extends Model
END AS action_type,
policy_transaction.action_type AS action_type_full,
pt_co_share_details.exp_amt,
- pt_co_share_details.variance
+ pt_co_share_details.variance,
+ policy_transaction.status
")
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'clients.id = policy_transaction.client_id', 'left')
@@ -641,7 +643,7 @@ class PolicyTransactionModel extends Model
->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
->where('policy_transaction.is_active', 1)
- ->where('policy_transaction.status', 'completed')
+ // ->where('policy_transaction.status', 'completed')
->where('COALESCE(pt_co_share_details.agreed_bp_per, 0) + COALESCE(pt_co_share_details.agreed_tp_per, 0) + COALESCE(pt_co_share_details.agreed_tep_per, 0) = 0')
->where('COALESCE(pt_co_share_details.actual_bp_amt, 0) + COALESCE(pt_co_share_details.actual_tp_amt, 0) + COALESCE(pt_co_share_details.actual_tep_amt, 0) = 0')
->where('COALESCE(pt_co_share_details.actual_bp_brokerage_amt, 0) + COALESCE(pt_co_share_details.actual_tp_brokerage_amt, 0) + COALESCE(pt_co_share_details.actual_tep_brokerage_amt, 0) = 0');
@@ -687,4 +689,103 @@ class PolicyTransactionModel extends Model
return $builder->get()->getResultArray();
}
+
+ public function getOutstandingReportList($start_date = 0, $end_date = 0, $client_id = 0, $insurer_id = 0, $policy_type_id = 0, $date_type = 0, $issuer = 0, $status = 0)
+ {
+ $builder = $this->db->table('policy_transaction')
+ ->select("
+ policy_transaction.id,
+ clients.client_name,
+ insurers.name AS insurer_name,
+ policy_type.policy_type,
+ policy_transaction.policy_no,
+ policy_transaction.endorsement_no,
+ CASE
+ WHEN policy_transaction.action_type = 'inception' THEN 'I'
+ ELSE 'E'
+ END AS action_type,
+ pt_co_share_details.exp_amt,
+ pt_co_share_details.variance,
+ insurer_statements.invoice_amount,
+ insurer_statements.invoice_status,
+
+ ROUND((pt_co_share_details.actual_bp_brokerage_amt + pt_co_share_details.actual_tp_brokerage_amt + pt_co_share_details.actual_tep_brokerage_amt), 2) AS realization_amount2,
+
+ (
+ SELECT
+ (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds)) AS realization_amount
+ FROM
+ inv_payment_details
+ WHERE
+ inv_payment_details.statement_id = insurer_statements.id
+ AND inv_payment_details.is_active = 1
+
+ ) AS realization_amount,
+
+ ROUND(
+ insurer_statements.invoice_amount -
+ (
+ SELECT
+ (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds))
+ FROM
+ inv_payment_details
+ WHERE
+ inv_payment_details.statement_id = insurer_statements.id
+ AND inv_payment_details.is_active = 1
+ ),
+ 2) AS outstanding_amount
+ ")
+ ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+ ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
+ ->join('inv_payment_details', 'insurer_statements.id = inv_payment_details.statement_id', 'left')
+ ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
+ ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left')
+ ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+ ->join('policy_type', 'policy_transaction.policy_type_id = policy_type.id', 'left')
+ ->where('policy_transaction.is_active', 1);
+
+ // Date range filtering
+ if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
+ $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+ $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+ $builder->where('policy_transaction.' . $date_type . '>=', $startDate)
+ ->where('policy_transaction.' . $date_type . '<=', $endDate);
+ } else {
+ $fromDate = date('Y-m-d', strtotime('-30 days'));
+ $toDate = date('Y-m-d 23:59:59');
+
+ $builder->where('policy_transaction.created_at >=', $fromDate)
+ ->where('policy_transaction.created_at <=', $toDate);
+ }
+
+ // Additional filters
+ if ($client_id != 0) {
+ $builder->where('policy_transaction.client_id', $client_id);
+ }
+
+ if ($insurer_id != 0) {
+ $builder->where('policy_transaction.insurer_id', $insurer_id);
+ }
+
+ if ($policy_type_id != 0) {
+ $builder->where('client_policy.policy_type_id', $policy_type_id);
+ }
+
+ if ($issuer != 0) {
+ $builder->where('policy_transaction.issuer', $issuer);
+ }
+
+ if ($status != 0) {
+ $builder->where('policy_transaction.status', $status);
+ }
+
+ // Filter where outstanding_amount is not null
+ $builder->having('outstanding_amount IS NOT NULL');
+
+ $builder->orderBy('policy_transaction.id', 'desc');
+
+ return $builder->get()->getResultArray();
+ }
+
}
diff --git a/app/Views/DashBoard.php b/app/Views/DashBoard.php
index 89a5406f..16f0ec66 100755
--- a/app/Views/DashBoard.php
+++ b/app/Views/DashBoard.php
@@ -201,7 +201,7 @@ body {
Enrolment
-
+
-
+
diff --git a/app/Views/bds_dash.php b/app/Views/bds_dash.php
index 3e62985f..89a92413 100644
--- a/app/Views/bds_dash.php
+++ b/app/Views/bds_dash.php
@@ -123,29 +123,20 @@ body{
margin-top: 0;
margin-bottom: 5px;
}
-
-.modal-right{
- width: 100% !important;
- justify-content: normal !important;
-}
-
-.modal-body {
- max-height: 100vh;
- overflow-y: auto;
- padding-left: 25px !important;
- padding-right: 25px !important;
- padding-top: 10px !important;
- padding-bottom: 35% !important;
-}
-
-
-
-
-
+
+
+
+
+
+
+
+
Business Team Pending
= $businessTeamCount ?>
@@ -155,12 +146,37 @@ body{
+ $value) {
+ $colorSetIndex = floor($index / $shadeCount) % $colorSetCount; // Reset color set after each set
+ $shadeIndex = $index % $shadeCount; // Cycle through shades within the set
+
+ // Get the background color for the current tile
+ $bgColor = $colorShades[$colorSetIndex][$shadeIndex];
+ ?>
+
+
+
= count($value) ?>
+ = $policyStatus[$status] ?>
+
+
+
+
+
-
+
-
-
+
+
Finance Team Pending
= $financeTeamCount ?>
@@ -170,8 +186,35 @@ body{
+ $value) {
+ $colorSetIndex = floor($index / $shadeCount) % $colorSetCount; // Reset color set after each set
+ $shadeIndex = $index % $shadeCount; // Cycle through shades within the set
+
+ // Get the background color for the current tile
+ $bgColor = $colorShades[$colorSetIndex][$shadeIndex];
+ ?>
+
+
+
= count($value) ?>
+ = $policyStatus[$status] ?>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php
index e2538907..784b6a74 100755
--- a/app/Views/layout/header.php
+++ b/app/Views/layout/header.php
@@ -655,7 +655,15 @@
-
+
+
+
@@ -672,7 +680,7 @@
Endorsement
-
+
Statement upload
@@ -684,13 +692,16 @@
Variance
+
+ Outstanding
+
Finance Team
-
+
Business Team
@@ -710,7 +721,7 @@
- -->
+
diff --git a/app/Views/leads_form.php b/app/Views/leads_form.php
new file mode 100644
index 00000000..83ba5210
--- /dev/null
+++ b/app/Views/leads_form.php
@@ -0,0 +1,587 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/Views/leads_list.php b/app/Views/leads_list.php
new file mode 100644
index 00000000..f062a1dd
--- /dev/null
+++ b/app/Views/leads_list.php
@@ -0,0 +1,333 @@
+
+
+
+
+
+
+
+
+
+
Leads List
+
+
+
+ Add
+
+
+
+
+
+
+
+ S.No.
+ Lead Type
+ Issuer
+ Client Type
+ Client / Branch
+ Entity Type
+ Branch Name
+ Branch Code
+ Contact Person Name
+ Contact Person Mobile
+ Policy Type
+ Status
+ Action
+
+
+
+
+ 0) { ?>
+ $row){ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No data available
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/Views/other_policy_terms.php b/app/Views/other_policy_terms.php
index d21d40c4..c8ed3a48 100755
--- a/app/Views/other_policy_terms.php
+++ b/app/Views/other_policy_terms.php
@@ -249,7 +249,7 @@ $('body').on('click', '.btnPolicyMaster', function() {
$('.loader-mask').delay(350).fadeOut('slow');
}, 500);
- $('#nameOfThePolicyOnOther').html(' - ' + res.policy_name.name);
+ // $('#nameOfThePolicyOnOther').html(' - ' + res.policy_name.name);
$('#emp_count').val(res.count)
diff --git a/app/Views/outstanding_report_list.php b/app/Views/outstanding_report_list.php
new file mode 100644
index 00000000..1c46f6a1
--- /dev/null
+++ b/app/Views/outstanding_report_list.php
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+
+
+
Outstanding Report
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/Views/policy_transaction_endorsement_form.php b/app/Views/policy_transaction_endorsement_form.php
index 543f2863..cace5d10 100644
--- a/app/Views/policy_transaction_endorsement_form.php
+++ b/app/Views/policy_transaction_endorsement_form.php
@@ -362,29 +362,36 @@
Total
-
+
+ Agreed BP %
+
+
+ Agreed TP %
+
+
+ Agreed TEP %
+
+
+
-
- Agreed BP %
-
-
- Agreed TP %
-
-
- Agreed TEP %
-
Agreed Amount
-
- Standard BP %
-
-
- Standard TP %
-
-
- Standard TEP %
-
+
+
+
+
+ Standard BP %
+
+
+ Standard TP %
+
+
+ Standard TEP %
+
+
+
+
Actual BP Amount
@@ -427,8 +434,6 @@
-
-
@@ -954,6 +959,12 @@ function amountCalculation(input) {
let standard_tp_per = parseFloat($('#standard_tp_' + input).val()) || 0;
let standard_tep_per = parseFloat($('#standard_tep_' + input).val()) || 0;
+ let co_share_per = parseFloat($('#co_share_per_' + input).val()) || 0;
+
+ let co_premium_amt = ((bp + tp + tep) * co_share_per) / 100;
+ $('#co_premium_' + input).val(!isNaN(co_premium_amt) && isFinite(co_premium_amt) ? co_premium_amt.toFixed(2) : '0.00');
+
+
// Calculate GST percentage
let gst_per = igst;
if (igst === 0) {
@@ -1226,6 +1237,65 @@ function actualAmountCalculation(input, field = null){
// console.log('variance', variance);
}
+function co_share_percentage_calculation(input){
+
+ var inputs = $('[name="co_share_per[]"]');
+
+ // Find the empty input(s)
+ var emptyInputs = inputs.filter(function() {
+ return $(this).val().trim() === ''; // Check for empty values
+ });
+
+ // Get the number of empty inputs
+ var emptyCount = emptyInputs.length;
+ console.log('Number of empty inputs:', emptyCount);
+
+ // If there's exactly one empty input, calculate and set its value
+ if (emptyCount === 1) {
+ // Calculate the sum of filled values
+ let sumFilled = 0;
+ inputs.each(function() {
+ var val = parseFloat($(this).val()) || 0;
+ sumFilled += val;
+ });
+
+ // Calculate the balance percentage
+ let balance_per = 100 - sumFilled;
+ console.log('Balance percentage:', balance_per);
+
+ // Set the balance value to the empty input
+ emptyInputs.val(balance_per);
+ }
+
+}
+
+function select_leader_disable_premium_amt(input, value) {
+ if ($(input).is(':checked')) {
+ // Disable and add readonly-select class to all premiums except the one with the given value
+ $('input[name="base_premium[]"]').addClass('readonly-select');
+ $('#base_premium_' + value).removeClass('readonly-select');
+
+ $('input[name="tp_premium[]"]').addClass('readonly-select');
+ $('#tp_premium_' + value).removeClass('readonly-select');
+
+ $('input[name="ter_premium[]"]').addClass('readonly-select');
+ $('#ter_premium_' + value).removeClass('readonly-select');
+
+ $('input[name="stamp_duty[]"]').addClass('readonly-select');
+ $('#stamp_duty_' + value).removeClass('readonly-select');
+
+ $('input[name="co_premium[]"]').addClass('readonly-select');
+ $('#co_premium_' + value).removeClass('readonly-select');
+ } else {
+ // Enable and remove readonly-select class from all premiums except the one with the given value
+ $('input[name="base_premium[]"]').removeClass('readonly-select');
+ $('input[name="tp_premium[]"]').removeClass('readonly-select');
+ $('input[name="ter_premium[]"]').removeClass('readonly-select');
+ $('input[name="stamp_duty[]"]').removeClass('readonly-select');
+ $('input[name="co_premium[]"]').removeClass('readonly-select');
+ }
+}
+
function validateRange(input) {
// if (input.value < 1) input.value = 1;
if (input.value > 100) input.value = 100;
@@ -1386,14 +1456,206 @@ function addInsurerColumn() {
case 1: // Is Leader?
newCell = `
-
+
Leader Yes
`;
break;
case 2: // Co-Share %
- newCell = `
`;
+ newCell = `
`;
+ break;
+ case 3: // Base Premium
+ newCell = `
`;
+ break;
+ case 4: // TP Premium
+ newCell = `
`;
+ break;
+ case 5: // Ter Premium
+ newCell = `
`;
+ break;
+ case 6: // co Premium
+ newCell = `
`;
+ break;
+ case 7: // CGST
+ newCell = `
`;
+ break;
+ case 8: // SGST
+ newCell = `
`;
+ break;
+ case 9: // IGST
+ newCell = `
`;
+ break;
+ case 10: // GST Amount
+ newCell = `
`;
+ break;
+ case 11: // Stamp Duty
+ newCell = `
`;
+ break;
+ case 12: // Total
+ newCell = `
`;
+ break;
+ case 13: // Agreed BP %
+ newCell = `
`;
+ break;
+ case 14: // Agreed TP %
+ newCell = `
`;
+ break;
+ case 15: // Agreed Ter %
+ newCell = `
`;
+ break;
+ case 16: // Standard BP %
+ newCell = `
`;
+ break;
+ case 17: // Standard TP %
+ newCell = `
`;
+ break;
+ case 18: // Standard Ter %
+ newCell = `
`;
+ break;
+ case 19: // Actual BP Amount
+ newCell = `
`;
+ break;
+ case 20: // Actual TP Amount
+ newCell = `
`;
+ break;
+ case 21: // Actual TEP Amount
+ newCell = `
`;
+ break;
+ case 22: // Actual BP %
+ newCell = `
`;
+ break;
+ case 23: // Actual TP %
+ newCell = `
`;
+ break;
+ case 24: // Actual TEP %
+ newCell = `
`;
+ break;
+ case 25: // Actual BP Brokerage Amount
+ newCell = `
`;
+ break;
+ case 26: // Actual TP Brokerage Amount
+ newCell = `
`;
+ break;
+ case 27: // Actual TEP Brokerage Amount
+ newCell = `
`;
+ break;
+ case 28: // Expected Amount
+ newCell = `
`;
+ break;
+ case 29: // Variance
+ newCell = `
`;
+ break;
+ case 30: // Reward
+ newCell = `
`;
+ break;
+ case 31: // ID For Update
+ newCell = `
`;
+ break;
+ }
+ }else if(team_id.includes('3')){
+ switch(index) {
+ case 0: // Insurer selection
+ newCell = `
+
+ Select Insurer
+
+
+ = $value['insurer_name'] . '-' . $value['branch_code'] ?>
+
+
+
+ `;
+ break;
+ case 1: // Is Leader?
+ newCell = `
+
+
+
+
+ Leader Yes
+ `;
+ break;
+ case 2: // Co-Share %
+ newCell = `
`;
+ break;
+ case 3: // Base Premium
+ newCell = `
`;
+ break;
+ case 4: // TP Premium
+ newCell = `
`;
+ break;
+ case 5: // Ter Premium
+ newCell = `
`;
+ break;
+ case 6: // co Premium
+ newCell = `
`;
+ break;
+ case 7: // CGST
+ newCell = `
`;
+ break;
+ case 8: // SGST
+ newCell = `
`;
+ break;
+ case 9: // IGST
+ newCell = `
`;
+ break;
+ case 10: // GST Amount
+ newCell = `
`;
+ break;
+ case 11: // Stamp Duty
+ newCell = `
`;
+ break;
+ case 12: // Total
+ newCell = `
`;
+ break;
+ case 13: // Agreed BP %
+ newCell = `
`;
+ break;
+ case 14: // Agreed TP %
+ newCell = `
`;
+ break;
+ case 15: // Agreed Ter %
+ newCell = `
`;
+ break;
+ case 16: // Standard BP %
+ newCell = `
`;
+ break;
+ case 17: // Standard TP %
+ newCell = `
`;
+ break;
+ case 18: // Standard Ter %
+ newCell = `
`;
+ break;
+ case 19: // ID For Update
+ newCell = `
`;
+ break;
+ }
+ }else if(team_id.includes('6')){
+ switch(index) {
+ case 0: // Insurer selection
+ newCell = `
+
+ Select Insurer
+
+
+ = $value['insurer_name'] . '-' . $value['branch_code'] ?>
+
+
+
+ `;
+ break;
+ case 1: // Is Leader?
+ newCell = `
+
+
+
+
+ Leader Yes
+ `;
+ break;
+ case 2: // Co-Share %
+ newCell = `
`;
break;
case 3: // Base Premium
newCell = `
`;
@@ -1486,69 +1748,6 @@ function addInsurerColumn() {
newCell = `
`;
break;
}
- }else if(team_id.includes('3')){
- switch(index) {
- case 0: // Insurer selection
- newCell = `
-
- Select Insurer
-
-
- = $value['insurer_name'] . '-' . $value['branch_code'] ?>
-
-
-
- `;
- break;
- case 1: // Is Leader?
- newCell = `
-
-
-
-
- Leader Yes
- `;
- break;
- case 2: // Co-Share %
- newCell = `
`;
- break;
- case 3: // Base Premium
- newCell = `
`;
- break;
- case 4: // TP Premium
- newCell = `
`;
- break;
- case 5: // Ter Premium
- newCell = `
`;
- break;
- case 6: // co Premium
- newCell = `
`;
- break;
- case 7: // CGST
- newCell = `
`;
- break;
- case 8: // SGST
- newCell = `
`;
- break;
- case 9: // IGST
- newCell = `
`;
- break;
- case 10: // GST Amount
- newCell = `
`;
- break;
- case 11: // Stamp Duty
- newCell = `
`;
- break;
- case 12: // Total
- newCell = `
`;
- break;
- case 13: // Agreed BP %
- newCell = `
`;
- break;
- case 14: // ID For Update
- newCell = `
`;
- break;
- }
}
// console.log(newCell);
@@ -1668,7 +1867,154 @@ function populateTable(dataArray, status = false) {
cell.find('select').val(insurer);
break;
case 1: // Is Leader?
- cell.find('input[type="checkbox"]').prop('checked', data.co_share_type === '1');
+ cell.find('input[type="checkbox"]').prop('checked', data.co_share_type === '1').change();
+ break;
+ case 2: // Co-Share %
+ cell.find('input').val(data.co_share_per);
+ break;
+ case 3: // Base Premium
+ cell.find('input').val(status ? data.bp_amt : '');
+ break;
+ case 4: // TP Premium
+ cell.find('input').val(status ? data.tp_amt : '');
+ break;
+ case 5: // Ter Premium
+ cell.find('input').val(status ? data.tep_amt : '');
+ break;
+ case 6: // Co Premium
+ cell.find('input').val(data.cop_amt);
+ break;
+ case 7: // CGST
+ cell.find('input').val(data.bp_cgst);
+ break;
+ case 8: // SGST
+ cell.find('input').val(data.bp_sgst);
+ break;
+ case 9: // IGST
+ cell.find('input').val(data.bp_igst);
+ break;
+ case 10: // GST Amount
+ cell.find('input').val(status ? data.bp_gst_amt : '');
+ break;
+ case 11: // Stamp Duty
+ cell.find('input').val(status ? data.stamp_duty : '');
+ break;
+ case 12: // Total
+ cell.find('input').val(status ? data.amount : '');
+ break;
+ case 13: // Agreed BP %
+ cell.find('input').val(data.agreed_bp_per);
+ break;
+ case 14: // Agreed TP %
+ cell.find('input').val(data.agreed_tp_per);
+ break;
+ case 15: // Agreed Ter %
+ cell.find('input').val(data.agreed_tep_per);
+ break;
+ case 16: // Standard BP %
+ cell.find('input').val(data.standerd_bp_per);
+ break;
+ case 17: // Standard TP %
+ cell.find('input').val(data.standerd_tp_per);
+ break;
+ case 18: // Standard Ter %
+ cell.find('input').val(data.standerd_tep_per);
+ break;
+ case 19: // Actual BP Amount
+ cell.find('input').val(status ? data.actual_bp_amt : '');
+ break;
+ case 20: // Actual TP Amount
+ cell.find('input').val(status ? data.actual_tp_amt : '');
+ break;
+ case 21: // Actual Ter Amount
+ cell.find('input').val(status ? data.actual_tep_amt : '');
+ break;
+ case 22: // Actual BP %
+ cell.find('input').val(status ? data.actual_bp_per : '');
+ break;
+ case 23: // Actual TP %
+ cell.find('input').val(status ? data.actual_tp_per : '');
+ break;
+ case 24: // Actual Ter %
+ cell.find('input').val(status ? data.actual_tep_per : '');
+ break;
+ case 25: // Actual BP Brokerage Amount
+ cell.find('input').val(status ? data.actual_bp_brokerage_amt : '');
+ break;
+ case 26: // Actual TP Brokerage Amount
+ cell.find('input').val(status ? data.actual_tp_brokerage_amt : '');
+ break;
+ case 27: // Actual Ter Brokerage Amount
+ cell.find('input').val(status ? data.actual_tep_brokerage_amt : '');
+ break;
+ case 28: // Expected Amount
+ cell.find('input').val(status ? data.exp_amt : '');
+ break;
+ case 29: // Variance
+ cell.find('input').val(status ? data.variance : '');
+ break;
+ case 30: // Reward
+ cell.find('input').val(status ? data.reward : '');
+ break;
+ case 31: // Co-share ID (hidden field)
+ cell.find('input[type="hidden"]').val(status ? data.id : '');
+ break;
+ }
+ }else if(team_id.includes('3')){
+ switch (rowIndex) {
+ case 0: // Insurer selection
+ cell.find('select').val(insurer);
+ break;
+ case 1: // Is Leader?
+ cell.find('input[type="checkbox"]').prop('checked', data.co_share_type === '1').change();
+ break;
+ case 2: // Co-Share %
+ cell.find('input').val(data.co_share_per);
+ break;
+ case 3: // Base Premium
+ cell.find('input').val(status ? data.bp_amt : '');
+ break;
+ case 4: // TP Premium
+ cell.find('input').val(status ? data.tp_amt : '');
+ break;
+ case 5: // Ter Premium
+ cell.find('input').val(status ? data.tep_amt : '');
+ break;
+ case 6: // Co Premium
+ cell.find('input').val(data.cop_amt);
+ break;
+ case 7: // CGST
+ cell.find('input').val(data.bp_cgst);
+ break;
+ case 8: // SGST
+ cell.find('input').val(data.bp_sgst);
+ break;
+ case 9: // IGST
+ cell.find('input').val(data.bp_igst);
+ break;
+ case 10: // GST Amount
+ cell.find('input').val(status ? data.bp_gst_amt : '');
+ break;
+ case 11: // Stamp Duty
+ cell.find('input').val(status ? data.stamp_duty : '');
+ break;
+ case 12: // Total
+ cell.find('input').val(status ? data.amount : '');
+ break;
+ case 13: // Agreed BP %
+ cell.find('input').val(data.agreed_bp_per);
+ break;
+ case 14: // Co-share ID (hidden field)
+ cell.find('input[type="hidden"]').val(status ? data.id : '');
+ break;
+ }
+ }else if(team_id.includes('6')){
+ switch (rowIndex) {
+ case 0: // Insurer selection
+ cell.find('select').val(insurer);
+ break;
+ case 1: // Is Leader?
+ cell.find('input[type="checkbox"]').prop('checked', data.co_share_type === '1').change();
break;
case 2: // Co-Share %
cell.find('input').val(data.co_share_per);
@@ -1764,54 +2110,6 @@ function populateTable(dataArray, status = false) {
cell.find('input[type="hidden"]').val(status ? data.id : '');
break;
}
- }else if(team_id.includes('3')){
- switch (rowIndex) {
- case 0: // Insurer selection
- cell.find('select').val(insurer);
- break;
- case 1: // Is Leader?
- cell.find('input[type="checkbox"]').prop('checked', data.co_share_type === '1');
- break;
- case 2: // Co-Share %
- cell.find('input').val(data.co_share_per);
- break;
- case 3: // Base Premium
- cell.find('input').val(status ? data.bp_amt : '');
- break;
- case 4: // TP Premium
- cell.find('input').val(status ? data.tp_amt : '');
- break;
- case 5: // Ter Premium
- cell.find('input').val(status ? data.tep_amt : '');
- break;
- case 6: // Co Premium
- cell.find('input').val(data.cop_amt);
- break;
- case 7: // CGST
- cell.find('input').val(data.bp_cgst);
- break;
- case 8: // SGST
- cell.find('input').val(data.bp_sgst);
- break;
- case 9: // IGST
- cell.find('input').val(data.bp_igst);
- break;
- case 10: // GST Amount
- cell.find('input').val(status ? data.bp_gst_amt : '');
- break;
- case 11: // Stamp Duty
- cell.find('input').val(status ? data.stamp_duty : '');
- break;
- case 12: // Total
- cell.find('input').val(status ? data.amount : '');
- break;
- case 13: // Agreed BP %
- cell.find('input').val(data.agreed_bp_per);
- break;
- case 14: // Co-share ID (hidden field)
- cell.find('input[type="hidden"]').val(status ? data.id : '');
- break;
- }
}
});
});
diff --git a/app/Views/policy_transaction_inception_form.php b/app/Views/policy_transaction_inception_form.php
index 23713e6f..c6d0e22a 100644
--- a/app/Views/policy_transaction_inception_form.php
+++ b/app/Views/policy_transaction_inception_form.php
@@ -155,6 +155,7 @@
+