示例#1
0
        public static ReportClass GenerarPDF(ref string error, Modelo.Factura factura, Logger logger)
        {
            try
            {
                var facturaReporte = (ReportClass)Activator.CreateInstance(Type.GetType(factura.Formato.NombreFormato));
                //var facturaReporte = new Reportes.FacturaNormalLila();
                Datos.Datos datos    = new Datos.Datos();
                var         _colores = factura.Sucursal.ColorReporte.Split(',');
                datos.Cliente.AddClienteRow(
                    factura.Cliente.Descripcion, factura.Cliente.Rfc, factura.Cliente.Calle, factura.Cliente.CodigoPostal,
                    factura.Cliente.Ciudad, factura.Cliente.Colonia, factura.Cliente.Municipio, factura.Cliente.Estado, factura.Cliente.Pais
                    );
                datos.Sucursal.AddSucursalRow(
                    factura.Sucursal.Descripcion, factura.Sucursal.Rfc, factura.Sucursal.Calle, factura.Sucursal.CodigoPostal,
                    factura.Sucursal.Ciudad, factura.Sucursal.Colonia, factura.Sucursal.Municipio, factura.Sucursal.Estado, factura.Sucursal.Pais, factura.Sucursal.LogoBytes, factura.Regimen.Descripcion,
                    "", factura.Sucursal.Telefono, factura.Sucursal.Celular, int.Parse(_colores[0]), int.Parse(_colores[1]), int.Parse(_colores[2])
                    );
                if (factura.Complementos.Count > 0)
                {
                    try
                    {
                        Ine ine = JsonConvert.DeserializeObject <Ine>(factura.Complementos.ElementAt(0).Detalle);
                        datos.Ine.AddIneRow(ine.TipoProceso, ine.TipoComite, ine.ContabilidadId, ine.Ambito, ine.ClaveEntidad, ine.Version);
                    }
                    catch
                    {
                    }
                }
                datos.Factura.AddFacturaRow(
                    factura.Id,
                    factura.Serie, factura.Folio, factura.Tipoventa, factura.Fecha, factura.CantidadEnLetra,
                    factura.MetodoPago.Descripcion, factura.FormaPago.Descripcion, factura.Banco, factura.NoCuentaPago, factura.SubtotalE,
                    factura.SubtotalG, factura.Iva, factura.RetIva, factura.RetIsr, factura.Descuento, factura.Total, factura.SelloCfd, factura.SelloSat, factura.NoCertificadoSat,
                    factura.NoCertificadoEmisor, factura.FechaTimbrado, factura.VersionTimbrado, factura.CadenaOriginal, factura.Tipo, "A", factura.ImagenCbbBytes, factura.FolioFiscal, factura.Ieps, (bool)factura.EsCredito, factura.Observacion
                    );
                datos.RegimenFiscal.AddRegimenFiscalRow(factura.Regimen.Codigo, factura.Regimen.Descripcion);
                datos.FormaPago.AddFormaPagoRow(factura.FormaPago.Codigo, factura.FormaPago.Descripcion);
                datos.MetodoPago.AddMetodoPagoRow(factura.MetodoPago.Codigo, factura.MetodoPago.Descripcion);
                datos.UsoCFDI.AddUsoCFDIRow(factura.UsoCFDI.Codigo, factura.UsoCFDI.Descripcion);
                foreach (var det in factura.Detalles)
                {
                    datos.CatalogoSat.AddCatalogoSatRow(det.CatSatProducto.Codigo, det.CatSatProducto.Descripcion);
                    datos.FactDetalle.AddFactDetalleRow(det.CatSatProducto.Codigo, det.CuentaPredial, det.Codigo, det.Descripcion, det.CatSatUnidad.Descripcion, det.TasaIva,
                                                        det.TasaIeps, det.Precio, det.Cantidad, det.TasaDesc, det.Total, det.Lote, det.FechaCaducidad, det.CatSatUnidad.Codigo);
                }

                facturaReporte.SetDataSource(datos);
                return(facturaReporte);
            }
            catch (Exception e)
            {
                error = e.ToString();
                logger.EscribirError(e.ToString());
                return(null);
            }
        }
 public Boolean GenerarXML(ref string error, string ruta, Modelo.Factura factura, ICollection <DetalleTicket> productos = null)
 {
     if (productos == null)
     {
         if (!GenerarEncabezado(ref error, ruta, factura))
         {
             return(false);
         }
         if (!GenerarEmisor(ref error, factura.Sucursal, factura.Regimen))
         {
             return(false);
         }
         if (!GenerarReceptor(ref error, factura.Cliente, factura.UsoCFDI))
         {
             return(false);
         }
         if (!GenerarDetalle(ref error, factura.Detalles))
         {
             return(false);
         }
         if (!GenerarImpuestos(ref error, factura))
         {
             return(false);
         }
     }
     else
     {
         //GenerarEncabezadoGlobal(ref error, ruta, factura);
         //GenerarEmisor(ref error, factura);
         //GenerarReceptor(ref error, factura);
         //generarDetalle(productos);
         //GenerarImpuestosGlobal(ref error, factura, productos);
     }
     if (factura.Complementos.Count > 0)
     {
         try
         {
             Ine ine = JsonConvert.DeserializeObject <Ine>(factura.Complementos.ElementAt(0).Detalle);
             GenerarComplementoIne(ref error, ine);
         }
         catch
         {
         }
     }
     GenerarFin();
     return(true);
 }
 public void GenerarComplementoIne(ref string error, Ine ine)
 {
     try
     {
         XmlCreador.WriteStartElement("cfdi:Complemento");
         // x.WriteStartElement("cfdi:Complemento"); //element de conceptos
         XmlCreador.WriteStartElement("ine:INE");
         XmlCreador.WriteStartAttribute("xmlns:xsi");
         XmlCreador.WriteValue("http://www.sat.gob.mx/ine");
         XmlCreador.WriteEndAttribute();
         XmlCreador.WriteStartAttribute("Version");
         XmlCreador.WriteValue("1.1");
         XmlCreador.WriteEndAttribute();
         XmlCreador.WriteStartAttribute("TipoProceso");
         XmlCreador.WriteValue(ine.TipoProceso);
         XmlCreador.WriteEndAttribute();
         if (!ine.TipoProceso.Equals("PreCampaña") && (!ine.TipoProceso.Equals("Campaña")))
         {
             XmlCreador.WriteStartAttribute("TipoComite");
             XmlCreador.WriteValue(ine.TipoComite);
             XmlCreador.WriteEndAttribute();
         }
         XmlCreador.WriteStartElement("ine:Entidad");
         XmlCreador.WriteStartAttribute("ClaveEntidad");
         XmlCreador.WriteValue(ine.ClaveEntidad);
         XmlCreador.WriteEndAttribute();
         XmlCreador.WriteStartAttribute("Ambito");
         XmlCreador.WriteValue(ine.Ambito);
         XmlCreador.WriteEndAttribute();
         XmlCreador.WriteStartElement("ine:Contabilidad");
         XmlCreador.WriteStartAttribute("IdContabilidad");
         XmlCreador.WriteValue(ine.ContabilidadId);
         XmlCreador.WriteEndAttribute();
         XmlCreador.WriteEndElement();
         XmlCreador.WriteEndElement();
         XmlCreador.WriteEndElement();
         XmlCreador.WriteEndElement();
     }
     catch (Exception e)
     {
         _logger.EscribirError(e.ToString());
     }
 }