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


Current Path : /var/www/oasis/Report_details/
Upload File :
Current File : /var/www/oasis/Report_details/generateDaliyReportQpNitteExcel.php

<?php

$main_src = substr($_SERVER['SCRIPT_FILENAME'], 0, strlen($_SERVER['SCRIPT_FILENAME']) - 7);
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('GMT+5:30');
// PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);
if (PHP_SAPI == 'cli')
    die('This example should only be run from a Web Browser');

/** Include PHPExcel */
$pdf_writer_class = $main_src . '/PHPExcel/Classes/PHPExcel.php';
require_once($pdf_writer_class);

function getheaders($objPHPExcel, $fileName)
{
    //To Fit To Page while printing
    $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1);
    $objPHPExcel->getActiveSheet()->getPageSetup()->setFitToWidth(1);
    $objPHPExcel->getActiveSheet()->getPageSetup()->setFitToHeight(0);
    $objPHPExcel->getActiveSheet()->getPageSetup()->setHorizontalCentered(true);
    $objPHPExcel->getActiveSheet()->getPageSetup()->setVerticalCentered(false);

    // Redirect output to a client’s web browser (Excel5)
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="' . $fileName . '.xls"');
    header('Cache-Control: max-age=0');
    // If you're serving to IE 9, then the following may be needed
    header('Cache-Control: max-age=1');

    // If you're serving to IE over SSL, then the following may be needed
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
    header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
    header('Pragma: public'); // HTTP/1.0
    ob_clean();
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
    
}


function generateDaliyReportQpNitteExcel($aobj_context)
{
    session_start();
    $ip=$_SERVER["REMOTE_ADDR"];
    $collcode=$_SESSION['collcode'];
    $college_code=$_SESSION['collcode'];
    $univcode = $aobj_context->mobj_data["univcode"];
    $qp_code_start = substr("0000000000".$aobj_context->mobj_data["qp_code_start"],-5); 
    $qp_code_end = substr("ZZZZZZZZZZ".$aobj_context->mobj_data["qp_code_end"],-5); 
   
    $datefrom = DateTime::createFromFormat('d/m/Y', $aobj_context->mobj_data["Date_start"]);
    $date_start = $datefrom->format('Y-m-d');

    $dateto = DateTime::createFromFormat('d/m/Y', $aobj_context->mobj_data["Date_end"]);
    $date_end = $dateto->format('Y-m-d');
    
    $session = $aobj_context->mobj_data["session"];
    // var_dump($session);die(); 

    if($session == "'AM'")
    $FSESSION = "M%";
    if($session == "'PM'")	
    $FSESSION = "N%";
    
    if($session == "'PM','AM'"){
    $sescond="";
    }else{
    $sescond="and sub.FSESSION like '{$FSESSION}'";
    }

    if($_SESSION['fexamseparate'] == 'T')
    {
        $candsum = "examcandsum"; 
        $canddet = "examcanddet"; 

    }else
    {
        $candsum = "candsum"; 
        $canddet = "canddet"; 
    }

    $get_daliy_present_data= "select deg.fexamname, sub.FQPCODE,  date_format(sub.FDOE, '%d/%m/%Y') 
                            as doe_name,sub.FSESSION,  'QPP' as type,  concat(sub.FSUBNAME, space(2),
                            '( ', sub.FSSUBNAME, ' )' ) as subject_desp, a.FREGNO as FREGNO,st.fname, 
                            COUNT(DISTINCT a.FREGNO) AS reg_cnt from $canddet a inner join subject sub 
                            on sub.FDEGREE = a.FDEGREE and sub.fexamno = a.fexamno and sub.fsubcode = 
                            a.fsubcode and ifnull(sub.ftheory, '') = 'T' and ifnull(sub.fqpcode, '') 
                            <> '' inner join degree deg on sub.fdegree = deg.fdegree and sub.fexamno = 
                            deg.fexamno inner join student st on a.fdegree = st.fdegree and a.FREGNO = 
                            st.fregno left outer join absent on a.fcollcode = absent.fcollcode and 
                            a.fregno = absent.fregno and sub.fqpcode = absent.fqpcode where sub.FDOE 
                            >= '{$date_start}' and sub.FDOE <= '{$date_end}' and sub.FQPCODE >= 
                            '{$qp_code_start}' and sub.FQPCODE <= '{$qp_code_end}' $sescond  and a.FCOLLCODE = '{$college_code}' and ifnull(a.FDELETED, '') 
                            <> 'T' and a.fpresent = 'P' and ifnull(a.fpassmth,'') = ''and absent.fregno is 
                            null group by sub.FDOE,sub.FQPCODE,sub.FSESSION,a.fregno order by sub.FDOE,
                            sub.FSESSION,sub.fqpcode";	
//   var_dump($get_daliy_present_data);
//   die();
    $result = $aobj_context->mobj_db->GetAll($get_daliy_present_data);  

    $objPHPExcel = new PHPExcel();
    $fileName = 'Daily Report';
    $objPHPExcel->getProperties()->setCreator("Uniclare")
    ->setLastModifiedBy("Me")->setTitle("My Excel Sheet")
    ->setSubject("My Excel Sheet")->setDescription("Excel Sheet")
    ->setKeywords("Excel Sheet")->setCategory("Me");

    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);
    
    // Add column headers and make them bold
    $styleArray = array(
        'borders' => array(
            'allborders' => array(
                'style' => PHPExcel_Style_Border::BORDER_THIN,
                'color' => array('argb' => '000000'),
            ),
        ),
    );

    $count = "";

    $alpha = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 
    'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC',
    'AD', 'AF', 'AE', 'AF', 'AG', 'AH'
  ];
  $j=4;
  $objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true);
  $objPHPExcel->getActiveSheet()->getStyle('1:1')->getFont()->setSize(12);
  $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Sl. No.')
  ->setCellValue('B1', 'USN No.')
  ->setCellValue('C1', 'Name')
  ->setCellValue('D1', 'Date')
  ->setCellValue('E1', 'QP Code');

  $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
  $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
  $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(30);
  $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
  $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);
      
  $objPHPExcel->getActiveSheet()->getStyle('A1:E1')->applyFromArray($styleArray);
  
  $objPHPExcel->getActiveSheet()->getColumnDimension('E1')->setAutoSize(true);
  $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(29);
  $objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getAlignment()->setWrapText(true);
  $objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  $objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
  
  $count=rtrim($count,", ");

  foreach ($result as $key => $value) {
    $slNo = $key + 2;
    $j=4;

      $objPHPExcel->getActiveSheet()->setCellValue('A' . $slNo, $slNo - 1)->getColumnDimension('A')->setwidth(10);
      $objPHPExcel->getActiveSheet()->setCellValue('B' . $slNo, $value['FREGNO'])->getColumnDimension('B')->setwidth(25);
      $objPHPExcel->getActiveSheet()->setCellValue('C' . $slNo, $value['fname'])->getColumnDimension('C')->setwidth(40);
      $objPHPExcel->getActiveSheet()->setCellValue('D' . $slNo, $value['doe_name'])->getColumnDimension('D')->setwidth(20);
      $objPHPExcel->getActiveSheet()->setCellValue('E' . $slNo, $value['FQPCODE'])->getColumnDimension('E')->setwidth(20);
      
      $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setwidth(12);
      $objPHPExcel->getActiveSheet()->getStyle('A' . $slNo . ':E'. $slNo)->applyFromArray($styleArray);
      
      $objPHPExcel->getActiveSheet()->getStyle('A' . $slNo . ':B' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
      $objPHPExcel->getActiveSheet()->getStyle('A' . $slNo . ':B' . $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
      $objPHPExcel->getActiveSheet()->getStyle('C' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
      $objPHPExcel->getActiveSheet()->getStyle('D' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
      $objPHPExcel->getActiveSheet()->getStyle('D' . $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
      $objPHPExcel->getActiveSheet()->getStyle('C' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_JUSTIFY);
      $objPHPExcel->getActiveSheet()->getStyle('D' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_JUSTIFY);
      $objPHPExcel->getActiveSheet()->getStyle('D' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
      $objPHPExcel->getActiveSheet()->getStyle('D' . $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
      $objPHPExcel->getActiveSheet()->getStyle('E' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
      $objPHPExcel->getActiveSheet()->getStyle('E' . $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
     
    }

//     $querytotal="select '9999' as fbatch, date_format(cd.FDOE,'%d/%m/%Y') as doe_name,
//             cd.FQPCODE as FQPCODE,cd.FSESSION, concat(sub.FSUBNAME, space(2), '( ',sub.FSSUBNAME,' )') 
//             as subject_desp, FNOBUNDLE,FTOTSCRIPT as total from colldesp cd inner join subject sub 
//             on sub.FQPCODE=cd.FQPCODE where cd.FCOLLCODE='1001' and cd.FQPCODE>='{$qp_code_start}' and 
//             cd.FQPCODE<='{$qp_code_end}' and cd.FDOE>='{$date_start}' and cd.FDOE<='{$date_end}' and 
//             cd.FSESSION in('aM') and ifnull(cd.FDELETED,'') <> 'T' and cd.fcollcode = '{$college_code}' 
//             group by cd.FDOE,cd.FQPCODE,cd.FSESSION order by cd.FDOE, cd.FSESSION, cd.fqpcode;";

//     $results = $aobj_context->mobj_db->GetAll($querytotal);  
// // var_dump($querytotal);die();
//     $query="select deg.fexamname, a.FQPCODE,date_format(a.FDOE,'%d/%m/%Y') as doe_name, 
//             sub.FSESSION,upper(a.FABSTYPE) as type, concat(sub.FSUBNAME, space(2), '( ',sub.FSSUBNAME,' )') as 
//             su
//             bject_desp, 
//             COALESCE(SUM(CASE WHEN a.FABSTYPE = 'QPA' THEN 1 END), 'Nill') AS fqpa,
//             COALESCE(SUM(CASE WHEN a.FABSTYPE = 'QPM' THEN 1 END), 'Nill') AS fqpm
//             from absent a inner join subject sub on sub.FQPCODE=a.FQPCODE and sub.fdoe = a.fdoe
//             inner join degree deg on sub.fdegree = deg.fdegree and sub.fexamno = deg.fexamno
//             where a.FDOE between '{$date_start}' and '{$date_end}' 
//             and a.FQPCODE>='{$qp_code_start}' and a.FQPCODE<='{$qp_code_end}'
//             and a.FSESSION in({$session}) and a.FCOLLCODE='{$college_code}' and ifnull(a.FDELETED,'') <> 'T'   
//             group by a.FDOE,a.FQPCODE,a.FSESSION order by a.FDOE, a.FSESSION, a.fqpcode, a.FABSTYPE";

//     $results = $aobj_context->mobj_db->GetAll($query);  

if($session == "'AM'")
    $FSESSION = "M%";
    if($session == "'PM'")	
    $FSESSION = "N%";
    if($session == "'PM','AM'")	
    $FSESSION = "";
    if($session == "'PM','AM'"){
    $sescond2="";
    }else{
    $sescond2="AND s.fsession like '{$FSESSION}'";
    }

    $query="SELECT
            s.fqpcode,
            COUNT(DISTINCT cd.fregno) AS cnt,
            SUM(IF(IFNULL(a.fregno, '') <> '', 1, 0)) AS abcnt,
            SUM(IF(IFNULL(a1.fregno, '') <> '', 1, 0)) AS mpcnt
            FROM
            $canddet cd
            INNER JOIN $candsum cs ON cd.fregno = cs.fregno
            INNER JOIN subject s ON cd.fdegree = s.fdegree AND cd.fexamno = s.fexamno AND cd.fsubcode = s.fsubcode
            LEFT JOIN absent a ON cd.fregno = a.fregno AND s.fqpcode = a.fqpcode 
            AND cs.fcntrcode = a.fcollcode AND a.FABSTYPE = 'QpA' AND a.FSESSION in ($session)
            LEFT JOIN absent a1 ON cd.fregno = a1.fregno AND s.fqpcode = a1.fqpcode 
            AND cs.fcntrcode = a1.fcollcode AND a1.FABSTYPE = 'QpM' AND a1.FSESSION in ($session)
            WHERE
            cd.fpresent = 'P'
            AND cs.fcntrcode = '{$college_code}'
            AND IFNULL(cs.frecptdate, '') <> ''
            AND IFNULL(fpassmth, '') = ''
            AND s.FDOE >= '{$date_start}' and s.FDOE <= '{$date_end}' 
            $sescond2
            GROUP BY
            s.fqpcode;";
    $results = $aobj_context->mobj_db->GetAll($query); 
    // var_dump($query);
    // die(); 
   
    $summaryRow = $slNo + 2; // Assuming $slNo is the last row index
    $objPHPExcel->getActiveSheet()->setCellValue('A' . $summaryRow, 'Summary :');
    $objPHPExcel->getActiveSheet()->setCellValue('A' . ($summaryRow + 1), 'Present : ' );
    $objPHPExcel->getActiveSheet()->setCellValue('A' . ($summaryRow + 2), 'Absent : ' );
    $objPHPExcel->getActiveSheet()->setCellValue('A' . ($summaryRow + 3), 'MP Case : ' );
    $objPHPExcel->getActiveSheet()->setCellValue('A' . ($summaryRow + 4), 'Total Students : ' );
    $summaryColumn = 'B'; // Start from column B
    
    foreach ($results as $key => $value) {
        
        // $qpcode=$value['FQPCODE'];
        
        // $total="select s.fqpcode,c.fsubcode,COUNT(DISTINCT c.FREGNO) as total from subject s 
        //         inner join canddet c on s.fdegree=c.fdegree and s.fexamno=c.fexamno and 
        //         s.fsubcode=c.fsubcode
        //         where s.fqpcode='{$qpcode}' and c.fcollcode='{$college_code}';";

        // $totalresult = $aobj_context->mobj_db->GetRow($total);
        $present=$value['cnt']-$value['abcnt']- $value['mpcnt'];
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
        $objPHPExcel->getActiveSheet()->setCellValue($summaryColumn . $summaryRow, $value['fqpcode']);
        $objPHPExcel->getActiveSheet()->setCellValue($summaryColumn . ($summaryRow + 1), $present);
        $objPHPExcel->getActiveSheet()->setCellValue($summaryColumn . ($summaryRow + 2), $value['abcnt']);
        $objPHPExcel->getActiveSheet()->setCellValue($summaryColumn . ($summaryRow + 3), $value['mpcnt']);
        $objPHPExcel->getActiveSheet()->setCellValue($summaryColumn . ($summaryRow + 4), $value['cnt']);
    
        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . $summaryRow)->applyFromArray($styleArray);
        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . ($summaryRow + 1))->applyFromArray($styleArray);
        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . ($summaryRow + 2))->applyFromArray($styleArray);
        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . ($summaryRow + 3))->applyFromArray($styleArray);
        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . ($summaryRow + 4))->applyFromArray($styleArray);

        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . $summaryRow)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . ($summaryRow + 1))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . ($summaryRow + 2))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . ($summaryRow + 3))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objPHPExcel->getActiveSheet()->getStyle($summaryColumn . ($summaryRow + 4))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);    
        $summaryColumn++;
    }

    
    

    $objPHPExcel->getActiveSheet()->setTitle($fileName);
    $objPHPExcel->getActiveSheet()->getPageSetup()
    ->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);

    $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'];    

    $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&C&H&"-,Bold"&16' . $aobj_context->FUNIVNAME . "\n" . '&12' . $rtype);
    $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&C&H'.$deggrp);

    $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&RPage &P of &N');

    getheaders($objPHPExcel, $fileName);
}

?>