FIX_DateRange
This commit is contained in:
parent
7381d19e3d
commit
bf7b83d523
@ -494,7 +494,9 @@ class ExcelExportController extends ResourceController
|
||||
{
|
||||
try{
|
||||
$managerId = $this->request->getGet('manager_id');
|
||||
|
||||
$from_date = $this->request->getGet('from_date');
|
||||
$to_date = $this->request->getGet('to_date');
|
||||
|
||||
if (empty($managerId)) {
|
||||
$msg = "Missing: ";
|
||||
$msg .= empty($managerId) ? "manager_id " : "";
|
||||
@ -502,8 +504,32 @@ class ExcelExportController extends ResourceController
|
||||
// $ref = ['debug_msg' => 'Missing required parameters: manager_id, broker_id, and month must be provided.'];
|
||||
return $this->response->setJSON(['status' => 'error','code' => 400,'data' => [],'message' => 'Missing required parameters','ref' => $ref])->setStatusCode(200);
|
||||
}
|
||||
|
||||
if (empty($from_date) || empty($to_date)) {
|
||||
|
||||
$data = $this->getDataLowPremiumAgent($managerId);
|
||||
// Default: last 10 days
|
||||
$fromObj = new \DateTime('-10 days');
|
||||
$toObj = new \DateTime();
|
||||
|
||||
} else {
|
||||
|
||||
// Convert d-m-Y → DateTime
|
||||
$fromObj = \DateTime::createFromFormat('d-m-Y', $from_date);
|
||||
$toObj = \DateTime::createFromFormat('d-m-Y', $to_date);
|
||||
|
||||
if (!$fromObj || !$toObj) {
|
||||
return $this->response->setJSON([
|
||||
'status' => 'error',
|
||||
'message' => 'Invalid date format (expected d-m-Y)',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
// For DB query
|
||||
$fromDate = $fromObj->format('Y-m-d 00:00:00');
|
||||
$toDate = $toObj->format('Y-m-d 23:59:59');
|
||||
|
||||
$data = $this->getDataLowPremiumAgent($managerId,$fromDate,$toDate);
|
||||
if (empty($data)) {
|
||||
throw new \RuntimeException('No low premium agents found...', 404);
|
||||
}
|
||||
@ -606,6 +632,8 @@ class ExcelExportController extends ResourceController
|
||||
try{
|
||||
$managerId = $this->request->getGet('manager_id');
|
||||
$agentId = $this->request->getGet('agent_id');
|
||||
$from_date = $this->request->getGet('from_date');
|
||||
$to_date = $this->request->getGet('to_date');
|
||||
// $month = $this->request->getGet('month');
|
||||
|
||||
if (empty($managerId) || empty($agentId)) {
|
||||
@ -618,8 +646,33 @@ class ExcelExportController extends ResourceController
|
||||
return $this->response->setJSON(['status' => 'error','code' => 400,'data' => [],'message' => 'Missing required parameters','ref' => $ref])->setStatusCode(200);
|
||||
}
|
||||
|
||||
if (empty($from_date) || empty($to_date)) {
|
||||
|
||||
// Default: last 10 days
|
||||
$fromObj = new \DateTime('-10 days');
|
||||
$toObj = new \DateTime();
|
||||
|
||||
} else {
|
||||
|
||||
// Convert d-m-Y → DateTime
|
||||
$fromObj = \DateTime::createFromFormat('d-m-Y', $from_date);
|
||||
$toObj = \DateTime::createFromFormat('d-m-Y', $to_date);
|
||||
|
||||
if (!$fromObj || !$toObj) {
|
||||
return $this->response->setJSON([
|
||||
'status' => 'error',
|
||||
'message' => 'Invalid date format (expected d-m-Y)',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
// For DB query
|
||||
$fromDate = $fromObj->format('Y-m-d 00:00:00');
|
||||
$toDate = $toObj->format('Y-m-d 23:59:59');
|
||||
|
||||
|
||||
// Renamed helper function for consistency: getAgentMonthlyPoliciesData
|
||||
$data = $this->getDataPerformingAgentsByID($managerId, $agentId); // , $month);
|
||||
$data = $this->getDataPerformingAgentsByID($managerId, $agentId,$fromDate,$toDate); // , $month);
|
||||
|
||||
if (empty($data)) {
|
||||
throw new \RuntimeException('No policies found for this agent for the specified month.', 404);
|
||||
@ -731,6 +784,8 @@ class ExcelExportController extends ResourceController
|
||||
|
||||
try{
|
||||
$managerId = $this->request->getGet('manager_id');
|
||||
$from_date = $this->request->getGet('from_date');
|
||||
$to_date = $this->request->getGet('to_date');
|
||||
|
||||
if (empty($managerId)) {
|
||||
$msg = "Missing: manager_id";
|
||||
@ -738,8 +793,40 @@ class ExcelExportController extends ResourceController
|
||||
return $this->response->setJSON(['status' => 'error', 'code' => 400, 'data' => [], 'message' => 'Missing required parameters', 'ref' => $ref])->setStatusCode(200);
|
||||
}
|
||||
|
||||
if (empty($from_date) || empty($to_date)) {
|
||||
|
||||
// Default: last 10 days
|
||||
$fromObj = new \DateTime('-10 days');
|
||||
$toObj = new \DateTime();
|
||||
|
||||
} else {
|
||||
|
||||
// Convert d-m-Y → DateTime
|
||||
$fromObj = \DateTime::createFromFormat('d-m-Y', $from_date);
|
||||
$toObj = \DateTime::createFromFormat('d-m-Y', $to_date);
|
||||
|
||||
if (!$fromObj || !$toObj) {
|
||||
return $this->response->setJSON([
|
||||
'status' => 'error',
|
||||
'message' => 'Invalid date format (expected d-m-Y)',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
// For DB query
|
||||
$fromDate = $fromObj->format('Y-m-d 00:00:00');
|
||||
$toDate = $toObj->format('Y-m-d 23:59:59');
|
||||
|
||||
// For filename
|
||||
$startDateFile = $fromObj->format('d_m_Y');
|
||||
$endDateFile = $toObj->format('d_m_Y');
|
||||
|
||||
// For title
|
||||
$startDateTitle = $fromObj->format('d-m-Y');
|
||||
$endDateTitle = $toObj->format('d-m-Y');
|
||||
|
||||
// Renamed helper function for consistency: getAgentMonthlyPoliciesData
|
||||
$data = $this->getDataPerformingAgentsTop50($managerId);
|
||||
$data = $this->getDataPerformingAgentsTop50($managerId,$fromDate,$toDate);
|
||||
$header = ['S.No', 'Partner Code', 'Partner Name', 'Policy Count', 'Premium Amount'];
|
||||
|
||||
if (empty($data)) {
|
||||
@ -780,14 +867,13 @@ class ExcelExportController extends ResourceController
|
||||
$totalRow[$lastColIndex] = $totalSum;
|
||||
$finalData[] = $totalRow;
|
||||
|
||||
$monthName = date('M_Y') ;
|
||||
$fileName = 'Performing_Partner_Top_50_Policies_Details_Monthly_Report_' . $monthName . '.xlsx';
|
||||
$fileName = 'Performing_Partner_Top_50_Policies_Details_Monthly_Report.xlsx';
|
||||
|
||||
// --- CALL CENTRALIZED FUNCTION ---
|
||||
$this->streamExcelFile(
|
||||
$header,
|
||||
$finalData,
|
||||
"Performing Partner ( Top 50 ) Policies Details - Monthly Report ".$monthName,
|
||||
"Performing Partner ( Top 50 ) Policies Details - From ".$startDateTitle." to ".$endDateTitle." Report",
|
||||
$fileName,
|
||||
true // This will ignore the bold/alignment logic for the last row
|
||||
);
|
||||
@ -838,6 +924,8 @@ class ExcelExportController extends ResourceController
|
||||
{
|
||||
try{
|
||||
$managerId = $this->request->getGet('manager_id');
|
||||
$from_date = $this->request->getGet('from_date');
|
||||
$to_date = $this->request->getGet('to_date');
|
||||
|
||||
if (empty($managerId)) {
|
||||
$msg = "Missing: ";
|
||||
@ -847,7 +935,40 @@ class ExcelExportController extends ResourceController
|
||||
return $this->response->setJSON(['status' => 'error','code' => 400,'data' => [],'message' => 'Missing required parameters','ref' => $ref])->setStatusCode(200);
|
||||
}
|
||||
|
||||
$data = $this->getDataAgentsWithoutPolicies($managerId);
|
||||
if (empty($from_date) || empty($to_date)) {
|
||||
|
||||
// Default: last 10 days
|
||||
$fromObj = new \DateTime('-10 days');
|
||||
$toObj = new \DateTime();
|
||||
|
||||
} else {
|
||||
|
||||
// Convert d-m-Y → DateTime
|
||||
$fromObj = \DateTime::createFromFormat('d-m-Y', $from_date);
|
||||
$toObj = \DateTime::createFromFormat('d-m-Y', $to_date);
|
||||
|
||||
if (!$fromObj || !$toObj) {
|
||||
return $this->response->setJSON([
|
||||
'status' => 'error',
|
||||
'message' => 'Invalid date format (expected d-m-Y)',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
// For DB query
|
||||
$fromDate = $fromObj->format('Y-m-d 00:00:00');
|
||||
$toDate = $toObj->format('Y-m-d 23:59:59');
|
||||
|
||||
// For filename
|
||||
$startDateFile = $fromObj->format('d_m_Y');
|
||||
$endDateFile = $toObj->format('d_m_Y');
|
||||
|
||||
// For title
|
||||
$startDateTitle = $fromObj->format('d-m-Y');
|
||||
$endDateTitle = $toObj->format('d-m-Y');
|
||||
|
||||
|
||||
$data = $this->getDataAgentsWithoutPolicies($managerId,$fromDate,$toDate);
|
||||
|
||||
if (empty($data)) {
|
||||
throw new \RuntimeException('No Partners without policies found.', 404);
|
||||
@ -871,19 +992,12 @@ class ExcelExportController extends ResourceController
|
||||
}
|
||||
|
||||
|
||||
|
||||
// End Date: Today
|
||||
$endDate = date('Ymd');
|
||||
$endDateFile = date('d_m_Y');
|
||||
$endDateTitle = date('d-m-Y');
|
||||
// Start Date: 9 days ago (10th day is today)
|
||||
$startDate = date('Ymd', strtotime('-9 days'));
|
||||
$startDateFile = date('d_m_Y', strtotime('-9 days'));
|
||||
$startDateTitle = date('d-m-Y', strtotime('-9 days'));
|
||||
|
||||
// --- Filename Generation ---
|
||||
|
||||
$fileName = 'Non_Performing_Partners_No_Business_For_Last_10_Days_' . $startDateFile . '_to_' . $endDateFile . '.xlsx';
|
||||
// $fileName = 'Non_Performing_Partners_No_Business_For_Last_10_Days_' . $startDateFile . '_to_' . $endDateFile . '.xlsx';
|
||||
$fileName = 'Non_Performing_Partners_No_Business_From_' . $startDateFile . '_To_' . $endDateFile . '.xlsx';
|
||||
|
||||
|
||||
// Example output: Agents_Without_Policies_20251206_to_20251215.xlsx
|
||||
|
||||
@ -891,7 +1005,7 @@ class ExcelExportController extends ResourceController
|
||||
$this->streamExcelFile(
|
||||
$header,
|
||||
$finalData,
|
||||
"Non Performing Partners ( No Business For Last 10 Days " . $startDateTitle . " to " . $endDateTitle." )",
|
||||
"Non Performing Partners ( No Business From " . $startDateTitle . " to " . $endDateTitle . " )",
|
||||
$fileName,
|
||||
false // This will ignore the bold/alignment logic for the last row
|
||||
);
|
||||
@ -1067,10 +1181,12 @@ class ExcelExportController extends ResourceController
|
||||
]);
|
||||
}
|
||||
|
||||
$fromDate = date('Y-m-d', strtotime('-10 days'));
|
||||
$toDate = date('Y-m-d');
|
||||
// 1. Fetch Data First
|
||||
$monthlyData = $this->getDataPerformingAgentsByID($managerId, null);
|
||||
$lowPremiumData = $this->getDataLowPremiumAgent($managerId);
|
||||
$inactiveData = $this->getDataAgentsWithoutPolicies($managerId);
|
||||
$monthlyData = $this->getDataPerformingAgentsByID($managerId,null,$fromDate,$toDate);
|
||||
$lowPremiumData = $this->getDataLowPremiumAgent($managerId,$fromDate,$toDate);
|
||||
$inactiveData = $this->getDataAgentsWithoutPolicies($managerId,$fromDate,$toDate);
|
||||
|
||||
// 2. Add Total Rows where needed (Premium is usually the last index)
|
||||
if (!empty($monthlyData)) {
|
||||
@ -1804,7 +1920,7 @@ class ExcelExportController extends ResourceController
|
||||
* @param string $month ('current' or 'previous')
|
||||
* @return array
|
||||
*/
|
||||
private function getDataPerformingAgentsByID($managerId, $AgentId): array
|
||||
private function getDataPerformingAgentsByID($managerId, $AgentId,$fromDate,$toDate): array
|
||||
{
|
||||
$data = [];
|
||||
|
||||
@ -1843,9 +1959,11 @@ class ExcelExportController extends ResourceController
|
||||
$builder->where('pp.policy_number IS NOT NULL');
|
||||
$builder->where('pa.id', $AgentId);
|
||||
|
||||
$fromDate = date('Y-m-d', strtotime('-10 days'));
|
||||
$toDate = date('Y-m-d');
|
||||
// $fromDate = date('Y-m-d', strtotime('-10 days'));
|
||||
// $toDate = date('Y-m-d');
|
||||
|
||||
|
||||
|
||||
$builder->where('pp.issued_date >=', $fromDate);
|
||||
$builder->where('pp.issued_date <=', $toDate);
|
||||
|
||||
@ -1882,14 +2000,14 @@ class ExcelExportController extends ResourceController
|
||||
}
|
||||
|
||||
|
||||
public function getDataPerformingAgentsTop50($manager_id){
|
||||
public function getDataPerformingAgentsTop50($manager_id,$fromDate,$toDate){
|
||||
|
||||
$data = [];
|
||||
|
||||
try {
|
||||
$builder = $this->db->table('partner_policy pp');
|
||||
$fromDate = date('Y-m-d', strtotime('-10 days'));
|
||||
$toDate = date('Y-m-d');
|
||||
// $fromDate = date('Y-m-d', strtotime('-10 days'));
|
||||
// $toDate = date('Y-m-d');
|
||||
|
||||
$builder->select("
|
||||
pa.agent_code,
|
||||
@ -1934,7 +2052,7 @@ class ExcelExportController extends ResourceController
|
||||
* @param string $managerId
|
||||
* @return array
|
||||
*/
|
||||
private function getDataAgentsWithoutPolicies($managerId): array
|
||||
private function getDataAgentsWithoutPolicies($managerId,$fromDate,$toDate): array
|
||||
{
|
||||
$data = [];
|
||||
|
||||
@ -1956,8 +2074,13 @@ class ExcelExportController extends ResourceController
|
||||
$builder->join('partner_policy hist', 'pa.id = hist.agent_id', 'inner');
|
||||
|
||||
// 3. LEFT JOIN checks for policies in the last 10 days
|
||||
$builder->join('partner_policy recent',
|
||||
"pa.id = recent.agent_id AND recent.issued_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 10 DAY)",
|
||||
// $builder->join('partner_policy recent',
|
||||
// "pa.id = recent.agent_id AND recent.issued_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 10 DAY)",
|
||||
// 'left'
|
||||
// );
|
||||
$builder->join('partner_policy recent',"pa.id = recent.agent_id
|
||||
AND recent.issued_date >= '{$fromDate}'
|
||||
AND recent.issued_date <= '{$toDate}'",
|
||||
'left'
|
||||
);
|
||||
|
||||
@ -2005,7 +2128,7 @@ class ExcelExportController extends ResourceController
|
||||
* @return array
|
||||
*/
|
||||
//any changed in this query also change in do the same in DashboardController - getDataLowPremiumAgent
|
||||
public function getDataLowPremiumAgent($manager_id){
|
||||
public function getDataLowPremiumAgent($manager_id,$fromDate,$toDate){
|
||||
|
||||
$builder = $this->db->table('partner_policy pp');
|
||||
|
||||
@ -2028,6 +2151,9 @@ class ExcelExportController extends ResourceController
|
||||
|
||||
$builder->having('total_premium_amount <', 50000);
|
||||
|
||||
$builder->where('pp.issued_date >=', $fromDate);
|
||||
$builder->where('pp.issued_date <=', $toDate);
|
||||
|
||||
// RAW condition must be inside where() with FALSE
|
||||
// $builder->where("
|
||||
// pp.issued_date >= DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 10 DAY)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user