Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64
Your IP : 3.145.64.210
<?php
function getEmployeeConditionfileds($aobj_context)
{
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$get_emp_fileds="select sus.internal_code,name as ele_name from
s_user_schema_elements sus
inner join s_user_schema s on s.internal_code=sus.ref_s_user_schema_code
where module_name='Employee' order by sus.sequence,sus.internal_code";
$lobj_details_emp_fileds = $aobj_context->mobj_db->getAll($get_emp_fileds);
$arr['fields']=$lobj_details_emp_fileds;
$get_operator="select internal_code,operator from operators";
$lobj_details_operator = $aobj_context->mobj_db->getAll($get_operator);
$arr['oper']=$lobj_details_operator;
if($lobj_details_emp_fileds)
{
echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success");
return;
}
}
function getSearchedEmployeeFields($aobj_context,$value)
{
require_once($aobj_context->main_src."/custom_src/employeeClass.php");
$emp_obj=new employeeClass($aobj_context);
$emp_obj->employee();
if(!empty($value))
{
$get_data="select internal_code,
concat({$emp_obj->employee_name},'-',{$emp_obj->employee_code}) as emp_code
from {$emp_obj->employee_table} where
{$emp_obj->employee_name} like '{$value}%' order by {$emp_obj->employee_name} limit 15 ";
$obj_get_employee_fields = $aobj_context->mobj_db->GetAll($get_data);
if(empty($obj_get_employee_fields))
{
$get_data="select internal_code,
concat({$emp_obj->employee_code},'-',{$emp_obj->employee_name}) as emp_code
from {$emp_obj->employee_table} where
{$emp_obj->employee_code} like '{$value}%' order by {$emp_obj->employee_code} limit 15";
$obj_get_employee_fields = $aobj_context->mobj_db->GetAll($get_data);
}
}
else
{
$get_data="select internal_code,
concat({$emp_obj->employee_code},'-',{$emp_obj->employee_name}) as emp_code
from {$emp_obj->employee_table} order by {$emp_obj->employee_code} limit 15";
$obj_get_employee_fields = $aobj_context->mobj_db->GetAll($get_data);
}
return $obj_get_employee_fields ;
}
function getReportEmpDetailsCriteria($aobj_context)
{
$value=trim($aobj_context->mobj_data["value"]);
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$obj_get_employee_fields=getSearchedEmployeeFields($aobj_context,$value);
$str_emp="<table width='50%' align='right' border='0' cellpadding='' cellspacing=''>";
$str_emp.="<tr>";
$str_emp.="<td style='width:180px;'>";
$str_emp.="<div id='report_setup_employee_div' style='padding:2px;overflow-y:scroll;overflow-y:auto;width:260px;height:250px;border:1px solid #cccccc;'>";
for($mdata = 0 ; $mdata < count($obj_get_employee_fields) ; $mdata++)
{
$field_data_id = $obj_get_employee_fields[$mdata][emp_code];
$internal_code = $obj_get_employee_fields[$mdata][internal_code];
$str_emp.="<input type='checkbox' id = 'emp_sal_process_int_code_$internal_code' name='{$internal_code}' /><label for='checkOption1'>{$field_data_id}</label><br />";
}
$str_emp.="</div></td>";
$str_emp.="</tr></table>";
$arr['emp_html']=$str_emp;
$arr['emp_table_data']=$obj_get_employee_fields;
echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"Success");
}
function getReportEnableCriteria($aobj_context)
{
$value=trim($aobj_context->mobj_data["value"]);
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$obj_get_employee_fields=getSearchedEmployeeFields($aobj_context,$value);
$get_details="(select su.internal_code,name as module_name ,ref_module_code,s.internal_code as schema_id from
s_user_schema s inner join s_user_schema_elements su on
su.ref_s_user_schema_code=s.internal_code
inner join s_ref_type t on t.internal_code=su.s_ref_type_meta
inner join s_ref_type t1 on t1.internal_code=su.data_type
where module_name='Employee' and is_multiple_group=0
and ((
t1.value in('List Of Values','Reference Data')) or (t.value='meta' and is_unique=1))) ";
$lobj_details = $aobj_context->mobj_db->getAll($get_details);
//echo $get_details;
$criteria_table="<div><table width='100%' align='left' border='0' cellspacing='1' cellpadding='1'>";
foreach($lobj_details as $key=>$val)
{
$criteria_table.="<tr>";
$criteria_table.="<tr><td align='right'>{$val[module_name]}:</td>";
$criteria_table.="<td align='left'><div id='input_div_emp_report_criteria' class='imageInputDateMonth' style='float:left;width:162px;'>";
$criteria_table.="<input style='border:0px solid #c8c8c8; width:138px; height:16px;' class='inputWithImge ElementCount' id='emp_report_criteria_{$val[internal_code]}' name='emp_report_criteria_{$val[internal_code]}' type='text' style='width:137px;' value=''/>";
$criteria_table.="<a href='javascript:;' style='text-decoration:none' id='pop_up_emp_report_criteria'>";
$criteria_table.="<img src='images/search-glass.gif' class='img' border = '0' onclick=ReportSetupPopupDetails('{$val[internal_code]}')></a>";
$criteria_table.="<input type='hidden' id='hidden_employee_salary_process_module_code' /><input type='hidden' id='hidden_employee_salary_process_int_code' />";
$criteria_table.="</td></tr>";
}
$criteria_table.="</table></div>";
$arr['criteria_html']=$criteria_table;
$arr['criteria_table_data']=$lobj_details;
echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success");
}
function getReportEnableEmployeeFields($aobj_context)
{
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$internal_code=$aobj_context->mobj_data["internal_code"];
$e_data_header="<table align='center' cellspacing='0' cellpadding='0' border='0' width='97%'>";
$e_data_header.="<th align='left' colspan='7' class='ui-jqgrid-titlebar ui-widget-header ui-corner-tl ui-corner-tr ui-helper' style='font-size:12px; padding-left:6px; height:24px;'>Employee Fields</th>";
$e_data_header.="<tr class='ui-state-default ui-jqgrid-hdiv'></tr>";
$e_data_header.="<td align=center style='padding:2px; width:58px; border-left:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Col Seq</td>";
$e_data_header.="<td align=center style='padding:2px; width:88px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Fields</td>";
$e_data_header.="<td align=center style='padding:2px; width:55px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Select<input style='width'type=checkbox id='select_emp_fields' onclick='selectAllEmpFields();'></td>";
$e_data_header.="<td align=center style='padding:2px; width:48px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Group By</td>";
$e_data_header.="<td align=center style='padding:2px; width:58px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Order By</td>";
$e_data_header.="<td align=center style='padding:2px; width:88px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Order Type</td>";
$e_data_header.="<td align=center style='padding:2px; width:60px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Order Seq</td>";
$e_data_header.="</tr>";
$get_emp_fields=" select internal_code,name,
ifnull(column_seq,1) as column_seq,
ifnull(is_selected,0) as is_selected,
ifnull(is_group_by,0) as is_group_by,
ifnull(is_order_by,0) as is_order_by,
ifnull(order_type,'asc') as order_type,
ifnull(order_by_seq,1) as order_by_seq
from (select sus.internal_code,name from
s_user_schema_elements sus
inner join s_user_schema s on s.internal_code=sus.ref_s_user_schema_code
where module_name='Employee' order by sus.sequence) a
left join (select ref_emp_field_code,
column_seq,
is_selected,
is_group_by,
is_order_by,
order_type,
order_by_seq from report_header rh inner join report_detail_emp_columns rde
on rde.ref_report_header_code=rh.internal_code
where rh.internal_code={$internal_code}) b on a.internal_code=b.ref_emp_field_code";
$lobj_get_emp_fields = $aobj_context->mobj_db->getAll($get_emp_fields);
$k=0;
foreach($lobj_get_emp_fields as $key=>$val)
{
$ass_cheked='';
$des_cheked='';
if($k%2==0)
$class='tbl_row';
else
$class='tbl_row1';
$emp_col_seq=($val['column_seq']==1)?($k+1):$val['column_seq'];
$emp_is_selected=($val['is_selected']==1)?'checked':'';
$emp_is_grouped=($val['is_group_by']==1)?'checked':'';
$emp_is_ordered=($val['is_order_by']==1)?'checked':'';
if($val['order_type']=='asc')
$ass_cheked=' checked=checked ';
else
$des_cheked=' checked=checked ';
$emp_order_seq=$val['order_by_seq'];
$e_data.="<tr class='ui-widget-content jqgrow'>";
$e_data.="<td class='tbl_row_new' align=center style='border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;'><input type=text style='border:1px solid #C5DBEC; width:50px;' value= ".$emp_col_seq." id='report_emp_col_seq_{$val[internal_code]}'> </td>";
$e_data.="<td class='tbl_row_new' style='border-right:1px solid #C5DBEC; padding:2px;' id='report_emp_col_name_{$val[internal_code]}'>{$val[name]}</td>";
$e_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;'><input type=checkbox {$emp_is_selected} id='report_emp_select_{$val[internal_code]}'> </td>";
$e_data.="<td class='tbl_row_new' align=center style=' border-right:1px solid #C5DBEC; padding:2px;'><input type=checkbox {$emp_is_grouped} id='report_emp_group_by_{$val[internal_code]}'> </td>";
$e_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;'><input type=checkbox {$emp_is_ordered} id='report_emp_order_by_{$val[internal_code]}'> </td>";
$e_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;'>Asc:<input type=radio name=radio_report_{$val[internal_code]} {$ass_cheked} id='report_emp_order_type_asc_{$val[internal_code]}'> Desc:<input name=radio_report_{$val[internal_code]} {$des_cheked} type=radio id='report_emp_order_type_des_{$val[internal_code]}'></td>";
$e_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;'><input style='width:50px; border:1px solid #C5DBEC;'type=text value={$emp_order_seq} id='report_emp_order_seq_{$val[internal_code]}'> </td>";
$e_data.="</tr>";
$k++;
}
$arr['html']=$e_data_header.$e_data."</table>";
$arr['table_data']=$lobj_get_emp_fields;
echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success");
}
function getReportEnableSalFields($aobj_context)
{
require_once($aobj_context->main_src."/custom_src/salcompclass.php");
$check_type_obj=new SalCompClass($aobj_context);
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$internal_code=$aobj_context->mobj_data["internal_code"];
$earn_sal_data="<table align='left' cellspacing='0' cellpadding='0' border='0' width='48%'>";
$earn_sal_data.="<th align='left' colspan='7' class='ui-jqgrid-titlebar ui-widget-header ui-corner-tl ui-corner-tr ui-helper' style='font-size:12px; padding-left:6px; height:24px;'>Earnings</th>";
$earn_sal_data.="<tr class='ui-state-default ui-jqgrid-hdiv'></tr>";
$earn_sal_data.="<td align=center style='padding:2px; width:20px; border-left:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Col Seq</td>";
$earn_sal_data.="<td align=center style='padding:2px; width:120px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Fields</td>";
$earn_sal_data.="<td align=center style='padding:2px; width:25px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Select<input type=checkbox id='select_sal_fields' onclick='selectAllSalFields();'></td>";
$earn_sal_data.="<td align=center style='padding:2px; width:50px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;display:none;' >Order By</td>";
$earn_sal_data.="<td align=center style='padding:2px; width:50px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;display:none;'>Order Type</td>";
$earn_sal_data.="<td align=center style='padding:2px; width:58px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;display:none;'>Order Seq</td>";
$earn_sal_data.="<td align=center style='padding:2px; width:25px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Sum Into</td>";
$earn_sal_data.="</tr>";
$ded_sal_data="<table align='left' cellspacing='0' cellpadding='0' border='0' width='48%'>";
$ded_sal_data.="<th align='left' colspan='7' class='ui-jqgrid-titlebar ui-widget-header ui-corner-tl ui-corner-tr ui-helper' style='font-size:12px; padding-left:6px; height:24px;'>Deductions</th>";
$ded_sal_data.="<tr class='ui-state-default ui-jqgrid-hdiv'></tr>";
$ded_sal_data.="<td align=center style='padding:2px; width:20px; border-left:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Col Seq</td>";
$ded_sal_data.="<td align=center style='padding:2px; width:120px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Fields</td>";
$ded_sal_data.="<td align=center style='padding:2px; width:25px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Select<input type=checkbox id='select_sal_fields' onclick='selectAllSalFields();'></td>";
$ded_sal_data.="<td align=center style='padding:2px; width:508px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;display:none;' >Order By</td>";
$ded_sal_data.="<td align=center style='padding:2px; width:50px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;display:none;'>Order Type</td>";
$ded_sal_data.="<td align=center style='padding:2px; width:58px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;display:none;'>Order Seq</td>";
$ded_sal_data.="<td align=center style='padding:2px; width:25px; border-bottom:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'>Sum Into</td>";
$ded_sal_data.="</tr>";
$obj_mapping="select internal_code,component,
ifnull(column_seq,1) as column_seq,
ifnull(is_selected,0) as is_selected,
ifnull(is_order_by,0) as is_order_by,
ifnull(order_type,'asc') as order_type,
ifnull(order_by_seq,1) as order_by_seq,
ifnull(sum_into,' ') as sum_into,type
from
(select c.internal_code ,
{$check_type_obj->salary_comp_field_name} as component,
{$check_type_obj->salary_comp_type_field_name} as type,
ifnull({$check_type_obj->salary_cal_type},'') as cal_type,
ifnull({$check_type_obj->salary_remb_type},'') as reimb_type,
ifnull({$check_type_obj->round_off_field_name},'') as round_off,
ifnull({$check_type_obj->salary_comp_sequence},0) as sequence
from {$check_type_obj->salary_comp_table_name} c
inner join {$check_type_obj->salary_comp_type_table_name} d on
d.internal_code={$check_type_obj->salary_comp_type}
and {$check_type_obj->salary_comp_type_field_name}<>'SPECIAL FIELDS'
left join {$check_type_obj->round_off_table} r on
r.internal_code={$check_type_obj->salary_comp_round_off} order by type desc,sequence ) a
left join (select ref_sal_field_code,
column_seq,
is_selected,
is_order_by,
order_type,
order_by_seq,sum_into
from report_header rh inner join report_detail_sal_columns rds
on rds.ref_report_header_code=rh.internal_code
where rh.internal_code={$internal_code}) b on a.internal_code=b.ref_sal_field_code";
$lobj_obj_mapping = $aobj_context->mobj_db->getAll($obj_mapping);
/* echo "<pre>";
print_r($lobj_obj_mapping); die();
die(); */
$k=0;
$ded_flag=0;
$earn_sal_cnt=0;
$ded_sal_cnt=0;
foreach($lobj_obj_mapping as $key=>$val)
{
$ass_cheked='';
$des_cheked='';
$sal_col_seq=($val['column_seq']==1)?($k+25):$val['column_seq'];
$sal_is_selected=($val['is_selected']==1)?'checked':'';
$sal_is_ordered=($val['is_order_by']==1)?'checked':'';
if($val['order_type']=='asc')
$ass_cheked=' checked=checked ';
else
$des_cheked=' checked=checked ';
$sal_order_seq=$val['order_by_seq'];
$sal_sum_into=$val['sum_into'];
if($val[type]=='EARNINGS')
{
$earn_sal_data.="<tr class='ui-widget-content jqgrow' >";
$earn_sal_data.="<td class='tbl_row_new' align=center style='border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;'><input type=text style='border:1px solid #C5DBEC; width:50px;' value= ".$sal_col_seq." id='report_sal_col_seq_{$val[internal_code]}'> </td>";
$earn_sal_data.="<td class='tbl_row_new'style='border-right:1px solid #C5DBEC; padding:2px;' id='report_sal_col_name_{$val[internal_code]}'>{$val[component]}</td>";
$earn_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;'><input type=checkbox {$sal_is_selected} id='report_sal_select_{$val[internal_code]}'> </td>";
$earn_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;display:none;'><input type=checkbox {$sal_is_ordered} id='report_sal_order_by_{$val[internal_code]}'> </td>";
$earn_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;display:none;'>Asc:<input type=radio name=radio_report_sal_{$val[internal_code]} {$ass_cheked} id='report_sal_order_type_asc_{$val[internal_code]}'> Desc:<input name=radio_report_sal_{$val[internal_code]} type=radio {$des_cheked} id='report_emp_order_type_des_{$val[internal_code]}'></td>";
$earn_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;display:none;'><input style='border:1px solid #C5DBEC; width:50px' type=text value={$sal_order_seq} id='report_sal_order_seq_{$val[internal_code]}'> </td>";
$earn_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;'><input type=text style='border:1px solid #C5DBEC; width:80px;' value='{$sal_sum_into}' id='report_sal_sum_into_{$val[internal_code]}'> </td>";
$earn_sal_data.="</tr>";
$k++;
$earn_sal_cnt++;
}
else if($val[type]=='DEDUCTIONS')
{
$ded_sal_data.="<tr class='ui-widget-content jqgrow' >";
$ded_sal_data.="<td class='tbl_row_new' align=center style='border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;'><input type=text style='border:1px solid #C5DBEC; width:50px;' value= ".$sal_col_seq." id='report_sal_col_seq_{$val[internal_code]}'> </td>";
$ded_sal_data.="<td class='tbl_row_new'style='border-right:1px solid #C5DBEC; padding:2px;' id='report_sal_col_name_{$val[internal_code]}'>{$val[component]}</td>";
$ded_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;'><input type=checkbox {$sal_is_selected} id='report_sal_select_{$val[internal_code]}'> </td>";
$ded_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;display:none;'><input type=checkbox {$sal_is_ordered} id='report_sal_order_by_{$val[internal_code]}'> </td>";
$ded_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;display:none;'>Asc:<input type=radio name=radio_report_sal_{$val[internal_code]} {$ass_cheked} id='report_sal_order_type_asc_{$val[internal_code]}'> Desc:<input name=radio_report_sal_{$val[internal_code]} type=radio {$des_cheked} id='report_emp_order_type_des_{$val[internal_code]}'></td>";
$ded_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;display:none;'><input style='border:1px solid #C5DBEC; width:50px' type=text value={$sal_order_seq} id='report_sal_order_seq_{$val[internal_code]}'> </td>";
$ded_sal_data.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;'><input type=text style='border:1px solid #C5DBEC; width:80px;' value='{$sal_sum_into}' id='report_sal_sum_into_{$val[internal_code]}'> </td>";
$ded_sal_data.="</tr>";
$k++;
$ded_sal_cnt++;
}
}
for($ed=0;$ed<($earn_sal_cnt-$ded_sal_cnt);$ed++)
{
$ded_sal_data.="<tr class='ui-widget-content jqgrow'>";
$ded_sal_data.="<td class='tbl_row_new' style='padding:2px; border-left:1px solid #C5DBEC; height:24px; border-right:1px solid #C5DBEC;'> </td>";
$ded_sal_data.="<td class='tbl_row_new' style='padding:2px; border-right:1px solid #C5DBEC;' align='right'> </td>";
$ded_sal_data.="<td class='tbl_row_new' style='padding:2px; border-right:1px solid #C5DBEC;' align='right'> </td>";
$ded_sal_data.="<td class='tbl_row_new' style='padding:2px; border-right:1px solid #C5DBEC;' align='right'> </td>";
$ded_sal_data.="</tr>";
}
for($ed=0;$ed<($ded_sal_cnt-$earn_sal_cnt);$ed++)
{
$earn_sal_data.="<tr class='ui-widget-content jqgrow'>";
$earn_sal_data.="<td class='tbl_row_new' style='padding:2px; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC;'> </td>";
$earn_sal_data.="<td class='tbl_row_new' style='padding:2px; border-right:1px solid #C5DBEC;' align='right'> </td>";
$earn_sal_data.="<td class='tbl_row_new' style='padding:2px; border-right:1px solid #C5DBEC;' align='right'> </td>";
$earn_sal_data.="<td class='tbl_row_new' style='padding:2px; border-right:1px solid #C5DBEC;' align='right'> </td>";
$earn_sal_data.="</tr>";
}
$arr['html']=$earn_sal_data."</table>"."<div style='float:left; width:20px;'> </div>".$ded_sal_data."</table>";
$arr['table_data']=$lobj_obj_mapping;
echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success");
}
function getReportEnableSummaryFields($aobj_context)
{
require_once($aobj_context->main_src."/custom_src/salcompclass.php");
$check_type_obj=new SalCompClass($aobj_context);
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$internal_code=$aobj_context->mobj_data["internal_code"];
$sal_data_header="<table align='center' cellspacing='0' cellpadding='0' border='0' width='80%'>";
$sal_data_header.="<th align='left' colspan='3' class='ui-jqgrid-titlebar ui-widget-header ui-corner-tl ui-corner-tr ui-helper' style='font-size:12px; padding-left:6px; height:24px;'>Summary Fields</th>";
$sal_data_header.="<tr class='ui-state-default ui-jqgrid-hdiv'></tr>";
$sal_data_header.="<td align=center style='padding:2px; width:58px; border-left:1px solid #ccc; border-right:1px solid #ccc;'>Col Seq</td>";
$sal_data_header.="<td align=center style='padding:2px; width:88px; border-left:0px solid #ccc; border-right:1px solid #ccc;'>Fields</td>";
$sal_data_header.="<td align=center style='padding:2px; width:48px; border-left:0px solid #ccc; border-right:1px solid #ccc;'>Select</td>";
$sal_data_header.="</tr>";
$get_heads=" select internal_code,
ifnull(column_seq,1) as column_seq,
summary_field,
ifnull(is_selected ,0) as is_selected
from
(select internal_code,summary_field from report_summary_heads
where type='Report'
order by sequence) a left join
(select ref_summary_heads_code,
column_seq,
is_selected from report_header rh inner join report_detail_summary_columns rde
on rde.ref_report_header_code=rh.internal_code
where rh.internal_code={$internal_code}) b on
a.internal_code=b.ref_summary_heads_code";
$lobj_get_heads = $aobj_context->mobj_db->getAll($get_heads);
$k=0;
foreach($lobj_get_heads as $key=>$val)
{
$ass_cheked='';
$des_cheked='';
if($k%2==0)
$class='tbl_row';
else
$class='tbl_row1';
$sal_col_seq=($val['column_seq']==1)?($k+60):$val['column_seq'];
$sal_is_selected=($val['is_selected']==1)?'checked':'';
// echo $sal_is_selected.'-->';
$sal_data_details.="<tr class='ui-widget-content jqgrow' >";
$sal_data_details.="<td class='tbl_row_new' align=center style='border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;'><input type=text style='border:1px solid #C5DBEC;width:50px;' value= ".$sal_col_seq." id='report_summary_col_seq_{$val[internal_code]}'> </td>";
$sal_data_details.="<td class='tbl_row_new' style='border-right:1px solid #C5DBEC; padding:2px;' id='report_summary_col_name_{$val[internal_code]}'>{$val[summary_field]}</td>";
$sal_data_details.="<td class='tbl_row_new' align=center style='border-right:1px solid #C5DBEC; padding:2px;'><input type=checkbox {$sal_is_selected} id='report_summary_select_{$val[internal_code]}'> </td>";
$sal_data_details.="</tr>";
$k++;
}
$arr['html']=$sal_data_header.$sal_data_details."</table>";
$arr['table_data']=$lobj_get_heads;
echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success");
}
function saveSalarySetupReportHeader($aobj_context)
{
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$internal_code=$aobj_context->mobj_data["internal_code"];
$report_name=$aobj_context->mobj_data["report_name"];
$from_date=$aobj_context->mobj_data["from_date"];
$to_date=$aobj_context->mobj_data["to_date"];
$report_setup_cross_tab=$aobj_context->mobj_data["report_setup_cross_tab"];
$report_setup_col_total=$aobj_context->mobj_data["report_setup_col_total"];
$report_setup_row_total=$aobj_context->mobj_data["report_setup_row_total"];
$report_setup_sub_total=$aobj_context->mobj_data["report_setup_sub_total"];
$report_setup_sub_field=$aobj_context->mobj_data["report_setup_sub_field"];
$report_setup_sl_no=$aobj_context->mobj_data["report_setup_sl_no"];
$report_freeze_cells=$aobj_context->mobj_data["report_freeze_cells"];
if($internal_code==0)
{
$get_duplicate_report="select count(*) as count from report_header where report_name='{$report_name}'";
$lobj_get_duplicate_report = $aobj_context->mobj_db->getRow($get_duplicate_report);
if($lobj_get_duplicate_report['count']==0)
{
$lstr_qry = "insert into
report_header(
report_name,
from_date,
to_date,
is_cross_tab,
is_row_total,
is_col_tot,
is_sub_tot,
sub_tot_field,
is_sl_no,
freeze_cells,
created_by,
created_date,
modified_by,
modified_date)
values ( '".$report_name."',
'{$from_date}',
'{$to_date}',
{$report_setup_cross_tab},
{$report_setup_row_total},
{$report_setup_col_total},
{$report_setup_sub_total},
'{$report_setup_sub_field}',
'{$report_setup_sl_no}',
'{$report_freeze_cells}',
{$_SESSION['user_id']},
now(),
{$_SESSION['user_id']},
now()
)";
$lobj_rs = $aobj_context->mobj_db->Execute($lstr_qry);
$last_inserted_id = $aobj_context->mobj_db->Insert_ID();
if($lobj_rs)
{
$rdata['last_insert_id'] = $last_inserted_id;
print_r($aobj_context->mobj_output->ToJSONEnvelope($rdata,0,"success"));
return $rdata;
}
else
{
$rdata = "insertion Failed.";
print_r($aobj_context->mobj_output->ToJSONEnvelope($rdata,-1,"Failure"));
return $rdata;
}
}
else
{
$rdata = "Report Name Already Exstis!";
print_r($aobj_context->mobj_output->ToJSONEnvelope($rdata,-1,"success"));
return $rdata;
}
}
else
{
$update_report_header="update report_header set report_name='{$report_name}',
from_date='{$from_date}',
to_date='{$to_date}',
is_cross_tab={$report_setup_cross_tab},
is_row_total={$report_setup_row_total},
is_col_tot={$report_setup_col_total},
is_sub_tot={$report_setup_sub_total},
is_sl_no={$report_setup_sl_no},
freeze_cells='{$report_freeze_cells}',
sub_tot_field='{$report_setup_sub_field}',
modified_by={$_SESSION['user_id']},
modified_date=now()
where internal_code={$internal_code}";
$lobj_rs = $aobj_context->mobj_db->Execute($update_report_header);
if($lobj_rs)
{
$rdata['last_insert_id'] = $internal_code;
print_r($aobj_context->mobj_output->ToJSONEnvelope($rdata,0,"success"));
return $rdata;
}
else
{
$rdata = "Updation Failed.";
print_r($aobj_context->mobj_output->ToJSONEnvelope($rdata,-1,"Failure"));
return $rdata;
}
}
}
function saveReportSetupResult($aobj_context)
{
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
require_once($aobj_context->main_src."/src/json.php");
$json = new Services_JSON();
$report_id = ($aobj_context->mobj_data["report_id"]);
$lstr_param = stripslashes($aobj_context->mobj_data["emp_details"]);
$mobj_jsondata = $json->decode($lstr_param);
$larr_emp_data = get_object_vars($mobj_jsondata);
$lstr_param1 = stripslashes($aobj_context->mobj_data["sal_details"]);
$mobj_jsondata1 = $json->decode($lstr_param1);
$larr_sal_data = get_object_vars($mobj_jsondata1);
$lstr_param2 = stripslashes($aobj_context->mobj_data["summary_details"]);
$mobj_jsondata2 = $json->decode($lstr_param2);
$larr_summary_data = get_object_vars($mobj_jsondata2);
$lstr_param3 = stripslashes($aobj_context->mobj_data["report_conditions"]);
$mobj_jsondata3 = $json->decode($lstr_param3);
$larr_report_conditions = get_object_vars($mobj_jsondata3);
$delete_from_report_detail_emp_columns="delete from report_detail_emp_columns where ref_report_header_code={$report_id}";
$delete_from_report_detail_sal_columns="delete from report_detail_sal_columns where ref_report_header_code={$report_id}";
$delete_from_report_detail_summary_columns="delete from report_detail_summary_columns where ref_report_header_code={$report_id}";
$delete_from_report_detail_conditions_columns="delete from report_detail_conditions where ref_report_header_code={$report_id}";
$lobj_del_emp = $aobj_context->mobj_db->Execute($delete_from_report_detail_emp_columns);
$lobj_del_sal = $aobj_context->mobj_db->Execute($delete_from_report_detail_sal_columns);
$lobj_del_summary = $aobj_context->mobj_db->Execute($delete_from_report_detail_summary_columns);
$lobj_del_conditions = $aobj_context->mobj_db->Execute($delete_from_report_detail_conditions_columns);
for( $i = 0; $i < count($larr_emp_data); $i++ )
{
$insert_into_emp_data="insert into report_detail_emp_columns(ref_report_header_code,
ref_emp_field_code,
column_seq,
is_selected,
is_group_by,
is_order_by,
order_type,
order_by_seq)
values (
{$report_id},
{$larr_emp_data[$i]->emp_field_id},
{$larr_emp_data[$i]->emp_col_seq},
{$larr_emp_data[$i]->emp_select},
{$larr_emp_data[$i]->emp_group_by},
{$larr_emp_data[$i]->emp_order_by},
'{$larr_emp_data[$i]->emp_order_type}',
{$larr_emp_data[$i]->emp_order_col_seq})";
$lobj_insert_into_emp_data = $aobj_context->mobj_db->Execute($insert_into_emp_data);
}
for( $k = 0; $k < count($larr_sal_data); $k++ )
{
$insert_into_sal_data="insert into report_detail_sal_columns(ref_report_header_code,
ref_sal_field_code,
column_seq,
is_selected,
is_order_by,
order_type,
order_by_seq,
sum_into)
values (
{$report_id},
{$larr_sal_data[$k]->sal_field_id},
{$larr_sal_data[$k]->sal_col_seq},
{$larr_sal_data[$k]->sal_select},
{$larr_sal_data[$k]->sal_order_by},
'{$larr_sal_data[$k]->sal_order_type}',
{$larr_sal_data[$k]->sal_order_col_seq},
'{$larr_sal_data[$k]->sal_sum_into}')";
$lobj_insert_into_sal_data = $aobj_context->mobj_db->Execute($insert_into_sal_data);
}
for( $l = 0; $l < count($larr_summary_data); $l++ )
{
$insert_into_summary_data="insert into report_detail_summary_columns(ref_report_header_code,
ref_summary_heads_code,
column_seq,
is_selected)
values (
{$report_id},
{$larr_summary_data[$l]->summary_field_id},
{$larr_summary_data[$l]->summary_col_seq},
{$larr_summary_data[$l]->summary_select}
)";
$lobj_insert_into_summary_data = $aobj_context->mobj_db->Execute($insert_into_summary_data);
//echo $insert_into_summary_data;
}
for( $i = 0; $i < count($larr_report_conditions); $i++ )
{
$insert_into_conditions_data="insert into report_detail_conditions(ref_report_header_code,
ref_ele_code,
operator,
value,
and_or )
values (
{$report_id},
{$larr_report_conditions[$i]->ele_id},
'{$larr_report_conditions[$i]->operator}',
'{$larr_report_conditions[$i]->value}',
'{$larr_report_conditions[$i]->and_or}' )";
$lobj_insert_into_conditions_data = $aobj_context->mobj_db->Execute($insert_into_conditions_data);
}
if($lobj_insert_into_emp_data)
{
$rdata = "Inserted Successfully";
print_r($aobj_context->mobj_output->ToJSONEnvelope($rdata,0,"success"));
return $rdata;
}
else
{
$rdata = "insertion Failed.";
print_r($aobj_context->mobj_output->ToJSONEnvelope($rdata,-1,"Failure"));
return $rdata;
}
}
function displayReportsSetup($aobj_context)
{
include_once($aobj_context->main_src.'/src/display_details_in_grid_custom.php');
$display_obj=new display_details_in_grid($aobj_context);
$display_obj->table_cols=array('report_name');
$display_obj->display_qry="select internal_code as id,report_name from
report_header where 1=1";
$display_obj->DisplayDetailsInGrid();
}
/* function deletereportSetup($aobj_context)
{
$lstr_ids = $aobj_context->mobj_data["id"];
$lstr_qry = "delete
from report_header
where internal_code in (".$lstr_ids.")";
$lobj_rs = $aobj_context->mobj_db->Execute($lstr_qry);
if($lobj_rs)
{
$rdata="Deleted Successfully";
echo $aobj_context->mobj_output->ToJSONEnvelope($rdata,0,"success");
return $rdata;
}
else
{ $rdata="Deletion Failed";
echo $aobj_context->mobj_output->ToJSONEnvelope($rdata,-1,"Failure");
return $rdata;
}
} */
function getReportSetupName($aobj_context)
{
$internal_code = $aobj_context->mobj_data["internal_code"];
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$lstr_qry = "select report_name,
DATE_FORMAT(from_date,'%d/%m/%Y') as from_date,
DATE_FORMAT(to_date,'%d/%m/%Y') as to_date ,
is_cross_tab,
is_row_total,
is_col_tot,
is_sub_tot,
sub_tot_field,
is_sl_no,freeze_cells
from report_header
where internal_code ={$internal_code}";
$lobj_rs = $aobj_context->mobj_db->getRow($lstr_qry);
$rdata['report_name']= $lobj_rs[report_name];
$rdata['from_date']= $lobj_rs[from_date];
$rdata['to_date']= $lobj_rs[to_date];
$rdata['is_cross_tab']= $lobj_rs[is_cross_tab];
$rdata['is_row_total']= $lobj_rs[is_row_total];
$rdata['is_col_tot']= $lobj_rs[is_col_tot];
$rdata['is_sub_tot']= $lobj_rs[is_sub_tot];
$rdata['sub_tot_field']= $lobj_rs[sub_tot_field];
$rdata['is_sl_no']= $lobj_rs[is_sl_no];
$rdata['freeze_cells']= $lobj_rs[freeze_cells];
$get_report_conditions="select * from report_detail_conditions where ref_report_header_code={$internal_code} order by internal_code";
$lobj_get_report_conditions = $aobj_context->mobj_db->getAll($get_report_conditions);
$rdata['conditions']= $lobj_get_report_conditions;
echo $aobj_context->mobj_output->ToJSONEnvelope($rdata,0,"success");
return $rdata;
}
function GenerateFinalReportSetupDetails($aobj_context)
{
require_once($aobj_context->main_src."/custom_src/salcompclass.php");
require_once("TarkaFormatStyles.php");
$check_type_obj=new SalCompClass($aobj_context);
require_once($aobj_context->main_src."/src/json.php");
require_once($aobj_context->main_src."/custom_src/employeeClass.php");
require_once($aobj_context->main_src."/src/format.php");
$obj_comp = new employeeClass($aobj_context);
$obj_comp->company();
$obj_comp->employee();
$json = new Services_JSON();
$objfrmt = new FormatStyle();
$excel_writer=$aobj_context->main_src."/Excel_Writer/Writer.php";
include($excel_writer);
$root_xls_file_download=$aobj_context->main_src."/Report_details/output/user_report_".$_SESSION['user_id']."_".$report_id.".xls";
// formats
//$Data_Right->setNumFormat('##,##,##,##,##0.00');
//$Title_Right->setNumFormat('##,##,##,##,##0.00');
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$report_id = ($aobj_context->mobj_data["report_id"]);
$select_report_name="select report_name from report_header where internal_code={$report_id}";
$obj_select_report_name = $aobj_context->mobj_db->GetRow($select_report_name);
$report_name=$obj_select_report_name[report_name];
$schema_id = ($aobj_context->mobj_data["schema_id"]);
$cond = stripslashes($aobj_context->mobj_data["cond"]);
$emp_ids=addslashes(trim($aobj_context->mobj_data["emp_ids"]));
if($emp_ids<>0)
$emp_ids=substr($emp_ids,0,strlen($emp_ids)-1);
$workbook = new Spreadsheet_Excel_Writer();
$worksheet =& $workbook->addWorksheet("Sheet1");
//$worksheet->hideScreenGridlines();
$Title_Center =& $workbook->addFormat($objfrmt->Title_Center);
$Title_Right =& $workbook->addFormat($objfrmt->Title_Right);
$Title_Left =& $workbook->addFormat($objfrmt->Title_Left);
$Data_Right =& $workbook->addFormat($objfrmt->Data_Right);
$Data_Left =& $workbook->addFormat($objfrmt->Data_Left);
$Data_Left_B =& $workbook->addFormat($objfrmt->Data_Left_B);
$Data_Right =& $workbook->addFormat();
$worksheet->setColumn(0,50,15);
$orignial_date = ($aobj_context->mobj_data["from_date"]);
$from_date = strtotime($aobj_context->mobj_data["from_date"]);
$to_date = strtotime($aobj_context->mobj_data["to_date"]);
$main_src_obj=(explode("/",$_SERVER["REQUEST_URI"]));
$main_src=$main_src_obj[1];
$from_date_string=date('Y',$from_date).'-'.date('m',$from_date);
$to_date_string=date('Y',$to_date).'-'.date('m',$to_date);
// echo date('M-Y',$from_date); die();
if(empty($from_date))
{
$report_display_date = " as on - ".date('M' ).' - '.date('Y' );
}
else if(date('m',$from_date)!=date('m',$to_date))
{
$report_display_date = " FOR THE PERIOD ". date('M-Y',$from_date)." - ".date('M-Y',$to_date);
}
else
{
$report_display_date = " for the Month of ".date('M',$from_date). ' - ' .date('Y',$from_date);
}
$aobj_context->mobj_db->execute("SET @@session.group_concat_max_len=100000");
$aobj_context->mobj_db->execute("set @a:=0");
$select_ref_module_code="select GROUP_CONCAT(join_table_name SEPARATOR ' ') as qry from
(select @a:=@a+1,ref_module_code,
concat(' left join module_',ref_module_code, ' as module_',ref_module_code,'_',sus.internal_code,' on module_',ref_module_code,'_',sus.internal_code,'.internal_code =module_',s.internal_code,'.m_',ref_s_user_schema_code, '_ele_',sus.internal_code)
as join_table_name
from s_user_schema_elements sus
inner join s_user_schema s on s.internal_code=sus.ref_s_user_schema_code
where module_name='Employee'
and is_multiple_group=0 and ref_module_code>0)j";
$obj_select_ref_module_code = $aobj_context->mobj_db->GetRow($select_ref_module_code);
$join_qry=(count($obj_select_ref_module_code)>0)?$obj_select_ref_module_code[qry]:'';
$aobj_context->mobj_db->execute("SET @@session.group_concat_max_len=1000000");
$get_emp_conditions="select GROUP_CONCAT( ' ' ,db_field, ' ' ,operator,' ',
if(operator='Like',concat(\"'%\",value,\"%'\"),if(operator='In',concat(\"(\",value,\")\"),if(operator='Not In',concat(\"(\",value,\")\"),concat(\"'\",value,\"'\")))),' ',and_or separator '' ) as emp_conds
from report_detail_conditions rdc
inner join s_user_schema_elements sus on sus.internal_code=ref_ele_code
where rdc.ref_report_header_code={$report_id}";
$obj_get_emp_conditions = $aobj_context->mobj_db->GetRow($get_emp_conditions);
$emp_general_conditions='';
if(!is_null($obj_get_emp_conditions[emp_conds]))
{
$pos = strrpos($obj_get_emp_conditions[emp_conds], "And");
if ($pos === false)
$emp_general_conditions=' and (' .substr($obj_get_emp_conditions[emp_conds],0,strlen($obj_get_emp_conditions[emp_conds])-2).")";
else
$emp_general_conditions=' and (' .substr($obj_get_emp_conditions[emp_conds],0,strlen($obj_get_emp_conditions[emp_conds])-3).")";
}
$groupby_cols= substr($groupby_cols,0,strlen($groupby_cols)-1);
$get_display_cols="select GROUP_CONCAT(field_name) as field_name from
((select table_name,name,field_name as grid_field_name,
if(ref_module_code<>0,
concat('module_',ref_module_code,'_',ele_ic_code,'.',field_id1,' as ',field_name),
if(data_type='Date',
concat('DATE_FORMAT(','module_',internal_code,'.',field_name,',\'%d/%m/%Y\') as ',field_name)
,
concat('module_',internal_code,'.',field_name))
) as
field_name
,ref_module_code from
(select s.internal_code, t1.value as data_type,ref_module_code,concat('module_',s.internal_code) as table_name ,
field_id,su.internal_code as ele_ic_code,field_id1,
su.name,ifnull(multiple,0) as multiple,ifnull(ug.name,'0None') as group_name,concat('m_',s.internal_code,'_ele_',su.internal_code) as field_name from s_user_schema s inner join s_user_schema_elements su on
su.ref_s_user_schema_code=s.internal_code
inner join s_ref_type t on t.internal_code=su.s_ref_type_meta
inner join s_ref_type t1 on t1.internal_code=data_type
left join s_user_schema_group ug on ug.internal_code=su.ref_s_user_schema_group_code
left join module_meta_columns mmc on mmc.module_id=su.ref_module_code
where s.module_name='Employee' and t.value='Meta'
order by ug.sequence,su.sequence,su.internal_code ) l
where multiple=0 )) a ";
$lobj_get_display_cols = $aobj_context->mobj_db->GetRow($get_display_cols);
$selected_ids=($emp_ids>0)?" and internal_code in ({$emp_ids})":"";
$sel_criteria="(select module_{$schema_id}.internal_code ,
{$lobj_get_display_cols[field_name]}
from module_{$schema_id} {$join_qry}) a
where internal_code>0 {$cond} {$selected_ids} {$emp_general_conditions}";
// echo $cond;die();
$col_seq="order by column_seq";
$order_seq="order by order_by_seq";
$emp_cols="select concat('m_{$schema_id}_ele_',ref_emp_field_code) as field_id,
concat('a.m_{$schema_id}_ele_',ref_emp_field_code,' as \'',sus.name,'\'') as display_name,
sus.name as excel_display,
is_selected,
is_group_by,
is_order_by,
order_type,
order_by_seq from report_header rh
inner join
report_detail_emp_columns rde on rh.internal_code=rde.ref_report_header_code
inner join s_user_schema_elements sus on sus.internal_code=ref_emp_field_code
where (is_selected=1 or is_group_by=1)
and rh.internal_code={$report_id} ";
//echo$emp_cols;
$col_seq_qry=$emp_cols.$col_seq;
$lobj_get_emp_cols_groups = $aobj_context->mobj_db->GetAll($col_seq_qry);
$groupby_cols='';
$groupby_join_cols='';
//$cross_tab_group_cols='';
$final_display_col_names='';// Employee Display Cols
$display_field_name='';
$order_col_seq='';
$order_col_excel_seq='';
$final_excel_display_col='';
$sum_into=',sum_into';
$sum_of_tot=" , total";
$sum_of_atot=" , a_tot";
$groupby_join_cols=' on ';
foreach($lobj_get_emp_cols_groups as $key=>$val)
{
$final_display_col_names.=$val[display_name].',';
$final_excel_display_col.=$val[excel_display].',';
if($val[is_group_by]=='1')
{
$groupby_cols.=$val[field_id].',';
$groupby_join_cols.=" a.{$val[field_id]}=summary.{$val[field_id]}";
}
$display_field_name.=$val[field_id].',';
}
if(!empty($groupby_cols))
{
$groupby_cols="group by ".$groupby_cols ;
$groupby_cols= substr($groupby_cols,0,strlen($groupby_cols)-1);
//$cross_tab_group_cols=$groupby_cols;
$groupby_cols.= ", sum_into";
$sum_of_tot=", sum(total) ";
$sum_of_atot=", sum(a_tot) ";
}
$final_display_col_names= substr($final_display_col_names,0,strlen($final_display_col_names)-1);
$display_field_name= substr($display_field_name,0,strlen($display_field_name)-1);
$final_excel_display_col= substr($final_excel_display_col,0,strlen($final_excel_display_col)-1);
$corder_seq_qry=$emp_cols.$order_seq;
$lobj_corder_seq_qry = $aobj_context->mobj_db->GetAll($corder_seq_qry);
foreach($lobj_corder_seq_qry as $key_1=>$val_1)
{
$order_col_seq.=$val_1[field_id] ." ".$val_1[order_type].",";
if($val_1['excel_display']=='Code')
$order_col_excel_seq.= "lpad(".$val_1[field_id] .",11,'0') ".$val_1[order_type].",";
else
$order_col_excel_seq.= $val_1[field_id] ." ".$val_1[order_type].",";
}
if(!empty($order_col_seq))
{
$order_col_seq=' order by '.substr($order_col_seq,0,strlen($order_col_seq)-1);
$order_col_excel_seq= substr($order_col_excel_seq,0,strlen($order_col_excel_seq)-1);
//$order_col_excel_seq=' order by '.substr($order_col_excel_seq,0,strlen($order_col_excel_seq)-1);
}
//echo $order_col_excel_seq; die();
$get_emp_details="select internal_code as emp_code,{$display_field_name}
from {$sel_criteria}
{$order_col_seq}";
//echo $get_emp_details; die();
#get summary heads
$summary_fields='';
$summary_display_cols='';
$summary_excel_display_cols='';
$summary_field_join='';
$aobj_context->mobj_db->execute("SET @@session.group_concat_max_len=100000");
$get_summary_heads="select
ifnull(GROUP_CONCAT(db_field ,' as ',as_field),0) as summary_field,
ifnull(GROUP_CONCAT('sum(',db_field,') as ',as_field),0) as group_summary_field,
GROUP_CONCAT(concat(as_field,' as \'',summary_field,'\'')) as display_summary_field,
GROUP_CONCAT(summary_field) as excel_summary_cols
from
(select summary_field,db_field,as_field
from report_header rh
inner join
report_detail_summary_columns rde on rh.internal_code=rde.ref_report_header_code
inner join report_summary_heads sus on sus.internal_code=ref_summary_heads_code
where is_selected=1 and rh.internal_code={$report_id} order by column_seq)a";
$lobj_get_summary_heads = $aobj_context->mobj_db->GetRow($get_summary_heads);
if($lobj_get_summary_heads['summary_field']!='0')
{
$summary_fields=' ,'.$lobj_get_summary_heads['summary_field'];
$group_summary_field=' ,'.$lobj_get_summary_heads['group_summary_field'];
$summary_display_cols=' ,'.$lobj_get_summary_heads['display_summary_field'];
$summary_excel_display_cols=$lobj_get_summary_heads['excel_summary_cols'];
$summary_field_join=" inner join employee_monthly_salary_summary emss on emss.ref_employee_code= emp.emp_code and
concat(processed_year,'-',if(processed_month<10,'0',''),processed_month) between '{$from_date_string}' and '{$to_date_string}'
";
}
#get Sal Details
$sal_cols="(select
is_selected,
is_order_by,
ref_sal_field_code,
order_type,
order_by_seq,
if(trim(sum_into)='',{$check_type_obj->salary_comp_field_name},trim(sum_into)) as sum_into
from (select
is_selected,
is_order_by,
ref_sal_field_code,
order_type,
order_by_seq,
column_seq,
sum_into
from report_header rh
inner join
report_detail_sal_columns rde on rh.internal_code=rde.ref_report_header_code
where (is_selected=1 )
and rh.internal_code={$report_id}) a
inner join {$check_type_obj->salary_comp_table_name} b on a.ref_sal_field_code=b.internal_code
order by column_seq) ";
$sal_col_seq_qry=$sal_cols;
$sal_excel_display_cols='';
$sal_display_field_name='';
$sal_order_col_seq='';
$lobj_sal_col_seq_qry = $aobj_context->mobj_db->GetAll($sal_col_seq_qry);
$group_conat_sal_cols=' ';
$emp_monthly_sal=' ';$is_bold="";
if(!empty($lobj_sal_col_seq_qry ))
{
$is_bold=" ,is_bold";
$group_conat_sal_cols=",group_concat(concat(sum_into,'->',is_bold,'!',amount,'~',a_tot)) as concate_sal_heads,group_concat(distinct is_bold) as is_bold ";
$emp_monthly_sal=" inner join (select rr.*,sum(inner_total) as total,
sum(arrears_total) as a_tot,
if(sum(inner_total+arrears_total)=sum(original_amount)
or component_name='Income Tax' or component_name='IT' ,0,1) as is_bold
from
(select
is_selected,
is_order_by,
ref_sal_field_code,
order_type,
order_by_seq,
if(sum_into='',component_name,sum_into) as sum_into,
component_name,
sum(amount) as inner_total,
sum(arrears) as arrears_total,
sum(original_amount) as original_amount,
ems.ref_employee_code,
ref_salary_component from
{$sal_cols} r
inner join
employee_monthly_salary ems on ems.ref_salary_component=r.ref_sal_field_code
inner join employee_monthly_salary_summary emss on ems.ref_employee_code=emss.ref_employee_code
and ems.month=emss.processed_month and ems.year=emss.processed_year and net_pay<>0
where concat(year,'-',if(month<10,'0',''),month)
between '{$from_date_string}' and '{$to_date_string}'
group by ref_employee_code,if(sum_into='',component_name,sum_into),component_name
having inner_total+arrears_total<>0) rr
group by ref_employee_code,sum_into ) sal on
emp.emp_code=sal.ref_employee_code ";
}
else
{
$sum_into=",'' ";
$sum_of_tot=" , 0 ";
$sum_of_atot=" , 0 ";
}
//echo $sal_col_seq_qry.'aaa';
foreach($lobj_sal_col_seq_qry as $key=>$val)
{
$pos = strpos($sal_excel_display_cols, $val[sum_into]);
if ($pos === false) {
$sal_excel_display_cols.=$val[sum_into].',';
}
}
$sal_excel_display_cols=substr($sal_excel_display_cols,0,strlen($sal_excel_display_cols)-1);
$get_report_name = "select report_name,is_cross_tab,is_sl_no,is_row_total,
is_col_tot,is_sub_tot,sub_tot_field,freeze_cells from report_header where internal_code=".$report_id;
$obj_report_name = $aobj_context->mobj_db->GetRow($get_report_name);
$report_name = $obj_report_name['report_name'];
$is_cross_tab = $obj_report_name['is_cross_tab'];
$is_row_total = $obj_report_name['is_row_total'];
$is_sl_no = $obj_report_name['is_sl_no'];
$is_col_tot = $obj_report_name['is_col_tot'];
$is_sub_tot = $obj_report_name['is_sub_tot'];
$sub_tot_field = $obj_report_name['sub_tot_field'];
$is_sl_nos = $obj_report_name['is_sl_no'];
$freeze_cells = $obj_report_name['freeze_cells'];
//echo $get_report_name; die();
PopulateHeaders($aobj_context,$obj_comp,$worksheet,$Title_Left,$report_name,$report_display_date);
$aobj_context->mobj_db->execute("SET @@session.group_concat_max_len=1000000");
$cross_tab_cols=($is_cross_tab==1)?",".$display_field_name:'';
if(!empty($groupby_cols) && $lobj_get_summary_heads['summary_field']!='0')
{
$get_emp_result="(select {$display_field_name}, {$final_display_col_names} {$cross_tab_cols} {$group_conat_sal_cols} from
(select {$display_field_name} {$sum_into}
{$sum_of_tot} as amount
{$sum_of_atot} as a_tot {$is_bold}
from
({$get_emp_details}) emp
{$emp_monthly_sal}
{$groupby_cols} ) a group by {$order_col_excel_seq})";
$groupby_cols=substr($groupby_cols,0,strlen($groupby_cols)-10);
$get_emp_summary="(select {$display_field_name} {$group_summary_field}
from
({$get_emp_details}) emp
{$summary_field_join}
{$groupby_cols} ) ";
$get_final_result=" select {$final_display_col_names} {$cross_tab_cols}
,concate_sal_heads
{$summary_display_cols} from
({$get_emp_result}) a
inner join {$get_emp_summary} summary
{$groupby_join_cols}
";
$lobj_get_final_result = $aobj_context->mobj_db->GetAll($get_final_result);
}
else
{
$get_final_result="(select {$final_display_col_names} {$cross_tab_cols} {$group_conat_sal_cols}
{$summary_display_cols} from
(select {$display_field_name} {$summary_fields} {$sum_into}
{$sum_of_tot} as amount
{$sum_of_atot} as a_tot {$is_bold}
from
({$get_emp_details}) emp
{$emp_monthly_sal}
{$summary_field_join}
{$groupby_cols} ) a group by {$order_col_excel_seq} ) " ; //order_col_excel_seq
$lobj_get_final_result = $aobj_context->mobj_db->GetAll($get_final_result);
}
// getting all display column for excel by union format
$get_union_display_cols="select * from (
select summary_field as display_fields ,column_seq
from report_header rh
inner join
report_detail_summary_columns rde on rh.internal_code=rde.ref_report_header_code
inner join report_summary_heads sus on sus.internal_code=ref_summary_heads_code
where is_selected=1 and rh.internal_code={$report_id}
union
select
sus.name as excel_display,column_seq
from report_header rh
inner join
report_detail_emp_columns rde on rh.internal_code=rde.ref_report_header_code
inner join s_user_schema_elements sus on sus.internal_code=ref_emp_field_code
where (is_selected=1 or is_group_by=1)
and rh.internal_code={$report_id}
union
select
if(trim(sum_into)='',{$check_type_obj->salary_comp_field_name},
trim(sum_into)) as sum_into,column_seq
from (select is_selected, is_order_by, ref_sal_field_code, order_type,
order_by_seq, column_seq, sum_into from report_header rh
inner join report_detail_sal_columns rde on
rh.internal_code=rde.ref_report_header_code
inner join (select distinct ref_salary_component from
employee_monthly_salary
where concat(year,'-',if(month<10,'0',''),month)
between '{$from_date_string}' and '{$to_date_string}'
and amount<>0) dist_sal_cmp
on dist_sal_cmp.ref_salary_component=rde.ref_sal_field_code
where
(is_selected=1 ) and rh.internal_code={$report_id}) a
inner join {$check_type_obj->salary_comp_table_name} b
on a.ref_sal_field_code=b.internal_code
group by if(trim(sum_into)='',{$check_type_obj->salary_comp_field_name},
trim(sum_into))
union
select if(trim(sum_into)='',concat({$check_type_obj->salary_comp_field_name},' Arrears'),
concat(trim(sum_into),' Arrears')) as sum_into
,(column_seq+0.0001) as column_seq
from (select is_selected, is_order_by, ref_sal_field_code, order_type,
order_by_seq, column_seq, sum_into from report_header rh
inner join report_detail_sal_columns rde on
rh.internal_code=rde.ref_report_header_code
inner join (select distinct ref_salary_component from
employee_monthly_salary ems
inner join employee_monthly_salary_summary emss
on ems.ref_employee_code=emss.ref_employee_code
and ems.month=emss.processed_month and ems.year=emss.processed_year
and net_pay<>0
where concat(year,'-',if(month<10,'0',''),month)
between '{$from_date_string}' and '{$to_date_string}'
and arrears<>0) dist_sal_cmp
on dist_sal_cmp.ref_salary_component=rde.ref_sal_field_code
where
(is_selected=1 ) and rh.internal_code={$report_id}) a
inner join {$check_type_obj->salary_comp_table_name} b
on a.ref_sal_field_code=b.internal_code
group by if(trim(sum_into)='',{$check_type_obj->salary_comp_field_name},
trim(sum_into)) order by column_seq
)a
order by column_seq";
$lobj_get_union_display_cols = $aobj_context->mobj_db->GetAll($get_union_display_cols);
//echo $get_union_display_cols; die();
if($is_cross_tab==0)
populateNonCrossTabReport($lobj_get_final_result,$lobj_get_union_display_cols,$is_sub_tot,$sub_tot_field,$worksheet,$Title_Center,$is_row_total,$is_col_tot,$Title_Right,$is_sl_nos,$freeze_cells,$Data_Right,$Data_Left,$Data_Left_B);
else
populateCrossTabReport($aobj_context,$get_final_result,$cross_tab_cols,$final_excel_display_col,$worksheet,$Title_Center,$Title_Right,$is_sl_nos,$freeze_cells);
if(strtolower($report_name) =='salary register' || strtolower($report_name) =='salaryregister')
{
$get_dates="select
date_format(date_sub('{$orignial_date}',interval 1 month),'%m') as prev_month,
date_format(date_sub('{$orignial_date}',interval 1 month),'%Y') as prev_year,
date_format(date_sub('{$orignial_date}',interval 1 month),'%b-%Y') as from_date_string,
date_format( '{$orignial_date}','%Y') as cur_year,
date_format( '{$orignial_date}','%m') as cur_month,
date_format( '{$orignial_date}','%b-%Y') as to_date_string
";
$obj_get_dates = $aobj_context->mobj_db->GetRow($get_dates);
$end_process_month=$obj_get_dates[cur_month];
$end_process_year=$obj_get_dates[cur_year];
$start_process_month=$obj_get_dates[prev_month];
$start_process_year=$obj_get_dates[prev_year];
$to_date_string=$obj_get_dates[to_date_string];
$from_date_string=$obj_get_dates[from_date_string];
require_once($aobj_context->main_src."/custom_src/emp_joining_details.php");
$obj=new EmployeeJoiningDetails($aobj_context);
$obj->start_process_month=$start_process_month;
$obj->start_process_year=$start_process_year;
$obj->end_process_year=$end_process_year;
$obj->end_process_month=$end_process_month;
$obj->from_date_string=$from_date_string;
$obj->to_date_string=$to_date_string;
$obj->getData();
populateConsolidatedEarningDedutionReport($aobj_context,$obj_comp,$worksheet,$workbook,$Title_Left,$Data_Right,$report_name,$report_display_date,$orignial_date,$obj);
populateEmployeeWiseComparisionReport($aobj_context,$obj_comp,$worksheet,$workbook,$Title_Left,$Data_Right,$report_name,$report_display_date,$orignial_date,$obj);
}
$workbook->send("{$report_name}.xls");
$workbook->close();
}
function PopulateHeaders($aobj_context,$obj_comp,$worksheet,$Title_Left,$report_name,$report_display_date)
{
$get_company_name = "select {$obj_comp->company_name} as Company from {$obj_comp->company_table}";
$obj_company_name = $aobj_context->mobj_db->GetRow($get_company_name);
$company_name = $obj_company_name['Company'];
$_SESSION['report_company_name']= $company_name;
$worksheet->write(0,0,$company_name, $Title_Left);
$worksheet->mergeCells(0,0,0,4);
$worksheet->write(1,0,$report_name.$report_display_date , $Title_Left);
$worksheet->mergeCells(1,0,1,4);
}
function populateEmployeeWiseComparisionReport($aobj_context,$obj_comp,$worksheet,$workbook,$Title_Left,$Data_Right,$report_name,$report_display_date,$orignial_date,$obj)
{
$worksheet =& $workbook->addWorksheet('Comparision Report');
$company_name= $_SESSION['report_company_name'];
$worksheet->write(0,0,$company_name, $Title_Left);
$worksheet->mergeCells(0,0,0,8);
$worksheet->write(1,0,"Employee Wise Compariosion Report for the month".$report_display_date , $Title_Left);
$worksheet->mergeCells(1,0,1,8);
//$Data_Right->setNumFormat('##,##,##,##,##0.00');
$get_dates="select
date_format(date_sub('{$orignial_date}',interval 1 month),'%m') as prev_month,
date_format(date_sub('{$orignial_date}',interval 1 month),'%Y') as prev_year,
date_format(date_sub('{$orignial_date}',interval 1 month),'%b-%Y') as from_date_string,
date_format( '{$orignial_date}','%Y') as cur_year,
date_format( '{$orignial_date}','%m') as cur_month,
date_format( '{$orignial_date}','%b-%Y') as to_date_string
";
$obj_get_dates = $aobj_context->mobj_db->GetRow($get_dates);
$end_process_month=$obj_get_dates[cur_month];
$end_process_year=$obj_get_dates[cur_year];
$start_process_month=$obj_get_dates[prev_month];
$start_process_year=$obj_get_dates[prev_year];
$to_date_string=$obj_get_dates[to_date_string];
$from_date_string=$obj_get_dates[from_date_string];
include_once($aobj_context->main_src."/src/salcompclass.php");
$check_type_obj=new SalCompClass($aobj_context);
$obj_mapping="(select c.internal_code as ref_component_code,
{$check_type_obj->salary_comp_field_name} as component,
{$check_type_obj->salary_comp_type_field_name} as type
from {$check_type_obj->salary_comp_table_name} c
inner join {$check_type_obj->salary_comp_type_table_name} d on
d.internal_code={$check_type_obj->salary_comp_type}
where {$check_type_obj->salary_comp_type_field_name}<> 'SPECIAL FIELDS'
order by
{$check_type_obj->salary_comp_type_field_name} desc,
ifnull({$check_type_obj->salary_comp_sequence},'0') )";
$lobj_map = $aobj_context->mobj_db->GetAll($obj_mapping);
$row=3;
$worksheet->write( $row, 0, 'EMPCODE',$Title_Left);
$worksheet->write( $row, 1, 'EMP NAME',$Title_Left);
$k=2;
$cell_ids= array();
$total_cell_ids= array();
//echo (count($lobj_map)); die();
//echo ($lobj_map[1][component_name]); die();
// var_dump($lobj_map[0][]);die();
for($i=0;$i<count($lobj_map);$i++)
{
//echo $lobj_map[$i]['component_name']; die();
$worksheet->write($row,$k ,$lobj_map[$i]['component'],$Title_Left);
$cell_ids[$lobj_map[$i]['component']]=$k;
$total_cell_ids[$lobj_map[$i]['component']]=0;
$k++;
}
// echo $obj_mapping; die();
$get_employee_details= " select code,name,group_concat(component,'->',difference) as amount from
(select {$obj_comp->employee_name} as name,
{$obj_comp->employee_code} as code,
ems_end.component_name as component ,
ems_end.amount+ems_end.arrears as ems_end_amount,
ems_start.component_name as ems_start_component,
ems_start.amount+ems_start.arrears as ems_start_amount,
ifnull(ems_end.amount,0)+ifnull(ems_end.arrears,0)-(ifnull(ems_start.amount,0)+ifnull(ems_start.arrears,0)) as difference
from {$obj_comp->employee_table} emp
inner join employee_monthly_salary ems_end on
ems_end.ref_employee_code = emp.internal_code
and ems_end.month ={$end_process_month}
and ems_end.year ={$end_process_year}
left join employee_monthly_salary ems_start on
ems_start.ref_employee_code = emp.internal_code
and ems_start.month ={$start_process_month}
and ems_start.year ={$start_process_year}
and ems_start.type<>'SPECIAL FIELDS'
and ems_end.type<>'SPECIAL FIELDS'
and ems_end.ref_salary_component = ems_start.ref_salary_component
union
select {$obj_comp->employee_name} as name,
{$obj_comp->employee_code} as code,
ems_start.component_name as component ,
ems_end.amount+ems_end.arrears as ems_end_amount,
ems_start.component_name as ems_start_component,
ems_start.amount+ems_start.arrears as ems_start_amount,
ifnull(ems_end.amount,0)+ifnull(ems_end.arrears,0)-(ifnull(ems_start.amount,0)+ifnull(ems_start.arrears,0)) as difference
from {$obj_comp->employee_table} emp
inner join employee_monthly_salary ems_start on
ems_start.ref_employee_code = emp.internal_code
and ems_start.month ={$start_process_month}
and ems_start.year ={$start_process_year}
left join employee_monthly_salary ems_end on
ems_end.ref_employee_code = emp.internal_code
and ems_end.month ={$end_process_month}
and ems_end.year ={$end_process_year}
and ems_end.type<>'SPECIAL FIELDS'
and ems_end.type<>'SPECIAL FIELDS'
and ems_end.ref_salary_component = ems_start.ref_salary_component
) a group by code,name";
$aobj_context->mobj_db->execute("SET @@session.group_concat_max_len=1000000");
$obj_employee_details = $aobj_context->mobj_db->GetAll($get_employee_details);
$worksheet->setColumn(1,1,25);
$row=4;
for($k=0;$k<count($obj_employee_details);$k++)
{
$worksheet->writeString( $row, 0, $obj_employee_details[$k]['code'],$Data_Left);
$worksheet->writeString( $row, 1, $obj_employee_details[$k]['name'],$Data_Left);
$comma_split=explode(',',$obj_employee_details[$k]['amount']);
foreach($comma_split as $c_key )
{
$arrow_split=explode('->',$c_key);
if($cell_ids[$arrow_split[0]])
{
$worksheet->write($row,$cell_ids[$arrow_split[0]],$arrow_split[1],$Data_Right);
$total_cell_ids[$arrow_split[0]]= $total_cell_ids[$arrow_split[0]]+$arrow_split[1];
}
}
$row++;
}
$row++;
$worksheet->write($row,0,'',$Data_Right);
$worksheet->write($row,1,"Total",$Title_Left);
foreach($total_cell_ids as $k=>$v)
{
$worksheet->write($row,$cell_ids[$k],$v,$Data_Right);
}
//echo $get_employee_details; die();
$worksheet->mergeCells(0,0,0,15);
$worksheet->mergeCells(1,0,1,14);
$row+=2;
$emp_data=$obj->fin_arr;
foreach($emp_data as $emp_key=>$emp_val)
{
$worksheet->write($row,0,$emp_key);
$worksheet->mergeCells($row,0,$row,1);
$worksheet->write($row,2,$emp_val); $row++;
}
$doj_details_arr=$obj->doj_details_arr;
$dor_details_arr=$obj->dor_details_arr;
$row+=2;
$worksheet->write($row,0,"DOJ Details ",$Data_Left);
$worksheet->write($row,1,'',$Data_Left);
$worksheet->write($row,2,'',$Data_Left);
$worksheet->mergeCells($row,0,$row,2);
$row+=1;
$worksheet->write($row,0,"Code ",$Data_Left);
$worksheet->write($row,1,'Name',$Data_Left);
$worksheet->write($row,2,'Date Of Joining',$Data_Left);
$row+=1;
foreach($doj_details_arr as $doj_k=>$doj_v)
{
$worksheet->write($row,0,$doj_v['code'],$Data_Left);
$worksheet->write($row,1,$doj_v['name'],$Data_Left);
$worksheet->write($row,2,$doj_v['date'],$Data_Left);
$row+=1;
}
$row+=2;
$worksheet->write($row,0,"DOR Details ",$Data_Left);
$worksheet->write($row,1,'',$Data_Left);
$worksheet->write($row,2,'',$Data_Left);
$worksheet->mergeCells($row,0,$row,2);
$row+=1;
$worksheet->write($row,0,"Code ",$Data_Left);
$worksheet->write($row,1,'Name',$Data_Left);
$worksheet->write($row,2,'Date Of Resign',$Data_Left);
$row+=1;
foreach($dor_details_arr as $dor_k=>$dor_v)
{
$worksheet->write($row,0,$dor_v['code'],$Data_Left);
$worksheet->write($row,1,$dor_v['name'],$Data_Left);
$worksheet->write($row,2,$dor_v['date'],$Data_Left);
$row+=1;
}
}
function populateConsolidatedEarningDedutionReport($aobj_context,$obj_comp,$worksheet,$workbook,$Title_Left,$Data_Right,$report_name,$report_display_date,$orignial_date,$obj)
{
$worksheet =& $workbook->addWorksheet('Consolidated Variance Report');
$company_name= $_SESSION['report_company_name'];
$worksheet->write(0,0,$company_name, $Title_Left);
$worksheet->mergeCells(0,0,0,8);
$worksheet->write(1,0,"Consolidated Earnings and Deductions Report for the month".$report_display_date , $Title_Left);
$worksheet->mergeCells(1,0,1,8);
//$Data_Right->setNumFormat('##,##,##,##,##0.00');
$get_dates="select
date_format(date_sub('{$orignial_date}',interval 1 month),'%m') as prev_month,
date_format(date_sub('{$orignial_date}',interval 1 month),'%Y') as prev_year,
date_format(date_sub('{$orignial_date}',interval 1 month),'%b-%Y') as from_date_string,
date_format( '{$orignial_date}','%Y') as cur_year,
date_format( '{$orignial_date}','%m') as cur_month,
date_format( '{$orignial_date}','%b-%Y') as to_date_string
";
$obj_get_dates = $aobj_context->mobj_db->GetRow($get_dates);
$end_process_month=$obj_get_dates[cur_month];
$end_process_year=$obj_get_dates[cur_year];
$start_process_month=$obj_get_dates[prev_month];
$start_process_year=$obj_get_dates[prev_year];
$to_date_string=$obj_get_dates[to_date_string];
$from_date_string=$obj_get_dates[from_date_string];
$get_variance_details = "select
ems_end.component_name as component,
ems_end.type as type,
sum(ifnull(ems_end.amount,0)+ifnull(ems_end.arrears,0)) as ems_end_amount,
sum(ifnull(ems_start.amount,0)+ifnull(ems_start.arrears,0)) as ems_start_amount
from {$obj_comp->employee_table} emp
inner join employee_monthly_salary ems_end on
ems_end.ref_employee_code = emp.internal_code
and ems_end.month ={$end_process_month}
and ems_end.year ={$end_process_year}
and ems_end.amount+ems_end.arrears <> 0
left join employee_monthly_salary ems_start on
ems_start.ref_employee_code = emp.internal_code
and ems_start.month ={$start_process_month}
and ems_start.year ={$start_process_year}
and ems_end.ref_salary_component = ems_start.ref_salary_component
and ems_start.amount+ems_start.arrears <> 0
group by component
union
select
ems_start.component_name as component, ems_start.type as type,
sum(ifnull(ems_end.amount,0)+ifnull(ems_end.arrears,0)) as ems_end_amount,
sum(ifnull(ems_start.amount,0)+ifnull(ems_start.arrears,0)) as ems_start_amount
from {$obj_comp->employee_table} emp
inner join
employee_monthly_salary ems_start
on ems_start.ref_employee_code = emp.internal_code
and ems_start.month ={$start_process_month} and ems_start.year ={$start_process_year}
left join employee_monthly_salary ems_end
on ems_end.ref_employee_code = emp.internal_code and ems_end.month ={$end_process_month}
and ems_end.year ={$end_process_year} and ems_end.amount+ems_end.arrears <> 0
and ems_end.ref_salary_component = ems_start.ref_salary_component
and ems_start.amount+ems_start.arrears <> 0 group by component
";
$aobj_context->mobj_db->execute("SET @@session.group_concat_max_len=1000000");
//echo $get_variance_details;die();
$obj_global_result = $aobj_context->mobj_db->GetAll($get_variance_detailss);
$row=5;
$col=0;
$i=0;
$arr["E_Previous_month"]=0;
$arr["E_Current_month"]=0;
$arr["D_Previous_month"]=0;
$arr["D_Current_month"]=0;
$worksheet->write($row,0,"Previous Month",$Title_Left);
$worksheet->write($row,1,'Component Name',$Title_Left);
$worksheet->write($row,2,'Current Month',$Title_Left);
$worksheet->write($row,3,"Previous Month",$Title_Left);
$worksheet->write($row,4,"Component Name",$Title_Left);
$worksheet->write($row,5,"Current Month",$Title_Left);
$earning_row=$row+1;
$ded_row=$row+1;
$select_distinct_comp="select distinct type,component_name from employee_monthly_salary order by type,component_name ";
$obj_select_distinct_comp = $aobj_context->mobj_db->GetAll($select_distinct_comp);
foreach( $obj_select_distinct_comp as $comp_key=>$comp_val)
{
if($comp_val['type']=='EARNINGS')
{
$worksheet->write($earning_row,1,$comp_val['component_name'],$Data_Left);
$comp_row_arr[$comp_val['component_name']]=$earning_row;$earning_row++;
}
else if($comp_val['type']=='DEDUCTIONS')
{
$worksheet->write($ded_row,4,$comp_val['component_name'],$Data_Left);
$comp_row_arr[$comp_val['component_name']]=$ded_row;$ded_row++;
}
}
$get_cur_month="select
ems_end.component_name as component_name,
ems_end.type as type,
sum(ifnull(ems_end.amount,0)+ifnull(ems_end.arrears,0)) as ems_end_amount
from {$obj_comp->employee_table} emp
inner join employee_monthly_salary ems_end on
ems_end.ref_employee_code = emp.internal_code
and ems_end.month ={$end_process_month}
and ems_end.year ={$end_process_year}
group by component_name";
$obj_get_cur_month = $aobj_context->mobj_db->GetAll($get_cur_month);
foreach( $obj_get_cur_month as $cur_key=>$cur_val)
{
if($cur_val['type']=='EARNINGS')
{
$worksheet->write( $comp_row_arr[$cur_val['component_name']],2,$cur_val['ems_end_amount'],$Data_Right);
$arr["E_Current_month"]+=$cur_val['ems_end_amount'];
}
else if($cur_val['type']=='DEDUCTIONS')
{
$worksheet->write( $comp_row_arr[$cur_val['component_name']],5,$cur_val['ems_end_amount'],$Data_Right);
$arr["D_Current_month"]+=$cur_val['ems_end_amount'];
}
}
$get_prev_month=" select
ems_start.component_name as component_name,
ems_start.type as type,
sum(ifnull(ems_start.amount,0)+ifnull(ems_start.arrears,0)) as ems_start_amount
from {$obj_comp->employee_table} emp
inner join employee_monthly_salary ems_start on
ems_start.ref_employee_code = emp.internal_code
and ems_start.month ={$start_process_month}
and ems_start.year ={$start_process_year}
group by component_name";
$obj_get_prev_month = $aobj_context->mobj_db->GetAll($get_prev_month);
foreach( $obj_get_prev_month as $cur_key=>$cur_val)
{
if($cur_val['type']=='EARNINGS')
{
$worksheet->write( $comp_row_arr[$cur_val['component_name']],0,$cur_val['ems_start_amount'],$Data_Right);
$arr["E_Previous_month"]+=$cur_val['ems_start_amount'];
}
else if($cur_val['type']=='DEDUCTIONS')
{
$worksheet->write( $comp_row_arr[$cur_val['component_name']],3,$cur_val['ems_start_amount'],$Data_Right);
$arr["D_Previous_month"]+=$cur_val['ems_start_amount'];
}
}
//$Title_Left->setNumFormat('##,##,##,##,##0.00');
for($k=$ded_row;$k<($earning_row);$k++)
{
$worksheet->write($k,3,'',$Data_Left);
$worksheet->write($k,4,'' ,$Data_Left);
$worksheet->write($k,5,'' ,$Data_Left);
}
$row=max($ded_row,$earning_row);
$worksheet->write($row,0,$arr["E_Previous_month"] ,$Data_Right);
$worksheet->write($row,1,"Gross Earning" ,$Title_Left);
$worksheet->write($row,2,$arr["E_Current_month"] ,$Data_Right);
$worksheet->write($row,3,$arr["D_Previous_month"] ,$Data_Right);
$worksheet->write($row,4,"Gross Deductions" ,$Title_Left);
$worksheet->write($row,5,$arr["D_Current_month"] ,$Data_Right);
$worksheet->setColumn(0,5,20);
$row+=2;
$emp_data=$obj->fin_arr;
foreach($emp_data as $emp_key=>$emp_val)
{
$worksheet->write($row,0,$emp_key);
$worksheet->mergeCells($row,0,$row,1);
$worksheet->write($row,2,$emp_val); $row++;
}
$doj_details_arr=$obj->doj_details_arr;
$dor_details_arr=$obj->dor_details_arr;
$row+=2;
$worksheet->write($row,0,"DOJ Details ",$Data_Left);
$worksheet->write($row,1,'',$Data_Left);
$worksheet->write($row,2,'',$Data_Left);
$worksheet->mergeCells($row,0,$row,2);
$row+=1;
$worksheet->write($row,0,"Code ",$Data_Left);
$worksheet->write($row,1,'Name',$Data_Left);
$worksheet->write($row,2,'Date Of Joining',$Data_Left);
$row+=1;
foreach($doj_details_arr as $doj_k=>$doj_v)
{
$worksheet->write($row,0,$doj_v['code'],$Data_Left);
$worksheet->write($row,1,$doj_v['name'],$Data_Left);
$worksheet->write($row,2,$doj_v['date'],$Data_Left);
$row+=1;
}
$row+=2;
$worksheet->write($row,0,"DOR Details ",$Data_Left);
$worksheet->write($row,1,'',$Data_Left);
$worksheet->write($row,2,'',$Data_Left);
$worksheet->mergeCells($row,0,$row,2);
$row+=1;
$worksheet->write($row,0,"Code ",$Data_Left);
$worksheet->write($row,1,'Name',$Data_Left);
$worksheet->write($row,2,'Date Of Resign',$Data_Left);
$row+=1;
foreach($dor_details_arr as $dor_k=>$dor_v)
{
$worksheet->write($row,0,$dor_v['code'],$Data_Left);
$worksheet->write($row,1,$dor_v['name'],$Data_Left);
$worksheet->write($row,2,$dor_v['date'],$Data_Left);
$row+=1;
}
}
function populateNonCrossTabReport($lobj_get_final_result,$lobj_get_union_display_cols,$is_sub_tot,$sub_tot_field,$worksheet,$Title_Center,$is_row_total,$is_col_tot,$Title_Right,$is_sl_nos,$freeze_cells,$Data_Right,$Data_Left,$Data_Left_B)
{
$row=5;
$row_header = 3;
$cell_ids= array();
if($is_sl_nos)
{
$k=0;
$worksheet->write($row_header,$k,"Sl No", $Title_Center);
$cell_ids["Sl No"]=$k;
$k=1;
}
else {
$k=0;}
for($l=0;$l<count($lobj_get_union_display_cols);$l++)
{
$cell_ids[$lobj_get_union_display_cols[$l]['display_fields']]=$k;
$worksheet->writeString($row_header,$k,$lobj_get_union_display_cols[$l]['display_fields'], $Title_Center);
$k++;
}
$emp_fields_arr=array("Code","Name","Location","Department","Designation",
"Grade","Date of Joining","Leave Days","Sl No","Paid Days",
"Lop Days","Month Days","LOP Days");
$summary_field_names[0]='Net Pay';
$summary_field_names[1]='Total Deduction Arrears';
$summary_field_names[2]='Gross Deduction';
$summary_field_names[3]='Total Earning Arrears';
$summary_field_names[4]='Gross Earning';
$summary_field_names[5]='Gross Rate';
$summary_field_names[6]='Paid Days';
$summary_field_names[7]='Lop Days';
$summary_field_names[8]='Month Days';
$summary_field_names[9]='Leave Days';
$summary_field_total_arr[0]='Net Pay';
$summary_field_total_arr[1]='Total Deduction Arrears';
$summary_field_total_arr[2]='Gross Deduction';
$summary_field_total_arr[3]='Total Earning Arrears';
$summary_field_total_arr[4]='Gross Earning';
$summary_field_total_arr[5]='Gross Rate';
$summary_field_total_arr[6]='OT Hours';
//$summary_field_total_arr[6]='Paid Days';
//$summary_field_total_arr[7]='Lop Days';
//$sub_total_col_name='Department';
$previous_val='';
$row_total=0;
$net_pay_sum=0;
$subtotal=array();
$r_first=0;
$sl_no=1;
foreach($lobj_get_final_result as $lobj_get_final_result_key=>$lobj_get_final_result_val)
{
foreach($cell_ids as $wek=>$wev)
{
if(!in_array($wek,$emp_fields_arr))
{
$worksheet->write($row,$wev,0,$Data_Right);
}
}
$is_bold_pos = strpos($lobj_get_final_result_val['is_bold'], "1");
if ($is_bold_pos === false) {
$is_bold="0";
}
else
$is_bold="1";
//$is_bold="0";
$row_total=0;
$total_merge_cols=0;
//to display the SUb Total
if($sub_tot_field!='' && $is_sub_tot==1)
{
foreach($lobj_get_final_result_val as $sum_k=>$sum_v)
{
if($sum_k==$sub_tot_field)
{
if($r_first==0)
{$previous_val=$sum_v; $r_first=1;}
else
{
if($previous_val!=$sum_v)
{
foreach($cell_ids as $wek=>$wev)
{
if(!in_array($wek,$emp_fields_arr))
{
$worksheet->write($row,$wev,'',$Data_Right);
}
}
$row=$row+1;
foreach($cell_ids as $wek=>$wev)//making location Total Zero first
{
if(!in_array($wek,$emp_fields_arr))
{
$worksheet->write($row,$wev,0,$Title_Right);
}
}
foreach($sub_total_val as $s_k1=>$s_v1)
{
$worksheet->write($row,$cell_ids[$s_k1],$s_v1,$Title_Right);
}
foreach($summary_field_name_sub_total as $s_k1=>$s_v1)
{
$worksheet->write($row,$cell_ids[$s_k1],$s_v1,$Title_Right);
}
$worksheet->write($row,0,$sub_tot_field." Total",$Title_Right);
$row=$row+2;
foreach($cell_ids as $wek=>$wev)
{
if(!in_array($wek,$emp_fields_arr))
{
$worksheet->write($row,$wev,0,$Data_Right);
}
}
$sub_total_val ='';
$summary_field_name_sub_total ='';
$previous_val=$sum_v;
$sl_no=1;
}
}
}
}
}
//var_dump($lobj_get_final_result_val); die();
foreach($lobj_get_final_result_val as $key_2=>$l_v)
{
if($key_2!='concate_sal_heads' && $key_2!='is_bold' )
{
if(is_numeric($l_v) && $key_2!="Code")
{
$cell_format = ($is_bold0=='1')?$Title_Right:$Data_Right;
}
else
{
$cell_format = ($is_bold=='1' && ($key_2=="Name" or $key_2=="Code"))?$Data_Left_B:$Data_Left;
}
if(in_array($key_2,$summary_field_names))
{
$worksheet->write($row,$cell_ids[$key_2],addslashes($l_v),$cell_format);//
}
else
$worksheet->writeString($row,$cell_ids[$key_2],addslashes($l_v),$cell_format);//
//to get the sum of the summary fields
if (in_array($key_2, $summary_field_total_arr))
{
$row_total+=$l_v;
$summary_field_name_total[$key_2]+=$l_v;
$summary_field_name_sub_total[$key_2]+=$l_v;
//$subtotal[$query_sub_total_value][$key_2]+=$l_v;
}
else $total_merge_cols++;
}
else
{
$comma_split=explode(',',$l_v);
foreach($comma_split as $c_key )
{
$arrow_split=explode('->',$c_key);
$bold_split=explode('!',$arrow_split[1]);
$tilde_split=explode("~",$bold_split[1]);
$cell_format = ( $bold_split[0]=='1')?$Title_Right:$Data_Right;
if($cell_ids[$arrow_split[0]])
$worksheet->write($row,$cell_ids[$arrow_split[0]],$tilde_split[0],$cell_format);
$salary_field_name_total[$arrow_split[0]]+=$tilde_split[0];
$sub_total_val[$arrow_split[0]]+=$tilde_split[0];
if($tilde_split[1]<>0)
{
$arrear_field=$arrow_split[0]." Arrears";
if($cell_ids[$arrear_field])
$worksheet->write($row,$cell_ids[$arrear_field],$tilde_split[1],$cell_format);
$salary_field_name_total[$arrear_field]+=$tilde_split[1];
$sub_total_val[$arrear_field]+=$tilde_split[1];
}
$row_total+=$arrow_split[1];
}
}
if($is_sl_nos)
{
$worksheet->write($row,$cell_ids['Sl No'],$sl_no,$cell_format);
}
}
if($is_row_total==1) {
$worksheet->write($row,$k,$row_total,$Title_Right); } // to write row total here
$row++;
$sl_no++;
}
if($is_row_total==1) $worksheet->write($row_header,$k,'Total', $Title_Center);//for Rpw Total
if($sub_tot_field!='' && $is_sub_tot==1)
{
foreach($sub_total_val as $s_k1=>$s_v1)
{
if($cell_ids[$s_k1])
$worksheet->write($row,$cell_ids[$s_k1],$s_v1,$Title_Right);
}
foreach($summary_field_name_sub_total as $s_k1=>$s_v1)
{
if($cell_ids[$s_k1])
$worksheet->write($row,$cell_ids[$s_k1],$s_v1,$Title_Right);
}
$row+=1;
}
if($is_col_tot==1)
{$row+=1;
//$worksheet->mergeCells($row,0,$row,$total_merge_cols-2);
// $worksheet->write($row,(($total_merge_cols-2)<0)?0:($total_merge_cols-2),'Grand Total',$Title_Right);
$worksheet->write($row,0,'Grand Total',$Title_Right);
// To display the Total value of summary fields as cols
foreach($summary_field_name_total as $s_k=>$s_v)
{
if($cell_ids[$s_k])
$worksheet->write($row,$cell_ids[$s_k],$s_v,$Title_Right);
}
// To display the Total value of salary fields
foreach($salary_field_name_total as $sal_k=>$sal_v)
{
if($cell_ids[$sal_k])
$worksheet->write($row,$cell_ids[$sal_k],$sal_v,$Title_Right);
}
}
if(!empty($freeze_cells))
{
$split_freeze_arr=explode(",",$freeze_cells);
$worksheet->freezePanes($split_freeze_arr);
}
}
function populateCrossTabReport($aobj_context,$get_final_result,$cross_tab_cols,$final_excel_display_col,$worksheet,$Title_Center,$Title_Right,$is_sl_nos,$freeze_cells)
{
$row_cols=explode(',',substr($cross_tab_cols,1));
$row_field=$row_cols[0];
$col_field=$row_cols[1];
$final_excel_display_col=str_ireplace(',','/',$final_excel_display_col);
$get_all_col_fields="select distinct {$col_field} as name from ({$get_final_result}) a order by 1";
$lobj_get_all_col_fields = $aobj_context->mobj_db->GetAll($get_all_col_fields);
//echo $get_final_result; die();
$row=4;
$row_header = 3;
if($is_sl_nos)
{
$worksheet->write($row_header,0,"Sl No", $Title_Center);
$worksheet->write($row_header,1,$final_excel_display_col, $Title_Center);
$k=2;
}
else
{
$worksheet->write($row_header,0,$final_excel_display_col, $Title_Center);
$k=1;
}
$cell_ids= array();
for($l=0;$l<count($lobj_get_all_col_fields);$l++)
{
$cell_ids[$lobj_get_all_col_fields[$l]['name']]=$k;
$worksheet->write($row_header,$k,$lobj_get_all_col_fields[$l]['name'], $Title_Center);
$k++;
}
$worksheet->write($row_header,$k,'Total',$Title_Center);
$get_final_data="select {$row_field},GROUP_CONCAT({$col_field},'~',concate_sal_heads) as amount
from ({$get_final_result}) a group by {$row_field} " ;
$aobj_context->mobj_db->execute("SET @@session.group_concat_max_len=1000000");
$lobj_get_final_data = $aobj_context->mobj_db->GetAll($get_final_data);
$cell_id=1;
$sl_no=1;
for($m=0;$m<count($lobj_get_final_data);$m++)
{
$row_total=0;
if($is_sl_nos)
{
$worksheet->write($row,0,$sl_no, $Title_Center);
$worksheet->write($row,1,$lobj_get_final_data[$m][$row_field]);
}
else
$worksheet->write($row,0,$lobj_get_final_data[$m][$row_field]);
$comma_split=explode(',',$lobj_get_final_data[$m]['amount']);
//Assigning 0.0 to all Cells
foreach ($cell_ids as $j=>$v)
{
$worksheet->write($row,$v,0.0);
}
foreach($comma_split as $c_key )
{
$arrow_split=explode('->',$c_key);
$pos = strpos($arrow_split[0],'~');
$cell_name=substr($arrow_split[0],0,($pos));
//echo $cell_name.$arrow_split[1]; die();
$worksheet->write($row,$cell_ids[$cell_name],$arrow_split[1]);
$col_total[$cell_name]+=$arrow_split[1];
$row_total+=$arrow_split[1];
}
$worksheet->write($row,$k, $row_total,$Title_Right);
$row++;
$sl_no++;
}
// to display col Total
$worksheet->write($row,0,"Total",$Title_Center);
foreach($col_total as $sal_k=>$sal_v)
{
$worksheet->write($row,$cell_ids[$sal_k],$sal_v,$Title_Right);
}
if(!empty($freeze_cells))
{
$split_freeze_arr=explode(",",$freeze_cells);
$worksheet->freezePanes($split_freeze_arr);
}
}
function deletereportSetup($aobj_context)
{
$id = ($aobj_context->mobj_data["id"]);
$delete_header="delete from report_header where internal_code in({$id})";
$delete_report_detail_conditions="delete from report_detail_conditions where ref_report_header_code in({$id})";
$delete_report_detail_emp_columns="delete from report_detail_emp_columns where ref_report_header_code in({$id})";
$delete_report_detail_sal_columns="delete from report_detail_sal_columns where ref_report_header_code in({$id})";
$delete_report_detail_summary_columns="delete from report_detail_summary_columns where ref_report_header_code in({$id})";
$lobj = $aobj_context->mobj_db->Execute($delete_header);
$lobj = $aobj_context->mobj_db->Execute($delete_report_detail_conditions);
$lobj = $aobj_context->mobj_db->Execute($delete_report_detail_emp_columns);
$lobj = $aobj_context->mobj_db->Execute($delete_report_detail_sal_columns);
$lobj = $aobj_context->mobj_db->Execute($delete_report_detail_summary_columns);
}
?>
|