Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/05/2016, 14:29
oggy_15_3
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Error al generar Excel desde php - GET

Cita:
Iniciado por xfxstudios Ver Mensaje
y el codigo????
No lo puse porque no hay error por parte de PHP y si posteo esto en el foro html o web en sí muchas de las páginas indican que se debe aun virus, pero si es necesario ahí va. Aunque repito que el error no está en el código, sino no me generaría las demás cotizaciones.
PD: El código está reducido puesto que es muy largo y no me permite subirlo todo.
Código PHP:
Ver original
  1. require_once("../info_sesion.php");
  2. require_once("../cls_mysqli.php");
  3. require_once("../funciones.php");
  4.  
  5. set_time_limit(0);//Tiempo maximo 60 -> 1 min ; 600 ->10 min.. (TIEMPO MAXIMO DE ESPERA)
  6. ini_set("memory_limit","1024M");//maxima memoria que se utilizara temporalmente (archivos con grandes registros)- usando multiceldas no se puede exportar las equivalencias
  7. $sIdDivPrincipal="";$sProceso="";$nID="";
  8. $sNombreArchivo="rpt_sin_nombre";//nombre por defecto
  9. $sQueryCab="";$sQueryDet="";$nSaltoLinea=1;//
  10.  
  11. if(isset($_GET['sIdDivPrincipal'])){$sIdDivPrincipal=$_GET['sIdDivPrincipal'];}
  12. if(isset($_GET['sProceso'])){$sProceso=$_GET['sProceso'];}
  13. if(isset($_GET['nID'])){$nID=$_GET['nID'];}
  14.  
  15. switch($sProceso){
  16.     case "XLS":
  17.         require_once '../ClassesPHPExcel/PHPExcel.php';
  18.             require_once '../ClassesPHPExcel/PHPExcel/IOFactory.php';
  19.             require_once '../ClassesPHPExcel/PHPExcel/Writer/Excel5.php';
  20.             require_once '../ClassesPHPExcel/PHPExcel/RichText.php';
  21.        
  22.             $styleBordeAll = array(
  23.                 'borders' => array(
  24.                     'allborders' => array(
  25.                         'style' => PHPExcel_Style_Border::BORDER_THIN,
  26.                       //'color' => array('argb' => '#03F'),
  27.                     )
  28.                 ),
  29.             );
  30.             $styleBorderOutLine=array("borders"=>array("outline"=>
  31.             array("style"=>PHPExcel_Style_Border::BORDER_THIN,"color"=>array('argb' => '00000000'))));
  32.        
  33.         $objPHPExcel = new PHPExcel();
  34.         $objPHPExcel->setActiveSheetIndex(0);
  35.         $objPHPExcel->getDefaultStyle()->getFont()
  36.         ->setName('Arial')
  37.         ->setSize(9);//Calibri
  38.         $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4); //HOJA A4
  39.         $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT);//VERTICAL
  40. $sQueryCab="SELECT cotcli.num_cotizacion_cliente,cli.razon_social,
  41.             TRIM(CONCAT(acli.nombre,' ',COALESCE(acli.ape_paterno,''),' ',COALESCE(acli.ape_materno,'')))AS atencion,
  42.             cotcli.num_requerimiento,cotcli.telefono,cotcli.correo,cotcli.guia_remision_ref,cotcli.uso,cotcli.nuestra_ref,
  43.             cotcli.num_ot_ref,cotcli.garantia,cotcli.observaciones,fpago.dsc_forma_pago,
  44.             cotcli.validez_oferta_dias,cotcli.subtotal,cotcli.dscto,cotcli.igv,cotcli.total,
  45.             TRIM(CONCAT(rptaven.nombre,' ',COALESCE(rptaven.ape_paterno,''),' ',COALESCE(rptaven.ape_materno,'')))as rpte_venta,
  46.             rptvencar.dsc_cargo,rptaven.email_trabajo AS correo_rpte_venta,
  47.             COALESCE(CONCAT(rptaven.telf_celular,IF(rptaven.telf_celular IS NOT NULL,
  48.             IF(rptaven.anexo IS NULL,CONCAT(''),CONCAT(' - ',rptaven.anexo)),'')),rptaven.anexo) AS telf_rpte_venta,
  49.            
  50.             tmon.dsc_tipo_moneda AS tipo_moneda,tmon.sigla_moneda,
  51.             DATE_FORMAT(cotcli.fecha_reg, '%Y-%m-%d')AS fecha_reg,cotcli.cod_tipo_trabajo
  52.             FROM cotizacion_cliente cotcli
  53.             INNER JOIN cliente cli ON cli.cod_cliente=cotcli.cod_cliente           
  54.             LEFT JOIN agente_cliente acli ON acli.cod_agente_cliente=cotcli.cod_agente_cliente
  55.  
  56.             LEFT JOIN forma_pago fpago ON fpago.cod_forma_pago=cotcli.cod_forma_pago
  57.             LEFT JOIN personal rptaven ON rptaven.cod_personal=cotcli.cod_rpte_venta
  58.             LEFT JOIN cargo rptvencar ON rptvencar.cod_cargo=rptaven.cod_cargo
  59.             LEFT JOIN tipo_moneda tmon ON tmon.cod_tipo_moneda=cotcli.cod_tipo_moneda
  60.             WHERE cotcli.cod_cotizacion_cliente=".$nID;
  61.             //umed.sigla AS umed_abr,  
  62.             $sQueryDet="SELECT cotclid.nitem,cotclid.cantidad,umed.sigla AS umed_abr,cotclid.codigo_equivalencia_cli,
  63.             cotclid.codigo_equivalencia_cot,
  64.             TRIM(CONCAT(cotclid.dsc_articulo_cot,' ',COALESCE(CONCAT('(',cotclid.observaciones,')'),'')))AS dsc_articulo_cot,
  65.             cotclid.dsc_tiempo_entrega, cotclid.punit, cotclid.importe
  66.             FROM cotizacion_cliente_det cotclid
  67.             LEFT JOIN equivalencia equiv ON (
  68.             (cotclid.cod_equivalencia_cli=equiv.cod_equivalencia AND cotclid.cod_equivalencia_cot IS NULL)
  69.             OR (cotclid.cod_equivalencia_cot=equiv.cod_equivalencia AND cotclid.cod_equivalencia_cli IS NULL)
  70.             OR (cotclid.cod_equivalencia_cli IS NOT NULL AND cotclid.cod_equivalencia_cot IS NOT NULL
  71.                 AND cotclid.cod_equivalencia_cot=equiv.cod_equivalencia)
  72.             )
  73.             LEFT JOIN articulo art ON art.cod_articulo=equiv.cod_articulo
  74.             LEFT JOIN unidad_medida umed ON umed.cod_unidad_medida=art.cod_unidad_medida
  75.             WHERE cotclid.cod_cotizacion_cliente=".$nID;   
  76. $dblink=new mysqli_jd("scomercial");
  77.             $respQueryCab=$dblink->fEjecutarQuery($sQueryCab);
  78.             $rowCab=$dblink->faDatosResult($respQueryCab);$rowCab=$rowCab[0];
  79.            
  80.             if($rowCab['cod_tipo_trabajo']==2)$sQueryDet="CALL prc_cotizacion_reparacion_info(".$nID.")";
  81.            
  82.             $respQueryDet=$dblink->fEjecutarQuery($sQueryDet);
  83.             $rowDet=$dblink->faDatosResult($respQueryDet);
  84.             $dblink->flnkClose();
  85.             //echo count($rowDet);exit;
  86.            
  87.             $pageMargins =$objPHPExcel->getActiveSheet()->getPageMargins();
  88.             // margin is set in inches (0.5cm)
  89.             $margin=0.5;
  90.             $margin = $margin / 2.54;
  91.             //$pageMargins->setTop($margin);//$pageMargins->setBottom($margin);
  92.             $pageMargins->setTop($margin);
  93.             $pageMargins->setLeft($margin);
  94.             $pageMargins->setRight($margin);
  95.  
  96. //HEADER
  97.                 $objDrawing = new PHPExcel_Worksheet_HeaderFooterDrawing();
  98.                 $objDrawing->setName('PHPExcel logo');
  99.                 $objDrawing->setPath('../imagenes/img/marcas.jpg');
  100.                 //$objDrawing->setHeight(40);
  101.                 $objPHPExcel->getActiveSheet()->getHeaderFooter()->addImage($objDrawing, PHPExcel_Worksheet_HeaderFooter::IMAGE_FOOTER_CENTER);
  102.                 $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&C&G');
  103.                
  104.                 $objPHPExcel->setActiveSheetIndex(0)
  105.                 ->setCellValue("C1","B&L ASOCIADOS S.A.")
  106.                 ->setCellValue("B3","RUC 20267390631")
  107.                 ->setCellValue("B4","JR. SAN MARTIN 472 MIRAFLORES - LIMA 18")
  108.                 ->setCellValue("B5","TEL: 2427482 / 2428924 / 2422719");
  109.                
  110.            
  111.                 $objPHPExcel->setActiveSheetIndex(0)
  112.                 ->setCellValue("G2","N°")
  113.                 //->setCellValue("H2","00001")
  114.                 ->setCellValue("I2","20".$sNumAnio)
  115.                 ->setCellValue("G3","DIA")
  116.                 ->setCellValue("H3","MES")
  117.                 ->setCellValue("I3","AÑO");
  118.                
  119.                 $objPHPExcel->agregarValorACelda("H2",$sNumDoc,"str");//NUM COTIZACION
  120.                
  121.                 $objPHPExcel->setActiveSheetIndex(0)
  122.                 ->setCellValue("A7","SEÑORES:")
  123.                 ->setCellValue("A8","REFERENCIA:")
  124.                 ->setCellValue("A9","TELÉFONO:")
  125.                 ->setCellValue("A10","CORREO:")
  126.                 ->setCellValue("A11","ATENCIÓN:")
  127.                 ->setCellValue("A12","G/R N.:");
  128.                
  129.                 $objPHPExcel->agregarValorACelda("D7",$rowCab['razon_social'],"str");
  130.                 $objPHPExcel->agregarValorACelda("D8",$rowCab['num_requerimiento'],"str");
  131.                 $objPHPExcel->agregarValorACelda("D9",$rowCab['telefono'],"str",
  132.                 array("alignment"=>array("horizontal"=>PHPExcel_Style_Alignment::HORIZONTAL_LEFT,"wrap"=>true)));
  133.                 $objPHPExcel->agregarValorACelda("D10",$rowCab['correo'],"str",
  134.                 array("alignment"=>array("horizontal"=>PHPExcel_Style_Alignment::HORIZONTAL_LEFT,"wrap"=>true)));
  135.                 $objPHPExcel->agregarValorACelda("D11",$rowCab['atencion'],"str");
  136.                 $objPHPExcel->agregarValorACelda("D12",$rowCab['guia_remision_ref'],"str");
  137.                
  138.                 $objPHPExcel->agregarValorACelda("G7","FORMA DE PAGO:","str",
  139.                 array("font"=>array("bold"=>true)));
  140.                 $objPHPExcel->agregarValorACelda("G8",$rowCab['dsc_forma_pago'],"str");
  141.                 $objPHPExcel->agregarValorACelda("G9","Para cualquier consulta, contacte a:","str",
  142.                 array("font"=>array("bold"=>true)));
  143.                 $objPHPExcel->agregarValorACelda("G10",$rowCab['rpte_venta'],"str");
  144.                 $objPHPExcel->agregarValorACelda("G11",$rowCab["correo_rpte_venta"],"str");
  145.                 $objPHPExcel->agregarValorACelda("G12",$rowCab['telf_rpte_venta'],"str");
  146.                
  147.                 $objPHPExcel->getActiveSheet()->getStyle("A7:C12")
  148.                 ->applyFromArray(array("alignment"=>array("horizontal"=>PHPExcel_Style_Alignment::HORIZONTAL_RIGHT),
  149.                 "font"=>array("bold"=>true)));
  150.                
  151.                 $objPHPExcel->getActiveSheet()->getStyle("G7:I12")
  152.                 ->applyFromArray(array("alignment"=>array("horizontal"=>PHPExcel_Style_Alignment::HORIZONTAL_CENTER,"wrap"=>true)));
  153.                
  154.                
  155.                 $nItemsMin=20;$nTotalItems=0;
  156.                
  157.                 $aTituloDet=array("Item","Cant.","Unid. Medida","Código Cliente","N/P","Descripción",
  158.                 "Tiempo de Entrega","Precio Unitario ".$rowCab['sigla_moneda'],"Precio Total ".$rowCab['sigla_moneda']);
  159.                 $aTipoDato=array("str","int","str","str","str","str","str","0.00","0.00");
  160.  
  161.                 $nTotalItems=count($rowDet);
  162.                 $objPHPExcel->pConvertArrayToEXCEL("",$rowDet,$aTituloDet,array(13+$nSaltoLineaRep,0),$aTipoDato);
  163.                 if($nTotalItems>$nItemsMin){//22>20
  164.                     $nSaltoLinea+=$nTotalItems-$nItemsMin;
  165.                 }
  166.                
  167.                 $objPHPExcel->getActiveSheet()->getStyle("A".(14+$nSaltoLineaRep).":I".(34+$nSaltoLinea))
  168.                 ->applyFromArray(array("borders" => array("allborders" => array("style" => PHPExcel_Style_Border::BORDER_THIN)),
  169.                 "font"=>array("size"=>9),"alignment"=>array("horizontal"=>PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
  170.                 "wrap"=>true)));//GRILLA DETALLE
  171.            
  172.                
  173.                 $objPHPExcel->setActiveSheetIndex(0)
  174.                 ->setCellValue("H".(38+$nSaltoLinea),"SubTotal:")
  175.                 ->setCellValue("H".(39+$nSaltoLinea),"Dsct. ".($fDsctoGral>0?$fDsctoGral:'')."%:")
  176.                 ->setCellValue("H".(40+$nSaltoLinea),"I.G.V. ".$fIGVGral."%:")
  177.                 ->setCellValue("H".(41+$nSaltoLinea),"Total ".$rowCab['sigla_moneda'].":");
  178.  
  179. header('Content-Type: application/vnd.ms-excel');//PARA EXCEL5
  180.             header("Content-Disposition: attachment;filename=".$sNombreArchivo.".xls");
  181.             header('Cache-Control: max-age=0');
  182.             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');