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


Current Path : /var/www/html/admission/src/
Upload File :
Current File : /var/www/html/admission/src/examAttendance.php

<?php
$main_src = substr($_SERVER['SCRIPT_FILENAME'], 0, strlen($_SERVER['SCRIPT_FILENAME']) - 7);
//$pdf_writer_class =$main_src."/tarka_pdf/fpdf.php";
$pdf_writer_class = $main_src . "/tcpdf/tcpdf.php";
require_once $pdf_writer_class;
// ini_set('memory_limit','900M');
// ini_set('max_execution_time',0);

class MYPDF extends TCPDF
{
    public $aobj_context;

    public function setData($aobj_context, $sessionfull)
    {
        $this->aobj_context = $aobj_context;
        $this->doe = $aobj_context->mobj_data["fdate"];
        $this->sessionfull = $sessionfull;
        $this->reportType = $aobj_context->mobj_data["rtype"];
        $this->qprngfrom = $aobj_context->mobj_data["qpfrm"];
        $this->qprngto = $aobj_context->mobj_data["qpto"];
        $fdeggrp = $aobj_context->mobj_data["dgp"];
    }
    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);
        // set bacground image
        // $Degree = $aobj_context->mobj_data["deggrp"];

        // $this->SetMargins(6,30,5,true);
        $this->SetFillColor(248, 248, 255);
        $img_path = $this->aobj_context->main_src . "/img/logo.jpg";

        if (file_exists($img_path)) {
            $this->Image($img_path, 6, 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, ' Exam Attendance List - ' . $this->reportType, '0', 1, 'C');
        $this->SetFont('Times', '', 12);

        $this->Cell(0, 6, " Date Of Exam : " . $this->doe, "0", 1, "C");

        $this->Cell(0, 6, "Exam Session : " . $this->sessionfull, "0", 1, "C");

        $this->Cell(0, 6, " QPcode Range : " . $this->qprngfrom . " - " . $this->qprngto, "0", 0, "C");

        // restore auto-page-break status
        $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(90, 10, 'IP : ' . $_SERVER["REMOTE_ADDR"], 0, 0, 'L');
        $this->Cell(100, 10, 'Date : ' . date("d-m-Y "), 0, 0, 'C');

        $this->Cell(90, 10, 'Page ' . $this->getPageNumGroupAlias() . '/' . $this->getPageGroupAlias(), 0, 1, 'R');
    }
}

class ExamAttendance
{

    public function DefaultConstructor($aobj_context, $sessionfull)
    {
        $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);
        $db = $this->db;
        $this->reportType = $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');
        $this->pdf->setData($aobj_context, $sessionfull);
    }

    public function cwtableHeader($pdf)
    {

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

        $pdf->Cell(8, 6, "Sl.", "LRT", 0, "C");
        $pdf->Cell(11, 6, "Center", "LRT", 0, "C");
        $pdf->Cell(79, 6, "Center", "LRT", 0, "C");
        $pdf->Cell(31, 6, "Town", "LRT", 0, "C");
        $pdf->Cell(13, 6, "QP", "LRT", 0, "C");
        $pdf->Cell(79, 6, "Subject", "LRT", 0, "C");
        $pdf->Cell(12, 6, "Total", "LRT", 0, "C");
        $pdf->Cell(12, 6, "Absent", "LRT", 0, "C");
        $pdf->Cell(15, 6, "Malpract.", "LRT", 0, "C");
        $pdf->Cell(12, 6, "Present", "LRT", 1, "C");

        $pdf->Cell(8, 6, "No", "LRB", 0, "C");
        $pdf->Cell(11, 6, "Code", "LRB", 0, "C"); //w h txt brd pos align
        $pdf->Cell(79, 6, "Name", "LBR", 0, "C");
        $pdf->Cell(31, 6, "", "LBR", 0, "C");
        $pdf->Cell(13, 6, "Code", "LBR", 0, "C");
        $pdf->Cell(79, 6, "", "LBR", 0, "L");
        $pdf->Cell(12, 6, "Count", "LBR", 0, "C");
        $pdf->Cell(12, 6, "Count", "LBR", 0, "C");
        $pdf->Cell(15, 6, "Count", "LBR", 0, "C");
        $pdf->Cell(12, 6, "Count", "LBR", 1, "C");
        $pdf->SetFont('Times', '', 10);
    }
    public function qwtableHeader($pdf)
    {
        $pdf->Cell(8, 6, "Sl.", "LRT", 0, "C");
        $pdf->Cell(13, 6, "QP", "LRT", 0, "C");
        $pdf->Cell(79, 6, "Subject", "LRT", 0, "C");

        $pdf->Cell(11, 6, "Center", "LRT", 0, "C");
        $pdf->Cell(79, 6, "Center", "LRT", 0, "C");
        $pdf->Cell(31, 6, "Town", "LRT", 0, "C");

        $pdf->Cell(12, 6, "Total", "LRT", 0, "C");
        $pdf->Cell(12, 6, "Absent", "LRT", 0, "C");
        $pdf->Cell(15, 6, "Malpract.", "LRT", 0, "C");
        $pdf->Cell(12, 6, "Present", "LRT", 1, "C");

        $pdf->Cell(8, 6, "No", "LRB", 0, "C");
        $pdf->Cell(13, 6, "Code", "LBR", 0, "C");
        $pdf->Cell(79, 6, "", "LBR", 0, "L");

        $pdf->Cell(11, 6, "Code", "LRB", 0, "C"); //w h txt brd pos align
        $pdf->Cell(79, 6, "Name", "LBR", 0, "C");
        $pdf->Cell(31, 6, "", "LBR", 0, "C");

        $pdf->Cell(12, 6, "Count", "LBR", 0, "C");
        $pdf->Cell(12, 6, "Count", "LBR", 0, "C");
        $pdf->Cell(15, 6, "Count", "LBR", 0, "C");
        $pdf->Cell(12, 6, "Count", "LBR", 1, "C");
        $pdf->SetFont('Times', '', 10);
    }

    public function cwwriteReport($exattendancelist)
    {

        $pdf = $this->pdf;

        $pdf->SetMargins(6, 42);
        $pdf->startPageGroup();
        $pdf->AddPage("L");

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

        $this->tableHeader($pdf);
        $oldCode = "";
        $newCode = "";
        foreach ($exattendancelist as $key => $value) {

            // $sl_no++;
            $landline = 0;
            $colname1 = strtolower(substr($value['fcollname'], 0, 42));
            $colname2 = strtolower(substr($value['fcollname'], 42));

            $town1 = substr($value['ftown'], 0, 17);
            $town2 = substr($value['ftown'], 17);

            $sub1 = substr($value['fsubname'], 0, 50);
            $sub2 = substr($value['fsubname'], 50);

            $newCode = $value['fcntrcode'];

            if ($newCode != $oldCode) {
                $sl_no++;
                $pdf->Cell(8, 6, $sl_no, "LRT", 0);
                $pdf->cell(11, 6, $value['fcntrcode'], "LRT", 0, "C");
                $pdf->cell(79, 6, ucwords($colname1), "LRT", 0, "L");
                $pdf->cell(31, 6, $town1, "LRT", 0, "L");

            } else {
                $pdf->Cell(8, 6, "", "LR", 0);
                $pdf->cell(11, 6, "", "LR", 0, "C");
                $pdf->cell(79, 6, "", "LR", 0, "L");
                $pdf->cell(31, 6, "", "LR", 0, "L");
            }

            if ($colname2 || $town2 || $sub2) {

                $pdf->cell(13, 6, $value['fqpcode'], "LRT", 0, "L");
                $pdf->cell(79, 6, $sub1, "LRT", 0, "L");
                $pdf->cell(12, 6, $value['tcount'], "LRT", 0, "R");
                $pdf->cell(12, 6, $value['abcount'], "LRT", 0, "R");
                $pdf->cell(15, 6, $value['mpcount'], "LRT", 0, "R");
                $pdf->cell(12, 6, $value['prcount'], "LRT", 1, "R");
                if ($pdf->getY() > 182) {
                    $this->tableHeader($pdf);
                }
                if ($colname2) {

                    if ($newCode != $oldCode) {
                        $pdf->Cell(8, 6, "", "LR", 0);
                        $pdf->cell(11, 6, "", "LR", 0, "C");
                        $pdf->cell(79, 6, $colname2, "LR", 0, "L");
                        $pdf->cell(31, 6, "", "LR", 0, "L");
                    } else {
                        $pdf->Cell(8, 6, "", "LR", 0);
                        $pdf->cell(11, 6, "", "LR", 0, "C");
                        $pdf->cell(79, 6, "", "LR", 0, "L");
                        $pdf->cell(31, 6, "", "LR", 0, "C");
                    }
                    $pdf->cell(13, 6, $value['fqpcode'], "LRT", 0, "L");
                    $pdf->cell(79, 6, $sub1, "LRT", 0, "L");
                    $pdf->cell(12, 6, $value['tcount'], "LRT", 0, "R");
                    $pdf->cell(12, 6, $value['abcount'], "LRT", 0, "R");
                    $pdf->cell(15, 6, $value['mpcount'], "LRT", 0, "R");
                    $pdf->cell(12, 6, $value['prcount'], "LRT", 1, "R");
                } else if ($town2) {

                    if ($newCode != $oldCode) {
                        $pdf->Cell(8, 6, "", "LR", 0);
                        $pdf->cell(11, 6, "", "LR", 0, "C");
                        $pdf->cell(79, 6, "", "LR", 0, "L");
                        $pdf->cell(31, 6, $town2, "LR", 0, "L");
                    } else {
                        $pdf->Cell(8, 6, "", "LR", 0);
                        $pdf->cell(11, 6, "", "LR", 0, "C");
                        $pdf->cell(79, 6, "", "LR", 0, "L");
                        $pdf->cell(31, 6, "", "LR", 0, "C");
                    }

                    $pdf->cell(13, 6, $value['fqpcode'], "LRT", 0, "L");
                    $pdf->cell(79, 6, $sub1, "LRT", 0, "L");
                    $pdf->cell(12, 6, $value['tcount'], "LRT", 0, "R");
                    $pdf->cell(12, 6, $value['abcount'], "LRT", 0, "R");
                    $pdf->cell(15, 6, $value['mpcount'], "LRT", 0, "R");
                    $pdf->cell(12, 6, $value['prcount'], "LRT", 1, "R");
                } else if ($sub2) {
                    if ($newCode != $oldCode) {
                        $pdf->Cell(8, 6, "", "LR", 0);
                        $pdf->cell(11, 6, "", "LR", 0, "C");
                        $pdf->cell(79, 6, "", "LR", 0, "L");
                        $pdf->cell(31, 6, "", "LR", 0, "L");
                    } else {

                        $pdf->Cell(8, 6, "", "LR", 0);
                        $pdf->cell(11, 6, "", "LR", 0, "C");
                        $pdf->cell(79, 6, "", "LR", 0, "L");
                        $pdf->cell(31, 6, "", "LR", 0, "L");
                        $pdf->cell(13, 6, "", "LR", 0, "C");
                        $pdf->cell(79, 6, $sub2, "LBR", 0, "L");
                        $pdf->cell(12, 6, "", "LBR", 0, "R");
                        $pdf->cell(12, 6, "", "LBR", 0, "R");
                        $pdf->cell(15, 6, "", "LBR", 0, "R");
                        $pdf->cell(12, 6, "", "LBR", 1, "R");
                    }
                }
                if ($pdf->getY() > 181) {
                    // $pdf->cell(268,"","","T",1);
                    $this->tableHeader($pdf);
                }
            } else {
                $pdf->cell(13, 6, $value['fqpcode'], "1", 0, "L");
                $pdf->cell(79, 6, $sub1, "1", 0, "L");
                $pdf->cell(12, 6, $value['tcount'], "1", 0, "R");
                $pdf->cell(12, 6, $value['abcount'], "1", 0, "R");
                $pdf->cell(15, 6, $value['mpcount'], "1", 0, "R");
                $pdf->cell(12, 6, $value['prcount'], "1", 1, "R");
                if ($pdf->getY() > 182) {
                    $this->tableHeader($pdf);
                }
            }
            $oldCode = $newCode;

        }
        $pdf->cell(272, "", "", "T", 1);
    }

    public function qwwriteReport($exattendancelist)
    {

        $pdf = $this->pdf;

        $pdf->SetMargins(6, 42);
        $pdf->startPageGroup();
        $pdf->AddPage("L");

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

        $this->tableHeader($pdf);
        $oldCode = "";
        $newCode = "";
        foreach ($exattendancelist as $key => $value) {

            // $sl_no++;
            $landline = 0;
            $colname1 = strtolower(substr($value['fcollname'], 0, 42));
            $colname2 = strtolower(substr($value['fcollname'], 42));

            $town1 = substr($value['ftown'], 0, 17);
            $town2 = substr($value['ftown'], 17);

            $sub1 = substr($value['fsubname'], 0, 50);
            $sub2 = substr($value['fsubname'], 50);

            if ($this->reportType == 'Center Wise') {
                $newCode = $value['fcntrcode'];

                if ($newCode != $oldCode) {
                    $sl_no++;
                    $pdf->Cell(8, 6, $sl_no, "LRT", 0);
                    $pdf->cell(11, 6, $value['fcntrcode'], "LRT", 0, "C");
                    $pdf->cell(79, 6, ucwords($colname1), "LRT", 0, "L");
                    $pdf->cell(31, 6, $town1, "LRT", 0, "L");

                } else {
                    $pdf->Cell(8, 6, "", "LR", 0);
                    $pdf->cell(11, 6, "", "LR", 0, "C");
                    $pdf->cell(79, 6, "", "LR", 0, "L");
                    $pdf->cell(31, 6, "", "LR", 0, "L");
                }

                if ($colname2 || $town2 || $sub2) {

                    $pdf->cell(13, 6, $value['fqpcode'], "LRT", 0, "L");
                    $pdf->cell(79, 6, $sub1, "LRT", 0, "L");
                    $pdf->cell(12, 6, $value['tcount'], "LRT", 0, "R");
                    $pdf->cell(12, 6, $value['abcount'], "LRT", 0, "R");
                    $pdf->cell(15, 6, $value['mpcount'], "LRT", 0, "R");
                    $pdf->cell(12, 6, $value['prcount'], "LRT", 1, "R");
                    if ($pdf->getY() > 182) {
                        $this->tableHeader($pdf);
                    }
                    if ($colname2) {

                        if ($newCode != $oldCode) {
                            $pdf->Cell(8, 6, "", "LR", 0);
                            $pdf->cell(11, 6, "", "LR", 0, "C");
                            $pdf->cell(79, 6, $colname2, "LR", 0, "L");
                            $pdf->cell(31, 6, "", "LR", 0, "L");
                        } else {
                            $pdf->Cell(8, 6, "", "LR", 0);
                            $pdf->cell(11, 6, "", "LR", 0, "C");
                            $pdf->cell(79, 6, "", "LR", 0, "L");
                            $pdf->cell(31, 6, "", "LR", 0, "C");
                        }
                        $pdf->cell(13, 6, $value['fqpcode'], "LRT", 0, "L");
                        $pdf->cell(79, 6, $sub1, "LRT", 0, "L");
                        $pdf->cell(12, 6, $value['tcount'], "LRT", 0, "R");
                        $pdf->cell(12, 6, $value['abcount'], "LRT", 0, "R");
                        $pdf->cell(15, 6, $value['mpcount'], "LRT", 0, "R");
                        $pdf->cell(12, 6, $value['prcount'], "LRT", 1, "R");
                    } else if ($town2) {

                        if ($newCode != $oldCode) {
                            $pdf->Cell(8, 6, "", "LR", 0);
                            $pdf->cell(11, 6, "", "LR", 0, "C");
                            $pdf->cell(79, 6, "", "LR", 0, "L");
                            $pdf->cell(31, 6, $town2, "LR", 0, "L");
                        } else {
                            $pdf->Cell(8, 6, "", "LR", 0);
                            $pdf->cell(11, 6, "", "LR", 0, "C");
                            $pdf->cell(79, 6, "", "LR", 0, "L");
                            $pdf->cell(31, 6, "", "LR", 0, "C");
                        }

                        $pdf->cell(13, 6, $value['fqpcode'], "LRT", 0, "L");
                        $pdf->cell(79, 6, $sub1, "LRT", 0, "L");
                        $pdf->cell(12, 6, $value['tcount'], "LRT", 0, "R");
                        $pdf->cell(12, 6, $value['abcount'], "LRT", 0, "R");
                        $pdf->cell(15, 6, $value['mpcount'], "LRT", 0, "R");
                        $pdf->cell(12, 6, $value['prcount'], "LRT", 1, "R");
                    } else if ($sub2) {
                        if ($newCode != $oldCode) {
                            $pdf->Cell(8, 6, "", "LR", 0);
                            $pdf->cell(11, 6, "", "LR", 0, "C");
                            $pdf->cell(79, 6, "", "LR", 0, "L");
                            $pdf->cell(31, 6, "", "LR", 0, "L");
                        } else {

                            $pdf->Cell(8, 6, "", "LR", 0);
                            $pdf->cell(11, 6, "", "LR", 0, "C");
                            $pdf->cell(79, 6, "", "LR", 0, "L");
                            $pdf->cell(31, 6, "", "LR", 0, "L");
                            $pdf->cell(13, 6, "", "LR", 0, "C");
                            $pdf->cell(79, 6, $sub2, "LBR", 0, "L");
                            $pdf->cell(12, 6, "", "LBR", 0, "R");
                            $pdf->cell(12, 6, "", "LBR", 0, "R");
                            $pdf->cell(15, 6, "", "LBR", 0, "R");
                            $pdf->cell(12, 6, "", "LBR", 1, "R");
                        }
                    }
                    if ($pdf->getY() > 181) {
                        // $pdf->cell(268,"","","T",1);
                        $this->tableHeader($pdf);
                    }
                } else {
                    $pdf->cell(13, 6, $value['fqpcode'], "1", 0, "L");
                    $pdf->cell(79, 6, $sub1, "1", 0, "L");
                    $pdf->cell(12, 6, $value['tcount'], "1", 0, "R");
                    $pdf->cell(12, 6, $value['abcount'], "1", 0, "R");
                    $pdf->cell(15, 6, $value['mpcount'], "1", 0, "R");
                    $pdf->cell(12, 6, $value['prcount'], "1", 1, "R");
                    if ($pdf->getY() > 182) {
                        $this->tableHeader($pdf);
                    }
                }
                $oldCode = $newCode;

            }

            if ($this->reportType == 'QPCode wise') {

                $sl_no++;
                $pdf->Cell(8, 6, $sl_no, "LRT", 0);
                $pdf->cell(13, 6, $value['fqpcode'], "LRT", 0, "C");
                $pdf->cell(79, 6, $sub1, "LRT", 0, "L");
                $pdf->cell(11, 6, $value['fcntrcode'], "LRT", 0, "C");
                $pdf->cell(79, 6, ucwords($colname1), "LRT", 0, "L");
                $pdf->cell(31, 6, $town1, "LRT", 0, "L");
                $pdf->cell(12, 6, $value['tcount'], "LRT", 0, "R");
                $pdf->cell(12, 6, $value['abcount'], "LRT", 0, "R");
                $pdf->cell(15, 6, $value['mpcount'], "LRT", 0, "R");
                $pdf->cell(12, 6, $value['prcount'], "LRT", 1, "R");
                if ($pdf->getY() > 182) {
                    $this->tableHeader($pdf);
                }

                if ($colname2 || $town2 || $sub2) {

                    if ($sub2) {

                        $pdf->Cell(8, 6, "", "LBR", 0);
                        $pdf->cell(13, 6, "", "LBR", 0, "C");
                        $pdf->cell(79, 6, $sub2, "LBR", 0, "L");
                        $pdf->cell(11, 6, "", "LRT", 0, "C");
                        $pdf->cell(79, 6, "", "LRT", 0, "L");
                        $pdf->cell(31, 6, "", "LRT", 0, "L");
                        $pdf->cell(12, 6, "", "LRT", 0, "R");
                        $pdf->cell(12, 6, "", "LRT", 0, "R");
                        $pdf->cell(15, 6, "", "LRT", 0, "R");
                        $pdf->cell(12, 6, "", "LRT", 1, "R");
                    }
                    if ($colname2) {

                        $pdf->Cell(8, 6, "", "LBR", 0);

                        $pdf->cell(13, 6, "", "LBR", 0, "C");
                        $pdf->cell(79, 6, "", "LBR", 0, "L");
                        $pdf->cell(11, 6, "", "LBR", 0, "C");
                        $pdf->cell(79, 6, $colname2, "LBR", 0, "L");
                        $pdf->cell(31, 6, $town2, "LBR", 0, "L");
                        $pdf->cell(12, 6, "", "LBR", 0, "R");
                        $pdf->cell(12, 6, "", "LBR", 0, "R");
                        $pdf->cell(15, 6, "", "LBR", 0, "R");
                        $pdf->cell(12, 6, "", "LBR", 1, "R");
                    }

                    if ($pdf->getY() > 182) {
                        // $pdf->cell(268,"","","T",1);
                        $this->tableHeader($pdf);
                    }
                }
            }
        }
        $pdf->cell(272, "", "", "T", 1);
    }

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

function getExamAttendance($aobj_context)
{
    $univcode = $aobj_context->mobj_data["univcode"];
    $fdatefrom = $aobj_context->mobj_data["fdatefrom"];
    $fdateto = $aobj_context->mobj_data["fdateto"];
    $sessionType = $aobj_context->mobj_data["stype"];
    $reportType = $aobj_context->mobj_data["rtype"];
    $qprngfrom = $aobj_context->mobj_data["qpfrm"];
    $qprngto = $aobj_context->mobj_data["qpto"];
    $fdeggrp = $aobj_context->mobj_data["dgp"];

    $session = "";
    $sessionfull = "";
    if ($sessionType == 'm') {
        $session = 'AM';
        $sessionfull = 'Morning';
    } else {
        $session = 'PM';
        $sessionfull = 'Afternoon';
    }
    $session_cond = "";
    if ($sessionType != 'b') {
        $session_cond = "AND s.fsession LIKE '{$sessionType}%'";
    }

    $order = "s.fcntrcode, s.fqpcode";
    if ($reportType == 'Center Wise') {
        $order = "s.fcntrcode, s.fqpcode";
    } else if ($reportType == 'QPCode wise') {
        $order = "s.fqpcode, s.fcntrcode";
    }

    $datecond1 = "";
    $datecond2 = "";
    if ($fdatefrom != '' && $fdateto != "") {
        $fdatefrom = date("Y-m-d", strtotime(str_replace('/', '-', $fdatefrom)));
        $fdateto = date("Y-m-d", strtotime(str_replace('/', '-', $fdateto)));
        $datecond1 = "AND IFNULL(s.fdoe, '0000-00-00') between  '{$fdatefrom}' and '{$fdateto}'";
        $datecond2 = "AND IFNULL(a.fdoe, '0000-00-00') between  '{$fdatefrom}' and '{$fdateto}'";
    }

    $query = "SELECT s.fcntrcode, cl.fcollname, cl.ftown, s.fqpcode, fsubname,s.fdoe,
        pcount AS tcount, IFNULL(abcount,0) AS abcount,
        IFNULL(mpcount,0) AS mpcount, (pcount-IFNULL(abcount,0)-IFNULL(mpcount,0)) AS prcount FROM
        (SELECT a.fcntrcode, a.fqpcode,a.fdoe, a.fsubname, COUNT(a.fregno) AS pcount FROM
        (SELECT cs.fcntrcode, s.fqpcode, s.fsubname,date_format(s.fdoe, '%d/%m/%Y') as fdoe, cd.fregno
        FROM canddet cd INNER JOIN candsum cs ON cd.fregno = cs.fregno
        AND cd.fdegree = cs.fdegree AND cd.fcollcode = cs.fcollcode
        INNER JOIN subject s ON s.fdegree = cd.fdegree AND s.fexamno = cd.fexamno
        AND s.fsubcode = cd.fsubcode AND IFNULL(s.ftheory, '') = 'T' AND IFNULL(s.fintass,'') = 'F'
        WHERE IFNULL(fpresent,'') = 'P' AND IFNULL(fpassmth,'') = ''  and ifnull(s.fdoe,'0000-00-00') <> '0000-00-00'
        {$datecond1} {$session_cond}
        AND s.fqpcode BETWEEN '{$qprngfrom}' AND '{$qprngto}'
        and cd.fdegree in (select distinct fdegree from degree where fdeggrp = '{$fdeggrp}')) a
        GROUP BY a.fcntrcode, a.fqpcode) s INNER JOIN college cl ON s.fcntrcode = cl.fcollcode
        LEFT JOIN
        (SELECT a.fcollcode, a.fqpcode, SUM(IF(fabstype = 'QpA', 1, 0))AS abcount, SUM(IF(fabstype = 'QpM', 1, 0))AS mpcount
        FROM absent a
        WHERE a.fregno <> 'nil' AND a.fregno <> '0'
        {$datecond2}
        AND fsession ='$session' AND fcollcode <> ''
        AND a.fqpcode BETWEEN '{$qprngfrom}' AND '{$qprngto}'
        GROUP BY fcollcode, fqpcode) t
        ON s.fcntrcode = t.fcollcode AND s.fqpcode = t.fqpcode
        ORDER BY $order";

    $result = $aobj_context->pobj_db->GetAll($query);
    // var_dump($query);  var_dump($result) ;return;

    $class_obj = new ExamAttendance();

    $class_obj->univcode = $univcode;
    $class_obj->DefaultConstructor($aobj_context, $qprngfrom, $qprngto, $fdatefrom, $fdateto, $sessionfull, $reportType);

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

    $class_obj->SendOutput();

}