<?php

/** Incluir la libreria PHPExcel */
//error_reporting(E_ALL);
//ini_set('display_errors', 1);
require_once 'excel/PHPExcel.php';
include "../DMMYSQLG.php";
include "../DF80000.php";
$n_emp = ($_GET['n_emp']);
$fecha = ($_GET['fecha']);
$fecha2 = ($_GET['fecha2']);
$tipo = ($_GET['tipo']);



date_default_timezone_set('America/Mexico_City');

// Crea un nuevo objeto PHPExcel
$objPHPExcel = new PHPExcel();

// Establecer propiedades
$objPHPExcel->getProperties()
        ->setCreator("Rodo")
        ->setLastModifiedBy("Rodo")
        ->setTitle("Reporte de Asistencias")
        ->setSubject("Reporte")
        ->setDescription("Reporte sobre horario de entrada/salida de empleados")
        ->setKeywords("")
        ->setCategory("");

// Propiedades Celda
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(20);

$style = array(
    'alignment' => array(
        'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
    )
);

$objPHPExcel->getDefaultStyle()->applyFromArray($style);

// Agregar Informacion
// Cabecera

$f = 3;

$objPHPExcel->setActiveSheetIndex(0)
        ->setCellValueByColumnAndRow(0, 1, "Periodo $fecha al $fecha2")
        ->mergeCells('A1:E1')
        ->setCellValueByColumnAndRow(0, 2, "Fecha de creacion: " . date('d-m-Y'))
        ->mergeCells('A2:E2')
        ->setCellValue('A' . $f, "Nombre");
//    ->setCellValue('B'.$f, "Fecha");
// Consulta
if ($fecha != "" && $fecha2 != "") {
    $where = " a.tipo='entrada' and (fecha>= '$fecha' and fecha<= '$fecha2') "
            . "and a.num_empleado=b.num_empleado GROUP BY num_empleado order by num_empleado,fecha";
} else {
    $where = " a.tipo='entrada' and a.num_empleado like '$n_emp%' and fecha like '$fecha%' ";
}

$empleados = mysqli_query($con ,"select a.num_empleado,b.nombre, GROUP_CONCAT(a.fecha) as dias
from reg_empleado a join empleado b on a.num_empleado=b.num_empleado where " . $where );
echo mysqli_error($con);
//$col=1;
//$fila=3;
$c = 1;
$fechavar = $fecha;
while (dateCmp($fechavar, $fecha2) <= 0) {
    $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValueByColumnAndRow($c, 3, whatDay($fechavar));
    $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValueByColumnAndRow($c, 4, $fechavar);
    $fechavar = addDay($fechavar, 1);
    $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($c, 4)->getFill()->applyFromArray(array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'startcolor' => array('rgb' => 'CCCCCC')));
        
    $c++;
}

$objPHPExcel->setActiveSheetIndex(0)
        ->setCellValueByColumnAndRow($c, 4, "TOTAL "  );

$f = $f + 2;

while ($row = mysqli_fetch_array($empleados)) {
    $c = 0;
    $dias = explode(",", $row['dias']);
    $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValueByColumnAndRow($c, $f, $row['nombre']);
    $c++;
    $cont = 0;
  $fechavar = $fecha;
while (dateCmp($fechavar, $fecha2) <= 0) {
        if (in_array($fechavar, $dias)) {
            $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValueByColumnAndRow($c, $f, "SI");
           $cont++;
        } else{
             $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValueByColumnAndRow($c, $f, "NO");
             
             $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($c, $f)->getFill()->applyFromArray(array(
        'type' => PHPExcel_Style_Fill::FILL_SOLID,
        'startcolor' => array('rgb' => 'F28A8C')));
        }
           $c++;
            $fechavar = addDay($fechavar, 1);
    }
    $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValueByColumnAndRow($c, $f, $cont);
    $f++;
}
// Renombrar Hoja
$objPHPExcel->getActiveSheet()->setTitle('Asistencias de Empleados');
// Establecer la hoja activa, para que cuando se abra el documento se muestre primero.
$objPHPExcel->setActiveSheetIndex(0);

// Se modifican los encabezados del HTTP para indicar que se envia un archivo de Excel.
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Reporte.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
?>