<?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');
}
?>