<?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', true);
ini_set('display_startup_errors', true);
date_default_timezone_set('America/Bogota');

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']);
$cod_estudiantes = str_replace(",", '|', $cod_estudiantes);
$sede = $academia->escapar(ucwords($_GET['sede']));
$seccion = $academia->escapar($_GET['secc']);
$periodon = $academia->escapar($_GET['peri'], 'int');

switch ($periodon) {
    case 1:
        $periodo = "Primero";
        break;
    case 2:
        $periodo = "Segundo";
        break;
    case 3:
        $periodo = "Tercero";
        break;
    case 4:
        $periodo = "Cuarto";
        break;
    case 5:
        $periodo = "Quinto";
        break;
    case 6:
        $periodo = "Sexto";
        break;
    case 7:
        $periodo = "Séptimo";
        break;
    case 8:
        $periodo = "Octavo";
        break;
    case 9:
        $periodo = "Noveno";
        break;
    case 10:
        $periodo = "Décimo";
        break;
    case 11:
        $periodo = "Décimo Primero";
        break;
    case 12:
        $periodo = "Décimo Segundo";
        break;
}


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

$hojaActiva = $objPHPExcel->getActiveSheet();
//$hojaActiva->getDefaultColumnDimension()->setWidth(4);

$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 = "call SP_SABANAS_GRUPO('$cod_estudiantes',$grupo,$periodon,'$iduser')";
$academia->instruccion($sql, 0, 1);
//echo $sql;
$mayus_nom = $sesion->getVar('configuracion.format_nom');
$mayus_mat = $sesion->getVar('configuracion.format_mat');

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

$dtsEstNot = str_replace("\n", "<br>", $row['notas']);
$dtsEstNot = str_replace("\t", " ", $dtsEstNot);
$dtsEstNot = parseString($dtsEstNot);

//echo $row['notas'];
$dtsEstNot=json_decode($dtsEstNot,true);

$filOrg = 6;
$colOrg = 2;
$col = $colOrg;
$fil = $filOrg;
$hojaActiva->setCellValueByColumnAndRow(0, $fil, 'N°');
$hojaActiva->setCellValueByColumnAndRow(1, $fil, 'Nombres y apellidos');
if ($dtsEstNot !== NULL) {
    foreach ($dtsEstNot['materias'] as $v) {
        $hojaActiva->setCellValueByColumnAndRow($col++, $fil, formatoPalabras($v['no_asi'], $mayus_mat));
    }
}
$hojaActiva->setCellValueByColumnAndRow($col, $fil, 'Promedio Estudiante');
$hojaActiva->setCellValueByColumnAndRow($col + 1, $fil, 'Pto Grupo');
$fil++;
do {
    $col = $colOrg;

    $dtsEstNot = str_replace("\n", "<br>", $row['notas']);
    $dtsEstNot = str_replace("\t", " ", $dtsEstNot);
    $dtsEstNot = parseString($dtsEstNot);

//echo $row['notas'];
    $dtsEstNot=json_decode($dtsEstNot,true);

    //$dtsEstNot = json_decode($row['notas'], true);
    if ($dtsEstNot === NULL)
        continue;
    $hojaActiva->setCellValue('A' . $fil, $xy);
    $hojaActiva->setCellValue('B' . $fil, formatoPalabras($dtsEstNot['no_est'], $mayus_nom));
    $promEst = 0;
    $ax = 0;
    $pto_gr = $dtsEstNot['pto_gru'];
    foreach ($dtsEstNot['materias'] as $v) {
        $promEst+=$v['nn'];
        $ax++;
        $promMat[$col] = (empty($promMat[$col])) ? $v['nn'] : ($promMat[$col] + $v['nn']);
        if ($v['nn'] <= $v['pierde']) {
            $hojaActiva->getStyle($dtsLang['mod_forma_nom_cel'][$col] . $fil)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
        }

        $hojaActiva->setCellValueByColumnAndRow($col++, $fil, numberFormat($v['nn'], 1, '.', ''));
    }

    $hojaActiva->setCellValueByColumnAndRow($col, $fil, numberFormat(($promEst / $ax), 1, '.', ''));
    $hojaActiva->setCellValueByColumnAndRow($col + 1, $fil, numberFormat($pto_gr, 1, '.', ''));
    $promMat[$col] = (empty($promMat[$col])) ? ($promEst / $ax) : ($promMat[$col] + ($promEst / $ax));
    $fil++;
    $xy++;
} while ($row = $academia->extraer_registro());


$styleArrayMat = array(
    'alignment' => array(
        'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        'rotation' => 90,
    )
);
$styleArray1 = array(
    'borders' => array(
        'allborders' => array(
            'style' => PHPExcel_Style_Border:: BORDER_THIN,
            'color' => array('argb' => '0000'),
        ),
    ),
);
$col = $colOrg;
if (!empty($promMat)) {
    foreach ($promMat as $pm) {
        $hojaActiva->setCellValueByColumnAndRow($col++, $fil, numberFormat((($pm / ($xy - 1))), 1, '.', ''));
        $rangoAB = $dtsLang['mod_forma_nom_cel'][$col];
        $hojaActiva->getColumnDimension($rangoAB)->setWidth(5.7);
    }
}
$hojaActiva->setCellValueByColumnAndRow(1, $fil, 'Promedio Asignatura');

/* FOrmateando encabezado */
$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');


$hojaActiva->getStyle('A1:' . $dtsLang['mod_forma_nom_cel'][$col] . '5')
    ->getAlignment()
    ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$hojaActiva->getStyle('A1:' . $dtsLang['mod_forma_nom_cel'][$col] . '6')
    ->getFont()->setBold(true);

/* Formateo las notas */
$rango = $dtsLang['mod_forma_nom_cel'][$colOrg] . ($filOrg + 1) . ':' . $dtsLang['mod_forma_nom_cel'][$col - 1] . $fil;
$hojaActiva->getStyle($rango)->getNumberFormat()->setFormatCode('#,#0.0');

$rango = $dtsLang['mod_forma_nom_cel'][0] . $filOrg . ':' . $dtsLang['mod_forma_nom_cel'][$col] . $filOrg;
#$hojaActiva->getStyle($rango)->getFont()->setBold(true);
#$hojaActiva->getStyle('A')->getFont()->setBold(true);

$rango = $dtsLang['mod_forma_nom_cel'][$colOrg] . $filOrg . ':' . $dtsLang['mod_forma_nom_cel'][$col + 1] . $filOrg;
$rangoAB = $dtsLang['mod_forma_nom_cel'][$colOrg] . ':' . $dtsLang['mod_forma_nom_cel'][$col];
    
$hojaActiva->getStyle($rango)->applyFromArray($styleArrayMat);
$hojaActiva->getStyle($rango)->getAlignment()->setWrapText(true);

//formato cuadricula
$rango = $dtsLang['mod_forma_nom_cel'][0] . $filOrg . ':' . $dtsLang['mod_forma_nom_cel'][$col] . $fil;
$hojaActiva->getStyle($rango)->applyFromArray($styleArray1);

//formato para colocar en negrita ñlos promedios por materia
$rango = $dtsLang['mod_forma_nom_cel'][$colOrg - 2] . $fil . ':' . $dtsLang['mod_forma_nom_cel'][$col] . $fil;
#$hojaActiva->getStyle($rango)->getFont()->setBold(true);

$rango = $dtsLang['mod_forma_nom_cel'][0] . $filOrg . ':' . $dtsLang['mod_forma_nom_cel'][$col - 1] . $fil;
#$hojaActiva->getStyle($rango)->getFont()->setBold(true);

$hojaActiva->getRowDimension($filOrg)->setRowHeight(129);
$hojaActiva->getColumnDimension('B')->setAutoSize(true);

// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Sabana de desempeños');

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

$nomdoc = "Sabana $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;
?>