<?php

require_once("../../includes/bootstrap2.php");
$sesion = new sesion();
$academia = bootstrap::initBd($sesion->get('anio'));
/** Error reporting */
error_reporting(E_ALL);
ini_set('display_errors', false);
ini_set('display_startup_errors', false);
date_default_timezone_set('Europe/London');

if (PHP_SAPI == 'cli')
    die('This example should only be run from a Web Browser');

/** Include PHPExcel */
require_once("../../includes/phpExcel/PHPExcel.php");
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set document properties
$objPHPExcel->getProperties()->setCreator("Academia Web")
        ->setLastModifiedBy(date('Y-m-d H:m:s'))
        ->setDescription("Sabana de desempeños")
        ->setKeywords("Academia 2013")
        ->setCategory("Reportes Academia");
// Add some data
$iduser = $sesion->get('ac_userid');

$iduser = $sesion->get('ac_userid');
$configuracion = $sesion->get('configuracion');
$nombre_grupo = $configuracion['nombres_grupos'];

$grado = $academia->escapar($_GET['grado']);
$id_gr = $academia->escapar($_GET['id_gr']);
$grupo = $academia->escapar($_GET['grupo'], 'int');
$director = $academia->escapar($_GET['dir']);
$jornada = $academia->escapar($_GET['jorn']);
$cod_estudiantes = $academia->escapar($_GET['est']);

$sede = $academia->escapar(ucwords($_GET['sede']));
$seccion = $academia->escapar($_GET['secc']);
$periodon = $academia->escapar($_GET['peri'], 'int');

$periodo = nom_periodo($periodon);

//echo $sql;
$i = 0;
$cmps = "";
//$idSede=$_GET['id'];

$hojaActiva = $objPHPExcel->getActiveSheet();
//$hojaActiva->getDefaultColumnDimension()->setWidth(4);
$hojaActiva->getPageSetup()->setHorizontalCentered(true);
$hojaActiva->getPageSetup()->setVerticalCentered(true);

$hojaActiva->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 5);

$hojaActiva->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
$hojaActiva->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER);

$hojaActiva->getPageMargins()->setTop(0, 2);
$hojaActiva->getPageMargins()->setRight(0.7);
$hojaActiva->getPageMargins()->setLeft(0.7);
$hojaActiva->getPageMargins()->setBottom(0, 2);

$dtsColegio = $sesion->get('info_colegio');
$hojaActiva->setCellValue('A1', $dtsColegio['nombre']);
$hojaActiva->setCellValue('A2', "NIT. " . $dtsColegio['nit']);
$hojaActiva->setCellValue('A3', empty($dtsColegio['resolucion']) ? $dtsColegio['decreto'] : $dtsColegio['resolucion'] );
$hojaActiva->setCellValue('A5', 'Sede: ' . $sede . " Jornada: " . $jornada . " Grupo: " . $grado . " Periodo:" . $periodo);

$sql = "SELECT
aca_estudiantes.cod_estudiante,
    CONCAT_WS(' ',aca_estudiantes.apellido1_est, aca_estudiantes.apellido2_est, aca_estudiantes.nombre1_est, aca_estudiantes.nombre2_est) AS nomape
    , aca_faltas_estudiantes.fecha_falta, aca_faltas_estudiantes.desc_falta, aca_faltas_estudiantes.obser_falta, aux_tipos_faltas.tipo_falta, aca_estudiantes.cod_estudiante,
    (SELECT  nota_def_letras FROM aca_disciplina_final WHERE aca_disciplina_final.cod_estudiante=aca_estudiantes.cod_estudiante and aca_disciplina_final.periodo=$periodon LIMIT 1) AS definitiva
FROM
    aca_faltas_estudiantes
    RIGHT JOIN aca_estudiantes 
        ON (aca_faltas_estudiantes.cod_estudiante = aca_estudiantes.cod_estudiante) AND (aca_faltas_estudiantes.periodo_fal =$periodon)
    LEFT JOIN aca_detalles_faltas 
        ON (aca_faltas_estudiantes.cod_falta = aca_detalles_faltas.cod_falta)
    LEFT JOIN aux_tipos_faltas 
        ON (aca_detalles_faltas.ide_tipo_falta = aux_tipos_faltas.ide_tipo_falta)
WHERE (aca_estudiantes.cod_estudiante in ($cod_estudiantes))";

$academia->instruccion($sql);

$mayus_nom = $sesion->getVar('configuracion.format_nom');
$mayus_mat = $sesion->getVar('configuracion.format_mat');

$row = $academia->extraer_registro();
$xy = 1;

$filOrg = 6;
$colOrg = 3;
$col = $colOrg;
$fil = $filOrg;

$fil++;
$auxEst = -1;
$cont = 0;
$contAnt = 0;
$styleArrayBordes = array(
    'borders' => array(
        'allborders' => array(
            'style' => PHPExcel_Style_Border:: BORDER_THIN,
            'color' => array('argb' => '0000'),
        ),
    ),
);
$styleArrayBordesExt = array(
    'borders' => array(
        'outline' => array(
            'style' => PHPExcel_Style_Border::BORDER_MEDIUM,
            'color' => array('argb' => '0000'),
        ),
    ),
);

do {
    if ($row["cod_estudiante"] != $auxEst) {
        $fil++;
        $hojaActiva->setCellValueByColumnAndRow(0, $fil, formatoPalabras($row["nomape"], $mayus_nom));
        $rango = "A" . $fil . ":E" . $fil;
        $hojaActiva->mergeCells($rango);
        $hojaActiva->getStyle('A' . $fil)->getFont()->setBold(true);
        $fil++;
        $auxEst = $row["cod_estudiante"];
        $hojaActiva->setCellValueByColumnAndRow(0, $fil, "Definitiva");
        $hojaActiva->setCellValueByColumnAndRow(1, $fil, "Tipo Falta");
        $hojaActiva->setCellValueByColumnAndRow(2, $fil, "Fecha Hora");
        $hojaActiva->setCellValueByColumnAndRow(3, $fil, "Detalles");
        $hojaActiva->setCellValueByColumnAndRow(4, $fil, "Observaciones");
        $hojaActiva->getStyle('A' . $fil . ":E" . $fil)->getFont()->setBold(true);
        $fil++;
        if ($cont > 0) {
            $rango = "A" . $contAnt . ":A" . ($cont - 1);
            $hojaActiva->mergeCells($rango);
            $rango = "A" . $contAnt . ":E" . ($cont - 1);
            $hojaActiva->getStyle($rango)->applyFromArray($styleArrayBordes);
            $rango = "A" . ($contAnt - 2) . ":E" . ($cont - 1);
            $hojaActiva->getStyle($rango)->applyFromArray($styleArrayBordesExt);
        }
        $cont = $fil;
        $contAnt = $fil;
        $hojaActiva->setCellValueByColumnAndRow(0, $fil, empty($row["definitiva"]) ? "EXCELENTE" : $row["definitiva"]);
    }

    $hojaActiva->setCellValueByColumnAndRow(1, $fil, $row["tipo_falta"]);
    $hojaActiva->setCellValueByColumnAndRow(2, $fil, $row["fecha_falta"]);
    $hojaActiva->setCellValueByColumnAndRow(3, $fil, $row["desc_falta"]);
    $hojaActiva->setCellValueByColumnAndRow(4, $fil, $row["obser_falta"]);
    $cont++;

    $fil++;
} while ($row = $academia->extraer_registro());

$rango = "A" . $contAnt . ":A" . ($cont - 1);
$hojaActiva->mergeCells($rango);

$rango = "A" . $contAnt . ":E" . ($cont - 1);
$hojaActiva->getStyle($rango)->applyFromArray($styleArrayBordes);
$rango = "A" . ($contAnt - 2) . ":E" . ($cont - 1);
$hojaActiva->getStyle($rango)->applyFromArray($styleArrayBordesExt);

$hojaActiva->getColumnDimension('B')->setAutoSize(true);
$hojaActiva->getColumnDimension('C')->setAutoSize(true);

$hojaActiva->getStyle('D' . $filOrg . ":D" . $fil)->getAlignment()->setWrapText(true);
$hojaActiva->getColumnDimension('A')->setWidth(15);
$hojaActiva->getColumnDimension('D')->setWidth(40);
$hojaActiva->getColumnDimension('E')->setWidth(40);

$styleArray1 = array(
    'font' => array(
        bold => true,
    ),
    "alignment" => array(
        'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
    )
);
$styleArray2 = array(
    "alignment" => array(
        'vertical' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
    )
);

//$hojaActiva->setCellValueByColumnAndRow(1, $fil, 'Promedio Asignatura');

/* FOrmateando encabezado */
$col = 4;
$hojaActiva->mergeCells('A1:' . $dtsLang['mod_forma_nom_cel'][$col] . '1');
$hojaActiva->mergeCells('A2:' . $dtsLang['mod_forma_nom_cel'][$col] . '2');
$hojaActiva->mergeCells('A3:' . $dtsLang['mod_forma_nom_cel'][$col] . '3');
$hojaActiva->mergeCells('A5:' . $dtsLang['mod_forma_nom_cel'][$col] . '5');

$rango = "A1:" . $dtsLang['mod_forma_nom_cel'][$col] . '5';
$hojaActiva->getStyle($rango)->applyFromArray($styleArray1);

$rango = "B1:" . $dtsLang['mod_forma_nom_cel'][$col] . $fil;
$hojaActiva->getStyle($rango)->applyFromArray($styleArray2);

$hojaActiva->getStyle("A1:A" . $fil)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);

// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Sabana de disciplina');

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);

$nomdoc = "Sabana disciplina $grado.xlsx";
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $nomdoc . '"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
unset($objPHPExcel);
unset($objWriter);
exit;
?>