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


Current Path : /var/www/html/oums/src/
Upload File :
Current File : /var/www/html/oums/src/attendance_report_attn_stat_salr_excl.php

<?php

/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '<br />');

include("sys_session.php");
include("sys_connect.php");
include("sys_mainphp.php");

$resp_mesg = "";
$resp_stat = "";
$resp_file = "";


$d = 1;
$mnth_days = cal_days_in_month(CAL_GREGORIAN, substr($_POST['attn_mnth'], 5, 2), substr($_POST['attn_mnth'], 0, 4));
if ($_POST['attn_mnth'] == date('Y-m')) {
    $entr_days = date('d') - 1;
    $rept_days = date('d');
} else {
    $entr_days = $mnth_days;
    $rept_days = $mnth_days;
}
for ($d = 1; $d <= $entr_days; $d++) {
    $caln_date = $_POST['attn_mnth'] . '-' . substr('0' . $d, -2, 2);
    if ($caln_date != date('Y-m-d')) {
        // INSERT CLIENT HOLIDAY STATUS
        $mysql = "insert ignore into attendance (fdeptcode,fattndate,femplcode,fattnstat,fupdtuser,fattnremk,fupdttime)
        select em.fdeptcode,'$caln_date' as fattndate,em.femplcode,if(dayname('$caln_date')='Sunday','WO','HD') as fattnstat,
        'AUTO' as fupdtuser,'' as fattnremk, now() as fupdttime 
        from masempl em
        inner join masholiday hd on em.fdeptcode = hd.fdeptcode and hd.fholidate='$caln_date'
        where '$caln_date' between date_format(em.fjoindate,'%Y-%m-%d') and if(em.ftermdate='0000-00-00','$caln_date',date_format(em.ftermdate,'%Y-%m-%d'))
        and femplstat='T' and fempltype='P' and fattnentr='T';";

        $myres = mysqli_query($mycon, $mysql);

        // INSERT ABSENT / WEEKLY OFF STATUS
        $mysql = "insert ignore into attendance (fdeptcode,fattndate,femplcode,fattnstat,fupdtuser,fattnremk,fupdttime)
        select em.fdeptcode,'$caln_date' as fattndate,em.femplcode,if(dayname('$caln_date')='Sunday','WO','AB') as fattnstat,
        'AUTO' as fupdtuser,'' as fattnremk, now() as fupdttime from masempl em
        left join attendance at on em.femplcode = at.femplcode and fattndate='$caln_date'
        where '$caln_date' between date_format(em.fjoindate,'%Y-%m-%d') and if(em.ftermdate='0000-00-00','$caln_date',date_format(em.ftermdate,'%Y-%m-%d'))
        and em.fdeptcode not in ('dep','ihf') and femplstat='T' and fempltype='P' and fattnentr='T' and at.femplcode is null;";
        $myres = mysqli_query($mycon, $mysql);

        // INSERT NA STATUS FOR NEW STAFF
        $mysql = "insert ignore into attendance (fdeptcode,fattndate,femplcode,fattnstat,fupdtuser,fattnremk,fupdttime)
        select em.fdeptcode,'$caln_date' as fattndate,em.femplcode,'NA' as fattnstat,
        'AUTO' as fupdtuser,'' as fattnremk, now() as fupdttime from masempl em
        left join attendance at on em.femplcode = at.femplcode and fattndate='$caln_date'
        where date_format('$caln_date','%Y-%m-%d') < date_format(em.fjoindate,'%Y-%m-%d') and date_format('$caln_date','%Y-%m') = date_format(em.fjoindate,'%Y-%m')
        and em.fdeptcode not in ('dep','ihf') and femplstat='T' and fempltype='P' and fattnentr='T' and at.femplcode is null;";
        $myres = mysqli_query($mycon, $mysql);

        // INSERT NA STATUS FOR LEFT STAFF
        $mysql = "insert ignore into attendance (fdeptcode,fattndate,femplcode,fattnstat,fupdtuser,fattnremk,fupdttime)
        select em.fdeptcode,'$caln_date' as fattndate,em.femplcode,'NA' as fattnstat,
        'AUTO' as fupdtuser,'' as fattnremk, now() as fupdttime from masempl em
        left join attendance at on em.femplcode = at.femplcode and fattndate='$caln_date'
        where date_format('$caln_date','%Y-%m-%d') > date_format(em.ftermdate,'%Y-%m-%d') and date_format('$caln_date','%Y-%m') = date_format(em.ftermdate,'%Y-%m')
        and em.fdeptcode not in ('dep','ihf') and femplstat='T' and fempltype='P' and fattnentr='T' and at.femplcode is null;";
        $myres = mysqli_query($mycon, $mysql);
    }
}


require_once("phpexcel/Classes/PHPExcel.php");
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Logisys")
    ->setLastModifiedBy("Logisys")
    ->setTitle("Office 2007 XLSX Test Document")
    ->setSubject("Office 2007 XLSX Test Document")
    ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
    ->setKeywords("office 2007 openxml php")
    ->setCategory("Report File");
$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);

$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 2);

$objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(10);
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(25);

$objPHPExcel->getActiveSheet()->setPrintGridlines(TRUE);
$objPHPExcel->getActiveSheet()->getPageSetup()->setFitToWidth(1);
$objPHPExcel->getActiveSheet()->getPageSetup()->setFitToHeight(0);

$objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0.5);
$objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0.2);
$objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.2);
$objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0.5);

$objPHPExcel->getActiveSheet()->getPageSetup()->setHorizontalCentered(true);
$objPHPExcel->getActiveSheet()->getPageSetup()->setVerticalCentered(false);

$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&G&C&HLogisys, Bangalore' . chr(10) . 'Attendance Statement for Salary - ' . $_POST['attn_mnth']);
$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . '&CPage &P of &N');

$mysql = "SET SESSION group_concat_max_len = 1000000;";
$myres = mysqli_query($mycon, $mysql);

$myqry = "";
if ($type_id == "ADMIN") {
    $myqry = " ";
} elseif ($type_id == "CHIEF") {
    $myqry = " inner join masdept_user du on at.fdeptcode = du.fdeptcode and du.fusercode = '$user_id' ";
} else {
    $myqry = " and at.femplcode = '$empl_id' ";
}

$mysql = "select fsalrhead,dp.fdeptcode,dp.fdeptname, date_format(fattndate,'%Y-%m') as fattnmnth,
em.femplcode,femplname,em.fempldesn, concat('`',facntnumb) as facntnumb,fifsccode,
if(fjoindate='0000-00-00','',date_format(ifnull(fjoindate,''),'%d/%m/%Y')) as fjoindate,
if(ftermdate='0000-00-00','',date_format(ifnull(ftermdate,''),'%d/%m/%Y')) as ftermdate,
fsalrbase,
sum(case when fattnstat = 'PR' then 1 else 0 end) as ftotalpr,
sum(case when fattnstat = 'PH' and ifnull(fexcpperm,'') ='T' then 1 else 0 end) as ftotalpx,
sum(case when fattnstat = 'PH' and ifnull(fexcpperm,'')<>'T' then 1 else 0 end) as ftotalph,
sum(case when fattnstat = 'PH' and ifnull(fexcpperm,'')<>'T' then 1 else 0 end) / 2 as ftotalex,
sum(case when fattnstat = 'WH' then 1 else 0 end) as ftotalwh,
sum(case when fattnstat = 'HW' then 1 else 0 end) as ftotalhw,
sum(case when fattnstat in ('CL','AL') then 1 else 0 end) as ftotalcl,
sum(case when fattnstat = 'CH' then 1 else 0 end) as ftotalch,
sum(case when fattnstat = 'WO' then 1 else 0 end) as ftotalwo,
sum(case when fattnstat = 'HD' then 1 else 0 end) as ftotalhd,
sum(case when fattnstat = 'AB' and dayname(fattndate)<>'Sunday' then 1 else 0 end) as ftotalab,
sum(case when fattnstat = 'AB' and dayname(fattndate)<>'Sunday' then 1 else 0 end) div 4 as fextraab,
sum(case when fattnstat = 'AB' and dayname(fattndate)='Sunday' then 1 else 0 end) as  fexsunab,
group_concat(if(fattnstat='AB',concat(date_format(fattndate,'%d'),', '),'') order by fattndate separator '')  as fabsndate,
sum(case when flogistat = 'CHECK_IN_DELAY' and ifnull(fexcpperm,'')<>'T' then 1 else 0 end) as fexindays,
sum(case when flogostat = 'CHECK_OUT_EARLY' and ifnull(fexcpperm,'')<>'T' then 1 else 0 end) as fexotdays,
sum(case when flogostat = 'CHECK_OUT_SKIP' and ifnull(fexcpperm,'')<>'T' then 1 else 0 end) as fexotskip,
if(em.fsalrappr=right('$_POST[attn_mnth]',2),'Increment due ','') as lsalrremk,
if(date_format(em.fjoindate,'%Y-%m')='$_POST[attn_mnth]','New addition ','') as ljoinremk,
if(date_format(em.ftermdate,'%Y-%m')='$_POST[attn_mnth]','Left job this month ','') as ltermremk
from attendance at
inner join masempl em on em.femplcode = at.femplcode
inner join masdept dp on dp.fdeptcode = em.fdeptcode and dp.fattnenbl='T' and dp.fdeptcode like '$_POST[dept_code]' and dp.fdeptcode not in ('DEP','IHF')
" . $myqry . "
where fempltype='P' and date_format(at.fattndate,'%Y-%m')='$_POST[attn_mnth]' 
group by em.fsalrhead,fdeptname,em.femplcode
order by em.fsalrhead,fdepttype desc,fdeptname,em.femplcode;";
$myres = mysqli_query($mycon, $mysql);
$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', 'Sl. No.')
    ->setCellValue('B1', 'Company')
    ->setCellValue('C1', 'Client')
    ->setCellValue('D1', 'Month')
    ->setCellValue('E1', 'Empl ID')
    ->setCellValue('F1', 'Empl Name')
    ->setCellValue('G1', 'Designation')
    ->setCellValue('H1', 'Account No.')
    ->setCellValue('I1', 'IFSC Code')
    ->setCellValue('J1', 'Joining Date')
    ->setCellValue('K1', 'Leaving Date')
    ->setCellValue('L1', 'Month Salary')
    ->setCellValue('M1', 'Total Days')
    ->setCellValue('N1', 'Present')
    ->setCellValue('O1', 'Leaves (CL)')
    ->setCellValue('P1', 'Leaves (CH)')
    ->setCellValue('Q1', 'Sundays')
    ->setCellValue('R1', 'Holidays')
    ->setCellValue('S1', 'Total Absent')
    ->setCellValue('T1', 'Absent')
    ->setCellValue('U1', 'Extra Absent')
    ->setCellValue('V1', 'Sunday Absent')
    ->setCellValue('W1', 'Excep. Count')
    ->setCellValue('X1', 'Absent Dates')
    ->setCellValue('Y1', 'Check In Delay')
    ->setCellValue('Z1', 'Early Check Out')
    ->setCellValue('AA1', 'Check Out Skip')
    ->setCellValue('AB1', 'Remarks');

$i = 2;
while ($myrow = mysqli_fetch_object($myres)) {
    // $objPHPExcel->getActiveSheet()->getStyle('H' . $i)->getNumberFormat()->setFormatCode('#');
    $objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue('A' . $i, $i - 1)
        ->setCellValue('B' . $i, $myrow->fsalrhead)
        ->setCellValue('C' . $i, '[' . $myrow->fdeptcode . '] ' . $myrow->fdeptname)
        ->setCellValue('D' . $i, $myrow->fattnmnth)
        ->setCellValue('E' . $i, $myrow->femplcode)
        ->setCellValue('F' . $i, $myrow->femplname)
        ->setCellValue('G' . $i, $myrow->fempldesn)
        ->setCellValue('H' . $i, $myrow->facntnumb)
        ->setCellValue('I' . $i, $myrow->fifsccode)
        ->setCellValue('J' . $i, $myrow->fjoindate)
        ->setCellValue('K' . $i, $myrow->ftermdate)
        ->setCellValue('L' . $i, $myrow->fsalrbase)
        ->setCellValue('M' . $i, '=SUM(N' . $i . ': S' . $i . ') - w' . $i)
        ->setCellValue('N' . $i, $myrow->ftotalpr + $myrow->ftotalwh + $myrow->ftotalhw + $myrow->ftotalph + $myrow->ftotalpx)
        ->setCellValue('O' . $i, $myrow->ftotalcl)
        ->setCellValue('P' . $i, $myrow->ftotalch)
        ->setCellValue('Q' . $i, $myrow->ftotalwo)
        ->setCellValue('R' . $i, $myrow->ftotalhd)
        ->setCellValue('S' . $i, '=SUM(T' . $i . ': W' . $i . ')')
        ->setCellValue('T' . $i, $myrow->ftotalab)
        ->setCellValue('U' . $i, $myrow->fextraab)
        ->setCellValue('V' . $i, $myrow->fexsunab)
        ->setCellValue('W' . $i, $myrow->ftotalex)
        ->setCellValue('X' . $i, $myrow->fabsndate)
        ->setCellValue('Y' . $i, $myrow->fexindays)
        ->setCellValue('Z' . $i, $myrow->fexotdays)
        ->setCellValue('AA' . $i, $myrow->fexotskip)
        ->setCellValue('AB' . $i, $myrow->lsalrremk .  $myrow->ljoinremk .  $myrow->ltermremk);

    $objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(25);
    $objPHPExcel->getActiveSheet()->getRowDimension($i + 1)->setRowHeight(25);
    $i++;
}
// $i++;

$mysql2 = "select 
date_format(fattndate,'%Y-%m') as fattnmnth,
em.fsalrhead,dp.fdeptcode,dp.fdeptshrt,dp.fdeptname,em.femplcode,em.femplname,em.fempldesn,
if(fjoindate='0000-00-00','',date_format(ifnull(fjoindate,''),'%d/%m/%Y')) as fjoindate,
if(ftermdate='0000-00-00','',date_format(ifnull(ftermdate,''),'%d/%m/%Y')) as ftermdate,
concat('''',facntnumb) as facntnumb,fifsccode
from attendance at 
inner join masdept dp on at.fdeptcode = dp.fdeptcode and dp.fattnenbl = 'T'
inner join masempl em on at.femplcode = em.femplcode and dp.fdeptcode like '$_POST[dept_code]' and em.fempltype='P' and dp.fdeptcode not in ('DEP','IHF')
" . $myqry . "
where fattndate like date_format(date_sub('$_POST[attn_mnth]-01',interval 1 month),'%Y-%m%') and at.femplcode not in 
(select distinct femplcode from attendance where fattndate like '$_POST[attn_mnth]%') 
group by em.femplcode
order by em.fsalrhead,fdeptname,em.femplcode;";
$myres2 = mysqli_query($mycon, $mysql2);
while ($myrow2 = mysqli_fetch_object($myres2)) {
    // $objPHPExcel->getActiveSheet()->getStyle('H' . $i)->getNumberFormat()->setFormatCode('#');
    $objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue('A' . $i, $i - 1)
        ->setCellValue('B' . $i, $myrow2->fsalrhead)
        ->setCellValue('C' . $i, '[' . $myrow2->fdeptcode . '] ' . $myrow2->fdeptname)
        ->setCellValue('D' . $i, '')
        ->setCellValue('E' . $i, $myrow2->femplcode)
        ->setCellValue('F' . $i, $myrow2->femplname)
        ->setCellValue('G' . $i, $myrow2->fempldesn)
        ->setCellValue('H' . $i, $myrow2->facntnumb)
        ->setCellValue('I' . $i, $myrow2->fifsccode)
        ->setCellValue('J' . $i, $myrow2->fjoindate)
        ->setCellValue('K' . $i, $myrow2->ftermdate)
        ->setCellValue('L' . $i, 0)
        ->setCellValue('M' . $i, 0)
        ->setCellValue('N' . $i, 0)
        ->setCellValue('O' . $i, 0)
        ->setCellValue('P' . $i, 0)
        ->setCellValue('Q' . $i, 0)
        ->setCellValue('R' . $i, 0)
        ->setCellValue('S' . $i, 0)
        ->setCellValue('T' . $i, 0)
        ->setCellValue('U' . $i, 0)
        ->setCellValue('V' . $i, 0)
        ->setCellValue('W' . $i, 0)
        ->setCellValue('X' . $i, '')
        ->setCellValue('Y' . $i, 0)
        ->setCellValue('Z' . $i, 0)
        ->setCellValue('AA' . $i, 0)
        ->setCellValue('AB' . $i, 'No salary, Left job in Prev Month');

    $objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(25);
    $objPHPExcel->getActiveSheet()->getRowDimension($i + 1)->setRowHeight(25);
    $i++;
}

$objPHPExcel->getActiveSheet()->freezePane('A2');

$objPHPExcel->getActiveSheet()->getStyle('A1:AB1')->getAlignment()->setWrapText(true);

$objPHPExcel->getActiveSheet()->getStyle('A1:A' . $i)->getAlignment()->setHorizontal('center')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('B1:B' . $i)->getAlignment()->setHorizontal('center')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('C1:C' . $i)->getAlignment()->setHorizontal('left')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('D1:D' . $i)->getAlignment()->setHorizontal('center')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('E1:E' . $i)->getAlignment()->setHorizontal('center')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('F1:F' . $i)->getAlignment()->setHorizontal('left')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('G1:W' . $i)->getAlignment()->setHorizontal('center')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('X1:X' . $i)->getAlignment()->setHorizontal('left')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('Y1:AA' . $i)->getAlignment()->setHorizontal('center')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('AB1:AB' . $i)->getAlignment()->setHorizontal('left')->setVertical('center');

$objPHPExcel->getActiveSheet()->getStyle('X1:X' . $i)->getAlignment()->setWrapText(true);

$objPHPExcel->getActiveSheet()->getStyle('A1:AB1')->getAlignment()->setHorizontal('center')->setVertical('center');
$objPHPExcel->getActiveSheet()->getStyle('A1:AB1')->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(35);

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(50);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(24);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(14);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('P')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('Q')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('R')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('S')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('T')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('U')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('V')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('W')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('X')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('Y')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('Z')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('AA')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('AB')->setWidth(30);

$objPHPExcel->getActiveSheet()->setTitle('attendance_' . $_POST['attn_mnth']);

$objPHPExcel->setActiveSheetIndex(0);

$file_name = "attendance_statement_salary_" . $_POST['attn_mnth'] . ".xlsx";
// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $file_name . '"');
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

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
ob_end_clean();
$objWriter->save($file_name);
$resp_file = $file_name;
echo json_encode(array("mesg" => $resp_mesg, "stat" => $resp_stat, "file" => $resp_file));

function getNameFromNumber($num)
{
    $numeric = $num % 26;
    $letter = chr(65 + $numeric);
    $num2 = intval($num / 26);
    if ($num2 > 0) {
        return getNameFromNumber($num2 - 1) . $letter;
    } else {
        return $letter;
    }
}