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


Current Path : /proc/thread-self/root/var/www/html/univadmin_bkp/univadmin/Reports/
Upload File :
Current File : //proc/thread-self/root/var/www/html/univadmin_bkp/univadmin/Reports/degreeWiseStudentList.php

<?php
$main_src = substr($_SERVER['SCRIPT_FILENAME'], 0, strlen($_SERVER['SCRIPT_FILENAME']) - 7);
$pdf_writer_class = $main_src . "/tcpdf/tcpdf.php";
require_once $pdf_writer_class;

require_once("degreeWiseStudentlist_excel.php");
// ini_set('memory_limit','900M');
// ini_set('max_execution_time',0);

class MYPDF extends TCPDF
{
    public $aobj_context;

    public function setData($aobj_context)
    {
        $this->aobj_context = $aobj_context;
    }
    public function Header()
    {
        // get the current page break margin
        $bMargin = $this->getBreakMargin();
        // get current auto-page-break mode
        $auto_page_break = $this->AutoPageBreak;
        // disable auto-page-break
        $this->SetAutoPageBreak(false, 0);
        $this->SetTitle("Degree Category Genderwise Student Report");

        // set bacground image
        $this->SetFillColor(248, 248, 255);
        // $img_path = $this->aobj_context->main_src . "/img/logo.jpg";
        $img_path = $this->aobj_context->main_src . "/img/".$this->aobj_context->FUNIVCODE."_logo.jpg";

        if (file_exists($img_path)) {
            $this->Image($img_path, 40, 6, 20, 20);
        }

        $this->SetFont('Times', 'B', 13);
        $this->SetY(5);
        $this->Cell(0, 4, $this->aobj_context->FUNIVNAME, 0, 1, 'C');
        //state
        $this->SetFont('Times', '', 11);
        $this->Cell(0, 4, $this->aobj_context->s_state, 0, 1, 'C');

        $this->SetFont('Times', 'BU', 12);
        $this->Ln(1);

        $cur_year = date("Y");
        $this->Cell(0, 5, 'Degree, Category, Genderwise Student Count', '0', 1, 'C');

        $this->Cell(0, 6, " Degree Group Range: " . $this->aobj_context->mobj_data["fdeggrpfrom"] . ' - ' . $this->aobj_context->mobj_data["fdeggrpto"], "0", 1, "C");
        $this->Cell(0, 6, " Degree Range: " . $this->aobj_context->mobj_data["fdegfrom"] . ' - ' . $this->aobj_context->mobj_data["fdegto"], "0", 1, "C");
        $this->Cell(0, 6, " College Range: " . $this->aobj_context->mobj_data["fcollfrom"] . ' - ' . $this->aobj_context->mobj_data["fcollto"], "0", 1, "C");

        $this->SetAutoPageBreak($auto_page_break, $bMargin);
        // set the starting point for the page content
    }

    public function Footer()
    {
        $this->SetY(-15);
        $this->SetFont('helvetica', 'I', 8);
        
        $this->Cell(130, 10, 'IP : ' . $_SERVER["REMOTE_ADDR"], 0, 0, 'L');
        $this->Cell(130, 10, 'Date : ' . date("d-m-Y h:i:s A"), 0, 0, 'C');
        $this->Cell(130, 10, 'Page ' . $this->getPageNumGroupAlias() . '/' . $this->getPageGroupAlias(), 0, 1, 'R');
    
    }
}

class ReprtObject
{

    public $w = [8, 13, 60, 12, 36];

    public $cat = ['CAT-I', 'GM', 'IIA', 'IIB', 'IIIA', 'IIIB', 'SC', 'ST'];

    public function DefaultConstructor($aobj_context)
    {
        $this->aobj_context = $aobj_context;
        $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);

        $this->ip = $_SERVER["REMOTE_ADDR"];
        $get_date = "select DATE_FORMAT(now(), '%d/%m/%Y') as now_date";
        $obj = $this->aobj_context->mobj_db->GetRow($get_date);
        $this->reportType = $aobj_context->mobj_data["rtype"];

        $get_coll_name = "select FUNIVNAME as 'FUNIVNAME',FUNIVCODE,
		FUNIVADD1 as 'state', pdf_logo_path,
		ifnull(FEXAMAPPREQ,'F') as FEXAMAPPREQ From control";
        $lobj_get_coll_name = $this->aobj_context->pobj_db->GetRow($get_coll_name);
// var_dump($get_coll_name);
        $aobj_context->FUNIVNAME = $lobj_get_coll_name['FUNIVNAME'];
        $aobj_context->s_state = $lobj_get_coll_name['state'];
        $aobj_context->pdf_logo_path = $lobj_get_coll_name['pdf_logo_path'];
        $aobj_context->FUNIVCODE = $lobj_get_coll_name['FUNIVCODE'];

        $this->current_date = $obj['now_date'];

        $this->pdf = new MYPDF('L', PDF_UNIT, 'A3');
        $this->pdf->setData($aobj_context);
    }

    public function Header($pdf)
    {
        $pdf->SetFont('Times', 'B', 10);
        $pdf->Cell($this->w[0], 6, "Sl.", "LRT", 0, "C");
        $pdf->Cell($this->w[1], 6, "Degree", "LRT", 0, "C");
        $pdf->Cell($this->w[2], 6, "Degree Name", "LRT", 0, "C");

        foreach($this->cat as $v)
        {
            $pdf->Cell($this->w[4], 6, $v, "1", 0, "C");    
        }
        $pdf->Cell($this->w[4], 6, "Total", "1", 1, "C");
        
        $pdf->Cell($this->w[0], 6, "No.", "LRB", 0, "C");
        $pdf->Cell($this->w[1], 6, "Code", "LRB", 0, "C"); //w h txt brd pos align
        $pdf->Cell($this->w[2], 6, "", "LBR", 0, "C");
        foreach($this->cat as $v)
        {
            $pdf->Cell($this->w[3], 6, 'Male', "1", 0, "C");    
            $pdf->Cell($this->w[3], 6, 'Female', "1", 0, "C");    
            $pdf->Cell($this->w[3], 6, 'Total', "1", 0, "C");    
        }
        $pdf->Cell($this->w[3], 6, 'Male', "1", 0, "C");    
        $pdf->Cell($this->w[3], 6, 'Female', "1", 0, "C");    
        $pdf->Cell($this->w[3], 6, 'Total', "1", 1, "C");
        // $pdf->Ln();
        $pdf->SetFont('Times', '', 10);
    }

    public function Report($data)
    {
        $pdf = $this->pdf;

        $pdf->SetMargins(10, 43);
        $pdf->startPageGroup();
        $pdf->AddPage("L");

        $pdf->SetFont('Times', '', 10);

        // $oldCode = "";
        // $newCode = "";
        $sl_no = 1;
        $this->Header($pdf);
        $w = $this->w;
        $sum = array();
        foreach ($data as $key => $value) {
            
            if ($pdf->getY() > 260) {
                $pdf->AddPage("L");
                $this->Header($pdf);
            }
            $x = $pdf->GetX();
            $y = $pdf->GetY();
            $pdf->SetX($x + $w[0]+$w[1]);
            $pdf->MultiCell($w[2], 6, $value['fdescpn'], 1, "L");
            $y1 = $pdf->GetY();
            $h = $y1 - $y;
            $pdf->SetXY($x, $y);
            $pdf->Cell($w[0], $h, $sl_no, "1", 0, "C");
            $pdf->cell($w[1], $h, $value['fdegree'], "1", 0, "C");
            $pdf->SetXY($x + $w[0]+$w[1]+$w[2], $y);
            $mc = 0;
            $fc = 0;
            $tc = 0;
            foreach($this->cat as $v)
            {
                $pdf->Cell($this->w[3], $h, iFormat($value['M'.$v]), "1", 0, "C");    
                $pdf->Cell($this->w[3], $h, iFormat($value['F'.$v]), "1", 0, "C");    
                $pdf->Cell($this->w[3], $h, iFormat($value['F'.$v]+ $value['M'.$v]), "1", 0, "C");
                $mc += $value['M'.$v];
                $fc += $value['F'.$v];
                $tc += $value['F'.$v] + $value['M'.$v];

                $sum['M'.$v] += $value['M'.$v];
                $sum['F'.$v] += $value['F'.$v];
                $sum['T'.$v] += $value['F'.$v] + $value['M'.$v];
            }
            $pdf->SetFont('Times', 'B', 10);
            $pdf->Cell($this->w[3], $h, iFormat($mc), "1", 0, "C");    
            $pdf->Cell($this->w[3], $h, iFormat($fc), "1", 0, "C");    
            $pdf->Cell($this->w[3], $h, iFormat($tc), "1", 1, "C");    
            $pdf->SetFont('Times', '', 10);

            $sl_no++;
        }
        $pdf->SetFont('Times', 'B', 10);
        $h = 8;
        $pdf->cell($w[0]+$w[1]+$w[2], $h, "Total", "1", 0, "C");

        $mc = 0;
        $fc = 0;
        $tc = 0;
        // var_dump($sum);
        
        foreach($this->cat as $v)
        {
            $pdf->Cell($this->w[3], $h, iFormat($sum['M'.$v]), "1", 0, "C");    
            $pdf->Cell($this->w[3], $h, iFormat($sum['F'.$v]), "1", 0, "C");    
            $pdf->Cell($this->w[3], $h, iFormat($sum['F'.$v]+ $sum['M'.$v]), "1", 0, "C");
            $mc += $sum['M'.$v];
            $fc += $sum['F'.$v];
            $tc += $sum['F'.$v] + $sum['M'.$v];
        }

        $pdf->Cell($this->w[3], $h, iFormat($mc), "1", 0, "C");    
        $pdf->Cell($this->w[3], $h, iFormat($fc), "1", 0, "C");    
        $pdf->Cell($this->w[3], $h, iFormat($tc), "1", 1, "C");    
        $pdf->SetFont('Times', '', 10);


    }

    public function SendOutput()
    {
        // ob_end_clean();
        $this->pdf->Output("DegreeCategoryGenderWiseStudentCount" . $this->reportType . ".pdf", "I");
    }
}

function degreeWiseStudentCount($aobj_context)
{
    $univcode = $aobj_context->mobj_data["univcode"];  

    $deggrp = $aobj_context->mobj_data["deggrp"];
    $fdeggrpfrom = $aobj_context->mobj_data["fdeggrpfrom"];
    $fdeggrpto = $aobj_context->mobj_data["fdeggrpto"];
    $fdegfrom = $aobj_context->mobj_data["fdegfrom"];
    $fdegto = $aobj_context->mobj_data["fdegto"];
    $fcollfrom = $aobj_context->mobj_data["fcollfrom"];
    $fcollto = $aobj_context->mobj_data["fcollto"];
    $format = $aobj_context->mobj_data["format"];

    $query = "select s.fdegree,d.fdescpn,
    sum(if(s.fcaste = 'CAT-I' and s.fgender = 'M',1,0)) as `MCAT-I`,
    sum(if(s.fcaste = 'GM' and s.fgender = 'M',1,0)) as MGM,
    sum(if(s.fcaste = 'IIA' and s.fgender = 'M',1,0)) as MIIA,
    sum(if(s.fcaste = 'IIB' and s.fgender = 'M',1,0)) as MIIB,
    sum(if(s.fcaste = 'IIIA' and s.fgender = 'M',1,0)) as MIIIA,
    sum(if(s.fcaste = 'IIIB' and s.fgender = 'M',1,0)) as MIIIB,
    sum(if(s.fcaste = 'SC' and s.fgender = 'M',1,0)) as MSC,
    sum(if(s.fcaste = 'ST' and s.fgender = 'M',1,0)) as MST,
    sum(if(s.fcaste = 'CAT-I' and s.fgender = 'F',1,0)) as `FCAT-I`,
    sum(if(s.fcaste = 'GM' and s.fgender = 'F',1,0)) as FGM,
    sum(if(s.fcaste = 'IIA' and s.fgender = 'F',1,0)) as FIIA,
    sum(if(s.fcaste = 'IIB' and s.fgender = 'F',1,0)) as FIIB,
    sum(if(s.fcaste = 'IIIA' and s.fgender = 'F',1,0)) as FIIIA,
    sum(if(s.fcaste = 'IIIB' and s.fgender = 'F',1,0)) as FIIIB,
    sum(if(s.fcaste = 'SC' and s.fgender = 'F',1,0)) as FSC,
    sum(if(s.fcaste = 'ST' and s.fgender = 'F',1,0)) as FST
    from student s inner join degree d on d.fdegree = s.fdegree and d.fexamno = 'a'
    where d.fdeggrp IN ('{$fdeggrpfrom}','{$fdeggrpto}') AND
    d.fdegree BETWEEN '{$fdegfrom}' AND '{$fdegto}' AND
    s.fcollcode BETWEEN '{$fcollfrom}' AND '{$fcollto}' AND
    ifnull(fregno,'')<>''
    and fcaste in (select fcategory from category)
    and ifnull(fgender,'') <>''
    group by s.fdegree
    order by s.fdegree";
    // var_dump($query);
    // die();
    $result = $aobj_context->pobj_db->GetAll($query);

    if($format== 'PDF')
    {

    $class_obj = new ReprtObject();
    $class_obj->univcode = $univcode;
    $class_obj->DefaultConstructor($aobj_context);

    // If No data found Generate Blank Report
    if (count($result) > 0) {
        $class_obj->Report($result);
    }

    $class_obj->SendOutput();
    }
    else {
        reportDegreeWiseStudentCount($result, $aobj_context);//file : degreeWiseStudentList_excel.php
    }

}


function iFormat($num)
{
    $explrestunits = "";
    if (strlen($num) > 3) {
        $lastthree = substr($num, strlen($num) - 3, strlen($num));
        $restunits = substr($num, 0, strlen($num) - 3); // extracts the last three digits
        $restunits = (strlen($restunits) % 2 == 1) ? "0" . $restunits : $restunits; // explodes the remaining digits in 2's formats, adds a zero in the beginning to maintain the 2's grouping.
        $expunit = str_split($restunits, 2);
        for ($i = 0; $i < sizeof($expunit); $i++) {
            // creates each of the 2's group and adds a comma to the end
            if ($i == 0) {
                $explrestunits .= (int)$expunit[$i] . ","; // if is first value , convert into integer
            } else {
                $explrestunits .= $expunit[$i] . ",";
            }
        }
        $thecash = $explrestunits . $lastthree;
    } else {
        $thecash = $num;
    }
    return $thecash; // writes the final format where $currency is the currency symbol.
}