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.12.73.221


Current Path : /var/www/oasis/Report_details_old/
Upload File :
Current File : /var/www/oasis/Report_details_old/report_attendance_sheet.php

<?php

$main_src=substr($_SERVER['SCRIPT_FILENAME'],0,strlen($_SERVER['SCRIPT_FILENAME'])-7);
$pdf_writer_class =$main_src."/tarka_pdf_latest/fpdf.php";	
require_once($pdf_writer_class);
class batch_work_sheet extends FPDF
 {
public $aobj_context;
public $college_name;	
public $town;	
public $address;	
public $Degree_name;	

function Default_construstor($aobj_context)
		{
			 require_once($aobj_context->main_src.'src/format.php');
			$this->aobj_context=$aobj_context;
			$this->collcode=$_SESSION['collcode'];
			include($this->pdf_writer_class);		
			session_start();
			$this->report_id = $aobj_context->mobj_data["report_id"];			
			$this->degree = $aobj_context->mobj_data['degree']; 
			$this->degree_name = $aobj_context->mobj_data['degree_name']; 
			//echo $this->degree_name;die();
			$this->exam = $aobj_context->mobj_data['exam']; 
			$this->subject   = $aobj_context->mobj_data["sub"];  
			$this->sub_name   = $aobj_context->mobj_data["sub_name"];
			$this->from_batch=  $aobj_context->mobj_data["from_batch"] ; 
			$this->to_batch=  $aobj_context->mobj_data["to_batch"] ;
			$this->to_batch=  $aobj_context->mobj_data["to_batch"] ;
			$this->fs_sub_name=  $aobj_context->mobj_data["fs_sub_name"] ;
			$this->freeze_status=" (VERIFICATION PENDING)";				
			$this->pdf=  new FPDF();
			$this->pdf=$this;	
			$this->GetMaxMarksDetails();	
		$getnumword=$aobj_context->main_src."/src/getnumword.php";
		include($getnumword);
		$get_date_time="SELECT DATE_FORMAT(now(),'%d-%b-%Y %H:%m %r') as dt";
		$ob_dt = $this->aobj_context->mobj_db->GetRow($get_date_time); 
		$this->date_timef=$ob_dt[dt];
		}

function Header()
{
		  $page_header_college ="select FUNIVADD1 as address,FUNIVNAME as college_name ,
								pdf_logo_path as pdf_logo_path from control ";
		 //echo $page_header_college;die();
		$lobj_page_header_college = $this->aobj_context->mobj_db->GetRow($page_header_college); 
		$this->coll_name = $lobj_page_header_college['college_name']; 
		$this->address = $lobj_page_header_college['address']; 
		$this->pdf_logo_path = $this->aobj_context->main_src."/".$lobj_page_header_college['pdf_logo_path']; 
		$get_college_name="select concat(FCOLLNAME,', ',FTOWN) as col_name from college where FCOLLCODE='{$this->collcode}'";
			$this->lobj_get_college_name = $this->aobj_context->mobj_db->GetRow($get_college_name);
			$this->col_name=$this->lobj_get_college_name['col_name'];
			
			$get_exam_date="select FEXAMDATE as exam_date,FEXAMNAME 
						from degree where FDEGREE='{$this->degree}' 
						and FEXAMNO='{$this->exam}'";
			$this->lobj_get_exam_date = $this->aobj_context->mobj_db->GetRow($get_exam_date);
			$this->exam_date=$this->lobj_get_exam_date['exam_date'];
			$this->FEXAMNAME=$this->lobj_get_exam_date['FEXAMNAME'];
				
				$this->pdf->SetFont('Times','B',14);	
				$this->pdf->Cell(170,4,$this->coll_name,0,1,'C'); 
				$this->pdf->SetFont('Times','',8);	
				$this->pdf->Cell(170,4,$this->address,0,0,'C'); 
				$this->pdf->SetFont('Times','',10);	
				$this->pdf->Cell(-10,4,"Page {$this->pdf->PageNo()}/{nb}",0,1,'C'); 
				$this->pdf->Ln(2);
				$this->pdf->SetFont('Times','B',10);
				$this->pdf->Cell(170,4,"College : ".$this->collcode." ".$this->col_name,0,1,'C');
				//$this->pdf->Ln(2);
				$this->pdf->SetFont('Times','BU',10);
				$this->pdf->Cell(170,5,'Practical Attendance Sheet',0,1,'C');
				$this->pdf->SetFont('Times','',10);
				$this->pdf->Cell(170,4,"Degree : "." ".$this->degree." - ".$this->degree_name .", Exam : {$this->FEXAMNAME} - ".$this->exam_date,0,1,'C');
				//$this->pdf->Ln(2);
				$this->pdf->Cell(170,4,"Subject : "." ".$this->subject." - ".$this->sub_name."(".$this->fs_sub_name.")",0,1,'C');
				$this->pdf->Ln(2);
				
			if(file_exists($this->pdf_logo_path)) 
			 {
			 $this->pdf->Image($this->pdf_logo_path,5,7,20);	  
			 
			}
			$this->pdf->SetFont('Times','B',12);					
			$this->pdf->Ln(3); 	  
}	
function GetMaxMarksDetails()
{
	$get_pract_max="select FSMAXMARKS from subject where 
				FDEGREE='{$this->degree}'
				and FEXAMNO='{$this->exam}'
				and FCSUBCODE='{$this->subject}' ";
	$lobj_get_pract_max = $this->aobj_context->mobj_db->GetRow($get_pract_max);
	$this->pract_max_marks=$lobj_get_pract_max[FSMAXMARKS];
	$get_vival_sub=" select FVVCODE from  practical_master
					where FDEGREE='{$this->degree}'
				and FEXAMNO='{$this->exam}'
				and FPRCODE='{$this->subject}'";
		$lobj_get_vival_sub = $this->aobj_context->mobj_db->GetRow($get_vival_sub);	
	$viva_sub=	$lobj_get_vival_sub[FVVCODE];
$get_pract_max="select FSMAXMARKS from subject where 
				FDEGREE='{$this->degree}'
				and FEXAMNO='{$this->exam}'
				and FCSUBCODE='{$viva_sub}' ";
	$lobj_get_pract_max = $this->aobj_context->mobj_db->GetRow($get_pract_max);
	$this->viva_max_marks=$lobj_get_pract_max[FSMAXMARKS];	
}

	 
	function GetQuery()
	{		
				$get_practical_records = "select lpad(FBATCH,2,'0') as FBATCH,sub.FCSUBCODE,sub.FSUBNAME,stu.FREGNO, stu.FNAME ,FSUBNAME,FSSUBNAME
					 
						FROM student stu inner join marks_pr mak ON stu.FREGNO=mak.FREGNO 
						and mak.Fdegree='{$this->degree}' and mak.Fexamno='{$this->exam}' and mak.FCOLLCODE='{$this->collcode}'
						inner join subject sub on sub.FCSUBCODE = mak.FSUBCODE 
						and sub.FCSUBCODE='{$this->subject}' 
						and sub.FDEGREE='{$this->degree}' and sub.FEXAMNO='{$this->exam}'					 
						WHERE stu.FREGNO != '' 
						and FBATCH>='{$this->from_batch}' and FBATCH<='{$this->to_batch}'
						group by stu.FREGNO,sub.FCSUBCODE,FBATCH  order by IFNULL(mak.FBATCH, ''),stu.FREGNO";
				 
				$this->lobj_get_practical_records = $this->aobj_context->mobj_db->GetAll($get_practical_records);
				
				 
				$this->header_subject=$FCSUBCODE;
				$this->header_sub_name=$sub_name;
				$this->pdf->SetMargins(15,12);
					$get_viva_details=" select  FVVCODE from  practical_master where FDEGREE='{$this->degree}'
							and FEXAMNO='{$this->exam}' and FPRCODE='{$this->subject}' ";
				$lobj_get_viva_details = $this->aobj_context->mobj_db->GetRow($get_viva_details);
				$FVVCODE=$lobj_get_viva_details[FVVCODE];
				 
				//echo $get_viva_details;die();
			
				//print_r($this->viva_marks_arr);die();
				$sl_no=1;
				$this->batch_details=array();
				$c=0;
				foreach($this->lobj_get_practical_records as $k=>$v)
				{
					$reg_no=$v[FREGNO];
					$FBATCH=$v[FBATCH];
					$name[$v[FREGNO]]=$v[FNAME];
					$this->sub_name=$v[FSUBNAME];
					$this->fs_sub_name=$v[FSSUBNAME];
					$this->batch_details[$FBATCH][details][$c]=$reg_no;
					$this->batch_details[$FBATCH][cnt]+=1;
					$c++;
				}
			 
				foreach($this->batch_details as $k=>$v)
				{
				$this->pdf->SetFont('Times','B',12);	
					$batch_no=$k;
					$get_date_time="select concat(' Date : ',date_format(ifnull(FEXAMDATE,'00/00/0000'),'%d/%m/%Y'),' Time : ',ifnull(FEXAMTIME,'')) as 
								batch_date_time   
								from practical_entry_freeze
								where FCOLLCODE='{$this->collcode}'
								and FDEGREE='{$this->degree}'
								and FEXAM='{$this->exam}'
								and lpad(FBATCH,2,'0')='{$batch_no}'
								and FCSUBCODE='{$this->subject}' ";
					$lobj_get_date_time = $this->aobj_context->mobj_db->GetRow($get_date_time);	
 					$date_time=$lobj_get_date_time[batch_date_time];
					$sl_no=1;
					$batch_cnt=$v[cnt];
					$batch_details=$v[details];
					$this->pdf->AddPage();
					$this->pdf->SetMargins(12,8);
					$this->pdf->Cell(176,5,"Batch :{$batch_no} {$date_time}","",1,'C');
					$this->pdf->Cell(15,5,'',"LRT",0,'C');
					$this->pdf->Cell(30,5,'',"LRT",0,'C');
					$this->pdf->Cell(100,5,'',"LRT",0,'C');
					$this->pdf->Cell(25,5,'',"LRT",0,'C');
					$this->pdf->Cell(25,5,'',"LRT",1,'C');
					/* $this->pdf->Cell(50,5,"({$this->subject}) Practical","LRT",1,'C');
					$this->get_x_pos=$this->pdf->GetX();
					$this->get_y_pos=$this->pdf->GetY();
					if(!empty($FVVCODE))
					{
					$this->pdf->SetXY($this->get_x_pos+115,$this->get_y_pos-5);
					$this->pdf->Cell(50,5,"({$FVVCODE}) Record","LRT",1,'C');
					}
					*/		
					$this->get_x_pos=$this->pdf->GetX();
					$this->get_y_pos=$this->pdf->GetY();
					$this->pdf->Cell(15,5,'Sl. No.',"LRB",0,'C');
					$this->pdf->Cell(30,5,'Reg. No.',"LRB",0,'C');
					$this->pdf->Cell(100,5,'Name.',"LRB",0,'C');
					$this->pdf->Cell(25,5,'Ans. Book No.',"LRB",0,'C'); 
					$this->pdf->Cell(25,5,'Signature.',"LRB",1,'C');
						
			/* 	if(!empty($FVVCODE))
				{
				$this->pdf->SetXY($this->get_x_pos+115,$this->get_y_pos);
					$this->pdf->Cell(80,5," (Max: {$this->viva_max_marks})","LRB",1,'C');
				} */
				foreach($batch_details as $bv)
				{
				
					$nb =0;
					$yH =0;
					$nb=max($nb,NbLines(100,$name[$reg_no],$this->pdf));
					$yH = 6*$nb;
					$this->pdf->SetFont('Times','',12);	
					$reg_no=$bv;
					$this->pdf->Cell(15,$yH,$sl_no,"1",0,'C');
					$this->pdf->Cell(30,$yH,$reg_no,"1",0,'C');
					//$this->pdf->Cell(60,6,$name[$reg_no],"1",0,'L');
					$x=$this->pdf->GetX();
					$y=$this->pdf->GetY();
					//Draw the border
					$this->pdf->Rect($x,$y,100,$yH);
					$this->pdf->MultiCell(100,6,$name[$reg_no],0,'L');
					$this->pdf->SetXY($x+100,$y);
					$this->pdf->Cell(25,$yH,'',"1",0,'C');
					$this->pdf->Cell(25,$yH,'',"1",1,'C');
					/* $this->pdf->Cell(50,6,'',"1",1,'C');
					$y_pos=$this->pdf->GetY();
					if(!empty($FVVCODE))
					{
					$this->pdf->SetXY($this->get_x_pos+115,$y_pos-6);
					$this->pdf->Cell(50,6,'',"1",1,'C');
					} */
					if($this->pdf->GetY()>210)
					{
						$this->WriteFooter();
						$this->pdf->AddPage();
						$this->pdf->SetFont('Times','B',12);	
						$this->pdf->SetMargins(12,12);
						$this->pdf->Cell(176,5,"Batch :{$batch_no} {$date_time}","",1,'C');
						
						$this->pdf->Cell(15,5,'',"LRT",0,'C');
						$this->pdf->Cell(30,5,'',"LRT",0,'C');
						$this->pdf->Cell(80,5,'',"LRT",0,'C');
						$this->pdf->Cell(30,5,'',"LRT",0,'C');
						$this->pdf->Cell(30,5,'',"LRT",1,'C');
						$this->get_x_pos=$this->pdf->GetX();
						$this->get_y_pos=$this->pdf->GetY();
					
						$this->pdf->Cell(15,5,'Sl. No.',"LRB",0,'C');
						$this->pdf->Cell(30,5,'Reg. No.',"LRB",0,'C');
						$this->pdf->Cell(100,5,'Name.',"LRB",0,'C');
						$this->pdf->Cell(25,5,'Ans. Book No.',"LRB",0,'C'); 
						$this->pdf->Cell(25,5,'Signature.',"LRB",1,'C');
					}
					$sl_no++;
				}
				
					$this->WriteFooter(); 
					$this->pdf->Ln(3);	
				}
				
			 
	
			 
			
			
	}
	function WriteFooter()
	{
		$this->pdf->Ln(6);
		$X_pos=$this->pdf->GetX();
		$this->pdf->SetFont('Arial','',8);
		$this->pdf->SetX($X_pos+15);		
		$this->pdf->Ln(3);$this->pdf->SetFont('Arial','',9);
		$this->pdf->Cell(35,6,'',"",0,'C');
		$this->pdf->Cell(50,6,'Examiner - 01',"",0,'C');
		$this->pdf->Cell(100,6,'Examiner - 02',"",1,'C');
		/* $this->pdf->Cell(30,6,'Examiner - 03',"",0,'C');
		$this->pdf->Cell(30,6,'Examiner - 04',"",1,'C'); */
		$this->pdf->Cell(8,6,'',"",0,'C');
		$this->pdf->Cell(25,6,'Name',"",0,'L');
		$this->pdf->Cell(3,6,':',"",1,'C');	
		
		$this->pdf->Cell(8,6,'',"",0,'C');
		$this->pdf->Cell(25,6,'College / Degn',"",0,'L');
		$this->pdf->Cell(3,6,':',"",1,'C');
		
		$this->pdf->Cell(8,6,'',"",0,'C');
		$this->pdf->Cell(25,6,'Signature',"",0,'L');
		$this->pdf->Cell(3,6,':',"",1,'C');
		
		$this->pdf->Cell(8,6,'',"",0,'C');
		$this->pdf->Cell(25,6,'Date & Time',"",0,'L');
		$this->pdf->Cell(3,6,':',"",0,'C');		
		$this->pdf->Cell(50,3,$pdf->date_1,'0',1,'L'); 
		$this->pdf->Ln(9);
		$this->pdf->SetX($X_pos+15);
		
		$this->pdf->Ln(5);
	}
   	function Footer()
	{
			$this->ip=$_SERVER["REMOTE_ADDR"];	
			$this->pdf->SetFont('Arial','',8);  
			$this->pdf->setY(-20);
		 	//$this->pdf->Cell(90,3,'Printed Date & Time: '.$this->date_timef,'0',0,'L');
			$this->pdf->Cell(140,6,'Printed   : IP Address : '.$this->ip." Date ".$this->date_timef,'0',0,'L');

	}	

 

	function SendOutput()
	{
		$this->pdf->Output("batch_work_sheet_{$this->report_id}.pdf","D");
	}
}
		
function GenerateAttendanceSheets($aobj_context)
{
	$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
	$class_obj=new batch_work_sheet(); 
	$class_obj->AliasNbPages();
	$class_obj->Default_construstor($aobj_context); 
	$class_obj->GetQuery();
	$class_obj->SendOutput();
}

function NbLines($w,$txt,$pdf)
{
    //Computes the number of lines a MultiCell of width w will take
    $cw=&$pdf->CurrentFont['cw'];
    if($w==0)
        $w=$pdf->w-$pdf->rMargin-$pdf->x;
    $wmax=($w-2*$pdf->cMargin)*1000/$pdf->FontSize;
    $s=str_replace("\r",'',$txt);
    $nb=strlen($s);
    if($nb>0 and $s[$nb-1]=="\n")
        $nb--;
    $sep=-1;
    $i=0;
    $j=0;
    $l=0;
    $nl=1;
    while($i<$nb){
        $c=$s[$i];
        if($c=="\n"){
            $i++;
            $sep=-1;
            $j=$i;
            $l=0;
            $nl++;
            continue;
        }
        if($c==' ')
            $sep=$i;
        $l+=$cw[$c];
        if($l>$wmax){
            if($sep==-1){
                if($i==$j)
                    $i++;
            } else
                $i=$sep+1;
            $sep=-1;
            $j=$i;
            $l=0;
            $nl++;
        } else
            $i++;
    }
    return $nl;
 }
?>