Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev

This commit is contained in:
VENKATESHWARAN 2025-10-31 17:16:57 +05:30
commit 6c1ecac7a1
9 changed files with 6274 additions and 6231 deletions

View File

@ -428,7 +428,7 @@ $routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) {
$routes->group("report", ["filter" => "authMVC"], function ($routes) {
$routes->match(['get', 'post'],"list", "PolicyTransactionController::reportBDSNew");
$routes->match(['get', 'post'],"listNew", "PolicyTransactionController::reportBDSNew");
$routes->match(['get', 'post'],"list_old", "PolicyTransactionController::reportBDS");
$routes->get("report-varience-list", "PolicyTransactionController::reportVarience");
$routes->get("report-business-list", "PolicyTransactionController::reportBusinessList");
$routes->get("report-finance-list", "PolicyTransactionController::reportFinanceList");

View File

@ -937,7 +937,13 @@ class BDSReportController extends AdminController
}
}
public function bdsTATReport()
/** New arugument Introduced Named as "$isInternalCalled"
* Functional Based called means $isInternalCalled is True.
* Output returning as Array
* Route Based called means $isInternalCalled is False. becoz this is External Call
* Output returning as Page
*/
public function bdsTATReport($isInternalCalled = false)
{
$sql = "
SELECT
@ -1010,9 +1016,8 @@ class BDSReportController extends AdminController
// dd(db_connect()->getLastQuery(),$result);
$data['data'] = $result;
// dd($data, get_role_id(), ENROLLMENT_TEAM_ID, user_team());
// return $this->loadLayout('bds_tat_wise_report', $data);
return $result;
if ($isInternalCalled) { return $result; }
return $this->loadLayout('bds_tat_wise_report', $data);
}
public function accountMangerStatusBDSReport()
@ -1141,7 +1146,7 @@ class BDSReportController extends AdminController
if ($report_type == 1){
$data['page_title'] = "BDS TAT Report";
$data['data'] = $this->bdsTATReport();
$data['data'] = $this->bdsTATReport(true); // Functional Based called means True
}else if ($report_type == 2){
$data['page_title'] = "Account Manager Status Report";

View File

@ -1,46 +1,46 @@
<?php
namespace App\Controllers;
namespace App\Controllers;
use App\Controllers\BaseController;
use App\Controllers\GoogleDriveController;
use App\Controllers\BaseController;
use App\Controllers\GoogleDriveController;
use App\Helpers\DepositHelper;
use CodeIgniter\API\ResponseTrait;
use App\Helpers\DepositHelper;
use CodeIgniter\API\ResponseTrait;
use App\Models\PolicyTransactionModel;
use App\Models\PolicyTransactionStatusModel;
use App\Models\ClientModel;
use App\Models\ClientBranchModel;
use App\Models\ClientDepositModel;
use App\Models\ClientPolicyModel;
use App\Models\PolicyTypeModel;
use App\Models\InsurerBranchModel;
use App\Models\InsurerModel;
use App\Models\KYCEntityTypeModel;
use App\Models\ClientKYCDocsModel;
use App\Models\TPABranchModel;
use App\Models\TPAModel;
use App\Models\PTFileModel;
use App\Models\PTCOShareDetailsModel;
use App\Models\EmployeeModel;
use App\Models\UserTeamsModel;
use App\Models\UserModel;
use App\Models\EmployeePolicyModel;
use App\Models\InsurerStatements;
use App\Models\InvPaymentDetailsModel;
use App\Models\BatchFileModel;
use App\Models\FileModel;
use App\Models\COShareStmtDetailsModel;
use App\Models\BdsPlacementModel;
use Kint\Kint;
use App\Helpers\MailHelper;
use App\Helpers\ExcelSanitizeHelper;
use App\Models\NhanceBranchModel;
use Exception;
use App\Models\PolicyTransactionModel;
use App\Models\PolicyTransactionStatusModel;
use App\Models\ClientModel;
use App\Models\ClientBranchModel;
use App\Models\ClientDepositModel;
use App\Models\ClientPolicyModel;
use App\Models\PolicyTypeModel;
use App\Models\InsurerBranchModel;
use App\Models\InsurerModel;
use App\Models\KYCEntityTypeModel;
use App\Models\ClientKYCDocsModel;
use App\Models\TPABranchModel;
use App\Models\TPAModel;
use App\Models\PTFileModel;
use App\Models\PTCOShareDetailsModel;
use App\Models\EmployeeModel;
use App\Models\UserTeamsModel;
use App\Models\UserModel;
use App\Models\EmployeePolicyModel;
use App\Models\InsurerStatements;
use App\Models\InvPaymentDetailsModel;
use App\Models\BatchFileModel;
use App\Models\FileModel;
use App\Models\COShareStmtDetailsModel;
use App\Models\BdsPlacementModel;
use Kint\Kint;
use App\Helpers\MailHelper;
use App\Helpers\ExcelSanitizeHelper;
use App\Models\NhanceBranchModel;
use Exception;
class PolicyTransactionController extends BaseController
{
class PolicyTransactionController extends BaseController
{
use ResponseTrait;
protected $myLogger;
@ -3179,8 +3179,8 @@ class PolicyTransactionController extends BaseController
}
public function reportBDSNew()
{
public function reportBDSNew()
{
// 🧭 Basic Page Info
$data['tab_name'] = 'BDS Report';
$data['page_name'] = 'BDS Report';
@ -3285,8 +3285,8 @@ public function reportBDSNew()
// 🧩 Load View
$this->loadLayout('report_bds_filter', $data);
}
}
}
}

View File

@ -779,32 +779,63 @@ class UserController extends AdminController
}
}
// public function downloadIncentivesFile($file_id)
// {
// try {
// $result = $this->partnerManagerIncentiveFileModel->where('id', $file_id)->first();
// if (!$result || empty($result['incentive_file_name'])) {
// throw new \Exception("File Name Not Found");
// }
// $incentive_file_name = $result['incentive_file_name'];
// $file_name = basename($incentive_file_name);
// $filePath = WRITEPATH . 'uploads/incentives/' . $file_name;
// if (file_exists($filePath)) {
// return $this->response->download($filePath, null);
// } else {
// throw new \Exception("File Not Found");
// }
// } catch (\Exception $e) {
// $this->myLogger->logme('error', $e->getMessage());
// // Show 404 error view
// $data['message'] = $e->getMessage();
// return view('errors/404', $data);
// }
// }
public function downloadIncentivesFile($file_id)
{
try {
$result = $this->partnerManagerIncentiveFileModel->where('id', $file_id)->first();
if (!$result || empty($result['incentive_file_name'])) {
throw new \Exception("File Name Not Found");
throw new \Exception("File Name Not Found for ID {$file_id}");
}
$incentive_file_name = $result['incentive_file_name'];
$file_name = basename($incentive_file_name);
$filePath = WRITEPATH . 'uploads/incentives/' . $file_name;
if (file_exists($filePath)) {
return $this->response->download($filePath, null);
} else {
throw new \Exception("File Not Found");
if (!file_exists($filePath)) {
throw new \Exception("File Not Found: {$file_name}");
}
} catch (\Exception $e) {
return $this->response->download($filePath, null);
} catch (\Throwable $e) {
// Catch all kinds of exceptions
$this->myLogger->logme('error', $e->getMessage());
// Show 404 error view
$data['message'] = $e->getMessage();
return view('errors/404', $data);
// Return proper 404 for missing file, else 500 for unexpected error
if (str_contains($e->getMessage(), 'Not Found')) {
return $this->response->setStatusCode(404)->setBody($e->getMessage());
}
return $this->response->setStatusCode(500)->setBody('Internal Server Error');
}
}

View File

@ -1,11 +1,11 @@
<?php
namespace App\Models;
namespace App\Models;
use CodeIgniter\Model;
use CodeIgniter\Model;
class PolicyTransactionModel extends Model
{
class PolicyTransactionModel extends Model
{
protected $table = 'policy_transaction';
protected $primaryKey = 'id';
protected $useAutoIncrement = true;
@ -1851,7 +1851,7 @@ class PolicyTransactionModel extends Model
policy_transaction.ref AS ref,
DATE_FORMAT(policy_transaction.policy_issue_date, '%d %b %Y') AS policy_issue_date,
DATE_FORMAT( policy_transaction.policy_issue_date,, '%b %Y') AS policy_issue_month,
DATE_FORMAT( policy_transaction.policy_issue_date, '%b %Y') AS policy_issue_month,
CASE
WHEN 1 = 1 THEN 'no statement uploaded'
@ -2297,4 +2297,4 @@ class PolicyTransactionModel extends Model
}
}

View File

@ -1550,9 +1550,10 @@ table.dataTable tbody td {
container.append(`<div class="no-files-message">No Files have been Uploaded</div>`);
}
},
error: function(xhr) {
error: function (xhr, status, errorThrown) {
container.html(`<div class="no-files-message">No Files have been Uploaded</div>`);
toastr.error('Server error occurred.', 'Error');
console.log("Error: " + xhr.status + " - " + errorThrown);
if (xhr.status !== 404) toastr.error(errorThrown || xhr.responseText || 'Something went wrong', 'Error');
}
});
}

View File

@ -62,7 +62,7 @@
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script>
<!-- <link rel="manifest" href="../manifest.json"> -->
<link rel="manifest" href="../manifest.json">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&display=swap" rel="stylesheet">
@ -71,15 +71,15 @@
<script>
// if ('serviceWorker' in navigator) {
// window.addEventListener('load', function() {
// navigator.serviceWorker.register('../service-worker.js').then(function(registration) {
// // console.log('Service Worker registration successful with scope:', registration.scope);
// }, function(err) {
// // console.log('Service Worker registration failed:', err);
// });
// });
// }
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('../service-worker.js').then(function(registration) {
// console.log('Service Worker registration successful with scope:', registration.scope);
}, function(err) {
// console.log('Service Worker registration failed:', err);
});
});
}
</script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.min.css" />
@ -1254,16 +1254,16 @@
}
/* Cancel Bootstrap's .form-control for file inputs */
input[type="file"].form-control {
height: auto !important;
/* input[type="file"].form-control { */
/* height: auto !important;*/
/* remove forced height */
padding: initial !important;
/* padding: initial !important;*/
/* reset padding */
font-size: inherit !important;
/* font-size: inherit !important;*/
/* reset font size */
line-height: normal !important;
/* line-height: normal !important;*/
/* reset line height */
}
/* } */
/* Apply to Select2 (single select) */

View File

@ -1,43 +1,44 @@
<style>
.table th,
.table td {
<style>
.table th,
.table td {
padding: 8px;
}
}
table.dataTable tbody td {
table.dataTable tbody td {
padding: 4px 4px !important;
}
}
.col-12 {
.col-12 {
max-width: 98% !important;
}
}
.dataTables_filter {
.dataTables_filter {
position: absolute;
}
}
.right-align-input {
.right-align-input {
text-align: right;
}
}
.badge-container {
.badge-container {
background: #F0F0F0;
padding: 6px 12px;
border-radius: 6px;
font-size: 14px;
display: inline-block;
}
#totals {
}
#totals {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
}
</style>
</style>
<div class="col-12" id="second_page">
<div class="col-12" id="second_page">
<div class="card">
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
@ -158,19 +159,24 @@ table.dataTable tbody td {
$uniqueAgreedAmountPerInsurer = "$policy_no-$policy_type-$client_name-$insurer_branch_name" ;
$pastMonth = explode("-",$uniqueRecord )[1] ;
$currentMonth = $policy_updated_month ;
if(isset($uniquePoliciesReport[$uniqueRecord]) && $statement_status == "no statement uploaded" ){
continue ;
}
else if(isset($uniquePoliciesReport[$uniqueRecord]) && $statement_status == "statement uploaded" ){
else if(isset($uniquePoliciesReport[$uniqueRecord]) && $statement_status == "statement uploaded" && $pastMonth != $currentMonth){
unset($uniquePoliciesReport[$uniqueRecord]);
}else{
if(isset($uniqueAgreedAmountList[$uniqueAgreedAmountPerInsurer]) ){
$uniqueAgreedAmountList[$uniqueAgreedAmountPerInsurer] -= $row['billed_amt'];
$row['total_irda_amt'] = 0;
$row['total_irda_amt'] = $pastMonth == $currentMonth ? $row['total_irda_amt'] : 0 ;
$row['outstanding_amt'] = $uniqueAgreedAmountList[$uniqueAgreedAmountPerInsurer];
$row['multiple_months'] = true;
$row['multiple_months'] = $pastMonth == $currentMonth ? false : true ;
}
else{
$row['outstanding_amt'] = $row['total_irda_amt'] - $row['billed_amt'];
@ -262,10 +268,10 @@ table.dataTable tbody td {
</div>
</div><!-- end col -->
</div>
</div>
</div>
<!-- modal content -->
<div class="modal fade" id="centermodal" tabindex="-1" role="dialog" aria-hidden="true" aria-modal="true" data-backdrop="static">
<!-- modal content -->
<div class="modal fade" id="centermodal" tabindex="-1" role="dialog" aria-hidden="true" aria-modal="true" data-backdrop="static">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header" style="background-color: gainsboro;">
@ -292,13 +298,13 @@ table.dataTable tbody td {
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</div><!-- /.modal -->
<!-------------------------------------------------------------------------------------------------->
<!-------------------------------------------------------------------------------------------------->
<script>
// Datatable document ready
$(document).ready(function() {
<script>
// Datatable document ready
$(document).ready(function() {
var ticketsTable = $('#scroll-horizontal-datatable');
@ -581,11 +587,11 @@ $(document).ready(function() {
} else {
console.error("Table atet found.");
}
});
});
// ----------------------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------------------
function showCoShareStatementDetails(input){
function showCoShareStatementDetails(input){
let pt_id = $(input).data('id');
console.log('pt_id', pt_id)
@ -594,10 +600,10 @@ function showCoShareStatementDetails(input){
myModal.show();
getCoShareStatementDetails(pt_id)
}
}
function getCoShareStatementDetails(pt_id){
function getCoShareStatementDetails(pt_id){
let url = '<?= base_url('util/getCoShareStatementDetails/') ?>' + pt_id;
@ -616,9 +622,9 @@ function getCoShareStatementDetails(pt_id){
console.error(xhr.responseText);
});
}
}
function appendTableData(data) {
function appendTableData(data) {
// Ensure the table body selector matches your table's structure
let tableBody = $("#table_data");
@ -640,7 +646,7 @@ function appendTableData(data) {
`;
tableBody.append(tableRow);
});
}
}
</script>
</script>

View File

@ -1,9 +1,9 @@
<style>
<style>
</style>
</style>
<div class="container-fluid-min">
<div class="container-fluid-min">
<div class="col-12" id="bds_filter">
<div class="card-body">
<div id="accordion" class="mb-3">
@ -149,11 +149,11 @@
<div id="file_list">
<?php include('report_bds.php'); ?>
</div>
</div>
</div>
<script>
<script>
let client_list = [];
let branch_list = [];
let policy_list = [];
@ -559,4 +559,4 @@
}
}
</script>
</script>