MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/cloud_cafsinfotech_in/application/models/Fandf_calculation_model.php
<?php
 class Fandf_calculation_model extends CI_Model{
	public function Fandf_calculation($trans_array){ 
		 $payroll_array = array();
				foreach($trans_array as $key => $trans){
				
			 $employee_code = $trans["employee_code"]; $trans["transactions_month"] = $trans["process_month"];
			if((int)$trans["role"] === 2){
				$trans["differential_day"] = $this->Process_payroll_model->get_differential_day($trans["employee_code"],$trans["role"],$trans["transactions_month"]);			
				$trans["ab"] = $this->rounding_value(($trans["ab"]),'1');			
				$trans["acea"] = $trans["acea"];			
				$trans["aconv"] = $trans["aconv"];			
				$trans["actc"] = $trans["actc"];			
				$trans["adv"] = $this->rounding_value(($trans["adv"]),'1');			
				$trans["aepf"] = $trans["aepf"];			
				$trans["afg"] = $trans["afg"];			
				$trans["amed"] = $trans["amed"];			
				$trans["apa"] = $trans["apa"];			
				$trans["aphone"] = $trans["aphone"];			
				$trans["app"] = $trans["app"];			
				$trans["arrearwithheld"] = $trans["arrearwithheld"];			
				$trans["att_per"] = $trans["att_per"];			
				$trans["b_inc"] = $trans["b_inc"];			
				$trans["bonus"] = $trans["bonus"];			
				$trans["cl"] = $trans["cl"];			
				$trans["cl_op"] = $trans["cl_op"];			
				$trans["comcha"] = $trans["comcha"];			
				$trans["creadj"] = $trans["creadj"];			
				$trans["e_days"] = $trans["e_days"];			
				$trans["err_per"] = $trans["err_per"];			
				$trans["estatt"] = $trans["estatt"];			
				$trans["estpro"] = $trans["estpro"];			
				$trans["fattire"] = $trans["fattire"];			
				$trans["fca"] = $trans["fca"];			
				$trans["feb_inc"] = $trans["feb_inc"];			
				$trans["flb"] = $trans["flb"];			
				$trans["fma"] = $trans["fma"];			
				$trans["fmed"] = $trans["fmed"];			
				$trans["food_pd"] = $trans["food_pd"];			
				$trans["fpa"] = $trans["fpa"];			
				$trans["fphone"] = $trans["fphone"];			
				$trans["fpp"] = $trans["fpp"];			
				$trans["inc_adj"] = $trans["inc_adj"];			
				$trans["lapreim"] = $trans["lapreim"];			
				$trans["lcd"] = $trans["lcd"];			
				$trans["lcmd"] = $trans["lcmd"];			
				$trans["ld"] = $trans["ld"];			
				$trans["lectc"] = $trans["lectc"];			
				$trans["led"] = $trans["led"];			
				$trans["lev_encashday"] = $trans["lev_encashday"];			
				$trans["m_sft_pd"] = $trans["m_sft_pd"];			
				$trans["marrs"] = $trans["marrs"];			
				$trans["maxpf_sts"] = $trans["maxpf_sts"];			
				$trans["njcd"] = $trans["njcd"];			
				$trans["njd"] = $trans["njd"];			
				$trans["notice_period"] = $trans["notice_period"];			
				$trans["oj_inc"] = $trans["oj_inc"];			
				$trans["ot_hrs"] = $trans["ot_hrs"];			
				$trans["otadj"] = $trans["otadj"];			
				$trans["pmfd"] = $trans["pmfd"];			
				$trans["pmot"] = $trans["pmot"];			
				$trans["prod_per"] = $trans["prod_per"];			
				$trans["prptg"] = $trans["prptg"];			
				$trans["pyinc"] = $trans["pyinc"];			
				$trans["rapd"] = $trans["rapd"];			
				$trans["rbs"] = $trans["rbs"];			
				$trans["salarycutrepaym"] = $trans["salarycutrepaym"];			
				$trans["salaryheldff"] = $trans["salaryheldff"];			
				$trans["sctc"] = $trans["sctc"];			
				$trans["sft_km"] = $trans["sft_km"];			
				$trans["sft_pd"] = $trans["sft_pd"];			
				$trans["sft_rate"] = $trans["sft_rate"];			
				$trans["sftadj"] = $trans["sftadj"];			
				$trans["sl"] = $trans["sl"];			
				$trans["sl_op"] = $trans["sl_op"];			
				$trans["tds_ret"] = $trans["tds_ret"];			
				$trans["trainincent"] = $trans["trainincent"];			
				$trans["weekoff_days"] = $trans["weekoff_days"];			
				$trans["yinc"] = $trans["yinc"];			
				$trans["md"] = $this->Process_payroll_model->get_total_work_days($trans["role"],$trans["transactions_month"]);			
				$trans["separation_day"] = $this->Process_payroll_model->get_seperation_day($trans["employee_code"],$trans["role"],$trans["transactions_month"]);			
				$trans["agreementrecove"] = $trans["agreementrecove"];			
				$trans["arr_paid"] = $trans["arr_paid"];			
				$trans["arrearhold"] = $trans["arrearhold"];			
				$trans["esi_sts"] = $trans["esi_sts"];			
				$trans["incadjd"] = $trans["incadjd"];			
				$trans["nprd"] = $trans["nprd"];			
				$trans["pfsts"] = $trans["pfsts"];			
				$trans["rec"] = $trans["rec"];			
				$trans["sadv"] = $trans["sadv"];			
				$trans["sal_adv"] = $trans["sal_adv"];			
				$trans["salarycut"] = $trans["salarycut"];			
				$trans["salholdnotice"] = $trans["salholdnotice"];			
				$trans["monthly_tds"] = $trans["monthly_tds"];			
				$trans["tds_inc"] = $trans["tds_inc"];			
				$trans["fb"] = $this->rounding_value(($trans["fb"]),'1');			
				$trans["fcea"] = $trans["fcea"];			
				$trans["ahra"] = $this->rounding_value((($trans["ab"]*50)/100),'1');			
				$trans["alta"] = $this->rounding_value((($trans["ab"]*8.33)/100),'1');			
				$trans["axg"] = $this->rounding_value((($trans["ab"]*8.33)/100),'1');			
				$trans["aoth_alw"] = $trans["actc"]-($trans["ab"]+$trans["ahra"]+$trans["alta"]+$trans["aphone"]+$trans["axg"]);			
				$trans["ag"] = $trans["ab"]+$trans["ahra"]+$trans["aconv"]+$trans["aoth_alw"]+$trans["acea"]+$trans["axg"]+$trans["alta"]+$trans["amed"]+$trans["aphone"]+$trans["marrs"];			
				$trans["cl_bal"] = $trans["cl_op"]-$trans["cl"];			
				$trans["pd"] = $trans["md"]-$trans["ld"]-$trans["separation_day"]+$trans["njd"]+$trans["rapd"]-$trans["njcd"]+$trans["e_days"];			
				$trans["conv"] = $this->rounding_value((( ($trans["fca"]/$trans["md"])*$trans["pd"])+( ($trans["fca"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["eattire"] = $this->rounding_value((( ($trans["fattire"]/$trans["md"])*$trans["pd"])+( ($trans["fattire"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["eb"] = $this->rounding_value((( ($trans["fb"]/$trans["md"])*$trans["pd"])+( ($trans["fb"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["ecea"] = $this->rounding_value((( ($trans["fcea"]/$trans["md"])*$trans["pd"])+( ($trans["fcea"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["flta"] = $this->rounding_value((($trans["fb"]*8.33)/100),'1');			
				$trans["elta"] = $this->rounding_value((( ($trans["flta"]/$trans["md"])*$trans["pd"])+( ($trans["flta"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["emed"] = $this->rounding_value((( ($trans["fmed"]/$trans["md"])*$trans["pd"])+( ($trans["fmed"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["epa"] = $this->rounding_value((( ($trans["fpa"]/$trans["md"])*$trans["pd"])+( ($trans["fpa"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["ephone"] = $this->rounding_value((( ($trans["fphone"]/$trans["md"])*$trans["pd"])+( ($trans["fphone"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["epp"] = $this->rounding_value((( ($trans["fpp"]/$trans["md"])*$trans["pd"])+( ($trans["fpp"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["fxg"] = $this->rounding_value((($trans["fb"]*8.33)/100),'1');			
				$trans["exg"] = $this->rounding_value((( ($trans["fxg"]/$trans["md"])*$trans["pd"])+( ($trans["fxg"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["fctc"] = $trans["sctc"];			
				$trans["fhra"] = $this->rounding_value((($trans["fb"]*50)/100),'1');			
				$trans["fininc"] = $trans["att_per"]+$trans["err_per"]+$trans["prod_per"];			
				$trans["food"] = (($trans["food_pd"]*80)+($trans["pmfd"]*80));			
				$trans["hra"] = $this->rounding_value((( ($trans["fhra"]/$trans["md"])*$trans["pd"])+( ($trans["fhra"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["lev_encashrate"] = $trans["lectc"]/30;			
				$trans["lev_encashamt"] = $trans["led"]*$trans["lev_encashrate"];			
				$trans["loyalbon"] = ($trans["flb"]/$trans["md"])*$trans["pd"];			
				$trans["m_sft_alw"] = $trans["m_sft_pd"]*50;			
				$trans["mealallo"] = $this->rounding_value((($trans["fma"]/$trans["md"])*$trans["pd"]),'1');			
				$trans["ot_rate"] = ((($trans["fctc"]/30)/8)/60);			
				if($trans["ld"]==$trans["md"]){$trans["eot"] = $trans["pfsts"]*0;}else{$trans["eot"] = $trans["pfsts"];}
				if($trans["ot_hrs"]>960){$trans["ot_maxhrs"] = 960;}else{$trans["ot_maxhrs"] = $trans["ot_hrs"];}
				$trans["fpfgt"] = $this->rounding_value(($trans["fctc"]*$trans["pfsts"]),'1');			
				if($trans["fctc"]>18749){$trans["fpfg"] = 15000*$trans["pfsts"];}else{$trans["fpfg"] = $trans["fpfgt"];}
				$trans["fepf"] = $this->rounding_value((($trans["fpfg"]*12)/100),'1');			
				$trans["foa"] = $trans["fctc"]-($trans["fb"]+$trans["fhra"]+$trans["flta"]+$trans["fxg"]+$trans["fphone"]+$trans["fmed"]+$trans["fepf"]);			
				$trans["oth_alw"] = $this->rounding_value(((( ($trans["foa"]/$trans["md"])*$trans["pd"])-( ((1800/$trans["md"])*$trans["ld"])*$trans["pfsts"])+( ($trans["foa"]/$trans["lcmd"])*$trans["lcd"]))),'1');			
				$trans["eg"] = $trans["eb"]+$trans["hra"]+$trans["conv"]+$trans["oth_alw"]+$trans["ecea"]+$trans["exg"]+$trans["elta"]+$trans["emed"]+ $trans["epp"]+$trans["epa"]+$trans["ephone"]+$trans["eattire"];			
				$trans["pfgtot"] = $trans["eg"];			
				if($trans["pfgtot"]>15000){$trans["pfg"] = 15000;}else{$trans["pfg"] = $trans["pfgtot"];}
				$trans["cpf"] = $this->rounding_value(((($trans["pfg"]*12)/100)*$trans["pfsts"]),'1');			
				$trans["ctc"] = $trans["eg"]+$trans["cpf"];			
				$trans["fg"] = $trans["fb"]+$trans["fcea"]+$trans["fca"]+$trans["fhra"]+$trans["flta"]+$trans["fmed"]+$trans["foa"]+$trans["fpp"]+$trans["fpa"]+$trans["fphone"]+$trans["fattire"];			
				$trans["pfamount"] = $this->rounding_value((((($trans["pfgtot"]*$trans["pfsts"])*12)/100)),'1');			
				$trans["emlr_pf"] = $this->rounding_value(($trans["pfamount"]),'1');			
				$trans["fnp"] = $this->rounding_value(($trans["fg"]-$trans["pfamount"]),'1');			
				$trans["jan_inc"] = $this->rounding_value((( (($trans["att_per"]+$trans["prod_per"]+$trans["err_per"])*$trans["b_inc"])/100)-($trans["incadjd"]+$trans["inc_adj"])),'1');			
				$trans["ot"] = $this->rounding_value(((($trans["ot_rate"]*$trans["ot_maxhrs"])+$trans["otadj"]+($trans["ot_rate"]*$trans["pmot"]))),'1');			
				$trans["pmota"] = $trans["pmot"]*$trans["ot_rate"];			
				$trans["sft_alw"] = $this->rounding_value(((($trans["sft_pd"]*$trans["sft_rate"])*$trans["sft_km"])+(($trans["sftadj"]*$trans["sft_rate"])*$trans["sft_km"])),'1');			
				$trans["sl_bal"] = $trans["sl_op"]-$trans["sl"];			
				$trans["tl"] = $trans["ld"]+$trans["cl"]+$trans["sl"];			
				$trans["ptax"] = $this->Process_payroll_model->get_professional_tax_value($trans["employee_code"],$trans["professional_tax_location"],$trans["fpt_gross"],$trans["ept_gross"],$trans["transactions_month"]);			
				$trans["er_pf"] = $trans["pfamount"];			
				$trans["npra"] = ($trans["fctc"]/30)*$trans["notice_period"];			
				$trans["esi"] = $this->rounding_value((((($trans["eg"]+$trans["food"]+$trans["m_sft_alw"]+$trans["ot"]+$trans["sft_alw"]+$trans["jan_inc"]+$trans["ag"]+$trans["inc_adj"]+$trans["arrearwithheld"]+$trans["loyalbon"])*$trans["esi_sts"])*0.75)/100),'>1');			
				$trans["mealcard"] = $trans["mealallo"];			
				$trans["esi_grs_cond"] = ($trans["fg"]/$trans["md"])*$trans["pd"];			
				if($trans["fg"]>21000){$trans["esi_grs"] = 0;}else{$trans["esi_grs"] = $trans["esi_grs_cond"];}
				$trans["empr_esi_cond"] = ($trans["fg"]*4.75)/100;			
				if($trans["fg"]>21000){$trans["empr_esi"] = 0;}else{$trans["empr_esi"] = $trans["empr_esi_cond"];}$payroll_array[2][] ="('".$trans["employees_id"]."','".$trans["employee_code"]."','".$trans["emp_name"]."','".$trans["transactions_month"]."','".$trans["role"]."','".$trans["transactions_month"]."','".$trans["termination_status"]."','".$trans["ab"]."','".$trans["acea"]."','".$trans["aconv"]."','".$trans["actc"]."','".$trans["adv"]."','".$trans["aepf"]."','".$trans["afg"]."','".$trans["amed"]."','".$trans["apa"]."','".$trans["aphone"]."','".$trans["app"]."','".$trans["arrearwithheld"]."','".$trans["att_per"]."','".$trans["b_inc"]."','".$trans["bonus"]."','".$trans["cl"]."','".$trans["cl_op"]."','".$trans["comcha"]."','".$trans["creadj"]."','".$trans["e_days"]."','".$trans["err_per"]."','".$trans["estatt"]."','".$trans["estpro"]."','".$trans["fattire"]."','".$trans["fca"]."','".$trans["feb_inc"]."','".$trans["flb"]."','".$trans["fma"]."','".$trans["fmed"]."','".$trans["food_pd"]."','".$trans["fpa"]."','".$trans["fphone"]."','".$trans["fpp"]."','".$trans["inc_adj"]."','".$trans["lapreim"]."','".$trans["lcd"]."','".$trans["lcmd"]."','".$trans["ld"]."','".$trans["lectc"]."','".$trans["led"]."','".$trans["lev_encashday"]."','".$trans["m_sft_pd"]."','".$trans["marrs"]."','".$trans["maxpf_sts"]."','".$trans["njcd"]."','".$trans["njd"]."','".$trans["notice_period"]."','".$trans["oj_inc"]."','".$trans["ot_hrs"]."','".$trans["otadj"]."','".$trans["pmfd"]."','".$trans["pmot"]."','".$trans["prod_per"]."','".$trans["prptg"]."','".$trans["pyinc"]."','".$trans["rapd"]."','".$trans["rbs"]."','".$trans["salarycutrepaym"]."','".$trans["salaryheldff"]."','".$trans["sctc"]."','".$trans["sft_km"]."','".$trans["sft_pd"]."','".$trans["sft_rate"]."','".$trans["sftadj"]."','".$trans["sl"]."','".$trans["sl_op"]."','".$trans["tds_ret"]."','".$trans["trainincent"]."','".$trans["weekoff_days"]."','".$trans["yinc"]."','".$trans["md"]."','".$trans["separation_day"]."','".$trans["agreementrecove"]."','".$trans["arr_paid"]."','".$trans["arrearhold"]."','".$trans["esi_sts"]."','".$trans["incadjd"]."','".$trans["nprd"]."','".$trans["pfsts"]."','".$trans["rec"]."','".$trans["sadv"]."','".$trans["sal_adv"]."','".$trans["salarycut"]."','".$trans["salholdnotice"]."','".$trans["monthly_tds"]."','".$trans["tds_inc"]."','".$trans["fb"]."','".$trans["fcea"]."','".$trans["ahra"]."','".$trans["alta"]."','".$trans["axg"]."','".$trans["aoth_alw"]."','".$trans["ag"]."','".$trans["cl_bal"]."','".$trans["pd"]."','".$trans["conv"]."','".$trans["eattire"]."','".$trans["eb"]."','".$trans["ecea"]."','".$trans["flta"]."','".$trans["elta"]."','".$trans["emed"]."','".$trans["epa"]."','".$trans["ephone"]."','".$trans["epp"]."','".$trans["fxg"]."','".$trans["exg"]."','".$trans["fctc"]."','".$trans["fhra"]."','".$trans["fininc"]."','".$trans["food"]."','".$trans["hra"]."','".$trans["lev_encashrate"]."','".$trans["lev_encashamt"]."','".$trans["loyalbon"]."','".$trans["m_sft_alw"]."','".$trans["mealallo"]."','".$trans["ot_rate"]."','".$trans["eot"]."','".$trans["ot_maxhrs"]."','".$trans["fpfgt"]."','".$trans["fpfg"]."','".$trans["fepf"]."','".$trans["foa"]."','".$trans["oth_alw"]."','".$trans["eg"]."','".$trans["pfgtot"]."','".$trans["pfg"]."','".$trans["cpf"]."','".$trans["ctc"]."','".$trans["fg"]."','".$trans["pfamount"]."','".$trans["emlr_pf"]."','".$trans["fnp"]."','".$trans["jan_inc"]."','".$trans["ot"]."','".$trans["pmota"]."','".$trans["sft_alw"]."','".$trans["sl_bal"]."','".$trans["tl"]."','".$trans["ptax"]."','".$trans["er_pf"]."','".$trans["npra"]."','".$trans["esi"]."','".$trans["mealcard"]."','".$trans["esi_grs_cond"]."','".$trans["esi_grs"]."','".$trans["empr_esi_cond"]."','".$trans["empr_esi"]."')";
						
		 $query_key = 'employees_id,employee_code,emp_name,transactions_month,role,process_month,termination_status,ab,acea,aconv,actc,adv,aepf,afg,amed,apa,aphone,app,arrearwithheld,att_per,b_inc,bonus,cl,cl_op,comcha,creadj,e_days,err_per,estatt,estpro,fattire,fca,feb_inc,flb,fma,fmed,food_pd,fpa,fphone,fpp,inc_adj,lapreim,lcd,lcmd,ld,lectc,led,lev_encashday,m_sft_pd,marrs,maxpf_sts,njcd,njd,notice_period,oj_inc,ot_hrs,otadj,pmfd,pmot,prod_per,prptg,pyinc,rapd,rbs,salarycutrepaym,salaryheldff,sctc,sft_km,sft_pd,sft_rate,sftadj,sl,sl_op,tds_ret,trainincent,weekoff_days,yinc,md,separation_day,agreementrecove,arr_paid,arrearhold,esi_sts,incadjd,nprd,pfsts,rec,sadv,sal_adv,salarycut,salholdnotice,monthly_tds,tds_inc,fb,fcea,ahra,alta,axg,aoth_alw,ag,cl_bal,pd,conv,eattire,eb,ecea,flta,elta,emed,epa,ephone,epp,fxg,exg,fctc,fhra,fininc,food,hra,lev_encashrate,lev_encashamt,loyalbon,m_sft_alw,mealallo,ot_rate,eot,ot_maxhrs,fpfgt,fpfg,fepf,foa,oth_alw,eg,pfgtot,pfg,cpf,ctc,fg,pfamount,emlr_pf,fnp,jan_inc,ot,pmota,sft_alw,sl_bal,tl,ptax,er_pf,npra,esi,mealcard,esi_grs_cond,esi_grs,empr_esi_cond,empr_esi'; 
	 $qry_2 = 'INSERT INTO cw_transactions(employees_id,employee_code,emp_name,transactions_month,role,process_month,termination_status,ab,acea,aconv,actc,adv,aepf,afg,amed,apa,aphone,app,arrearwithheld,att_per,b_inc,bonus,cl,cl_op,comcha,creadj,e_days,err_per,estatt,estpro,fattire,fca,feb_inc,flb,fma,fmed,food_pd,fpa,fphone,fpp,inc_adj,lapreim,lcd,lcmd,ld,lectc,led,lev_encashday,m_sft_pd,marrs,maxpf_sts,njcd,njd,notice_period,oj_inc,ot_hrs,otadj,pmfd,pmot,prod_per,prptg,pyinc,rapd,rbs,salarycutrepaym,salaryheldff,sctc,sft_km,sft_pd,sft_rate,sftadj,sl,sl_op,tds_ret,trainincent,weekoff_days,yinc,md,separation_day,agreementrecove,arr_paid,arrearhold,esi_sts,incadjd,nprd,pfsts,rec,sadv,sal_adv,salarycut,salholdnotice,monthly_tds,tds_inc,fb,fcea,ahra,alta,axg,aoth_alw,ag,cl_bal,pd,conv,eattire,eb,ecea,flta,elta,emed,epa,ephone,epp,fxg,exg,fctc,fhra,fininc,food,hra,lev_encashrate,lev_encashamt,loyalbon,m_sft_alw,mealallo,ot_rate,eot,ot_maxhrs,fpfgt,fpfg,fepf,foa,oth_alw,eg,pfgtot,pfg,cpf,ctc,fg,pfamount,emlr_pf,fnp,jan_inc,ot,pmota,sft_alw,sl_bal,tl,ptax,er_pf,npra,esi,mealcard,esi_grs_cond,esi_grs,empr_esi_cond,empr_esi'.$trans_key_array.') VALUES '.implode(',',$payroll_array[2]); 
			}else
			if((int)$trans["role"] === 3){
				$trans["ab"] = $this->rounding_value(($trans["ab"]),'1');			
				$trans["acea"] = $trans["acea"];			
				$trans["aconv"] = $trans["aconv"];			
				$trans["actc"] = $trans["actc"];			
				$trans["adv"] = $this->rounding_value(($trans["adv"]),'1');			
				$trans["aepf"] = $trans["aepf"];			
				$trans["afg"] = $trans["afg"];			
				$trans["amed"] = $trans["amed"];			
				$trans["apa"] = $trans["apa"];			
				$trans["aphone"] = $trans["aphone"];			
				$trans["app"] = $trans["app"];			
				$trans["arrearwithheld"] = $trans["arrearwithheld"];			
				$trans["att_per"] = $trans["att_per"];			
				$trans["b_inc"] = $trans["b_inc"];			
				$trans["bonus"] = $trans["bonus"];			
				$trans["cl"] = $trans["cl"];			
				$trans["cl_op"] = $trans["cl_op"];			
				$trans["comcha"] = $trans["comcha"];			
				$trans["creadj"] = $trans["creadj"];			
				$trans["e_days"] = $trans["e_days"];			
				$trans["err_per"] = $trans["err_per"];			
				$trans["estatt"] = $trans["estatt"];			
				$trans["estpro"] = $trans["estpro"];			
				$trans["fattire"] = $trans["fattire"];			
				$trans["fb"] = $this->rounding_value(($trans["fb"]),'1');			
				$trans["fca"] = $trans["fca"];			
				$trans["fcea"] = $trans["fcea"];			
				$trans["feb_inc"] = $trans["feb_inc"];			
				$trans["flb"] = $trans["flb"];			
				$trans["fma"] = $trans["fma"];			
				$trans["fmed"] = $trans["fmed"];			
				$trans["food_pd"] = $trans["food_pd"];			
				$trans["fpa"] = $trans["fpa"];			
				$trans["fphone"] = $trans["fphone"];			
				$trans["fpp"] = $trans["fpp"];			
				$trans["inc_adj"] = $trans["inc_adj"];			
				$trans["lapreim"] = $trans["lapreim"];			
				$trans["lcd"] = $trans["lcd"];			
				$trans["lcmd"] = $trans["lcmd"];			
				$trans["ld"] = $trans["ld"];			
				$trans["lectc"] = $trans["lectc"];			
				$trans["led"] = $trans["led"];			
				$trans["lev_encashday"] = $trans["lev_encashday"];			
				$trans["m_sft_pd"] = $trans["m_sft_pd"];			
				$trans["marrs"] = $trans["marrs"];			
				$trans["maxpf_sts"] = $trans["maxpf_sts"];			
				$trans["njcd"] = $trans["njcd"];			
				$trans["njd"] = $trans["njd"];			
				$trans["notice_period"] = $trans["notice_period"];			
				$trans["oj_inc"] = $trans["oj_inc"];			
				$trans["ot_hrs"] = $trans["ot_hrs"];			
				$trans["otadj"] = $trans["otadj"];			
				$trans["pmfd"] = $trans["pmfd"];			
				$trans["pmot"] = $trans["pmot"];			
				$trans["prod_per"] = $trans["prod_per"];			
				$trans["prptg"] = $trans["prptg"];			
				$trans["pyinc"] = $trans["pyinc"];			
				$trans["rapd"] = $trans["rapd"];			
				$trans["rbs"] = $trans["rbs"];			
				$trans["salarycutrepaym"] = $trans["salarycutrepaym"];			
				$trans["salaryheldff"] = $trans["salaryheldff"];			
				$trans["sctc"] = $trans["sctc"];			
				$trans["sft_km"] = $trans["sft_km"];			
				$trans["sft_pd"] = $trans["sft_pd"];			
				$trans["sft_rate"] = $trans["sft_rate"];			
				$trans["sftadj"] = $trans["sftadj"];			
				$trans["sl"] = $trans["sl"];			
				$trans["sl_op"] = $trans["sl_op"];			
				$trans["tds_ret"] = $trans["tds_ret"];			
				$trans["trainincent"] = $trans["trainincent"];			
				$trans["weekoff_days"] = $trans["weekoff_days"];			
				$trans["yinc"] = $trans["yinc"];			
				$trans["md"] = $this->Process_payroll_model->get_total_work_days($trans["role"],$trans["transactions_month"]);			
				$trans["separation_day"] = $this->Process_payroll_model->get_seperation_day($trans["employee_code"],$trans["role"],$trans["transactions_month"]);			
				$trans["agreementrecove"] = $trans["agreementrecove"];			
				$trans["arr_paid"] = $trans["arr_paid"];			
				$trans["arrearhold"] = $trans["arrearhold"];			
				$trans["esi_sts"] = $trans["esi_sts"];			
				$trans["incadjd"] = $trans["incadjd"];			
				$trans["nprd"] = $trans["nprd"];			
				$trans["pfsts"] = $trans["pfsts"];			
				$trans["rec"] = $trans["rec"];			
				$trans["sadv"] = $trans["sadv"];			
				$trans["sal_adv"] = $trans["sal_adv"];			
				$trans["salarycut"] = $trans["salarycut"];			
				$trans["salholdnotice"] = $trans["salholdnotice"];			
				$trans["monthly_tds"] = $trans["monthly_tds"];			
				$trans["tds_inc"] = $trans["tds_inc"];			
				$trans["ahra"] = $this->rounding_value((($trans["ab"]*50)/100),'1');			
				$trans["alta"] = $this->rounding_value((($trans["ab"]*8.33)/100),'1');			
				$trans["axg"] = $this->rounding_value((($trans["ab"]*8.33)/100),'1');			
				$trans["aoth_alw"] = $trans["actc"]-($trans["ab"]+$trans["ahra"]+$trans["alta"]+$trans["aphone"]+$trans["axg"]);			
				$trans["ag"] = $trans["ab"]+$trans["ahra"]+$trans["aconv"]+$trans["aoth_alw"]+$trans["acea"]+$trans["axg"]+$trans["alta"]+$trans["amed"]+$trans["aphone"]+$trans["marrs"];			
				$trans["cl_bal"] = $trans["cl_op"]-$trans["cl"];			
				$trans["pd"] = $trans["md"]-$trans["ld"]-$trans["separation_day"]+$trans["njd"]+$trans["rapd"]-$trans["njcd"]+$trans["e_days"];			
				$trans["conv"] = $this->rounding_value((( ($trans["fca"]/$trans["md"])*$trans["pd"])+( ($trans["fca"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["eattire"] = $this->rounding_value((( ($trans["fattire"]/$trans["md"])*$trans["pd"])+( ($trans["fattire"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["eb"] = $this->rounding_value((( ($trans["fb"]/$trans["md"])*$trans["pd"])+( ($trans["fb"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["ecea"] = $this->rounding_value((( ($trans["fcea"]/$trans["md"])*$trans["pd"])+( ($trans["fcea"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["flta"] = $this->rounding_value((($trans["fb"]*8.33)/100),'1');			
				$trans["elta"] = $this->rounding_value(((($trans["flta"]/$trans["md"])*$trans["pd"])+(($trans["flta"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["emed"] = $this->rounding_value(((($trans["fmed"]/$trans["md"])*$trans["pd"])+(($trans["fmed"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["epa"] = $this->rounding_value(((($trans["fpa"]/$trans["md"])*$trans["pd"])+(($trans["fpa"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["ephone"] = $this->rounding_value(((($trans["fphone"]/$trans["md"])*$trans["pd"])+(($trans["fphone"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["epp"] = $this->rounding_value(((($trans["fpp"]/$trans["md"])*$trans["pd"])+(($trans["fpp"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["fxg"] = $this->rounding_value((($trans["fb"]*8.33)/100),'1');			
				$trans["exg"] = $this->rounding_value(((($trans["fxg"]/$trans["md"])*$trans["pd"])+(($trans["fxg"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["fctc"] = $trans["sctc"];			
				$trans["fhra"] = $this->rounding_value((($trans["fb"]*50)/100),'1');			
				$trans["fininc"] = $trans["att_per"]+$trans["err_per"]+$trans["prod_per"];			
				$trans["food"] = (($trans["food_pd"]*80)+($trans["pmfd"]*80));			
				$trans["hra"] = $this->rounding_value(((($trans["fhra"]/$trans["md"])*$trans["pd"])+(($trans["fhra"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["lev_encashrate"] = $trans["lectc"]/30;			
				$trans["lev_encashamt"] = $trans["led"]*$trans["lev_encashrate"];			
				$trans["loyalbon"] = ($trans["flb"]/$trans["md"])*$trans["pd"];			
				$trans["m_sft_alw"] = $trans["m_sft_pd"]*50;			
				$trans["mealallo"] = $this->rounding_value((($trans["fma"]/$trans["md"])*$trans["pd"]),'1');			
				$trans["ot_rate"] = ((($trans["fctc"]/30)/8)/60);			
				if($trans["ld"]==$trans["md"]){$trans["eot"] = $trans["pfsts"]*0;}else{$trans["eot"] = $trans["pfsts"];}
				if($trans["ot_hrs"]>960){$trans["ot_maxhrs"] = 960;}else{$trans["ot_maxhrs"] = $trans["ot_hrs"];}
				$trans["fpfgt"] = $this->rounding_value(($trans["fctc"]*$trans["pfsts"]),'1');			
				if($trans["fctc"]>18749){$trans["fpfg"] = 15000*$trans["pfsts"];}else{$trans["fpfg"] = $trans["fpfgt"];}
				$trans["fepf"] = $this->rounding_value((($trans["fpfg"]*12)/100),'1');			
				$trans["foa"] = $trans["fctc"]-($trans["fb"]+$trans["fhra"]+$trans["flta"]+$trans["fxg"]+$trans["fphone"]+$trans["fmed"]+$trans["fepf"]);			
				$trans["oth_alw"] = $this->rounding_value((((($trans["foa"]/$trans["md"])*$trans["pd"])-(((1800/$trans["md"])*$trans["ld"])*$trans["pfsts"])+(($trans["foa"]/$trans["lcmd"])*$trans["lcd"]))),'1');			
				$trans["eg"] = $trans["eb"]+$trans["hra"]+$trans["conv"]+$trans["oth_alw"]+$trans["ecea"]+$trans["exg"]+$trans["elta"]+$trans["emed"]+ $trans["epp"]+$trans["epa"]+$trans["ephone"]+$trans["eattire"];			
				$trans["pfgtot"] = $trans["eg"];			
				if($trans["pfgtot"]>15000){$trans["pfg"] = 15000;}else{$trans["pfg"] = $trans["pfgtot"];}
				$trans["cpf"] = $this->rounding_value(((($trans["pfg"]*12)/100)*$trans["pfsts"]),'1');			
				$trans["ctc"] = $trans["eg"]+$trans["cpf"];			
				$trans["fg"] = $trans["fb"]+$trans["fcea"]+$trans["fca"]+$trans["fhra"]+$trans["flta"]+$trans["fmed"]+$trans["foa"]+$trans["fpp"]+$trans["fpa"]+$trans["fphone"]+$trans["fattire"];			
				$trans["pfamount"] = $this->rounding_value((((($trans["pfgtot"]*$trans["pfsts"])*12)/100)),'1');			
				$trans["emlr_pf"] = $this->rounding_value(($trans["pfamount"]),'1');			
				$trans["fnp"] = $this->rounding_value(($trans["fg"]-$trans["pfamount"]),'1');			
				$trans["jan_inc"] = $this->rounding_value((((($trans["att_per"]+$trans["prod_per"]+$trans["err_per"])*$trans["b_inc"])/100)-($trans["incadjd"]+$trans["inc_adj"])),'1');			
				$trans["ot"] = $this->rounding_value(((($trans["ot_rate"]*$trans["ot_maxhrs"])+$trans["otadj"]+($trans["ot_rate"]*$trans["pmot"]))),'1');			
				$trans["pmota"] = $trans["pmot"]*$trans["ot_rate"];			
				$trans["sft_alw"] = $this->rounding_value(((($trans["sft_pd"]*$trans["sft_rate"])*$trans["sft_km"])+(($trans["sftadj"]*$trans["sft_rate"])*$trans["sft_km"])),'1');			
				$trans["sl_bal"] = $trans["sl_op"]-$trans["sl"];			
				$trans["tl"] = $trans["ld"]+$trans["cl"]+$trans["sl"];			
				$trans["ptax"] = $this->Process_payroll_model->get_professional_tax_value($trans["employee_code"],$trans["professional_tax_location"],$trans["fpt_gross"],$trans["ept_gross"],$trans["transactions_month"]);			
				$trans["er_pf"] = $trans["pfamount"];			
				$trans["npra"] = ($trans["fctc"]/30)*$trans["notice_period"];			
				$trans["esi"] = $this->rounding_value((((($trans["eg"]+$trans["food"]+$trans["m_sft_alw"]+$trans["ot"]+$trans["sft_alw"]+$trans["jan_inc"]+$trans["ag"]+$trans["inc_adj"]+$trans["arrearwithheld"]+$trans["loyalbon"])*$trans["esi_sts"])*0.75)/100),'>1');			
				$trans["mealcard"] = $trans["mealallo"];			
				$trans["esi_grs_cond"] = ($trans["fg"]/$trans["md"])*$trans["pd"];			
				if($trans["fg"]>21000){$trans["esi_grs"] = 0;}else{$trans["esi_grs"] = $trans["esi_grs_cond"];}
				$trans["empr_esi_cond"] = ($trans["fg"]*4.75)/100;			
				if($trans["fg"]>21000){$trans["empr_esi"] = 0;}else{$trans["empr_esi"] = $trans["empr_esi_cond"];}$payroll_array[3][] ="('".$trans["employees_id"]."','".$trans["employee_code"]."','".$trans["emp_name"]."','".$trans["transactions_month"]."','".$trans["role"]."','".$trans["transactions_month"]."','".$trans["termination_status"]."','".$trans["ab"]."','".$trans["acea"]."','".$trans["aconv"]."','".$trans["actc"]."','".$trans["adv"]."','".$trans["aepf"]."','".$trans["afg"]."','".$trans["amed"]."','".$trans["apa"]."','".$trans["aphone"]."','".$trans["app"]."','".$trans["arrearwithheld"]."','".$trans["att_per"]."','".$trans["b_inc"]."','".$trans["bonus"]."','".$trans["cl"]."','".$trans["cl_op"]."','".$trans["comcha"]."','".$trans["creadj"]."','".$trans["e_days"]."','".$trans["err_per"]."','".$trans["estatt"]."','".$trans["estpro"]."','".$trans["fattire"]."','".$trans["fb"]."','".$trans["fca"]."','".$trans["fcea"]."','".$trans["feb_inc"]."','".$trans["flb"]."','".$trans["fma"]."','".$trans["fmed"]."','".$trans["food_pd"]."','".$trans["fpa"]."','".$trans["fphone"]."','".$trans["fpp"]."','".$trans["inc_adj"]."','".$trans["lapreim"]."','".$trans["lcd"]."','".$trans["lcmd"]."','".$trans["ld"]."','".$trans["lectc"]."','".$trans["led"]."','".$trans["lev_encashday"]."','".$trans["m_sft_pd"]."','".$trans["marrs"]."','".$trans["maxpf_sts"]."','".$trans["njcd"]."','".$trans["njd"]."','".$trans["notice_period"]."','".$trans["oj_inc"]."','".$trans["ot_hrs"]."','".$trans["otadj"]."','".$trans["pmfd"]."','".$trans["pmot"]."','".$trans["prod_per"]."','".$trans["prptg"]."','".$trans["pyinc"]."','".$trans["rapd"]."','".$trans["rbs"]."','".$trans["salarycutrepaym"]."','".$trans["salaryheldff"]."','".$trans["sctc"]."','".$trans["sft_km"]."','".$trans["sft_pd"]."','".$trans["sft_rate"]."','".$trans["sftadj"]."','".$trans["sl"]."','".$trans["sl_op"]."','".$trans["tds_ret"]."','".$trans["trainincent"]."','".$trans["weekoff_days"]."','".$trans["yinc"]."','".$trans["md"]."','".$trans["separation_day"]."','".$trans["agreementrecove"]."','".$trans["arr_paid"]."','".$trans["arrearhold"]."','".$trans["esi_sts"]."','".$trans["incadjd"]."','".$trans["nprd"]."','".$trans["pfsts"]."','".$trans["rec"]."','".$trans["sadv"]."','".$trans["sal_adv"]."','".$trans["salarycut"]."','".$trans["salholdnotice"]."','".$trans["monthly_tds"]."','".$trans["tds_inc"]."','".$trans["ahra"]."','".$trans["alta"]."','".$trans["axg"]."','".$trans["aoth_alw"]."','".$trans["ag"]."','".$trans["cl_bal"]."','".$trans["pd"]."','".$trans["conv"]."','".$trans["eattire"]."','".$trans["eb"]."','".$trans["ecea"]."','".$trans["flta"]."','".$trans["elta"]."','".$trans["emed"]."','".$trans["epa"]."','".$trans["ephone"]."','".$trans["epp"]."','".$trans["fxg"]."','".$trans["exg"]."','".$trans["fctc"]."','".$trans["fhra"]."','".$trans["fininc"]."','".$trans["food"]."','".$trans["hra"]."','".$trans["lev_encashrate"]."','".$trans["lev_encashamt"]."','".$trans["loyalbon"]."','".$trans["m_sft_alw"]."','".$trans["mealallo"]."','".$trans["ot_rate"]."','".$trans["eot"]."','".$trans["ot_maxhrs"]."','".$trans["fpfgt"]."','".$trans["fpfg"]."','".$trans["fepf"]."','".$trans["foa"]."','".$trans["oth_alw"]."','".$trans["eg"]."','".$trans["pfgtot"]."','".$trans["pfg"]."','".$trans["cpf"]."','".$trans["ctc"]."','".$trans["fg"]."','".$trans["pfamount"]."','".$trans["emlr_pf"]."','".$trans["fnp"]."','".$trans["jan_inc"]."','".$trans["ot"]."','".$trans["pmota"]."','".$trans["sft_alw"]."','".$trans["sl_bal"]."','".$trans["tl"]."','".$trans["ptax"]."','".$trans["er_pf"]."','".$trans["npra"]."','".$trans["esi"]."','".$trans["mealcard"]."','".$trans["esi_grs_cond"]."','".$trans["esi_grs"]."','".$trans["empr_esi_cond"]."','".$trans["empr_esi"]."')";
						
		 $query_key = 'employees_id,employee_code,emp_name,transactions_month,role,process_month,termination_status,ab,acea,aconv,actc,adv,aepf,afg,amed,apa,aphone,app,arrearwithheld,att_per,b_inc,bonus,cl,cl_op,comcha,creadj,e_days,err_per,estatt,estpro,fattire,fb,fca,fcea,feb_inc,flb,fma,fmed,food_pd,fpa,fphone,fpp,inc_adj,lapreim,lcd,lcmd,ld,lectc,led,lev_encashday,m_sft_pd,marrs,maxpf_sts,njcd,njd,notice_period,oj_inc,ot_hrs,otadj,pmfd,pmot,prod_per,prptg,pyinc,rapd,rbs,salarycutrepaym,salaryheldff,sctc,sft_km,sft_pd,sft_rate,sftadj,sl,sl_op,tds_ret,trainincent,weekoff_days,yinc,md,separation_day,agreementrecove,arr_paid,arrearhold,esi_sts,incadjd,nprd,pfsts,rec,sadv,sal_adv,salarycut,salholdnotice,monthly_tds,tds_inc,ahra,alta,axg,aoth_alw,ag,cl_bal,pd,conv,eattire,eb,ecea,flta,elta,emed,epa,ephone,epp,fxg,exg,fctc,fhra,fininc,food,hra,lev_encashrate,lev_encashamt,loyalbon,m_sft_alw,mealallo,ot_rate,eot,ot_maxhrs,fpfgt,fpfg,fepf,foa,oth_alw,eg,pfgtot,pfg,cpf,ctc,fg,pfamount,emlr_pf,fnp,jan_inc,ot,pmota,sft_alw,sl_bal,tl,ptax,er_pf,npra,esi,mealcard,esi_grs_cond,esi_grs,empr_esi_cond,empr_esi'; 
	 $qry_3 = 'INSERT INTO cw_transactions(employees_id,employee_code,emp_name,transactions_month,role,process_month,termination_status,ab,acea,aconv,actc,adv,aepf,afg,amed,apa,aphone,app,arrearwithheld,att_per,b_inc,bonus,cl,cl_op,comcha,creadj,e_days,err_per,estatt,estpro,fattire,fb,fca,fcea,feb_inc,flb,fma,fmed,food_pd,fpa,fphone,fpp,inc_adj,lapreim,lcd,lcmd,ld,lectc,led,lev_encashday,m_sft_pd,marrs,maxpf_sts,njcd,njd,notice_period,oj_inc,ot_hrs,otadj,pmfd,pmot,prod_per,prptg,pyinc,rapd,rbs,salarycutrepaym,salaryheldff,sctc,sft_km,sft_pd,sft_rate,sftadj,sl,sl_op,tds_ret,trainincent,weekoff_days,yinc,md,separation_day,agreementrecove,arr_paid,arrearhold,esi_sts,incadjd,nprd,pfsts,rec,sadv,sal_adv,salarycut,salholdnotice,monthly_tds,tds_inc,ahra,alta,axg,aoth_alw,ag,cl_bal,pd,conv,eattire,eb,ecea,flta,elta,emed,epa,ephone,epp,fxg,exg,fctc,fhra,fininc,food,hra,lev_encashrate,lev_encashamt,loyalbon,m_sft_alw,mealallo,ot_rate,eot,ot_maxhrs,fpfgt,fpfg,fepf,foa,oth_alw,eg,pfgtot,pfg,cpf,ctc,fg,pfamount,emlr_pf,fnp,jan_inc,ot,pmota,sft_alw,sl_bal,tl,ptax,er_pf,npra,esi,mealcard,esi_grs_cond,esi_grs,empr_esi_cond,empr_esi'.$trans_key_array.') VALUES '.implode(',',$payroll_array[3]); 
			}else
			if((int)$trans["role"] === 4){
				$trans["ab"] = $this->rounding_value(($trans["ab"]),'1');			
				$trans["acea"] = $trans["acea"];			
				$trans["aconv"] = $trans["aconv"];			
				$trans["actc"] = $trans["actc"];			
				$trans["adv"] = $this->rounding_value(($trans["adv"]),'1');			
				$trans["aepf"] = $trans["aepf"];			
				$trans["afg"] = $trans["afg"];			
				$trans["amed"] = $trans["amed"];			
				$trans["apa"] = $trans["apa"];			
				$trans["aphone"] = $trans["aphone"];			
				$trans["app"] = $trans["app"];			
				$trans["arrearwithheld"] = $trans["arrearwithheld"];			
				$trans["att_per"] = $trans["att_per"];			
				$trans["b_inc"] = $trans["b_inc"];			
				$trans["bonus"] = $trans["bonus"];			
				$trans["cl"] = $trans["cl"];			
				$trans["cl_op"] = $trans["cl_op"];			
				$trans["comcha"] = $trans["comcha"];			
				$trans["creadj"] = $trans["creadj"];			
				$trans["e_days"] = $trans["e_days"];			
				$trans["err_per"] = $trans["err_per"];			
				$trans["estatt"] = $trans["estatt"];			
				$trans["estpro"] = $trans["estpro"];			
				$trans["fattire"] = $trans["fattire"];			
				$trans["fb"] = $this->rounding_value(($trans["fb"]),'1');			
				$trans["fca"] = $trans["fca"];			
				$trans["fcea"] = $trans["fcea"];			
				$trans["feb_inc"] = $trans["feb_inc"];			
				$trans["flb"] = $trans["flb"];			
				$trans["fma"] = $trans["fma"];			
				$trans["fmed"] = $trans["fmed"];			
				$trans["food_pd"] = $trans["food_pd"];			
				$trans["fpa"] = $trans["fpa"];			
				$trans["fphone"] = $trans["fphone"];			
				$trans["fpp"] = $trans["fpp"];			
				$trans["inc_adj"] = $trans["inc_adj"];			
				$trans["lapreim"] = $trans["lapreim"];			
				$trans["lcd"] = $trans["lcd"];			
				$trans["lcmd"] = $trans["lcmd"];			
				$trans["ld"] = $trans["ld"];			
				$trans["lectc"] = $trans["lectc"];			
				$trans["led"] = $trans["led"];			
				$trans["lev_encashday"] = $trans["lev_encashday"];			
				$trans["m_sft_pd"] = $trans["m_sft_pd"];			
				$trans["marrs"] = $trans["marrs"];			
				$trans["maxpf_sts"] = $trans["maxpf_sts"];			
				$trans["njcd"] = $trans["njcd"];			
				$trans["njd"] = $trans["njd"];			
				$trans["notice_period"] = $trans["notice_period"];			
				$trans["oj_inc"] = $trans["oj_inc"];			
				$trans["ot_hrs"] = $trans["ot_hrs"];			
				$trans["otadj"] = $trans["otadj"];			
				$trans["pmfd"] = $trans["pmfd"];			
				$trans["pmot"] = $trans["pmot"];			
				$trans["prod_per"] = $trans["prod_per"];			
				$trans["prptg"] = $trans["prptg"];			
				$trans["pyinc"] = $trans["pyinc"];			
				$trans["rapd"] = $trans["rapd"];			
				$trans["rbs"] = $trans["rbs"];			
				$trans["salarycutrepaym"] = $trans["salarycutrepaym"];			
				$trans["salaryheldff"] = $trans["salaryheldff"];			
				$trans["sctc"] = $trans["sctc"];			
				$trans["sft_km"] = $trans["sft_km"];			
				$trans["sft_pd"] = $trans["sft_pd"];			
				$trans["sft_rate"] = $trans["sft_rate"];			
				$trans["sftadj"] = $trans["sftadj"];			
				$trans["sl"] = $trans["sl"];			
				$trans["sl_op"] = $trans["sl_op"];			
				$trans["tds_ret"] = $trans["tds_ret"];			
				$trans["trainincent"] = $trans["trainincent"];			
				$trans["weekoff_days"] = $trans["weekoff_days"];			
				$trans["yinc"] = $trans["yinc"];			
				$trans["md"] = $this->Process_payroll_model->get_total_work_days($trans["role"],$trans["transactions_month"]);			
				$trans["separation_day"] = $this->Process_payroll_model->get_seperation_day($trans["employee_code"],$trans["role"],$trans["transactions_month"]);			
				$trans["agreementrecove"] = $trans["agreementrecove"];			
				$trans["arr_paid"] = $trans["arr_paid"];			
				$trans["arrearhold"] = $trans["arrearhold"];			
				$trans["esi_sts"] = $trans["esi_sts"];			
				$trans["incadjd"] = $trans["incadjd"];			
				$trans["nprd"] = $trans["nprd"];			
				$trans["pfsts"] = $trans["pfsts"];			
				$trans["rec"] = $trans["rec"];			
				$trans["sadv"] = $trans["sadv"];			
				$trans["sal_adv"] = $trans["sal_adv"];			
				$trans["salarycut"] = $trans["salarycut"];			
				$trans["salholdnotice"] = $trans["salholdnotice"];			
				$trans["monthly_tds"] = $trans["monthly_tds"];			
				$trans["tds_inc"] = $trans["tds_inc"];			
				$trans["ahra"] = $this->rounding_value((($trans["ab"]*50)/100),'1');			
				$trans["alta"] = $this->rounding_value((($trans["ab"]*8.33)/100),'1');			
				$trans["axg"] = $this->rounding_value((($trans["ab"]*8.33)/100),'1');			
				$trans["aoth_alw"] = $trans["actc"]-($trans["ab"]+$trans["ahra"]+$trans["alta"]+$trans["aphone"]+$trans["axg"]);			
				$trans["ag"] = $trans["ab"]+$trans["ahra"]+$trans["aconv"]+$trans["aoth_alw"]+$trans["acea"]+$trans["axg"]+$trans["alta"]+$trans["amed"]+$trans["aphone"]+$trans["marrs"];			
				$trans["cl_bal"] = $trans["cl_op"]-$trans["cl"];			
				$trans["pd"] = $trans["md"]-$trans["ld"]-$trans["separation_day"]+$trans["njd"]+$trans["rapd"]-$trans["njcd"]+$trans["e_days"];			
				$trans["conv"] = $this->rounding_value(((($trans["fca"]/$trans["md"])*$trans["pd"])+(($trans["fca"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["eattire"] = $this->rounding_value(((($trans["fattire"]/$trans["md"])*$trans["pd"])+(($trans["fattire"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["eb"] = $this->rounding_value(((($trans["fb"]/$trans["md"])*$trans["pd"])+(($trans["fb"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["ecea"] = $this->rounding_value(((($trans["fcea"]/$trans["md"])*$trans["pd"])+(($trans["fcea"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["flta"] = $this->rounding_value((($trans["fb"]*8.33)/100),'1');			
				$trans["elta"] = $this->rounding_value(((($trans["flta"]/$trans["md"])*$trans["pd"])+(($trans["flta"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["emed"] = $this->rounding_value(((($trans["fmed"]/$trans["md"])*$trans["pd"])+(($trans["fmed"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["epa"] = $this->rounding_value(((($trans["fpa"]/$trans["md"])*$trans["pd"])+(($trans["fpa"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["ephone"] = $this->rounding_value(((($trans["fphone"]/$trans["md"])*$trans["pd"])+(($trans["fphone"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["epp"] = $this->rounding_value(((($trans["fpp"]/$trans["md"])*$trans["pd"])+(($trans["fpp"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["fxg"] = $this->rounding_value((($trans["fb"]*8.33)/100),'1');			
				$trans["exg"] = $this->rounding_value(((($trans["fxg"]/$trans["md"])*$trans["pd"])+(($trans["fxg"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["fctc"] = $trans["sctc"];			
				$trans["fhra"] = $this->rounding_value((($trans["fb"]*50)/100),'1');			
				$trans["fininc"] = $trans["att_per"]+$trans["err_per"]+$trans["prod_per"];			
				$trans["food"] = (($trans["food_pd"]*80)+($trans["pmfd"]*80));			
				$trans["hra"] = $this->rounding_value(((($trans["fhra"]/$trans["md"])*$trans["pd"])+(($trans["fhra"]/$trans["lcmd"])*$trans["lcd"])),'1');			
				$trans["lev_encashrate"] = $trans["lectc"]/30;			
				$trans["lev_encashamt"] = $trans["led"]*$trans["lev_encashrate"];			
				$trans["loyalbon"] = ($trans["flb"]/$trans["md"])*$trans["pd"];			
				$trans["m_sft_alw"] = $trans["m_sft_pd"]*50;			
				$trans["mealallo"] = $this->rounding_value((($trans["fma"]/$trans["md"])*$trans["pd"]),'1');			
				$trans["ot_rate"] = ((($trans["fctc"]/30)/8)/60);			
				if($trans["ld"]==$trans["md"]){$trans["eot"] = $trans["pfsts"]*0;}else{$trans["eot"] = $trans["pfsts"];}
				if($trans["ot_hrs"]>960){$trans["ot_maxhrs"] = 960;}else{$trans["ot_maxhrs"] = $trans["ot_hrs"];}
				$trans["fpfgt"] = $this->rounding_value(($trans["fctc"]*$trans["pfsts"]),'1');			
				if($trans["fctc"]>18749){$trans["fpfg"] = 15000*$trans["pfsts"];}else{$trans["fpfg"] = $trans["fpfgt"];}
				$trans["fepf"] = $this->rounding_value((($trans["fpfg"]*12)/100),'1');			
				$trans["foa"] = $trans["fctc"]-($trans["fb"]+$trans["fhra"]+$trans["flta"]+$trans["fxg"]+$trans["fphone"]+$trans["fmed"]+$trans["fepf"]);			
				$trans["oth_alw"] = $this->rounding_value((((($trans["foa"]/$trans["md"])*$trans["pd"])-(((1800/$trans["md"])*$trans["ld"])*$trans["pfsts"])+(($trans["foa"]/$trans["lcmd"])*$trans["lcd"]))),'1');			
				$trans["eg"] = $trans["eb"]+$trans["hra"]+$trans["conv"]+$trans["oth_alw"]+$trans["ecea"]+$trans["exg"]+$trans["elta"]+$trans["emed"]+ $trans["epp"]+$trans["epa"]+$trans["ephone"]+$trans["eattire"];			
				$trans["pfgtot"] = $trans["eg"];			
				if($trans["pfgtot"]>15000){$trans["pfg"] = 15000;}else{$trans["pfg"] = $trans["pfgtot"];}
				$trans["cpf"] = $this->rounding_value(((($trans["pfg"]*12)/100)*$trans["pfsts"]),'1');			
				$trans["ctc"] = $trans["eg"]+$trans["cpf"];			
				$trans["fg"] = $trans["fb"]+$trans["fcea"]+$trans["fca"]+$trans["fhra"]+$trans["flta"]+$trans["fmed"]+$trans["foa"]+$trans["fpp"]+$trans["fpa"]+$trans["fphone"]+$trans["fattire"];			
				$trans["pfamount"] = $this->rounding_value((((($trans["pfgtot"]*$trans["pfsts"])*12)/100)),'1');			
				$trans["emlr_pf"] = $this->rounding_value(($trans["pfamount"]),'1');			
				$trans["fnp"] = $this->rounding_value(($trans["fg"]-$trans["pfamount"]),'1');			
				$trans["jan_inc"] = $this->rounding_value((((($trans["att_per"]+$trans["prod_per"]+$trans["err_per"])*$trans["b_inc"])/100)-($trans["incadjd"]+$trans["inc_adj"])),'1');			
				$trans["ot"] = $this->rounding_value(((($trans["ot_rate"]*$trans["ot_maxhrs"])+$trans["otadj"]+($trans["ot_rate"]*$trans["pmot"]))),'1');			
				$trans["pmota"] = $trans["pmot"]*$trans["ot_rate"];			
				$trans["sft_alw"] = $this->rounding_value(((($trans["sft_pd"]*$trans["sft_rate"])*$trans["sft_km"])+(($trans["sftadj"]*$trans["sft_rate"])*$trans["sft_km"])),'1');			
				$trans["sl_bal"] = $trans["sl_op"]-$trans["sl"];			
				$trans["tl"] = $trans["ld"]+$trans["cl"]+$trans["sl"];			
				$trans["ptax"] = $this->Process_payroll_model->get_professional_tax_value($trans["employee_code"],$trans["professional_tax_location"],$trans["fpt_gross"],$trans["ept_gross"],$trans["transactions_month"]);			
				$trans["er_pf"] = $trans["pfamount"];			
				$trans["npra"] = ($trans["fctc"]/30)*$trans["notice_period"];			
				$trans["esi"] = $this->rounding_value((((($trans["eg"]+$trans["food"]+$trans["m_sft_alw"]+$trans["ot"]+$trans["sft_alw"]+$trans["jan_inc"]+$trans["ag"]+$trans["inc_adj"]+$trans["arrearwithheld"]+$trans["loyalbon"])*$trans["esi_sts"])*0.75)/100),'>1');			
				$trans["mealcard"] = $trans["mealallo"];			
				$trans["esi_grs_cond"] = ($trans["fg"]/$trans["md"])*$trans["pd"];			
				if($trans["fg"]>21000){$trans["esi_grs"] = 0;}else{$trans["esi_grs"] = $trans["esi_grs_cond"];}
				$trans["empr_esi_cond"] = ($trans["fg"]*4.75)/100;			
				if($trans["fg"]>21000){$trans["empr_esi"] = 0;}else{$trans["empr_esi"] = $trans["empr_esi_cond"];}$payroll_array[4][] ="('".$trans["employees_id"]."','".$trans["employee_code"]."','".$trans["emp_name"]."','".$trans["transactions_month"]."','".$trans["role"]."','".$trans["transactions_month"]."','".$trans["termination_status"]."','".$trans["ab"]."','".$trans["acea"]."','".$trans["aconv"]."','".$trans["actc"]."','".$trans["adv"]."','".$trans["aepf"]."','".$trans["afg"]."','".$trans["amed"]."','".$trans["apa"]."','".$trans["aphone"]."','".$trans["app"]."','".$trans["arrearwithheld"]."','".$trans["att_per"]."','".$trans["b_inc"]."','".$trans["bonus"]."','".$trans["cl"]."','".$trans["cl_op"]."','".$trans["comcha"]."','".$trans["creadj"]."','".$trans["e_days"]."','".$trans["err_per"]."','".$trans["estatt"]."','".$trans["estpro"]."','".$trans["fattire"]."','".$trans["fb"]."','".$trans["fca"]."','".$trans["fcea"]."','".$trans["feb_inc"]."','".$trans["flb"]."','".$trans["fma"]."','".$trans["fmed"]."','".$trans["food_pd"]."','".$trans["fpa"]."','".$trans["fphone"]."','".$trans["fpp"]."','".$trans["inc_adj"]."','".$trans["lapreim"]."','".$trans["lcd"]."','".$trans["lcmd"]."','".$trans["ld"]."','".$trans["lectc"]."','".$trans["led"]."','".$trans["lev_encashday"]."','".$trans["m_sft_pd"]."','".$trans["marrs"]."','".$trans["maxpf_sts"]."','".$trans["njcd"]."','".$trans["njd"]."','".$trans["notice_period"]."','".$trans["oj_inc"]."','".$trans["ot_hrs"]."','".$trans["otadj"]."','".$trans["pmfd"]."','".$trans["pmot"]."','".$trans["prod_per"]."','".$trans["prptg"]."','".$trans["pyinc"]."','".$trans["rapd"]."','".$trans["rbs"]."','".$trans["salarycutrepaym"]."','".$trans["salaryheldff"]."','".$trans["sctc"]."','".$trans["sft_km"]."','".$trans["sft_pd"]."','".$trans["sft_rate"]."','".$trans["sftadj"]."','".$trans["sl"]."','".$trans["sl_op"]."','".$trans["tds_ret"]."','".$trans["trainincent"]."','".$trans["weekoff_days"]."','".$trans["yinc"]."','".$trans["md"]."','".$trans["separation_day"]."','".$trans["agreementrecove"]."','".$trans["arr_paid"]."','".$trans["arrearhold"]."','".$trans["esi_sts"]."','".$trans["incadjd"]."','".$trans["nprd"]."','".$trans["pfsts"]."','".$trans["rec"]."','".$trans["sadv"]."','".$trans["sal_adv"]."','".$trans["salarycut"]."','".$trans["salholdnotice"]."','".$trans["monthly_tds"]."','".$trans["tds_inc"]."','".$trans["ahra"]."','".$trans["alta"]."','".$trans["axg"]."','".$trans["aoth_alw"]."','".$trans["ag"]."','".$trans["cl_bal"]."','".$trans["pd"]."','".$trans["conv"]."','".$trans["eattire"]."','".$trans["eb"]."','".$trans["ecea"]."','".$trans["flta"]."','".$trans["elta"]."','".$trans["emed"]."','".$trans["epa"]."','".$trans["ephone"]."','".$trans["epp"]."','".$trans["fxg"]."','".$trans["exg"]."','".$trans["fctc"]."','".$trans["fhra"]."','".$trans["fininc"]."','".$trans["food"]."','".$trans["hra"]."','".$trans["lev_encashrate"]."','".$trans["lev_encashamt"]."','".$trans["loyalbon"]."','".$trans["m_sft_alw"]."','".$trans["mealallo"]."','".$trans["ot_rate"]."','".$trans["eot"]."','".$trans["ot_maxhrs"]."','".$trans["fpfgt"]."','".$trans["fpfg"]."','".$trans["fepf"]."','".$trans["foa"]."','".$trans["oth_alw"]."','".$trans["eg"]."','".$trans["pfgtot"]."','".$trans["pfg"]."','".$trans["cpf"]."','".$trans["ctc"]."','".$trans["fg"]."','".$trans["pfamount"]."','".$trans["emlr_pf"]."','".$trans["fnp"]."','".$trans["jan_inc"]."','".$trans["ot"]."','".$trans["pmota"]."','".$trans["sft_alw"]."','".$trans["sl_bal"]."','".$trans["tl"]."','".$trans["ptax"]."','".$trans["er_pf"]."','".$trans["npra"]."','".$trans["esi"]."','".$trans["mealcard"]."','".$trans["esi_grs_cond"]."','".$trans["esi_grs"]."','".$trans["empr_esi_cond"]."','".$trans["empr_esi"]."')";
						
		 $query_key = 'employees_id,employee_code,emp_name,transactions_month,role,process_month,termination_status,ab,acea,aconv,actc,adv,aepf,afg,amed,apa,aphone,app,arrearwithheld,att_per,b_inc,bonus,cl,cl_op,comcha,creadj,e_days,err_per,estatt,estpro,fattire,fb,fca,fcea,feb_inc,flb,fma,fmed,food_pd,fpa,fphone,fpp,inc_adj,lapreim,lcd,lcmd,ld,lectc,led,lev_encashday,m_sft_pd,marrs,maxpf_sts,njcd,njd,notice_period,oj_inc,ot_hrs,otadj,pmfd,pmot,prod_per,prptg,pyinc,rapd,rbs,salarycutrepaym,salaryheldff,sctc,sft_km,sft_pd,sft_rate,sftadj,sl,sl_op,tds_ret,trainincent,weekoff_days,yinc,md,separation_day,agreementrecove,arr_paid,arrearhold,esi_sts,incadjd,nprd,pfsts,rec,sadv,sal_adv,salarycut,salholdnotice,monthly_tds,tds_inc,ahra,alta,axg,aoth_alw,ag,cl_bal,pd,conv,eattire,eb,ecea,flta,elta,emed,epa,ephone,epp,fxg,exg,fctc,fhra,fininc,food,hra,lev_encashrate,lev_encashamt,loyalbon,m_sft_alw,mealallo,ot_rate,eot,ot_maxhrs,fpfgt,fpfg,fepf,foa,oth_alw,eg,pfgtot,pfg,cpf,ctc,fg,pfamount,emlr_pf,fnp,jan_inc,ot,pmota,sft_alw,sl_bal,tl,ptax,er_pf,npra,esi,mealcard,esi_grs_cond,esi_grs,empr_esi_cond,empr_esi'; 
	 $qry_4 = 'INSERT INTO cw_transactions(employees_id,employee_code,emp_name,transactions_month,role,process_month,termination_status,ab,acea,aconv,actc,adv,aepf,afg,amed,apa,aphone,app,arrearwithheld,att_per,b_inc,bonus,cl,cl_op,comcha,creadj,e_days,err_per,estatt,estpro,fattire,fb,fca,fcea,feb_inc,flb,fma,fmed,food_pd,fpa,fphone,fpp,inc_adj,lapreim,lcd,lcmd,ld,lectc,led,lev_encashday,m_sft_pd,marrs,maxpf_sts,njcd,njd,notice_period,oj_inc,ot_hrs,otadj,pmfd,pmot,prod_per,prptg,pyinc,rapd,rbs,salarycutrepaym,salaryheldff,sctc,sft_km,sft_pd,sft_rate,sftadj,sl,sl_op,tds_ret,trainincent,weekoff_days,yinc,md,separation_day,agreementrecove,arr_paid,arrearhold,esi_sts,incadjd,nprd,pfsts,rec,sadv,sal_adv,salarycut,salholdnotice,monthly_tds,tds_inc,ahra,alta,axg,aoth_alw,ag,cl_bal,pd,conv,eattire,eb,ecea,flta,elta,emed,epa,ephone,epp,fxg,exg,fctc,fhra,fininc,food,hra,lev_encashrate,lev_encashamt,loyalbon,m_sft_alw,mealallo,ot_rate,eot,ot_maxhrs,fpfgt,fpfg,fepf,foa,oth_alw,eg,pfgtot,pfg,cpf,ctc,fg,pfamount,emlr_pf,fnp,jan_inc,ot,pmota,sft_alw,sl_bal,tl,ptax,er_pf,npra,esi,mealcard,esi_grs_cond,esi_grs,empr_esi_cond,empr_esi'.$trans_key_array.') VALUES '.implode(',',$payroll_array[4]); 
			}
		}  
	 if($payroll_array[2]){ 
	 $this->db->query($qry_2); 
	 }
	 if($payroll_array[3]){ 
	 $this->db->query($qry_3); 
	 }
	 if($payroll_array[4]){ 
	 $this->db->query($qry_4); 
	 } return true; 
	}

	public function rounding_value($result, $round_mode){
		$result = round($result,2);
		$final_result =0;
		if(($round_mode == 0.5) || ($round_mode == 1)){
			$final_result = round($result/$round_mode, 0)* $round_mode;
		}elseif($round_mode == '>1'){
			$final_result = ceil($result);
		}elseif($round_mode == '<1'){
			$final_result = floor($result);
		}elseif($round_mode == '<0.5'){
			$rslt   = explode('.', $result);
			$int_value  =  $rslt[0];
			$point_value =  $rslt[1];
			if((int)$point_value > 50){
				$final_result = $int_value.'.50';
			}else{
				$final_result = ceil($result);
			}
		}elseif($round_mode == '>0.5'){
			$rslt   = explode('.', $result);
			$int_value   =  $rslt[0];
			$point_value =  $rslt[1];
			if((int)$point_value >= 50){
				$final_result = round($result);
			}else{
				$final_result = $int_value.'.50';
			}
		}elseif(((int)$round_mode == 5) || ((int)$round_mode == 10) || ((int)$round_mode == 50) || ((int)$round_mode == 100)){
			$final_result = (ceil($result)% $round_mode === 0) ? ceil($result) : round(($result+ $round_mode/2)/ $round_mode)*$round_mode;
		}elseif($round_mode == 0.1){
			$final_result = round($result, 2);
		}
		return $final_result;
	}
				
	public function dz($result){
		if(is_nan($result) || is_infinite($result)){
			$result = 0;
		}else{
			$result;
		}
		return $result;
	}

}
?>