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.15.193.71
<?php
//------------------------Excel Report ---------------------//
$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');
ini_set('max_execution_time', 70);
// 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 feeCollecReport($aobj_context){
$objPHPExcel = new PHPExcel();
$fileName = 'FeeCollectionReport';
$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'),
),
),
);
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$univcode = $aobj_context->mobj_data['univcode'];
$fcollfrm = $aobj_context->mobj_data['cntr_from'];
$fcollto = $aobj_context->mobj_data['cntr_end'];
$fdegfrm = $aobj_context->mobj_data['degree_from'];
$fdegto = $aobj_context->mobj_data['degree_to'];
$rformat = $aobj_context->mobj_data['rformat'];
$rtype = $aobj_context->mobj_data['rtype'];
$range = $aobj_context->mobj_data['range'];
$rftype = $aobj_context->mobj_data['rftype'];
$artype = $aobj_context->mobj_data['artype'];
$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=9;
$drop_query = "drop table if exists fee_report";
// var_dump($drop_query);
// die();
$dropRes = $aobj_context->pobj_db->Execute($drop_query);
$create_query = "create table fee_report(
fdegree varchar(5),
fexamno varchar(1),
fcollcode varchar(5),
ftotcount int(5),
ftotamt decimal(10,2),
primary key(fdegree,fexamno,fcollcode))";
// var_dump($create_query);
// die();
$createRes = $aobj_context->pobj_db->Execute($create_query);
$insert_ttl = "insert into fee_report
select fdegree, fexamno, fcollcode, count(distinct fregno) as fstudcount,
sum(famount) as ftotamt
from studfee where fdegree between '{$fdegfrm}' and '{$fdegto}'
group by fdegree, fexamno, fcollcode
order by fdegree, fexamno, fcollcode";
$ttlRes = $aobj_context->pobj_db->Execute($insert_ttl);
// var_dump($insert_ttl);
$feeCodeLen = "select distinct replace(ffeecode,' ','_') as ffeecode,ffeecode as orgfeecode,cast(famount as UNSIGNED) as famount
from studfee
where ffeecode like '%fine' and fdegree between '{$fdegfrm}' and '{$fdegto}'
and fcollcode between '{$fcollfrm}' and '{$fcollto}' and famount > 1 order by famount";
$lenRes = $aobj_context->pobj_db->GetAll($feeCodeLen);
$len = count($lenRes);
$objPHPExcel->getActiveSheet()->getStyle('1:2')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('1:2')->getFont()->setSize(12);
$objPHPExcel->getActiveSheet()->freezePane('A3');
$objPHPExcel->getActiveSheet()->mergeCells("A1:A2")->setCellValue('A1', 'Sl. No.');
$objPHPExcel->getActiveSheet()->mergeCells("B1:B2")->setCellValue('B1', 'Degree Code');
$objPHPExcel->getActiveSheet()->mergeCells("C1:C2")->setCellValue('C1', 'Degree Name');
$objPHPExcel->getActiveSheet()->mergeCells("D1:D2")->setCellValue('D1', 'College Code');
$objPHPExcel->getActiveSheet()->mergeCells("E1:E2")->setCellValue('E1', 'College Name');
$objPHPExcel->getActiveSheet()->mergeCells('F1:'.'G1')
->setCellValue('F1', "Total");
$objPHPExcel->getActiveSheet()
->setCellValue('F2', "No. of App");
$objPHPExcel->getActiveSheet()
->setCellValue('G2', "Paid");
$objPHPExcel->getActiveSheet()->mergeCells('H1:'.'I1')
->setCellValue('H1', "Without Fine");
$objPHPExcel->getActiveSheet()
->setCellValue('H2', "No. of App");
$objPHPExcel->getActiveSheet()
->setCellValue('I2', "Paid");
$tmpTbl = "create temporary table fee_report_1
select fdegree, fexamno, fcollcode, count(distinct fregno) as fcnt, sum(famount) as famt
from studfee where fregno not in (
select fregno from studfee where fdegree between '{$fdegfrm}' and '{$fdegto}'
and fcollcode between '{$fcollfrm}' and '{$fcollto}' and ffeecode like '%fine%')
group by fdegree, fexamno, fcollcode
order by fdegree, fexamno, fcollcode";
$tmpRes = $aobj_context->pobj_db->Execute($tmpTbl);
$altTbl = "alter table fee_report
add column without_fine_cnt int(5),
add column without_fine_amt decimal(10,2)";
$altRes = $aobj_context->pobj_db->Execute($altTbl);
$upTbl = "update fee_report x, fee_report_1 y
set x.without_fine_cnt = y.fcnt,
x.without_fine_amt = y.famt
where x.fdegree = y.fdegree
and x.fexamno = y.fexamno
and x.fcollcode =y.fcollcode";
$upRes = $aobj_context->pobj_db->Execute($upTbl);
$qry="";
foreach ($lenRes as $k => $v) {
$drpTmp = "drop temporary table fee_report_1";
$drpTmpRes = $aobj_context->pobj_db->Execute($drpTmp);
// var_dump($drpTmp);
// var_dump($drpTmpRes);
$tmpTbl = "create temporary table fee_report_1 (INDEX(`fdegree`,`fexamno`,`fcollcode`))
select fdegree, fexamno, fcollcode, count(distinct fregno) as fcnt, sum(famount) as famt
from studfee where fregno in (
select fregno from studfee where fdegree between '{$fdegfrm}' and '{$fdegto}'
and fcollcode between '{$fcollfrm}' and '{$fcollto}' and ffeecode = '{$v['orgfeecode']}'
and famount = '{$v['famount']}')
group by fdegree, fexamno, fcollcode
having famt > 0
order by fdegree, fexamno, fcollcode";
$tmpRes = $aobj_context->pobj_db->Execute($tmpTbl);
// var_dump($tmpTbl);
// die();
$altTbl = "alter table fee_report
add column {$v['ffeecode']}_{$v['famount']}_cnt int(5),
add column {$v['ffeecode']}_{$v['famount']}_amt decimal(10,2)";
// var_dump($altTbl);
// die();
$altRes = $aobj_context->pobj_db->Execute($altTbl);
// var_dump($altRes);
$upTbl = "update fee_report x, fee_report_1 y
set x.{$v['ffeecode']}_{$v['famount']}_cnt = y.fcnt,
x.{$v['ffeecode']}_{$v['famount']}_amt = y.famt
where x.fdegree = y.fdegree
and x.fexamno = y.fexamno
and x.fcollcode =y.fcollcode";
$upRes = $aobj_context->pobj_db->Execute($upTbl);
$objPHPExcel->getActiveSheet()->mergeCells($alpha[$j].'1:'.$alpha[$j+1].'1')
->setCellValue($alpha[$j].'1', $v['orgfeecode']."\n(".$v['famount'].')');
$objPHPExcel->getActiveSheet()
->setCellValue($alpha[$j].'2', "No. of App");
$objPHPExcel->getActiveSheet()
->setCellValue($alpha[$j+1].'2', "Paid");
$j+=2;
$qry .= "ifnull({$v['ffeecode']}_{$v['famount']}_cnt,0) as {$v['ffeecode']}_{$v['famount']}_cnt,
ifnull({$v['ffeecode']}_{$v['famount']}_amt,0) as {$v['ffeecode']}_{$v['famount']}_amt,";
// var_dump($qry);
}
// die();
$qry=rtrim($qry,", ");
$objPHPExcel->getActiveSheet()->getStyle('A1:'.$alpha[$j-1].'1')->applyFromArray($styleArray);
// $objPHPExcel->getActiveSheet()->getColumnDimension('G1')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(45);
$objPHPExcel->getActiveSheet()->getStyle('A1:'.$alpha[$j-1].'1')->getAlignment()->setWrapText(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:'.$alpha[$j-1].'1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A1:'.$alpha[$j-1].'1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A2:'.$alpha[$j-1].'2')->applyFromArray($styleArray);
// $objPHPExcel->getActiveSheet()->getColumnDimension('G1')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(45);
$objPHPExcel->getActiveSheet()->getStyle('A2:'.$alpha[$j-1].'2')->getAlignment()->setWrapText(true);
$objPHPExcel->getActiveSheet()->getStyle('A2:'.$alpha[$j-1].'2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A2:'.$alpha[$j-1].'2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$getData = "select d.fdegree, d.fdescpn, d.fexamname, c.fcollcode,
concat(c.fcollname,', ',c.ftown) as fcollname, ftotcount, ftotamt,
ifnull(without_fine_cnt,0) as without_fine_cnt, ifnull(without_fine_amt,0.00) as without_fine_amt,
{$qry}
from fee_report f
inner join college c on f.fcollcode = c.fcollcode
inner join degree d on f.fdegree = d.fdegree and f.fexamno = d.fexamno
order by d.fdegree, c.fcollcode, d.fexamno";
$dataRes = $aobj_context->pobj_db->GetAll($getData);
//var_dump($getData);
//die();
foreach ($dataRes as $key => $value) {
$slNo = $key + 3;
$j=9;
$objPHPExcel->getActiveSheet()->setCellValue('A' . $slNo, $slNo - 2)->getColumnDimension('A')->setwidth(5);
$objPHPExcel->getActiveSheet()->setCellValue('B' . $slNo, $value['fdegree'])->getColumnDimension('B')->setwidth(8.43);
$objPHPExcel->getActiveSheet()->setCellValue('C' . $slNo, $value['fdescpn'])->getColumnDimension('C')->setwidth(40);
$objPHPExcel->getActiveSheet()->setCellValue('D' . $slNo, $value['fcollcode'])->getColumnDimension('D')->setwidth(8.43);
$objPHPExcel->getActiveSheet()->setCellValue('E' . $slNo, $value['fcollname'])->getColumnDimension('E')->setwidth(50);
$objPHPExcel->getActiveSheet()->setCellValue('F' . $slNo, $value['ftotcount'])->getColumnDimension('F')->setwidth(8.43);
$objPHPExcel->getActiveSheet()->setCellValue('G' . $slNo, moneyFormatIndia((int)$value['ftotamt']))->getColumnDimension('G')->setwidth(11);
$objPHPExcel->getActiveSheet()->setCellValue('H' . $slNo, $value['without_fine_cnt'])->getColumnDimension('H')->setwidth(8.43);
$objPHPExcel->getActiveSheet()->setCellValue('I' . $slNo, moneyFormatIndia((int)$value['without_fine_amt']))->getColumnDimension('I')->setwidth(11);
$objPHPExcel->getActiveSheet()->getStyle('G'. $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('G' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('I'. $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('I' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
foreach($lenRes as $k=>$v){
// var_dump($v);
$colName1 = "{$v['ffeecode']}_{$v['famount']}_cnt";
$colName = "{$v['ffeecode']}_{$v['famount']}_amt";
$objPHPExcel->getActiveSheet()->setCellValue($alpha[$j].$slNo, $value[$colName1])
->getColumnDimension($alpha[$j])->setwidth(10);
$objPHPExcel->getActiveSheet()->setCellValue($alpha[$j+1].$slNo, moneyFormatIndia((int)$value[$colName]))
->getColumnDimension($alpha[$j])->setwidth(10);
$objPHPExcel->getActiveSheet()->getStyle($alpha[$j]. $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle($alpha[$j] . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle($alpha[$j+1]. $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle($alpha[$j+1] . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$j+=2;
}
// die();
// $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setwidth(12);
$objPHPExcel->getActiveSheet()->getStyle('A' . $slNo . ':'.$alpha[$j-1] . $slNo)->applyFromArray($styleArray);
$objPHPExcel->getActiveSheet()->getRowDimension($slNo)->setRowHeight(35);
//->setWrapText(true);
$objPHPExcel->getActiveSheet()->getStyle('A' . $slNo . ':'.$alpha[$j-1] . $slNo)->getAlignment()->setWrapText(true);
$objPHPExcel->getActiveSheet()->getStyle('A' . $slNo . ':B' . $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A' . $slNo . ':B' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('D' . $slNo)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('D' . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A' . $slNo . ':'.$alpha[$j-1] . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A' . $slNo . ':'.$alpha[$j-1] . $slNo)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
}
$objPHPExcel->getActiveSheet()->setTitle($fileName);
$objPHPExcel->getActiveSheet()->getPageSetup()
->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
$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 = $aobj_context->pobj_db->GetRow($get_coll_name);
// $deggrp = $aobj_context->mobj_data["dgp"];
// $query = "select distinct concat(fexamdate,' ',' Examination') as fexamdate
// from deggrp where fdeggrp = '{$deggrp}'";
// $results = $aobj_context->pobj_db->GetRow($query);
$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'];
// die();
// $objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($aobj_context->main_src.'img/'.$aobj_context->FUNIVCODE.'_logo.jpg', PHPExcel_Worksheet_HeaderFooter::IMAGE_HEADER_LEFT);
$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);
}
function moneyFormatIndia($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.
}
?>
|