<?php
include_once 'conexion2.php';
$departamento = $_POST['departamentos'];
$nit = $_POST['buscar_nit'];
$centro_costo = $_POST['centro_costos'];
$p_inicio = $_POST['periodo_inicial'];
$p_final = $_POST['periodo_final'];
$resultado = pg_num_rows(pg_query("SELECT * FROM aclaracion_saldos_capita.bd_inicial_ok WHERE dpto='$departamento' and nit='$nit' and centro_costo='$centro_costo' and periodo between '$p_inicio' and '$p_final' "));
if($resultado > 0 ){
date_default_timezone_set('America/Bogota');
if(PHP_SAPI == 'cli')
die('Este archivo solo se puede ver desde un navegador web');
// Se agrega la libreria PHPExcel
require_once 'PHPExcel/Classes/PHPExcel.php';
// Se crea el objeto PHPExcel
$objPHPExcel = new PHPExcel();
// Se asignan las propiedades del libro
$objPHPExcel->getProperties()->setCreator("Codedrinks") // Nombre del autor
->setLastModifiedBy("Codedrinks") //Ultimo usuario que lo modificó
->setTitle("Reporte Excel con PHP y PostgreSQL") // Titulo
->setSubject("Reporte Excel con PHP y PostgreSQL") //Asunto
->setDescription("Reporte de aclaracion_saldos_capita") //Descripción
->setKeywords("reporte aclaracion saldos ok") //Etiquetas
->setCategory("Reporte excel"); //Categorias
$tituloReporte = "Reporte de Aclaracion de Saldos";
$titulosColumnas = array('DPT', 'RAZON', 'NIT', '# CONTRATO','VIGENCIA CONTRACTUAL', 'PERIODO',
'CTRO COSTO', 'POBLACION', 'PRESUPUESTO', 'VALOR CONTRATADO',
'% UPC / 92%', '%POB', 'ING. UPC', 'REG. RESTITUCION',
'REG. OBSERVADOS', 'ING.VAL', 'VAL/LMA', 'PRESUPUESTO', 'AJUSTE CONT.',
'BREC.LIQ', 'PROV ARS 1,2,3', 'ASIST', 'PYP', 'TOTAL', 'CUMPLIMIENTO', 'RECOBROS', 'COSTO DEBIDO', 'PAGOS GIRADOS', 'SALDOS IPS', 'SALD EPS');
// Se combinan las celdas A1 hasta D1, para colocar ahà el titulo del reporte
$objPHPExcel->setActiveSheetIndex(0)
->mergeCells('A1:A1');
// Se agregan los titulos del reporte
$objPHPExcel->setActiveSheetIndex(0)
//->setCellValue('A1',$tituloReporte) // Titulo del reporte
->setCellValue('A1', $titulosColumnas[0]) //Titulo de las columnas
->setCellValue('B1', $titulosColumnas[1])
->setCellValue('C1', $titulosColumnas[2])
->setCellValue('D1', $titulosColumnas[3])
->setCellValue('E1', $titulosColumnas[4])
->setCellValue('F1', $titulosColumnas[5])
->setCellValue('G1', $titulosColumnas[6])
->setCellValue('H1', $titulosColumnas[7])
->setCellValue('I1', $titulosColumnas[8])
->setCellValue('J1', $titulosColumnas[9])
->setCellValue('K1', $titulosColumnas[10])
->setCellValue('L1', $titulosColumnas[11])
->setCellValue('M1', $titulosColumnas[12])
->setCellValue('N1', $titulosColumnas[13])
->setCellValue('O1', $titulosColumnas[14])
->setCellValue('P1', $titulosColumnas[15])
->setCellValue('Q1', $titulosColumnas[16])
->setCellValue('R1', $titulosColumnas[17])
->setCellValue('S1', $titulosColumnas[18])
->setCellValue('T1', $titulosColumnas[19])
->setCellValue('U1', $titulosColumnas[20])
->setCellValue('V1', $titulosColumnas[21])
->setCellValue('W1', $titulosColumnas[22])
->setCellValue('X1', $titulosColumnas[23])
->setCellValue('Y1', $titulosColumnas[24])
->setCellValue('Z1', $titulosColumnas[25])
->setCellValue('AA1', $titulosColumnas[26])
->setCellValue('AB1', $titulosColumnas[27])
->setCellValue('AC1', $titulosColumnas[28])
->setCellValue('AD1', $titulosColumnas[29]);
//Se agregan los datos
$i = 2; //Numero de fila donde se va a comenzar a rellenar
while ($fila = pg_fetch_array($resultado)) {
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$i, $fila['dpto'])
->setCellValue('B'.$i, $fila['razon'])
->setCellValue('C'.$i, $fila['nit'])
->setCellValue('D'.$i, $fila['numero_contrato'])
->setCellValue('E'.$i, $fila['vigencia_contractual'])
->setCellValue('F'.$i, $fila['periodo'])
->setCellValue('G'.$i, $fila['centro_costo'])
->setCellValue('H'.$i, $fila['poblacion'])
->setCellValue('I'.$i, $fila['presupuesto_inicial'])
->setCellValue('J'.$i, $fila['valor_contratado'])
->setCellValue('K'.$i, $fila['porcentaje_upc_92porc'])
->setCellValue('L'.$i, $fila['porcentaje_pob'])
->setCellValue('M'.$i, $fila['ing_upc'])
->setCellValue('N'.$i, $fila['reg_restitucion'])
->setCellValue('O'.$i, $fila['reg_observados'])
->setCellValue('P'.$i, $fila['ing_val'])
->setCellValue('Q'.$i, $fila['val_vs_lma'])
->setCellValue('R'.$i, $fila['presupuesto'])
->setCellValue('S'.$i, $fila['ajuste_cont'])
->setCellValue('T'.$i, $fila['brec_liq'])
->setCellValue('U'.$i, $fila['prov_ars'])
->setCellValue('V'.$i, $fila['asist'])
->setCellValue('W'.$i, $fila['pyp'])
->setCellValue('X'.$i, $fila['total'])
->setCellValue('Y'.$i, $fila['cumplimiento'])
->setCellValue('Z'.$i, $fila['recobros'])
->setCellValue('AA'.$i, $fila['costo_debido'])
->setCellValue('AB'.$i, $fila['pagos_girados'])
->setCellValue('AC'.$i, $fila['saldos_ips'])
->setCellValue('AD'.$i, $fila['saldos_eps']);
$i++;
}
$estiloTituloReporte = array(
'font' => array(
'name' => 'Calibri',
'bold' => true,
'italic' => false,
'strike' => false,
'size' =>16,
'color' => array(
'rgb' => 'FFFFFF'
)
),
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array(
'argb' => 'FF220835')
),
'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' => 'Calibri',
'bold' => true,
'color' => array(
'rgb' => '000000'
)
),
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
'rotation' => 90,
'startcolor' => array(
'rgb' => 'CCE5FF'
),
'endcolor' => array(
'rgb' => 'CCE5FF'
)
),
'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',
'color' => array(
'rgb' => '000000'
)
),
'fill' => array(
'type' => PHPExcel_Style_Fill::FILL_SOLID,
'color' => array(
'rgb' => 'ffffff')
),
'borders' => array(
'left' => array(
'style' => PHPExcel_Style_Border::BORDER_THIN ,
'color' => array(
'rgb' => '404040'
)
)
)
));
//$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->applyFromArray($estiloTituloReporte);
$objPHPExcel->getActiveSheet()->getStyle('A1:AD1')->applyFromArray($estiloTituloColumnas);
$objPHPExcel->getActiveSheet()->setSharedStyle($estiloInformacion, "A2:AD".($i-1));
for($i = 'A'; $i <= 'AD'; $i++){
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension($i)->setAutoSize(TRUE);
}
// Se asigna el nombre a la hoja
$objPHPExcel->getActiveSheet()->setTitle('Departamento $dpto');
// 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,2);
// Se manda el archivo al navegador web, con el nombre que se indica, en formato 2007
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="AclaracionSaldos.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
}
else{
echo '<script>alert("No hay resultados para mostrar con esos datos. Por favor revise si todo esta correcto.")</script> ';
echo "<script>location.href='auditoria.php'</script>";
// print_r('No hay resultados para mostrar');
}
?>