<?php

require_once("../../includes/bootstrap.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 ok */
require_once("../../includes/phpExcel/PHPExcel.php");


// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set document propertiesv
// Set document properties
$objPHPExcel->getProperties()->setCreator("Academia Web")
        ->setLastModifiedBy(date('Y-m-d H:m:s'))
        ->setDescription("Promedios")
        ->setKeywords("Academia 2013")
        ->setCategory("Reportes Academia");
// Add some data

$grado = $academia->escapar($_GET['grado']);
$id_gr = $academia->escapar($_GET['id_gr']);

//	$director=$academia->escapar($_GET['dir']);
$jornada = $academia->escapar($_GET['jorn']);

$cod_estudiantes = str_replace(",", '|', $cod_estudiantes);

$sede = $academia->escapar(ucwords($_GET['sede']));

$per_ini = $academia->escapar($_GET['pini'], 'int');
$per_fin = $academia->escapar($_GET['pfin'], 'int');
$tipo_valor = $academia->escapar($_GET['valor'], 'int');


$i = 0;
$cmps = "";
$hojaActiva = $objPHPExcel->getActiveSheet();

$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);
$hojaActiva->setCellValue('A6', "Promedio de notas del periodo " . $per_ini . " al periodo " . $per_fin);

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


$iduser = $sesion->get('ac_userid');
//p ini , pfin , gru, idus
$sql = 'CALL SP_REP_DES_MATERIAS(' . $per_ini . ',' . $per_fin . ',' . $id_gr . ',"' . $tipo_valor . '")';
$academia->instruccion($sql);
#echo $sql;
#exit;
$aux = 0;
$dataMat = array();
$reg = $academia->extraer_registro();
$cdEst = $reg['codestudiante'];

$filOrg = 9;
$colOrg = 1;
$col = $colOrg;
$fil = $filOrg;
$i = 1;
$hojaActiva->setCellValueByColumnAndRow($col, $fil, formatoPalabras($reg['estudiante'], $mayus_nom));
$hojaActiva->setCellValueByColumnAndRow($col - 1, $fil, $i);

$hojaActiva->setCellValueByColumnAndRow($colOrg - 1, ($fil - 1), "N°");
$hojaActiva->setCellValueByColumnAndRow($colOrg, ($fil - 1), "Estudiantes");

do {
    if ($cdEst != $reg['codestudiante']) {
        if ($tipo_valor == 1) {
            $rango = $dtsLang['mod_forma_nom_cel'][$colOrg + 1] . $fil . ":" . $dtsLang['mod_forma_nom_cel'][$col] . ($fil);
            $formula = 'AVERAGE(' . $rango . ')';
            $hojaActiva->setCellValue($dtsLang['mod_forma_nom_cel'][$col + 1] . $fil, numberFormat($promedio,1));
        } else {
            $hojaActiva->setCellValue($dtsLang['mod_forma_nom_cel'][$col + 1] . $fil, $promedio);
        }
        $fil++;
        $col = $colOrg;  
        $hojaActiva->setCellValueByColumnAndRow($col, $fil, formatoPalabras($reg['estudiante'], $mayus_nom));
        $aux = 1; 
        $i++; 
        $hojaActiva->setCellValueByColumnAndRow($col - 1, $fil, $i);
    } 
    if ($tipo_valor == 1) {
        $hojaActiva->setCellValueByColumnAndRow( ++$col, $fil, numberFormat($reg['nota_def'],1));
    } else {
        $hojaActiva->setCellValueByColumnAndRow( ++$col, $fil, $reg['nota_def']);
    }
    $promedio = $reg['promedio'];
    $cdEst = $reg['codestudiante'];
    if ($aux == 0) {
        $hojaActiva->setCellValueByColumnAndRow($col, ($fil - 1), formatoPalabras($reg['nom_asi'], $mayus_nom));
    }
} while ($reg = $academia->extraer_registro());

$rangoNotas = $dtsLang['mod_forma_nom_cel'][$colOrg] . $filOrg . ":" . $dtsLang['mod_forma_nom_cel'][$col + 1] . $fil;
if ($tipo_valor == 1) {
    $hojaActiva->getStyle($rangoNotas)->getNumberFormat()->setFormatCode('#,#0.0');
}

if ($tipo_valor == 1) {
    $rango = $dtsLang['mod_forma_nom_cel'][$colOrg + 1] . $fil . ":" . $dtsLang['mod_forma_nom_cel'][$col] . ($fil);
    $formula = 'AVERAGE(' . $rango . ')';
    $hojaActiva->setCellValue($dtsLang['mod_forma_nom_cel'][$col + 1] . $fil, numberFormat($promedio, 1));
} else {
    $hojaActiva->setCellValue($dtsLang['mod_forma_nom_cel'][$col + 1] . $fil, $promedio);
}

$hojaActiva->setCellValueByColumnAndRow($col + 1, ($filOrg - 1), "Promedio");

/* 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->mergeCells('A6:' . $dtsLang['mod_forma_nom_cel'][$col] . '6');

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


$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'),
        ),
    ),
);

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

$hojaActiva->getRowDimension($filOrg - 1)->setRowHeight(129);

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

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

$rango = $dtsLang['mod_forma_nom_cel'][$colOrg - 1] . ($filOrg - 1) . ':' . $dtsLang['mod_forma_nom_cel'][$col + 1] . $fil;
$hojaActiva->getStyle($rango)->applyFromArray($styleArray1);

for ($ix = 0; $ix <= $col; $ix++) {
    $hojaActiva->getColumnDimension($dtsLang['mod_forma_nom_cel'][$ix])->setAutoSize(true);
}


// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Promedios');


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


// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Promedios de notas.xls"');
header('Cache-Control: max-age=0');

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