<?php
require('conexion.php');

$resultado = query("");
if($resultado->num_rows > 0 ){
						
    date_default_timezone_set('America/Mexico_City');

    if (PHP_SAPI == 'cli')
        die('Este archivo solo se puede ver desde un navegador web');

    /** Se agrega la libreria PHPExcel */
    require_once 'lib/PHPExcel/PHPExcel.php';

    // Se crea el objeto PHPExcel
    $objPHPExcel = new PHPExcel();

    // Se asignan las propiedades del libro
    $objPHPExcel->getProperties()->setCreator("Sallaedi") //Autor
                         ->setLastModifiedBy("Sallaedi") //Ultimo usuario que lo modificó
                         ->setTitle("Reporte Excel Horas")
                         ->setSubject("Reporte Excel Horas")
                         ->setDescription("Reporte de Horas")
                         ->setKeywords("Totales de Horas")
                         ->setCategory("Reporte excel");

    $tituloReporte = "Reporte de Horas";
    $titulosColumnas = array('Fecha captura', 'Folio', 'Tipo Maquina', 'Serie Maquina', 'Operador', 'Empresa', 'Obra', 'Hora Inicio', 'Hora Final', 'Horas', 'Horonetro Inicio', 'Horometro Final', 'Total horometro');
    
    $objPHPExcel->setActiveSheetIndex(0)
                ->mergeCells('A1:M2');
                    
    // Se agregan los titulos del reporte
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A1',  $tituloReporte)
                ->setCellValue('A3',  $titulosColumnas[0])
                ->setCellValue('B3',  $titulosColumnas[1])
                ->setCellValue('C3',  $titulosColumnas[2])
                ->setCellValue('D3',  $titulosColumnas[3])
                ->setCellValue('E3',  $titulosColumnas[4])
                ->setCellValue('F3',  $titulosColumnas[5])
                ->setCellValue('G3',  $titulosColumnas[6])
                ->setCellValue('H3',  $titulosColumnas[7])
                ->setCellValue('I3',  $titulosColumnas[8])
                ->setCellValue('J3',  $titulosColumnas[9])
                ->setCellValue('K3',  $titulosColumnas[10])
                ->setCellValue('L3',  $titulosColumnas[11])
                ->setCellValue('M3',  $titulosColumnas[12]);    
    //Se agregan los datos de los alumnos
    $i = 4;
    while ($fila = $resultado->fetch_array()) {
        $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A'.$i,  $fila['fecha_reporte'])
                ->setCellValue('B'.$i,  $fila['folio_reporte'])
                ->setCellValue('C'.$i,  $fila['tipo_maquina'])                
                ->setCellValue('D'.$i,  $fila['no_serie_maquina'])
                ->setCellValue('E'.$i,  $fila['op_nombre_c'])
                ->setCellValue('F'.$i,  $fila['emp_nombre'])
                ->setCellValue('G'.$i,  $fila['obra_descripcion'])
                ->setCellValue('H'.$i,  $fila['hora_inicio'])
                ->setCellValue('I'.$i,  $fila['hora_final'])
                ->setCellValue('J'.$i,  $fila['horas'])
                ->setCellValue('K'.$i,  $fila['horometro_inicio'])
                ->setCellValue('L'.$i,  $fila['horometro_final'])
                ->setCellValue('M'.$i,  $fila['hrs_horometro']);
                //->setCellValue('D'.$i, utf8_encode($fila['carrera']));
                $i++;                
    }
                //$i=$i+1;
                
        
        $TotalesColumnas = array("TOTALES", $r_i, '', '', '', '', '', '', '', $suma_horas, '', '', $suma_hrs_horometro);
        
        $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A'.$i,  $TotalesColumnas[0])                
                ->setCellValue('B'.$i,  $TotalesColumnas[1])
                ->setCellValue('C'.$i,  $TotalesColumnas[2])
                ->setCellValue('D'.$i,  $TotalesColumnas[3])
                ->setCellValue('E'.$i,  $TotalesColumnas[4])
                ->setCellValue('F'.$i,  $TotalesColumnas[5])                
                ->setCellValue('G'.$i,  $TotalesColumnas[6])
                ->setCellValue('H'.$i,  $TotalesColumnas[7])
                ->setCellValue('I'.$i,  $TotalesColumnas[8])
                ->setCellValue('J'.$i,  $TotalesColumnas[9])                
                ->setCellValue('K'.$i,  $TotalesColumnas[10])
                ->setCellValue('L'.$i,  $TotalesColumnas[11])
                ->setCellValue('M'.$i,  $TotalesColumnas[12]);
                
    $estiloTituloReporte = array(
        'font' => array(
            'name'      => 'Verdana',
            'bold'      => true,
            'italic'    => false,
            'strike'    => false,
               'size' =>12,
                'color'     => array(
                    'rgb' => 'FFFFFF'
                   )
        ),
        'fill' => array(
            'type'	=> PHPExcel_Style_Fill::FILL_SOLID,
            'color'	=> array('argb' => '666666')
        ),
        'borders' => array(
               'allborders' => array(
                'style' => PHPExcel_Style_Border::BORDER_NONE                    
               )
        ), 
        'alignment' =>  array(
                'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
                'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER,
                'rotation'   => 0,
                'wrap'       => TRUE
        )
    );

    $estiloTituloColumnas = array(
        'font' => array(
            'name'      => 'Arial',
            'bold'      => true,                          
            'color'     => array(
                'rgb' => 'FFFFFF'
            )
        ),
        'fill' 	=> array(
            'type'		=> PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
            'rotation'   => 90,
            'startcolor' => array(
                'rgb' => 'FF9933'
            ),
            'endcolor'   => array(
                'argb' => 'CC9900'
            )
        ),
        'borders' => array(
            'top'     => array(
                'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
                'color' => array(
                    'rgb' => '143860'
                )
            ),
            'bottom'     => array(
                'style' => PHPExcel_Style_Border::BORDER_MEDIUM ,
                'color' => array(
                    'rgb' => '143860'
                )
            )
        ),
        'alignment' =>  array(
                'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
                'vertical'   => PHPExcel_Style_Alignment::VERTICAL_CENTER,
                'wrap'          => TRUE
        ));
        
    $estiloInformacion = new PHPExcel_Style();
    $estiloInformacion->applyFromArray(
        array(
               'font' => array(
               'name'      => 'Arial',  
               'bold'      => true,             
               'color'     => array(
                   'rgb' => '000000'
               )
           ),
           'fill' 	=> array(
            'type'		=> PHPExcel_Style_Fill::FILL_SOLID,
            'color'		=> array('argb' => 'FF9933')
        ),           
    ));
     
    $objPHPExcel->getActiveSheet()->getStyle('A1:M1')->applyFromArray($estiloTituloReporte);
    $objPHPExcel->getActiveSheet()->getStyle('A3:M3')->applyFromArray($estiloTituloColumnas);		
    //$objPHPExcel->getActiveSheet()->getStyle('A:K')->applyFromArray($estiloInformacion);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "A".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "B".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "C".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "D".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "E".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "F".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "G".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "H".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "I".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "J".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "K".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "L".$i);
    $objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "M".$i);
            
    for($i = 'A'; $i <= 'M'; $i++){
        $objPHPExcel->setActiveSheetIndex(0)			
            ->getColumnDimension($i)->setAutoSize(TRUE);
    }
    
    // Se asigna el nombre a la hoja
    $objPHPExcel->getActiveSheet()->setTitle('Reporte Excel de Horas');

    // Se activa la hoja para que sea la que se muestre cuando el archivo se abre
    $objPHPExcel->setActiveSheetIndex(0);
    // Inmovilizar paneles 
    //$objPHPExcel->getActiveSheet(0)->freezePane('A4');
    $objPHPExcel->getActiveSheet(0)->freezePaneByColumnAndRow(0,4);

    // Se manda el archivo al navegador web, con el nombre que se indica (Excel2007)
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="ReporteHoras.xlsx"');
    header('Cache-Control: max-age=0');

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');
    exit;
    
}
else{
    print_r('No hay resultados para mostrar');
}

?>