207 lines
8.9 KiB
PHP
207 lines
8.9 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use CodeIgniter\Model;
|
|
|
|
class EmployeePolicyModel extends Model
|
|
{
|
|
protected $table = 'employee_polices';
|
|
protected $primaryKey = 'id';
|
|
protected $allowedFields = [
|
|
"id",
|
|
"employee_id",
|
|
"client_policy_id",
|
|
"tpa_id",
|
|
"uhid",
|
|
"batch_id",
|
|
"status",
|
|
"pre_existing_alignments",
|
|
"basic_cover_si",
|
|
"date_coverage",
|
|
"policy_end_date",
|
|
"days",
|
|
"premium",
|
|
"rata_premimum",
|
|
"gst",
|
|
"created_by",
|
|
"updated_by",
|
|
"is_active",
|
|
];
|
|
|
|
|
|
public function getEmployeePolicy($client_id,$policy_id)
|
|
{
|
|
$result = $this->select(['employee_polices.*','pm.name as policy_name','im.short_name as insurer_short_name','ib.branch_name as insurer_branch_name','ib.branch_code as insurer_branch_code','tpam.name as tpa_name','tpam.short_name as tpa_short_name','tpab.branch_code as tpa_branch_code','cm.client_name','cm.short_name as client_short_name','emp.relationship','emp.relationship_code','emp.change_event','emp.emp_code','emp.name','emp.email_corporate','emp.dob','emp.gender','emp.emp_status','emp.is_active as emp_is_active'])
|
|
->join('employees emp', 'employee_polices.employee_id = emp.id')
|
|
->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy
|
|
->join('policies pm', 'cp.policy_id = pm.id') //pm - policy master
|
|
->join('insurers im', 'cp.insurer_id = im.id') //im - insurar master
|
|
->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id') //ib - insurar branch
|
|
->join('tpa tpam', 'cp.tpa_id = tpam.id') //tpam - tpa master
|
|
->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id') //tpab - tpa brach
|
|
->join('clients cm', 'cp.client_id = cm.id') //cm - client master
|
|
->where('emp.client_id',$client_id)
|
|
->where('employee_polices.client_policy_id',$policy_id)
|
|
->findAll();
|
|
return ($result);
|
|
}
|
|
|
|
//------------------------------------------------------------------
|
|
|
|
public function getInceptionEmployeeDataForExportExcel($client_policy_id, $insurer_or_tpa, $event_type)
|
|
{
|
|
return $this->db->table('employee_polices')
|
|
->select('employees.name AS emp_name,
|
|
employees.emp_code AS emp_code,
|
|
employees.dob AS emp_dob,
|
|
employees.gender AS emp_gender,
|
|
employees.change_event AS change_event,
|
|
employees.relationship AS emp_relationship,
|
|
employees.relationship_code AS emp_relationship_code,
|
|
TIMESTAMPDIFF(YEAR, employees.dob, CURDATE()) AS emp_age,
|
|
"Has Define" as emp_type,
|
|
|
|
employee_polices.id as employee_policy_id,
|
|
employee_polices.pre_existing_alignments,
|
|
employee_polices.basic_cover_si,
|
|
employee_polices.date_coverage,
|
|
employee_polices.policy_end_date,
|
|
employee_polices.days,
|
|
employee_polices.premium,
|
|
employee_polices.rata_premimum,
|
|
employee_polices.gst,
|
|
(employee_polices.rata_premimum + employee_polices.gst) AS total,
|
|
batch_data.emp_policy_id,
|
|
batch_data.bl AS batch_list_batch_code,
|
|
batch_data.bf AS batch_files_batch_code')
|
|
|
|
->join('employees', 'employees.id = employee_polices.employee_id', 'left')
|
|
->join("(
|
|
SELECT
|
|
batch_list.emp_policy_id,
|
|
batch_list.batch_code as bl,
|
|
batch_files.batch_code as bf
|
|
FROM batch_files
|
|
LEFT JOIN batch_list ON batch_files.batch_code = batch_list.batch_code
|
|
WHERE batch_files.event_type = 'inception'
|
|
AND batch_files.actions = 'export'
|
|
AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}') as batch_data", 'employee_polices.id = batch_data.emp_policy_id', 'left')
|
|
->where('batch_data.bf', null)
|
|
->where('batch_data.bl', null)
|
|
->where('employee_polices.client_policy_id', $client_policy_id)
|
|
->get()
|
|
->getResult();
|
|
}
|
|
|
|
|
|
public function getCorrectionEmployeesDataForExportExcel($client_id, $client_policy_id, $insurer_or_tpa)
|
|
{
|
|
|
|
return $this->db->table('emp_endorsement')
|
|
->select('emp_endorsement.id,
|
|
emp_endorsement.emp_id,
|
|
emp_endorsement.emp_code,
|
|
emp_endorsement.endorsement_id,
|
|
emp_endorsement.old_value,
|
|
emp_endorsement.new_value,
|
|
emp_endorsement.field_name,
|
|
emp_endorsement.remarks,
|
|
employees.name AS emp_name,
|
|
employees.dob AS emp_dob,
|
|
employees.gender AS emp_gender,
|
|
employees.client_id AS emp_client_id,
|
|
"Has Define" as emp_type,
|
|
employee_polices.uhid,
|
|
employees.relationship_code,
|
|
batch_data.emp_policy_id,
|
|
batch_data.bl AS batch_list_batch_code,
|
|
batch_data.bf AS batch_files_batch_code')
|
|
->join('employees', 'employees.id = emp_endorsement.emp_id', 'left')
|
|
->join('employee_polices', 'employees.id = employee_polices.employee_id', 'left')
|
|
->join("(SELECT batch_list.emp_policy_id,
|
|
batch_list.batch_code as bl,
|
|
batch_files.batch_code as bf
|
|
FROM batch_files
|
|
LEFT JOIN batch_list ON batch_files.batch_code = batch_list.batch_code
|
|
WHERE batch_files.event_type = 'correction'
|
|
AND batch_files.actions = 'export'
|
|
AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}') as batch_data", 'emp_endorsement.emp_id = batch_data.emp_policy_id', 'left', false)
|
|
->where('batch_data.bf IS NULL')
|
|
->where('batch_data.bl IS NULL')
|
|
->where('emp_endorsement.endorsement_id', '')
|
|
->where('employees.client_id', $client_id)
|
|
->where('employee_polices.client_policy_id', $client_policy_id)
|
|
->get()
|
|
->getResult();
|
|
|
|
}
|
|
|
|
|
|
public function updateTPAIDorUHID( $client_policy_id, $client_id, $name, $emp_code, $uhid, $tpa_id)
|
|
{
|
|
|
|
// $this->table('employee_polices')
|
|
// ->join('employees', 'employees.id = employee_polices.employee_id')
|
|
// ->set('employee_polices.tpa_id', $tpa_id)
|
|
// ->set('employee_polices.uhid', $uhid)
|
|
// ->where('employees.emp_code', $emp_code)
|
|
// ->where('employees.name', $name)
|
|
// ->where('employees.client_id', $client_id)
|
|
// ->where('employee_polices.client_policy_id', $client_policy_id)
|
|
// ->update();
|
|
|
|
$query = "UPDATE employee_polices
|
|
JOIN employees ON employees.id = employee_polices.employee_id
|
|
SET employee_polices.tpa_id = '{$tpa_id}',
|
|
employee_polices.uhid = '{$uhid}'
|
|
WHERE employees.emp_code = '{$emp_code}'
|
|
AND employees.name = '{$name}'
|
|
AND employees.client_id = '{$client_id}'
|
|
AND employee_polices.client_policy_id = '{$client_policy_id}'";
|
|
|
|
$this->query($query);
|
|
|
|
|
|
}
|
|
|
|
|
|
public function updateCorrectionData($emp_code, $uhid, $endorsement_id){
|
|
|
|
$sql = "
|
|
UPDATE emp_endorsement
|
|
JOIN employees ON employees.id = emp_endorsement.emp_id
|
|
JOIN employee_polices ON employees.id = employee_polices.employee_id
|
|
SET emp_endorsement.endorsement_id = '$endorsement_id'
|
|
WHERE employees.emp_code = '$emp_code'
|
|
AND employee_polices.uhid = '$uhid'
|
|
";
|
|
$query = $this->query($sql);
|
|
}
|
|
|
|
|
|
|
|
//for emp onboard do not change
|
|
public function checkExistingEmpPolicy($arr)
|
|
{
|
|
return $this->where('employee_id',$arr['employee_id'])
|
|
->where('client_policy_id',$arr['client_policy_id'])
|
|
->find();
|
|
}
|
|
|
|
|
|
public function updateSiAndPremium( $client_policy_id, $employee_id,$basic_cover_si)
|
|
{
|
|
|
|
|
|
$query = "UPDATE employee_polices
|
|
SET employee_polices.basic_cover_si = '{$basic_cover_si}'
|
|
WHERE employee_polices.employee_id = '{$employee_id}'
|
|
AND employee_polices.client_policy_id = '{$client_policy_id}'";
|
|
|
|
$this->query($query);
|
|
}
|
|
|
|
//------------------------------------------------------------------
|
|
}
|