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 : 18.222.161.57


Current Path : /var/www/oasis/Report_details/
Upload File :
Current File : /var/www/oasis/Report_details/r

<?php
function GenerateAttendanceShortageReport($aobj_context)
{	
	session_start();
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);  
    $college_code    = $_SESSION['collcode']; 
	$degree_code     = $aobj_context->mobj_data["degree_code"]; 
	$from_month_name = $aobj_context->mobj_data["from_month_name"]; 
	$to_month_name   = $aobj_context->mobj_data["to_month_name"]; 
	$exam_code       = $aobj_context->mobj_data["exam_code"]; 
	$sublist_start   = substr("0000".$aobj_context->mobj_data["subwise_start"],-5); 
	$sublist_end     = substr("0000".$aobj_context->mobj_data["subwise_end"],-5);
	
	$fattper =  $aobj_context->mobj_data["percentage"];
	//var_dump($fattper);
	$reporttype     = $aobj_context->mobj_data["reporttype"];
	
	$main_src_obj=(explode("/",$_SERVER["REQUEST_URI"]));
	$main_src=$main_src_obj[1];
	$pdf_writer_class=$aobj_context->main_src."/maya-pdf/fpdf.php";	
	$root_pdf_file_download=$aobj_context->main_src."/Report_details/output/report_general_list.pdf";
	$getnumword=$aobj_context->main_src."/src/getnumword.php";
	include($getnumword);
	$month_arr = array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");

	$a = array_search($from_month_name, $month_arr);
	$b = array_search($to_month_name, $month_arr);
	$result = array();
	if($a <= $b)
	{
		$b = $b-$a;
		$result = array_slice($month_arr,$a,$b+1);
	}
	else
	{
		$result1 = array_slice($month_arr,0,$b+1);
		$result2 = array_slice($month_arr,$a,12);
		$result = array_merge($result2, $result1);
	}
	//var_dump($result);
	$fields = '';
	$att = '';
	$notentered = "";
	$cond = "";
	$report = "Attendance Shortage Report";
	foreach($result as $key => $value) 
	{
		$fields .= " ifnull(F{$value}A, '0') as F{$value}A,
				   if(
					ifnull(ct.FFREEZED, '') = 'T',
					ifnull(F{$value}C, '0'),
					concat(ifnull(F{$value}C, '0'), '*')
					) as F{$value}C,
					ROUND(ifnull((F{$value}A * 100)/F{$value}C,'0'),2) AS F{$value}P,";
		
			$att .= " ifnull(F{$value}A, '0') +";
			$cond .= " ifnull(F{$value}C, '0') +";
		
		if($reporttype == 'Not enterd list')
		{
			$notentered .= " and ifnull(F{$value}C, '0') = 0";
			$report = "Attendance Not Entered List ";
		}	
	}
	$x = 60;
	$att = rtrim($att,'+');
	$cond = rtrim($cond,'+');
	$loop_arr = $result;
	$len = count($loop_arr);
	if($reporttype == 'Not enterd list')
		$x -= (8*$len);
	else
		$x -= (9*$len);// 60-20
	//if($len == 6 || $len == 5)
	//	$x = 15;
	$p_count =1;
	// end global varibales	
	//echo getnumber_to_word("001"); die();
	include($pdf_writer_class);		
	$pdf= new FPDF();
	$pdf->SetFont('Times','',10);
	$pdf->SetMargins(10,8);			
	$pdf->AliasNbPages();	
	// query for the page header	
	$page_header_university = "select FUNIVNAME,FTOWN,FUNIVADD1, date_format(now(),'%d/%m/%Y') as date, fattper from control";
	$lobj_page_header_university = $aobj_context->mobj_db->GetRow($page_header_university);
	
	$page_header_college ="select concat(FCOLLCODE,'   ',FCOLLNAME,', ',FTOWN) as college_name
						from college where FCOLLCODE='{$college_code}'";
	$lobj_page_header_college = $aobj_context->mobj_db->GetRow($page_header_college); 

	$page_header_degree = "select concat(FDEGREE,' - ', FDESCPN) as degree_name, concat(FEXAMNO,' - ',FEXAMNAME) as exam_name,
						concat('({$report} ',FEXAMDATE,')') as Exam ,FADYEAR from degree 
						where FDEGREE = '{$degree_code}' and FEXAMNO='{$exam_code}' ";
						//var_dump($lobj_page_header_university['Exam']);
	$lobj_page_header_degree = $aobj_context->mobj_db->GetRow($page_header_degree);
	
	$page_header_REGROLL = "select FREGROLL from control";
	$lobj_page_header_REGROLL = $aobj_context->mobj_db->GetRow($page_header_REGROLL);
	$pdf->aobj_context =$aobj_context ;
	$pdf->WhichReport = 'Attendance Shortage Report';
	$pdf->FUNIVNAME = $lobj_page_header_university['FUNIVNAME'];
	$pdf->FTOWN = $lobj_page_header_university['FTOWN'];
	$pdf->FUNIVADD1 = $lobj_page_header_university['FUNIVADD1'];
	$pdf->Exam = $lobj_page_header_degree['Exam'];
	$pdf->date_1 = $lobj_page_header_university['date'];
	$pdf->Report = $reporttype;
	$pdf->fattper = $fattper;
	$pdf->college_name = $lobj_page_header_college['college_name'];
	$pdf->degree_name = $lobj_page_header_degree['degree_name'];
	$pdf->exam_name = $lobj_page_header_degree['exam_name'];
	//$fattper = $lobj_page_header_university['fattper'];
	
  	
	$get_subject_data = " SELECT m.FREGNO, SUBSTRING(stu.FNAME,1,36) AS Name1,
						{$fields} ROUND( ({$att}) * 100 /({$cond}),2) AS TOTPER,
						CONCAT(s.FCSUBCODE,' - ',s.FSUBNAME,', ',FSSUBNAME,'') AS sub_name 
						from attend m 
						left join collatt ct on m.fdegree = ct.fdegree and ct.fcollcode = m.fcollcode and m.fsubcode = ct.fsubcode
						inner join student stu on m.fdegree = stu.fdegree and m.FREGNO=stu.FREGNO
						inner join subject s on m.FSUBCODE=s.FCSUBCODE
						where  lpad(s.FCSUBCODE,5,'0')>='{$sublist_start}' and lpad(s.FCSUBCODE,5,'0')<='{$sublist_end}'
						and m.FDEGREE='{$degree_code}'
						and m.FEXAMNO='{$exam_code}' {$notentered}							 
						and m.FCOLLCODE='{$college_code}' and s.FEXAMNO=m.FEXAMNO and m.FDEGREE=s.FDEGREE
						group by s.FCSUBCODE,m.FREGNO order by FCSUBCODE,m.FREGNO"; 	   		  
	$lobj_get_subject_data = $aobj_context->mobj_db->GetAll($get_subject_data);		
	//var_dump($get_subject_data);

/* 	"SELECT 
  FDEGREE,
  FEXAMNO,
  FSUBCODE,
  GROUP_CONCAT(IF(ifnull(FFREEZED,'') = 'T',concat('*',FPERIOD),FPERIOD )) as FREEZED_MONTHS,
  FFREEZED 
FROM
  collatt 
where FDEGREE = 'BA3' 
  and FEXAMNO = 'A' 
  and FCOLLCODE = '1001'  
group by FSUBCODE" */
	$pdf->subject_name= $lobj_get_subject_data[0]['sub_name'];
	$pdf->AddPage();	
	$prev_sub_name= $lobj_get_subject_data[0]['sub_name'];
	$pdf->SetFont('Times','B',10);
	$pdf->MultiCell(180,12,"Subject : ".$prev_sub_name,'0','C');
	$pdf->SetFont('Times','',9);
	writeHeaders($pdf,$loop_arr,$reporttype,$x);
	writeFooter($pdf);
	$adm_ln_counter=0;
	$slno = 1;
	foreach($lobj_get_subject_data as $key => $value)
	{
		if($value['TOTPER'] < $fattper || $reporttype == 'Not enterd list')
		{	  		
			$FREGNO   =	$value['FREGNO'];
			$Name1    =	$value['Name1'];
			$sub_name =	$value['sub_name'];
			if($prev_sub_name!=$sub_name)
			{
				$pdf->subject_name= $sub_name;
				//$pdf->AddPage();
				$pdf->SetFont('Times','B',10);
				//$pdf->Cell(180,4,$reporttype."Less Than ".$fattper,'0',1,'C');
				$pdf->SetX(6);
			
				$pdf->MultiCell(180,12,"Subject : ".$sub_name,'0','C');
				$pdf->SetFont('Times','',9);
				$slno = 1;
				$prev_sub_name=$sub_name;
				writeHeaders($pdf,$loop_arr,$reporttype,$x);
				writeFooter($pdf);
			}
			$pdf->SetX($x);
			$get_x1=$pdf->GetX();
			$get_y1=$pdf->GetY();
			$pdf->SetXY($get_x1+20+10,$get_y1);	
			$pdf->MultiCell(45,6, $Name1,'LBT','L');
			$get_y2=$pdf->GetY();
			$height=$get_y2-$get_y1;	
			$pdf->SetXY($get_x1,$get_y1);	
			$pdf->Cell(10,$height, $slno,'LBT',0,'C');
			$get_x1=$pdf->GetX();
			$pdf->SetXY($get_x1,$get_y1);	
			$pdf->Cell(20,$height, $FREGNO,'LBT',0,'C');
			$pdf->SetXY($get_x1+45+20,$get_y1);	
			$total_cond=0;
			$total_att=0;
			foreach($loop_arr as $lk)
			{
				$cond="F{$lk}C";
				$att="F{$lk}A";
				$cond_v=$value[$cond];			
				$att_v=$value[$att];
				$total_cond+=$cond_v;
				$total_att+=$att_v;
				$cell_val="{$att_v}/{$cond_v}";
				if($cell_val=="/")
				$cell_val="-";
				$pdf->Cell(13,$height,"{$cell_val}",'LBT',0,'C');	
			}
			if($reporttype != 'Not enterd list')
			{

				$perc = round($total_att/$total_cond*100,0);
				$diff = $fattper - $value['TOTPER'];
				$pdf->Cell(13,$height,"{$total_att}/{$total_cond}",'LBT',0,'C');	
				$pdf->Cell(13,$height,"{$value['TOTPER']}%",'LBT',0,'C');
				$pdf->Cell(13,$height,"{$diff}%",'LBRT',1,'C');	

			}else
			{
				$pdf->Cell(1,$height,"",'L',1,'C');
			}	
			
			$get_y1=$pdf->GetY();
			++$slno;
			if($get_y1>=250)
			{
				$pdf->Ln(2);
				$pdf->Cell(0,4,"Note : * Indicates Not Freezed, A : No. of Class Attended , C :No. of Class Conducted ",'0',1,'L');
				$pdf->Cell(0,4,"    ",'0',1,'L');
				$pdf->AddPage();	
				//writeHeaders($pdf,$loop_arr);
				writeFooter($pdf);
				
			}
			$adm_ln_counter++;
		}
	}
	 
	$pdf->Output("attendance_summary_report.pdf","D");
}

function writeHeaders($pdf,$loop_arr,$reporttype,$x)
{
	$pdf->SetFont('Times','B',9);
	
	$pdf->setX($x);	
	
	$pdf->Cell(10,4,"Sl. No.",'LT',0,'C');
	$pdf->Cell(20,4,"Reg. No.",'LT',0,'C');	
	$pdf->Cell(45,4,"Name",'LT',0,'C');
		
	foreach($loop_arr as $lk)
	{
		$pdf->Cell(13,4,$lk,'LT',0,'C');
				
	}
	
	if($reporttype != 'Not enterd list')
	{	
		$pdf->Cell(13,4,"Total",'LT',0,'C');	
		$pdf->Cell(13,4,"Per.",'LT',0,'C');
		$pdf->Cell(13,4,"Diff.",'LRT',1,'C');
	}
	else
	{
		$pdf->Cell(1,4,"",'L',1,'C');
	}	
	$pdf->setX($x);	
	$pdf->Cell(10,4,"",'LB',0,'C');
	$pdf->Cell(20,4,"",'LB',0,'C');	
	$pdf->Cell(45,4,"",'LB',0,'C');
	foreach($loop_arr as $lk)
	{
		$pdf->Cell(13,4,"A / C",'LB',0,'C');
	}
	
	if($reporttype != 'Not enterd list')
	{
		$pdf->Cell(13,4,"",'LB',0,'C');	
		$pdf->Cell(13,4,"",'LR',0,'C');
		$pdf->Cell(13,4,"",'LRB',1,'C');
	}else
	{
		$pdf->Cell(1,4,"",'L',1,'C');
	}	
	$pdf->SetFont('Times','',9);
}

function writeFooter($pdf)
{		
	$get_x1=$pdf->GetX();
	$get_y1=$pdf->GetY();
	$pdf->SetY(-30);
	
	//$pdf->Cell(0,4,"Note : Attended / Conducted",'0',1,'L');
	$new_y=$pdf->GetY();
	//$pdf->Line(10,$new_y, 200,$new_y);
	//$pdf->Line(10,$new_y+.5, 200,$new_y+.5);
	$pdf->Ln(10);
	$pdf->Cell(0,6,"Principal's Signature",'0',0,'R');	
	$pdf->SetXY($get_x1,$get_y1);	
}
?>