FIX_Changes and Additional Requirements 2

This commit is contained in:
sanjeev.p 2026-03-25 09:53:38 +05:30
parent ce7033654a
commit 48a76a54ea
2 changed files with 49 additions and 26 deletions

View File

@ -461,7 +461,7 @@ class AgentController extends ResourceController
} elseif ($normalizedHeader === 'rto') {
$headerMap['rto_id'] = $colIndex;
} elseif ($normalizedHeader === 'segment') {
$headerMap['segment_id'] = $colIndex;
$headerMap['segment'] = $colIndex;
} elseif ($normalizedHeader === 'comp') {
$headerMap['comp'] = $colIndex;
} elseif ($normalizedHeader === 'tp') {
@ -473,7 +473,7 @@ class AgentController extends ResourceController
}
}
if (!isset($headerMap['insurer_id'], $headerMap['rto_id'], $headerMap['segment_id'], $headerMap['vehicle_type_id'])) {
if (!isset($headerMap['insurer_id'], $headerMap['rto_id'], $headerMap['segment'], $headerMap['vehicle_type_id'])) {
throw new \RuntimeException('Invalid grid header. Required: TYPE, INSURER, RTO, SEGMENT');
}
@ -544,7 +544,7 @@ class AgentController extends ResourceController
$insurerRaw = trim((string) ($row[$headerMap['insurer_id']] ?? ''));
$rtoRaw = trim((string) ($row[$headerMap['rto_id']] ?? ''));
$segmentRaw = trim((string) ($row[$headerMap['segment_id']] ?? ''));
$segmentRaw = trim((string) ($row[$headerMap['segment']] ?? ''));
$vehicleTypeRaw = trim((string) ($row[$headerMap['vehicle_type_id']] ?? $segmentRaw));
if ($insurerRaw === '' || $rtoRaw === '' || $segmentRaw === '' || $vehicleTypeRaw === '') {
@ -629,7 +629,7 @@ class AgentController extends ResourceController
'vehicle_type_id' => $vehicleTypeRaw,
'insurer_id' => (string) $insurerId,
'rto_id' => (string) $rtoId,
'segment_id' => $segmentRaw,
'segment' => $segmentRaw,
'comp' => $compSanitized,
'tp' => $tpSanitized,
'fuel' => $fuel,
@ -643,7 +643,7 @@ class AgentController extends ResourceController
->where('vehicle_type_id', $vehicleTypeRaw)
->where('insurer_id', (string) $insurerId)
->where('rto_id', (string) $rtoId)
->where('segment_id', $segmentRaw)
->where('segment', $segmentRaw)
->where('partner_id', (string) $partnerId)
->first();
@ -792,7 +792,7 @@ class AgentController extends ResourceController
->get()
->getResultArray();
$segmentMaster = $db->table('vehicle_type')
$vehicleTypeMaster = $db->table('vehicle_type')
->select('id, vehicle_type')
->where('is_active', 1)
->orderBy('vehicle_type', 'ASC')
@ -832,7 +832,7 @@ class AgentController extends ResourceController
'code' => 200,
'data' => [
'rto_master' => $rtoMaster,
'segment_master' => $segmentMaster,
'vehicle_type_master' => $vehicleTypeMaster,
'plan_master' => $planMaster,
'partner_master' => $partnerMaster,
'months' => $months,
@ -855,15 +855,17 @@ class AgentController extends ResourceController
$partnerId = (int) ($this->request->getGet('partner_id') ?? 0);
$rtoId = (int) ($this->request->getGet('rto_id') ?? 0);
$segmentId = (int) ($this->request->getGet('segment_id') ?? 0);
$vehicleTypeId = (int) ($this->request->getGet('vehicle_type_id') ?? 0);
$planType = trim((string) ($this->request->getGet('insurance_plan_type') ?? ''));
$month = trim((string) ($this->request->getGet('month') ?? ''));
$segment = trim((string) ($this->request->getGet('segment') ?? ''));
if ($partnerId <= 0 || $rtoId <= 0 || $segmentId <= 0 || $planType === '') {
if ($partnerId <= 0 || $rtoId <= 0 || $vehicleTypeId <= 0 || $planType === '' || $segment === '') {
return $this->respond([
'status' => 'failed',
'code' => 200,
'data' => 'partner_id, rto_id, segment_id and insurance_plan_type are required',
'data' => 'partner_id, rto_id, vehicle_type_id, segment and insurance_plan_type are required',
], 200);
}
@ -903,7 +905,8 @@ class AgentController extends ResourceController
->join('vehicle_type vt', 'vt.id = pgd.vehicle_type_id', 'left')
->where('pgd.partner_id', $partnerId)
->where('pgd.rto_id', $rtoId)
->where('pgd.segment_id', $segmentId)
->where('pgd.segment', $segment)
->where('pgd.vehicle_type_id', $vehicleTypeId)
->where("DATE_FORMAT(pgd.created_at, '%Y-%m') =", $effectiveMonth)
->orderBy('pgd.id', 'DESC')
->get()
@ -970,15 +973,16 @@ class AgentController extends ResourceController
$partnerId = (int) ($this->request->getGet('partner_id') ?? 0);
$rtoId = (int) ($this->request->getGet('rto_id') ?? 0);
$segmentId = (int) ($this->request->getGet('segment_id') ?? 0);
$segment = (int) ($this->request->getGet('segment') ?? 0);
$vehicleTypeId = (int) ($this->request->getGet('vehicle_type_id') ?? 0);
$planType = trim((string) ($this->request->getGet('insurance_plan_type') ?? ''));
$month = trim((string) ($this->request->getGet('month') ?? ''));
if ($partnerId <= 0 || $rtoId <= 0 || $segmentId <= 0 || $planType === '') {
if ($partnerId <= 0 || $rtoId <= 0 || $vehicleTypeId <= 0 || $planType === '' || $segment === '') {
return $this->respond([
'status' => 'failed',
'code' => 200,
'data' => 'partner_id, rto_id, segment_id and insurance_plan_type are required',
'data' => 'partner_id, rto_id, vehicle_type_id, segment and insurance_plan_type are required',
], 200);
}
@ -999,16 +1003,18 @@ class AgentController extends ResourceController
COALESCE(pa.retention_rate, 0) AS retention_rate,
rm.rto_code,
rm.rto_name,
vt.vehicle_type AS segment_name,
vt.vehicle_type AS vehicle_type_name,
pdg.segment,
pgd.comp,
pgd.tp
")
->join('partner_agent pa', 'pa.id = pgd.partner_id', 'left')
->join('rto_master rm', 'rm.id = pgd.rto_id', 'left')
->join('vehicle_type vt', 'vt.id = pgd.segment_id', 'left')
->join('vehicle_type vt', 'vt.id = pgd.vehicle_type_id', 'left')
->where('pgd.partner_id', $partnerId)
->where('pgd.rto_id', $rtoId)
->where('pgd.segment_id', $segmentId)
->where('pgd.segment', $segment)
->where('pgd.vehicle_type_id', $vehicleTypeId)
->where("DATE_FORMAT(pgd.created_at, '%Y-%m') =", $effectiveMonth)
->orderBy('pgd.id', 'DESC')
->get()
@ -1063,6 +1069,7 @@ class AgentController extends ResourceController
'Partner',
'Partner Code',
'RTO',
'Type',
'Segment',
'Insurance Plan',
'Grid %',
@ -1076,7 +1083,8 @@ class AgentController extends ResourceController
$row['partner_name'] ?? '',
$row['agent_code'] ?? '',
trim((string) (($row['rto_code'] ?? '') . ' - ' . ($row['rto_name'] ?? '')), ' -'),
$row['segment_name'] ?? '',
$row['vehicle_type_name'] ?? '',
$row['segment'] ?? '',
$row['insurance_plan_type'] ?? $planType,
$row['grid_rate_percentage'] ?? 0,
$row['retention_rate_percentage'] ?? 0,

View File

@ -22,7 +22,7 @@ class PartnerGridDetailsModel extends Model
'vehicle_type_id',
'insurer_id',
'rto_id',
'segment_id',
'segment',
'comp',
'tp',
'fuel',
@ -48,7 +48,7 @@ class PartnerGridDetailsModel extends Model
'vehicle_type_id' => 'permit_empty|max_length[50]',
'insurer_id' => 'required|max_length[50]',
'rto_id' => 'required|max_length[50]',
'segment_id' => 'required|max_length[100]',
'segment' => 'required|max_length[100]',
'comp' => 'permit_empty|max_length[50]',
'tp' => 'permit_empty|max_length[50]',
'remarks' => 'permit_empty|max_length[255]',
@ -69,7 +69,11 @@ class PartnerGridDetailsModel extends Model
'required' => 'RTO is required.',
'max_length' => 'RTO code must not exceed 50 characters.',
],
'segment_id' => [
'vehicle_type_id' => [
'required' => 'Type is required.',
'max_length' => 'Type must not exceed 50 characters.',
],
'segment' => [
'required' => 'Segment is required.',
'max_length' => 'Segment must not exceed 100 characters.',
],
@ -110,11 +114,19 @@ class PartnerGridDetailsModel extends Model
}
/**
* Get records by Segment ID
* Get records by Segment
*/
public function getBySegment(string $segmentId)
public function getBySegment(string $segment)
{
return $this->where('segment_id', $segmentId)->findAll();
return $this->where('segment', $segment)->findAll();
}
/**
* Get records by Vehicle Type ID
*/
public function getByType(string $vehicleTypeId)
{
return $this->where('vehicle_type_id', $vehicleTypeId)->findAll();
}
/**
@ -148,8 +160,11 @@ class PartnerGridDetailsModel extends Model
if (!empty($filters['rto_id'])) {
$builder->where('rto_id', $filters['rto_id']);
}
if (!empty($filters['segment_id'])) {
$builder->where('segment_id', $filters['segment_id']);
if (!empty($filters['vehicle_type_id'])) {
$builder->where('vehicle_type_id', $filters['vehicle_type_id']);
}
if (!empty($filters['segment'])) {
$builder->where('segment', $filters['segment']);
}
if (!empty($filters['partner_id'])) {
$builder->where('partner_id', $filters['partner_id']);