<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Descargas extends CI_Controller 
{
	function __construct() 
	{
		parent::__construct();
		
		$this->load->model('facturacion_modelo','facturacion');
		$this->load->model('modeloclientes','clientes');
    }

	public function generarCodigoBidimensional($factura,$configuracion)
	{
		$this->load->helper('qrlib');

		$partes		=explode(".",$factura->total);
		
		$entero		=$partes[0];
		$decimal	=$partes[1];
		
		$valor		=strlen($entero);
		$ceros		=10-$valor;
		$ceroEntero	="";
		
		for($i=1;$i<=$ceros;$i++)
		{
			$ceroEntero.="0";
		}
		
		$ceroEntero.=$entero;
		
		$valor			=strlen($decimal);
		$ceros			=6-$valor;
		$ceroDecimal	="";
		
		for($i=1;$i<=$ceros;$i++)
		{
			$ceroDecimal.="0";
		}
		
		$ceroDecimal			=$decimal.$ceroDecimal;
		$codigoBidimensional 	= "?re=".$configuracion->rfc."&rr=".$factura->rfc."&tt=".$ceroEntero.".".$ceroDecimal."&id=".$factura->UUID."";
		
		#echo $codigoBidimensional;
		
		$codigo='media/fel/'.$factura->idLicencia.'_facturacion/cfdi/folio'.$factura->folio.'/codigo'.$factura->folio.'.png';
		
		if(!file_exists($codigo))
		{
			QRcode::png($codigoBidimensional, $codigo, 'L', 3, 2);
		}
	}
	
	public function cfdi($documento,$encriptacion)
	{
		$this->load->library('mpdf/mpdf');
		$this->load->library('ccantidadletras');
		
		$data['factura'] 		=$this->facturacion->obtenerFacturaEncriptada($encriptacion);
		$data['cliente'] 		=$this->clientes->obtenerDatosCliente($data['factura']->idCliente);
		$data['productos'] 		=$this->facturacion->obtenerProductosFacturados($data['factura']->idCotizacion);
		$data['retencion'] 		=$this->facturacion->obtenerRetencion($idFactura);
		$data['configuracion'] 	=$this->facturacion->obtenerConfiguracion();
		$data['reporte'] 		='facturacion/factura';
		
		$this->generarCodigoBidimensional($data['factura'],$data['configuracion']);

		$this->ccantidadletras->setIdioma("ES");
        $this->ccantidadletras->setNumero($data['factura']->total);
		$this->ccantidadletras->setMoneda($data['factura']->divisa);//
		
		$CantidadLetras			=$this->ccantidadletras->PrimeraMayuscula();
		$data['cantidadLetra']	=$CantidadLetras;
		
		$html	=$this->load->view('facturacion/principal',$data,true);
		$pie 	= $this->load->view('facturacion/pie',$data,true);
		
		$this->mpdf->mPDF('en-x','Letter','','',10,10,5,47,2,0);
		$this->mpdf->SetHTMLFooter($pie);
		$this->mpdf->SetHTMLFooter($pie,'E');
		$this->mpdf->mirrorMargins = 1;
		$this->mpdf->WriteHTML($html);
		$this->mpdf->Output();
	}
	
	function descargarFacturaPdf($encriptacion) #Descargar el archivo XML
	{
		$this->load->helper('download');
		
		$configuracion 	=$this->facturacion->obtenerConfiguracion();
		$factura		=$this->facturacion->obtenerFacturaEncriptacion($encriptacion);
		$folio			=$factura->folio;

		$fichero 		= $encriptacion.'.pdf';
		$descarga 		= $configuracion->rfc.'_'.$factura->serie.'_'.$folio.'.pdf';
		$data 			= file_get_contents("media/fel/".$factura->idLicencia."_facturacion/cfdi/folio".$folio."/$fichero"); 
		
		force_download($descarga, $data); 
	}
	
	function descargarXML($encriptacion) #Descargar el archivo XML
	{
		$this->load->helper('download');
		
		$configuracion 	=$this->facturacion->obtenerConfiguracion();
		$factura		=$this->facturacion->obtenerFacturaEncriptacion($encriptacion);
		$folio			=$factura->folio;

		$fichero 		= 'cfdi'.$folio.'Timbre.xml';
		$descarga 		= $configuracion->rfc.'_'.$factura->serie.'_'.$folio.'.xml';
		$data 			= file_get_contents("media/fel/".$factura->idLicencia."_facturacion/cfdi/folio".$folio."/$fichero"); 
		
		force_download($descarga, $data); 
	}
	
	function descargarXMLsss($encriptacion)
	{
		$this->load->helper('download');
		
		$factura=$this->facturacion->obtenerFacturaEncriptada($encriptacion);
		
		$nombreFisico = 'Folio'.$factura->folioInterno."Timbre.xml";
		$nombreDescarga = $factura->folioInterno.'.xml';
		$data = file_get_contents("ficheros/factura/folio_".$factura->folioInterno."/$nombreFisico"); 
		
		force_download($nombreDescarga, $data); 
	}
}
