require_once("../info_sesion.php");
require_once("../cls_mysqli.php");
require_once("../funciones.php");
set_time_limit(0);//Tiempo maximo 60 -> 1 min ; 600 ->10 min.. (TIEMPO MAXIMO DE ESPERA) ini_set("memory_limit","1024M");//maxima memoria que se utilizara temporalmente (archivos con grandes registros)- usando multiceldas no se puede exportar las equivalencias $sIdDivPrincipal="";$sProceso="";$nID="";
$sNombreArchivo="rpt_sin_nombre";//nombre por defecto
$sQueryCab="";$sQueryDet="";$nSaltoLinea=1;//
if(isset($_GET['sIdDivPrincipal'])){$sIdDivPrincipal=$_GET['sIdDivPrincipal'];} if(isset($_GET['sProceso'])){$sProceso=$_GET['sProceso'];} if(isset($_GET['nID'])){$nID=$_GET['nID'];}
switch($sProceso){
case "XLS":
require_once '../ClassesPHPExcel/PHPExcel.php';
require_once '../ClassesPHPExcel/PHPExcel/IOFactory.php';
require_once '../ClassesPHPExcel/PHPExcel/Writer/Excel5.php';
require_once '../ClassesPHPExcel/PHPExcel/RichText.php';
'style' => PHPExcel_Style_Border::BORDER_THIN,
//'color' => array('argb' => '#03F'),
)
),
);
$styleBorderOutLine=array("borders"=>array("outline"=> array("style"=>PHPExcel_Style_Border
::BORDER_THIN,"color"=>array('argb' => '00000000'))));
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getDefaultStyle()->getFont()
->setName('Arial')
->setSize(9);//Calibri
$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); //HOJA A4
$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT);//VERTICAL
$sQueryCab="SELECT cotcli.num_cotizacion_cliente,cli.razon_social,
TRIM(CONCAT(acli.nombre,' ',COALESCE(acli.ape_paterno,''),' ',COALESCE(acli.ape_materno,'')))AS atencion,
cotcli.num_requerimiento,cotcli.telefono,cotcli.correo,cotcli.guia_remision_ref,cotcli.uso,cotcli.nuestra_ref,
cotcli.num_ot_ref,cotcli.garantia,cotcli.observaciones,fpago.dsc_forma_pago,
cotcli.validez_oferta_dias,cotcli.subtotal,cotcli.dscto,cotcli.igv,cotcli.total,
TRIM(CONCAT(rptaven.nombre,' ',COALESCE(rptaven.ape_paterno,''),' ',COALESCE(rptaven.ape_materno,'')))as rpte_venta,
rptvencar.dsc_cargo,rptaven.email_trabajo AS correo_rpte_venta,
COALESCE(CONCAT(rptaven.telf_celular,IF(rptaven.telf_celular IS NOT NULL,
IF(rptaven.anexo IS NULL,CONCAT(''),CONCAT(' - ',rptaven.anexo)),'')),rptaven.anexo) AS telf_rpte_venta,
tmon.dsc_tipo_moneda AS tipo_moneda,tmon.sigla_moneda,
DATE_FORMAT(cotcli.fecha_reg, '%Y-%m-%d')AS fecha_reg,cotcli.cod_tipo_trabajo
FROM cotizacion_cliente cotcli
INNER JOIN cliente cli ON cli.cod_cliente=cotcli.cod_cliente
LEFT JOIN agente_cliente acli ON acli.cod_agente_cliente=cotcli.cod_agente_cliente
LEFT JOIN forma_pago fpago ON fpago.cod_forma_pago=cotcli.cod_forma_pago
LEFT JOIN personal rptaven ON rptaven.cod_personal=cotcli.cod_rpte_venta
LEFT JOIN cargo rptvencar ON rptvencar.cod_cargo=rptaven.cod_cargo
LEFT JOIN tipo_moneda tmon ON tmon.cod_tipo_moneda=cotcli.cod_tipo_moneda
WHERE cotcli.cod_cotizacion_cliente=".$nID;
//umed.sigla AS umed_abr,
$sQueryDet="SELECT cotclid.nitem,cotclid.cantidad,umed.sigla AS umed_abr,cotclid.codigo_equivalencia_cli,
cotclid.codigo_equivalencia_cot,
TRIM(CONCAT(cotclid.dsc_articulo_cot,' ',COALESCE(CONCAT('(',cotclid.observaciones,')'),'')))AS dsc_articulo_cot,
cotclid.dsc_tiempo_entrega, cotclid.punit, cotclid.importe
FROM cotizacion_cliente_det cotclid
LEFT JOIN equivalencia equiv ON (
(cotclid.cod_equivalencia_cli=equiv.cod_equivalencia AND cotclid.cod_equivalencia_cot IS NULL)
OR (cotclid.cod_equivalencia_cot=equiv.cod_equivalencia AND cotclid.cod_equivalencia_cli IS NULL)
OR (cotclid.cod_equivalencia_cli IS NOT NULL AND cotclid.cod_equivalencia_cot IS NOT NULL
AND cotclid.cod_equivalencia_cot=equiv.cod_equivalencia)
)
LEFT JOIN articulo art ON art.cod_articulo=equiv.cod_articulo
LEFT JOIN unidad_medida umed ON umed.cod_unidad_medida=art.cod_unidad_medida
WHERE cotclid.cod_cotizacion_cliente=".$nID;
$dblink=new mysqli_jd("scomercial");
$respQueryCab=$dblink->fEjecutarQuery($sQueryCab);
$rowCab=$dblink->faDatosResult($respQueryCab);$rowCab=$rowCab[0];
if($rowCab['cod_tipo_trabajo']==2)$sQueryDet="CALL prc_cotizacion_reparacion_info(".$nID.")";
$respQueryDet=$dblink->fEjecutarQuery($sQueryDet);
$rowDet=$dblink->faDatosResult($respQueryDet);
$dblink->flnkClose();
//echo count($rowDet);exit;
$pageMargins =$objPHPExcel->getActiveSheet()->getPageMargins();
// margin is set in inches (0.5cm)
$margin=0.5;
$margin = $margin / 2.54;
//$pageMargins->setTop($margin);//$pageMargins->setBottom($margin);
$pageMargins->setTop($margin);
$pageMargins->setLeft($margin);
$pageMargins->setRight($margin);
//HEADER
$objDrawing = new PHPExcel_Worksheet_HeaderFooterDrawing();
$objDrawing->setName('PHPExcel logo');
$objDrawing->setPath('../imagenes/img/marcas.jpg');
//$objDrawing->setHeight(40);
$objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing, PHPExcel_Worksheet_HeaderFooter::IMAGE_FOOTER_CENTER);
$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&C&G');
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("C1","B&L ASOCIADOS S.A.")
->setCellValue("B3","RUC 20267390631")
->setCellValue("B4","JR. SAN MARTIN 472 MIRAFLORES - LIMA 18")
->setCellValue("B5","TEL: 2427482 / 2428924 / 2422719");
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("G2","N°")
//->setCellValue("H2","00001")
->setCellValue("I2","20".$sNumAnio)
->setCellValue("G3","DIA")
->setCellValue("H3","MES")
->setCellValue("I3","AÑO");
$objPHPExcel->agregarValorACelda("H2",$sNumDoc,"str");//NUM COTIZACION
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("A7","SEÑORES:")
->setCellValue("A8","REFERENCIA:")
->setCellValue("A9","TELÉFONO:")
->setCellValue("A10","CORREO:")
->setCellValue("A11","ATENCIÓN:")
->setCellValue("A12","G/R N.:");
$objPHPExcel->agregarValorACelda("D7",$rowCab['razon_social'],"str");
$objPHPExcel->agregarValorACelda("D8",$rowCab['num_requerimiento'],"str");
$objPHPExcel->agregarValorACelda("D9",$rowCab['telefono'],"str",
array("alignment"=>array("horizontal"=>PHPExcel_Style_Alignment
::HORIZONTAL_LEFT,"wrap"=>true))); $objPHPExcel->agregarValorACelda("D10",$rowCab['correo'],"str",
array("alignment"=>array("horizontal"=>PHPExcel_Style_Alignment
::HORIZONTAL_LEFT,"wrap"=>true))); $objPHPExcel->agregarValorACelda("D11",$rowCab['atencion'],"str");
$objPHPExcel->agregarValorACelda("D12",$rowCab['guia_remision_ref'],"str");
$objPHPExcel->agregarValorACelda("G7","FORMA DE PAGO:","str",
$objPHPExcel->agregarValorACelda("G8",$rowCab['dsc_forma_pago'],"str");
$objPHPExcel->agregarValorACelda("G9","Para cualquier consulta, contacte a:","str",
$objPHPExcel->agregarValorACelda("G10",$rowCab['rpte_venta'],"str");
$objPHPExcel->agregarValorACelda("G11",$rowCab["correo_rpte_venta"],"str");
$objPHPExcel->agregarValorACelda("G12",$rowCab['telf_rpte_venta'],"str");
$objPHPExcel->getActiveSheet()->getStyle("A7:C12")
->applyFromArray(array("alignment"=>array("horizontal"=>PHPExcel_Style_Alignment
::HORIZONTAL_RIGHT), "font"=>array("bold"=>true)));
$objPHPExcel->getActiveSheet()->getStyle("G7:I12")
->applyFromArray(array("alignment"=>array("horizontal"=>PHPExcel_Style_Alignment
::HORIZONTAL_CENTER,"wrap"=>true)));
$nItemsMin=20;$nTotalItems=0;
$aTituloDet=array("Item","Cant.","Unid. Medida","Código Cliente","N/P","Descripción", "Tiempo de Entrega","Precio Unitario ".$rowCab['sigla_moneda'],"Precio Total ".$rowCab['sigla_moneda']);
$aTipoDato=array("str","int","str","str","str","str","str","0.00","0.00");
$nTotalItems=count($rowDet); $objPHPExcel->pConvertArrayToEXCEL("",$rowDet,$aTituloDet,array(13+$nSaltoLineaRep,0),$aTipoDato); if($nTotalItems>$nItemsMin){//22>20
$nSaltoLinea+=$nTotalItems-$nItemsMin;
}
$objPHPExcel->getActiveSheet()->getStyle("A".(14+$nSaltoLineaRep).":I".(34+$nSaltoLinea))
->applyFromArray(array("borders" => array("allborders" => array("style" => PHPExcel_Style_Border
::BORDER_THIN)), "font"=>array("size"=>9),"alignment"=>array("horizontal"=>PHPExcel_Style_Alignment
::HORIZONTAL_CENTER, "wrap"=>true)));//GRILLA DETALLE
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("H".(38+$nSaltoLinea),"SubTotal:")
->setCellValue("H".(39+$nSaltoLinea),"Dsct. ".($fDsctoGral>0?$fDsctoGral:'')."%:")
->setCellValue("H".(40+$nSaltoLinea),"I.G.V. ".$fIGVGral."%:")
->setCellValue("H".(41+$nSaltoLinea),"Total ".$rowCab['sigla_moneda'].":");
header('Content-Type: application/vnd.ms-excel');//PARA EXCEL5 header("Content-Disposition: attachment;filename=".$sNombreArchivo.".xls"); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');