0xV3NOMx
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/
Upload File :
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);	
	}	
}

?>