diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index aef814cc..1b73489f 100755
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -334,6 +334,7 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) {
$routes->post('map_employees', 'EmployeeController::mapEmployees');
$routes->post('get_data_for_mapping', 'EmployeeController::getDataForMapping');
$routes->post('unmap_employees/(:num)', 'EmployeeController::unmapEmployees/$1');
+ $routes->get('transformMailContent', 'LeadsController::transformMailContent');
});
$routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) {
@@ -381,6 +382,7 @@ $routes->group("leads", ["filter" => "authMVC"], function ($routes) {
$routes->post("create", "LeadsController::createLead");
$routes->get("list/(:any)", "LeadsController::getLeadDataForEdit/$1");
$routes->get("sendMail", "LeadsController::sendMailWithAttachement");
+ $routes->post("sendMail", "LeadsController::sendMailWithAttachement");
$routes->get("exportQCRandRFQ/(:any)", "LeadsController::exportQCRandRFQ/$1");
$routes->get("featchLeadDataAndInsertClient/(:any)", "LeadsController::featchLeadDataAndInsertClient/$1");
$routes->get("featchClientPolicyFromLead/(:any)", "LeadsController::featchClientPolicyFromLead/$1");
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index 78baac0b..0e618c6f 100755
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -205,9 +205,6 @@ class EmpDataServiceController extends BaseController
// Log the export file name
$this->myLogger->logme('error', 'Inception export file name : {data}', ['data' => $export_data['file_name']]);
- // remove existing batch file anf batch list data every time export
- $this->removeOldExportInfoFromBatchFile($export_data);
-
// default excel header information
$excel_header_columns = [
[
@@ -258,7 +255,7 @@ class EmpDataServiceController extends BaseController
[
'column_index' => 7,
'column_name' => 'DATE OF COVERAGE',
- 'db_column_name' => 'date_coverage'
+ 'db_column_name' => 'date_of_coverage'
],
[
'column_index' => 8,
@@ -368,7 +365,7 @@ class EmpDataServiceController extends BaseController
[
'column_index' => 7,
'column_name' => 'DATE OF COVERAGE',
- 'db_column_name' => 'date_coverage'
+ 'db_column_name' => 'date_of_coverage'
],
[
'column_index' => 8,
@@ -428,14 +425,35 @@ class EmpDataServiceController extends BaseController
];
}else{
// get excel export format structure array
- $template_json = $this->clientPolicyModel
- ->select('insurer_excel_export_template.jsoncolumns')
- ->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();
+ // $template_json = $this->clientPolicyModel
+ // ->select('insurer_excel_export_template.jsoncolumns')
+ // ->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();
+
+ $sql = "
+ SELECT `insurer_excel_export_template`.`jsoncolumns`
+ FROM `client_policy`
+ JOIN `insurer_excel_export_template`
+ ON `insurer_excel_export_template`.`insurer_id` = `client_policy`.`insurer_id`
+ AND `insurer_excel_export_template`.`policy_type_id` =
+ CASE
+ WHEN `client_policy`.`policy_type_id` IN (2, 3, 4, 5) THEN 2
+ ELSE `client_policy`.`policy_type_id`
+ END
+ WHERE `client_policy`.`id` = '".$export_data['client_policy_id']."'
+ AND `insurer_excel_export_template`.`event_name` = '".$export_data['event_type']."'
+ AND `insurer_excel_export_template`.`is_active` = 1
+ AND `insurer_excel_export_template`.`type_name` = '".$export_data['actions']."'
+ LIMIT 1";
+
+ $query = db_connect()->query($sql);
+ $template_json = $query->getRowArray();
+
+ // dd(db_connect()->getLastQuery());
if(!empty($template_json) && $template_json != null){
$excel_header_columns = json_decode($template_json['jsoncolumns'], true);
@@ -444,6 +462,10 @@ class EmpDataServiceController extends BaseController
}
}
+ // remove existing batch file anf batch list data every time export
+ $this->removeOldExportInfoFromBatchFile($export_data);
+
+ //convert the excel data based on the insurer
$excel_data_info = generate_insurer_based_excel($excel_header_columns, $objects);
// Generate Excel file
@@ -1332,6 +1354,7 @@ class EmpDataServiceController extends BaseController
$employee_data = $this->employeePolicyModel->getInceptionEmployeeDataForExportExcel($ref_data, 1);
+ // dd($employee_data, $excel_data);
// ->select('
// employee_polices.id as emp_policy_id,
@@ -1343,7 +1366,7 @@ class EmpDataServiceController extends BaseController
// employees.gender AS emp_gender,
// employee_polices.pre_existing_alignments,
// employee_polices.basic_cover_si,
- // employee_polices.date_coverage,
+ // employee_polices.date_of_coverage,
// TIMESTAMPDIFF(YEAR, employees.dob, CURDATE()) AS emp_age,
// employees.relationship AS emp_relationship,
// employees.change_event AS change_event,
@@ -1453,17 +1476,22 @@ class EmpDataServiceController extends BaseController
}
if ($insurer_or_tpa == 'tpa') {
+
if ($excel_data[$key][13] === null) {
$missing_id[$key][] = [
'row' => $key,
- 'column' => 15,
+ 'column' => 13,
+ 'db_data' => "TPA ID is Must",
+ 'excel_data' => $excel_data[$key][13]
];
}
} else if ($insurer_or_tpa == 'insurer') {
if ($excel_data[$key][14] === null) {
$missing_id[$key][] = [
'row' => $key,
- 'column' => 16,
+ 'column' => 14,
+ 'db_data' => "UHID or Risk ID is Must",
+ 'excel_data' => $excel_data[$key][14]
];
}
}
@@ -1569,6 +1597,7 @@ class EmpDataServiceController extends BaseController
}
if ($emp_value['gst'] != $excel_data[$key][16]) {
+
$errors[$key][] = [
'row' => $key,
'column' => 16,
@@ -1610,7 +1639,7 @@ class EmpDataServiceController extends BaseController
$missing_id_count = count($missing_id);
$json_missing_id = json_encode($missing_id);
- // dd($error_count, $missing_id_count, $json_errors, $json_missing_id);
+ // dd($error_count, $missing_id_count, $json_errors, $json_missing_id, $employee_data, $excel_data);
if ($missing_id_count > 0) {
@@ -1954,12 +1983,14 @@ class EmpDataServiceController extends BaseController
->where("employees.is_active", 1)
->where("employees.emp_status", "active")
->where("emp_endorsement.actions", "c")
+ ->where("emp_endorsement.is_active", 1)
+ ->where("emp_endorsement.status !=", "truncated")
->where("(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')")
->findAll();
- // dd($endorsement_data, $excel_data);
+ dd($endorsement_data, $excel_data);
if ($endorsement_data == null || empty($endorsement_data)) {
@@ -2253,6 +2284,8 @@ class EmpDataServiceController extends BaseController
->where('employee_polices.status', 'active')
->where('employees.is_active', 1)
->where('employees.emp_status', 'active')
+ ->where("emp_endorsement.is_active", 1)
+ ->where("emp_endorsement.status !=", "truncated")
->first();
if (isset($result['id']) && $result['id'] !== null) {
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index 11f6bd53..2495ed2b 100755
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -41,7 +41,7 @@ use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Dompdf\Dompdf;
use Dompdf\Options;
-
+use Kint;
class EmployeeController extends AdminController
{
@@ -210,7 +210,9 @@ class EmployeeController extends AdminController
// $this->fileModel->where('id', '12')->set(['status' => 'failed','reason' => $failure_reason])->update();
// dd($failure_reason);
// }
-
+ // $this->truncateFileData(747, 5) ;
+ // print_rr($this->cloneWorksheet());
+ // die();
if ($this->request->getMethod() == 'post') {
//validate uploaded file
@@ -1227,7 +1229,7 @@ class EmployeeController extends AdminController
public function truncateFileData($file_id, $role_id = null)
{
$file_id = $this->request->uri->getSegment(3);
- // $file_id = 112;
+ // $file_id = 747;
$file = $this->fileModel->find($file_id);
$client_id = $file['client_id'];
$client_policy_id = $file['policy_id'];
@@ -1263,16 +1265,66 @@ class EmployeeController extends AdminController
}
} else {
- //update emp and emp plocies
- $db = db_connect();
- $query = "UPDATE employees JOIN employee_polices ON employees.id = employee_polices.employee_id and employees.file_id = $file_id SET employees.emp_status = 'truncated', employee_polices.status = 'truncated', employees.is_active = 0,employee_polices.is_active = 0 WHERE employees.file_id = $file_id";
- $db->query($query);
- $affectedRows = $db->affectedRows();
- // print_r($db->getLastQuery()); die;
- // $affectedRows = 10;
+ if($file['action'] != 'enrollment')
+ {
+ //update emp and emp plocies
+ $db = db_connect();
+ $query = "UPDATE employees JOIN employee_polices ON employees.id = employee_polices.employee_id and employees.file_id = $file_id SET employees.emp_status = 'truncated', employee_polices.status = 'truncated', employees.is_active = 0,employee_polices.is_active = 0 WHERE employees.file_id = $file_id";
+ $db->query($query);
+ $affectedRows = $db->affectedRows();
+ // print_r($db->getLastQuery()); die;
+ // $affectedRows = 10;
- //update file status
- $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update();
+ //update file status
+ $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update();
+ }
+ else
+ {
+ // echo 'came here...1';
+ //check all dependents added by self and other dependent policies
+ $emp_codes = $this->employeeModel->select('emp_code')
+ ->where('file_id', $file_id)
+ ->findAll();
+ $emp_codes = array_column($emp_codes,'emp_code');
+ // Kint::dump($emp_codes);//die;
+
+ $dependent_policies = $this->clientPolicyModel->select('id')
+ ->where('base_policy', $client_policy_id)
+ ->findAll();
+ // $dependent_policies = [ [10],[25],[35] ];
+ // Kint::dump($dependent_policies);
+ // Kint::dump(array_column($dependent_policies,'id'));
+ if(count($dependent_policies))
+ {
+ $dependent_policies = array_column($dependent_policies,'id');
+ // Kint::dump($dependent_policies);
+ $second_level_dependent_policies = $this->clientPolicyModel->select('id')
+ ->whereIn('base_policy', $dependent_policies)
+ ->findAll();
+ // dd($second_level_dependent_policies);
+ if(count($second_level_dependent_policies))
+ {
+ $second_level_dependent_policies = array_column($second_level_dependent_policies,'id');
+ }
+
+ $dependent_policies = array_merge($dependent_policies,$second_level_dependent_policies);
+ }
+ $dependent_policies = array_merge($dependent_policies,[$client_policy_id]);
+ // Kint::dump($dependent_policies);
+
+ //update emp and emp plocies
+ $db = db_connect();
+ $emp_codes = '(' . implode(',', array_map(fn($code) => "'$code'", $emp_codes)) . ')';
+ $dependent_policies = '(' . implode(',', $dependent_policies) . ')';
+ $query = "UPDATE employee_polices JOIN employees ON employees.id = employee_polices.employee_id and employees.emp_code in $emp_codes SET employee_polices.status = 'truncated', employee_polices.is_active = 0 WHERE employee_polices.client_policy_id in $dependent_policies";
+ $db->query($query);
+ $affectedRows = $db->affectedRows();
+
+ // dd($affectedRows);
+ $affectedRows = $affectedRows * 2;
+ $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update();
+
+ }
if($cd_tranction){
@@ -1312,7 +1364,7 @@ class EmployeeController extends AdminController
if ($res[0]->count == 0 || $role_id == 5 || $role_id == 1) {
//update truncated status to db
$this->empEndorsementModel->where('file_id', $file_id)
- ->set(['status' => 'truncated'])
+ ->set(['status' => 'truncated','is_active' => 0])
->update();
//update file status
$this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update();
@@ -1645,14 +1697,18 @@ class EmployeeController extends AdminController
$existing_units = $this->clientBranchModel->getExisitingUnits(client_id: $client_id,client_branch_id: $branch_id);
//get familiy details in inception file format array from post method
$data = calculate_premium_new(family_data: $family_details,policy_terms:$policy_details,slab_details:$slab_details,fileArr: $file,existing_units: $existing_units);
-
+ // print_rr($data);die();
foreach($data as $key => $member )
{
// ~dd($member);
- if(is_array($member))
+ if(is_array($member) && isset($member['policy_details']['date_coverage']) && isset($member['policy_details']['policy_end_date']) )
{
$data[$key]['policy_details']['no_of_days'] = $member['policy_details']['date_coverage'] ? (calculate_days_bw_dates($member['policy_details']['date_coverage'],$member['policy_details']['policy_end_date'])->days + 1) : '';
}
+ else
+ {
+ $data[$key]['policy_details']['no_of_days'] = '0';
+ }
}
return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => ['new' => $data,'old' => $existing_famility_details], 200]);
@@ -2127,4 +2183,60 @@ class EmployeeController extends AdminController
}
+
+
+ public function cloneWorksheet()
+ {
+ // Define file paths
+ $inputFilePath = 'C:\Users\Venba\Downloads/merge1.xlsx'; // Path to the existing file
+ $outputFilePath = WRITEPATH . '/tmp/cloned_file.xlsx'; // Path to save the new file
+
+ try {
+ // Load the existing spreadsheet
+ $spreadsheet = IOFactory::load($inputFilePath);
+
+ // Get the first worksheet (or specify the index of the sheet to clone)
+ $originalWorksheet = $spreadsheet->getSheet(0);
+
+ // Clone the worksheet
+ $clonedWorksheet = clone $originalWorksheet;
+
+ // Generate a unique name for the cloned worksheet
+ $baseName = "Cloned Sheet";
+ $sheetIndex = 1;
+ $uniqueName = $baseName;
+
+ // Check for duplicate names and generate a unique one
+ while ($spreadsheet->sheetNameExists($uniqueName)) {
+ $uniqueName = $baseName . " " . $sheetIndex;
+ $sheetIndex++;
+ }
+
+ // Set the unique name for the cloned worksheet
+ $clonedWorksheet->setTitle($uniqueName);
+
+ // Add the cloned worksheet to the spreadsheet
+ $spreadsheet->addSheet($clonedWorksheet);
+
+ // Modify the cloned sheet (optional)
+ $clonedWorksheet->setCellValue('A1', 'Hello, Cloned Sheet!');
+
+ // Save the modified spreadsheet to a new file
+ $writer = new Xlsx($spreadsheet);
+ $writer->save($outputFilePath);
+
+ return $this->response->setJSON([
+ 'status' => 'success',
+ 'message' => 'Spreadsheet with cloned sheet created successfully!',
+ 'file_path' => $outputFilePath,
+ ]);
+ } catch (\Exception $e) {
+ // Handle exceptions
+ return $this->response->setJSON([
+ 'status' => 'error',
+ 'message' => $e->getMessage(),
+ ]);
+ }
+ }
+
}
diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index f94d4f6e..ad476113 100755
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -132,7 +132,7 @@ class EmployeeServiceController extends AdminController
'format' => 'd-M-Y',
'allowed_values' => null,
'custom' => 'check_dob_diff',
- 'params' => ['row', 'relationship', 'default_age_ratio']
+ 'params' => ['row', 'relationship', 'default_age_ratio','policy_details']
],
'gender' => [
'col_idx' => 4,
@@ -767,10 +767,9 @@ class EmployeeServiceController extends AdminController
$relationship = $this->general_relationships;
//get exisiting mobilr nos
$existing_mobilenos = $this->employeePolicyModel->getExisitingMobileNos(client_policy_id: $file['policy_id']);
-
//get existing units in the current branch
$existing_units = $this->clientBranchModel->getExisitingUnits(client_id: $file['client_id'],client_branch_id: $file['client_branch_id']);
- // dd($existing_units);
+ // dd($excel_data);
foreach ($excel_data as $row_key => $row)
{
//define row wise action/event in temporary variable
@@ -1234,7 +1233,6 @@ class EmployeeServiceController extends AdminController
// Kint::dump($family);die();
$data = calculate_premium_new(family_data:$family,policy_terms: $policy_terms,slab_details : $slab_details,fileArr: $file, existing_units:$existing_units);
- // dd($data);
$employee_data_group_by_family[$emp_id] = $data;
$this->employeesOnboardProcess(['familiy_data' => $data,'file' => $file]);
}
@@ -1461,6 +1459,8 @@ class EmployeeServiceController extends AdminController
->where('emp_code',$employee['emp_code'])
->where('name',$employee['name'])
->where('field_name',$field_name)
+ ->where('is_active',1)
+ ->where('status !=','truncated')
->findAll();
// dd($existing_endorsements);
//make entry in endorsement table
@@ -1611,7 +1611,7 @@ class EmployeeServiceController extends AdminController
// echo '---------------------------------------';
//start implemet of si enhancement of grid type 10,11
- if(count($employee) && $file['action'] == 'dependent_addition' && $temp['source'] == 'db' && in_array($value['temp']['grid_id'],[10,11]) && ( ($value['temp']['premium_type'] == 1 && (strtolower($value['relationship']) == 'self' || $temp['acting_self'])) || ($value['temp']['premium_type'] == 2 || $value['temp']['premium_type'] == null)))
+ if(count($employee) && $file['action'] == 'dependent_addition' && $temp['source'] == 'db' && in_array($temp['grid_id'],[10,11]) && ( ($temp['premium_type'] == 1 && (strtolower($value['relationship']) == 'self' || $temp['acting_self'])) || ($temp['premium_type'] == 2 || $temp['premium_type'] == null)))
{
$log_message = 'Employee record from DB,Checking SI for - '.$employee[0]['name'].'('.$employee[0]['emp_code'].')';
$this->myLogger->logme('error',$log_message);
@@ -1620,7 +1620,6 @@ class EmployeeServiceController extends AdminController
break;//skip db employee
}
//end implemet of si enhancement of grid type
-
//save employee table
$value['relationship'] = ucfirst(trim($value['relationship']));
if(count($employee))
@@ -1643,7 +1642,6 @@ class EmployeeServiceController extends AdminController
// $this->myLogger->logme('error',('Insert - ' . $value['emp_code'] .' - '. $value['name']));
// echo 'update emp';
}
-
$this->employeeModel->save($value);
if (isset($value['id'])) {
$emp_id = $value['id'];
@@ -1702,7 +1700,7 @@ class EmployeeServiceController extends AdminController
$log_message = $file['action'].' - endorsement'. $value['emp_code'].' - '.$value['name'].' - with policy id'.$emp_policy_id;
$this->myLogger->logme('error',$log_message);
$actions = ($file['action'] == 'dependent_addition' ? 'da' : ($file['action'] == 'addition' ? 'a' : 'a'));
- $addition_endorse_data = ['pk' => $emp_policy_id,'group_key' => rand(100000, 999999),'emp_code' => $value['emp_code'],'table_name' => 'employee_polices','actions' => $actions,'name' => $value['name'],'field_name' => 'basic_cover_si','old_value' => NULL,'new_value' => $policy_data['basic_cover_si'],'remarks' => 'addition endorsement','file_id' => $file['id'],'created_by' => $file['created_by']];
+ $addition_endorse_data = ['pk' => $emp_policy_id,'group_key' => rand(100000, 999999),'emp_code' => $value['emp_code'],'table_name' => 'employee_polices','actions' => $actions,'name' => $value['name'],'field_name' => 'basic_cover_si','old_value' => NULL,'new_value' => $policy_data['basic_cover_si'],'remarks' => 'addition endorsement','file_id' => $file['id'],'created_by' => $file['created_by'],'status' => 'pending'];
$this->employeeEndorsementforAddtionAndDependentAddition($addition_endorse_data);
}
@@ -2012,10 +2010,10 @@ public function getFileMetaDataByFileId($file_id, $status = 'success'){
$value['emp_code'] = $row[1];
$value['name'] = $row[2];
- $value['doj'] = (!empty($row[3]) ? convert_string_to_date($row[3],'Y-m-d'): null);
+ $value['doj'] = (!empty($row[3]) ? change_date_format($row[3],'d-M-Y','Y-m-d') : null );
$value['gender'] = $row[4];
$value['relationship'] = ucfirst(trim($row[5]));
- $value['dob'] = convert_string_to_date($row[6],'Y-m-d');
+ $value['dob'] = change_date_format($row[6],'d-M-Y','Y-m-d');
$value['email_corporate'] = $row[7];
$value['mobile'] = $row[8];
$value['band'] = $row[10];
@@ -2042,7 +2040,7 @@ public function getFileMetaDataByFileId($file_id, $status = 'success'){
$value['family_floater_key'] = $relation;
$policy_data['basic_cover_si'] = $row[9];
- $policy_data['date_coverage'] = $row[13] != "" && $row[13] != null ? change_date_format($row[13],null,'Y-m-d') : null;
+ $policy_data['date_coverage'] = $row[13] != "" && $row[13] != null ? change_date_format($row[13],'d-M-Y','Y-m-d') : null;
$policy_data['client_policy_id'] = $file['policy_id'];
$employee = $this->employeeModel->checkExistingEmployee($value,$file['client_branch_id']);
diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php
index 44f6967f..5b44f63a 100644
--- a/app/Controllers/LeadsController.php
+++ b/app/Controllers/LeadsController.php
@@ -33,6 +33,9 @@ use App\Helpers\ExcelSanitizeHelper;
use Google\Service\CloudSearch\PushItem;
use Kint;
+use App\Controllers\Jobs;
+use App\Controllers\JobWorker;
+
class LeadsController extends BaseController
{
@@ -99,8 +102,8 @@ class LeadsController extends BaseController
{
// $d = $this->constructExcelToSaveTemp(24, 1, $propsal_and_insurer = null);
- $job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'calculateMembersDemography', 'payload' => ['lead_id' => 24]]);
+ // $job_details = new Jobs();
+ // $r = Jobs::addJob(['job_name' => 'calculateMembersDemography', 'payload' => ['lead_id' => 24]]);
// $d = $this->calculateMembersDemography(['lead_id' => 24]);
//$this->mergeQuoteExcelFileWithMembersListExcelFile(24, 1, $propsal_and_insurer = null);
// dd($d);
@@ -192,11 +195,9 @@ class LeadsController extends BaseController
foreach($data['policy_type_id'] as $index => $value){
-
// Separate the insurer and insurer branch, handle missing or invalid data
if (isset($data['insurer'][$index]) && strpos($data['insurer'][$index], '-') !== false) {
list($insurer_branch_id, $insurer_id) = explode('-', $data['insurer'][$index]);
- } else {
$insurer_branch_id = 0;
$insurer_id = 0;
}
@@ -208,7 +209,6 @@ class LeadsController extends BaseController
$tpa_id = 0;
}
-
// Separate the insurer and insurer branch, handle missing or invalid data
if (isset($data['proposed_insurer'][$index]) && strpos($data['proposed_insurer'][$index], '-') !== false) {
list($proposed_insurer_branch_id, $proposed_insurer_id) = explode('-', $data['proposed_insurer'][$index]);
@@ -237,8 +237,8 @@ class LeadsController extends BaseController
$policy_end_date = null;
}
- if(!empty($data['incurred_claims_date'][$index])){
- $incurred_claims_date = change_date_format($data['incurred_claims_date'][$index], 'd/m/Y', 'Y-m-d');
+ if(!empty($data['incurred_claim_date'][$index])){
+ $incurred_claims_date = change_date_format($data['incurred_claim_date'][$index], 'd/m/Y', 'Y-m-d');
}else{
$incurred_claims_date = null;
}
@@ -250,6 +250,11 @@ class LeadsController extends BaseController
}
$file_name = file_Upload($files[$index], $uploadFilePath);
+
+ $last_3_years_claims = null;
+ if($value != 2){
+ $last_3_years_claims = $data['finyear'];
+ }
$processedData[] = [
'lead_type' => $data['lead_type'],
@@ -306,6 +311,9 @@ class LeadsController extends BaseController
'annualised_claims' => $data['annualised_claims'][$index] ?? 0,
'incurred_claims_ratio' => $data['incurred_claims_ratio'][$index] ?? 0,
'earned_claims_ratio' => $data['earned_claims_ratio'][$index] ?? 0,
+ 'total_si_at_incept' => $data['total_si_at_incept'][$index] ?? 0,
+ 'total_si_at_renewal' => $data['total_si_at_renewal'][$index] ?? 0,
+ 'fin_years_claims' => $last_3_years_claims,
'file_name' => $file_name,
@@ -324,6 +332,12 @@ class LeadsController extends BaseController
$insert = $this->leadsModel->insert($value);
$insertCount[] = $insert;
$this->insertLeadStatus($insert, $value['status'], 3);
+
+ //for this push the job to the calculateMembersDemography() function
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'calculateMembersDemography', 'payload' => [
+ 'lead_id' => $insert,
+ ]]);
}
if (count($insertCount) > 0) {
@@ -363,6 +377,18 @@ class LeadsController extends BaseController
$data['policy_end_date'] = null;
}
+ if (!empty($data['incurred_claims_date'])) {
+ $data['incurred_claims_date'] = change_date_format($data['incurred_claims_date'], 'Y-m-d', 'd/m/Y');
+ } else {
+ $data['incurred_claims_date'] = null;
+ }
+
+ if (!empty($data['premium_date'])) {
+ $data['premium_date'] = change_date_format($data['premium_date'], 'Y-m-d', 'd/m/Y');
+ } else {
+ $data['premium_date'] = null;
+ }
+
if ($data) {
return $this->respond(['status' => true, 'data' => $data], 200);
} else {
@@ -424,11 +450,13 @@ class LeadsController extends BaseController
}
$data['question_json'] = $lead_data['question_json'];
- $data['page_name'] = isset($data['rfq_data']['type']) && $data['rfq_data']['type'] == 2 ? 'QCR' : 'RFQ';
+ $data['page_name'] = $type == 2 ? 'QCR' : 'RFQ';
$data['insurer'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames();
$data['userList'] = $this->userModel->getUserListForRFQ();
$data['lead_data'] = $lead_data;
+ $data['mail_content'] = $this->transformMailContent($id);
+
// dd($data);
$this->loadLayout('view_rfq.php', $data);
}
@@ -450,7 +478,10 @@ class LeadsController extends BaseController
$result = $this->RFQModel->insert($data);
if ($result) {
- return $this->respond(['status' => true, 'id' => $result, 'message' => 'RFQ created successfully', 'data' => $data], 200);
+
+ $message = "RFQ submitted successfully";
+ if($data['submit_type'] == 'QCR'){ $message = "QCR submitted successfully"; }
+ return $this->respond(['status' => true, 'id' => $result, 'message' => $message, 'data' => $data], 200);
}
return $this->respond(['status' => false, 'id' => $result, 'message' => "Failed to create RFQ", 'data' => $data], 200);
@@ -493,6 +524,29 @@ class LeadsController extends BaseController
public function exportExcelForQCRandRFQ($lead_id, $type)
{
$filepath = $this->constructExcelToSaveTemp($lead_id, $type);
+ $lead_data = $this->RFQModel->getRFQTableDataWithLeadIDAndType($lead_id, $type);
+ // dd($filepath);
+
+ //Excel merging part
+ if ($lead_data['file_name'] != null && $lead_data['file_name'] != '') {
+
+ $temp_file_path = $filepath['filePath'];
+ $temp_file_name = $filepath['fileName'];
+ $lead_file_path = WRITEPATH . 'uploads/lead_files/' . $lead_data['file_name'];
+
+ // dd($lead_data, $temp_file_path, $temp_file_name, $lead_file_path);
+
+ if ($lead_file_path) {
+ $filePaths = [
+ ['file_path' => $temp_file_path, 'sheets' => []],
+ ['file_path' => $lead_file_path, 'sheets' => []]
+ ];
+ // $outputPath = dirname($temp_file_path) . '/' . 'merged_' . $temp_file_name;
+ $result = ExcelMergeHelper::mergeExcelFiles($filePaths, $temp_file_path);
+ // print_rr($result);
+ }
+ }
+
$filepath = $filepath['filePath'];
if (file_exists($filepath)) {
@@ -523,11 +577,74 @@ class LeadsController extends BaseController
// dd($rfq_data, $lead_id, $type, $propsal_and_insurer);
// print_r($propsal_and_insurer); die;
- $lead_data = [
- 'Insured' => $rfq_data['client_name'],
- 'Insurer' => $rfq_data['insurer_name'] . ' - ' . $rfq_data['insurer_branch_name'],
- 'TPA' => $rfq_data['tpa_name'] . ' - ' . $rfq_data['tpa_branch_name'],
- ];
+ if($rfq_data['lead_type'] == 1){
+
+ if($rfq_data['policy_type_id'] == 2){
+ $lead_data = [
+
+ 'Insured' => $rfq_data['client_name'],
+ 'Policy Status' => $rfq_data['status'],
+
+ 'No of Employees' => $rfq_data['incept_emp_count'],
+ 'No of Dependents' => $rfq_data['incept_dept_count'],
+ 'Total Lives' => $rfq_data['incept_no_of_lives'],
+
+ 'Period of Insurance ' => date('d/m/Y', strtotime($rfq_data['policy_start_date'])).' to '. date('d/m/Y', strtotime($rfq_data['policy_end_date'])),
+ 'Policy Run Days' => $rfq_data['policy_run_days'],
+ ];
+ }else if($rfq_data['policy_type_id'] == 1){
+ $lead_data = [
+ 'Insured' => $rfq_data['client_name'],
+ 'No of Employees at Inception' => $rfq_data['incept_emp_count'],
+ 'Total Sum Insured at Inception ' => $rfq_data['total_si_at_incept'],
+ 'Policy Period' => date('d/m/Y', strtotime($rfq_data['policy_start_date'])).' to '. date('d/m/Y', strtotime($rfq_data['policy_end_date'])),
+ 'Policy Status' => $rfq_data['status'],
+ 'Existing Insurer' => $rfq_data['insurer_name'],
+ 'TPA ' => $rfq_data['tpa_name'],
+ ];
+ }
+
+ }else{
+ if($rfq_data['policy_type_id'] == 2){
+ $lead_data = [
+
+ 'Insured' => $rfq_data['client_name'],
+ 'Policy Status' => $rfq_data['status'],
+
+ 'No of Employees at Inception' => $rfq_data['incept_emp_count'],
+ 'No of Dependents at Inception' => $rfq_data['incept_dept_count'],
+ 'Total Lives at Inception ' => $rfq_data['incept_no_of_lives'],
+
+ 'No of Employees at Expiry' => $rfq_data['exp_emp_count'],
+ 'No of Dependents at Expiry' => $rfq_data['exp_dept_count'],
+ 'Total Lives at Expiry ' => $rfq_data['exp_no_of_lives'],
+
+ 'No of Employees at Renewal' => $rfq_data['renewal_emp_count'],
+ 'No of Dependents at Renewal' => $rfq_data['renewal_dept_count'],
+ 'Total Lives at Renewal ' => $rfq_data['renewal_no_of_lives'],
+
+ 'Period of Insurance ' => date('d/m/Y', strtotime($rfq_data['policy_start_date'])).' to '. date('d/m/Y', strtotime($rfq_data['policy_end_date'])),
+ 'Policy Run Days' => $rfq_data['policy_run_days'],
+ 'Inception Premium' => $rfq_data['premium_at_inception'],
+ 'Premium as on (Date - DD MM YYYY should be entered based on the claims dump report)' => $rfq_data['premium_date'],
+ 'Earned Premium' => $rfq_data['earned_premium'],
+ 'Incurred Claims as on (Date - DD MM YYYY should be entered based on the claims dump report)' => $rfq_data['incurred_claims_date'],
+ 'Annualised Claims' => $rfq_data['annualised_claims'],
+ 'Incurred Claims Ratio' => $rfq_data['incurred_claims_ratio'],
+ 'Earned Claims Ratio' => $rfq_data['earned_claims_ratio'],
+ ];
+ }else if($rfq_data['policy_type_id'] == 1){
+ $lead_data = [
+ 'Insured' => $rfq_data['client_name'],
+ 'No of Employees at Renewal' => $rfq_data['renewal_emp_count'],
+ 'Total Sum Insured at Renewal ' => $rfq_data['total_si_at_renewal'],
+ 'Policy Period' => date('d/m/Y', strtotime($rfq_data['policy_start_date'])).' to '. date('d/m/Y', strtotime($rfq_data['policy_end_date'])),
+ 'Policy Status' => $rfq_data['status'],
+ 'Existing Insurer' => $rfq_data['insurer_name'],
+ 'TPA ' => $rfq_data['tpa_name'],
+ ];
+ }
+ }
$data = json_decode($rfq_data['json'], true);
@@ -539,6 +656,7 @@ class LeadsController extends BaseController
}
}else if($type == 1){
$data = $this->convertJsonForQCR($data, $type);
+ // dd($data);
}
$spreadsheet = new Spreadsheet();
@@ -670,20 +788,25 @@ class LeadsController extends BaseController
$rowNumber += 2;
// Add premium data
+ $labelArray = ["Premium", "GST (%)", "GST Amount (₹)", "Total"];
$premiumData = $data['premium_data']['data'];
- $premium = ['Premium'];
- $gst = ['GST'];
- $total = ['Total'];
+ $premium = [$labelArray[0]];
+ $gst = [$labelArray[1]];
+ $gstAmt = [$labelArray[2]];
+ $total = [$labelArray[3]];
foreach ($premiumData as $proposal => $insurers) {
- foreach ($insurers as $insurer => $values) {
- $premium[] = $values['Premium'];
- $gst[] = $values['GST'];
- $total[] = $values['Total'];
+ if($proposal != 'Particulars'){
+ foreach ($insurers as $insurer => $values) {
+ $premium[] = $values[$labelArray[0]];
+ $gst[] = $values[$labelArray[1]];
+ $gstAmt[] = $values[$labelArray[2]];
+ $total[] = $values[$labelArray[3]];
+ }
}
}
- foreach ([$premium, $gst, $total] as $index => $rowData) {
+ foreach ([$premium, $gst, $gstAmt, $total] as $index => $rowData) {
$columnLetter = 'B';
foreach ($rowData as $key => $value) {
$sheet->setCellValue("{$columnLetter}{$rowNumber}", $value);
@@ -1181,14 +1304,18 @@ class LeadsController extends BaseController
helper('excel_util_helper');
helper('MailHelper');
helper('ExcelMergeHelper');
- $params = $this->request->getGet();
+ $params = $this->request->getPost();
+
// print_r($params); die;
+
$lead_id = $params['lead_id'];
$file_type = $params['file_type']; //rfq or qcr
$recipient_type = $params['recipient_type']; //insurer or client or internal or placement
$recipient_mail = $params['recipient_mail']; // - only primary key of contacts
$recipient_mail = json_decode($params['recipient_mail'], true); // - only primary key of contacts
$propsal_and_insurer = isset($params['proposal_insurer']) ? $params['proposal_insurer'] : null;
+ $mail_content = $params['mail_content'];
+ $mail_subject = $params['subject'];
$result_data = [];
// dd($recipient_mail);
@@ -1207,9 +1334,10 @@ class LeadsController extends BaseController
// print_r($lead_data ); die;
$cc_mails = [];
+ $bcc_mails = [];
//get CC Mails
- if ($recipient_type == 'internal' || $recipient_type == 'placement') {
+ if ($recipient_type == 'internal' || $recipient_type == 'placement' || $recipient_type == 'insurer' || $recipient_type == 'client') {
$cc_data = isset($params['cc']) ? $params['cc'] : "";
$param_cc_mail = json_decode($cc_data, true);
@@ -1239,6 +1367,37 @@ class LeadsController extends BaseController
}
}
+ //get BCC Mails
+ if ($recipient_type == 'insurer' || $recipient_type == 'client') {
+
+ $bcc_data = isset($params['bcc']) ? $params['bcc'] : "";
+ $param_bcc_mail = json_decode($bcc_data, true);
+
+ if (isset($param_bcc_mail) && is_array($param_bcc_mail) && count($param_bcc_mail) > 0) {
+ // Fetch user data where ID is in the param_cc_mail array
+ $userData = $this->userModel
+ ->where('is_active', 1)
+ ->whereIn('id', $param_bcc_mail)
+ ->findAll();
+
+ // print_r($userData); die;
+
+ // Extract emails from the fetched user data
+ $bcc_mails = array_column($userData, 'email');
+
+ // print_r(json_encode($cc_mails)); die;
+
+ // If no emails were found, return an error response
+ // if (empty($cc_mails)) {
+ // return $this->respond(['status' => 'failed','code' => 400,'data' => '','message' => 'No valid CC mail addresses found!'], 200);
+ // }
+
+ } else {
+ // Handle case where param_cc_mail is not valid
+ // return $this->respond(['status' => 'failed','code' => 400,'data' => '','message' => 'CC mail not found!'], 200);
+ }
+ }
+
if ($recipient_type == 'client' && ($lead_data['contact_person_email'] == '' || $lead_data['contact_person_email'] == null)) {
return $this->respond(['status' => 'failed', 'code' => 400, 'data' => '', 'messgae' => 'Recipient mail not found ! '], 200);
}
@@ -1294,6 +1453,18 @@ class LeadsController extends BaseController
$subject = $file_type == 'rfq' ? 'Request for Quotation from ' . $lead_data['client_name'] . ' for ' . $lead_data['policy_type'] : 'Quotation Comparison Report for ' . $lead_data['policy_type'];
$original_message = '
Request for Quotation (RFQ) Dear {{RECIPIENT_NAME}}, We are reaching out to request a quotation for the following insurance coverage. Please review the details below and provide your quote at your earliest convenience.
RFQ Details Client name {{CLIENT_NAME}} Coverage Type {{POLICY_LONG_NAME}} Policy Start Date {{POLICY_START_DATE}} Policy Duration {{DURATION}}
Please note: Additional terms and details are included in the attachment for your reference.
Please feel free to reach out if you require any further information to prepare the quote. We look forward to receiving your proposal.
Best regards,
Nhance India Pvt Ltd
© Nhance India Pvt Ltd. All rights reserved.
';
+ //for mail content
+ if(!empty($mail_content)){
+ $original_message = $mail_content;
+ }
+
+ //for mail subject
+ if(!empty($mail_subject)){
+ $subject = $mail_subject;
+ }
+
+ // print_r($subject); die;
+
if ($recipient_data) {
foreach ($recipient_data as $recipient) {
@@ -1306,7 +1477,7 @@ class LeadsController extends BaseController
// print_rr($message);calculate_days_bw_dates
- $res = MailHelper::send_email(['mail' => $recipient['email'], 'cc' => $cc_mails, 'subject' => $subject, 'message' => $message, 'attachments' => $attachments, 'reply_to' => $reply_to]);
+ $res = MailHelper::send_email(['mail' => $recipient['email'], 'cc' => $cc_mails, 'subject' => $subject, 'message' => $message, 'attachments' => $attachments, 'reply_to' => $reply_to, 'bcc' => $bcc_mails]);
// !dd($res);
$result_data[] = ['mail' => $recipient['email'], 'status' => $res];
}
@@ -1480,83 +1651,126 @@ class LeadsController extends BaseController
public function convertJsonForQCR($json, $type)
{
if ($json) {
+
// Deep copy of JSON
$first_json = json_decode(json_encode($json), true);
-
// dd($first_json);
- // Column-wise Check: Remove headers and relevant data if qcr == 0
- foreach ($json['proposal_data']['over_all_column_data'] as $proposalKey => $proposalData) {
+ if($type == 2){
- if ($proposalData['stc'] == 0 || $proposalData['stc'] === false) {
- // Remove matching parentHeader in headers
- foreach ($first_json['table_data']['headers'] as $index => $header) {
- if ($header['parentHeader'] === $proposalKey) {
- unset($first_json['table_data']['headers'][$index]);
- }
- }
+ // Column-wise Check: Remove headers and relevant data if qcr == 0
+ foreach ($json['proposal_data']['over_all_column_data'] as $proposalKey => $proposalData) {
- // Remove data entries with matching parentth
- foreach ($first_json['table_data']['data'] as &$item) {
- $item['data'] = array_values(array_filter($item['data'], function ($entry) use ($proposalKey) {
- return $entry['parentth'] !== $proposalKey;
- }));
- }
+ if (($proposalData['qcr'] == 0 || $proposalData['qcr'] === false) || ($proposalData['stc'] == 0 || $proposalData['stc'] === false)) {
- // Remove proposalKey from over_all_column_data
- unset($first_json['proposal_data']['over_all_column_data'][$proposalKey]);
-
- if($type == 2){
- // Remove proposalKey from premium_data
- unset($first_json['premium_data']['data'][$proposalKey]);
- }
- }
-
- // Insurer Check: Remove subHeaders and relevant data for insurers with qcr == 0
- foreach ($proposalData['insurers'] as $insurerIndex => $insurer) {
- if ($insurer['stc'] === 0 || $insurer['stc'] === false) {
- foreach ($first_json['table_data']['headers'] as &$header) {
- if (isset($header['subHeaders'])) {
- $header['subHeaders'] = array_values(array_filter($header['subHeaders'], function ($sub) use ($insurer) {
- return $sub !== $insurer['display_name'];
- }));
+ // Remove matching parentHeader in headers
+ foreach ($first_json['table_data']['headers'] as $index => $header) {
+ if ($header['parentHeader'] === $proposalKey) {
+ unset($first_json['table_data']['headers'][$index]);
}
}
-
+ // Remove data entries with matching parentth
foreach ($first_json['table_data']['data'] as &$item) {
- $item['data'] = array_values(array_filter($item['data'], function ($entry) use ($insurer) {
- return $entry['subth'] !== $insurer['display_name'];
+ $item['data'] = array_values(array_filter($item['data'], function ($entry) use ($proposalKey) {
+ return $entry['parentth'] !== $proposalKey;
}));
}
- // Remove insurer from proposal's insurers array
- unset($first_json['proposal_data']['over_all_column_data'][$proposalKey]['insurers'][$insurerIndex]);
-
+ // Remove proposalKey from over_all_column_data
+ unset($first_json['proposal_data']['over_all_column_data'][$proposalKey]);
+
if($type == 2){
- unset($first_json['premium_data']['data'][$proposalKey][$insurer['display_name']]);
+ // Remove proposalKey from premium_data
+ unset($first_json['premium_data']['data'][$proposalKey]);
+ }
+ }
+
+ // Insurer Check: Remove subHeaders and relevant data for insurers with qcr == 0
+ foreach ($proposalData['insurers'] as $insurerIndex => $insurer) {
+ if (($insurer['qcr'] === 0 || $insurer['qcr'] === false) || ($insurer['stc'] === 0 || $insurer['stc'] === false) ) {
+ foreach ($first_json['table_data']['headers'] as &$header) {
+ if (isset($header['subHeaders'])) {
+ $header['subHeaders'] = array_values(array_filter($header['subHeaders'], function ($sub) use ($insurer) {
+ return $sub !== $insurer['display_name'];
+ }));
+ }
+ }
+
+
+ foreach ($first_json['table_data']['data'] as &$item) {
+ $item['data'] = array_values(array_filter($item['data'], function ($entry) use ($insurer) {
+ return $entry['subth'] !== $insurer['display_name'];
+ }));
+ }
+
+ // Remove insurer from proposal's insurers array
+ unset($first_json['proposal_data']['over_all_column_data'][$proposalKey]['insurers'][$insurerIndex]);
+
+ if($type == 2){
+ unset($first_json['premium_data']['data'][$proposalKey][$insurer['display_name']]);
+ }
}
}
}
- }
- // Row-wise Check: Remove rows if qcr == 0 for actions
- foreach ($first_json['table_data']['data'] as $rowKey => $rowData) {
- foreach ($rowData['data'] as $data) {
- if ($data['parentth'] === "Action" && isset($data['input_value']['stc']) && $data['input_value']['stc'] == 0) {
- unset($first_json['table_data']['data'][$rowKey]);
- break;
+ // Row-wise Check: Remove rows if qcr == 0 for actions
+ foreach ($first_json['table_data']['data'] as $rowKey => $rowData) {
+ foreach ($rowData['data'] as $data) {
+ if ($data['parentth'] === "Action" && (isset($data['input_value']['qcr']) && $data['input_value']['qcr'] == 0) || (isset($data['input_value']['stc']) && $data['input_value']['stc'] == 0)) {
+ unset($first_json['table_data']['data'][$rowKey]);
+ break;
+ }
}
}
- }
- // Reindex arrays to maintain proper structure
- $first_json['table_data']['headers'] = array_values($first_json['table_data']['headers']);
- $first_json['table_data']['data'] = array_values($first_json['table_data']['data']);
- $first_json['proposal_data']['over_all_column_data'] = array_map(function ($proposal) {
- $proposal['insurers'] = array_values($proposal['insurers']);
- return $proposal;
- }, $first_json['proposal_data']['over_all_column_data']);
+ // Reindex arrays to maintain proper structure
+ $first_json['table_data']['headers'] = array_values($first_json['table_data']['headers']);
+ $first_json['table_data']['data'] = array_values($first_json['table_data']['data']);
+ $first_json['proposal_data']['over_all_column_data'] = array_map(function ($proposal) {
+ $proposal['insurers'] = array_values($proposal['insurers']);
+ return $proposal;
+ }, $first_json['proposal_data']['over_all_column_data']);
+
+ }else{
+
+ //remove insurer as Subheaders for RFQ
+ foreach ($first_json['table_data']['headers'] as &$header) {
+ $header['subHeaders'] = array_filter($header['subHeaders'], function ($subHeader) {
+ return in_array($subHeader, ['Quote Asked', '-']);
+ });
+ }
+
+ //Remove insurer Row wise data for RFQ
+ foreach ($first_json['table_data']['data'] as &$row) {
+
+ // Filter the inner data array
+ $row['data'] = array_filter(
+ $row['data'],
+ function ($item) {
+ return in_array($item['subth'], ['Quote Asked', '-']);
+ }
+ );
+
+ $row['data'] = array_values($row['data']);
+ }
+
+ // Ensure to unset the reference after the loop
+ unset($row);
+
+
+ // Remove insurers from Proposal Data key for RFQ
+ foreach ($first_json['proposal_data']['over_all_column_data'] as $key => &$proposal) {
+ if (isset($proposal['insurers'])) {
+ // Set the insurers array to empty
+ $proposal['insurers'] = [];
+ }
+ }
+
+ // Ensure to reset the reference
+ unset($proposal);
+
+ }
return $first_json;
}
@@ -1896,8 +2110,54 @@ class LeadsController extends BaseController
//------------------------------------------------------------------------------------------------
- public function transformMailContent()
- {
+ public function transformMailContent($lead_id)
+ {
+ helper('excel_util_helper');
+ // $params = $this->request->getGet();
+ // print_r($params); die;
+ // $lead_id = $params['lead_id'];
+ // $file_type = $params['file_type']; //rfq or qcr
+ // $recipient_type = $params['recipient_type']; //insurer or client or internal or placement
+ // $recipient_mail = $params['recipient_mail']; // - only primary key of contacts
+ // $propsal_and_insurer = isset($params['proposal_insurer']) ? $params['proposal_insurer'] : null;
+
+ // if ($recipient_type == 'insurer' && empty($recipient_mail)) {
+ // return $this->respond(['status' => 'failed', 'code' => 400, 'data' => '', 'messgae' => 'Recipient mail not found ! '], 200);
+ // }
+
+ //gather lead info
+ $lead_data = $this->leadsModel
+ ->select('leads.*,policy_type.long_name,policy_type.policy_type,user_profiles.email as created_person_email')
+ ->join('policy_type', 'leads.policy_type_id = policy_type.id', 'left')
+ ->join('user_profiles', 'leads.created_by = user_profiles.id', 'left')
+ ->where('leads.id', $lead_id)
+ ->first();
+
+ // dd($lead_data);
+
+ if($lead_data){
+
+ $recipient_data = ['name' => "Team"];
+ $original_message = '
Request for Quotation (RFQ) Dear {{RECIPIENT_NAME}}, We are reaching out to request a quotation for the following insurance coverage. Please review the details below and provide your quote at your earliest convenience.
RFQ Details Client name {{CLIENT_NAME}} Coverage Type {{POLICY_LONG_NAME}} Policy Start Date {{POLICY_START_DATE}} Policy Duration {{DURATION}}
Please note: Additional terms and details are included in the attachment for your reference.
Please feel free to reach out if you require any further information to prepare the quote. We look forward to receiving your proposal.
Best regards,
Nhance India Pvt Ltd
© Nhance India Pvt Ltd. All rights reserved.
';
+
+ $message = $original_message;
+ $message = str_replace("{{RECIPIENT_NAME}}", $recipient_data['name'], $message);
+ $message = str_replace("{{CLIENT_NAME}}", $lead_data['client_name'], $message);
+ $message = str_replace("{{POLICY_LONG_NAME}}", $lead_data['long_name'], $message);
+ $message = str_replace("{{POLICY_START_DATE}}", change_date_format($lead_data['policy_start_date'], 'Y-m-d', 'd-m-Y'), $message);
+ $message = str_replace("{{DURATION}}", calculate_days_bw_dates($lead_data['policy_end_date'] ?? "", $lead_data['policy_start_date'] ?? "")->days, $message) ?? '--';
+
+ // return $this->respond(['status' => true, 'code' => 200, 'data' => $message], 200);
+ return $message;
+
+ }else{
+
+ // return $this->respond(['status' => false, 'code' => 404, 'message' => "This lead has not data"], 200);
+ return '';
+ }
+
+
+
}
}
diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php
index 9873b33a..d7d2748b 100644
--- a/app/Controllers/PolicyTransactionController.php
+++ b/app/Controllers/PolicyTransactionController.php
@@ -31,6 +31,7 @@ use App\Models\InsurerStatements;
use App\Models\InvPaymentDetailsModel;
use App\Models\BatchFileModel;
use App\Models\FileModel;
+use App\Models\COShareStmtDetailsModel;
use Kint;
class PolicyTransactionController extends BaseController
@@ -62,6 +63,7 @@ class PolicyTransactionController extends BaseController
protected $invPaymentDetailsModel;
protected $batchFileModel;
protected $filesModel;
+ protected $coShareStmtDetailsModel;
public function __construct()
{
@@ -91,11 +93,12 @@ class PolicyTransactionController extends BaseController
$this->invPaymentDetailsModel = new InvPaymentDetailsModel();
$this->batchFileModel = new BatchFileModel();
$this->filesModel = new FileModel();
+ $this->coShareStmtDetailsModel = new COShareStmtDetailsModel();
$this->invoiceStatus = [
'pending' => 'Pending',
'generated' => 'Generated',
'sent' => 'Sent',
- 'payment_received' => 'Payment Received',
+ 'payment_received' => 'Payment Received',
];
}
@@ -1631,20 +1634,17 @@ class PolicyTransactionController extends BaseController
$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');
+ $insurer_branch_id = $this->request->getGet('insurer_branch_id');
+
+ $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : change_date_format($start_date,'d-m-Y','Y-m-01');
+ $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : change_date_format($end_date,'d-m-Y','Y-m-31');
+ // dd([$start_date,$end_date]);
- $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;
+ $insurer_branch_id = (!isset($insurer_branch_id) || $insurer_branch_id === '' || $insurer_branch_id === null) ? 0 : $insurer_branch_id;
- $data['outstanting_list'] = $this->policyTransactionModel->getOutstandingReportLIst($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
+ $data['outstanting_list'] = $this->policyTransactionModel->getOutstandingReportLIst($start_date, $end_date,$insurer_id, $insurer_branch_id);
// dd($this->policyTransactionModel->getLastQuery());
// dd($data);
$this->loadLayout('outstanding_report_list', $data);
@@ -1676,7 +1676,7 @@ class PolicyTransactionController extends BaseController
WHERE pt_co_share_details.is_active = 1
AND pt_co_share_details.statement_id = insurer_statements.id
) AS exp_inv_amt,
- (SELECT SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds)
+ (SELECT SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds) + SUM(inv_payment_details.gst)
FROM inv_payment_details
WHERE inv_payment_details.is_active = 1
AND inv_payment_details.statement_id = insurer_statements.id
@@ -1749,9 +1749,10 @@ class PolicyTransactionController extends BaseController
$month = $month.'-01';
// print_r($month);die;
$month = change_date_format($month,'Y-M-d','Y-m-d');
+ $stmt_sno = $this->request->getPost('statement_no');
// print_r($month);die;
- $file_id = $this->insurerStatements->insert(['insurer_id' => $insurer_id, 'branch_id' => $branch_id, 'file_name' => $filename,'month' => $month, 'created_by' => $loggedInUserID]); //here field policy_id have client_policy_id and not policy id from policy master
+ $file_id = $this->insurerStatements->insert(['insurer_id' => $insurer_id, 'branch_id' => $branch_id, 'file_name' => $filename,'month' => $month, 'created_by' => $loggedInUserID,'stmt_sno' => $stmt_sno]); //here field policy_id have client_policy_id and not policy id from policy master
$this->myLogger->logme("error", '{file_id} statement uploaded success', ['file_id' => $file_id]);
//validate file
@@ -1839,9 +1840,9 @@ class PolicyTransactionController extends BaseController
unset($excel_data[0]);
// Kint::dump($excel_data);
//get no of line items and update in DB
- $line_items = count($excel_data);
+ $line_items = 0;
// get uploaded month transactions data
- $source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(month:$month,year:$year,insurer_id:$file['insurer_id'],insurer_branch_id:$file['branch_id']);
+ $source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id:$file['insurer_id'],insurer_branch_id:$file['branch_id']);
// var_dump($source_data);die();
// Kint::dump($source_data);//die();
@@ -1866,6 +1867,7 @@ class PolicyTransactionController extends BaseController
if( ($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date,'d-m-Y','Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date,'d-m-Y','Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name'])
{
$is_source_found = 1;
+ $line_items = $line_items + 1;
unset($source_data[$source_key]);
continue 2;
}
@@ -1942,7 +1944,7 @@ class PolicyTransactionController extends BaseController
//get no of line items and update in DB
$line_items = count($excel_data);
// get uploaded month transactions data
- $source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(month:$month,year:$year,insurer_id:$file['insurer_id'],insurer_branch_id:$file['branch_id']);
+ $source_data = $this->PTCOShareDetailsModel->getNonReconcileredPolicyTransactions(insurer_id:$file['insurer_id'],insurer_branch_id:$file['branch_id']);
// Kint::dump($source_data);die;
// Kint::dump($excel_data);
@@ -2034,7 +2036,7 @@ class PolicyTransactionController extends BaseController
//find variance
$variance_amt = $source_row['exp_amt'] - $total_amt;
- $data_to_update[] = ['id' => $source_row['id'],'actual_bp_amt' => $actual_bp_amt,'actual_tp_amt' => $actual_tp_amt,'actual_tep_amt' => $actual_tep_amt,'actual_bp_per' => $actual_bp_per,'actual_tp_per' => $actual_tp_per,'actual_tep_per' => $actual_tep_per,'variance' => $variance_amt,'actual_tep_brokerage_amt' => $actual_tep_brokerage,'actual_tp_brokerage_amt' => $actual_tp_brokerage,'actual_bp_brokerage_amt' => $actual_bp_brokerage,'reward' => trim($excel_row[15]),'statement_id' => $file_id];
+ $data_to_update[] = ['co_share_id' => $source_row['id'],'actual_bp_amt' => $actual_bp_amt,'actual_tp_amt' => $actual_tp_amt,'actual_tep_amt' => $actual_tep_amt,'actual_bp_per' => $actual_bp_per,'actual_tp_per' => $actual_tp_per,'actual_tep_per' => $actual_tep_per,'variance' => $variance_amt,'actual_tep_brokerage_amt' => $actual_tep_brokerage,'actual_tp_brokerage_amt' => $actual_tp_brokerage,'actual_bp_brokerage_amt' => $actual_bp_brokerage,'reward' => trim($excel_row[15]),'statement_id' => $file_id];
unset($source_data[$source_key]);
continue 2;
@@ -2044,7 +2046,7 @@ class PolicyTransactionController extends BaseController
}
}
// dd($data_to_update);
- $this->PTCOShareDetailsModel->updateBatch($data_to_update, 'id');
+ $this->coShareStmtDetailsModel->insertBatch($data_to_update, 'id');
// dd($data_to_update);
// if($error_data['error_code'])
// {
@@ -2066,8 +2068,24 @@ class PolicyTransactionController extends BaseController
->where('is_active',1)
->get()
->getResultArray();
+ if(!$inv_details['invoice_value'])
+ {
+ $stmt_level_value = $this->coShareStmtDetailsModel->select('sum(actual_tep_brokerage_amt) + sum(actual_tp_brokerage_amt) + sum(actual_bp_brokerage_amt) + sum(reward) as invoice_value')
+ ->where('statement_id',$statement_id)
+ ->groupBy('statement_id')
+ ->get()
+ ->getResultArray();
+ // print_r($stmt_level_value);
+ if($stmt_level_value && count($stmt_level_value) && isset($stmt_level_value[0]))
+ {
+ $inv_details['invoice_value'] = $stmt_level_value[0]['invoice_value'];
+ }
+ }
// ~dd($inv_details);
$data = [ 'invoice_status' => $inv_details['invoice_status'],
+ 'gst_per' => isset($inv_details['gst_per']) ? $inv_details['gst_per'] : 18 ,
+ 'invoice_value' => $inv_details['invoice_value'],
+ 'gst_value' => $inv_details['gst_value'],
'invoice_no' => $inv_details['invoice_no'],
'invoice_amount' => $inv_details['invoice_amount'],
'invoice_date' => isset($inv_details['invoice_date']) ? change_date_format($inv_details['invoice_date'],'Y-m-d','d/m/Y') : null ];
@@ -2089,6 +2107,9 @@ class PolicyTransactionController extends BaseController
$invoiceNo = $jsonData['invoice_no'];
$invoiceDate = change_date_format($jsonData['invoice_date'],'d/m/Y','Y-m-d');
$invoice_amount = $jsonData['invoice_amount'];
+ $invoice_value = $jsonData['invoice_value'];
+ $gst_per = $jsonData['invoice_gst_per'];
+ $gst_value = $jsonData['invoice_gst'];
//Update statement table
$parentData = [
@@ -2096,6 +2117,9 @@ class PolicyTransactionController extends BaseController
'invoice_no' => $invoiceNo,
'invoice_date' => $invoiceDate,
'invoice_amount' => $invoice_amount,
+ 'gst_per' => $gst_per,
+ 'gst_value' => $gst_value,
+ 'invoice_value' => $invoice_value,
'updated_by' => get_session_userid()
];
@@ -2107,6 +2131,7 @@ class PolicyTransactionController extends BaseController
$receivedAmounts = $jsonData['received_amount'];
$utrNos = $jsonData['utr_no'];
$tdsTotal = $jsonData['tds'];
+ $gstTotal = $jsonData['gst_amount'];
$paymentDates = $jsonData['payment_date'];
$pks = $jsonData['pk'];
@@ -2114,6 +2139,7 @@ class PolicyTransactionController extends BaseController
$pk = $pks[$index]; // Get the pk for the current record
$utrNo = $utrNos[$index];
$tds = $tdsTotal[$index];
+ $gst = $gstTotal[$index];
$paymentDate = $paymentDates[$index];
// Prepare data for insert/update
@@ -2121,6 +2147,7 @@ class PolicyTransactionController extends BaseController
'inv_amt' => $receivedAmount,
'utr_no' => $utrNo,
'tds' => $tds,
+ 'gst' => $gst,
'received_date' => change_date_format($paymentDate,'d/m/Y','Y-m-d'),
'statement_id' => $hiddenStatementId
];
@@ -2357,6 +2384,45 @@ class PolicyTransactionController extends BaseController
return $this->respond(['status' => false, 'code' => 400, 'message' => 'No data found for this CD'], 200);
}
+
+ public function getInsurerStatementMonth()
+ {
+ $insurer_id = $this->request->getGet('insurer_id');
+ $month = $this->request->getGet('month');
+ // echo $month;
+ $insurer_branch_id = explode('-',$insurer_id)[1];
+ $insurer_id = explode('-',$insurer_id)[0];
+ $month = $month.'-01';
+ $month = change_date_format($month,'Y-M-d','Y-m-d');
+ // echo $month;
+
+ $res_data = $this->insurerStatements
+ ->where('insurer_id',$insurer_id)
+ ->where('branch_id',$insurer_branch_id)
+ ->where('month', $month)
+ ->where('is_active', 1)
+ ->where('file_status', 'success')
+ ->findAll();
+
+ return $this->respond(['dataStatus' => true, 'code' => 200,'data' => $res_data], 200);
+
+
+ }
+
+ public function deleteStatement($id)
+ {
+ // echo $id;die();
+ $this->coShareStmtDetailsModel->where('statement_id',$id)
+ ->set(['is_active' => 0])
+ ->update();
+ $this->invPaymentDetailsModel->where('statement_id',$id)
+ ->set(['is_active' => 0])
+ ->update();
+ $this->insurerStatements->where('id',$id)
+ ->set(['is_active' => 0])
+ ->update();
+ return $this->respond(['dataStatus' => true, 'code' => 200], 200);
+ }
}
\ No newline at end of file
diff --git a/app/Helpers/MailHelper.php b/app/Helpers/MailHelper.php
index 6116bc0c..085c510f 100755
--- a/app/Helpers/MailHelper.php
+++ b/app/Helpers/MailHelper.php
@@ -97,7 +97,9 @@ class MailHelper
//check BCC mail
if (isset($params['bcc'])) {
$bcc = $params['bcc'];
- $bcc = explode(',', $bcc);
+ if(!is_array($bcc)){
+ $bcc = explode(',', $bcc);
+ }
}else{
$bcc = [];
}
diff --git a/app/Helpers/excel_import_export_helper.php b/app/Helpers/excel_import_export_helper.php
index 3355253e..ad484ffe 100755
--- a/app/Helpers/excel_import_export_helper.php
+++ b/app/Helpers/excel_import_export_helper.php
@@ -128,7 +128,7 @@ if (! function_exists('transform_objects_to_array_for_inception')) {
$obj->emp_gender, // Employee Gender
$obj->pre_existing_alignments, // Pre-existing Alignments
$obj->basic_cover_si, // Basic Cover SI
- $obj->date_coverage, // Date Coverage
+ $obj->date_of_coverage, // Date Coverage
$obj->emp_age, // Employee Age
$obj->emp_relationship, // Employee Relationship
$obj->change_event, // Change Event
@@ -260,7 +260,6 @@ if (! function_exists('transform_objects_to_array_for_deletion')) {
$obj->total,
$claim_status,
$endorsement_id
-
];
// Append the row data to the main data array
@@ -487,7 +486,7 @@ if (!function_exists('format_Excel_BasedOn_Client'))
$rowData[] = $obj->basic_cover_si; // Employee BASIC COVER SI
break;
case 'dateofcoverage':
- $rowData[] = $obj->date_coverage; // DATE OF COVERAGE
+ $rowData[] = $obj->date_of_coverage; // DATE OF COVERAGE
break;
case 'age':
$rowData[] = $obj->emp_age; // Employee AGE
diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php
index d1fdf7d2..77c6c552 100755
--- a/app/Helpers/excel_util_helper.php
+++ b/app/Helpers/excel_util_helper.php
@@ -345,8 +345,7 @@ if(!function_exists('check_basic_pay'))
if (!function_exists('check_dob_diff'))
{
- function check_dob_diff($row,$relationships,$default_age_ratio) {
- // echo 'called';
+ function check_dob_diff($row,$relationships,$default_age_ratio,$policy_details) {
if($row['current_action'] != null && in_array(strtoupper($row['current_action']), ['I','A','DA','MI']))// check rule only of action column data available
{
if($row[3] != null && $row[5] != null)
@@ -358,13 +357,11 @@ if (!function_exists('check_dob_diff'))
}
// return array('status' => true);
$dob = $dateString;
- // echo $row[3].' - '.$dob;echo ' ';
- $currentDateTime = new DateTime();//die();
- // print_r($currentDateTime);
+ //$currentDateTime = new DateTime();//previously dob calculated from current date time
+ $temp_date = ($row[7] != null && $row[7] != "") ? convert_string_to_date($row[7]) : $policy_details[0]->policy_start_date; //pick date of coverage from row if not then use policy start date as from to calculate DOB
+ $currentDateTime = new DateTime($temp_date);//later DOB calculated from date of coverage or policy_start_date
// die();
$passedDateTime = new DateTime($dob);
- // print_r($passedDateTime);
-
$interval = $currentDateTime->diff($passedDateTime);
//remap default age ratio data into relationship array
if(count($default_age_ratio))
@@ -375,7 +372,6 @@ if (!function_exists('check_dob_diff'))
$relationship = $slug->slugify($row[5]);
$age_min = isset($relationships[$relationship]['age_min']) ? $relationships[$relationship]['age_min'] : NULL;
$age_max = isset($relationships[$relationship]['age_max']) ? $relationships[$relationship]['age_max'] : NULL;
- // echo $relationship.','.$age_min.'-'.$age_max;
if($age_min !== null && $age_min > $interval->y)
{
return array('status' => false,'error' => "Age conflict : minimum $age_min yrs allowed, received $interval->y");
@@ -965,7 +961,6 @@ if (!function_exists('calculate_premium_new'))
if(empty($member[18])){ $member[18] = $existing_units[0]; }
//transform as db row column
$transformed_familiy_member_data = transform_excel_data_to_db($member,$fileArr);
- // kint::dump($transformed_familiy_member_data);
//generate relationship code
if($transformed_familiy_member_data['temp']['action'] != 'D' && $transformed_familiy_member_data['temp']['action'] != 'C' && $transformed_familiy_member_data['temp']['action'] != 'SI')
{
@@ -979,7 +974,7 @@ if (!function_exists('calculate_premium_new'))
'isEmployeeSourceEnrollment' => $fileArr['id'] == null,
'isEmployeeSourceExcelFile' => $transformed_familiy_member_data['temp']['source'] == 'excel',
'isCurrentActionDependentAddition' => $fileArr['action'] == 'dependent_addition',
- // 'isPrimaryGridPremiumTypeSingle' => $transformed_familiy_member_data['temp']['premium_type'] == 1,
+ 'isPrimaryGridPremiumTypeSingle' => isset($transformed_familiy_member_data['temp']['premium_type']) ? $transformed_familiy_member_data['temp']['premium_type'] == 1 : 0,
'isCurrentRelationshipSelf' => (strtolower($transformed_familiy_member_data['relationship']) == 'self' || (isset($transformed_familiy_member_data['temp']['acting_self']) && $transformed_familiy_member_data['temp']['acting_self'] === true)),
'isBasicCoverCalculatedToCurrentEmployee' => ($transformed_familiy_member_data['policy_details']['basic_cover_si'] != null && $transformed_familiy_member_data['policy_details']['basic_cover_si'] != 0)
];
@@ -1049,7 +1044,7 @@ if (!function_exists('transform_excel_data_to_db'))
$result['designation'] = $memArr[11];
$result['mobile'] = $memArr[12];
$result['email_corporate'] = $memArr[13];
- $result['file_id'] = $actionArr['id'];
+ $result['file_id'] = isset($memArr['temp']['source']) && $memArr['temp']['source'] == 'db' && isset($memArr['temp']['file_id']) ? $memArr['temp']['file_id'] : $actionArr['id'];
$result['client_id'] = $actionArr['client_id'];
$result['change_event'] = $memArr[15];
$result['unit'] = $memArr[18];
@@ -1078,8 +1073,6 @@ if (!function_exists('premium_calculation_manager'))
{
function premium_calculation_manager($emp_data,$policy_terms,$slab_details,$default_si = null)
{
- // Kint::dump($emp_data);die();
-
$myLogger = \Config\Services::mylogger();
// grid type
// 1 = premium => si
@@ -1229,9 +1222,12 @@ if (!function_exists('premium_calculation_manager'))
//GMC - Employees Age band
$employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
// dd($employee_received_si);
+ $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
+ $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y;
+
foreach ($temp_slab_rates as $skey => $slab_value)
{
- $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
+
if($slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && (($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) ) || ($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3) ))
{
// dd($slab_value);
@@ -1250,9 +1246,12 @@ if (!function_exists('premium_calculation_manager'))
case "5":
//GMC - Employees Age + SI
$employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
+ $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
+ $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y;
+
foreach ($temp_slab_rates as $skey => $slab_value)
{
- $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
+
if($slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && (($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) ) || ($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3 ) ))
{
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
@@ -1270,9 +1269,11 @@ if (!function_exists('premium_calculation_manager'))
case "6":
//GMC - Employees + Dependent Age band
$employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
+ $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
+ $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y;
foreach ($temp_slab_rates as $skey => $slab_value)
{
- $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
+
if($slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && (($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) ) || ($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3) ))
{
// echo $emp_data['name'];
@@ -1292,9 +1293,11 @@ if (!function_exists('premium_calculation_manager'))
case "7":
//GMC - Employees + Dependent Age + SI
$employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
+ $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
+ $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y;
foreach ($temp_slab_rates as $skey => $slab_value)
{
- $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
+
if($slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && (($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) ) || ($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3) ))
{
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
@@ -1442,7 +1445,8 @@ if (!function_exists('premium_calculation_manager'))
$employee_relationship = $slug->slugify($emp_data['relationship']);
$employee_relationship = ($employee_relationship == 'daughter' || $employee_relationship == 'son' ? $employee_relationship = 'child' : $employee_relationship);
$emp_data['policy_details']['basic_cover_si'] = null;
- $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
+ $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
+ $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y;
foreach ($temp_slab_rates as $skey => $slab_value)
{
if( $slab_value['si'] == $employee_received_si && $slab_value['unit'] == $emp_data['unit'] && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age) && ((($slab_value['premium_type'] == 2 || $slab_value['premium_type'] == null || $slab_value['premium_type'] == 3) && $slab_value['relationship'] == $employee_relationship) || ($slab_value['premium_type'] == 1 && ( strtolower($emp_data['relationship']) == 'self' || $emp_data['temp']['acting_self'] ) )) )
@@ -1475,7 +1479,8 @@ if (!function_exists('premium_calculation_manager'))
}
if(!$is_match_found)
{
- $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
+ $temp_date = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
+ $age = calculate_days_bw_dates(from_date: $emp_data['dob'],to_date: $temp_date)->y;
$log_message = '[ client_policy_id : ' .$emp_data['policy_details']['client_policy_id'].' - '. $emp_data['emp_code'].' - '.$emp_data['name'] .' - '. $emp_data['policy_details']['basic_cover_si'] . ', Age : '. $age.' ]';
if($temp_slab_rates[0]['premium_type'] == 1)
{
@@ -1560,6 +1565,7 @@ if (!function_exists('transform_db_data_to_excel'))
$row['temp']['emp_status'] = $value['emp_status'];
$row['temp']['policy_status'] = $value['status'];
$row['temp']['rata_premimum'] = $value['rata_premimum'];
+ $row['temp']['file_id'] = $value['file_id'];
array_push($return_data, ($row));
}
diff --git a/app/Libraries/MyLogger.php b/app/Libraries/MyLogger.php
index efa401d5..71ebafe1 100755
--- a/app/Libraries/MyLogger.php
+++ b/app/Libraries/MyLogger.php
@@ -21,7 +21,7 @@ class MyLogger extends Logger
$message = '{context} - {uuid} -' . $message;
// /echo $message;//die();
- $context = array_merge($context,['uuid' => get_session_uuid()]);
+ $context = array_merge($context,['uuid' => (null !== get_session_uuid()) ? get_session_uuid() : 'CLI']);
// print_r($context);die();
// echo isset($context['context']) ? $context['context'] : $this->context;die();
$context['context'] = isset($context['context']) ? $context['context'] : get_session_context();
diff --git a/app/Models/EmployeeModel.php b/app/Models/EmployeeModel.php
index b8ad55a9..2bf754d1 100755
--- a/app/Models/EmployeeModel.php
+++ b/app/Models/EmployeeModel.php
@@ -106,7 +106,7 @@ class EmployeeModel extends Model
public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,array $emp_status = [],array $policy_status = [],array $relationship = [],array $client_branch_id = [])
{
- $result = $this->select(['employees.id as emp_id', 'employees.client_id','employees.client_branch_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employees.unit','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit','policy_type.long_name as policy_name','client_policy.is_addon', 'employee_polices.payable_employee'])
+ $result = $this->select(['employees.id as emp_id', 'employees.client_id','employees.client_branch_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employees.unit','employees.file_id','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit','policy_type.long_name as policy_name','client_policy.is_addon', 'employee_polices.payable_employee'])
->join('employee_polices', 'employee_polices.employee_id = employees.id')
->join('client_policy', 'client_policy.id = employee_polices.client_policy_id')
->join('policy_type', 'policy_type.id = client_policy.policy_type_id','left')
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index f0f7eaa2..9908c094 100755
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -179,7 +179,11 @@ class EmployeePolicyModel extends Model
$result->where('employee_polices.is_active', 1)
->where('emp.is_active', 1);
- return $result->findAll();
+ $res = $result->findAll();
+
+ // dd($this->db->getLastQuery());
+
+ return $res;
}
public function getEmployeePolicyForEcard($policy_id = 0)
@@ -275,7 +279,7 @@ class EmployeePolicyModel extends Model
employee_polices.uhid,
employee_polices.pre_existing_alignments,
employee_polices.basic_cover_si,
- employee_polices.date_coverage,
+ employee_polices.date_coverage as date_of_coverage,
employee_polices.policy_end_date,
employee_polices.days as no_of_days,
employee_polices.premium,
@@ -322,6 +326,9 @@ class EmployeePolicyModel extends Model
}else{
$results = $query->getResult();
}
+
+ // dd($this->db->getLastQuery());
+
return $results;
}
@@ -556,6 +563,175 @@ class EmployeePolicyModel extends Model
}
+ // DO NOT DELETE this DELETION QUERY FUNCTION
+
+ // public function getDeletionEmployeeDataForExportExcel($ref_data, $return_type = 0)
+ // {
+
+ // $client_id = $ref_data['client_id'];
+ // $client_policy_id = $ref_data['client_policy_id'];
+ // $client_branch_id = $ref_data['client_branch_id'];
+ // $insurer_or_tpa = $ref_data['insurer_or_tpa'];
+
+ // $get_insurer_id_from_client_policy = $this->db->table('client_policy')
+ // ->select('insurer_id')
+ // ->where('id', $client_policy_id)
+ // ->get()
+ // ->getRowArray();
+
+ // $add_one_day = 0;
+
+ // if (!empty($get_insurer_id_from_client_policy)) {
+
+ // $get_the_insurer_add_one_for_delete = $this->db->table('insurers')
+ // ->select('deletion_add_day')
+ // ->where('id', $get_insurer_id_from_client_policy['insurer_id'])
+ // ->get()
+ // ->getRowArray();
+
+ // if (!empty($get_the_insurer_add_one_for_delete) && $get_the_insurer_add_one_for_delete['deletion_add_day'] == 1) {
+ // $add_one_day = 1;
+ // }
+ // }
+
+ // $status_condition = "{$insurer_or_tpa}" === 'tpa'
+ // ? "employee_polices.status = 'inactive' AND employees.emp_status = 'inactive'"
+ // : "employee_polices.status = 'active' AND employees.emp_status = 'active'";
+
+ // $endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "AND (a.endorsement_id IS NOT NULL OR a.endorsement_id != '')" : "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')";
+
+ // $query = $this->db->query("
+ // SELECT DISTINCT
+ // a.id as endorsement_primarykey,
+ // a.group_key,
+ // employee_polices.id as primaryKey,
+ // employees.name AS emp_name,
+ // employees.emp_code AS emp_code,
+ // employees.dob AS emp_dob,
+ // employees.gender AS emp_gender,
+ // employees.relationship AS emp_relationship,
+ // employees.relationship_code AS emp_relationship_code,
+ // employees.emp_type as emp_type,
+ // 'D' as event_type_data,
+ // TIMESTAMPDIFF(YEAR, employees.dob, CURDATE()) AS emp_age,
+
+ // employees.doj AS emp_doj,
+ // employees.mobile AS emp_mobile,
+ // employees.email_corporate AS emp_email_c,
+ // employees.email_personal AS emp_email_p,
+ // employees.band AS emp_grade,
+ // employees.designation AS emp_designation,
+ // employees.basic_pay AS emp_basic_pay,
+
+ // employee_polices.basic_cover_si,
+ // employee_polices.uhid as uhid,
+ // employee_polices.policy_end_date,
+ // employee_polices.rata_premimum as premium,
+ // employee_polices.claim_status,
+
+ // batch_data.emp_policy_id AS emp_policy_id,
+ // batch_data.bl AS batch_list_batch_code,
+ // batch_data.bf AS batch_files_batch_code,
+
+ // deletiondata.empstatus,
+ // deletiondata.changeevent,
+ // deletiondata.dateofexit,
+ // deletiondata.reasonforexit,
+ // deletiondata.status,
+
+ // DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + '$add_one_day' AS no_of_days,
+
+
+ // CASE
+ // WHEN employee_polices.claim_status = 0 THEN
+ // ROUND((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365, 2)
+ // ELSE
+ // 0
+ // END AS pro_rata_premium,
+
+ // CASE
+ // WHEN employee_polices.claim_status = 0 THEN
+ // ROUND(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) * 0.18, 2)
+ // ELSE
+ // 0
+ // END AS gst,
+
+ // CASE
+ // WHEN employee_polices.claim_status = 0 THEN
+ // ROUND(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) +
+ // (((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) + $add_one_day)) / 365) * 0.18), 2)
+ // ELSE
+ // 0
+ // END AS total,
+
+ // CASE
+ // WHEN employee_polices.claim_status = 0 THEN
+ // 'No claim'
+ // ELSE
+ // 'Claim'
+ // END AS claim_status
+
+ // FROM
+ // emp_endorsement a
+ // LEFT JOIN
+ // employees ON a.emp_code = employees.emp_code
+ // LEFT JOIN
+ // employee_polices ON employees.id = employee_polices.employee_id
+
+ // LEFT JOIN(
+
+ // select aa.emp_code, aa.new_value as 'empstatus', bb.new_value as 'changeevent', cc.new_value as 'dateofexit', dd.new_value as 'reasonforexit', ee.new_value as 'status' from
+
+ // ( SELECT a1.emp_code, a1.field_name, a1.new_value from emp_endorsement as a1 where a1.field_name = 'emp_status' and a1.status != 'truncated') aa
+ // left join
+ // ( SELECT b1.emp_code, b1.field_name, b1.new_value from emp_endorsement as b1 where b1.field_name = 'change_event' and b1.status != 'truncated') bb on aa.emp_code = bb.emp_code
+ // left join
+ // ( SELECT c1.emp_code, c1.field_name, c1.new_value from emp_endorsement as c1 where c1.field_name = 'date_of_exit' and c1.status != 'truncated') cc on aa.emp_code = cc.emp_code
+ // left join
+ // ( SELECT d1.emp_code, d1.field_name, d1.new_value from emp_endorsement as d1 where d1.field_name = 'reason_for_exit' and d1.status != 'truncated') dd on aa.emp_code = dd.emp_code
+ // left JOIN
+ // ( SELECT e1.emp_code, e1.field_name, e1.new_value from emp_endorsement as e1 where e1.field_name = 'status' and e1.status != 'truncated') ee on aa.emp_code = ee.emp_code
+
+ // ) as deletiondata on a.emp_code = deletiondata.emp_code and a.status != 'truncated'
+
+ // LEFT JOIN
+ // (
+ // SELECT
+ // batch_list.emp_policy_id,
+ // batch_list.batch_code AS bl,
+ // batch_files.batch_code AS bf
+ // FROM
+ // batch_files
+ // LEFT JOIN
+ // batch_list ON batch_files.batch_code = batch_list.batch_code
+ // WHERE
+ // batch_files.event_type = 'deletion'
+ // AND batch_files.actions = 'export'
+ // AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
+ // ) AS batch_data ON employee_polices.id = batch_data.emp_policy_id
+
+ // WHERE employee_polices.client_policy_id = {$client_policy_id}
+ // AND employees.client_branch_id = {$client_branch_id}
+ // $endorsement_condition
+ // AND a.actions = 'd'
+ // AND a.status != 'truncated'
+ // AND employee_polices.is_active = 1
+ // AND employees.is_active = 1
+ // AND $status_condition
+ // group by group_key
+ // ");
+
+ // if($return_type == 1){
+ // $result = $query->getResultArray();
+ // }else{
+ // $result = $query->getResult();
+ // }
+
+ // // dd($this->db->getLastQuery(), $result);
+
+ // return $result;
+
+ // }
public function getDeletionEmployeeDataForExportExcel($ref_data, $return_type = 0)
{
@@ -666,28 +842,31 @@ class EmployeePolicyModel extends Model
FROM
emp_endorsement a
LEFT JOIN
- employees ON a.emp_code = employees.emp_code and a.pk = employees.id
+ employee_polices ON a.pk = employee_polices.id
LEFT JOIN
- employee_polices ON employees.id = employee_polices.employee_id
-
- LEFT JOIN(
-
- select aa.emp_code, aa.new_value as 'empstatus', bb.new_value as 'changeevent', cc.new_value as 'dateofexit', dd.new_value as 'reasonforexit', ee.new_value as 'status' from
-
- ( SELECT a1.emp_code, a1.field_name, a1.new_value from emp_endorsement as a1 where a1.field_name = 'emp_status' and a1.status != 'truncated') aa
- left join
- ( SELECT b1.emp_code, b1.field_name, b1.new_value from emp_endorsement as b1 where b1.field_name = 'change_event' and b1.status != 'truncated') bb on aa.emp_code = bb.emp_code
- left join
- ( SELECT c1.emp_code, c1.field_name, c1.new_value from emp_endorsement as c1 where c1.field_name = 'date_of_exit' and c1.status != 'truncated') cc on aa.emp_code = cc.emp_code
- left join
- ( SELECT d1.emp_code, d1.field_name, d1.new_value from emp_endorsement as d1 where d1.field_name = 'reason_for_exit' and d1.status != 'truncated') dd on aa.emp_code = dd.emp_code
- left JOIN
- ( SELECT e1.emp_code, e1.field_name, e1.new_value from emp_endorsement as e1 where e1.field_name = 'status' and e1.status != 'truncated') ee on aa.emp_code = ee.emp_code
-
- ) as deletiondata on a.emp_code = deletiondata.emp_code and a.status != 'truncated'
+ employees ON employee_polices.employee_id = employees.id
+
+ LEFT JOIN (
+ SELECT
+ emp_code,
+ group_key,
+ MAX(CASE WHEN field_name = 'emp_status' THEN new_value END) AS empstatus,
+ MAX(CASE WHEN field_name = 'change_event' THEN new_value END) AS changeevent,
+ MAX(CASE WHEN field_name = 'date_of_exit' THEN new_value END) AS dateofexit,
+ MAX(CASE WHEN field_name = 'reason_for_exit' THEN new_value END) AS reasonforexit,
+ MAX(CASE WHEN field_name = 'status' THEN new_value END) AS status
+ FROM
+ emp_endorsement
+ WHERE
+ status != 'truncated'
+ GROUP BY
+ group_key
+
+ ) AS deletiondata
+ ON a.emp_code = deletiondata.emp_code AND a.status != 'truncated'
LEFT JOIN
- (
+ (
SELECT
batch_list.emp_policy_id,
batch_list.batch_code AS bl,
@@ -700,7 +879,7 @@ class EmployeePolicyModel extends Model
batch_files.event_type = 'deletion'
AND batch_files.actions = 'export'
AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
- ) AS batch_data ON employee_polices.id = batch_data.emp_policy_id
+ ) AS batch_data ON employee_polices.id = batch_data.emp_policy_id
WHERE employee_polices.client_policy_id = {$client_policy_id}
AND employees.client_branch_id = {$client_branch_id}
@@ -720,6 +899,7 @@ class EmployeePolicyModel extends Model
}
// dd($this->db->getLastQuery(), $result);
+ // dd($result);
return $result;
diff --git a/app/Models/LeadsModel.php b/app/Models/LeadsModel.php
index c9cdccbb..5867a5d0 100644
--- a/app/Models/LeadsModel.php
+++ b/app/Models/LeadsModel.php
@@ -80,6 +80,10 @@ class LeadsModel extends Model
'premium_amount',
'total_amount',
'cd_amount',
+
+ 'total_si_at_incept',
+ 'total_si_at_renewal',
+ 'fin_years_claims',
];
diff --git a/app/Models/PolicyTransactionModel.php b/app/Models/PolicyTransactionModel.php
index d87d3f45..8ab22397 100644
--- a/app/Models/PolicyTransactionModel.php
+++ b/app/Models/PolicyTransactionModel.php
@@ -399,6 +399,7 @@ class PolicyTransactionModel extends Model
WHERE
co_share_stmt_details.co_share_id = pt_co_share_details.id
AND co_share_stmt_details.is_active = 1
+ AND insurer_statements.is_active = 1
$date_condition
),
2
@@ -465,7 +466,7 @@ class PolicyTransactionModel extends Model
AND co_share_stmt_details.is_active = 1
AND pt_table.is_active = 1
AND insurer_statements.is_active = 1
- AND insurer_statements.invoice_no IS NOT NULL
+ AND insurer_statements.invoice_no IS NULL
$date_condition
)
),
diff --git a/app/Models/RFQModel.php b/app/Models/RFQModel.php
index d165b339..2b1560e0 100644
--- a/app/Models/RFQModel.php
+++ b/app/Models/RFQModel.php
@@ -60,15 +60,13 @@ class RFQModel extends Model
public function getRFQTableDataWithLeadIDAndType($lead_id, $type){
return $this->select('
- leads.client_name,
- leads.client_short_name,
+ leads.*,
insurers.name as insurer_name,
insurer_branch.branch_name as insurer_branch_name,
tpa.name as tpa_name,
tpa_branch.branch_name as tpa_branch_name,
policy_type.policy_type,
rfq.json,
- file_name
')
->join('leads', 'rfq.lead_id = leads.id')
->join('policy_type', 'leads.policy_type_id = policy_type.id')
diff --git a/app/Views/insurer_statement_list.php b/app/Views/insurer_statement_list.php
index cc21636b..328e65db 100644
--- a/app/Views/insurer_statement_list.php
+++ b/app/Views/insurer_statement_list.php
@@ -441,6 +441,7 @@ table.dataTable tbody td {
switchRequired('received_amount',false,'name');
switchRequired('tds',false,'name');
+ switchRequired('gst_amount',false,'name');
switchRequired('utr_no',false,'name');
switchRequired('payment_date',false,'name');
switchRequired('pk',false,'name');
@@ -458,6 +459,7 @@ table.dataTable tbody td {
switchRequired('received_amount',true,'name');
switchRequired('utr_no',true,'name');
switchRequired('tds',true,'name');
+ switchRequired('gst_amount',true,'name');
switchRequired('payment_date',true,'name');
switchRequired('pk',true,'name');
}else if(invoiceStatus === 'pending')
@@ -476,8 +478,11 @@ table.dataTable tbody td {
switchRequired('payment_date',false,'name');
switchRequired('pk',false,'name');
switchRequired('tds',false,'name');
+ switchRequired('gst_amount',false,'name');
}
+
+ calcGSTValue();
});
@@ -704,6 +709,11 @@ function showInvoiceStatusModal(event)
document.getElementById('invoice_value_modal').value = response.data.invoice_value;
document.getElementById('gst_per_modal').value = response.data.gst_per;
document.getElementById('gst_value_modal').value = response.data.gst_value;
+ console.log('response.data.gst_value - ' + response.data.gst_value);
+ if(response.data.gst_value == 0 || response.data.gst_value == '' || response.data.gst_value == null)
+ {
+ calcGSTValue();
+ }
if (!$('#invoice_date_modal').val()) {
// alert('nope');
@@ -1051,20 +1061,34 @@ function getStatementNo()
function calcGSTValue()
{
// alert('calcGSTValue');
- var gst_per = document.getElementById('gst_per_modal').value;
-
- var invoice_value_dom_obj = document.getElementById('invoice_value_modal');
- var invoice_value = invoice_value_dom_obj.value;
-
- var gst_value_dom_obj = document.getElementById('gst_value_modal');
- var gst_value = gst_value_dom_obj.value;
-
- var invoice_amount_dom_obj = document.getElementById('invoice_amount_no_modal');
- // var invoice_amount = invoice_amount_dom_obj.value();
+ console.log('calcGSTValue called');
+ var inv_status_element = document.getElementById('invoice_status');
- gst_value_dom_obj.value = (parseFloat(gst_per) / 100 ) * invoice_value;
- invoice_amount_dom_obj.value = parseFloat(invoice_value_dom_obj.value) + parseFloat(gst_value_dom_obj.value);
- checkInvAmont();
+ if(inv_status_element.value == 'generated' || inv_status_element.value == 'send' || inv_status_element.value == 'payment_received')
+ {
+
+ var gst_per = document.getElementById('gst_per_modal').value;
+ console.log('gst_per - ' + gst_per);
+
+ var invoice_value_dom_obj = document.getElementById('invoice_value_modal');
+ var invoice_value = invoice_value_dom_obj.value;
+ console.log('invoice_value - ' + invoice_value);
+
+ var gst_value_dom_obj = document.getElementById('gst_value_modal');
+ var gst_value = gst_value_dom_obj.value;
+ console.log('gst_value - ' + gst_value);
+
+ var invoice_amount_dom_obj = document.getElementById('invoice_amount_no_modal');
+ // var invoice_amount = invoice_amount_dom_obj.value();
+
+ gst_value_dom_obj.value = Math.round((parseFloat(gst_per) / 100 ) * invoice_value);
+ // gst_value_dom_obj.value = ((parseFloat(gst_per) / 100 ) * invoice_value);
+ invoice_amount_dom_obj.value = parseFloat(invoice_value_dom_obj.value) + parseFloat(gst_value_dom_obj.value);
+ if(inv_status_element.value == 'payment_received')
+ {
+ checkInvAmont();
+ }
+ }
}
diff --git a/app/Views/leads_form.php b/app/Views/leads_form.php
index 0d04d44e..10f6e264 100644
--- a/app/Views/leads_form.php
+++ b/app/Views/leads_form.php
@@ -384,7 +384,7 @@ function getLeadsDataForEdit(input) {
$('#contact_person_name').val(res.data.contact_person_name);
$('#contact_person_mobile').val(res.data.contact_person_mobile);
$('#contact_person_email').val(res.data.contact_person_email);
-
+ $('#policy_type_id_1').val(res.data.policy_type_id).change();
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1000)
@@ -397,7 +397,6 @@ function getLeadsDataForEdit(input) {
var proposed_insurer = res.data.proposed_insurer_branch_id + '-' + res.data.proposed_insurer_id;
var proposed_tpa = res.data.proposed_tpa_branch_id + '-' + res.data.proposed_tpa_id;
- $('#policy_type_id_1').val(res.data.policy_type_id).change();
$('#insurer_1').val(insurer).select2();
$('#tpa_1').val(tpa).select2();
$('#proposed_insurer_1').val(proposed_insurer).select2();
@@ -405,7 +404,6 @@ function getLeadsDataForEdit(input) {
$('#policy_start_date_1').val(res.data.policy_start_date);
$('#policy_end_date_1').val(res.data.policy_end_date);
$('#no_of_lives').val(res.data.no_of_lives);
- $('#incurred_claims').val(res.data.incurred_claims);
$('#location').val(res.data.location);
let increment = 1;
@@ -430,7 +428,12 @@ function getLeadsDataForEdit(input) {
$('#annualised_claims_' + increment).val(res.data.annualised_claims);
$('#incurred_claims_ratio_' + increment).val(res.data.incurred_claims_ratio);
$('#earned_claims_ratio_' + increment).val(res.data.earned_claims_ratio);
+ $('#incurred_claims_' + increment).val(res.data.incurred_claims);
$('#file_name_display').text('Upload File Name : ' + res.data.file_name);
+ // $('#file_name').val(res.data.file_name);
+
+ $('#total_si_at_incept_' + increment).val(res.data.total_si_at_incept);
+ $('#total_si_at_renewal_' + increment).val(res.data.total_si_at_renewal);
if (res.data.salse_person_id) {
@@ -476,6 +479,33 @@ function getLeadsDataForEdit(input) {
}
}
+ if(res.data.policy_type_id != 2){
+
+ $('.gpa_hide_div_'+increment).hide();
+ $('.gpa_show_div_'+increment).show();
+ $('.gpa_div_elements_'+increment).show();
+ $('.emp_title').text('No of Employees at Inception');
+
+ let claimExperience = JSON.parse(res.data.fin_years_claims);
+
+ claimExperience[0].finyear.forEach((data, index) => {
+ const year = document.querySelector(`#${["first", "second", "third"][index]}_year_${increment}`);
+ const claimAmount = document.querySelector(`#${["first", "second", "third"][index]}_claim_amount_${increment}`);
+ const claimStatus = document.querySelector(`#${["first", "second", "third"][index]}_claim_status_${increment}`);
+ const causeOfDeath = document.querySelector(`#${["first", "second", "third"][index]}_casue_of_death_${increment}`);
+ const deathDate = document.querySelector(`#${["first", "second", "third"][index]}_death_date_${increment}`);
+
+ if (year) year.value = data.year;
+ if (claimAmount) claimAmount.value = data.claim_amount;
+ if (claimStatus) claimStatus.value = data.status;
+ if (causeOfDeath) causeOfDeath.value = data.cause_of_death;
+ if (deathDate) deathDate.value = data.death_date;
+ });
+
+ }else{
+ $('.gpa_hide_div_'+increment).show();
+ }
+
} else {
console.log('No data found');
@@ -624,7 +654,6 @@ function getPolicyData(client_policy_id, increment_count) {
}
}
-
// Salse team user list data
function selecSalsePerson(salse_person_ids) {
@@ -670,6 +699,22 @@ function addHTMLInput(check) {
const newRow8 = document.createElement('div');
newRow8.className = 'form-row dynamic-form-row';
+ const newRow6 = document.createElement('div');
+ newRow6.className = `form-row dynamic-form-row gpa_div_elements_${increment}`;
+ newRow6.style.display = 'none';
+
+ const newRow9 = document.createElement('div');
+ newRow9.className = `form-row dynamic-form-row gpa_div_elements_${increment}`;
+ newRow9.style.display = 'none';
+
+ const newRow10 = document.createElement('div');
+ newRow10.className = `form-row dynamic-form-row gpa_div_elements_${increment}`;
+ newRow10.style.display = 'none';
+
+ const newRow11 = document.createElement('div');
+ newRow11.className = `form-row dynamic-form-row gpa_div_elements_${increment}`;
+ newRow11.style.display = 'none';
+
// Add an element
const hrElement = document.createElement('hr');
container.appendChild(hrElement);
@@ -679,7 +724,7 @@ function addHTMLInput(check) {
Policy Type *
-
+
Select Policy Type
-