diff --git a/app/Config/Routes.php b/app/Config/Routes.php index b3c5c7a4..f6311b6d 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -161,6 +161,7 @@ $routes->group("/employee", ["filter" => "authMVC"], function ($routes) { $routes->get("test-rack-rate", "EmployeeController::testRackRate"); $routes->post("test-rack-rate", "EmployeeController::testRackRate"); $routes->get('test_members_list', 'EmployeeController::test_members_list'); + $routes->post('get_emp_history','EmployeeController::getEmpHistory'); }); $routes->group("/master", ["filter" => "authMVC"], function ($routes) { diff --git a/app/Controllers/Chatbot/ReimbursementClaimStatusConversation.php b/app/Controllers/Chatbot/ReimbursementClaimStatusConversation.php index db8831bc..fd6e3337 100644 --- a/app/Controllers/Chatbot/ReimbursementClaimStatusConversation.php +++ b/app/Controllers/Chatbot/ReimbursementClaimStatusConversation.php @@ -27,7 +27,7 @@ class ReimbursementClaimStatusConversation extends Conversation $this->bot->types(); if ($data){ - $this->say("The claim status for the claim Number {$data['claim_number']} is currently in {$data['claim_status']} status.
More Detailed Information is sent to your mail"); + $this->say("The claim status for the claim Number {$data['claim_number']} is currently in {$data['client_status']} status.
More Detailed Information is sent to your mail"); $this->bot->startConversation(new doYouWantToContinueConversation()); }else{ $this->say("No Claim Raised against the user."); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 1cb8e029..4252cff6 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -676,13 +676,15 @@ class ClientController extends AdminController $client_id = $this->request->getPost('client_id'); $insurer_id = $this->request->getPost('insurer_id'); + $record_date = $this->request->getPost('record_date'); $CD_Account_Number = $this->CDMasterModel ->where('client_id', $client_id) ->where('insurer_id', $insurer_id) ->first(); - // Prepare the array with data + $date = \DateTime::createFromFormat('d/m/Y', $record_date); + $record_date = $date->format('Y-m-d'); $data = [ 'amount' => $this->request->getPost('amount'), 'sub_type_id' => $this->request->getPost('sub_type_id'), @@ -694,7 +696,10 @@ class ClientController extends AdminController 'description' => $this->request->getPost('description'), 'transaction_type' => $this->request->getPost('transaction_type') ?: 'Credit', 'updated_by' => 1, + 'record_date' => $record_date ]; + // log_message('error','data for insert'.json_encode($data));die(); + // print_rr($data);die(); // Call the saveDeposit function from DepositHelper diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 09092020..b27a0dae 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -25,6 +25,7 @@ use App\Models\InsurerExcelExportTemplateModel; use App\Models\InsurerModel; use App\Models\ClientDepositModel; use App\Models\PolicyPremium2Model; +use App\Models\AuditHistoryModel; use App\Controllers\Jobs; @@ -64,6 +65,7 @@ class EmployeeController extends AdminController protected $insurerModel; protected $cashDepositModel; protected $PolicyPremium2Model; + protected $auditHistory; public function __construct() { @@ -84,6 +86,7 @@ class EmployeeController extends AdminController $this->insurerModel = new InsurerModel(); $this->cashDepositModel = new ClientDepositModel(); $this->PolicyPremium2Model = new PolicyPremium2Model(); + $this->auditHistory = new AuditHistoryModel(); } public function list() @@ -2725,4 +2728,18 @@ class EmployeeController extends AdminController } } + public function getEmpHistory(){ + + $emp_id = $this->request->getPost('emp_id'); + + $data['emp_history'] = $this->auditHistory->select('field_name,old_value,new_value,created_by,created_at')->where('pk',$emp_id)->where('table_name','employees')->findAll(); + + $emp_pol_pk = $this->employeePolicyModel->select('id')->where('employee_id',$emp_id)->first()['id']; + $data['emp_pol_history'] = $this->auditHistory->select('field_name,old_value,new_value,created_by,created_at')->where('pk',$emp_pol_pk)->where('table_name','employee_polices')->findAll(); + + return $this->respond(['status' => true, 'data' => $data],200); + + + } + } diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php index bea4ebd8..b5f31223 100644 --- a/app/Controllers/LeadsController.php +++ b/app/Controllers/LeadsController.php @@ -66,6 +66,9 @@ class LeadsController extends BaseController protected $clientType; protected $leadType; protected $leadsStatus; + protected $claim_type_for_gpa; + protected $cause_of_death; + public function __construct() { @@ -98,6 +101,19 @@ class LeadsController extends BaseController 'completed_with_corrections' => 'Completed with Corrections', 'completed_without_corrections' => 'Completed w/o Corrections', ]; + $this->claim_type_for_gpa = [ + 'accident_death' => 'Accident Death', + 'permanent_total_disablement' => 'Permanent Total Disablement', + 'permanent_partial_disablement' => 'Permanent Partial Disablement', + 'temporary_total_disablement_benefit' => 'Temporary Total Disablement benefit' + ]; + + $this->cause_of_death = [ + 'natural_death' => 'Natural Death', + 'suicide' => 'Suicide', + 'accident' => 'Accident' + ]; + } public function viewLeadsList() @@ -125,7 +141,7 @@ class LeadsController extends BaseController // Fetch insurer and TPA branch data $data['insurer'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames(); $data['tpa'] = $this->tpaBranchModel->getTpaBranchesWithTpaNames(); - + // print_r($data['tpa']);die(); // Fetch sales team members who are active in team 5 $data['salse_team'] = $this->userModel ->select('user_profiles.*') @@ -136,7 +152,10 @@ class LeadsController extends BaseController ->findAll(); // dd($data); - + $data['lastFiveYears'] = $this->getLastFiveFinancialYears(); + $data['gpaClaimType'] = $this->claim_type_for_gpa; + $data['causeOfDeath'] = $this->cause_of_death; + // dd($lastFiveYears); if ($this->request->is('get')) { // Fetch leads data $data ['lead_data_list'] = $this->leadsModel->getLeadDataForLising(); @@ -272,7 +291,18 @@ class LeadsController extends BaseController $last_3_years_claims = null; if($value != 2){ - $last_3_years_claims = $data['finyear']; + $last_3_years_claims = []; + $finyear = json_decode($data['finyear']); + + foreach ($finyear as $year){ + $received_policy_type = ($year->finyear[0]->policy_type); + if ($value == $received_policy_type){ + array_push($last_3_years_claims,$year); + }else{ + continue; + } + } + $last_3_years_claims = json_encode($last_3_years_claims); } $processedData[] = [ @@ -340,7 +370,7 @@ class LeadsController extends BaseController 'notes' => $data['notes'] ?? null, ]; } - + // print_r($processedData);die(); return $processedData; } @@ -2329,4 +2359,26 @@ class LeadsController extends BaseController } } + function getLastFiveFinancialYears() { + $currentYear = date('Y'); + $currentMonth = date('m'); + + // In India, the financial year starts from April (04) + if ($currentMonth < 4) { + $currentYear--; // Adjust year if it's Jan-Mar + } + + $financialYears = []; + + for ($i = 0; $i < 5; $i++) { + $startYear = $currentYear - $i - 1; + $endYear = $currentYear - $i; + $financialYears[] = "$startYear-$endYear"; + } + + return $financialYears; + } + + + } diff --git a/app/Helpers/ChatbotHelper.php b/app/Helpers/ChatbotHelper.php index 6dff5c6c..08fcbb83 100644 --- a/app/Helpers/ChatbotHelper.php +++ b/app/Helpers/ChatbotHelper.php @@ -224,13 +224,22 @@ class ChatbotHelper } public static function getReimbursementClaimStatus($chat_session_info){ + + $client_claim_status = [ + 'Received' => [1,2,3,4], + 'Under Process' => [5,6,7,10], + 'Finished' => [9,11,12], + 'Rejected' => [8], + 'Cancelled' => [13,14] + ]; $emp_id = $chat_session_info['emp_id']; + log_message('error','emp_id'.$emp_id); $emp_code = $chat_session_info['emp_code']; $client_id = $chat_session_info['client_id']; $client_branch_id = $chat_session_info['client_branch_id']; $ticketMaster = new TicketMasterModel(); - $data = $ticketMaster->select('tcs.claim_status,ticket_master.claim_number,ticket_master.id') + $data = $ticketMaster->select('tcs.id as tcs_id,tcs.claim_status,ticket_master.claim_number,ticket_master.id,ticket_master.emp_name,ticket_master.emp_mail') // ->join('client_policy cp',"cp.client_id = {$client_id} and cp.client_branch_id = {$client_branch_id} and cp.policy_id = {$policy_id} and cp.is_active = 1") ->join('ticket_claim_status tcs',"ticket_master.claim_status_id = tcs.id and tcs.is_active = 1") ->where('ticket_master.emp_id',$emp_id) @@ -238,14 +247,38 @@ class ChatbotHelper ->where('ticket_master.is_active',1) ->orderBy('ticket_master.created_at', 'DESC') ->first(); + $server_claim_status = $data['tcs_id']; + $matched_key = null; + foreach ($client_claim_status as $key => $statuses) { + if (in_array($server_claim_status, $statuses)) { + $matched_key = $key; + break; // Stop loop once found + } + } + log_message('error','Data from ticket master'.json_encode($data)); + // print_r($data); + // die(); $ticket_controller = new TicketController(); - if (!empty($data)){ + if (!empty($data) && !empty($matched_key)){ $ticket_id = $data['id']; - $mail_content = $ticket_controller->constructMailContent($ticket_id); - $mail_response = $ticket_controller->sendTrigger($mail_content); - return $data; + $mail_content = Self::ReimbursementStatusMailTemplate($data['emp_name'],$data['claim_number'],$matched_key); + $common = ['mail_type'=>'Claim Status']; + $email_id = $data['emp_mail']; + $res = MailHelper::send_email(['mail' => $email_id, 'subject' => 'Here is your claim status you requested in bot.', 'message' => $mail_content,'common'=>$common]); + + $res = json_decode($res); + log_message('error','res: '.json_encode($res)); + if($res->status == 'success') + { + $data['client_status'] = $matched_key; + return $data; + } + else + { + return false; + } }else{ return false; @@ -253,6 +286,283 @@ class ChatbotHelper } + public static function ReimbursementStatusMailTemplate($emp_name, $claim_number, $client_status) { + $template = ' + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+ + + +
+
+ +
+ + + + + + + +
+ + + + + +
+ + + +
+ +
+ + +
+
+
+ + +
+
+
+ + + + + +
+
+
+ + + +
+
+ +
+ + + + + + + +
+ +
+

 

+

Dear [[member_name]],

+

Your Claim Number [[claim_number]] is currently in the [[status]] status with us.

+

 

+

 

+
+ +
+ + +
+
+
+ + +
+
+
+ + + + + +
+
+
+ + + +
+
+ +
+ + + + + + + +
+ +
+ Alternate image text +
+ +
+ + + + + + + +
+ +
+

ⓒ2024 Nhance India Insurance Broking Pvt Ltd

+
+ +
+ + +
+
+
+ + +
+
+
+ + + + +
+ + + + + + '; + + // Replace placeholders with actual values + $replacedTemplate = str_replace( + ['[[member_name]]', '[[claim_number]]', '[[status]]'], + [$emp_name, $claim_number, $client_status], + $template + ); + + return $replacedTemplate; + } + + } diff --git a/app/Helpers/DepositHelper.php b/app/Helpers/DepositHelper.php index 0ee54530..d225f71f 100755 --- a/app/Helpers/DepositHelper.php +++ b/app/Helpers/DepositHelper.php @@ -63,6 +63,7 @@ class DepositHelper 'updated_by' => $data['updated_by'], 'balance' => $newBalance, // Include the new balance in the data array 'cd_ac_pk'=> isset($data['cd_ac_pk'])?$data['cd_ac_pk']:null, + 'record_date' => $data['record_date'] ?? null ]; // Insert data and get the insert ID diff --git a/app/Models/ClientDepositModel.php b/app/Models/ClientDepositModel.php index 91bdf1c4..9d45f38f 100755 --- a/app/Models/ClientDepositModel.php +++ b/app/Models/ClientDepositModel.php @@ -27,7 +27,8 @@ class ClientDepositModel extends Model "endorsement_no", "event_name", "unit", - "cd_ac_pk" + "cd_ac_pk", + "record_date" ]; diff --git a/app/Views/employee_data_list.php b/app/Views/employee_data_list.php index 93fc893d..1f26c391 100755 --- a/app/Views/employee_data_list.php +++ b/app/Views/employee_data_list.php @@ -46,6 +46,38 @@ + +
@@ -154,6 +186,8 @@ ) { ?> Edit + Employee History + @@ -270,6 +304,20 @@
+ + + + diff --git a/app/Views/leads_form.php b/app/Views/leads_form.php index 1fdfee1d..0587df3e 100644 --- a/app/Views/leads_form.php +++ b/app/Views/leads_form.php @@ -1,38 +1,41 @@ @@ -82,11 +85,11 @@ @@ -103,11 +106,11 @@ @@ -117,11 +120,11 @@ @@ -233,11 +236,11 @@ @@ -247,16 +250,16 @@ @@ -280,528 +283,679 @@ \ No newline at end of file diff --git a/app/Views/leads_list.php b/app/Views/leads_list.php index 9c6c8390..261083b4 100644 --- a/app/Views/leads_list.php +++ b/app/Views/leads_list.php @@ -161,28 +161,29 @@ table.dataTable tbody td { @@ -320,6 +332,7 @@ $(document).ready(function() { var insurerId = 'id; ?>'; var transactionTypeValue = $('input[name="transactionMode"]:checked').val(); var subType = ""; + var record_date = $('#record_date').val(); if(amount == ""){ toastr.warning('Amount field is required') @@ -372,7 +385,8 @@ $(document).ready(function() { transaction_type: transactionType, sub_type_id: subType, // Include sub_type_id client_id: clientId, - insurer_id: insurerId + insurer_id: insurerId, + record_date : record_date }, success: function(response) { // Handle success response