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.141.25.125
Current Path : /var/www/oasis/src_old/ |
| Current File : /var/www/oasis/src_old/golden_palm_payslip.php |
<?PHP
class goldenpalmClass
{
public $aobj_context;
public $company_name;
public $company_address;
public $distinct_emp_array;
public $Month_name;
public $Year;
public $dir_name;
public $lobj_sel_criteria;
public $is_mail;
public $single_file;
public $selected_cols_pdf_array;
public $reimbursement_details_flag;
public $obj_comp;
public $date;
public $num_format;
function __construct($aobj_context)
{
$this->aobj_context=$aobj_context;
ini_set("memory_limit",-1);
ini_set('max_execution_time',3300);
$pdf_writer=$aobj_context->main_src."/tarka_pdf/fpdf.php";
require_once($pdf_writer);
}
function WriteHeaderAndEmpDetailsForPDF($pdf, $lobj_sel_criteria)
{
$get_logo_path="select logo_path from logos";
$lobj_get_logo_path = $this->aobj_context->mobj_db->getRow($get_logo_path);
if(!empty($lobj_get_logo_path))
{
$img_path=$this->aobj_context->main_src.$lobj_get_logo_path[logo_path];
$pdf->Image($img_path,148,$pdf->GetY(),36);
}
/* $sheetX = $pdf->GetX();
$sheetY = $pdf->GetY();
$pdf->SetX(70+$sheetX);
$pdf->SetY(25+$sheetY); */
$pdf->SetFont('Times','B',10);
$pdf->Cell(0,5,$this->company_name,"0",1,"C");
$pdf->SetFont('Times','',8);
//$pdf->Write(5,$this->company_address,"1",1,"L");
$pdf->MultiCell(0, 5, $this->company_address, 0, "C");
$pdf->SetFont('Times','',10);
$pdf->Ln(4);
//$pdf->Cell(0,5,"Pay Slip for the month of {$this->Month_name}-{$this->Year}","0",1,"C");
$pdf->Cell(0,5,"Pay Slip for the month of {$this->Month_name}-{$this->Year}","0",1,"C");
$pdf->Ln(2);
$mid_index = ceil(count($this->selected_cols_pdf_array)/2);
//$pdf->Rect($pdf->GetX(), $pdf->GetY(), (25+60+22+50), ($mid_index*5));
for($index =0 ; $index <$mid_index; $index++ )
{
$pdf->Cell(25,5,($this->selected_cols_pdf_array[$index] == 'Code')?'Code.':$this->selected_cols_pdf_array[$index].":","0",0,"L");
$pdf->Cell(60,5,$lobj_sel_criteria[$this->selected_cols_pdf_array[$index]],"0",0,"L");
if($this->selected_cols_pdf_array[$index+$mid_index] != '' )
{
$pdf->Cell(26,5,$this->selected_cols_pdf_array[$index+$mid_index].":","0",0,"L");
$pdf->Cell(50,5,$lobj_sel_criteria[$this->selected_cols_pdf_array[$index+$mid_index]],"0",1,"L");
}
else
$pdf->Cell(30,5,'',"0",1,"R");
}
$pdf->SetFillColor(247, 255, 188);
//$pdf->Cell(157,6,'P A R T I C U L A R S',"1",1,"C");
}
function DownloadFilesToUI($root_rpt_file_download)
{
$is_mail = $this->is_mail;
$distinct_emp_array = $this->distinct_emp_array;
$dir_name = $this->dir_name;
if(!$is_mail && count($distinct_emp_array)>1)
{
$zipobj = new EasyZIP;
$zipobj -> addDir($dir_name);
$zipobj -> zipFile("{$dir_name}.zip");
header("Expires: 0");
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=payslip.zip");
print file_get_contents($dir_name.".zip");
}
else if(!$is_mail && count($distinct_emp_array)==1)
{
header("Content-type: application/vnd.pdf");
header("Content-Disposition: attachment; filename={$distinct_emp_array[0][employee_code]}.pdf");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
header("Pragma: public");
readfile($root_rpt_file_download);
}
unlink($root_rpt_file_download);
for($i=0;$i<count($distinct_emp_array);$i++)
{
$root_rpt_file_excel_download=$dir_name."/pay_slip_{$distinct_emp_array[$i][employee_code]}.xls";
$root_rpt_file_pdf_download=$dir_name."/pay_slip_{$distinct_emp_array[$i][employee_code]}.pdf";
unlink($root_rpt_file_pdf_download);
unlink($root_rpt_file_excel_download);
}
rmdir($dir_name);
unlink($dir_name.".zip");
}
function generatePaySlipGoldenPalm()
{
$num_format='xxxx,xx,xx,xxx.xx';
$distinct_emp_array = $this->distinct_emp_array;
$lobj_sel_criteria = $this->lobj_sel_criteria;
$single_file = $this->single_file;
$root_rpt_file_download = '';
if($single_file=='1')
{
$root_rpt_file_download=$this->dir_name."/employee_payslip.pdf";
}
$pdf= new FPDF();
$total_mail_sent_count=0;
for($i=0;$i<count($distinct_emp_array);$i++)
{
$count_row_earnings=0;
$count_row_deductions=0;
$earning_tot=0;
$deduct_tot=0;
if(!$single_file)
{
$pdf= new FPDF();
$root_rpt_file_dname="pay_slip_{$distinct_emp_array[$i][employee_code]}.pdf";
$root_rpt_file_download=$this->dir_name."/pay_slip_{$distinct_emp_array[$i][employee_code]}.pdf";
unlink($root_rpt_file_download);
unlink($this->dir_name."/pay_slip_{$distinct_emp_array[$i][employee_code]}.xls");
}
if($this->two_payslip_per_page)
{
$pdf->SetMargins(28,10);
$pdf->SetFont('Times','',10);
if($i % 2 == 0)
$pdf->AddPage();
else
$pdf->Ln(8);
}
else
{
$pdf->SetMargins(28,10);
$pdf->SetFont('Times','',10);
$pdf->AddPage();
}
$earning_tot=0;
$deduct_tot=0;
$count_row_earnings=0;
$count_row_deductions=0;
$header_count=0;
foreach($lobj_sel_criteria as $key=>$value)
{
if($value[type]=='EARNINGS' && $value['employee_code'] == $distinct_emp_array[$i][employee_code])
{
if($header_count==0)
{
$this->WriteHeaderAndEmpDetailsForPDF($pdf, $lobj_sel_criteria[$key]);
$pdf->SetFillColor(168, 255, 225);
$pdf->SetFont('Times','B',8);
$pdf->Cell(157,2,'',"T",1,"L");
$pdf->Cell(45,5," EARNINGS ","0",0,"L");
$pdf->Cell(20,5," AMOUNT(RS) ","0",0,"C");
$pdf->Cell(20,5," AMOUNT(RS) ","0",0,"C");
$pdf->Cell(46,5," DEDUCTIONS","0",0,"L");
$pdf->Cell(26,5," AMOUNT(RS)","0",1,"C");
$pdf->Cell(45,3," ","0",0,"L");
$pdf->Cell(20,3,"(Fixed)","0",0,"C");
$pdf->Cell(20,3,"(Earned)","0",0,"C");
$pdf->Cell(46,3," ","",0,"0");
$pdf->Cell(26,3," ","",1,"C");
$pdf->Ln(2);
$pdf->Cell(157,2,'',"T",1,"L");
$pdf->SetFont('Times','',10);
$y_value = $pdf->GetY();
$header_count++;
$emp_int_code = $lobj_sel_criteria[$key]['emp_int_code'];
$emp_code = $distinct_emp_array[$i][employee_code];
if($reimbursement_details_flag)
{
$reimburse_data=getReimbursementClaimsDetailsFromPayslip($emp_int_code);
}
if($leave_details_flag)
{
$leave_data=getLeaveDetailsFromPayslip($emp_int_code);
}
}
$pdf->Cell(45,5,' '.$value[component_name],"0",0,"L");
$pdf->Cell(20,5,' '.picture($value[original_amount],$num_format),"0",0,"R");
$pdf->Cell(20,5,' '.picture($value[total],$num_format),"0",1,"R");
$earning_tot+=$value[total];
$count_row_earnings++;
$getX_at_earnings = $pdf->GetX();
$getY_at_earnings = $pdf->GetY();
$Y_value = $pdf->GetY();
$border_flag=1;
$psw = getOpenPassword($this->aobj_context, $emp_int_code);
$getX_ear_for_total = $pdf->GetX();
$getY_ear_for_total = $pdf->GetY();
}
}
foreach($lobj_sel_criteria as $key=>$value)
{
if($value[type]=='DEDUCTIONS' && $value['employee_code']==$distinct_emp_array[$i][employee_code])
{
$pdf->SetXY(113, $y_value);
$pdf->Cell(46,5,' '.$value[component_name],"0",0,"L");
$pdf->Cell(26,5,' '.picture($value[total],$num_format),"0",1,"R");
$y_value += 5;
$deduct_tot+=$value[total];
$count_row_deductions++;
$getX_at_deductions = $pdf->GetX();
$getX_ded_for_total = $pdf->GetX();
$getY_ded_for_total = $pdf->GetY();
}
}
/*
* writing a blank cell to balance the table
*/
//echo $count_row_deductions.'-'.$count_row_earnings; die();
for($row=$count_row_earnings; $row<$count_row_deductions; $row++)
{
$pdf->SetXY($getX_at_earnings,$getY_at_earnings);
//$pdf->Cell(46,5,'',"1",1,"R");
$pdf->Cell(55,5,'',"0",0,"R");
$pdf->Cell(30,5,'',"0",1,"R");
$getY_at_earnings += 5;
}
if($count_row_deductions != 0)
{
for($row=$count_row_deductions; $row<$count_row_earnings; $row++)
{
$pdf->SetXY(113,$pdf->GetY());
if($row == $count_row_earnings-1)
{
$pdf->Cell(46,5,'',"0",0,"R");
$pdf->Cell(26,5,'',"0",1,"R");
break;
}
$pdf->Cell(46,5,'',"0",0,"R");
$pdf->Cell(26,5,'',"0",1,"R");
}
}
else
{
for($row=0; $row<$count_row_earnings; $row++)
{
$pdf->SetXY(113, $y_value);
$y_value += 5;
$pdf->Cell(46,5,'',"0",0,"R");
$pdf->Cell(26,5,'',"0",1,"R");
}
}
if($count_row_earnings <= $count_row_deductions)
{
$getX_fot_total = $getX_ded_for_total;
$getY_fot_total = $getY_ded_for_total;
}
else
{
$getX_fot_total = $getX_ear_for_total;
$getY_fot_total = $getY_ear_for_total;
}
$pdf->SetXY($getX_fot_total, $getY_fot_total);
$pdf->SetFont('Times','B',8);
$pdf->Ln(2);
$pdf->Cell(157,2,'',"T",1,"L");
$pdf->Cell(65,5,'TOTAL EARNINGS',"0",0,"L");
$pdf->Cell(20,5,' '.picture($earning_tot,$num_format),"0",0,"R");
$pdf->Cell(46,5,' TOTAL ',"0",0,"L");
$pdf->Cell(26,5,' '.picture($deduct_tot,$num_format),"0",1,"R");
$pdf->Cell(157,2,'',"B",1,"L");
$net_orignal=$earning_tot-$deduct_tot;
$net = ceil($net_orignal);
$round_off=$net-$net_orignal;
$pdf->Cell(65,5,'NET PAY AFTER ROUND OFF',"0",0,"L");
$pdf->Cell(20,5,picture($net,$num_format),"0",0,"R");
$pdf->Cell(76,5,'',"0",1,"L");
$net_in_words=getNumber($net);
$pdf->SetFont('Times','I',10);
$pdf->SetFillColor(247, 255, 188);
$pdf->Cell(157,5,'In Words : Rupees '.$net_in_words,"0",1,"L");
$pdf->Cell(157,2,'',"B",1,"L");
/* $pdf->Cell(55,5,'Round Off ',"LTB",0,"L");
$pdf->Cell(30,5,picture($round_off,$num_format),"LRTB",0,"R");
$pdf->Cell(46,5,'Net Payable: ',"TRB",0,"L");
$pdf->Cell(26,5,picture($net,$num_format),"TRB",1,"R"); */
$pdf->Ln(2);
if($j == 0)
{
$pdf->Cell(157,5,'This being computer generated print, does not require authorised signature.',"0",1,"C");
$pdf->Ln(8);
$pdf->SetLineWidth(0.3);
if($i % 2 == 0)
$pdf->Line(28, $pdf->GetY(), 185, $pdf->GetY());
$pdf->SetLineWidth(0.2);
$pdf->Ln(5);
}
if(!$single_file)
{
$pdf->output($root_rpt_file_download);
$root_rpt_file_download = pdfEncrypt($root_rpt_file_download, $psw, $root_rpt_file_download);
}
if($is_mail && !$single_file)
{
$obj_mail->emp_mail=$distinct_emp_array[$i][employee_email_id];
$obj_mail->root_rpt_file_download=$root_rpt_file_download;
$obj_mail->root_rpt_file_dname=$root_rpt_file_dname;
$obj_mail->message=$message;
$obj_mail->larr_mail_bcc_to=$email_msg->larr_mail_bcc_to;
$obj_mail->subject="Salary Slip for the month {$Month_name}-{$Year}";
$obj_mailer_flag=$obj_mail->sendEmployeePaySlipsByMail();
$date_arr = explode("-", $date);
$pay_year = $date_arr[0];
$pay_month = $date_arr[1];
if($obj_mailer_flag>0) { $total_mail_sent_count++;}
unlink($root_rpt_file_download);
$insert_email_status = "INSERT INTO sent_payslips_status
(
internal_code,
ref_emp_code,
emp_code,
emp_mail,
year,
month,
status,
sent_time
)
values (0,
'$emp_int_code',
'$emp_code',
'{$obj_mail->emp_mail}',
'$pay_year',
'$pay_month',
'$obj_mailer_flag',
now()
)";
$lobj_insert_email_status = $aobj_context->mobj_db->execute($insert_email_status);
}
}
//echo $i; die();
$tot_emps=count($distinct_emp_array);
if($obj_mailer_flag && $is_mail && !$single_file)
{
echo "<script> alert('Payslips has been sent successfully:Total :{$tot_emps} Sent:{$total_mail_sent_count} ');</script>";
}
else if( $is_mail && !$single_file)
{
echo "<script> alert('Payslips could not be sent for All Employees:Total :{$tot_emps} Sent:{$total_mail_sent_count} ');</script>";
}
if($single_file)
{
$pdf->output($root_rpt_file_download);
}
$this->DownloadFilesToUI($root_rpt_file_download);
}
}
?>
|