commission list
This commit is contained in:
parent
e6151a8a82
commit
c75e855836
@ -93,9 +93,11 @@ class PolicyController extends ResourceController
|
||||
try {
|
||||
|
||||
$id = $this->request->getGet('id');
|
||||
$record = $this->PolicyModel->select('partner_policy.* , ipti.insurance_plan_type,pq.insurer_id')
|
||||
$record = $this->PolicyModel->select('partner_policy.* , ipti.insurance_plan_type,pq.insurer_id,,A.retention_rate as agent_retention_rate,S.retention_rate as manager_retention_rate')
|
||||
->join('partner_quotation pq', 'pq.id = partner_policy.quotation_id', 'left')
|
||||
->join('partner_insurance_plan_type_master ipti', 'ipti.id = pq.insurance_plan_type_id', 'left')
|
||||
->join('partner_agent A', 'A.id = partner_policy.agent_id', 'left')
|
||||
->join('partner_staff S', 'S.id = partner_policy.manager_id', 'left')
|
||||
->find($id);
|
||||
|
||||
$record['issued_date'] = format_date_for_client($record['issued_date']);
|
||||
@ -851,13 +853,15 @@ class PolicyController extends ResourceController
|
||||
{
|
||||
log_message('debug', 'calculateCommission() started with policyId: ' . $policyId);
|
||||
|
||||
$record = $this->PolicyModel->select('partner_policy.* , rto_state.rto_state_name as rto_state_code , ,pe.insurer_id , VT.vehicle_type as vehicle_type_master , ipti.insurance_plan_type,')
|
||||
$record = $this->PolicyModel->select('partner_policy.* , rto_state.rto_state_name as rto_state_code ,pe.insurer_id , VT.vehicle_type as vehicle_type_master , ipti.insurance_plan_type,A.retention_rate as agent_retention_rate,S.retention_rate as manager_retention_rate')
|
||||
->join('partner_enquiry pe', 'pe.id = partner_policy.enquiry_id', 'left')
|
||||
->join('vehicle_type VT', 'VT.id = pe.vehicle_type_id', 'left')
|
||||
->join('partner_quotation pq', 'pq.id = partner_policy.quotation_id', 'left')
|
||||
->join('partner_insurance_plan_type_master ipti', 'ipti.id = pq.insurance_plan_type_id', 'left')
|
||||
->join('rto_master rto_state', 'rto_state.rto_state = partner_policy.rto_state_code', 'left')
|
||||
// ->join('rto_master rto_city', 'rto_city.rto_code = partner_policy.rto_city_code', 'left')
|
||||
->join('partner_agent A', 'A.id = partner_policy.agent_id', 'left')
|
||||
->join('partner_staff S', 'S.id = partner_policy.manager_id', 'left')
|
||||
->where('partner_policy.id', $policyId)
|
||||
->first();
|
||||
|
||||
@ -941,12 +945,25 @@ class PolicyController extends ResourceController
|
||||
|
||||
if (!empty($result) && isset($result['success']) && $result['success'] === true) {
|
||||
|
||||
|
||||
|
||||
$actualCommission = $result['data']['payout'];
|
||||
$agentRetention = $record['agent_retention_rate'];
|
||||
$managerRetention = $record['manager_retention_rate'];
|
||||
$commissionDeduction = $actualCommission * ($agentRetention+$managerRetention) / 100;
|
||||
$commission = $actualCommission - $commissionDeduction;
|
||||
|
||||
|
||||
// Safely extract values
|
||||
$policyData = [
|
||||
'commission_amount' => $result['data']['payout'] ?? null,
|
||||
'commission_applied_rule' => $result['data']['rule']['id'] ?? null,
|
||||
'commission_from_insurer' => $result['data']['payout'] ?? null,
|
||||
'agent_retention_rate' => $agentRetention,
|
||||
'manager_retention_rate' => $managerRetention,
|
||||
'commission_amount' => $commission,
|
||||
'commission_applied_rule' => $result['data']['rule']['id'] ?? null,
|
||||
];
|
||||
|
||||
|
||||
log_message('debug', 'Updating Policy (ID=75) With: ' . json_encode($policyData));
|
||||
|
||||
if($return == true)
|
||||
@ -1113,12 +1130,23 @@ class PolicyController extends ResourceController
|
||||
|
||||
if (!empty($result) && isset($result['success']) && $result['success'] === true) {
|
||||
|
||||
$actualCommission = $result['data']['payout'];
|
||||
$agentRetention = $postRequest['agent_retention_rate'];
|
||||
$managerRetention = $postRequest['manager_retention_rate'];
|
||||
$commissionDeduction = $actualCommission * ($agentRetention+$managerRetention) / 100;
|
||||
$commission = $actualCommission - $commissionDeduction;
|
||||
|
||||
|
||||
// Safely extract values
|
||||
$policyData = [
|
||||
'commission_amount' => $result['data']['payout'] ?? null,
|
||||
'commission_applied_rule' => $result['data']['rule']['id'] ?? null,
|
||||
'commission_from_insurer' => $result['data']['payout'] ?? null,
|
||||
'agent_retention_rate' => $agentRetention,
|
||||
'manager_retention_rate' => $managerRetention,
|
||||
'commission_amount' => $commission,
|
||||
'commission_applied_rule' => $result['data']['rule']['id'] ?? null,
|
||||
];
|
||||
|
||||
|
||||
log_message('debug', 'Updating Policy (ID=75) With: ' . json_encode($policyData));
|
||||
|
||||
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $policyData ], 200);
|
||||
|
||||
@ -52,7 +52,11 @@ class PolicyModel extends Model
|
||||
'broker_name',
|
||||
'commission_amount',
|
||||
'is_data_accuracy_checked',
|
||||
'pos_id'
|
||||
'pos_id',
|
||||
'commission_from_insurer',
|
||||
'agent_retention_rate',
|
||||
'manager_retention_rate',
|
||||
'is_invoice_generated'
|
||||
];
|
||||
|
||||
protected $useTimestamps = false;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user