Quick Quote create and list API : GWM

This commit is contained in:
Gowtham M 2025-11-27 14:24:21 +05:30
parent e04d89ad3f
commit 5983161f83
4 changed files with 83 additions and 9 deletions

View File

@ -90,6 +90,7 @@ $routes->group('api', ['filter' => 'appSignature'], function ($routes) {
$routes->post('enquiry/uploadEnquiryFiles', 'EnquiryController::uploadEnquiryFiles');
$routes->get('enquiry/downloadEnquiryFiles', 'EnquiryController::downloadEnquiryFiles');
$routes->get('enquiry/enquiryFiles', 'EnquiryController::enquiryFiles');
$routes->get('enquiry/getQuickQuoteEnquiryList', 'EnquiryController::getQuickQuoteEnquiryList');
//Proposal

View File

@ -93,6 +93,49 @@ class EnquiryController extends ResourceController
}
}
public function getQuickQuoteEnquiryList()
{
try {
$manager_id = $this->request->getGet('manager_id');
$data = $this->enquiryModel->select('partner_enquiry.*, partner_enquiry.name as insured_name,
VT.vehicle_type as vehicle_type,
A.name as agent_name, A.agent_code,
I.name as insurer_name,I.short_name as insurer_short_name,
S.name as assigned_to_name,
Q.id as quotation_id,
P.payment_mode,
P.premium_amount,
P.policy_number,
P.id as policy_id,
P.policy_pdf_file_name,
PB.name as broker_name,
pm.id as payment_mode_id ,
pm.value as payment_mode_value'
)
->join('vehicle_type VT', 'VT.id = partner_enquiry.vehicle_type_id', 'left')
->join('partner_agent A', 'A.id = partner_enquiry.agent_id', 'left')
->join('partner_staff S', 'S.id = partner_enquiry.assigned_to', 'left')
->join('partner_quotation Q', 'Q.enquiry_id = partner_enquiry.id AND Q.status = "Accepted" ', 'left')
->join('insurers I', 'I.id = partner_enquiry.insurer_id', 'left')
->join('partner_policy P', 'P.quotation_id = Q.id', 'left')
->join('partner_brokers PB', 'PB.id = partner_enquiry.broker_id', 'left')
->join('partner_payment_mode_master pm', 'pm.id = Q.payment_mode_id', 'left')
->where('partner_enquiry.is_active', 1)
->where('partner_enquiry.is_quick_quote', 1)
->where('partner_enquiry.manager_id', $manager_id)
->orderBy('partner_enquiry.created_on', 'ASC')
->findAll();
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $data ], 200);
} catch (\Exception $e) {
return $this->respond(['status' => 'failed', 'code' => 500, 'error' => $e->getMessage()], 500);
}
}
// List all enquiries
public function enquiryQuotePolicyView()
{
@ -235,11 +278,11 @@ class EnquiryController extends ResourceController
'manager_id' => $data['manager_id'] ,
'created_by' => $data['created_by'],
'is_data_created_by_staff' => $data['is_data_created_by_staff'] ?? 1 ,
'assigned_to' => $data['assigned_to'] ?? 0,
'insurer_id' => $data['insurer_id'] ?? 0,
'insurer_branch_id'=> $insurerBranchresult['id'] ?? 0,
'broker_id' => $data['broker_id'] ?? 0,
'assigned_to' => $data['assigned_to'] ?? 0,
'insurer_id' => $data['insurer_id'] ?? 0,
'insurer_branch_id' => $insurerBranchresult['id'] ?? 0,
'broker_id' => $data['broker_id'] ?? 0,
'is_quick_quote' => $data['is_quick_quote'] ?? 0
];
@ -247,8 +290,35 @@ class EnquiryController extends ResourceController
// trigger_email('enquiry_created', ['enquiry_id' => $enquiryId]);
//create Quotation ana mark as accepted
if($data['is_data_created_by_staff'] == 1)
// QUOTATION MULTIPLE INSERT LOGIC
if ($data['is_data_created_by_staff'] == 1 && !empty($data['quotation']) && is_array($data['quotation']))
{
foreach ($data['quotation'] as $q) {
//get insurer_branch_id
if(isset($q['insurer_id']))
{
$query = $this->db->query("SELECT id FROM insurer_branch WHERE insurer_id = ? LIMIT 1", [$q['insurer_id']]);
$insurerBranchresult = $query->getRowArray();
}
$quotationData = [
'enquiry_id' => $enquiryId,
'insured_declared_value' => $q['insured_declared_value'] ?? 0,
'premium_amount' => $q['premium_amount'] ?? 0,
'insurance_plan_type_id' => $q['insurance_plan_type_id'] ?? 0,
'insurer_id' => $q['insurer_id'] ?? 0,
'insurer_branch_id' => $insurerBranchresult['id'] ?? 0,
'manager_id' => $data['manager_id'],
'payment_mode_id' => $q['payment_mode_id'] ?? 0,
'created_by' => $data['created_by'] ,
'is_quick_quote' => $data['is_quick_quote'] ?? 0,
];
$this->QuotationModel->insert($quotationData);
}
}
else if($data['is_data_created_by_staff'] == 1)
{
$quotationData = [

View File

@ -31,6 +31,7 @@ class EnquiryModel extends Model
'is_data_created_by_staff',
'is_data_created_by_manager',
'broker_id',
'is_quick_quote'
];
protected $useTimestamps = true;
@ -58,12 +59,13 @@ class EnquiryModel extends Model
->join('vehicle_type VT', 'VT.id = partner_enquiry.vehicle_type_id', 'left')
->join('partner_agent A', 'A.id = partner_enquiry.agent_id', 'left')
->join('partner_staff S', 'S.id = partner_enquiry.assigned_to', 'left')
->join('partner_quotation Q', 'Q.enquiry_id = partner_enquiry.id AND Q.status = "Accepted"', 'left')
->join('partner_quotation Q', 'Q.enquiry_id = partner_enquiry.id AND Q.status = "Accepted" ', 'left')
->join('insurers I', 'I.id = partner_enquiry.insurer_id', 'left')
->join('partner_policy P', 'P.quotation_id = Q.id', 'left')
->join('partner_brokers PB', 'PB.id = partner_enquiry.broker_id', 'left')
->join('partner_payment_mode_master pm', 'pm.id = Q.payment_mode_id', 'left')
->where('partner_enquiry.is_active', 1)
->where('partner_enquiry.is_quick_quote', 0)
->orderBy('partner_enquiry.created_on', 'ASC');
if($status != null){

View File

@ -23,7 +23,8 @@ class QuotationModel extends Model
'updated_by',
'action_by',
'action_user',
'payment_mode_id'
'payment_mode_id',
'is_quick_quote'
];
protected $useTimestamps = false;
}