From c9bf62b2ed01ec0cb013fc08bf408aeebdbd79e9 Mon Sep 17 00:00:00 2001 From: bitbucket Date: Thu, 22 Aug 2024 10:50:12 +0530 Subject: [PATCH 01/29] CHANGE_in getEmployeeActiveOrInactivePolicy API : GWM --- app/Controllers/EmployeeRestController.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index af9c2f07..38199cb2 100644 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -2199,7 +2199,7 @@ class EmployeeRestController extends AdminController function getEmployeeActiveOrInactivePolicy() { - if($this->request->getGet('type') == 'Active'){ $policy_status = 1; }else{ $policy_status = 0; } + if($this->request->getGet('type') == 'Active'){ $policy_status = 1; }else{ $policy_status = 0; } $ClientPolicyData = $this->clientPolicyModel->select('client_policy.* , policies.name as policy_name , policy_type.policy_type as policy_type') ->join('policies', 'client_policy.policy_id = policies.id', 'left') ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left') @@ -2232,14 +2232,19 @@ class EmployeeRestController extends AdminController $terms = json_decode($ClientPolicyValue['policy_terms']); - if($ClientPolicyValue['policy_type_id'] == 1){ $data['policy_terms'] = $this->policyTermsFiter($terms,'gpa'); } - else{ $data['policy_terms'] = $this->policyTermsFiter($terms,'gmc'); } + if($ClientPolicyValue['policy_type_id'] == 1) + { + $data['policy_terms'] = $this->policyTermsFiter($terms,'gpa'); + $data['department_id'] = 3; + }else{ + $data['policy_terms'] = $this->policyTermsFiter($terms,'gmc'); + $data['department_id'] = 4; + } $data['client_id'] = $ClientPolicyValue['client_id']; $data['client_policy_id'] = $ClientPolicyValue['id']; $data['policy_name'] = $ClientPolicyValue['policy_name']; $data['policy_type'] = $ClientPolicyValue['policy_type']; - $data['policy_type'] = $ClientPolicyValue['policy_type']; $data['policy_no'] = $ClientPolicyValue['policy_no']; $data['policy_start_date'] = $this->convertDateFormatDisplay($ClientPolicyValue['policy_start_date']); $data['policy_end_date'] = $this->convertDateFormatDisplay($ClientPolicyValue['policy_end_date']); @@ -2482,7 +2487,7 @@ class EmployeeRestController extends AdminController public function sendPushNotification() { - $deviceToken = 'ffvc39yhRk-J-vGE9luw6l:APA91bFgNv7lzvA3lGuJ_pMDHdZ_rey6SMg11P2DvJk-WWiBs0nXWCF0lo5nEka3dn3DeTCS5yx0WrHs1yKj5faitBQYKeKxLg2VpUkDcmk3FrTDGkZdHcnW1Go0G0K8dYAkajRIjSEJ'; + $deviceToken = 'cMVKESh8QzqIl8nh_yqbcl:APA91bHKm87Sh1goVJNKZtctV4etgLMQboI0eyDVn3MH1yf9cO-2RtQRlFnKLdataOxosoxm7a4JvATKjfI1_Bids46mGw5m8zesp90mR4odCbD_cJtGmBeMYt4hssSY0YtAht1emK_H'; $title = 'Nhance'; $body = 'All your policy enrolled successfully ..!'; From 04db6dcd6a98ec78ae854a1c62602ff4921697de Mon Sep 17 00:00:00 2001 From: bitbucket Date: Thu, 22 Aug 2024 12:13:19 +0530 Subject: [PATCH 02/29] CHANGE_in getEmployeeActive policy api adder insurer and tpa name : GWM --- app/Controllers/EmployeeRestController.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 38199cb2..0bf9fbfe 100644 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -2200,8 +2200,10 @@ class EmployeeRestController extends AdminController function getEmployeeActiveOrInactivePolicy() { if($this->request->getGet('type') == 'Active'){ $policy_status = 1; }else{ $policy_status = 0; } - $ClientPolicyData = $this->clientPolicyModel->select('client_policy.* , policies.name as policy_name , policy_type.policy_type as policy_type') - ->join('policies', 'client_policy.policy_id = policies.id', 'left') + $ClientPolicyData = $this->clientPolicyModel->select('client_policy.* , policy_type.policy_type as policy_type,insurers.name as insurer_name,tpa.name as tpa_name') + + ->join('insurers', 'client_policy.insurer_id = insurers.id', 'left') + ->join('tpa', 'client_policy.tpa_id = tpa.id', 'left') ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left') ->where('client_policy.client_id', $this->request->getGet('client_id') ) ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') ) @@ -2209,7 +2211,7 @@ class EmployeeRestController extends AdminController ->where('client_policy.policy_status', $policy_status) ->orderby('client_policy.id' , 'ASC') ->findAll(); - +// dd($ClientPolicyData); // Retrieve employee and dependents data by passing the employee code $employeeData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code')) ->where('client_id',$this->request->getGet('client_id')) @@ -2243,7 +2245,7 @@ class EmployeeRestController extends AdminController $data['client_id'] = $ClientPolicyValue['client_id']; $data['client_policy_id'] = $ClientPolicyValue['id']; - $data['policy_name'] = $ClientPolicyValue['policy_name']; + $data['policy_name'] = $ClientPolicyValue['policy_type']; $data['policy_type'] = $ClientPolicyValue['policy_type']; $data['policy_no'] = $ClientPolicyValue['policy_no']; $data['policy_start_date'] = $this->convertDateFormatDisplay($ClientPolicyValue['policy_start_date']); From 0ee71aa4a45efff0631c1ab23278a71af25071f8 Mon Sep 17 00:00:00 2001 From: bitbucket Date: Thu, 22 Aug 2024 12:26:46 +0530 Subject: [PATCH 03/29] CHANGE_in getEmployeeActive policy api adder insurer and tpa name : GWM --- app/Controllers/EmployeeRestController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 0bf9fbfe..39e1f7af 100644 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -2248,6 +2248,8 @@ class EmployeeRestController extends AdminController $data['policy_name'] = $ClientPolicyValue['policy_type']; $data['policy_type'] = $ClientPolicyValue['policy_type']; $data['policy_no'] = $ClientPolicyValue['policy_no']; + $data['insurer_name'] = $ClientPolicyValue['insurer_name']; + $data['tpa_name'] = $ClientPolicyValue['tpa_name']; $data['policy_start_date'] = $this->convertDateFormatDisplay($ClientPolicyValue['policy_start_date']); $data['policy_end_date'] = $this->convertDateFormatDisplay($ClientPolicyValue['policy_end_date']); // $data['policy_terms'] = $terms; From 90e85d93f19ddd10a007a067b50ac5ba6981f17d Mon Sep 17 00:00:00 2001 From: velz Date: Wed, 4 Sep 2024 17:30:53 +0530 Subject: [PATCH 04/29] CHNAGE_GMAILAPI_IMPLEMENTED --- app/Config/Routes.php | 4 + app/Config/Services.php | 10 ++ app/Controllers/MasterController.php | 56 +++++++++ app/Helpers/MailHelper.php | 68 +++++++++- app/Libraries/GmailAPI.php | 180 +++++++++++++++++++++++++++ app/Models/SettingsModel.php | 20 +++ app/Views/mail_test.php | 44 +++++++ app/Views/rack_rate_test.php | 2 +- 8 files changed, 381 insertions(+), 3 deletions(-) create mode 100644 app/Libraries/GmailAPI.php create mode 100644 app/Models/SettingsModel.php create mode 100644 app/Views/mail_test.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f4eb5e87..9b25db2c 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -278,12 +278,16 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->get("copy_insurer_templete/(:any)", "MasterController::copyInsurerTemplete/$1"); $routes->get("get_single_excel_template/(:any)", "MasterController::getSingleExcelTemplate/$1"); $routes->get("dublicate_template/(:any)", "MasterController::duplicateTemplate/$1"); + $routes->get("test_mail", "MasterController::testGmailAPI"); + $routes->post("test_mail", "MasterController::testGmailAPI"); }); $routes->cli('cli/processjob', 'JobWorker::processJob'); $routes->cli('cli/processjobs', 'JobWorker::processJobs'); $routes->cli('cli/enrollment_status', 'JobWorker::enrollment_status'); $routes->get("processjob", "JobWorker::processJob"); +$routes->cli('cli/new_gmail_token', 'MasterController::generateNewGmailAPIToken'); +$routes->cli('cli/send_mail_cli', 'MasterController::testGmailAPIViaCLI'); diff --git a/app/Config/Services.php b/app/Config/Services.php index e9a21d37..23159f8b 100644 --- a/app/Config/Services.php +++ b/app/Config/Services.php @@ -5,6 +5,7 @@ namespace Config; use CodeIgniter\Config\BaseService; use App\Libraries\Slug; use App\Libraries\MyLogger; +use App\Libraries\GmailAPI; use App\Libraries\DataServiceSqlite; use App\Controllers\Home; @@ -60,5 +61,14 @@ class Services extends BaseService return new DataServiceSqlite(); } + + public static function gmailapi($getShared = true) + { + if ($getShared) { + return static::getSharedInstance('gmailapi'); + } + + return new GmailAPI(); + } } diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php index 842dd047..ed30157c 100644 --- a/app/Controllers/MasterController.php +++ b/app/Controllers/MasterController.php @@ -10,6 +10,7 @@ use CodeIgniter\API\ResponseTrait; use CodeIgniter\Files\File; use App\Helpers\DepositHelper; +use App\Helpers\MailHelper; use App\Models\UserModel; use App\Models\ClientModel; @@ -1440,4 +1441,59 @@ class MasterController extends AdminController ]); } } + + + public function generateNewGmailAPIToken() + { + $gmailapi = \Config\Services::gmailapi(); + $gmailapi->generateNewToken(); + + } + + //testing a sample mail from front end + public function testGmailAPI() + { + + if ($this->request->getMethod() == 'post') { + $gmailapi = \Config\Services::gmailapi(); + + $to = $this->request->getPost('to'); + $subject = $this->request->getPost('subject'); + $mail_content = $this->request->getPost('content'); + + /*****CHOOSE ANY ONE AT A TIME, COMMENT ANOTHER ONE******/ + + /*****CALLING DIRECLT USING LIB******/ + // $res = $gmailapi->sendMessage($to, $subject, $mail_content, 'info@nhanceindia.in', 'info@nhanceindia.in', $cc = [], $bcc = []); + + // if($res['status']) + // { + // return $this->respond(['status' => 'success','code' => 200,'data' => $res],200); + // } + // else + // { + // $this->respond(['status' => 'failed','code' => 500,'data' => $res],200); + // } + /*****CALLING DIRECLT USING LIB******/ + + /*****CALLING VIA MAIL HELPER******/ + $res = MailHelper::send_email(['mail' => $to, 'subject' => $subject, 'message' => $mail_content]); + return $this->respond(['status' => 'success','code' => 200,'data' => $res],200); + /*****CALLING VIA MAIL HELPER******/ + + } + + $this->loadLayout('mail_test'); + + } + + + //testing a sample mail from cli + public function testGmailAPIViaCLI() + { + $gmailapi = \Config\Services::gmailapi(); + $res = MailHelper::send_email(['mail' => 'velmurugan.s@venbainfotech.com', 'subject' => 'Mail Via CLI', 'message' => 'This is sample mail sent via CLI mode']); + print_r($res); + + } } \ No newline at end of file diff --git a/app/Helpers/MailHelper.php b/app/Helpers/MailHelper.php index 7b1a9bc7..2eb86cf1 100644 --- a/app/Helpers/MailHelper.php +++ b/app/Helpers/MailHelper.php @@ -14,7 +14,7 @@ use App\Models\JobModel; class MailHelper { - public static function send_email($params) + public static function send_email_smtp($params) { // print_r($params);die; @@ -63,7 +63,7 @@ class MailHelper } } - public static function bulk_mail(array $mails = []) + public static function bulk_mail_smtp(array $mails = []) { // print_r();die; $model = new JobModel(); @@ -82,5 +82,69 @@ class MailHelper } } + //using GmailAPI + public static function send_email($params) + { + + // print_r($params);die; + $myLogger = \Config\Services::mylogger(); + $gmailapi = \Config\Services::gmailapi(); + + $emaill = $params['mail']; + $subject = $params['subject']; + $message = $params['message']; + if (isset($params['bcc'])) { + $bcc = $params['bcc']; + }else{ + $bcc = []; + } + + if (isset($params['cc'])) { + $cc = $params['cc']; + }else{ + $cc = []; + } + try { + + + $res = $gmailapi->sendMessage($emaill, $subject, $message, 'info@nhanceindia.in', 'info@nhanceindia.in', $cc, $bcc); + + if($res['status']) + { + return json_encode(['status' => 'success','code' => 200, 'message'=>('Email Sent Successfully...'.$emaill),'data' => $res,],200); + } + else + { + $myLogger->logme('error', "mail sent failed - $emaill"); + return json_encode(['status' => 'failed','code' => 404,'message'=>( 'Email Sent Failed...' . $emaill ),'data' => $res ],404); + } + + } catch (Exception $e) { + $msg = $e->getMessage(); + $myLogger->logme('error', "mail sent failed - $msg"); + return json_encode(['status' => 'failed','code' => 500,'data' => $msg],500); + } + } + + + public static function bulk_mail(array $mails = []) + { + // print_r();die; + $model = new JobModel(); + $start = microtime(true); + $runtime= 0; + try { + foreach ( $mails as $index=>$mail) { + $runtime = microtime(true) - $start; + $send_mail = self::send_email($mail); + } + + return json_encode(['status' => 'success','code' => 200, 'message'=>'Email Sent Successfully...'],200); + + } catch (\Throwable $th) { + return json_encode(['status' => 'failed','code' => 500],500); + } + } + } ?> \ No newline at end of file diff --git a/app/Libraries/GmailAPI.php b/app/Libraries/GmailAPI.php new file mode 100644 index 00000000..ffa180c7 --- /dev/null +++ b/app/Libraries/GmailAPI.php @@ -0,0 +1,180 @@ +myLogger = \Config\Services::mylogger(); + $this->client = new Client(); + $this->client->setApplicationName('Nhance GmailAPI'); + $this->client->setScopes([ + 'https://www.googleapis.com/auth/gmail.addons.current.message.readonly', + 'https://www.googleapis.com/auth/gmail.readonly', + 'https://www.googleapis.com/auth/gmail.labels', + 'https://www.googleapis.com/auth/gmail.send' + ]); + $this->setAuthConfig(); + //die(); + $this->client->setAccessType('offline'); + $this->client->setPrompt('select_account consent'); + + if (php_sapi_name() !== 'cli' || (uri_string() == 'cli/send_mail_cli' || uri_string() == 'cli/processjob') ) + { + $this->setTokenFromDB(); // Call only if not in CLI + } + + $this->service = new Gmail($this->client); + + } + + protected function setAuthConfig() + { + $settingsModel = new SettingsModel(); + $credentials = $settingsModel->where('id', 1)->first(); + + if (!$credentials) { + $this->myLogger->logme('error','OAuth credentials for GmailAPI not found in database.'); + throw new \Exception('OAuth credentials for GmailAPI not found in database.'); + } + // print_r($credentials[$this->authField]);//die(); + // $accessToken = $credentials[$this->authField]; + $this->client->setAuthConfig(json_decode($credentials[$this->authField],true)); + + // if ($this->client->isAccessTokenExpired()) { + // if ($this->client->getRefreshToken()) { + // $this->client->fetchAccessTokenWithRefreshToken($this->client->getRefreshToken()); + // $this->storeTokenToDB($this->client->getAccessToken()); + // } else { + // $this->myLogger->logme('error', 'Access token expired and no refresh token available.'); + // throw new \Exception('Access token expired and no refresh token available.'); + // } + // } + } + + protected function setTokenFromDB() + { + $settingsModel = new SettingsModel(); + $token = $settingsModel->where('id', 1)->first(); + // dd(is_array($token) && is_null($token[$this->tokenField])); + + if (is_array($token) && is_null($token[$this->tokenField])) { + $this->myLogger->logme('error','Email Token not found in database.'); + throw new \Exception('Email Token not found in database.'); + } + + $accessToken = json_decode($token[$this->tokenField], true); + $this->client->setAccessToken($accessToken); + + if ($this->client->isAccessTokenExpired()) { + if ($this->client->getRefreshToken()) { + $this->client->fetchAccessTokenWithRefreshToken($this->client->getRefreshToken()); + $this->storeTokenToDB($this->client->getAccessToken()); + } else { + $this->myLogger->logme('error', 'Access token expired and no refresh token available.'); + throw new \Exception('Access token expired and no refresh token available.'); + } + } + } + + protected function storeTokenToDB($token) + { + $settingsModel = new SettingsModel(); + $token = json_encode($token); + // $settingsModel->update(['id' => $this->tokenField], ['value' => json_encode($token)]); + $settingsModel->where('id', 1)->set([$this->tokenField => $token])->update(); + } + + public function createMessage($to, $subject, $htmlContent, $from, $replyTo, $cc = [], $bcc = []) + { + $boundary = uniqid(rand(), true); + + $rawMessageString = "From: $from\r\n"; + $rawMessageString .= "To: $to\r\n"; + $rawMessageString .= "Reply-To: $replyTo\r\n"; + + if (!empty($cc)) { + $rawMessageString .= "Cc: " . implode(',', $cc) . "\r\n"; + } + + if (!empty($bcc)) { + $rawMessageString .= "Bcc: " . implode(',', $bcc) . "\r\n"; + } + + $rawMessageString .= "Subject: $subject\r\n"; + $rawMessageString .= "MIME-Version: 1.0\r\n"; + $rawMessageString .= "Content-Type: multipart/alternative; boundary=\"$boundary\"\r\n\r\n"; + $rawMessageString .= "--$boundary\r\n"; + $rawMessageString .= "Content-Type: text/html; charset=UTF-8\r\n"; + $rawMessageString .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; + $rawMessageString .= $htmlContent . "\r\n"; + $rawMessageString .= "--$boundary--"; + + $rawMessage = base64_encode($rawMessageString); + $rawMessage = str_replace(['+', '/', '='], ['-', '_', ''], $rawMessage); + + $message = new Message(); + $message->setRaw($rawMessage); + + return $message; + } + + public function sendMessage($to, $subject, $htmlContent, $from, $replyTo, $cc = [], $bcc = []) + { + try { + $message = $this->createMessage($to, $subject, $htmlContent, $from, $replyTo, $cc, $bcc); + $res = $this->service->users_messages->send('me', $message); + return array('status' => true, 'data' => $res); + } catch (\Exception $e) { + $err_msg = 'An error occurred while sending the mail: ' . $e->getMessage(); + $this->myLogger->logme('error', $err_msg); + // throw new \Exception('An error occurred while sending the mail: ' . $e->getMessage()); + return array('status' => false, 'data' =>$e->getMessage()); + } + } + + public function generateNewToken() + { + // dd('called'); + if (!is_cli()) { + throw new \RuntimeException('This method can only be accessed via the command line.'); + } + + if (php_sapi_name() != 'cli') { + throw new Exception('This application must be run on the command line.'); + } + + $authUrl = $this->client->createAuthUrl(); + CLI::write('Open the following link in your browser'); + CLI::write("\n"); + CLI::write($authUrl); + // printf ("Open the following link in your browser:\n%s\n", $authUrl); + CLI::write('Enter verification code: '); + // print 'Enter verification code: '; + $authCode = trim(fgets(STDIN)); + + $accessToken = $this->client->fetchAccessTokenWithAuthCode($authCode); + if (array_key_exists('error', $accessToken)) { + $this->myLogger->logme('error', 'Error in getting access token from authCode' . join(', ', $accessToken)); + throw new \Exception(join(', ', $accessToken)); + } + + $this->storeTokenToDB($accessToken); + $this->myLogger->logme('error', 'New token generated and stored in the database.'); + print 'New token generated and stored in the database.'; + } +} diff --git a/app/Models/SettingsModel.php b/app/Models/SettingsModel.php new file mode 100644 index 00000000..140e59ef --- /dev/null +++ b/app/Models/SettingsModel.php @@ -0,0 +1,20 @@ + +

Send Test Mail Using Gmail API

+
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ + + + + diff --git a/app/Views/rack_rate_test.php b/app/Views/rack_rate_test.php index 9100eadd..c6c22d0e 100644 --- a/app/Views/rack_rate_test.php +++ b/app/Views/rack_rate_test.php @@ -728,7 +728,7 @@ var old_data = data.old; const tableBody = document.getElementById(tableID); // $(("#".tableID)).empty(); - $("#restable tbody").empty() + $("#restable tbody").empty(); $('#oldrestable tbody').empty(); const existingRowCount = tableBody.rows.length; for(i = 0; i < data.length; i++) From a36cb3501f6b821588c2515d0a717e8e3620f1a0 Mon Sep 17 00:00:00 2001 From: bitbucket Date: Tue, 10 Sep 2024 14:12:13 +0530 Subject: [PATCH 05/29] employee file upload related changes : GWM --- app/Controllers/EmployeeRestController.php | 30 +++++++++++++--------- app/Helpers/excel_util_helper.php | 2 +- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 39e1f7af..ce19ba1e 100644 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -326,21 +326,27 @@ class EmployeeRestController extends AdminController foreach ($response[$emp_code] as $key => $value) { - - $checkIfExist = $this->employeePolicyModel->where('employee_id', $value['temp']['emp_id']) + + if(isset($value['temp'])) + { + $checkIfExist = $this->employeePolicyModel->where('employee_id', $value['temp']['emp_id']) ->where('client_policy_id', $value['policy_details']['client_policy_id']) ->where('is_active', 1 ) ->findAll(); - if($checkIfExist) - { - $this->employeePolicyModel - ->where('client_policy_id',$value['policy_details']['client_policy_id'] ) - ->where('employee_id' , $value['temp']['emp_id'] ) - ->where('is_active', 1 ) - ->set(array('premium'=> $value['policy_details']['premium'] , 'rata_premimum'=> $value['policy_details']['rata_premimum'] , 'gst'=> $value['policy_details']['gst'] )) - ->update(); - + if($checkIfExist) + { + $this->employeePolicyModel + ->where('client_policy_id',$value['policy_details']['client_policy_id'] ) + ->where('employee_id' , $value['temp']['emp_id'] ) + ->where('is_active', 1 ) + ->set(array('premium'=> $value['policy_details']['premium'] , 'rata_premimum'=> $value['policy_details']['rata_premimum'] , 'gst'=> $value['policy_details']['gst'] )) + ->update(); + + } + } + + } } } @@ -834,7 +840,7 @@ class EmployeeRestController extends AdminController $emp_id =0; $data_after_gpa_or_gmc =[]; - if ($policy['policy_type_id'] == 1) { + if ($client_policy['policy_type_id'] == 1) { if (strtolower($dataToInsert[$a]['relationship']) == 'self') { $data_after_gpa_or_gmc = $dataToInsert[$a]; } diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php index 3f07ed82..62b17cea 100644 --- a/app/Helpers/excel_util_helper.php +++ b/app/Helpers/excel_util_helper.php @@ -234,7 +234,7 @@ if(!function_exists('check_si')) $is_si_found = false; $is_age_slab_found = false; - if($policy_details['policy_type_id'] == 1 && $slab_details[0]['policy_grid_id'] == 1 && $slab_details[0]['si_or_bp'] == 2) // GPA && grid type 1 for GPA && sub type is basic pay + if($policy_details['policy_type_id'] == 1 && $slab_details['slab_rates'][0]['policy_grid_id'] == 1 && $slab_details['slab_rates'][0]['si_or_bp'] == 2) // GPA && grid type 1 for GPA && sub type is basic pay { $is_si_found = true; $is_age_slab_found = true; From e7bd7cec4b43d08319fbc43058ddd5fa9b1c2b04 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Wed, 11 Sep 2024 17:19:29 +0530 Subject: [PATCH 06/29] FEAT_POLICY_TRANCTION_MODULE : RV --- app/Config/Autoload.php | 2 +- app/Config/Routes.php | 37 + app/Controllers/ClientController.php | 380 ++- app/Controllers/MasterController.php | 42 +- .../PolicyTransactionController.php | 970 ++++++++ app/Controllers/UserController.php | 47 +- app/Helpers/drive_helper.php | 150 ++ app/Helpers/oauth_helper.php | 8 + app/Helpers/utility_helper.php | 76 +- app/Models/ClientModel.php | 10 +- app/Models/PTCOShareDetailsModel.php | 64 + app/Models/PTFileModel.php | 29 + app/Models/PolicyTransactionModel.php | 209 ++ app/Models/PolicyTransactionStatusModel.php | 58 + app/Models/PolicyTypeModel.php | 4 + app/Models/VehicleModel.php | 64 + app/Views/drive_file_upload.php | 115 + app/Views/insurer_export_templete.php | 4 +- app/Views/layout/footer.php | 5 + app/Views/layout/header.php | 38 +- app/Views/login.php | 82 +- app/Views/policy_grid.php | 1 - .../policy_transaction_endorsement_form.php | 1068 ++++++++ .../policy_transaction_endorsement_list.php | 500 ++++ .../policy_transaction_inception_form.php | 2191 +++++++++++++++++ .../policy_transaction_inception_list.php | 1267 ++++++++++ app/Views/pt_form_file_upload_tab.php | 44 + app/Views/report_bds.php | 174 ++ app/Views/report_bds_filter.php | 282 +++ app/Views/vehicle_details.php | 400 +++ public/assets/images/login_bg.jpg | Bin 0 -> 224452 bytes 31 files changed, 8149 insertions(+), 172 deletions(-) create mode 100644 app/Controllers/PolicyTransactionController.php create mode 100644 app/Helpers/drive_helper.php create mode 100644 app/Models/PTCOShareDetailsModel.php create mode 100644 app/Models/PTFileModel.php create mode 100644 app/Models/PolicyTransactionModel.php create mode 100644 app/Models/PolicyTransactionStatusModel.php create mode 100644 app/Models/VehicleModel.php create mode 100644 app/Views/drive_file_upload.php create mode 100644 app/Views/policy_transaction_endorsement_form.php create mode 100644 app/Views/policy_transaction_endorsement_list.php create mode 100644 app/Views/policy_transaction_inception_form.php create mode 100644 app/Views/policy_transaction_inception_list.php create mode 100644 app/Views/pt_form_file_upload_tab.php create mode 100644 app/Views/report_bds.php create mode 100644 app/Views/report_bds_filter.php create mode 100644 app/Views/vehicle_details.php create mode 100644 public/assets/images/login_bg.jpg diff --git a/app/Config/Autoload.php b/app/Config/Autoload.php index 33f1403b..6cdb37c7 100755 --- a/app/Config/Autoload.php +++ b/app/Config/Autoload.php @@ -99,5 +99,5 @@ class Autoload extends AutoloadConfig * @var string[] * @phpstan-var list */ - public $helpers = ['uuid','session','utility', 'form', 'url', 'oauth', 'fileupload', 'excel_import_export', 'file']; + public $helpers = ['uuid','session','utility', 'form', 'url', 'oauth', 'fileupload', 'excel_import_export', 'file', 'drive']; } diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f4eb5e87..4ebc3a17 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -278,6 +278,43 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->get("copy_insurer_templete/(:any)", "MasterController::copyInsurerTemplete/$1"); $routes->get("get_single_excel_template/(:any)", "MasterController::getSingleExcelTemplate/$1"); $routes->get("dublicate_template/(:any)", "MasterController::duplicateTemplate/$1"); + $routes->get("getBranchByClientID/(:any)", "ClientController::getBranchByClientID/$1"); + $routes->get("getPolicyDetailsByPolicyId/(:any)", "ClientController::getPolicyDetailsByPolicyId/$1"); + $routes->get("getClientAndBranchAndPolicy", "ClientController::getClientAndBranchAndPolicy"); + $routes->get("getCDAccNoByClientAndInsurer/(:any)", "ClientController::getCDAccNoByClientAndInsurer/$1"); + $routes->post("createClientWithMinimalData", "ClientController::createClientWithMinimalData"); + $routes->post("createVehicleWithMinimalData", "ClientController::createVehicleWithMinimalData"); + $routes->post("createClientBranchWithMinamalData", "ClientController::createClientBranchWithMinamalData"); + $routes->post("createClientPolicyWithMinimalData", "ClientController::createClientPolicyWithMinimalData"); + $routes->post("createCDAccountNumberUsingAjax", "MasterController::createCDAccountNumberUsingAjax"); + $routes->post("drive_file_upload", "PolicyTransactionController::uploadFile"); + $routes->post("updateInvoiceStatus", "PolicyTransactionController::updateInvoiceStatus"); + $routes->get("remove_co_share_data/(:any)", "PolicyTransactionController::removeCoShareData/$1"); + $routes->get("check_cost_center/(:any)", "ClientController::check_cost_center/$1"); + $routes->get("getPTCOShareCount/(:any)", "PolicyTransactionController::getPTCOShareCount/$1"); +}); + + +$routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) { + + $routes->group("inception", ["filter" => "authMVC"], function ($routes) { + $routes->get("list", "PolicyTransactionController::viewInception"); + $routes->post("create", "PolicyTransactionController::createInceptionPolicy"); + $routes->get("list/(:any)", "PolicyTransactionController::getInceptionDataForEdit/$1"); + $routes->get("remove/(:any)", "PolicyTransactionController::removeCDMaster/$1"); + }); + + $routes->group("endorsement", ["filter" => "authMVC"], function ($routes) { + $routes->get("list", "PolicyTransactionController::viewEndorsement"); + $routes->post("create", "PolicyTransactionController::createEndorsementPolicy"); + $routes->get("list/(:any)", "PolicyTransactionController::getEndorsementDataForEdit/$1"); + $routes->get("remove/(:any)", "PolicyTransactionController::removeCDMaster/$1"); + }); + + $routes->group("report", ["filter" => "authMVC"], function ($routes) { + $routes->get("list", "PolicyTransactionController::reportBDS"); + }); + }); $routes->cli('cli/processjob', 'JobWorker::processJob'); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 5439e64e..25c8170e 100644 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -2,6 +2,7 @@ namespace App\Controllers; use App\Helpers\DepositHelper; +use App\Helpers\MailHelper; use App\helpers\JWTToken; use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\RequestInterface; @@ -33,10 +34,9 @@ use App\Models\EmployeePolicyModel; use App\Models\NotificationModel; use App\Models\CDMasterModel; use App\Models\PolicyTypeModel; - - - - +use App\Models\PolicyTransactionModel; +use App\Models\PolicyTransactionStatusModel; +use App\Models\VehicleModel; class ClientController extends AdminController @@ -68,6 +68,10 @@ class ClientController extends AdminController protected $notificationModel; protected $CDMasterModel; protected $policyTypeModel; + protected $policyTransactionModel; + protected $policyTransactionStatusModel; + protected $vehicleModel; + public function __construct() @@ -99,6 +103,10 @@ class ClientController extends AdminController $this->notificationModel = new NotificationModel(); $this->CDMasterModel = new CDMasterModel(); $this->policyTypeModel = new PolicyTypeModel(); + $this->policyTransactionModel = new PolicyTransactionModel(); + $this->policyTransactionStatusModel = new PolicyTransactionStatusModel(); + $this->vehicleModel = new VehicleModel(); + @@ -108,43 +116,13 @@ class ClientController extends AdminController } public function Testing() //this function for only tsesting some logics not use for business logic - { - $results = $this->clientPolicyModel - ->select('id, policy_terms') - ->where('policy_terms IS NOT NULL') - ->where('policy_terms <>', '') - ->whereNotIn('policy_type_id', [1, 6, 7]) - ->orderBy('id', 'desc') - ->get() - ->getResultArray(); - - foreach ($results as $key => $result) { - $client_policy_id = $result['id']; - $policy_terms = json_decode($result['policy_terms'], true); // true to get associative array - - if (isset($policy_terms['family_floaters'])) { - $family_floaters = $policy_terms['family_floaters']; - $parents = $family_floaters['parents'] ?? 0; - $parents_in_law = $family_floaters['parents-in-law'] ?? 0; - - if ($parents == 1 && $parents_in_law == 1) { - $policy_terms['family_floaters']['parents'] = 0; - $policy_terms['family_floaters']['parents-in-law'] = 0; - $policy_terms['family_floaters']['either-parents-pil'] = 2; - + { + $params['mail'] = 'venkateshraman786@gmail.com'; + $params['subject'] = 'testing'; + $params['message'] = 'testing'; - $results[$key]['policy_terms'] = json_encode($policy_terms); - - // Update the policy_terms in the database - $this->clientPolicyModel - ->where('id', $client_policy_id) - ->set('policy_terms', $results[$key]['policy_terms']) - ->update(); - } - } - } - - dd($results); + $result = MailHelper::send_email($params); + dd($result); } public function index() @@ -289,6 +267,7 @@ class ClientController extends AdminController $data['policyGridData'] = $this->policyGridModel->findAll(); $data['policy_types'] = $this->policyTypeModel->findAll(); $data['policy_type'] = ['1'=>'Base Policy', '2' => 'SI Topup', '3' => 'Dependent Addon']; + $data['client_type'] = ['1'=>'Group', '2' => 'Retail']; // echo "
";
         // print_r($data); die;
@@ -412,6 +391,7 @@ class ClientController extends AdminController
         $editData['policyGridData'] = $this->policyGridModel->findAll();
         $editData['policy_types'] = $this->policyTypeModel->findAll();
         $editData['policy_type'] = ['1'=>'Base Policy', '2' => 'SI Topup', '3' => 'Dependent Addon'];
+        $editData['client_type'] = ['1'=>'Group', '2' => 'Retail'];
 
         // dd($editData['policy_types']);
 
@@ -451,6 +431,7 @@ class ClientController extends AdminController
         $data   = $this->request->getPost();
         $data['created_by'] = get_session_userid();
         $data['client_logo'] = $file_name;
+        $data['client_code'] = generate_client_code();
 
 
         if (!isset($data['is_download_btn'])) {
@@ -819,7 +800,6 @@ class ClientController extends AdminController
         $policy_type_id   = $this->request->getPost('policy_type_id');
         $client_branch_id = $this->request->getPost('client_branch_id');
         $client_id        = $this->request->getPost('client_id');
-        $policy_type_id   = $this->request->getPost('policy_type_id');
         $base_policy      = $this->request->getPost('base_policy');
 
 
@@ -843,7 +823,6 @@ class ClientController extends AdminController
         $data['client_id']         = $client_id;
         $data['tpa_branch_id']     = $tpaBranchId;
         $data['tpa_id']            = $tpaId;
-        // $data['policy_id']         = $this->request->getPost('policy_id');
         $data['policy_type_id']    = $this->request->getPost('policy_type_id');
 
         $data['no_of_lives']                        = $this->request->getPost('no_of_lives');
@@ -881,30 +860,6 @@ class ClientController extends AdminController
             }
         }
                     
-        $policy_terms =  $this->clientPolicyModel->where('id', $this->request->getPost('base_policy'))->first();
-
-        // if ($this->request->getPost('is_addon') == 2 || $this->request->getPost('is_addon') == 3) {
-
-        //     if ($this->request->getPost('is_addon') == 3) {
-        //         $policyTerm = $policy_terms['policy_terms'];
-        //         $decoded_policyTerm = json_decode($policyTerm, true);
-        //         $decoded_policyTerm['family_floater'] = 0;
-        //         $decoded_policyTerm['family_floaters']['self'] = 0;
-        //         $decoded_policyTerm['family_floaters']['spouse'] = 0;
-        //         $decoded_policyTerm['family_floaters']['childrens'] = 0;
-        //         $decoded_policyTerm['family_floaters']['parents'] = 0;
-        //         $decoded_policyTerm['family_floaters']['parents-in-law'] = 0;
-        //         $decoded_policyTerm['family_floaters']['either-parents-pil'] = 0;
-
-        //         $data['policy_terms'] =  json_encode($decoded_policyTerm);
-        //     } else {
-
-        //         if ($this->request->getPost('policy_type_id') != 3) {
-
-        //             $data['policy_terms'] =  $policy_terms['policy_terms'];
-        //         }
-        //     }
-        // } 
 
         $data['policy_start_date'] = change_date_format($this->request->getPost('policy_start_date'), 'd-m-Y', 'Y-m-d');
         $data['policy_end_date']   = change_date_format($this->request->getPost('policy_end_date'), 'd-m-Y', 'Y-m-d');
@@ -922,8 +877,41 @@ class ClientController extends AdminController
 
         $data['created_by']        = get_session_userid();
 
+        $policy_tranction_data = [
+
+            'issuer' => 2,
+            'client_id' => $this->request->getPost('client_id'),
+            'client_branch_id' => $this->request->getPost('client_branch_id'),
+            'insurer_id' => $insurerId,
+            'insurer_branch_id' => $insurerBranchId,
+            'issue_type' => 1,
+            'policy_no' => $this->request->getPost('policy_no'),
+            'cd_ac_no' => $this->request->getPost('cd_ac_no'),
+            'policy_issue_date' => date('Y-m-d'),
+            'policy_start_date' => change_date_format($this->request->getPost('policy_start_date'), 'd-m-Y', 'Y-m-d'),
+            'policy_end_date' => change_date_format($this->request->getPost('policy_end_date'), 'd-m-Y', 'Y-m-d'),
+            'action_type' => 'inception',
+            'status' => 'pending',
+            'created_by' => get_session_userid(),
+        ];
+
+
+
         $insert = $this->clientPolicyModel->insert($data);
         if($insert){
+            
+            $policy_tranction_data['client_policy_id'] = $insert;
+            $policy_tranction_data_insert = $this->policyTransactionModel->insert($data);
+            if($policy_tranction_data_insert){
+                $statusData = [
+                    'policy_tran_id' => $policy_tranction_data_insert,
+                    'status' => 'pending',
+                    'created_by' => get_session_userid(),
+                ];
+                $this->policyTransactionStatusModel->insert($statusData);
+            }
+
+
             $clientPoliceData =  $this->clientPolicyModel->getClientPolicyByClientId($this->request->getPost('client_id'));
             $clientPoliceData['role'] = get_role_id();
             return $this->respond(['status' => true,'code' => 200,'data' => $clientPoliceData, 'method' => 'CERATE', 'post_data' => $data], 200);
@@ -2236,7 +2224,8 @@ class ClientController extends AdminController
 
     }
 
-    public function fetchPolicyDataForPolicyType($client_policy_id){
+    public function fetchPolicyDataForPolicyType($client_policy_id)
+    {
 
         $client_policy_id = $this->request->getGet('client_policy_id');
         $policy_type = $this->request->getGet('policy_type');
@@ -3011,4 +3000,261 @@ class ClientController extends AdminController
         }    
     }
 
+    public function getBranchByClientID($client_id)
+    {
+        $branch_list = $this->clientBranchModel->where('client_id', $client_id)->where('is_active', 1)->findAll();
+        $policy_list = [];
+        foreach ($branch_list as $value) 
+        {
+            $policy_data = $this->clientPolicyModel
+                        ->select('client_policy.*, policy_type.policy_type')
+                        ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+                        ->where('client_policy.client_id', $value['client_id'])
+                        ->where('client_policy.client_branch_id', $value['id'])
+                        ->where('client_policy.is_active', 1)
+                        ->findAll();
+            $policy_list[$value['id']] = $policy_data;
+        }
+       
+        if($branch_list){
+            return $this->respond(['status' => true, 'data' => $branch_list, 'policy_data' => $policy_list], 200);
+        }else{
+            return $this->respond(['status' => false], 200);
+        }
+    }
+
+    public function getClientAndBranchAndPolicy()
+    {
+        $clients = $this->clientModel->where('is_active', 1)->findAll();
+        $vehicles = $this->vehicleModel
+        ->select('vehicle.*, clients.client_type')
+        ->join('clients', 'clients.id=vehicle.owner')
+        ->where('vehicle.is_active', 1)->findAll();
+        $clientIds = array_column($clients, 'id');
+    
+        // Fetch branches in a single query
+        $branches = $this->clientBranchModel
+            ->whereIn('client_id', $clientIds)
+            ->where('is_active', 1)
+            ->findAll();
+        
+        // Fetch policies in a single query
+        $policies = $this->clientPolicyModel
+            ->select('
+                    client_policy.*, 
+                    policy_type.policy_type,
+                    policy_type.ebp,
+                    policy_type.etp,
+                    policy_type.iep,
+                    policy_type.itp
+                ')
+            ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+            ->whereIn('client_policy.client_id', $clientIds)
+            ->where('client_policy.is_active', 1)
+            ->findAll();
+    
+        $branchList = [];
+        $policyList = [];
+        $policyListByClient = [];
+        $unitList = [];
+    
+        foreach ($branches as $branch) {
+            $branchList[$branch['client_id']][] = $branch;
+            $unitList[$branch['id']][] = json_decode($branch['units']);
+        }
+    
+        foreach ($policies as $policy) {
+            $policyList[$policy['client_branch_id']][] = $policy;
+            $policyListByClient[$policy['client_id']][] = $policy;
+            if (isset($policyCount[$policy['client_id']])) {
+                $policyCount[$policy['client_id']]++;
+            } else {
+                $policyCount[$policy['client_id']] = 1;
+            }
+        }
+        
+        foreach ($clients as &$client) {
+            $client['client_policy_count'] = $policyCount[$client['id']] ?? 0;
+        }
+    
+        if (!empty($branchList)) {
+            return $this->respond([
+                'status' => true, 
+                'client_data' => $clients, 
+                'vehicle_data' => $vehicles, 
+                'branch_data' => $branchList, 
+                'policy_data' => $policyList,
+                'policyListByClient' => $policyListByClient,
+                'unit_data' => $unitList,
+            ], 200);
+        } else {
+            return $this->respond(['status' => false], 200);
+        }
+    }
+    
+
+
+    public function getCDAccNoByClientAndInsurer($client, $insurer)
+    {
+        $cdmData = $this->CDMasterModel->where('client_id', $client)->where('insurer_id', $insurer)->findAll();
+
+        if($cdmData){
+            return $this->respond(['status' => true, 'data' => $cdmData], 200);
+        }else{
+            return $this->respond(['status' => false], 200);
+        }
+    }
+
+    public function createClientWithMinimalData()
+    {  
+        $postData = $this->request->getPost();
+        // print_r($postData); die;
+        $client_type = $postData['client_type'];
+        $client_data = [
+            'client_type' => $postData['client_type'],
+            'client_name' => $postData['client_name'],
+            'short_name' => $postData['short_name'],
+            'pan' => $postData['pan'],
+            'client_code' => generate_client_code(),
+        ];
+    
+        // Add additional fields if client type is 2
+        if($client_type == 2) {
+            $client_data = array_merge($client_data, [
+                'dob' => $postData['dob'],
+                'aadhar' => $postData['aadhar'],
+                'phone' => $postData['phone'],
+                'email' => $postData['email'],
+            ]);
+        } else {
+            $client_data['entity_type_id'] = $postData['entity_type_id'];
+        }
+    
+        // Insert client data
+        $client_insert = $this->clientModel->insert($client_data);
+    
+        if(!$client_insert) {
+            return $this->respond(['status' => false, 'message' => 'Failed to create client'], 200);
+        }
+    
+        // Additional logic for non-individual clients (client_type != 2)
+        if($client_type != 2) {
+            $unit = $postData['short_name'] . '-' . $postData['branch_code'];
+            $branch_data = [
+                'client_id' => $client_insert,
+                'branch_name' => $postData['branch_name'],
+                'branch_code' => $postData['branch_code'],
+                'gst' => $postData['gst'],
+                'units' => $unit,
+            ];
+            
+            $branch_insert = $this->clientBranchModel->insert($branch_data);
+            if ($branch_insert) {
+                $contact_data = [
+                    'ref_id' => $branch_insert,
+                    'contact_type' => 'client',
+                    'name' => $postData['name'],
+                    'mobile' => $postData['mobile'],
+                ];
+                $this->levelContactModel->insert($contact_data);
+            }
+        }
+    
+        return $this->respond([
+            'status' => true, 
+            'client_id' => $client_insert, 
+            'branch_id' => $branch_insert ?? null, 
+            'message' => 'Client created successfully'
+        ], 200);
+    }
+    
+    public function createVehicleWithMinimalData()
+    {
+        $data = $this->request->getPost();
+
+        $vehicle_insert = $this->vehicleModel->insert($data);
+
+        if($vehicle_insert){
+            $vehicles = $this->vehicleModel->where('is_active', 1)->findAll();
+            return $this->respond([
+                    'status' => true, 
+                    'vehicle_id' => $vehicle_insert, 
+                    'owner_id' => $data['owner'], 
+                    'owner_branch_id' => $data['branch_id'], 
+                    'owner_type' => $data['Owner_type'], 
+                    'vehicles' => $vehicles, 
+                    'message' => 'Vehicle created successfully
+                '], 200);
+        }else{
+            return $this->respond(['status' => false, 'message' => 'Failed to created vehicle'], 200);
+        }
+    }
+
+    public function createClientPolicyWithMinimalData()
+    {
+        $data = $this->request->getPost();
+
+        $insurerValue  = (string) $this->request->getPost('insurer');
+        list($insurerBranchId, $insurerId) = explode('-', $insurerValue);
+        
+        $data['insurer_branch_id'] = $insurerBranchId;
+        $data['insurer_id']        = $insurerId;
+        $data['policy_status']        = 1;
+        $data['is_addon']        = 1;
+        $data['gst']        = 18;
+        $data['created_by']        = get_session_userid();
+        $data['policy_start_date'] = change_date_format($this->request->getPost('policy_start_date'), 'd-m-Y', 'Y-m-d');
+        $data['policy_end_date']   = change_date_format($this->request->getPost('policy_end_date'), 'd-m-Y', 'Y-m-d');
+
+
+        $insert = $this->clientPolicyModel->insert($data);
+
+        if($insert){
+
+            $policies = $this->clientPolicyModel
+                ->select('client_policy.*, policy_type.policy_type')
+                ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+                ->where('client_policy.client_id', $data['client_id'])
+                ->where('client_policy.client_branch_id', $data['client_branch_id'])
+                ->where('client_policy.is_active', 1)
+                ->findAll();
+
+            return $this->respond(['status' => true, 'data' => $policies, 'client_policy_id' => $insert, 'message' => 'Client policy created successfully'], 200);
+        }else{
+            return $this->respond(['status' => false, 'message' => 'Failed to created client policy'], 200);
+        }
+    }
+
+    public function getPolicyDetailsByPolicyId($id)
+    {   
+        $policies = $this->clientPolicyModel
+            ->select('client_policy.*, policy_type.policy_type')
+            ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+            ->where('client_policy.id', $id)
+            ->where('client_policy.is_active', 1)
+            ->findAll();
+
+        if($policies){
+            return $this->respond(['status' => true, 'data' => $policies, 'message' => 'Client policy created successfully'], 200);
+        }else{
+            return $this->respond(['status' => false, 'message' => 'Failed to created client policy'], 200);
+        }
+    }
+
+    public function check_cost_center($cost_center)
+    {
+        $uniqueAC = $this->clientModel
+            ->where('cost_center', $cost_center)
+            ->where('is_active', 1)
+            ->findAll();
+
+        if($uniqueAC != null){
+            return $this->respond(['status' => true, 'message' => 'The Cost Center is Already Exist', 'code' => 200], 200);
+        }else{
+            return $this->respond(['status' => false, 'code' => 404], 200);
+        }
+    }
+
+
+
 }
\ No newline at end of file
diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php
index 842dd047..2dfd5dc7 100644
--- a/app/Controllers/MasterController.php
+++ b/app/Controllers/MasterController.php
@@ -40,7 +40,7 @@ class MasterController extends AdminController
     protected $userModel;
     protected $insurerBranchModel;
     protected $insurerKYCDocsModel;
-    protected $insurerPolicyModel;
+    protected $clientPolicyModel;
     protected $insurerRMModel;
     protected $kycDocsModel;
     protected $kycEntityTypeModel;
@@ -66,7 +66,7 @@ class MasterController extends AdminController
         $this->userModel          = new UserModel();
         // $this->insurerBranchModel  = new ClientBranchModel();
         $this->insurerKYCDocsModel = new ClientKYCDocsModel();
-        $this->insurerPolicyModel  = new ClientPolicyModel();
+        $this->clientPolicyModel  = new ClientPolicyModel();
         $this->insurerRMModel      = new ClientRMModel();
         $this->insurerBranchModel = new InsurerBranchModel();
         $this->insurerModel       = new InsurerModel();
@@ -1343,6 +1343,44 @@ class MasterController extends AdminController
         }
     }
 
+    public function createCDAccountNumberUsingAjax()
+    {
+        $data = $this->request->getPost();
+        $date = (string) $this->request->getPost('opening_date');
+        $data['opening_date'] = date('Y-m-d', strtotime($date));
+
+
+        // array with data for CD Traction table
+        $cd_tranction_data = [
+            'amount' => $data['opening_bal'],
+            'sub_type_id' => 7,
+            'client_id' => $data['client_id'],
+            'client_policy_id' => null,
+            'cd_ac_no' => $data['cd_ac_no'],
+            'endorsement_no' => null,
+            'insurer_id' => (int) $data['insurer_id'],
+            'description' => 'opening Amount',
+            'transaction_type' => 'Credit',
+            'event_name' => null,
+            'updated_by' => 1,
+        ];
+
+        $loggedInUserID = get_session_userid();
+    
+        $insert = $this->CDMasterModel->insert($data);
+
+        if ($insert) {
+
+            //for CD Tranction Table
+            $response = DepositHelper::saveDeposit($cd_tranction_data, $loggedInUserID);
+            
+            $cd_data = $this->CDMasterModel->where('client_id', $data['client_id'])->where('insurer_id', $data['insurer_id'])->findAll();
+
+            return $this->respond(['status' => true, 'data' => $cd_data, 'message' => 'CD Account number created successfully'], 200);
+        }else{
+            return $this->respond(['status' => false, 'message' => 'Failed to created CD Account number'], 200);
+        }
+    }
 
 
     //excel export template 
diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php
new file mode 100644
index 00000000..7c9c46e7
--- /dev/null
+++ b/app/Controllers/PolicyTransactionController.php
@@ -0,0 +1,970 @@
+myLogger = \Config\Services::mylogger();
+
+        $this->clientModel                   = new ClientModel();
+        $this->clientBranchModel             = new ClientBranchModel();
+        $this->policyTypeModel               = new PolicyTypeModel();
+        $this->clientDepositModel            = new ClientDepositModel();
+        $this->clientPolicyModel             = new ClientPolicyModel();
+        $this->insurerBranchModel            = new InsurerBranchModel();
+        $this->insurerModel                  = new InsurerModel();
+        $this->policyTransactionModel        = new PolicyTransactionModel();
+        $this->policyTransactionStatusModel  = new PolicyTransactionStatusModel();
+        $this->kycEntityTypeModel            = new KYCEntityTypeModel();
+        $this->clientKYCDocsModel            = new ClientKYCDocsModel();
+        $this->tpaBranchModel                = new TPABranchModel();
+        $this->tpaModel                      = new TPAModel();
+        $this->PTFileModel                   = new PTFileModel();
+        $this->PTCOShareDetailsModel         = new PTCOShareDetailsModel();
+        $this->employeeModel                 = new EmployeeModel();
+        $this->userTeamsModel                = new UserTeamsModel();
+        $this->userModel                     = new UserModel();
+        $this->employeePolicyModel                     = new EmployeePolicyModel();
+    }
+
+    // Policy Transaction Inception
+    public function viewInception()
+    {   
+        $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+        $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
+        $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
+        // $data['policy_status'] = [
+        //     'pending' => 'Pending',
+        //     'exported_to_insurer' => 'Exported to Insurer',
+        //     'imported_from_insurer' => 'Imported from Insurer',
+        //     'exported_to_tpa' => 'Exported to TPA',
+        //     'imported_from_tpa' => 'Imported from TPA',
+        //     'completed' => 'Completed'
+        // ];   
+        $data['policy_status'] = [
+            'under_process' => 'Under Process',
+            'client_pending' => 'Client Pending',
+            'insurer_pending' => 'Insurer Pending',
+            'co_insurer_pending' => 'Co-Insurer Pending',
+            'tpa_pending' => 'TPA Pending',
+            'validated' => 'Validated',
+            'cancelled' => 'Cancelled',
+            'instalment_pending' => 'Instalment Pending',
+            'completed' => 'Completed',
+        ];
+        $data['invoice_status_array'] = [
+            'yet_to_generate' => 'Pending',
+            'generated' => 'Generated',
+            'send' => 'Sent',
+            'recived' => 'Payment Received',
+        ];
+        $data['vehicle_type'] = [
+            'two_wheeler' => 'Two Wheeler',
+            'four_wheeler' => 'Four Wheeler',
+            'truck' => 'Truck',
+            'bus' => 'Bus',
+            'van' => 'Van',
+            'suv' => 'SUV',
+            'motorcycle' => 'Motorcycle',
+            'bicycle' => 'Bicycle'
+        ];
+        $data['vehicle_des'] = [
+            'commercial' => 'Commercial',
+            'private' => 'Private',
+        ];
+        
+        $data['inception_data_list'] = $this->policyTransactionModel
+            ->select('
+                policy_transaction.*, 
+                clients.short_name AS client_short_name,
+                clients.client_code,
+                clients.client_type,
+                clients.client_name,
+                client_branch.branch_name AS client_branch_name,
+                insurers.name AS insurer_name,
+                policy_type.policy_type,
+                pt_co_share_details.agreed_amt AS amount,
+                pt_co_share_details.bp_amt AS bp,
+                pt_co_share_details.tp_amt AS tp
+            ')
+            ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+            ->join('clients', 'clients.id = policy_transaction.client_id', 'left')
+            ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+            ->join('insurers', 'policy_transaction.insurer_id = insurers.id', 'left')
+            ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+            ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
+            ->where('policy_transaction.is_active', 1)
+            ->where('policy_transaction.action_type', 'inception')
+            ->orderBy('policy_transaction.id', 'desc')
+            ->findAll();
+
+        $data['client'] = $this->clientModel->where('is_active', 1)->findAll();
+        $data['policy_type'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+        $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+        $data['entity']  = $this->kycEntityTypeModel->where('is_active', 1)->findAll();
+        $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+        $data['insurer_branch']      = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames();
+        $data['tpa']           = $this->tpaBranchModel ->getTpaBranchesWithTpaNames();
+        $data['salse_team'] = $this->userModel
+                    ->select('user_profiles.*')
+                    ->join('user_teams', 'user_profiles.id = user_teams.user_id')
+                    ->where('user_teams.team_id', 5)
+                    ->where('user_teams.is_active', 1)
+                    ->where('user_profiles.is_active', 1)
+                    ->findAll();
+
+        $data['ACM'] = $this->userModel
+                    ->where('user_profiles.role', 3)
+                    ->where('user_profiles.is_active', 1)
+                    ->findAll();
+
+        $this->loadLayout('policy_transaction_inception_list',  $data);
+    }
+
+    // policy Transaction Create function start
+    public function createInceptionPolicy()
+    {
+        // print_r($this->request->getPost()); die;
+        $id = $this->request->getPost('id');
+        $data = $this->preparePolicyData();
+        // print_r($this->request->getPost()); die;
+
+    
+        if (!$id) {
+            return $this->insertInceptionPolicy($data);
+        } else {
+            return $this->updateInceptionPolicy($id, $data);
+        }
+    }
+    
+    private function preparePolicyData()
+    {
+        $data = $this->request->getPost();
+    
+        // print_r($data); die;
+
+        // Format dates
+        $data['policy_issue_date'] = date('Y-m-d', strtotime($data['policy_issue_date'])) ?? null;
+        $data['policy_start_date'] = date('Y-m-d', strtotime($data['policy_start_date'])) ?? null;
+        $data['policy_end_date'] = date('Y-m-d', strtotime($data['policy_end_date'])) ?? null;
+        $data['renewal_date'] = date('Y-m-d', strtotime($data['renewal_date'])) ?? null;
+        $data['rollover_date'] = date('Y-m-d', strtotime($data['rollover_date'])) ?? null;
+    
+        // Separate Insurer and TPA Branch IDs and IDs
+        if(isset($data['insurer_id']) && !empty($data['insurer_id'])){
+            list($data['insurer_branch_id'], $data['insurer_id']) = explode('-', $data['insurer_id']);
+            if ($data['tpa']) {
+                list($data['tpa_branch_id'], $data['tpa_id']) = explode('-', $data['tpa']);
+            }
+        }
+    
+        $data['tsi'] = generate_tsi_code($data['issue_type']);
+        $data['action_type'] = 'inception';
+
+        if (!isset($data['co_share'])) {
+            $data['co_share'] = 0;
+        } elseif ($data['co_share']) {
+            $data['co_share'] = 1;
+        }
+    
+        if (!isset($data['bro_payable_by'])) {
+            $data['bro_payable_by'] = 0;
+        } elseif ($data['bro_payable_by']) {
+            $data['bro_payable_by'] = 1;
+        }
+    
+        if (!isset($data['same_as_proposer'])) {
+            $data['same_as_proposer'] = 0;
+        } elseif ($data['same_as_proposer']) {
+            $data['same_as_proposer'] = 1;
+        }
+    
+        // Determine $is_addon value
+        $data['is_addon'] = in_array($data['policy_type_id'], [1, 2, 6, 7]) ? 1 :
+                            (in_array($data['policy_type_id'], [4, 5]) ? 2 : ($data['policy_type_id'] == 3 && $data['base_policy'] ? 3 : 1));
+    
+        return $data;
+    }
+    
+    private function insertInceptionPolicy($data)
+    {   
+        // print_r($data); die;
+
+        $insert = $this->policyTransactionModel->insert($data);
+        if ($insert) {
+            $this->insertTransactionStatus($insert, $data['status'], 1);
+            $emp_data = $this->processInsertIndividualMemberInEmpTable($data);
+
+            if(isset($data['follow_insurer_id']) && !empty($data['follow_insurer_id'][0])){
+
+                $pt_co_share_details = $this->insertOrUpdateCoShareDetails($data, $insert);
+
+                $client_policy_insert_data = $this->prepareClientPolicyInsertData($data);
+                $client_policy_id = $this->clientPolicyModel->insert($client_policy_insert_data);
+                $this->policyTransactionModel->update($insert, ['client_policy_id' => $client_policy_id]);
+                $emp_policy_insert = $this->InsertIndividualEmpPolicyTable($emp_data, $client_policy_id);
+
+                if ($data['status'] == 'completed') {
+                    $this->processCompletedStatus($data, $client_policy_id, $data['insurer_id']);
+                }
+
+                $data['pt_co_share_details'] = $this->PTCOShareDetailsModel->where('pt_id', $insert)->where('is_active', 1)->findAll();
+            }
+    
+            return $this->respondSuccess($insert, "Policy transaction created successfully", $data);
+        }
+        return $this->respondError("Failed to create policy transaction");
+    }
+    
+    private function updateInceptionPolicy($id, $data)
+    {   
+        if ($this->policyTransactionModel->update($id, $data)) {
+    
+            $this->insertTransactionStatus($id, $data['status'], 1);
+            $emp_data = $this->processInsertIndividualMemberInEmpTable($data);
+    
+            if (isset($data['follow_insurer_id']) && !empty($data['follow_insurer_id'][0])) {
+    
+                $this->insertOrUpdateCoShareDetails($data, $id);
+    
+                if (empty($data['client_policy_id']) || $data['client_policy_id'] == 0) {
+    
+                    $client_policy_insert_data = $this->prepareClientPolicyInsertData($data);
+                    // print_r($client_policy_insert_data); die;
+                    $client_policy_id = $this->clientPolicyModel->insert($client_policy_insert_data);
+    
+                    $this->policyTransactionModel->update($id, ['client_policy_id' => $client_policy_id]);
+    
+                    $this->InsertIndividualEmpPolicyTable($emp_data, $client_policy_id);
+    
+                } else {
+                    if (isset($data['emp_policy_id']) && !empty($data['emp_policy_id'][0])) {
+                        $this->InsertIndividualEmpPolicyTable($emp_data, $data['client_policy_id']);
+                    }
+                }
+    
+                if ($data['status'] == 'completed') {
+                    $this->processCompletedStatus($data, $data['client_policy_id'], $data['insurer_id']);
+                }
+    
+                $data['pt_co_share_details'] = $this->PTCOShareDetailsModel->where('pt_id', $id)->where('is_active', 1)->findAll();
+            }
+    
+            return $this->respondSuccess($id, "Policy transaction updated successfully", $data);
+        }
+    
+        return $this->respondError("Failed to update policy transaction");
+    }
+    
+
+    private function insertOrUpdateCoShareDetails($data, $pt_id)
+    {   
+        // Prepare data for insertion and updating
+        $coShareDetails = [];
+        
+        // print_r($data); 
+        // die;
+
+        foreach ($data['follow_insurer_id'] as $index => $insurer) {
+            // Separate the insurer and insurer branch
+            list($insurer_branch_id, $insurer_id) = explode('-', $insurer);
+            
+            // Prepare each co-share detail entry
+            $coShareDetails[] = [
+                'pt_id' => $pt_id,
+                'insurer_id' => $insurer_id ?? 0,
+                'insurer_branch_id' => $insurer_branch_id ?? 0,
+                'co_share_type' => isset($data['co_share_type'][$index]) ? 2 : 1,
+                'co_share_per' => $data['co_share_per'][$index] ?? 0,
+                'bp_amt' => $data['base_premium'][$index] ?? 0,
+                'bp_gst_amt' => $data['gst_amount'][$index] ?? 0,
+                'bp_igst' => $data['igst'][$index] ?? 0,
+                'bp_sgst' => $data['sgst'][$index] ?? 0,
+                'bp_cgst' => $data['cgst'][$index] ?? 0,
+                'tp_amt' => $data['tp_ter_premium'][$index] ?? 0,
+                'tep_amt' => $data['tp_ter_premium'][$index] ?? 0,
+                'agreed_amt' => $data['agreed_amount'][$index] ?? 0,
+                'agreed_bp_per' => $data['agreed_bp'][$index] ?? 0,
+                'agreed_tp_per' => $data['agreed_tp_ter'][$index] ?? 0,
+                'agreed_tep_per' => $data['agreed_tp_ter'][$index] ?? 0,
+                'standerd_bp_per' => $data['standard_bp'][$index] ?? 0,
+                'standerd_tp_per' => $data['standard_tp'][$index] ?? 0,
+                'standerd_tep_per' => $data['standard_tep'][$index] ?? 0,
+                'actual_bp_amt' => $data['actual_bp_amt'][$index] ?? 0,
+                'actual_tp_amt' => $data['actual_tp_amt'][$index] ?? 0,
+                'actual_tep_amt' => $data['actual_tep_amt'][$index] ?? 0,
+                'actual_bp_per' => $data['actual_bp_per'][$index] ?? 0,
+                'actual_tp_per' => $data['actual_tp_per'][$index] ?? 0,
+                'actual_tep_per' => $data['actual_tep_per'][$index] ?? 0,
+                'exp_amt' => $data['exp_amt'][$index] ?? 0,
+                'amount' => $data['total'][$index] ?? 0,
+                'stamp_duty' => $data['stamp_duty'][$index] ?? 0,
+                'cop_amt' => $data['co_premium'][$index] ?? 0,
+                'variance' => $data['variance'][$index] ?? 0,
+                'remark' => $data['remark'][$index] ?? null,
+                'created_by' => get_session_userid() ?? null,
+                'updated_by' => get_session_userid() ?? null,
+                'id' => $data['co_share_id'][$index] ?? null, // Assuming this is the ID to identify existing records
+            ];
+        }
+
+        // print_r($coShareDetails); die;
+    
+        // Separate data into insert and update batches
+        $insertData = array_filter($coShareDetails, function($detail) {
+            return empty($detail['id']); // Only insert new records
+        });
+    
+        $updateData = array_filter($coShareDetails, function($detail) {
+            return !empty($detail['id']); // Only update existing records
+        });
+    
+        // Insert new records
+        if (!empty($insertData)) {
+            $this->PTCOShareDetailsModel->insertBatch($insertData);
+        }
+    
+        // Update existing records
+        if (!empty($updateData)) {
+            $this->PTCOShareDetailsModel->updateBatch($updateData, 'id'); // Assuming 'id' is the unique identifier
+        }
+        
+        // print_r($this->PTCOShareDetailsModel->getLastQuery()); die;
+
+        return true;
+    }
+    
+    private function prepareClientPolicyInsertData($data)
+    {
+        return [
+            'client_id' => $data['client_id'] ?? null,
+            'insurer_id' => $data['insurer_id'] ?? null,
+            'insurer_branch_id' => $data['insurer_branch_id'] ?? null,
+            'tpa_id' => $data['tpa_id'] ?? null,
+            'tpa_branch_id' => $data['tpa_branch_id'] ?? null,
+            'policy_type_id' => $data['policy_type_id'] ?? null,
+            'policy_start_date' => $data['policy_start_date'] ?? null,
+            'policy_end_date' => $data['policy_end_date'] ?? null ,
+            'policy_status' => 1,
+            'is_addon' => $data['is_addon'] ?? null,
+            'base_policy' => $data['base_policy'] ?? 0,
+            'created_by' => get_session_userid(),
+            'policy_no' => $data['policy_no'] ?? null,
+            'client_branch_id' => $data['client_branch_id'] ?? 0,
+            'cd_ac_no' => $data['cd_ac_no'] ?? null,
+            'gst' => 18,
+        ];
+    }
+    
+    private function insertTransactionStatus($policyTranId, $status, $statusType)
+    {
+        $statusData = [
+            'policy_tran_id' => $policyTranId,
+            'status' => $status,
+            'status_type' => $statusType,
+            'created_by' => get_session_userid(),
+        ];
+        $this->policyTransactionStatusModel->insert($statusData);
+    }
+    
+    private function processCompletedStatus($data, $client_policy_id, $insurer_id)
+    {
+        $totalAmount = (int)$data['total'][0] ?? 0;
+        $description = 'The following amount of Rs. ' . $totalAmount . '/- has been debited for the ' . $data['emp_count'] . ' employees at Inception.';
+    
+        $cdTransactionData = [
+            'amount' => $totalAmount,
+            'sub_type_id' => 4,
+            'client_id' => $data['client_id'],
+            'client_policy_id' => $client_policy_id ?? 0,
+            'endorsement_no' => null,
+            'cd_ac_no' => $data['cd_ac_no'] ?? null,
+            'insurer_id' => $insurer_id,
+            'description' => $description,
+            'transaction_type' => 'Debit',
+            'updated_by' => get_session_userid(),
+            'event_name' => 'inception',
+            'is_active' => 1,
+        ];
+    
+        DepositHelper::saveDeposit($cdTransactionData, get_session_userid());
+    }
+
+    private function processInsertIndividualMemberInEmpTable($data)
+    {   
+        // print_r($data);
+        if(isset($data['family_name']) && !empty($data['family_name'])){
+
+            $emp_data = [];
+            $emp_ids = [];
+            $random_code = generateRandomCode(); // Generate random code once
+            
+            foreach ($data['family_name'] as $index => $val) {
+            
+                // Determine the gender based on the relationship
+                $relationship = $data['relationship'][$index] ?? '';
+                $gender = 'M'; // Default to Male
+                
+                // Set gender based on relationship
+                if (in_array($relationship, ['Mother', 'Daughter', 'Mother in law', 'Spouse'])) {
+                    $gender = 'F';
+                }
+            
+                $emp_data[] = [
+                    'client_id' => $data['client_id'] ?? 0,
+                    'client_branch_id' => $data['client_branch_id'] ?? 0,
+                    'name' => $val,
+                    'relationship' => $relationship,
+                    'gender' => $gender, 
+                    'emp_status' => 'active', 
+                    'created_by' => get_session_userid(),
+                    'emp_code' => $random_code, // Use the same random code for all
+                    'id' => $data['emp_id'][$index] ?? null
+                ];
+
+                $emp_ids[] = $data['emp_id'][$index] ?? 0;
+            }
+            
+            
+            // print_r($emp_data); die;
+            
+            // Separate data into insert and update batches
+            $insertData = array_filter($emp_data, function($detail) {
+                return empty($detail['id']); // Only insert new records
+            });
+        
+            $updateData = array_filter($emp_data, function($detail) {
+                return !empty($detail['id']); // Only update existing records
+            });
+        
+            // Insert new records
+            if (!empty($insertData)) {
+                $this->employeeModel->insertBatch($insertData);
+            }
+        
+            // Update existing records
+            if (!empty($updateData)) {
+                $this->employeeModel->updateBatch($updateData, 'id'); // Assuming 'id' is the unique identifier
+            }
+            
+            return $emp_ids;
+
+        }
+    }
+
+    private function InsertIndividualEmpPolicyTable($emp_ids, $client_policy_id)
+    {   
+        if(!empty($emp_ids)){
+
+            $emp_policy_data = [];
+            
+            foreach ($emp_ids as $index => $emp_id) {
+
+                $emp_policy_data[] = [
+                    'employee_id' => $emp_id ?? 0,
+                    'client_policy_id' => $client_policy_id ?? 0,
+                    'created_by' => get_session_userid(),
+                    'status' => 'active', 
+                ];
+            }
+            
+            print_r($emp_policy_data); die;
+            
+            // Insert new records
+            if (!empty($emp_policy_data)) {
+                $this->employeePolicyModel->insertBatch($emp_policy_data);
+            }
+
+
+            return true;
+
+        }
+    }
+    
+    private function respondSuccess($id, $message, $data)
+    {
+        return $this->respond(['status' => true, 'pt_id' => $id, 'message' => $message, 'data' =>$data], 200);
+    }
+    
+    private function respondError($message)
+    {
+        return $this->respond(['status' => false, 'message' => $message], 200);
+    }
+    // policy Transaction Create function End
+
+    // Get the Single Inception Tranction data for edit
+    public function getInceptionDataForEdit($id)
+    {
+        $data = $this->policyTransactionModel
+                ->select('
+                        policy_transaction.*, 
+                        clients.short_name as client_short_name, 
+                        clients.client_type, 
+                        policy_type.policy_type,
+                        client_policy.tpa_id as master_tpa_id,
+                        client_policy.tpa_branch_id as master_tpa_branch_id,
+                        client_policy.policy_type_id as master_policy_type_id,
+                        client_policy.is_addon,
+                        client_policy.base_policy,
+                    ')
+                ->join('clients', 'clients.id = policy_transaction.client_id')
+                ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+                ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
+                ->where('policy_transaction.id', $id)
+                ->first();
+
+        $data['policy_issue_date'] = !empty($data['policy_issue_date']) ? date('d-m-Y', strtotime($data['policy_issue_date'])) : null;
+        $data['policy_start_date'] = !empty($data['policy_start_date']) ? date('d-m-Y', strtotime($data['policy_start_date'])) : null;
+        $data['policy_end_date'] = !empty($data['policy_end_date']) ? date('d-m-Y', strtotime($data['policy_end_date'])) : null;
+        $data['renewal_date'] = !empty($data['renewal_date']) ? date('d-m-Y', strtotime($data['renewal_date'])) : null;
+        $data['rollover_date'] = !empty($data['rollover_date']) ? date('d-m-Y', strtotime($data['rollover_date'])) : null;
+        $data['created_at'] = !empty($data['created_at']) ? date('d-m-Y h:i:s A', strtotime($data['created_at'])) : null;
+        $data['updated_at'] = !empty($data['updated_at']) ? date('d-m-Y h:i:s A', strtotime($data['updated_at'])) : null;
+                
+        // print_r($data); die;
+
+        $data['renewal_policy'] = $this->clientPolicyModel
+            ->select('client_policy.*, policy_type.policy_type')
+            ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+            ->where('client_policy.client_id', $data['client_id'])
+            ->where('client_policy.client_branch_id', $data['client_branch_id'])
+            ->where('client_policy.is_active', 1)
+            ->findAll();
+
+        $data['base_policy_data'] = $this->clientPolicyModel
+            ->select('client_policy.*, policy_type.policy_type')
+            ->join('policy_type', 'policy_type.id = client_policy.policy_type_id')
+            ->where('client_policy.client_id', $data['client_id'])
+            ->where('client_policy.client_branch_id', $data['client_branch_id'])
+            ->where('client_policy.policy_type_id', 2)
+            ->where('client_policy.is_active', 1)
+            ->findAll();
+
+        $data['pt_files'] = $this->PTFileModel->where('pt_id', $id)->where('is_active', 1)->findAll();
+        $data['pt_co_share_details'] = $this->PTCOShareDetailsModel->where('pt_id', $id)->where('is_active', 1)->findAll();
+        $data['emp_data'] = $this->employeeModel
+                        ->select('employees.*, employee_polices.id as emp_policy_id')
+                        ->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left')
+                        ->where('employees.client_id', $data['client_id'])
+                        ->where('employees.is_active', 1)->findAll();
+
+        // print_r( $data['pt_co_share_details']); die;
+
+        if($data){
+            return $this->respond(['status' => true, 'data' => $data], 200);
+        }else{
+            return $this->respond(['status' => false], 200);
+        }
+
+    }
+
+    //------------------------------------------------------------------------------------------------
+
+    // Policy Transaction Endorsement
+    public function viewEndorsement()
+    {   
+        $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+        $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
+        $data['policy_status'] = [
+            'under_process' => 'Under Process',
+            'client_pending' => 'Client Pending',
+            'insurer_pending' => 'Insurer Pending',
+            'co_insurer_pending' => 'Co-Insurer Pending',
+            'tpa_pending' => 'TPA Pending',
+            'validated' => 'Validated',
+            'cancelled' => 'Cancelled',
+            'instalment_pending' => 'Instalment Pending',
+            'completed' => 'Completed',
+        ];
+
+        $data['invoice_status'] = [
+            'yet_to_generate' => 'Pending',
+            'generated' => 'Generated',
+            'send' => 'Sent',
+            'recived' => 'Payment Received',
+        ];
+
+        $data['action_type'] = [
+            'addition' => 'Addition',
+            'deletion' => 'Deletion',
+            'addition_deletion' => 'Addition & Deletion',
+            'si_enhancement' => 'SI Enhancement',
+            'combo_a_d_si' => 'Combo A, D & SI',
+            'correction' => 'Correction',
+            'baby_addition' => 'Baby Addition',
+            'policy_instalment' => 'Policy Instalment',
+            'addition_inception' => 'Addition-Inception',
+            'bds_correction' => 'BDS Correction',
+            'policy_correction' => 'Policy Correction',
+            'policy_cancellation' => 'Policy Cancellation',
+        ];
+
+        
+        $data['endorsement_data_list'] = $this->policyTransactionModel
+            ->select('
+                        policy_transaction.*, 
+                        clients.short_name as client_short_name,
+                        clients.client_code,
+                        client_branch.branch_name as client_branch_name,
+                        insurers.name as insurer_name,
+                        policy_type.policy_type 
+                    ')
+            ->join('clients', 'policy_transaction.client_id = clients.id', 'left')
+            ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+            ->join('insurers', 'policy_transaction.insurer_id = insurers.id','left')
+            ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+            ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
+            ->where('policy_transaction.is_active', 1)
+            ->where('policy_transaction.action_type !=', 'inception')
+            ->orderBy('policy_transaction.id', 'desc')
+            ->findAll(); 
+
+        $data['client'] = $this->clientModel->where('is_active', 1)->findAll();
+        $data['policy_type'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+
+        // $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+        // $data['tpa']           = $this->tpaModel->where('is_active', 1)->findAll();
+        $data['insurer_branch']      = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames();
+        $data['tpa']           = $this->tpaBranchModel ->getTpaBranchesWithTpaNames();
+
+
+        $this->loadLayout('policy_transaction_endorsement_list', $data);
+    }
+
+
+    public function createEndorsementPolicy()
+    {
+        $id = $this->request->getPost('id');
+        $data = $this->preparePolicyTransactionData();
+        
+        if (!$id) {
+            return $this->insertEndorsementTransaction($data);
+        } else {
+            return $this->updateEndorsementTransaction($id, $data);
+        }
+    }
+
+    private function preparePolicyTransactionData()
+    {
+        $data = $this->request->getPost();
+        // print_r($data);
+
+        $data_received_date = (string)$this->request->getPost('data_received_date');
+        $closure_date = (string)$this->request->getPost('closure_date');
+        $data['data_received_date'] = date('Y-m-d', strtotime($data_received_date));
+        $data['closure_date'] = date('Y-m-d', strtotime($closure_date));
+
+        // Separate Insurer and TPA Branch IDs and IDs
+        if(isset($data['insurer_id']) && !empty($data['insurer_id'])){
+            list($data['insurer_branch_id'], $data['insurer_id']) = explode('-', $data['insurer_id']);
+            if ($data['tpa']) {
+                list($data['tpa_branch_id'], $data['tpa_id']) = explode('-', $data['tpa']);
+            }
+        }
+
+        $issue_type = $this->policyTransactionModel
+                        ->where('action_type', 'inception')
+                        ->where('client_id', $this->request->getPost('client_id'))
+                        ->where('client_branch_id', $this->request->getPost('client_branch_id'))
+                        ->first();
+        $data['tsi'] = generate_tsi_code($issue_type['issue_type'] ?? 1);
+
+        // print_r($data); die;
+
+        return $data;
+    }
+
+    private function insertEndorsementTransaction($data)
+    {
+        $insert = $this->policyTransactionModel->insert($data);
+
+        if ($insert) {
+            $this->insertTransactionStatus($insert, $data['status'], 1);
+            $this->handleCompletedStatus($data, $insert);
+            $this->insertOrUpdateCoShareDetails($data, $insert);
+
+
+            return $this->respond(['status' => true, 'message' => 'Endorsement transaction created successfully'], 200);
+        }
+
+        return $this->respond(['status' => false, 'message' => 'Endorsement transaction creation failed'], 400);
+    }
+
+    private function updateEndorsementTransaction($id, $data)
+    {
+        $update = $this->policyTransactionModel->where('id', $id)->set($data)->update();
+
+        if ($update) {
+            $this->insertTransactionStatus($id, $data['status'], 1);
+            $this->handleCompletedStatus($data, $id);
+            $this->insertOrUpdateCoShareDetails($data, $id);
+
+
+            return $this->respond(['status' => true, 'message' => 'Endorsement transaction updated successfully'], 200);
+        }
+
+        return $this->respond(['status' => false, 'message' => 'Endorsement transaction update failed'], 400);
+    }
+
+    private function handleCompletedStatus($data, $policy_tran_id)
+    {
+        if ($data['status'] == 'completed') {
+
+            $tolamt = $data['total'][0];
+
+            $description = 'The following amount of Rs. ' . round($tolamt, 2) . '/- has been' . 
+                        ($data['action_type'] == 'deletion' ? ' Credit ' : ' Debit ') . 'from the policy transaction';
+
+            $cd_tranction_data = [
+                'amount' => $tolamt,
+                'sub_type_id' => $data['action_type'] == 'deletion' ? 3 : 4,
+                'client_id' => $data['client_id'],
+                'client_policy_id' => $data['client_policy_id'],
+                'endorsement_no' => null,
+                'cd_ac_no' => $data['cd_ac_no'] ?? null,
+                'insurer_id' => $data['insurer_id'],
+                'description' => $description,
+                'transaction_type' => $data['action_type'] == 'deletion' ? 'Credit' : 'Debit',
+                'updated_by' => get_session_userid(),
+                'event_name' => $data['action_type'],
+                'is_active' => 1,
+            ];
+
+            DepositHelper::saveDeposit($cd_tranction_data, get_session_userid());
+        }
+    }
+
+
+    public function getEndorsementDataForEdit($id)
+    {
+        $data = $this->policyTransactionModel
+                ->select('
+                        policy_transaction.*, 
+                        clients.short_name as client_short_name, 
+                        clients.client_type, 
+                        client_policy.policy_start_date as s_date,
+                        client_policy.policy_end_date as e_date,
+                    ')
+                ->join('clients', 'clients.id = policy_transaction.client_id')
+                ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+                ->where('policy_transaction.id', $id)
+                ->first();
+
+        $data['policy_start_date'] = date('d-m-Y', strtotime($data['s_date']));
+        $data['policy_end_date'] = date('d-m-Y', strtotime($data['e_date']));
+        $data['data_received_date'] = date('d-m-Y', strtotime($data['data_received_date']));
+        $data['closure_date'] = date('d-m-Y', strtotime($data['closure_date']));
+
+        $data['pt_co_share_details'] = $this->PTCOShareDetailsModel->where('pt_id', $id)->where('is_active', 1)->findAll();
+
+
+        if($data){
+            return $this->respond(['status' => true, 'data' => $data], 200);
+        }else{
+            return $this->respond(['status' => false], 200);
+        }
+
+    }
+
+    //------------------------------------------------------------------------------------------------
+
+    //file upload function 
+    public function uploadFile()
+    {
+        $files = $this->request->getFiles();
+        $doc_name = $this->request->getPost('doc_name[]');     
+        $pt_id = $this->request->getPost('pt_id');     
+        
+        $uploadData = uploadFilesToGoogleDrive($files['file'], $doc_name, $pt_id);
+        $insert = false;
+        if(!isset($uploadData['status'])){
+            $this->PTFileModel->insertBatch($uploadData);
+            $insert = true;
+        }
+
+        if ($insert) {
+            $data['pt_files'] = $this->PTFileModel->where('pt_id', $pt_id)->where('is_active', 1)->findAll();
+            return $this->respond(['status' => true, 'message' => 'File uploaded successfully in G-Drive', 'data' => $data]);
+        } else {
+            return $this->respond(['status' => false, 'message' => 'Failed to upload file in G-Drive']);
+        }
+    }
+
+    // update Invoice Status 
+    public function updateInvoiceStatus()
+    {
+        $ids = $this->request->getPost('ids');
+        $ids = json_decode($ids);
+
+        // var_dump($ids); die;
+
+        $data['invoice_status'] = $this->request->getPost('invoice_status');
+        if($this->request->getPost('invoice_status') == 'generated'){
+            $data['invoice_no'] = $this->request->getPost('invoice_no');
+        }
+
+
+        $update = $this->policyTransactionModel
+            ->whereIn('id', $ids)
+            ->set($data)
+            ->update();
+            
+    
+        if ($update) {
+
+            return $this->respond(['status' => true, 'data' => $ids, 'message' => 'Invoice status updated successfully'], 200);
+        } else {
+            return $this->respond(['status' => true, 'data' => $ids, 'message' => 'Failed to update invoice status'], 200);
+        }
+    }
+
+    public function removeCoShareData($id)
+    {
+        $this->myLogger->logme('error', 'PT Co Share Detailes Remove function called');
+
+        $data = [
+            'updated_by' => get_session_userid(),
+            'is_active' => 0
+        ];
+        
+        $update = $this->PTCOShareDetailsModel->where('id', $id)->set($data)->update();
+
+        if ($update) {
+            return $this->respond(['status' => true, 'code' => 200, 'message' => 'Data removed successfully'], 200);
+        } else {
+            return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to remove data'], 200);
+        }
+    }
+
+    public function getPTCOShareCount($client_id, $client_policy_id)
+    {
+        $totalCount = $this->PTCOShareDetailsModel
+            ->select('pt_co_share_details.*')
+            ->join('policy_transaction', 'policy_transaction.id = pt_co_share_details.pt_id')
+            ->where('policy_transaction.client_id', $client_id)
+            ->where('policy_transaction.client_policy_id', $client_policy_id)
+            ->findAll();
+
+        if ($totalCount) {
+            return $this->respond(['status' => true, 'code' => 200, 'data' => $totalCount], 200);
+        } else {
+            return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to get data'], 200);
+        }
+
+    }
+
+    //---------------------------------------------------------------------------------------------------
+
+    //get BDS Reports data
+    public function reportBDS()
+    {   
+
+        $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
+        $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
+        $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
+        $data['policy_status'] = [
+            'pending' => 'Pending',
+            'exported_to_insurer' => 'Exported to Insurer',
+            'imported_from_insurer' => 'Imported from Insurer',
+            'exported_to_tpa' => 'Exported to TPA',
+            'imported_from_tpa' => 'Imported from TPA',
+            'completed' => 'Completed'
+        ];   
+        $data['invoice_status_array'] = [
+            'yet_to_generate' => 'Yet to Generate',
+            'generated' => 'Generated',
+            'send' => 'Send',
+            'recived' => 'Recived',
+        ];
+        $data['date_type'] = [
+            'policy_issue_date' => 'Policy Issue Date',
+            'policy_start_date' => 'Policy Start Date',
+            'policy_end_date' => 'Policy End Date',
+            'data_received_date' => 'Data Received Date',
+            'closure_date' => 'Closure Date',
+        ];
+
+        $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
+        $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
+        $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+
+
+        //filter datas
+        $start_date = $this->request->getGet('start_date');
+        $end_date = $this->request->getGet('end_date');
+        $client_id = $this->request->getGet('client_id');
+        $insurer_id = $this->request->getGet('insurer_id');
+        $policy_type_id = $this->request->getGet('policy_type_id');
+        $date_type = $this->request->getGet('date_type');
+        $issuer = $this->request->getGet('issuer');
+        
+        $start_date = (!isset($start_date) || $start_date === '' || $start_date === null) ? 0 : $start_date;
+        $end_date = (!isset($end_date) || $end_date === '' || $end_date === null) ? 0 : $end_date;
+        
+        $client_id = (!isset($client_id) || $client_id === '' || $client_id === null) ? 0 : $client_id;
+        $insurer_id = (!isset($insurer_id) || $insurer_id === '' || $insurer_id === null) ? 0 : $insurer_id;      
+        $policy_type_id = (!isset($policy_type_id) || $policy_type_id === '' || $policy_type_id === null) ? 0 : $policy_type_id;      
+        $date_type = (!isset($date_type) || $date_type === '' || $date_type === null) ? 0 : $date_type;      
+        $issuer = (!isset($issuer) || $issuer === '' || $issuer === null) ? 0 : $issuer;   
+        
+        
+        //Actual data for the list
+        $data['report_list'] = $this->policyTransactionModel->getBDSReportList($start_date, $end_date, $client_id, $insurer_id, $policy_type_id, $date_type, $issuer);
+        // dd($data);
+        
+        $this->loadLayout('report_bds_filter', $data); 
+    }
+    
+    
+}
\ No newline at end of file
diff --git a/app/Controllers/UserController.php b/app/Controllers/UserController.php
index 53d35bf1..8d68fc1a 100644
--- a/app/Controllers/UserController.php
+++ b/app/Controllers/UserController.php
@@ -64,17 +64,28 @@ class UserController extends AdminController
 
             if ($insert) {
 
+                $teamData['user_id'] = $insert;
+                foreach ($teams as $value) {
+                    $teamData['team_id'] = $value;
+                    $teamData['created_by'] =  get_session_userid();
+                    $this->userTeamsModel->insert($teamData);
+                }
+
                 if ($userData['role'] == 3) {
 
                     $db = \Config\Database::connect();
                     $tableName = 'hdz_staff';
-                    $admin = 1;
+                    $admin = 0;
+                    $acm = 1;
+                    $acm_id = $insert;
 
                     $password = '12345678'; //Default password
                     $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
 
                     foreach ($temp_team as $key => $value) {
+
                         $team = $this->teamModel->where('id', $value)->first();
+
                         if ($team['name'] == 'Claims') {
                             $hdz_staff = [
                                 'emp_code' => $userData['emp_code'],
@@ -82,6 +93,8 @@ class UserController extends AdminController
                                 'username' => strtolower($userData['first_name']),
                                 'email' => $userData['email'],
                                 'admin' => $admin,
+                                'acm' => $acm,
+                                'acm_id' => $acm_id,
                                 'registration' => time(),
                                 'password' => $hashedPassword,
                                 'active' => 1,
@@ -90,13 +103,6 @@ class UserController extends AdminController
                             $db->table($tableName)->insert($hdz_staff);
                         }
                     }
-
-                    $teamData['user_id'] = $insert;
-                    foreach ($teams as $value) {
-                        $teamData['team_id'] = $value;
-                        $teamData['created_by'] =  get_session_userid();
-                        $this->userTeamsModel->insert($teamData);
-                    }
                 }
             }
         }
@@ -117,12 +123,12 @@ class UserController extends AdminController
 
     public function edit()
     {
-        $teams = $this->request->getPost('team');
 
         if (!$this->request->getPost()) {
             return redirect()->to(base_url('/user/list'));
         } else {
             $id = $this->request->getPost('PrimaryKey');
+            $teams = $this->request->getPost('team');
             $userData = $this->request->getPost();
             unset($userData['csrf_test_name']);
             unset($userData['PrimaryKey']);
@@ -133,6 +139,16 @@ class UserController extends AdminController
 
             if ($update) {
 
+                if ($teams) {
+                    $this->userTeamsModel->where('user_id', $id)->delete();
+                    $teamData['user_id'] = $id;
+                    foreach ($teams as $value) {
+                        $teamData['team_id'] = $value;
+                        $teamData['created_by'] =  get_session_userid();
+                        $this->userTeamsModel->insert($teamData);
+                    }
+                }
+
                 if ($userData['role'] == 3) {
 
                     $db = \Config\Database::connect();
@@ -152,7 +168,6 @@ class UserController extends AdminController
                                 'active' => 1,
                             ];
 
-
                             $db->table($tableName)->where('emp_code', $userData['emp_code'])
                                 ->where('email', $userData['email'])
                                 ->set($hdz_staff)
@@ -160,16 +175,6 @@ class UserController extends AdminController
                         }
                     }
 
-                    $this->userTeamsModel->where('user_id', $id)->delete();
-
-                    if ($teams) {
-                        $teamData['user_id'] = $id;
-                        foreach ($teams as $value) {
-                            $teamData['team_id'] = $value;
-                            $teamData['created_by'] =  get_session_userid();
-                            $this->userTeamsModel->insert($teamData);
-                        }
-                    }
                 }
             }
 
@@ -201,4 +206,4 @@ class UserController extends AdminController
         $teamData = $this->teamModel->select('id, name')->findAll();
         echo json_encode(array("status" => true , 'roleData' => $roleData, 'teamData' => $teamData,));
     }
-}
+}
\ No newline at end of file
diff --git a/app/Helpers/drive_helper.php b/app/Helpers/drive_helper.php
new file mode 100644
index 00000000..81bd5d22
--- /dev/null
+++ b/app/Helpers/drive_helper.php
@@ -0,0 +1,150 @@
+get('access_token'); 
+        log_message('error', '//////////////  ---   G-Drive Access Token {data}', ['data' =>  $accessToken]);
+
+        // Initialize Google Client
+        $client = new GoogleClient();
+        $client->setApplicationName($appName);
+        $client->setClientId($clientID);
+        $client->setClientSecret($clientSecret);
+        $client->setRedirectUri($redirectUri);
+        $client->addScope($scopes); 
+        // $client->setApprovalPrompt('force'); 
+        $client->setPrompt('consent');
+        $client->setAccessType('offline'); 
+        
+
+        if ($accessToken) {
+
+            $client->setAccessToken($accessToken); 
+            log_message('error', '//////////////  ---   G-Drive Access Token expired :  {data}', ['data' => $client->isAccessTokenExpired()]);
+            
+            if ($client->isAccessTokenExpired()) {
+                
+                $refreshToken = session()->get('refresh_token'); 
+                log_message('error', '//////////////  ---   G-Drive Refresh Token :  {data}', ['data' =>  $refreshToken]);
+            
+                if ($refreshToken) {
+                    $client->fetchAccessTokenWithRefreshToken($refreshToken);
+                    $token = $client->getAccessToken();
+            
+                    if (isset($token['access_token'])) {
+                        session()->set('access_token', $token['access_token']);
+                        // $client->setAccessToken($token);
+                        log_message('error', '//////////////  ---   G-Drive Access Token refreshed and stored successfully.');
+                    } else {
+                        log_message('error', '//////////////  ---   G-Drive Access Token not available after refresh.');
+                    }
+            
+                    if (isset($token['refresh_token'])) {
+                        session()->set('refresh_token', $token['refresh_token']);
+                        log_message('error', '//////////////  ---   G-Drive Refresh Token updated successfully.');
+                    } else {
+                        log_message('error', '//////////////  ---   G-Drive Refresh Token not available after refresh.');
+                    }
+            
+                } else {
+                    log_message('error', '//////////////  ---   G-Drive Refresh Token Not Available');
+                    redirect()->to(filter_var($client->createAuthUrl(), FILTER_SANITIZE_URL));
+                }
+            } else {
+                log_message('error', '//////////////  ---   G-Drive Access Token is still valid.');
+            }
+            
+
+            try {
+                
+                    $driveService = new Drive($client);
+                    $folderName = 'New Folder';
+                    
+                    // Check if the folder already exists
+                    $response = $driveService->files->listFiles([
+                        'q' => "mimeType='application/vnd.google-apps.folder' and name='{$folderName}' and trashed=false",
+                        'fields' => 'files(id, name)'
+                    ]);
+                    
+                    $filesList = $response->getFiles();
+                    $folderId = null;
+                    
+                    if (count($filesList) > 0) {
+                        // Folder already exists
+                        $folderId = $filesList[0]->getId();
+                    } else {
+                        // Create a new folder
+                        $folder = new Drive\DriveFile();
+                        $folder->setName($folderName);
+                        $folder->setMimeType('application/vnd.google-apps.folder');
+                    
+                        $createdFolder = $driveService->files->create($folder, [
+                            'fields' => 'id'
+                        ]);
+                    
+                        $folderId = $createdFolder->id;
+                    }
+                    
+                    $uploadedFiles = [];
+                    
+                    foreach ($files as $key => $file) {
+                    
+                        if (!empty($file)) {
+                    
+                            $dname = $doc_name[$key];
+                    
+                            $driveFile = new Drive\DriveFile();
+                            $driveFile->setName($file->getClientName());
+                            $driveFile->setParents([$folderId]);
+                    
+                            $result = $driveService->files->create(
+                                $driveFile,
+                                [
+                                    'data' => file_get_contents($file->getTempName()),
+                                    'mimeType' => $file->getClientMimeType(),
+                                    'uploadType' => 'multipart'
+                                ]
+                            );
+                    
+                            $uploadedFiles[] = [
+                                'file_name' => $file->getClientName(),
+                                'drive_id' => $result->id,
+                                'doc_name' => $dname,
+                                'pt_id' => $pt_id,
+                                'created_by' => get_session_userid(),
+                                'url' => "https://drive.google.com/file/d/{$result->id}/view",
+                            ];
+                        }
+                    }
+                    
+                    return $uploadedFiles;
+                    
+            } catch (\Exception $e) {
+
+                $errorDetails = [
+                    'status' => 'error',
+                    'error_message' => 'Error uploading files: ' . $e->getMessage(),
+                    'error_code' => $e->getCode(),
+                    'file' => $e->getFile(),
+                    'line' => $e->getLine(),
+                    'stack_trace' => $e->getTraceAsString()
+                ];
+
+                return $errorDetails;
+            }
+        } else {
+
+            $url = $client->createAuthUrl();
+            return redirect()->to(filter_var($url, FILTER_SANITIZE_URL));
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/Helpers/oauth_helper.php b/app/Helpers/oauth_helper.php
index 6741f057..a16ef368 100644
--- a/app/Helpers/oauth_helper.php
+++ b/app/Helpers/oauth_helper.php
@@ -27,13 +27,21 @@ if (!function_exists('googleOauthLogin')) {
         $client->setClientSecret($clientSecret);
         $client->setRedirectUri($redirectUri); 
         $client->addScope($scopesArray);
+        // $client->setApprovalPrompt('force'); 
+        $client->setPrompt('consent'); 
+        $client->setAccessType('offline');
 
         // Check if an OAuth token is provided
         if ($oauthToken) {
             try {
                 // Attempt to fetch the access token with the provided OAuth token
                 $token = $client->fetchAccessTokenWithAuthCode($oauthToken);
+                session()->set('access_token', $token['access_token']);
+                if(isset($token['refresh_token'])){
+                    session()->set('refresh_token', $token['refresh_token']);
+                }
                 $client->setAccessToken($token);
+
                 $oauth = new Oauth2($client);
                 
                 // Get user information using the OAuth2 service
diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php
index da3f5f4c..6c7c6c1a 100644
--- a/app/Helpers/utility_helper.php
+++ b/app/Helpers/utility_helper.php
@@ -1,4 +1,6 @@
 select('id')->orderBy('id', 'DESC')->first();
+        $id = $latestClient ? $latestClient['id'] : 0;
+
+        $year = date('y');
+
+        $newId = $id + 1;
+
+        $client_code = $year . $string . $newId;
+
+        return $client_code;
+    }
+}
+
+if (!function_exists('generate_tsi_code')) {
+    function generate_tsi_code($type) {
+
+        $PolicyTransactionModel = new \App\Models\PolicyTransactionModel();
+        
+        $latestClient = $PolicyTransactionModel->select('id')->orderBy('id', 'DESC')->first();
+        $id = $latestClient ? $latestClient['id'] : 0;
+
+        $year = date('y');
+        $month = date('m');
+        $string = 'P';
+
+        if($type == 2){
+            $string2 = 'R';
+        }else{
+            $string2 = 'F';
+        }
+
+        $newId = $id + 1;
+
+        $tsi_code = $string2 . $month . $year . $string . $newId;
+
+        return $tsi_code;
+    }
+}
+
+if (!function_exists('generateRandomCode')) {
+    function generateRandomCode($prefix = 'RTL-', $length = 6) {
+        // Generate a random number with the specified length
+        $randomNumber = str_pad(mt_rand(0, pow(10, $length)-1), $length, '0', STR_PAD_LEFT);
+        
+        // Return the code with the prefix
+        return $prefix . $randomNumber;
+    }
+}
+
+
 
 function numberToWords($number)
 {
diff --git a/app/Models/ClientModel.php b/app/Models/ClientModel.php
index 718e67a8..ce5481d3 100644
--- a/app/Models/ClientModel.php
+++ b/app/Models/ClientModel.php
@@ -13,6 +13,7 @@ class ClientModel extends Model
     protected $allowedFields    = [
         "id",
         "entity_type_id",
+        "client_type",
         "client_name",
         "short_name",
         "pan",
@@ -28,7 +29,14 @@ class ClientModel extends Model
         "updated_by",
         "is_active",
         "common_mails",
-        "hr_mails"
+        "hr_mails",
+        "client_code",
+        "cost_center",
+        "dob",
+        "aadhar",
+        "reference",
+        "phone",
+        "email",
     ];
 
 
diff --git a/app/Models/PTCOShareDetailsModel.php b/app/Models/PTCOShareDetailsModel.php
new file mode 100644
index 00000000..070e7e1f
--- /dev/null
+++ b/app/Models/PTCOShareDetailsModel.php
@@ -0,0 +1,64 @@
+db->table('policy_transaction')
+            ->select("
+                policy_transaction.*,
+                DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
+                DATE_FORMAT(policy_transaction.policy_issue_date, '%b') AS policy_issue_month,
+                CASE
+                    WHEN clients.client_type = 1 THEN 'Group'
+                    WHEN clients.client_type = 2 THEN 'Retail'
+                    ELSE '-'
+                END AS client_type,
+                CASE
+                    WHEN policy_transaction.revenue_type = 'NA' THEN 'Fresh'
+                    ELSE 'Renewal'
+                END AS revenue_type,
+                CASE
+                    WHEN policy_transaction.action_type = 'inception' THEN 'Policy'
+                    ELSE 'Endorsement'
+                END AS action_type,
+                clients.client_name AS client_name,
+                clients.short_name AS client_short_name,
+                client_branch.branch_name AS client_branch_name,
+                client_branch.address1 AS client_address,
+                policy_type.policy_type,
+                policy_type.bap,
+                insurers.name AS insurer_name,
+                insurers.short_name AS insurer_short_name,
+                insurer_branch.branch_name AS insurer_branch_name,
+                insurer_branch.branch_code AS insurer_branch_code,
+                user_profiles.first_name as user_name,
+                vehicle.vehicle_no,
+                tpa.name as tpa_name,
+                pt_co_share_details.remark as remarks,
+                pt_co_share_details.bp_amt,
+                sales_user.first_name as salse_person_name,
+                service_user.first_name as service_person_name,
+
+                ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS premium_wo_gst,
+                ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2) AS gst_amount,
+                ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) + ROUND((ROUND((pt_co_share_details.bp_amt + pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) * 18 / 100), 2)), 2) AS total_premium,
+                ROUND((pt_co_share_details.tp_amt + pt_co_share_details.tep_amt), 2) AS tp_or_ter,
+                DATEDIFF(policy_transaction.policy_end_date, CURDATE()) AS days,
+                (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per) AS agreed_tp_or_ter_per,
+                pt_co_share_details.agreed_bp_per,
+                ROUND((pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per + (pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) * (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)), 2) AS total_irda,
+                ROUND((ROUND((pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per + (pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) * (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)), 2) * 18 / 100), 2) AS gst_on_revenue,
+                ROUND(
+                    (ROUND((pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per + (pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) * (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)), 2) + 
+                    ROUND((ROUND((pt_co_share_details.bp_amt * pt_co_share_details.agreed_bp_per + (pt_co_share_details.tp_amt + pt_co_share_details.tep_amt) * (pt_co_share_details.agreed_tp_per + pt_co_share_details.agreed_tep_per)), 2) * 18 / 100), 2)), 
+                2) AS total_amt_received
+            ")
+            ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
+            ->join('clients', 'clients.id = policy_transaction.client_id')
+            ->join('client_branch', 'policy_transaction.client_branch_id = client_branch.id', 'left')
+            ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left')
+            ->join('user_profiles', 'policy_transaction.created_by = user_profiles.id', 'left')
+            ->join('vehicle', 'policy_transaction.vehicle_id = vehicle.id', 'left')
+            ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
+            ->join('insurers', 'policy_transaction.insurer_id = insurers.id', 'left')
+            ->join('insurer_branch', 'policy_transaction.insurer_branch_id = insurer_branch.id', 'left')
+            ->join('tpa', 'policy_transaction.tpa_id = tpa.id', 'left')
+            ->join('tpa_branch', 'policy_transaction.tpa_branch_id = tpa_branch.id', 'left')
+            ->join('user_profiles AS sales_user', 'policy_transaction.sales_generated_by = sales_user.id', 'left')
+            ->join('user_profiles AS service_user', 'policy_transaction.serviced_by = service_user.id', 'left')
+            ->where('policy_transaction.is_active', 1);  
+        
+        // Check if the start date and end date are provided
+        if ($start_date != 0 && $end_date != 0 && $date_type != 0) {
+
+            $startDate = date('Y-m-d 00:00:00', strtotime($start_date));
+            $endDate = date('Y-m-d 23:59:59', strtotime($end_date));
+
+            $builder->where('policy_transaction.'.$date_type.'>=', $startDate)
+                    ->where('policy_transaction.'.$date_type.'<=', $endDate);
+        }
+
+        if ($client_id != 0) {
+            $builder->where('policy_transaction.client_id', $client_id);
+        }
+    
+        if ($insurer_id != 0) {
+            $builder->where('policy_transaction.insurer_id', $insurer_id);
+        }
+    
+        if ($policy_type_id != 0) {
+            $builder->where('client_policy.policy_type_id', $policy_type_id);
+        }
+    
+        if ($issuer != 0) {
+            $builder->where('policy_transaction.issuer', $issuer);
+        }
+    
+        return $builder->get()->getResultArray();
+    }
+    
+}
diff --git a/app/Models/PolicyTransactionStatusModel.php b/app/Models/PolicyTransactionStatusModel.php
new file mode 100644
index 00000000..712fa8e0
--- /dev/null
+++ b/app/Models/PolicyTransactionStatusModel.php
@@ -0,0 +1,58 @@
+
+    
+
+
+
+
+ + + +
+
+
+
+ + + +
+ +
+ +
+ +
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+

File List

+
+ +
+
+ + + + + + + + + + + +
S.NoDocs NameFile NameDrive File Location
+
+
+
+
+
+ + + + diff --git a/app/Views/insurer_export_templete.php b/app/Views/insurer_export_templete.php index 40b757a7..935b669d 100644 --- a/app/Views/insurer_export_templete.php +++ b/app/Views/insurer_export_templete.php @@ -48,7 +48,7 @@
- +
@@ -122,7 +122,7 @@
- + Back
@@ -364,8 +370,6 @@ Agreed TEP % - - Agreed Amount @@ -397,13 +401,13 @@ Actual TEP % - Actual BP Brokerage Amount + Actual BP
Remuneration Amount - Actual TP Brokerage Amount + Actual TP
Remuneration Amount - Actual TEP Brokerage Amount + Actual TEP
Remuneration Amount Expected Amount @@ -446,6 +450,11 @@ \ No newline at end of file diff --git a/app/Views/policy_transaction_endorsement_list.php b/app/Views/policy_transaction_endorsement_list.php index 9d6a2a24..7a0209af 100644 --- a/app/Views/policy_transaction_endorsement_list.php +++ b/app/Views/policy_transaction_endorsement_list.php @@ -21,12 +21,6 @@ table.dataTable thead th { position: absolute; } -.readonly-select { - pointer-events: none; - background-color: #f0f0f0; - color: #666; -} - .column-header { margin-right: 10px; /* Adjust this value as needed */ } @@ -201,8 +195,9 @@ table.dataTable thead th { - + $row){ ?> + @@ -210,17 +205,17 @@ table.dataTable thead th { - - - - + + + + @@ -296,7 +291,8 @@ table.dataTable thead th { searchPlaceholder: "Search..." }, paging: true, // Enable pagination - pageLength: 25 // Set default number of rows per page (optional) + pageLength: 25, // Set default number of rows per page (optional) + ordering: false, }); } else { console.error("Table not found."); @@ -309,47 +305,42 @@ table.dataTable thead th { var today = new Date(); var data_received_date = flatpickr("#data_received_date", { - dateFormat: "d-m-Y", + dateFormat: "d/m/Y", allowInput: false }); var closure_date = flatpickr("#closure_date", { - dateFormat: "d-m-Y", + dateFormat: "d/m/Y", allowInput: false }); // var start_date = flatpickr("#policy_start_date", { - // dateFormat: "d-m-Y", + // dateFormat: "d/m/Y", // allowInput: false // }); // var end_date = flatpickr("#policy_end_date", { - // dateFormat: "d-m-Y", + // dateFormat: "d/m/Y", // allowInput: false // }); var endorse_eff_date = flatpickr("#endorse_eff_date", { - dateFormat: "d-m-Y", + dateFormat: "d/m/Y", allowInput: false }); var month = flatpickr("#month", { - dateFormat: "M-Y", + dateFormat: "M/Y", allowInput: false, }); - - // $('#month').val(''); - // console.log('month', $('#month')); - // console.log('month', ''); - // console.log('month', new Date('')); - // console.log('month', ); - }); function hide_list_show_add() { removeAllColumnsExceptFirst('insurerTable'); + $('.hideter').hide() + $('.hidetp').hide() $('#endorsement_form_id')[0].reset(); $('#client_id').val('').change(); $('#client_policy_id').val('').change(); @@ -469,6 +460,7 @@ table.dataTable thead th { 'data-etp' : item.etp, 'data-iep' : item.iep, 'data-itp' : item.itp, + 'data-bap' : item.bap, 'data-tpa' : item.tpa_branch_id + '-' + item.tpa_id, }); $('#client_policy_id').append(option); @@ -635,18 +627,18 @@ function getURLParams() hideDateField(date_type) - console.log('startDate', startDate) - console.log('endDate', endDate) - console.log('client_id', client_id) - console.log('insurer_id', insurer_id) - console.log('policy_type_id', policy_type_id) - console.log('date_type', date_type) - console.log('issuer', issuer) - console.log('status', status) + // console.log('startDate', startDate) + // console.log('endDate', endDate) + // console.log('client_id', client_id) + // console.log('insurer_id', insurer_id) + // console.log('policy_type_id', policy_type_id) + // console.log('date_type', date_type) + // console.log('issuer', issuer) + // console.log('status', status) // Log the values or use them as needed - console.log('Start Date:', startDate); - console.log('End Date:', endDate); + // console.log('Start Date:', startDate); + // console.log('End Date:', endDate); if (startDate != 0 && endDate != 0) { setTimeout(function(){ @@ -670,20 +662,20 @@ $(function() { const params = new URLSearchParams(url.search); // Get start and end dates from URL parameters, or use default values - const startDateParam = params.get('start_date') || moment().subtract(29, 'days').format('DD-MM-YYYY'); - const endDateParam = params.get('end_date') || moment().format('DD-MM-YYYY'); + const startDateParam = params.get('start_date') || moment().subtract(29, 'days').format('DD/MM/YYYY'); + const endDateParam = params.get('end_date') || moment().format('DD/MM/YYYY'); // Parse the dates to moment objects - var start = moment(startDateParam, 'DD-MM-YYYY'); - var end = moment(endDateParam, 'DD-MM-YYYY'); + var start = moment(startDateParam, 'DD/MM/YYYY'); + var end = moment(endDateParam, 'DD/MM/YYYY'); // var start = moment().subtract(29, 'days'); // var end = moment(); function cb(start, end) { - $('#reportrange span').html(start.format('D-MM-YYYY') + ' - ' + end.format('D-MM-YYYY')); - $('#startDate').val(start.format('DD-MM-YYYY')); - $('#endDate').val(end.format('DD-MM-YYYY')); + $('#reportrange span').html(start.format('D/MM/YYYY') + ' - ' + end.format('D/MM/YYYY')); + $('#startDate').val(start.format('DD/MM/YYYY')); + $('#endDate').val(end.format('DD/MM/YYYY')); } $('#reportrange').daterangepicker({ diff --git a/app/Views/policy_transaction_inception_form.php b/app/Views/policy_transaction_inception_form.php index ff65ac29..9a42c780 100644 --- a/app/Views/policy_transaction_inception_form.php +++ b/app/Views/policy_transaction_inception_form.php @@ -60,6 +60,12 @@ color: #666; /* Darker text color */ } +.readonly-select { + pointer-events: none; + background-color: #f0f0f0; + color: #666; +} + .select2-hidden-accessible + .select2-container .select2-dropdown { display: none !important; } @@ -96,6 +102,26 @@ color: #000; } +/* .select2-container .select2-selection__rendered { + min-height: 38px; + display: flex; + align-items: center; +} + +.select2-search__field{ + height: 0px !important; +} */ + +.select2-selection__choice { + background-color: #0a8794 !important; + color: white !important; + font-weight: bold; +} + +.select2-selection__choice__remove { + color: white !important; + margin-right: 5px; +}
@@ -114,7 +140,7 @@
Back + onclick="//show_list_hide_add()">Back
- + - + + +
@@ -329,6 +357,11 @@
+ + +
+ +
-
- - -
-
@@ -566,12 +594,12 @@ Insurer - - CD Acc No - Is Leader? + + CD Acc No + Co-Share % @@ -680,6 +708,7 @@
+
@@ -890,86 +919,105 @@
+ + + \ No newline at end of file diff --git a/app/Views/policy_transaction_inception_list.php b/app/Views/policy_transaction_inception_list.php index c6991058..2f8a4885 100644 --- a/app/Views/policy_transaction_inception_list.php +++ b/app/Views/policy_transaction_inception_list.php @@ -247,6 +247,7 @@ table.dataTable tbody td { + @@ -265,8 +266,9 @@ table.dataTable tbody td { - + $row){ ?> + @@ -274,11 +276,11 @@ table.dataTable tbody td { - - - - - + + + + + - - - - - - - - - - - + + + + + - - - - - - - + + + + + - + - - - + + + - + - - @@ -90,32 +80,24 @@ table.dataTable tbody td { $row){ ?> - - - - - - - - - - + + + + - - - - - - - + + + + + @@ -127,10 +109,8 @@ table.dataTable tbody td { - - - + @@ -212,7 +192,8 @@ $(document).ready(function() { searchPlaceholder: "Search..." }, paging: true, // Enable pagination - pageLength: 25 // Set default number of rows per page (optional) + pageLength: 25, // Set default number of rows per page (optional) + ordering: false, }); } else { console.error("Table not found."); diff --git a/app/Views/variance_report_list.php b/app/Views/variance_report_list.php index a7c77fee..f784b8d4 100644 --- a/app/Views/variance_report_list.php +++ b/app/Views/variance_report_list.php @@ -35,7 +35,7 @@ table.dataTable tbody td {
-
- - - - - + + +
@@ -135,7 +141,7 @@ table.dataTable tbody td {
-

Varience Report

+

Variance Report

@@ -150,34 +156,45 @@ table.dataTable tbody td {
- - + + + - $row){ ?> - - - - - - - - - - - - + $row){ ?> + + + + + + + + + + + + +
S.No.
Issuer
Issuing Type
Client Type
S. NoUser Name Month Business TypeDateSales Generated By (Name)Branch (JIBS)Serviced By (Name)Client NameClient Address Client TypePayment FromReferenceRemarksPolicy/EndorsementInsured NamePolicy/
Endorsement
Policy TypeBAP GroupVehicle Number Policy No Endorsement No Insurer Name Insurer Branch TPADays Until ExpiryEndorsement Effective DatePolicy Effective DatePolicy Expiry DatePolicy TypeBAP GroupVehicle NumberEndorsement
Effective Date
Policy
Effective Date
Policy
Expiry Date
ReferenceRemarks Base Premium Terrorism/TPPremium (without GST)Premium
(without GST)
GST @ 18% Total PremiumBase Revenue %TP / Terrorism Revenue %Total IRDA Revenue INRBase
Revenue %
TP / Terrorism
Revenue %
Total IRDA
Revenue INR
GST on RevenueTotal Amount ReceivableTotal Amount
Receivable
RewardsTotal BrokeragePayment Ref Invoice Number Invoice Date Invoice Amount
Policy No Endorsement No Expected AmountVarienceActionRealization AmountVariance
- -
@@ -190,7 +207,6 @@ table.dataTable tbody td { \ No newline at end of file diff --git a/writable/tmp/20241001102246 b/writable/tmp/20241001102246 new file mode 100644 index 0000000000000000000000000000000000000000..18375b4108331d7aac36556d8f75843a17f3eada GIT binary patch literal 335988 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

%R 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∧crnD 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

) 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 z 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%0AZE7(aWmPxMHZ6E$n85_WcZ@Tf!A4r!P|Pc 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 KMNUMnLSTZFF33j! literal 0 HcmV?d00001 From c180192a5205fc2ff0b95aff1a3e04ff50b33fbf Mon Sep 17 00:00:00 2001 From: velz Date: Sat, 5 Oct 2024 09:32:15 +0530 Subject: [PATCH 20/29] FIX_BDS --- .../PolicyTransactionController.php | 47 +++++++------- app/Models/PolicyTransactionModel.php | 15 ++++- .../policy_transaction_endorsement_form.php | 12 ++-- .../policy_transaction_endorsement_list.php | 1 + .../policy_transaction_inception_form.php | 65 ++++++++++++++++--- app/Views/variance_report_list.php | 20 ++++-- 6 files changed, 118 insertions(+), 42 deletions(-) diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php index e5f9348a..9c941c39 100644 --- a/app/Controllers/PolicyTransactionController.php +++ b/app/Controllers/PolicyTransactionController.php @@ -214,25 +214,25 @@ class PolicyTransactionController extends BaseController // $data['renewal_date'] = change_date_format($this->request->getPost('renewal_date'), 'd/m/Y', 'Y-m-d') ?? null; // $data['rollover_date'] = change_date_format($this->request->getPost('rollover_date'), 'd/m/Y', 'Y-m-d') ?? null; - $data['policy_issue_date'] = (isset($data['policy_issue_date']) && $data['policy_issue_date'] !== null && $data['policy_issue_date'] !== '') - ? date('d/m/Y', strtotime($data['policy_issue_date'])) - : null; + // $data['policy_issue_date'] = (isset($data['policy_issue_date']) && $data['policy_issue_date'] !== null && $data['policy_issue_date'] !== '') + // ? date('d/m/Y', strtotime($data['policy_issue_date'])) + // : null; - $data['policy_start_date'] = (isset($data['policy_start_date']) && $data['policy_start_date'] !== null && $data['policy_start_date'] !== '') - ? date('d/m/Y', strtotime($data['policy_start_date'])) - : null; + // $data['policy_start_date'] = (isset($data['policy_start_date']) && $data['policy_start_date'] !== null && $data['policy_start_date'] !== '') + // ? date('d/m/Y', strtotime($data['policy_start_date'])) + // : null; - $data['policy_end_date'] = (isset($data['policy_end_date']) && $data['policy_end_date'] !== null && $data['policy_end_date'] !== '') - ? date('d/m/Y', strtotime($data['policy_end_date'])) - : null; + // $data['policy_end_date'] = (isset($data['policy_end_date']) && $data['policy_end_date'] !== null && $data['policy_end_date'] !== '') + // ? date('d/m/Y', strtotime($data['policy_end_date'])) + // : null; - $data['renewal_date'] = (isset($data['renewal_date']) && $data['renewal_date'] !== null && $data['renewal_date'] !== '') - ? date('d/m/Y', strtotime($data['renewal_date'])) - : null; + // $data['renewal_date'] = (isset($data['renewal_date']) && $data['renewal_date'] !== null && $data['renewal_date'] !== '') + // ? date('d/m/Y', strtotime($data['renewal_date'])) + // : null; - $data['rollover_date'] = (isset($data['rollover_date']) && $data['rollover_date'] !== null && $data['rollover_date'] !== '') - ? date('d/m/Y', strtotime($data['rollover_date'])) - : null; + // $data['rollover_date'] = (isset($data['rollover_date']) && $data['rollover_date'] !== null && $data['rollover_date'] !== '') + // ? date('d/m/Y', strtotime($data['rollover_date'])) + // : null; // Separate Insurer and TPA Branch IDs and IDs @@ -268,8 +268,8 @@ class PolicyTransactionController extends BaseController $data['ct_type'] = 1; } - $month = '01-'.(string)$this->request->getPost('month'); - $data['month'] = empty($data['month']) ? null : date('Y-m-d', strtotime($month)); + // $month = '01-'.(string)$this->request->getPost('month'); + // $data['month'] = empty($data['month']) ? null : date('Y-m-d', strtotime($month)); // Determine $is_addon value $data['is_addon'] = in_array($data['policy_type_id'], [1, 2, 6, 7]) ? 1 : @@ -825,12 +825,13 @@ class PolicyTransactionController extends BaseController $endorse_eff_date = (string)$this->request->getPost('endorse_eff_date'); $month = (string)$this->request->getPost('month'); - $data['data_received_date'] = empty($data['data_received_date']) ? null : date('Y-m-d', strtotime($data_received_date)); - $data['closure_date'] = empty($data['closure_date']) ? null : date('Y-m-d', strtotime($closure_date)); - $data['endorse_eff_date'] = empty($data['endorse_eff_date']) ? null : date('Y-m-d', strtotime($endorse_eff_date)); + $data['data_received_date'] = empty($data['data_received_date']) ? null : change_date_format($data_received_date,'d/m/Y','Y-m-d'); + //date('Y-m-d', strtotime($data_received_date)); + $data['closure_date'] = empty($data['closure_date']) ? null : change_date_format($closure_date,'d/m/Y','Y-m-d'); + $data['endorse_eff_date'] = empty($data['endorse_eff_date']) ? null : change_date_format($endorse_eff_date,'d/m/Y','Y-m-d'); - $month = '01-'.$data['month']; - $data['month'] = empty($data['month']) ? null : date('Y-m-d', strtotime($month)); + $month = $data['month'].'/01'; + $data['month'] = empty($data['month']) ? null : change_date_format($month,'M/Y/d','Y-m-d'); // Separate Insurer and TPA Branch IDs and IDs if(isset($data['insurer_id']) && !empty($data['insurer_id'])){ @@ -934,7 +935,7 @@ class PolicyTransactionController extends BaseController { if ($data['status'] == 'completed' && $data['ct_type'] == 2) { - $tolamt = $data['total'][0] ?? 0; + $tolamt = isset($data['total'][0]) && is_numeric($data['total'][0]) ? $data['total'][0] : 0; $description = 'The following amount of Rs. ' . round($tolamt, 2) . '/- has been' . ($data['action_type'] == 'deletion' ? ' Credit ' : ' Debit ') . 'from the policy transaction'; diff --git a/app/Models/PolicyTransactionModel.php b/app/Models/PolicyTransactionModel.php index bb94a40e..df32d967 100644 --- a/app/Models/PolicyTransactionModel.php +++ b/app/Models/PolicyTransactionModel.php @@ -479,12 +479,25 @@ class PolicyTransactionModel extends Model pt_co_share_details.exp_amt, pt_co_share_details.variance, insurer_statements.invoice_amount, + insurer_statements.invoice_status, - ROUND((pt_co_share_details.actual_bp_brokerage_amt + pt_co_share_details.actual_tp_brokerage_amt + pt_co_share_details.actual_tep_brokerage_amt), 2) AS realization_amount + ROUND((pt_co_share_details.actual_bp_brokerage_amt + pt_co_share_details.actual_tp_brokerage_amt + pt_co_share_details.actual_tep_brokerage_amt), 2) AS realization_amount2, + + ( + SELECT + (SUM(inv_payment_details.inv_amt) + SUM(inv_payment_details.tds)) AS realization_amount + FROM + inv_payment_details + WHERE + inv_payment_details.statement_id = insurer_statements.id + AND inv_payment_details.is_active = 1 + + ) AS realization_amount, ") ->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left') ->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left') + ->join('inv_payment_details', 'insurer_statements.id = inv_payment_details.statement_id', 'left') ->join('clients', 'clients.id = policy_transaction.client_id', 'left') ->join('insurers', 'pt_co_share_details.insurer_id = insurers.id', 'left') ->join('client_policy', 'policy_transaction.client_policy_id = client_policy.id', 'left') diff --git a/app/Views/policy_transaction_endorsement_form.php b/app/Views/policy_transaction_endorsement_form.php index 251de501..20d9e41a 100644 --- a/app/Views/policy_transaction_endorsement_form.php +++ b/app/Views/policy_transaction_endorsement_form.php @@ -109,7 +109,7 @@

Back + >Back
@@ -555,7 +555,7 @@ $(document).ready(function(){ }else{ addInsurerColumn() } - + hidePermiumDetailsBasedOnTheTeam(); }, error: function (xhr, status, error) { console.error(xhr.responseText); @@ -564,6 +564,8 @@ $(document).ready(function(){ }); } + + }); }) @@ -1184,8 +1186,8 @@ function hidePermiumDetailsBasedOnTheTeam(){ // $('#' + id + ' input, #' + id + ' select, #' + id + ' textarea').prop('disabled', true); // Disable inputs }); - $('.hideter').hide() - $('.hidetp').hide() + $('.hideter').hide(); + $('.hidetp').hide(); } } @@ -1236,7 +1238,7 @@ $('#setInsurerCount').on('input', function() { function addInsurerColumn() { insurerCount++; - hidePermiumDetailsBasedOnTheTeam() + hidePermiumDetailsBasedOnTheTeam(); // Update header $('#insurerTable thead tr').append(` diff --git a/app/Views/policy_transaction_endorsement_list.php b/app/Views/policy_transaction_endorsement_list.php index 7a0209af..46e85ef9 100644 --- a/app/Views/policy_transaction_endorsement_list.php +++ b/app/Views/policy_transaction_endorsement_list.php @@ -179,6 +179,7 @@ table.dataTable thead th { + diff --git a/app/Views/policy_transaction_inception_form.php b/app/Views/policy_transaction_inception_form.php index 9a42c780..4db42108 100644 --- a/app/Views/policy_transaction_inception_form.php +++ b/app/Views/policy_transaction_inception_form.php @@ -140,7 +140,7 @@
Back + >Back
{ formData.append(`co_share_type[${index}]`, value); }); - + //covert date to mysql format + // alert(formData.get('policy_issue_date')); + + formData.set('policy_issue_date',convertToMySQLDate(formData.get('policy_issue_date'))); + formData.set('policy_start_date',convertToMySQLDate(formData.get('policy_start_date'))); + formData.set('policy_end_date',convertToMySQLDate(formData.get('policy_end_date'))); + formData.set('renewal_date',convertToMySQLDate(formData.get('renewal_date'))); + formData.set('rollover_date',convertToMySQLDate(formData.get('rollover_date'))); + formData.set('month',convertMonthYearToMySQLDate(formData.get('month'))); + + // formData['policy_start_date'] = convertToMySQLDate(formData['policy_start_date']); + // formData['policy_end_date'] = convertToMySQLDate(formData['policy_end_date']); + // formData['renewal_date'] = convertToMySQLDate(formData['renewal_date']); + // formData['rollover_date'] = convertToMySQLDate(formData['rollover_date']); + // formData['month'] = convertMonthYearToMySQLDate(formData['month']); + // console.log(formData); + // return false; $.ajax({ data: formData, url: form_action, diff --git a/app/Views/variance_report_list.php b/app/Views/variance_report_list.php index f784b8d4..da28834c 100644 --- a/app/Views/variance_report_list.php +++ b/app/Views/variance_report_list.php @@ -16,6 +16,14 @@ table.dataTable tbody td { .dataTables_filter { position: absolute; } + +.right-align-input { + text-align: right; +} + +.center-align-input { + text-align: center; +}
@@ -153,9 +161,11 @@ table.dataTable tbody td {
- + + + @@ -168,11 +178,13 @@ table.dataTable tbody td { - - + + - + + + - + - + - + diff --git a/app/Views/policy_transaction_endorsement_form.php b/app/Views/policy_transaction_endorsement_form.php index 20d9e41a..8d2d529d 100644 --- a/app/Views/policy_transaction_endorsement_form.php +++ b/app/Views/policy_transaction_endorsement_form.php @@ -555,7 +555,7 @@ $(document).ready(function(){ }else{ addInsurerColumn() } - hidePermiumDetailsBasedOnTheTeam(); + // hidePermiumDetailsBasedOnTheTeam(); }, error: function (xhr, status, error) { console.error(xhr.responseText); @@ -851,11 +851,15 @@ function getPolicyTransactionDataForEndorsementEdit(input){ setTimeout(function(){ $('.loader').fadeOut(); $('.loader-mask').delay(350).fadeOut('slow'); - $('#client_branch_id').val(res.data.client_branch_id).change(); $('#client_policy_id').val(res.data.client_policy_id).change(); }, 1000) + setTimeout(function(){ + $('#policy_start_date').val(res.data.policy_start_date); + $('#policy_end_date').val(res.data.policy_end_date); + }, 1500) + $('#policy_no').val(res.data.policy_no); $('#action_type').val(res.data.action_type); $('#endorsement_no').val(res.data.endorsement_no); @@ -864,8 +868,6 @@ function getPolicyTransactionDataForEndorsementEdit(input){ $('#emp_count').val(res.data.emp_count); $('#dependent_count').val(res.data.dependent_count); $('#policy_status').val(res.data.status); - $('#policy_start_date').val(res.data.policy_start_date); - $('#policy_end_date').val(res.data.policy_end_date); $('#endorse_eff_date').val(res.data.endorse_eff_date); $('#month').val(res.data.month); @@ -926,7 +928,7 @@ function amountCalculation(input) { let agreed_bp_per = parseFloat($('#agreed_bp_' + input).val()) || 0; let agreed_tp_per = parseFloat($('#agreed_tp_' + input).val()) || 0; - let agreed_tep_per = parseFloat($('#agreed_ter_' + input).val()) || 0; + let agreed_tep_per = parseFloat($('#agreed_tep_' + input).val()) || 0; let standard_bp_per = parseFloat($('#standard_bp_' + input).val()) || 0; let standard_tp_per = parseFloat($('#standard_tp_' + input).val()) || 0; @@ -942,39 +944,52 @@ function amountCalculation(input) { let tpTotal = bp + tp + tep + cop; let gst_per_amt = (tpTotal * gst_per) / 100; - $('#gst_amount_' + input).val(gst_per_amt.toFixed(2)); + // $('#gst_amount_' + input).val(gst_per_amt.toFixed(2)); + $('#gst_amount_' + input).val(!isNaN(gst_per_amt) && isFinite(gst_per_amt) ? gst_per_amt.toFixed(2) : '0.00'); + let finalTotal = tpTotal + gst_per_amt + stamp_duty_amt; // console.log('Summed Amount:', finalTotal); + // $('#total_amt_' + input).val(finalTotal.toFixed(2)); + $('#total_amt_' + input).val(!isNaN(finalTotal) && isFinite(finalTotal) ? finalTotal.toFixed(2) : '0.00'); - $('#total_amt_' + input).val(finalTotal.toFixed(2)); let sum_of_agreed_premium = agreed_bp_per + agreed_tp_per + agreed_tep_per; + console.log('sum_of_agreed_precentage : ', sum_of_agreed_premium); var expectedAmount = 0; + if(agreed_amount > 0 ){ expectedAmount = agreed_amount; + console.log('Formula 1 AGREED AMOUNT'); }else if(sum_of_agreed_premium > 0){ expectedAmount = ((bp + cop) * agreed_bp_per)+ ((tp + tep)*(agreed_tp_per + agreed_tep_per)); expectedAmount = expectedAmount / 100; + console.log('Formula 2 AGREED BP TP/TEP %'); }else{ expectedAmount = ((bp + cop) * standard_bp_per)+ ((tp + tep)*(standard_tp_per + standard_tep_per)); expectedAmount = expectedAmount / 100; + console.log('Formula 3 STANDARD BP TP/TEP %'); } - // console.log('expectedAmount', expectedAmount); + console.log('expectedAmount', expectedAmount); //Expected Amount - $('#exp_amt_' + input).val(expectedAmount.toFixed(2)); + // $('#exp_amt_' + input).val(expectedAmount.toFixed(2)); + $('#exp_amt_' + input).val(!isNaN(expectedAmount) && isFinite(expectedAmount) ? expectedAmount.toFixed(2) : '0.00'); - let actual_bp_brokerage_amount = $('#actual_bp_brokerage_amt_' + input).val(); - let actual_tp_brokerage_amount = $('#actual_tp_brokerage_amt_' + input).val(); - let actual_tep_brokerage_amount = $('#actual_tep_brokerage_amt_' + input).val(); - let variance = expectedAmount - (actual_bp_brokerage_amount + actual_tp_brokerage_amount + actual_tep_brokerage_amount) + let actual_bp_brokerage_amount = parseFloat($('#actual_bp_brokerage_amt_' + input).val()) || 0; + let actual_tp_brokerage_amount = parseFloat($('#actual_tp_brokerage_amt_' + input).val()) || 0; + let actual_tep_brokerage_amount = parseFloat($('#actual_tep_brokerage_amt_' + input).val()) || 0; + + // let variance = expectedAmount - (actual_bp_brokerage_amount + actual_tp_brokerage_amount + actual_tep_brokerage_amount) + let variance = (actual_bp_brokerage_amount + actual_tp_brokerage_amount + actual_tep_brokerage_amount) - expectedAmount; + + // $('#variance_' + input).val(variance.toFixed(2)); + $('#variance_' + input).val(!isNaN(variance) && isFinite(variance) ? variance.toFixed(2) : '0.00'); - $('#variance_' + input).val(variance.toFixed(2)); // console.log('variance', variance); } @@ -992,9 +1007,11 @@ function actualAmountCalculation(input, field = null){ let actual_bp_amt = parseFloat($('#actual_bp_amt_' + input).val()) || 0; let actual_tp_amt = parseFloat($('#actual_tp_amt_' + input).val()) || 0; let actual_tep_amt = parseFloat($('#actual_tep_amt_' + input).val()) || 0; + let actual_bp_per = parseFloat($('#actual_bp_per_' + input).val()) || 0; let actual_tp_per = parseFloat($('#actual_tp_per_' + input).val()) || 0; let actual_tep_per = parseFloat($('#actual_tep_per_' + input).val()) || 0; + let actual_bp_brokerage_amt = parseFloat($('#actual_bp_brokerage_amt_' + input).val()) || 0; let actual_tp_brokerage_amt = parseFloat($('#actual_tp_brokerage_amt_' + input).val()) || 0; let actual_tep_brokerage_amt = parseFloat($('#actual_tep_brokerage_amt_' + input).val()) || 0; @@ -1005,24 +1022,49 @@ function actualAmountCalculation(input, field = null){ console.log() if (actual_bp_amt > 0 && actual_bp_per >= 0) { let actual_bp_brokerage_amount = (actual_bp_amt * actual_bp_per) / 100; - $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); + // $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); + $('#actual_bp_brokerage_amt_' + input).val(!isNaN(actual_bp_brokerage_amount) && isFinite(actual_bp_brokerage_amount) ? actual_bp_brokerage_amount.toFixed(2) : '0.00'); + } } else if (field === 'bp_broker_amt') { // If brokerage amount is changed, update percentage if (actual_bp_amt > 0 && actual_bp_brokerage_amt >= 0) { let actual_bp_percentage = (actual_bp_brokerage_amt / actual_bp_amt) * 100; - $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + // $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + $('#actual_bp_per_' + input).val(!isNaN(actual_bp_percentage) && isFinite(actual_bp_percentage) ? actual_bp_percentage.toFixed(2) : '0.00'); + } } else if (field === 'bp_amt_for_calc') { - if (actual_bp_amt > 0 && actual_bp_per >= 0) { - let actual_bp_brokerage_amount = (actual_bp_amt * actual_bp_per) / 100; - $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); - } + if(actual_bp_per > 0){ - if (actual_bp_amt > 0 && actual_bp_brokerage_amt >= 0) { - let actual_bp_percentage = (actual_bp_brokerage_amt / actual_bp_amt) * 100; - $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + if (actual_bp_amt > 0 && actual_bp_per >= 0) { + let actual_bp_brokerage_amount = (actual_bp_amt * actual_bp_per) / 100; + // $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); + $('#actual_bp_brokerage_amt_' + input).val(!isNaN(actual_bp_brokerage_amount) && isFinite(actual_bp_brokerage_amount) ? actual_bp_brokerage_amount.toFixed(2) : '0.00'); + } + + }else if(actual_bp_brokerage_amt > 0){ + + if (actual_bp_amt > 0 && actual_bp_brokerage_amt >= 0) { + let actual_bp_percentage = (actual_bp_brokerage_amt / actual_bp_amt) * 100; + // $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + $('#actual_bp_per_' + input).val(!isNaN(actual_bp_percentage) && isFinite(actual_bp_percentage) ? actual_bp_percentage.toFixed(2) : '0.00'); + } + + }else{ + + if (actual_bp_amt > 0 && actual_bp_per >= 0) { + let actual_bp_brokerage_amount = (actual_bp_amt * actual_bp_per) / 100; + // $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); + $('#actual_bp_brokerage_amt_' + input).val(!isNaN(actual_bp_brokerage_amount) && isFinite(actual_bp_brokerage_amount) ? actual_bp_brokerage_amount.toFixed(2) : '0.00'); + } + + if (actual_bp_amt > 0 && actual_bp_brokerage_amt >= 0) { + let actual_bp_percentage = (actual_bp_brokerage_amt / actual_bp_amt) * 100; + // $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + $('#actual_bp_per_' + input).val(!isNaN(actual_bp_percentage) && isFinite(actual_bp_percentage) ? actual_bp_percentage.toFixed(2) : '0.00'); + } } } @@ -1033,24 +1075,48 @@ function actualAmountCalculation(input, field = null){ if (field === 'tp_per') { if (actual_tp_amt > 0 && actual_tp_per >= 0) { let actual_tp_brokerage_amount = (actual_tp_amt * actual_tp_per) / 100; - $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); + // $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); + $('#actual_tp_brokerage_amt_' + input).val(!isNaN(actual_tp_brokerage_amount) && isFinite(actual_tp_brokerage_amount) ? actual_tp_brokerage_amount.toFixed(2) : '0.00'); } } else if (field === 'tp_broker_amt') { // If brokerage amount is changed, update percentage if (actual_tp_amt > 0 && actual_tp_brokerage_amt >= 0) { let actual_tp_percentage = (actual_tp_brokerage_amt / actual_tp_amt) * 100; - $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + // $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + $('#actual_tp_per_' + input).val(!isNaN(actual_tp_percentage) && isFinite(actual_tp_percentage) ? actual_tp_percentage.toFixed(2) : '0.00'); } } else if (field === 'tp_amt_for_calc') { - if (actual_tp_amt > 0 && actual_tp_per >= 0) { - let actual_tp_brokerage_amount = (actual_tp_amt * actual_tp_per) / 100; - $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); - } + if(actual_tp_amt > 0){ - if (actual_tp_amt > 0 && actual_tp_brokerage_amt >= 0) { - let actual_tp_percentage = (actual_tp_brokerage_amt / actual_tp_amt) * 100; - $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + if (actual_tp_amt > 0 && actual_tp_per >= 0) { + let actual_tp_brokerage_amount = (actual_tp_amt * actual_tp_per) / 100; + // $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); + $('#actual_tp_brokerage_amt_' + input).val(!isNaN(actual_tp_brokerage_amount) && isFinite(actual_tp_brokerage_amount) ? actual_tp_brokerage_amount.toFixed(2) : '0.00'); + + } + + }else if(actual_tp_brokerage_amt > 0){ + + if (actual_tp_amt > 0 && actual_tp_brokerage_amt >= 0) { + let actual_tp_percentage = (actual_tp_brokerage_amt / actual_tp_amt) * 100; + // $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + $('#actual_tp_per_' + input).val(!isNaN(actual_tp_percentage) && isFinite(actual_tp_percentage) ? actual_tp_percentage.toFixed(2) : '0.00'); + } + + }else{ + if (actual_tp_amt > 0 && actual_tp_per >= 0) { + let actual_tp_brokerage_amount = (actual_tp_amt * actual_tp_per) / 100; + // $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); + $('#actual_tp_brokerage_amt_' + input).val(!isNaN(actual_tp_brokerage_amount) && isFinite(actual_tp_brokerage_amount) ? actual_tp_brokerage_amount.toFixed(2) : '0.00'); + } + + if (actual_tp_amt > 0 && actual_tp_brokerage_amt >= 0) { + let actual_tp_percentage = (actual_tp_brokerage_amt / actual_tp_amt) * 100; + // $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + $('#actual_tp_per_' + input).val(!isNaN(actual_tp_percentage) && isFinite(actual_tp_percentage) ? actual_tp_percentage.toFixed(2) : '0.00'); + + } } } @@ -1068,25 +1134,53 @@ function actualAmountCalculation(input, field = null){ if (field === 'tep_per') { if (actual_tep_amt > 0 && actual_tep_per >= 0) { let actual_tep_brokerage_amount = (actual_tep_amt * actual_tep_per) / 100; - $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + // $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + $('#actual_tep_brokerage_amt_' + input).val(!isNaN(actual_tep_brokerage_amount) && isFinite(actual_tep_brokerage_amount) ? actual_tep_brokerage_amount.toFixed(2) : '0.00'); + } } else if (field === 'tep_broker_amt') { // If brokerage amount is changed, update percentage if (actual_tep_amt > 0 && actual_tep_brokerage_amt >= 0) { let actual_tep_percentage = (actual_tep_brokerage_amt / actual_tep_amt) * 100; - $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); + // $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); + $('#actual_tep_per_' + input).val(!isNaN(actual_tep_percentage) && isFinite(actual_tep_percentage) ? actual_tep_percentage.toFixed(2) : '0.00'); + } } else if (field === 'tep_amt_for_calc') { - if (actual_tep_amt > 0 && actual_tep_per >= 0) { - let actual_tep_brokerage_amount = (actual_tep_amt * actual_tep_per) / 100; - $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + if(actual_tep_amt > 0){ + + if (actual_tep_amt > 0 && actual_tep_per >= 0) { + let actual_tep_brokerage_amount = (actual_tep_amt * actual_tep_per) / 100; + // $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + $('#actual_tep_brokerage_amt_' + input).val(!isNaN(actual_tep_brokerage_amount) && isFinite(actual_tep_brokerage_amount) ? actual_tep_brokerage_amount.toFixed(2) : '0.00'); + + } + + }else if(actual_tep_brokerage_amt > 0){ + + if (actual_tep_amt > 0 && actual_tep_brokerage_amt >= 0) { + let actual_tep_percentage = (actual_tep_brokerage_amt / actual_tep_amt) * 100; + // $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); + $('#actual_tep_per_' + input).val(!isNaN(actual_tep_percentage) && isFinite(actual_tep_percentage) ? actual_tep_percentage.toFixed(2) : '0.00'); + } + + }else{ + + if (actual_tep_amt > 0 && actual_tep_per >= 0) { + let actual_tep_brokerage_amount = (actual_tep_amt * actual_tep_per) / 100; + // $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + $('#actual_tep_brokerage_amt_' + input).val(!isNaN(actual_tep_brokerage_amount) && isFinite(actual_tep_brokerage_amount) ? actual_tep_brokerage_amount.toFixed(2) : '0.00'); + } + + if (actual_tep_amt > 0 && actual_tep_brokerage_amt >= 0) { + let actual_tep_percentage = (actual_tep_brokerage_amt / actual_tep_amt) * 100; + // $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); + $('#actual_tep_per_' + input).val(!isNaN(actual_tep_percentage) && isFinite(actual_tep_percentage) ? actual_tep_percentage.toFixed(2) : '0.00'); + + } } - if (actual_tep_amt > 0 && actual_tep_brokerage_amt >= 0) { - let actual_tep_percentage = (actual_tep_brokerage_amt / actual_tep_amt) * 100; - $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); - } } }else{ @@ -1101,9 +1195,12 @@ function actualAmountCalculation(input, field = null){ var actual_bp_brokerage_amount2 = parseFloat($('#actual_bp_brokerage_amt_' + input).val()) || 0; let actual_tp_brokerage_amount2 = parseFloat($('#actual_tp_brokerage_amt_' + input).val()) || 0; let actual_tep_brokerage_amount2 = parseFloat($('#actual_tep_brokerage_amt_' + input).val()) || 0; - let variance = expectedAmount - (actual_bp_brokerage_amount2 + actual_tp_brokerage_amount2 + actual_tep_brokerage_amount2) - $('#variance_' + input).val(variance.toFixed(2)); + // let variance = expectedAmount - (actual_bp_brokerage_amount2 + actual_tp_brokerage_amount2 + actual_tep_brokerage_amount2) + let variance = (actual_bp_brokerage_amount2 + actual_tp_brokerage_amount2 + actual_tep_brokerage_amount2) - expectedAmount + + // $('#variance_' + input).val(variance.toFixed(2)); + $('#variance_' + input).val(!isNaN(variance) && isFinite(variance) ? variance.toFixed(2) : '0.00'); // console.log('expectedAmount', expectedAmount); // console.log('variance', variance); @@ -1308,13 +1405,13 @@ function addInsurerColumn() { newCell = ``; break; case 13: // Agreed BP % - newCell = ``; + newCell = ``; break; case 14: // Agreed TP % - newCell = ``; + newCell = ``; break; case 15: // Agreed Ter % - newCell = ``; + newCell = ``; break; case 16: // Agreed Amount newCell = ``; @@ -1390,16 +1487,16 @@ function addInsurerColumn() { console.log('selcted client policy BAP', bap); if(bap == 'Fire' || bap == 'Marine Cargo' || bap == 'Marine Hull'){ - console.log('Fire, Marine Cargo, Marine Hull'); + // console.log('Fire, Marine Cargo, Marine Hull'); $('.hideter').show(); $('.hidetp').hide(); }else{ if(bap == 'Motor'){ - console.log('Motor'); + // console.log('Motor'); $('.hidetp').show() $('.hideter').hide() }else{ - console.log('Not any thing'); + // console.log('Not any thing'); $('.hideter').hide() $('.hidetp').hide() } @@ -1423,7 +1520,7 @@ function addInsurerColumn() { const index = $(this).closest('th').index(); removeInsurerColumn(index); }); - + } function removeInsurerColumn(index) { @@ -1543,40 +1640,40 @@ function populateTable(dataArray, status = false) { cell.find('input').val(data.standerd_tep_per); break; case 20: // Actual BP Amount - cell.find('input').val(data.actual_bp_amt); + cell.find('input').val(status ? data.actual_bp_amt : ''); break; case 21: // Actual TP Amount - cell.find('input').val(data.actual_tp_amt); + cell.find('input').val(status ? data.actual_tp_amt : ''); break; case 22: // Actual Ter Amount - cell.find('input').val(data.actual_tep_amt); + cell.find('input').val(status ? data.actual_tep_amt : ''); break; case 23: // Actual BP % - cell.find('input').val(data.actual_bp_per); + cell.find('input').val(status ? data.actual_bp_per : ''); break; case 24: // Actual TP % - cell.find('input').val(data.actual_tp_per); + cell.find('input').val(status ? data.actual_tp_per : ''); break; case 25: // Actual Ter % - cell.find('input').val(data.actual_tep_per); + cell.find('input').val(status ? data.actual_tep_per : ''); break; case 26: // Actual BP Brokerage Amount - cell.find('input').val(data.actual_bp_brokerage_amt); + cell.find('input').val(status ? data.actual_bp_brokerage_amt : ''); break; case 27: // Actual TP Brokerage Amount - cell.find('input').val(data.actual_tp_brokerage_amt); + cell.find('input').val(status ? data.actual_tp_brokerage_amt : ''); break; case 28: // Actual Ter Brokerage Amount - cell.find('input').val(data.actual_tep_brokerage_amt); + cell.find('input').val(status ? data.actual_tep_brokerage_amt : ''); break; case 29: // Expected Amount - cell.find('input').val(data.exp_amt); + cell.find('input').val(status ? data.exp_amt : ''); break; case 30: // Variance - cell.find('input').val(data.variance); + cell.find('input').val(status ? data.variance : ''); break; case 31: // Reward - cell.find('input').val(data.reward); + cell.find('input').val(status ? data.reward : ''); break; case 32: // Co-share ID (hidden field) cell.find('input[type="hidden"]').val(status ? data.id : ''); diff --git a/app/Views/policy_transaction_endorsement_list.php b/app/Views/policy_transaction_endorsement_list.php index 46e85ef9..6d133613 100644 --- a/app/Views/policy_transaction_endorsement_list.php +++ b/app/Views/policy_transaction_endorsement_list.php @@ -307,9 +307,21 @@ table.dataTable thead th { var data_received_date = flatpickr("#data_received_date", { dateFormat: "d/m/Y", - allowInput: false + allowInput: false, + parseDate: (datestr, format) => { + return new Date(datestr.replace(/(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3")); + }, + onOpen: function(selectedDates, dateStr, instance) { + instance.setDate(instance.input.value, false); + }, + onInput: function(selectedDates, dateStr, instance) { + let inputValue = instance.input.value; + let formattedDate = inputValue.replace(/(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3"); + instance.input.value = formattedDate; + } }); + var closure_date = flatpickr("#closure_date", { dateFormat: "d/m/Y", allowInput: false diff --git a/app/Views/policy_transaction_inception_form.php b/app/Views/policy_transaction_inception_form.php index 4db42108..76d12b85 100644 --- a/app/Views/policy_transaction_inception_form.php +++ b/app/Views/policy_transaction_inception_form.php @@ -1644,6 +1644,8 @@ function amountCalculation(input) { let standard_tp_per = parseFloat($('#standard_tp_' + input).val()) || 0; let standard_tep_per = parseFloat($('#standard_tep_' + input).val()) || 0; + console.log(standard_bp_per, standard_tp_per, standard_tep_per); + // Calculate GST percentage let gst_per = igst; if (igst === 0) { @@ -1654,39 +1656,61 @@ function amountCalculation(input) { let tpTotal = bp + tp + tep + cop; let gst_per_amt = (tpTotal * gst_per) / 100; - $('#gst_amount_' + input).val(gst_per_amt.toFixed(2)); + // $('#gst_amount_' + input).val(gst_per_amt.toFixed(2)); + $('#gst_amount_' + input).val(!isNaN(gst_per_amt) && isFinite(gst_per_amt) ? gst_per_amt.toFixed(2) : '0.00'); + let finalTotal = tpTotal + gst_per_amt + stamp_duty_amt; // console.log('Summed Amount:', finalTotal); + // $('#total_amt_' + input).val(finalTotal.toFixed(2)); + $('#total_amt_' + input).val(!isNaN(finalTotal) && isFinite(finalTotal) ? finalTotal.toFixed(2) : '0.00'); - $('#total_amt_' + input).val(finalTotal.toFixed(2)); let sum_of_agreed_premium = agreed_bp_per + agreed_tp_per + agreed_tep_per; + console.log('sum_of_agreed_precentage : ', sum_of_agreed_premium); var expectedAmount = 0; + if(agreed_amount > 0 ){ expectedAmount = agreed_amount; + console.log('Formula 1 AGREED AMOUNT'); }else if(sum_of_agreed_premium > 0){ expectedAmount = ((bp + cop) * agreed_bp_per)+ ((tp + tep)*(agreed_tp_per + agreed_tep_per)); expectedAmount = expectedAmount / 100; + console.log('Formula 2 AGREED BP TP/TEP %'); }else{ expectedAmount = ((bp + cop) * standard_bp_per)+ ((tp + tep)*(standard_tp_per + standard_tep_per)); + console.log(expectedAmount) expectedAmount = expectedAmount / 100; + console.log('Formula 3 STANDARD BP TP/TEP %'); } - // console.log('expectedAmount', expectedAmount); + console.log('expectedAmount', expectedAmount); //Expected Amount - $('#exp_amt_' + input).val(expectedAmount.toFixed(2)); + // $('#exp_amt_' + input).val(expectedAmount.toFixed(2)); + $('#exp_amt_' + input).val(!isNaN(expectedAmount) && isFinite(expectedAmount) ? expectedAmount.toFixed(2) : '0.00'); - let actual_bp_brokerage_amount = $('#actual_bp_brokerage_amt_' + input).val(); - let actual_tp_brokerage_amount = $('#actual_tp_brokerage_amt_' + input).val(); - let actual_tep_brokerage_amount = $('#actual_tep_brokerage_amt_' + input).val(); - let variance = expectedAmount - (actual_bp_brokerage_amount + actual_tp_brokerage_amount + actual_tep_brokerage_amount) + let actual_bp_brokerage_amount = parseFloat($('#actual_bp_brokerage_amt_' + input).val()) || 0; + let actual_tp_brokerage_amount = parseFloat($('#actual_tp_brokerage_amt_' + input).val()) || 0; + let actual_tep_brokerage_amount = parseFloat($('#actual_tep_brokerage_amt_' + input).val()) || 0; + + console.log('actual_bp_brokerage_amount', actual_bp_brokerage_amount); + console.log('actual_tp_brokerage_amount', actual_tp_brokerage_amount); + console.log('actual_tep_brokerage_amount', actual_tep_brokerage_amount); + + + + // let variance = expectedAmount - (actual_bp_brokerage_amount + actual_tp_brokerage_amount + actual_tep_brokerage_amount) + let variance = (actual_bp_brokerage_amount + actual_tp_brokerage_amount + actual_tep_brokerage_amount) - expectedAmount; + console.log('variance', variance); + + + // $('#variance_' + input).val(variance.toFixed(2)); + $('#variance_' + input).val(!isNaN(variance) && isFinite(variance) ? variance.toFixed(2) : '0.00'); - $('#variance_' + input).val(variance.toFixed(2)); // console.log('variance', variance); } @@ -1696,16 +1720,19 @@ function actualAmountCalculation(input, field = null){ console.log('actualAmountCalculation function input', input) console.log('actualAmountCalculation function field', field) - let selectedOption = $('#policy_type_id').find('option:selected'); + let selectedOption = $('#client_policy_id').find('option:selected'); let bap = selectedOption.data('bap'); + console.log('actualAmountCalculation function bap', bap) let actual_bp_amt = parseFloat($('#actual_bp_amt_' + input).val()) || 0; let actual_tp_amt = parseFloat($('#actual_tp_amt_' + input).val()) || 0; let actual_tep_amt = parseFloat($('#actual_tep_amt_' + input).val()) || 0; + let actual_bp_per = parseFloat($('#actual_bp_per_' + input).val()) || 0; let actual_tp_per = parseFloat($('#actual_tp_per_' + input).val()) || 0; let actual_tep_per = parseFloat($('#actual_tep_per_' + input).val()) || 0; + let actual_bp_brokerage_amt = parseFloat($('#actual_bp_brokerage_amt_' + input).val()) || 0; let actual_tp_brokerage_amt = parseFloat($('#actual_tp_brokerage_amt_' + input).val()) || 0; let actual_tep_brokerage_amt = parseFloat($('#actual_tep_brokerage_amt_' + input).val()) || 0; @@ -1716,24 +1743,49 @@ function actualAmountCalculation(input, field = null){ console.log() if (actual_bp_amt > 0 && actual_bp_per >= 0) { let actual_bp_brokerage_amount = (actual_bp_amt * actual_bp_per) / 100; - $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); + // $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); + $('#actual_bp_brokerage_amt_' + input).val(!isNaN(actual_bp_brokerage_amount) && isFinite(actual_bp_brokerage_amount) ? actual_bp_brokerage_amount.toFixed(2) : '0.00'); + } } else if (field === 'bp_broker_amt') { // If brokerage amount is changed, update percentage if (actual_bp_amt > 0 && actual_bp_brokerage_amt >= 0) { let actual_bp_percentage = (actual_bp_brokerage_amt / actual_bp_amt) * 100; - $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + // $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + $('#actual_bp_per_' + input).val(!isNaN(actual_bp_percentage) && isFinite(actual_bp_percentage) ? actual_bp_percentage.toFixed(2) : '0.00'); + } } else if (field === 'bp_amt_for_calc') { - if (actual_bp_amt > 0 && actual_bp_per >= 0) { - let actual_bp_brokerage_amount = (actual_bp_amt * actual_bp_per) / 100; - $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); - } + if(actual_bp_per > 0){ - if (actual_bp_amt > 0 && actual_bp_brokerage_amt >= 0) { - let actual_bp_percentage = (actual_bp_brokerage_amt / actual_bp_amt) * 100; - $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + if (actual_bp_amt > 0 && actual_bp_per >= 0) { + let actual_bp_brokerage_amount = (actual_bp_amt * actual_bp_per) / 100; + // $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); + $('#actual_bp_brokerage_amt_' + input).val(!isNaN(actual_bp_brokerage_amount) && isFinite(actual_bp_brokerage_amount) ? actual_bp_brokerage_amount.toFixed(2) : '0.00'); + } + + }else if(actual_bp_brokerage_amt > 0){ + + if (actual_bp_amt > 0 && actual_bp_brokerage_amt >= 0) { + let actual_bp_percentage = (actual_bp_brokerage_amt / actual_bp_amt) * 100; + // $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + $('#actual_bp_per_' + input).val(!isNaN(actual_bp_percentage) && isFinite(actual_bp_percentage) ? actual_bp_percentage.toFixed(2) : '0.00'); + } + + }else{ + + if (actual_bp_amt > 0 && actual_bp_per >= 0) { + let actual_bp_brokerage_amount = (actual_bp_amt * actual_bp_per) / 100; + // $('#actual_bp_brokerage_amt_' + input).val(actual_bp_brokerage_amount.toFixed(2)); + $('#actual_bp_brokerage_amt_' + input).val(!isNaN(actual_bp_brokerage_amount) && isFinite(actual_bp_brokerage_amount) ? actual_bp_brokerage_amount.toFixed(2) : '0.00'); + } + + if (actual_bp_amt > 0 && actual_bp_brokerage_amt >= 0) { + let actual_bp_percentage = (actual_bp_brokerage_amt / actual_bp_amt) * 100; + // $('#actual_bp_per_' + input).val(actual_bp_percentage.toFixed(2)); + $('#actual_bp_per_' + input).val(!isNaN(actual_bp_percentage) && isFinite(actual_bp_percentage) ? actual_bp_percentage.toFixed(2) : '0.00'); + } } } @@ -1744,24 +1796,48 @@ function actualAmountCalculation(input, field = null){ if (field === 'tp_per') { if (actual_tp_amt > 0 && actual_tp_per >= 0) { let actual_tp_brokerage_amount = (actual_tp_amt * actual_tp_per) / 100; - $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); + // $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); + $('#actual_tp_brokerage_amt_' + input).val(!isNaN(actual_tp_brokerage_amount) && isFinite(actual_tp_brokerage_amount) ? actual_tp_brokerage_amount.toFixed(2) : '0.00'); } } else if (field === 'tp_broker_amt') { // If brokerage amount is changed, update percentage if (actual_tp_amt > 0 && actual_tp_brokerage_amt >= 0) { let actual_tp_percentage = (actual_tp_brokerage_amt / actual_tp_amt) * 100; - $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + // $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + $('#actual_tp_per_' + input).val(!isNaN(actual_tp_percentage) && isFinite(actual_tp_percentage) ? actual_tp_percentage.toFixed(2) : '0.00'); } } else if (field === 'tp_amt_for_calc') { - if (actual_tp_amt > 0 && actual_tp_per >= 0) { - let actual_tp_brokerage_amount = (actual_tp_amt * actual_tp_per) / 100; - $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); - } + if(actual_tp_amt > 0){ - if (actual_tp_amt > 0 && actual_tp_brokerage_amt >= 0) { - let actual_tp_percentage = (actual_tp_brokerage_amt / actual_tp_amt) * 100; - $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + if (actual_tp_amt > 0 && actual_tp_per >= 0) { + let actual_tp_brokerage_amount = (actual_tp_amt * actual_tp_per) / 100; + // $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); + $('#actual_tp_brokerage_amt_' + input).val(!isNaN(actual_tp_brokerage_amount) && isFinite(actual_tp_brokerage_amount) ? actual_tp_brokerage_amount.toFixed(2) : '0.00'); + + } + + }else if(actual_tp_brokerage_amt > 0){ + + if (actual_tp_amt > 0 && actual_tp_brokerage_amt >= 0) { + let actual_tp_percentage = (actual_tp_brokerage_amt / actual_tp_amt) * 100; + // $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + $('#actual_tp_per_' + input).val(!isNaN(actual_tp_percentage) && isFinite(actual_tp_percentage) ? actual_tp_percentage.toFixed(2) : '0.00'); + } + + }else{ + if (actual_tp_amt > 0 && actual_tp_per >= 0) { + let actual_tp_brokerage_amount = (actual_tp_amt * actual_tp_per) / 100; + // $('#actual_tp_brokerage_amt_' + input).val(actual_tp_brokerage_amount.toFixed(2)); + $('#actual_tp_brokerage_amt_' + input).val(!isNaN(actual_tp_brokerage_amount) && isFinite(actual_tp_brokerage_amount) ? actual_tp_brokerage_amount.toFixed(2) : '0.00'); + } + + if (actual_tp_amt > 0 && actual_tp_brokerage_amt >= 0) { + let actual_tp_percentage = (actual_tp_brokerage_amt / actual_tp_amt) * 100; + // $('#actual_tp_per_' + input).val(actual_tp_percentage.toFixed(2)); + $('#actual_tp_per_' + input).val(!isNaN(actual_tp_percentage) && isFinite(actual_tp_percentage) ? actual_tp_percentage.toFixed(2) : '0.00'); + + } } } @@ -1779,25 +1855,53 @@ function actualAmountCalculation(input, field = null){ if (field === 'tep_per') { if (actual_tep_amt > 0 && actual_tep_per >= 0) { let actual_tep_brokerage_amount = (actual_tep_amt * actual_tep_per) / 100; - $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + // $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + $('#actual_tep_brokerage_amt_' + input).val(!isNaN(actual_tep_brokerage_amount) && isFinite(actual_tep_brokerage_amount) ? actual_tep_brokerage_amount.toFixed(2) : '0.00'); + } } else if (field === 'tep_broker_amt') { // If brokerage amount is changed, update percentage if (actual_tep_amt > 0 && actual_tep_brokerage_amt >= 0) { let actual_tep_percentage = (actual_tep_brokerage_amt / actual_tep_amt) * 100; - $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); + // $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); + $('#actual_tep_per_' + input).val(!isNaN(actual_tep_percentage) && isFinite(actual_tep_percentage) ? actual_tep_percentage.toFixed(2) : '0.00'); + } } else if (field === 'tep_amt_for_calc') { - if (actual_tep_amt > 0 && actual_tep_per >= 0) { - let actual_tep_brokerage_amount = (actual_tep_amt * actual_tep_per) / 100; - $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + if(actual_tep_amt > 0){ + + if (actual_tep_amt > 0 && actual_tep_per >= 0) { + let actual_tep_brokerage_amount = (actual_tep_amt * actual_tep_per) / 100; + // $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + $('#actual_tep_brokerage_amt_' + input).val(!isNaN(actual_tep_brokerage_amount) && isFinite(actual_tep_brokerage_amount) ? actual_tep_brokerage_amount.toFixed(2) : '0.00'); + + } + + }else if(actual_tep_brokerage_amt > 0){ + + if (actual_tep_amt > 0 && actual_tep_brokerage_amt >= 0) { + let actual_tep_percentage = (actual_tep_brokerage_amt / actual_tep_amt) * 100; + // $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); + $('#actual_tep_per_' + input).val(!isNaN(actual_tep_percentage) && isFinite(actual_tep_percentage) ? actual_tep_percentage.toFixed(2) : '0.00'); + } + + }else{ + + if (actual_tep_amt > 0 && actual_tep_per >= 0) { + let actual_tep_brokerage_amount = (actual_tep_amt * actual_tep_per) / 100; + // $('#actual_tep_brokerage_amt_' + input).val(actual_tep_brokerage_amount.toFixed(2)); + $('#actual_tep_brokerage_amt_' + input).val(!isNaN(actual_tep_brokerage_amount) && isFinite(actual_tep_brokerage_amount) ? actual_tep_brokerage_amount.toFixed(2) : '0.00'); + } + + if (actual_tep_amt > 0 && actual_tep_brokerage_amt >= 0) { + let actual_tep_percentage = (actual_tep_brokerage_amt / actual_tep_amt) * 100; + // $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); + $('#actual_tep_per_' + input).val(!isNaN(actual_tep_percentage) && isFinite(actual_tep_percentage) ? actual_tep_percentage.toFixed(2) : '0.00'); + + } } - if (actual_tep_amt > 0 && actual_tep_brokerage_amt >= 0) { - let actual_tep_percentage = (actual_tep_brokerage_amt / actual_tep_amt) * 100; - $('#actual_tep_per_' + input).val(actual_tep_percentage.toFixed(2)); - } } }else{ @@ -1812,12 +1916,15 @@ function actualAmountCalculation(input, field = null){ var actual_bp_brokerage_amount2 = parseFloat($('#actual_bp_brokerage_amt_' + input).val()) || 0; let actual_tp_brokerage_amount2 = parseFloat($('#actual_tp_brokerage_amt_' + input).val()) || 0; let actual_tep_brokerage_amount2 = parseFloat($('#actual_tep_brokerage_amt_' + input).val()) || 0; - let variance = expectedAmount - (actual_bp_brokerage_amount2 + actual_tp_brokerage_amount2 + actual_tep_brokerage_amount2) - $('#variance_' + input).val(variance.toFixed(2)); + // let variance = expectedAmount - (actual_bp_brokerage_amount2 + actual_tp_brokerage_amount2 + actual_tep_brokerage_amount2) + let variance = (actual_bp_brokerage_amount2 + actual_tp_brokerage_amount2 + actual_tep_brokerage_amount2) - expectedAmount + + // $('#variance_' + input).val(variance.toFixed(2)); + $('#variance_' + input).val(!isNaN(variance) && isFinite(variance) ? variance.toFixed(2) : '0.00'); // console.log('expectedAmount', expectedAmount); - // console.log('variance', variance); + console.log('variance', variance); } function validateRange(input) { @@ -2946,13 +3053,13 @@ function addInsurerColumn() { newCell = ``; break; case 18: // Standard BP % - newCell = ``; + newCell = ``; break; case 19: // Standard TP % - newCell = ``; + newCell = ``; break; case 20: // Standard Ter % - newCell = ``; + newCell = ``; break; case 21: // Actual BP Amount newCell = ``; From db7697d13f83c7256c2fd34c7d79c356edf3cd67 Mon Sep 17 00:00:00 2001 From: Smart Date: Mon, 7 Oct 2024 08:56:18 +0530 Subject: [PATCH 22/29] CHANGE_added is_active condition for mobile no verification api : GWM --- app/Controllers/RestAuthenticationController.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index b313789e..d4256270 100755 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -71,7 +71,9 @@ class RestAuthenticationController extends AdminController $mobile_number = $this->request->getJSON()->mobile_number; - $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->first(); + $employeeData = $this->employeeModel->where('mobile', $mobile_number) + ->where('relationship', 'self') + ->where('is_active', 1)->first(); if ($employeeData) { @@ -126,7 +128,9 @@ class RestAuthenticationController extends AdminController try { $mobile_number = $this->request->getJSON()->mobile_number; - $HrData = $this->hrModel->where('mobile', $mobile_number)->where('contact_type', 'client')->first(); + $HrData = $this->hrModel->where('mobile', $mobile_number) + ->where('contact_type', 'client') + ->where('is_active', 1)->first(); if ($HrData) { From 6aa523ce046741e08804dc4d7e26f156a1f747f7 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Mon, 7 Oct 2024 09:58:01 +0530 Subject: [PATCH 23/29] FIX_LIVE_ISSUE_IN_ENROLLMENT : RV --- app/Controllers/EmployeeController.php | 13 +++++++++--- app/Controllers/EmployeeServiceController.php | 6 ++++++ .../PolicyTransactionController.php | 20 +++++++++++++++---- app/Views/file_list.php | 14 ++++++++++++- 4 files changed, 45 insertions(+), 8 deletions(-) diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index bff8c812..38ead2cf 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -375,7 +375,7 @@ class EmployeeController extends AdminController } else if ($actionType == 'deletion') { $filePath = ROOTPATH . 'public/sample_excel/sample_deletion.xls'; } else if ($actionType == 'enrollment') { - $filePath = ROOTPATH . 'public/sample_excel/enrollment.xls'; + $filePath = ROOTPATH . 'public/sample_excel/enrollment.xlsx'; }else if ($actionType == 'missed_inception') { $filePath = ROOTPATH . 'public/sample_excel/sample_inception.xls'; } @@ -1194,8 +1194,14 @@ class EmployeeController extends AdminController // $file['action'] = 'si_enhancement'; // $result = []; // !dd($file); - if ($file['action'] == 'inception' || $file['action'] == 'dependent_addition' || $file['action'] == 'addition') { - $result = $this->employeeModel->getEmpListByFileId(file_id: $file_id, emp_status: ['active'], policy_status: ['active']); + if ($file['action'] == 'inception' || $file['action'] == 'dependent_addition' || $file['action'] == 'addition' || $file['action'] == 'enrollment') { + + if($file['action'] == 'enrollment'){ + $result = $this->employeeModel->getEmpListByFileId(file_id: $file_id, emp_status: ['draft','enrolled'], policy_status: ['draft','enrolled']); + }else{ + $result = $this->employeeModel->getEmpListByFileId(file_id: $file_id, emp_status: ['active'], policy_status: ['active']); + } + // ~dd($result); if (count($result) && $role_id == null) { if(get_role_id() == 1 || get_role_id() == 5){ @@ -1210,6 +1216,7 @@ class EmployeeController extends AdminController $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 diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php index 826c7e29..ae16ad5d 100755 --- a/app/Controllers/EmployeeServiceController.php +++ b/app/Controllers/EmployeeServiceController.php @@ -1965,6 +1965,7 @@ public function employeesEnrollmentInsert($params) $value['family_floater_key'] = null; $value['client_id'] = $file['client_id']; $value['client_branch_id'] = $file['client_branch_id']; + $value['file_id'] = $file_id; $value['temp']['emp_id'] = null; // dummy value for using exisitng funciton in model if (strtolower(trim($value['relationship'])) === 'mother' || strtolower(trim($value['relationship'])) === 'Father') { @@ -2059,6 +2060,11 @@ public function employeesEnrollmentInsert($params) } } //end of for loop + $this->fileModel->where('id', $file_id)->set(['status' => 'success','reason' => ''])->update(); + $this->myLogger->logme("error",'{file_id} uploaded success',['file_id' => $file_id]); + + $this->setPullNotification($this->getFileMetaDataByFileId($file_id,'success')); + return true; } diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php index a001d0f3..62e7e626 100644 --- a/app/Controllers/PolicyTransactionController.php +++ b/app/Controllers/PolicyTransactionController.php @@ -95,7 +95,9 @@ class PolicyTransactionController extends BaseController // Policy Transaction Inception public function viewInception() - { + { + $data['page_name'] = 'Policy'; + $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance']; $data['client_type'] = [1 => 'Group', 2 => 'Individual']; $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over']; @@ -761,6 +763,8 @@ class PolicyTransactionController extends BaseController // echo '
';
         // !dd($this->getEndorsementDataForEdit(17));
 
+        $data['page_name'] = 'Endorsement';
+
         $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
         $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
 
@@ -1236,6 +1240,8 @@ class PolicyTransactionController extends BaseController
     public function reportBDS()
     {   
 
+        $data['page_name'] = 'BDS Report';
+
         $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
         $data['client_type'] = [1 => 'Group', 2 => 'Individual'];
         $data['issuing_type'] = [1 => 'Fresh', 2 => 'Renewal', 3 => 'Roll Over'];
@@ -1292,7 +1298,9 @@ class PolicyTransactionController extends BaseController
     }
 
     public function reportVarience()
-    {
+    {   
+        $data['page_name'] = 'Variance Report';
+
         $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
         $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
         $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
@@ -1332,7 +1340,9 @@ class PolicyTransactionController extends BaseController
 
 
     public function reportBusinessList()
-    {
+    {   
+        $data['page_name'] = 'Business Report';
+
         $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
         $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
         $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
@@ -1370,7 +1380,9 @@ class PolicyTransactionController extends BaseController
 
 
     public function reportFinanceList()
-    {
+    {   
+        $data['page_name'] = 'Finance Report';
+
         $data['issuer'] = [1 => 'JIBS', 2 => 'Nhance'];
         $data['insurer'] = $this->insurerModel->where('is_active', 1)->findAll();
         $data['policy_types'] = $this->policyTypeModel->where('is_active', 1)->findAll();
diff --git a/app/Views/file_list.php b/app/Views/file_list.php
index c2872c70..2cd80976 100755
--- a/app/Views/file_list.php
+++ b/app/Views/file_list.php
@@ -247,10 +247,11 @@ $('body').on('click', '.upload_button', function() {
 
 
 $('body').on('click', '.truncate2', function(event) {
+
     event.preventDefault();
     // console.log(event);
     var fileId = JSON.parse(this.getAttribute('data-id'));
-    // alert('Hi' + fileId);
+    console.log('Truncate File ID' + fileId);
 
     Swal.fire({
         title: "Do you want to truncate data from uploaded file?",
@@ -260,10 +261,13 @@ $('body').on('click', '.truncate2', function(event) {
     }).then((result) => {
 
         console.log(result);
+
         if (result.isConfirmed) {
+
             $('.loader').fadeIn();
             $('.loader-mask').fadeIn();
             var apiURL = 'employee/truncate/' + fileId;
+            // console.log('Truncate API URL : ', apiURL);
 
             $.ajax({
                 url: apiURL,
@@ -272,6 +276,9 @@ $('body').on('click', '.truncate2', function(event) {
                     "X-Requested-With": "XMLHttpRequest"
                 },
                 success: function(response) {
+
+                    // console.log('Truncate Response', response)
+
                     setTimeout(function() {
                         $('.loader').fadeOut();
                         $('.loader-mask').delay(350).fadeOut('slow');
@@ -294,6 +301,10 @@ $('body').on('click', '.truncate2', function(event) {
                     }
                 },
                 error: function(xhr, status, error) {
+
+                    console.error(xhr.responseText);
+                    console.error(status, error);
+
                     setTimeout(function() {
                         $('.loader').fadeOut();
                         $('.loader-mask').delay(350).fadeOut('slow');
@@ -304,6 +315,7 @@ $('body').on('click', '.truncate2', function(event) {
                 }
             });
         }
+
     });
 })
 

From 8ea9e82d828202ea857d7f06e8b46742a6b3f80a Mon Sep 17 00:00:00 2001
From: velz 
Date: Mon, 7 Oct 2024 10:05:23 +0530
Subject: [PATCH 24/29] FIX_REMOVED_ECHO

---
 app/Controllers/EmployeeServiceController.php | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index 826c7e29..9f80c0a1 100755
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -2045,13 +2045,13 @@ public function employeesEnrollmentInsert($params)
                             
                            //store email and mail content via helper to send notification
                            $emp_emails[] = sendMailNotification::sendMailNotification('member_welcome_mail', $params);
-                           Kint::dump($emp_emails);
-                           Kint::dump($key.'-'.count($excel_data));
+                           // Kint::dump($emp_emails);
+                           // Kint::dump($key.'-'.count($excel_data));
                            // if mail count is 20 send bulk mail and reset emp_emails variable
                             if (count($emp_emails) == 20 || $key == count($excel_data) ) {
                                 $job_details  = new Jobs();
                                 $r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $emp_emails]); 
-                                echo 'Mail triggered';
+                                // echo 'Mail triggered';
                                 $emp_emails = [];
                             }
                         
@@ -2059,6 +2059,8 @@ public function employeesEnrollmentInsert($params)
                     }
         } //end of for loop
 
+        
+
         return true;
 }
 

From a9ea4e2031e920a8fff2adac5e32dea74ede34a6 Mon Sep 17 00:00:00 2001
From: Smart 
Date: Mon, 7 Oct 2024 12:24:37 +0530
Subject: [PATCH 25/29] =?UTF-8?q?CHANGE=5Fin=20=1B[200~=20=20=20=20public?=
 =?UTF-8?q?=20function=20FloterNotesConvertion(){?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/Controllers/EmployeeRestController.php | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php
index e6aca562..79a02293 100755
--- a/app/Controllers/EmployeeRestController.php
+++ b/app/Controllers/EmployeeRestController.php
@@ -1463,15 +1463,13 @@ class EmployeeRestController extends AdminController
                     $result = 'Can Add Self ';
                 }else if($value != 0 && $key ==='childrens') {
                     if($value > 1){  $result .= ' + '.$value.' Children'; }else{ $result .= ' + '.$value.' Child';  }
+                }else if($value != 0 && $key ==='parents'){
+                    if($value > 1){  $result .= ' + '.$value.' Parents'; }else{ $result .= ' + '.$value.' Parent';  }
+                }else if($value != 0 && $key ==='parents-in-law'){
+                    if($value > 1){  $result .= ' + '.$value.' Parent in law'; }else{ $result .= ' + '.$value.' Parents in law';  }
                 }else if($value != 0 && $key ==='elders_count') {
                    
-                }else{
-                    $string = str_replace('-', ' ', $key);
-                    $string = ucwords($string);
-                    $result .= ' + '.$value.' '.$string;
                 }
-
-                
             }
         }
 

From 40fd8ba4ae302b17576e6bcd0dc8b5f0ea121291 Mon Sep 17 00:00:00 2001
From: Smart 
Date: Mon, 7 Oct 2024 12:29:14 +0530
Subject: [PATCH 26/29] CHANGE_in FloterNotesConvertion

---
 app/Controllers/EmployeeRestController.php | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php
index 79a02293..aba83570 100755
--- a/app/Controllers/EmployeeRestController.php
+++ b/app/Controllers/EmployeeRestController.php
@@ -1453,7 +1453,7 @@ class EmployeeRestController extends AdminController
             if ($value > 0) {
                 if($value == 1 && $key ==='either-parents-pil') {
                     $result .= ' + Either 2 Parents or 2 Parents in law';
-                }if($value == 2 && $key ==='either-parents-pil') {
+                }else if($value == 2 && $key ==='either-parents-pil') {
                     $result .= ' + Any 2 of Parents and Parents in law';
                 }else if($value != 0 && $key ==='spouse') {
                     $string = str_replace('-', ' ', $key);
@@ -1463,13 +1463,15 @@ class EmployeeRestController extends AdminController
                     $result = 'Can Add Self ';
                 }else if($value != 0 && $key ==='childrens') {
                     if($value > 1){  $result .= ' + '.$value.' Children'; }else{ $result .= ' + '.$value.' Child';  }
-                }else if($value != 0 && $key ==='parents'){
-                    if($value > 1){  $result .= ' + '.$value.' Parents'; }else{ $result .= ' + '.$value.' Parent';  }
-                }else if($value != 0 && $key ==='parents-in-law'){
-                    if($value > 1){  $result .= ' + '.$value.' Parent in law'; }else{ $result .= ' + '.$value.' Parents in law';  }
                 }else if($value != 0 && $key ==='elders_count') {
                    
+                }else{
+                    $string = str_replace('-', ' ', $key);
+                    $string = ucwords($string);
+                    $result .= ' + '.$value.' '.$string;
                 }
+
+                
             }
         }
 

From 6cfbf363bce83754a1ee307e31f72e261d555719 Mon Sep 17 00:00:00 2001
From: "venkatesh.r" 
Date: Mon, 7 Oct 2024 17:42:14 +0530
Subject: [PATCH 27/29] FEAT_VEHICAL_MASTER_PAGES_AND_OTHERS : RV

---
 app/Config/Routes.php                         |   6 +
 app/Controllers/ClientController.php          |  79 +-
 app/Controllers/MasterController.php          |  62 ++
 app/Models/VehicleModel.php                   |  22 +
 app/Views/layout/header.php                   |   6 +
 .../policy_transaction_endorsement_list.php   |   3 +-
 .../policy_transaction_inception_list.php     |   3 +-
 app/Views/report_bds.php                      |   3 +-
 app/Views/vehicle_master_list.php             | 812 ++++++++++++++++++
 9 files changed, 971 insertions(+), 25 deletions(-)
 create mode 100644 app/Views/vehicle_master_list.php

diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index e2c4773c..eb09ded0 100755
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -241,6 +241,12 @@ $routes->group("/master", ["filter" => "authMVC"], function ($routes) {
         $routes->get("list/(:any)", "MasterController::getCDMasterDataByID/$1");
         $routes->get("remove/(:any)", "MasterController::removeCDMaster/$1");
     });
+
+    $routes->group("vehicle", ["filter" => "authMVC"], function ($routes) {
+        $routes->get("list", "MasterController::VehicleMasterList");
+        $routes->get("list/(:any)", "MasterController::getVehicleMasterDataByID/$1");
+        $routes->get("remove/(:any)", "MasterController::deactiveVehicleData/$1");
+    });
 });
 
 
diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php
index 07512fc2..586665eb 100755
--- a/app/Controllers/ClientController.php
+++ b/app/Controllers/ClientController.php
@@ -866,18 +866,19 @@ class ClientController extends AdminController
         $data['cd_ac_no']                           = $this->request->getPost('cd_ac_no');
         $data['gst']                                = $this->request->getPost('gst');
         
+
         if($policy_type_id == 1 || $policy_type_id == 2 || $policy_type_id == 6 || $policy_type_id == 7){
 
-            $data['is_addon'] = 1;
+            $data['is_addon'] = 1; // Base Policy
 
         }else if($policy_type_id == 4 || $policy_type_id == 5){
 
-            $data['is_addon'] = 2;
+            $data['is_addon'] = 2; // SI TOPUP
 
         }else if($policy_type_id == 3){
            
             if($base_policy){
-                $data['is_addon'] = 3;
+                $data['is_addon'] = 3; // Dependent Addon
             }else{
                 $data['is_addon'] = 1;
             }
@@ -952,6 +953,8 @@ class ClientController extends AdminController
         $id        = $this->request->getPost('PrimaryKey');
         $client_id = $this->request->getPost('client_id');
         $policy_type_id = $this->request->getPost('policy_type_id');
+        $base_policy      = $this->request->getPost('base_policy');
+
 
         $insurerValue                      = (string) $this->request->getPost('insurer');
         list($insurerBranchId, $insurerId) = explode('-', $insurerValue);
@@ -1002,17 +1005,34 @@ class ClientController extends AdminController
             $data['reminder_date'] = null;
         }
 
-        if($policy_type_id == 1 || $policy_type_id == 2 || $policy_type_id == 3 || $policy_type_id == 6 || $policy_type_id == 7){
+        // if($policy_type_id == 1 || $policy_type_id == 2 || $policy_type_id == 3 || $policy_type_id == 6 || $policy_type_id == 7){
 
-            $data['is_addon'] = 1;
+        //     $data['is_addon'] = 1;
 
-        }else if($policy_type_id == 4){
+        // }else if($policy_type_id == 4){
 
-            $data['is_addon'] = 2;
+        //     $data['is_addon'] = 2;
 
-        }else if($policy_type_id == 5){
+        // }else if($policy_type_id == 5){
 
-            $data['is_addon'] = 3;
+        //     $data['is_addon'] = 3;
+        // }
+
+        if($policy_type_id == 1 || $policy_type_id == 2 || $policy_type_id == 6 || $policy_type_id == 7){
+
+            $data['is_addon'] = 1; // Base Policy
+
+        }else if($policy_type_id == 4 || $policy_type_id == 5){
+
+            $data['is_addon'] = 2; // SI TOPUP
+
+        }else if($policy_type_id == 3){
+           
+            if($base_policy){
+                $data['is_addon'] = 3; // Dependent Addon
+            }else{
+                $data['is_addon'] = 1;
+            }
         }
           
 
@@ -3261,6 +3281,7 @@ class ClientController extends AdminController
     
         return $this->respond([
             'status' => true, 
+            'data' => $postData, 
             'client_id' => $client_insert, 
             'branch_id' => $branch_insert ?? null, 
             'message' => 'Client created successfully'
@@ -3270,22 +3291,36 @@ class ClientController extends AdminController
     public function createVehicleWithMinimalData()
     {
         $data = $this->request->getPost();
+        $id = $this->request->getPost('vehicle_primary_key');
 
-        $vehicle_insert = $this->vehicleModel->insert($data);
+        if($id){
+
+            $vehicle_update = $this->vehicleModel->where('id', $id)->set($data)->update();
+
+            if($vehicle_update){
+                return $this->respond(['status' => true, 'message' => 'Vehicle details updated successfully'], 200);
+            }else{
+                return $this->respond(['status' => false, 'message' => 'Failed to update vehicle details'], 200);
+            }
 
-        if($vehicle_insert){
-            $vehicles = $this->vehicleModel->where('is_active', 1)->findAll();
-            return $this->respond([
-                    'status' => true, 
-                    'vehicle_id' => $vehicle_insert, 
-                    'owner_id' => $data['owner'], 
-                    'owner_branch_id' => $data['branch_id'], 
-                    'owner_type' => $data['Owner_type'], 
-                    'vehicles' => $vehicles, 
-                    'message' => 'Vehicle created successfully
-                '], 200);
         }else{
-            return $this->respond(['status' => false, 'message' => 'Failed to created vehicle'], 200);
+
+            $vehicle_insert = $this->vehicleModel->insert($data);
+
+            if($vehicle_insert){
+                $vehicles = $this->vehicleModel->where('is_active', 1)->findAll();
+                return $this->respond([
+                        'status' => true, 
+                        'vehicle_id' => $vehicle_insert, 
+                        'owner_id' => $data['owner'], 
+                        'owner_branch_id' => $data['branch_id'] ?? null, 
+                        'owner_type' => $data['Owner_type'], 
+                        'vehicles' => $vehicles, 
+                        'message' => 'Vehicle created successfully
+                    '], 200);
+            }else{
+                return $this->respond(['status' => false, 'message' => 'Failed to created vehicle'], 200);
+            }
         }
     }
 
diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php
index aa1fcd06..2779a509 100755
--- a/app/Controllers/MasterController.php
+++ b/app/Controllers/MasterController.php
@@ -32,6 +32,7 @@ use App\Models\CDMasterModel;
 use App\Models\ClientDepositModel;
 use App\Models\InsurerExcelExportTemplateModel;
 use App\Models\SettingsModel;
+use App\Models\VehicleModel;
 
 class MasterController extends AdminController
 {   
@@ -57,6 +58,7 @@ class MasterController extends AdminController
     protected $clientDepositModel;
     protected $insurerTemplateModel;
     protected $cli_colors;
+    protected $vehicleModel;
 
 
     
@@ -85,6 +87,7 @@ class MasterController extends AdminController
         $this->clientModel        = new ClientModel();
         $this->clientDepositModel        = new ClientDepositModel();
         $this->insurerTemplateModel        = new InsurerExcelExportTemplateModel();
+        $this->vehicleModel        = new VehicleModel();
         $this->cli_colors =  [
                                 'red' => "\033[31m",
                                 'green' => "\033[32m",
@@ -1395,6 +1398,65 @@ class MasterController extends AdminController
     }
 
 
+    //Vehicle Master data Function
+
+    public function VehicleMasterList()
+    {   
+        $data['page_name'] = 'Vehicle Master List';
+        $data['vehicle_type'] = [
+            'two_wheeler' => 'Two Wheeler',
+            'four_wheeler' => 'Four Wheeler',
+            'truck' => 'Truck',
+            'bus' => 'Bus',
+            'van' => 'Van',
+            'suv' => 'SUV',
+            'motorcycle' => 'Motorcycle',
+            'bicycle' => 'Bicycle'
+        ];
+        $data['vehicle_des'] = [
+            'commercial' => 'Commercial',
+            'private' => 'Private',
+        ];
+        $data['entity']  = $this->kycEntityTypeModel->where('is_active', 1)->findAll();
+        $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+        $data['vehicle_Master_Data'] = $this->vehicleModel->getVehicleMasterList();
+        $this->loadLayout('vehicle_master_list', $data);
+    }
+
+    public function getVehicleMasterDataByID($id = null)
+    {
+        $vehicle_data = $this->vehicleModel
+            ->select('vehicle.*, clients.client_type')
+            ->join('clients', 'vehicle.owner = clients.id')
+            ->where('vehicle.id', $id)
+            ->where('vehicle.is_active', 1)
+            ->first();
+        
+        if ($vehicle_data) {
+            return $this->respond(['status' => true, 'code' => 200, 'data' => $vehicle_data], 200);
+        } else {
+            return $this->respond(['status' => false, 'code' => 404], 200);
+        }
+    }
+    
+    public function deactiveVehicleData($id)
+    {
+
+        $this->myLogger->logme('error','deactiveVehicleData function called');
+
+        $data['updated_by'] = get_session_userid();
+        $data['is_active'] = 0;
+        
+        $update = $this->vehicleModel->where('id', $id)->set($data)->update();
+
+        if($update){
+            return $this->respond(['status' => true,'code' => 200], 200);
+        }else{
+            return $this->respond(['status' => false,'code' => 404], 200);
+        }
+    }
+
+
     //excel export template 
     public function createExcelTemplate()
     {   
diff --git a/app/Models/VehicleModel.php b/app/Models/VehicleModel.php
index d1f9cb4c..dda3af1c 100644
--- a/app/Models/VehicleModel.php
+++ b/app/Models/VehicleModel.php
@@ -61,4 +61,26 @@ class VehicleModel extends Model
         return $data;
     }
 
+    public function getVehicleMasterList(){
+
+       return $this->db->table('vehicle')
+                ->select("
+                    vehicle.*, 
+                    CASE
+                        WHEN clients.client_type = 1 THEN 'Group'
+                        WHEN clients.client_type = 2 THEN 'Individual'
+                    ELSE '-'
+                    END AS owner_type,
+                    clients.client_name as owner_name, 
+                    client_branch.branch_name as owner_branch
+                ")
+                ->join('clients', 'vehicle.owner = clients.id')
+                ->join('client_branch', 'vehicle.branch_id = client_branch.id', 'left')
+                ->where('vehicle.is_active', 1)
+                ->orderBy('vehicle.id', 'desc')
+                ->get()
+                ->getResultArray();
+
+    }
+
 }
diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php
index 6f7dcf21..88f3ad4b 100755
--- a/app/Views/layout/header.php
+++ b/app/Views/layout/header.php
@@ -610,6 +610,9 @@
                                     
  • CD Master
  • +
  • + Vehicle Master +
  • Users
  • @@ -697,6 +700,9 @@
  • CD Master
  • +
  • + Vehicle Master +
  • Documents
  • diff --git a/app/Views/policy_transaction_endorsement_list.php b/app/Views/policy_transaction_endorsement_list.php index 6d133613..4c5ddef6 100644 --- a/app/Views/policy_transaction_endorsement_list.php +++ b/app/Views/policy_transaction_endorsement_list.php @@ -175,7 +175,7 @@ table.dataTable thead th { -
    +
    Sno Issuer Client Branch Client Name Insurer PolicyPolicy No Endorsement No Expected AmountInvoice StatusInvoice Amount Realization Amount Variance
    @@ -276,6 +276,7 @@ table.dataTable thead th { if (ticketsTable.length) { ticketsTable.DataTable({ + scrollX: true, dom: "<'row'<'col-sm-6'f><'col-sm-5 text-right'B>>" + // Filter left, buttons right "<'row'<'col-sm-12'tr>>" + "<'row'<'col-sm-5'i><'col-sm-7'p>>", // Pagination at the bottom, without page length selector diff --git a/app/Views/policy_transaction_inception_list.php b/app/Views/policy_transaction_inception_list.php index 2f8a4885..37cd6cec 100644 --- a/app/Views/policy_transaction_inception_list.php +++ b/app/Views/policy_transaction_inception_list.php @@ -243,7 +243,7 @@ table.dataTable tbody td { -
    +
    @@ -415,6 +415,7 @@ $(document).ready(function() { if (ticketsTable.length) { ticketsTable.DataTable({ + scrollX: true, dom: "<'row'<'col-sm-6'f><'col-sm-5 text-right'B>>" + // Filter left, buttons right "<'row'<'col-sm-12'tr>>" + "<'row'<'col-sm-5'i><'col-sm-7'p>>", // Pagination at the bottom, without page length selector diff --git a/app/Views/report_bds.php b/app/Views/report_bds.php index a0f075c9..0caa9383 100644 --- a/app/Views/report_bds.php +++ b/app/Views/report_bds.php @@ -31,7 +31,7 @@ table.dataTable tbody td { -
    +
    @@ -148,6 +148,7 @@ $(document).ready(function() { if (ticketsTable.length) { ticketsTable.DataTable({ + scrollX: true, dom: "<'row'<'col-sm-6'f><'col-sm-6 text-right'B>>" + // Filter left, buttons right "<'row'<'col-sm-12'tr>>" + "<'row'<'col-sm-5'i><'col-sm-7'p>>", // Pagination at the bottom, without page length selector diff --git a/app/Views/vehicle_master_list.php b/app/Views/vehicle_master_list.php new file mode 100644 index 00000000..84f27a83 --- /dev/null +++ b/app/Views/vehicle_master_list.php @@ -0,0 +1,812 @@ + + +
    +
    +
    +
    +
    +
    +

    Vehicle Master List

    +
    +
    + +
    +
    +
    + + + + + + + + + + + + + + + $row){ ?> + + + + + + + + + + + + +
    S.No.Owner TypeOwner NameRC Book NoVehicle NoVehicle typeDescriptionAction
    + +
    + + + + + + + + + +
    + + + + + + + + + + + \ No newline at end of file From 094e1fbb1a39f6170397b4b8800981c2b89d0009 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Tue, 8 Oct 2024 10:37:29 +0530 Subject: [PATCH 28/29] FIX_LIVE_ISSUE : RV --- app/Config/Routes.php | 1 + app/Controllers/EmpDataServiceController.php | 5 + app/Controllers/EmployeeController.php | 4 + .../PolicyTransactionController.php | 91 +++++++++++++------ app/Helpers/sendMailNotification.php | 12 +-- app/Helpers/utility_helper.php | 60 +++++++++++- app/Views/client_kyc.php | 9 ++ .../policy_transaction_inception_form.php | 4 +- 8 files changed, 150 insertions(+), 36 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index eb09ded0..dd81efc5 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -311,6 +311,7 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->get("get_client_policy_data_using_policy_no/(:any)", "ClientController::get_client_policy_data_using_policy_no/$1"); $routes->get("get_client_policy_data_using_policy_no_and_endo_no/(:any)", "ClientController::get_client_policy_data_using_policy_no_and_endo_no/$1"); $routes->get("checkInvoiceStatus/(:any)", "PolicyTransactionController::checkInvoiceStatus/$1"); + $routes->get("base_policy_for_policy_inception/(:any)", "PolicyTransactionController::getBasePolicy/$1"); }); diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 3fef51e0..4ea1ce46 100755 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -1811,6 +1811,11 @@ class EmpDataServiceController extends BaseController $file_data = $this->getDataByFileId($file_id, 'success'); $this->setPullNotification($file_data); + // if(excelFileGDriveUpload($file_id, 'batch_file')){ + // $this->myLogger->logme('error', 'Inception Update Google Drive File Upload -- File Uploaded Successfully'); + // }else{ + // $this->myLogger->logme('error', 'Inception Update Google Drive File Upload -- File Uploaded Field'); + // } return 'Import Inception Updated ' . $status_val . '- Updated Count : ' . $emp_count; } diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 38ead2cf..1df4dc16 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -148,6 +148,10 @@ class EmployeeController extends AdminController public function employeesUplodWithEvents() { + // $empDataServiceController = new EmpDataServiceController(); + // !dd($empDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 79])); + + // $job_details = new Jobs(); // $r = Jobs::addJob(['job_name' => 'add','payload' => ['a' => 10, 'b' => 35]]); // print_r($r);//die(); diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php index 62e7e626..c927ac44 100644 --- a/app/Controllers/PolicyTransactionController.php +++ b/app/Controllers/PolicyTransactionController.php @@ -216,25 +216,46 @@ class PolicyTransactionController extends BaseController // $data['renewal_date'] = change_date_format($this->request->getPost('renewal_date'), 'd/m/Y', 'Y-m-d') ?? null; // $data['rollover_date'] = change_date_format($this->request->getPost('rollover_date'), 'd/m/Y', 'Y-m-d') ?? null; - $data['policy_issue_date'] = (isset($data['policy_issue_date']) && $data['policy_issue_date'] !== null && $data['policy_issue_date'] !== '') - ? date('d/m/Y', strtotime($data['policy_issue_date'])) - : null; + // $data['policy_issue_date'] = (isset($data['policy_issue_date']) && $data['policy_issue_date'] !== null && $data['policy_issue_date'] !== '') + // ? date('d/m/Y', strtotime($data['policy_issue_date'])) + // : null; - $data['policy_start_date'] = (isset($data['policy_start_date']) && $data['policy_start_date'] !== null && $data['policy_start_date'] !== '') - ? date('d/m/Y', strtotime($data['policy_start_date'])) - : null; + // $data['policy_start_date'] = (isset($data['policy_start_date']) && $data['policy_start_date'] !== null && $data['policy_start_date'] !== '') + // ? date('d/m/Y', strtotime($data['policy_start_date'])) + // : null; - $data['policy_end_date'] = (isset($data['policy_end_date']) && $data['policy_end_date'] !== null && $data['policy_end_date'] !== '') - ? date('d/m/Y', strtotime($data['policy_end_date'])) - : null; + // $data['policy_end_date'] = (isset($data['policy_end_date']) && $data['policy_end_date'] !== null && $data['policy_end_date'] !== '') + // ? date('d/m/Y', strtotime($data['policy_end_date'])) + // : null; - $data['renewal_date'] = (isset($data['renewal_date']) && $data['renewal_date'] !== null && $data['renewal_date'] !== '') - ? date('d/m/Y', strtotime($data['renewal_date'])) - : null; + // $data['renewal_date'] = (isset($data['renewal_date']) && $data['renewal_date'] !== null && $data['renewal_date'] !== '') + // ? date('d/m/Y', strtotime($data['renewal_date'])) + // : null; - $data['rollover_date'] = (isset($data['rollover_date']) && $data['rollover_date'] !== null && $data['rollover_date'] !== '') - ? date('d/m/Y', strtotime($data['rollover_date'])) - : null; + // $data['rollover_date'] = (isset($data['rollover_date']) && $data['rollover_date'] !== null && $data['rollover_date'] !== '') + // ? date('d/m/Y', strtotime($data['rollover_date'])) + // : null; + + + if(empty($data['policy_issue_date'])){ + $data['policy_issue_date'] = null; + } + + if(empty($data['policy_start_date'])){ + $data['policy_start_date'] = null; + } + + if(empty($data['policy_end_date'])){ + $data['policy_end_date'] = null; + } + + if(empty($data['renewal_date'])){ + $data['renewal_date'] = null; + } + + if(empty($data['rollover_date'])){ + $data['rollover_date'] = null; + } // Separate Insurer and TPA Branch IDs and IDs @@ -275,7 +296,7 @@ class PolicyTransactionController extends BaseController // Determine $is_addon value $data['is_addon'] = in_array($data['policy_type_id'], [1, 2, 6, 7]) ? 1 : - (in_array($data['policy_type_id'], [4, 5]) ? 2 : ($data['policy_type_id'] == 3 && $data['base_policy'] ? 3 : 1)); + (in_array($data['policy_type_id'], [4, 5]) ? 2 : ($data['policy_type_id'] == 3 && isset($data['base_policy']) ? 3 : 1)); // print_r($data); die; @@ -717,16 +738,14 @@ class PolicyTransactionController extends BaseController ->findAll(); - // $data['base_policy_data'] = $this->clientPolicyModel - // ->select('client_policy.*, policy_type.policy_type') - // ->join('policy_type', 'policy_type.id = client_policy.policy_type_id') - // ->where('client_policy.client_id', $data['client_id']) - // ->where('client_policy.client_branch_id', $data['client_branch_id']) - // ->where('client_policy.policy_type_id', 2) - // ->where('client_policy.is_active', 1) - // ->findAll(); - - $data['base_policy_data'] = $this->clientPolicyModel->getPolicyDetailsForRemainder($data['client_id']); + $data['base_policy_data'] = $this->clientPolicyModel + ->select('client_policy.*, policy_type.policy_type') + ->join('policy_type', 'policy_type.id = client_policy.policy_type_id') + ->where('client_policy.client_id', $data['client_id']) + ->where('client_policy.client_branch_id', $data['client_branch_id']) + ->whereIn('client_policy.policy_type_id', [2, 3]) + ->where('client_policy.is_active', 1) + ->findAll(); $data['pt_files'] = $this->PTFileModel ->join('policy_transaction', 'pt_files.pt_id = policy_transaction.id') @@ -1234,6 +1253,24 @@ class PolicyTransactionController extends BaseController } } + public function getBasePolicy($client_id, $client_branch_id) + { + $data = $this->clientPolicyModel + ->select('client_policy.*, policy_type.policy_type') + ->join('policy_type', 'policy_type.id = client_policy.policy_type_id') + ->where('client_policy.client_id', $client_id) + ->where('client_policy.client_branch_id', $client_branch_id) + ->whereIn('client_policy.policy_type_id', [2, 3]) + ->where('client_policy.is_active', 1) + ->findAll(); + + if($data){ + return $this->respond(['status' => true, 'data'=> $data, 'code' => 200], 200); + }else{ + return $this->respond(['status' => false, 'count'=> 0, 'message' => 'No Data Found', 'code' => 404], 200); + } + } + //--------------------------------------------------------------------------------------------------- //get BDS Reports data @@ -1938,7 +1975,7 @@ class PolicyTransactionController extends BaseController //get policy docs from policy transation related tables $pt_files = $this->PTFileModel->getPolicyDriveFilesIndex($policy_id,$policy_doc_name); // ~dd($this->PTFileModel->getLastQuery()); - // ~dd($d); + // ~dd($pt_files); } if($customer_id != "") { diff --git a/app/Helpers/sendMailNotification.php b/app/Helpers/sendMailNotification.php index 7b8fc5c8..311ccd47 100755 --- a/app/Helpers/sendMailNotification.php +++ b/app/Helpers/sendMailNotification.php @@ -105,9 +105,9 @@ class sendMailNotification $wholeData = []; } return $wholeData; - // }else{ - // return "false"; - // } + // }else{ + // return "false"; + // } } else if($action == 'member_ecard_mail'){ $notification = $params['notification']; @@ -160,7 +160,7 @@ class sendMailNotification $client_data =$clientModel->where('id', $client_id)->first(); $notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first(); - if ($notification_data['enabled'] == 1) { + if (isset($notification_data) && $notification_data['enabled'] == 1) { $mail_content = $notification_data['mail_content']; $subject = $notification_data['subject']; $app_link = $_ENV['App_Url']; @@ -259,7 +259,7 @@ class sendMailNotification $client_data =$clientModel->where('id', $client_id)->first(); $notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first(); - if ($notification_data['enabled'] == 1) { + if (isset($notification_data) && $notification_data['enabled'] == 1) { $client_rm_data= $clientRMModel->where('client_id', $client_id)->where('is_active',1)->findAll(); $user_list= []; foreach ($client_rm_data as $key => $value) { @@ -376,7 +376,7 @@ class sendMailNotification $notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first(); $clientRMModel =new ClientRMModel(); - if ($notification_data['enabled'] == 1) { + if (isset($notification_data['enabled']) && $notification_data['enabled'] == 1) { $client_rm_data= $clientRMModel->where('client_id', $client_id)->where('is_active',1)->findAll(); $user_list= []; foreach ($client_rm_data as $key => $value) { diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php index ab40178e..e0e8ef06 100755 --- a/app/Helpers/utility_helper.php +++ b/app/Helpers/utility_helper.php @@ -1,7 +1,10 @@ [ + 'model' => new BatchFileModel(), + 'select' => "client_id, client_policy_id, file_name" + ], + 'files' => [ + 'model' => new FileModel(), + 'select' => "client_id, policy_id as client_policy_id, file_name" + ], + ]; + + if (!array_key_exists($table_name, $models)) { + return; + } + + // Retrieve data + $data = $models[$table_name]['model'] + ->select($models[$table_name]['select']) + ->where('id', $file_id) + ->where('is_active', 1) + ->first(); + + + + if ($data) { + $uploadFilePath .= '/' . $data['file_name']; + // dd($data, $uploadFilePath); + + $GoogleDriveController = new GoogleDriveController(); + $result = $GoogleDriveController->uploadFiletoGdrive( + // client_id : $data['client_id'], + client_policy_id: $data['client_policy_id'], + doc_type : $doc_type, + file_path : $uploadFilePath, + file_name : $data['file_name'] + ); + + // dd($result); + + return true; + + }else{ + + return false; + } + } +} + + function numberToWords($number) diff --git a/app/Views/client_kyc.php b/app/Views/client_kyc.php index 44c2badd..995dd16f 100755 --- a/app/Views/client_kyc.php +++ b/app/Views/client_kyc.php @@ -180,6 +180,8 @@ "&file_name=" + item.file_name + "&client_policy_id=client_policy_id"; + // var url = '' + item.file_name; + // console.log('step 1') if(item.file_name != null && item.file_name != ""){ @@ -298,6 +300,7 @@ "&client_policy_id=client_policy_id"; + // var url = '' + item.file_name; // console.log("Current item:", item); if (item.kyc_doc_type_id == '0') { @@ -468,6 +471,9 @@ "&file_name=" + item.file_name + "&client_policy_id=client_policy_id"; + // var url = '' + item.file_name; + + if(item.kyc_doc_type_id == '0'){ table += ` @@ -508,6 +514,9 @@ "&file_name=" + item.file_name + "&client_policy_id=client_policy_id"; + // var url = '' + item.file_name; + + if(item.file_name != null && item.file_name != ""){ // console.log('step 2') diff --git a/app/Views/policy_transaction_inception_form.php b/app/Views/policy_transaction_inception_form.php index 76d12b85..536580c3 100644 --- a/app/Views/policy_transaction_inception_form.php +++ b/app/Views/policy_transaction_inception_form.php @@ -2864,9 +2864,9 @@ $('#policy_status').change(function(){ if(client_id && client_branch_id){ - var url_for_get_policy_type_list = '' + client_id + '/' + client_branch_id; + var url_for_get_policy_type_list = '' + client_id + '/' + client_branch_id; $.get(url_for_get_policy_type_list, function(response){ - console.log('get_policy_type_for_base_policy response', response) + console.log('base_policy_for_policy_inception response', response) appendBasePolicyList(response.data); }).fail(function(xhr, status, error) { console.error(xhr.responseText); From db76e12e4e465736df2aa0e0df994bc14e783ce8 Mon Sep 17 00:00:00 2001 From: velz Date: Tue, 8 Oct 2024 10:48:02 +0530 Subject: [PATCH 29/29] FIX_AUDIT_HISTORY_ISSUE --- app/Helpers/excel_util_helper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php index 77ba13b0..90c1c64e 100755 --- a/app/Helpers/excel_util_helper.php +++ b/app/Helpers/excel_util_helper.php @@ -1581,7 +1581,7 @@ if(!function_exists('get_emp_records_from_audit_history')) function get_emp_records_from_audit_history($employee_id) { $db = db_connect(); - $query = "SELECT min(id) as id,pk,table_name,field_name,old_value FROM venbaehn_nhance.auditing_history where pk = $employee_id and table_name = 'employees' and field_name in ('name','dob','gender','mobile','email_corporate','relationship') group by field_name order by id asc"; + $query = "SELECT min(id) as id,pk,table_name,field_name,old_value FROM auditing_history where pk = $employee_id and table_name = 'employees' and field_name in ('name','dob','gender','mobile','email_corporate','relationship') group by field_name order by id asc"; $res = $db->query($query); // echo $db->getLastQuery(); $res = $res->getResultArray(); @@ -1603,7 +1603,7 @@ if(!function_exists('get_emp_policy_records_from_audit_history')) function get_emp_policy_records_from_audit_history($emp_policy_id) { $db = db_connect(); - $query = "SELECT min(id) as id,pk,table_name,field_name,old_value FROM venbaehn_nhance.auditing_history where pk = $emp_policy_id and table_name = 'employee_polices' and field_name in ('basic_cover_si','premium','gst') group by field_name order by id asc"; + $query = "SELECT min(id) as id,pk,table_name,field_name,old_value FROM auditing_history where pk = $emp_policy_id and table_name = 'employee_polices' and field_name in ('basic_cover_si','premium','gst') group by field_name order by id asc"; $res = $db->query($query); // echo $db->getLastQuery(); $res = $res->getResultArray();