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()); } }