nhance/app/Models/PolicesModel.php

78 lines
2.7 KiB
PHP

<?php
namespace App\Models;
use CodeIgniter\Model;
use App\Models\PolicyPremium1Model;
use App\Models\PolicyPremium2Model;
use App\Models\PolicyGridModel;
class PolicesModel extends Model
{
protected $table = 'policies';
protected $primaryKey = 'id';
protected $allowedFields = [
"id",
"insurer_id",
"policy_type_id",
"name",
"created_by",
"updated_by",
"is_active",
];
public function getPolicyPremium($policy_id){
return $this->db->table('policies')
->select('policy_type.*')
->select('policies.name as policy_name')
->join('policy_type', 'policy_type.id = policies.policy_type_id')
->where('policies.id', $policy_id)
->get()
->getResult();
}
public function getPolicySlabRatesForEmpOnboard($policy_id,$client_id)
{
$premium_slab_data = null;
$additional_premium_slab_data = null;
$grid_type = null;
$additional_grid_type = null;
$policyPremium1Model = new PolicyPremium1Model();
$premium_slab_data = $policyPremium1Model->where(['client_id' => $client_id, 'client_policy_id' => $policy_id, 'is_active' => 1])->findAll();
// dd($premium_slab_data);
if(is_array($premium_slab_data) && !count($premium_slab_data))
{
// echo '2';
$policyPremium2Model = new PolicyPremium2Model();
$premium_slab_data = $policyPremium2Model->where(['client_id' => $client_id, 'client_policy_id' => $policy_id, 'is_active' => 1,'rack_rate_type' => 0])->findAll();
//check any additional rack rate configured
$additional_premium_slab_data = $policyPremium2Model->where(['client_id' => $client_id, 'client_policy_id' => $policy_id, 'is_active' => 1,'rack_rate_type' => 1])->findAll();
}
if(isset($premium_slab_data[0]['policy_grid_id']))
{
$grid_id = $premium_slab_data[0]['policy_grid_id'];
$policyGridModel = new PolicyGridModel();
$grid_type = $policyGridModel->find($grid_id);
}
if(isset($additional_premium_slab_data[0]['policy_grid_id']))
{
$additional_grid_id = $additional_premium_slab_data[0]['policy_grid_id'];
$policyGridModel = new PolicyGridModel();
$additional_grid_type = $policyGridModel->find($additional_grid_id);
}
return ['slab_rates' => $premium_slab_data,'grid_master' => $grid_type,'additional_slab_info' => ['slab_rates' => $additional_premium_slab_data,'grid_master' => $additional_grid_type]];
}
}