//public static string ImprimirComprobante(int ventaPetroamericaId, int ventaId) public static string ImprimirComprobante(string numeroDocumento, string tipoDocumentoId, string serie, string correlativo, string fechaEmision, decimal montoTotalComprobante) { var mensaje = String.Empty; try { var empresaInfo = new Empresa().Listar(0).FirstOrDefault(); var agenciaInfo = new Agencia().Listar(0).FirstOrDefault(); //var ventaInfo = new Negocio.VentaGasolutions().Listar(ventaPetroamericaId).FirstOrDefault(); var ventaInfoLista = new Negocio.VentaGasolutions().ListarPaginado(0, numeroDocumento, tipoDocumentoId, serie + "-" + correlativo, DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", null), DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", null), 0, 0, 0, 0); var ventaGasolutionsDetalleInfoLista = new List <VentaDetalleGasolutionsInfo>(); //var ventaGasolutionsDetalleInfo = new Negocio.VentaGasolutions().ListarDetalle(ventaPetroamericaId, 0).ToList(); //var ventaGasolutionsDetalleInfo = new Negocio.VentaGasolutions().ListarDetalle(ventaInfo.VentaGasolutionsId, 0).ToList(); ventaInfoLista = ventaInfoLista.Where(v => v.TotalVenta.Equals(montoTotalComprobante)).ToList(); var ventaInfo = new VentaGasolutionsInfo(); if (ventaInfoLista.Count > 0) { ventaInfo = ventaInfoLista.FirstOrDefault(); ventaGasolutionsDetalleInfoLista = new Negocio.VentaGasolutions().ListarDetalle(ventaInfo.VentaGasolutionsId, 0); } else { mensaje = "No se ha encontrado el comprobante." + "@" + "" + "@" + ventaInfo.NroDocumentoReceptor; return(mensaje); } var ventaDetalleInfo = new List <VentaDetalleInfo>(); _documento = new DocumentoElectronico(); #region Documento _documento.CalculoDetraccion = 0; _documento.CalculoIgv = Decimal.Divide(18, 100); _documento.CalculoIsc = 0; _documento.DescuentoGlobal = 0; #region Emisor var emisor = new DocumentoElectronico().Emisor; emisor.Departamento = ventaInfo.DepartamentoEmisor; emisor.Direccion = ventaInfo.DireccionEmisor; emisor.Distrito = ventaInfo.DistritoEmisor; emisor.NombreComercial = ventaInfo.NombreComercialEmisor; emisor.NombreLegal = ventaInfo.NombreLegalEmisor; emisor.NroDocumento = ventaInfo.NroDocumentoEmisor; emisor.Provincia = ventaInfo.ProvinciaEmisor; emisor.TipoDocumento = "6"; emisor.Ubigeo = ventaInfo.UbigeoEmisor; emisor.Urbanizacion = ""; _documento.Emisor = emisor; #endregion _documento.Exoneradas = 0; _documento.FechaEmision = ventaInfo.FechaEmision.ToString("dd/MM/yyyy"); _documento.Gratuitas = 0; _documento.Gravadas = ventaInfo.Gravadas; _documento.IdDocumento = ventaInfo.IdDocumento; _documento.Inafectas = 0; #region Items var itemId = 1; foreach (var vd in ventaGasolutionsDetalleInfoLista) { var item = new DetalleDocumento(); item.Cantidad = vd.Cantidad; item.Descripcion = vd.Descripcion; item.Id = vd.Id; itemId++; item.Impuesto = vd.Impuesto; item.PrecioUnitario = vd.PrecioUnitario; item.Suma = vd.TotalVenta; item.TotalVenta = vd.TotalVenta; item.UnidadMedida = vd.UnidadMedida; item.Descuento = 0; item.ImpuestoSelectivo = 0; item.OtroImpuesto = 0; item.PrecioReferencial = 0; item.TipoImpuesto = "10"; item.TipoPrecio = "01"; _documento.Items.Add(item); } #endregion _documento.Moneda = ventaInfo.MonedaId.Equals(Constantes.MonedaSoles) ? Constantes.MonedaSolesSunat : Constantes.MonedaDolaresSunat; _documento.MontoAnticipo = 0; _documento.MontoDetraccion = 0; _documento.MontoEnLetras = Herramientas.NumeroALetras.numeroAletras(ventaInfo.TotalVenta); _documento.MontoPercepcion = 0; _documento.PlacaVehiculo = ventaInfo.PlacaVehiculo; #region Receptor var receptor = new DocumentoElectronico().Receptor; receptor.Departamento = ""; receptor.Direccion = ventaInfo.DireccionReceptor; receptor.Distrito = ""; receptor.NombreComercial = ventaInfo.NombreComercialReceptor; receptor.NombreLegal = ventaInfo.NombreLegalReceptor; receptor.NroDocumento = ventaInfo.NroDocumentoReceptor; receptor.Provincia = ""; receptor.TipoDocumento = ventaInfo.TipoDocumentoReceptor; receptor.Ubigeo = ""; receptor.Urbanizacion = ""; _documento.Receptor = receptor; #endregion _documento.TipoDocumento = ventaInfo.TipoDocumento; _documento.TotalIgv = ventaInfo.TotalIgv; _documento.TotalIsc = 0; _documento.TotalOtrosTributos = 0; _documento.TotalVenta = ventaInfo.TotalVenta; #endregion string metodoApi; switch (_documento.TipoDocumento) { case "07": metodoApi = "api/GenerarNotaCredito"; break; case "08": metodoApi = "api/GenerarNotaDebito"; break; default: metodoApi = "api/GenerarFactura"; break; } var rutaPdfFactura = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NroDocumentoReceptor + ""); #region Generando XML var client = new RestClient(BaseUrl); var requestInvoice = new RestRequest("GenerarFactura", Method.POST) { RequestFormat = DataFormat.Json }; requestInvoice.AddBody(_documento); var documentoResponse = client.Execute <DocumentoResponse>(requestInvoice); if (!documentoResponse.Data.Exito) { throw new ApplicationException(documentoResponse.Data.MensajeError); } // string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + ".xml"); string rutaXml = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente") + "/" + ventaInfo.NroDocumentoReceptor; if (!Directory.Exists(rutaXml)) { Directory.CreateDirectory(rutaXml); } File.WriteAllBytes(rutaXml + "/" + _documento.IdDocumento + ".xml", Convert.FromBase64String(documentoResponse.Data.TramaXmlSinFirma)); #endregion #region Firma string rutaCertificado = HostingEnvironment.MapPath("~/Archivos/Facturacion/certificado.pfx"); var firmado = new FirmadoRequest { TramaXmlSinFirma = documentoResponse.Data.TramaXmlSinFirma, CertificadoDigital = Convert.ToBase64String(File.ReadAllBytes(rutaCertificado)), PasswordCertificado = "9dGxdmm5JHKwKsXc", UnSoloNodoExtension = false }; var requestFirma = new RestRequest("Firmar", Method.POST) { RequestFormat = DataFormat.Json }; requestFirma.AddBody(firmado); var responseFirma = client.Execute <FirmadoResponse>(requestFirma); if (!responseFirma.Data.Exito) { throw new ApplicationException(responseFirma.Data.MensajeError); } //string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente/" + _documento.IdDocumento + "_Firmado.xml"); string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente") + "/" + ventaInfo.NroDocumentoReceptor; if (!Directory.Exists(rutaXmlFirmado)) { Directory.CreateDirectory(rutaXmlFirmado); } File.WriteAllBytes(rutaXmlFirmado + "/" + _documento.IdDocumento + "_Firmado.xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); #endregion #region Impresión Comprobante var htmlToComprobante = new NReco.PdfGenerator.HtmlToPdfConverter(); var nombreArchivoComprobante = String.Empty; var comprobanteSB = new StringBuilder(); if (ventaInfo.TipoDocumento.Equals(Constantes.TipoComprobanteFactura)) { //comprobanteSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/FacturaPowerGas.html")); comprobanteSB.Append(Herramientas.Helper.ObtenerTexto(PlantillaFactura)); #region Factura comprobanteSB.Replace("@EMPRESA_LOGO", HttpContext.Current.Server.MapPath(empresaInfo.Imagen)); comprobanteSB.Replace("@EMPRESA_NOMBRE", ventaInfo.NombreComercialEmisor); comprobanteSB.Replace("@EMPRESA_RUC", ventaInfo.NroDocumentoEmisor); comprobanteSB.Replace("@NUMEROCOMPROBANTE", ventaInfo.IdDocumento); comprobanteSB.Replace("@EMPRESA_DIRECCION", ventaInfo.DireccionEmisor); comprobanteSB.Replace("@EMPRESA_TELEFONO", String.Empty); comprobanteSB.Replace("@EMPRESA_FAX", String.Empty); comprobanteSB.Replace("@EMPRESA_PAIS", empresaInfo.Pais); comprobanteSB.Replace("@EMPRESA_DEPARTAMENTO", empresaInfo.Departamento); comprobanteSB.Replace("@EMPRESA_PROVINCIA", empresaInfo.Provincia); comprobanteSB.Replace("@EMPRESA_DISTRITO", empresaInfo.Distrito); comprobanteSB.Replace("@FECHAEMISION", ventaInfo.FechaEmision.ToString("dd/MM/yyyy")); comprobanteSB.Replace("@AGENCIA_DIRECCION", agenciaInfo.Direccion); //var clienteInfo = new Cliente().Listar(ventaInfo.ClienteId).FirstOrDefault(); comprobanteSB.Replace("@CLIENTE_NOMBRE", ventaInfo.NombreComercialReceptor); comprobanteSB.Replace("@CLIENTE_DIRECCION", ventaInfo.DireccionReceptor); comprobanteSB.Replace("@CLIENTE_DISTRITO", String.Empty); comprobanteSB.Replace("@CLIENTE_RUC", ventaInfo.NroDocumentoReceptor); comprobanteSB.Replace("@CLIENTE_CODIGO", String.Empty); comprobanteSB.Replace("@MONEDA", ventaInfo.Moneda); var facturaSBDetalle = new StringBuilder(""); facturaSBDetalle.Append("<table style=\"width: 100%; border-collapse: collapse;\">"); facturaSBDetalle.Append(" <thead>"); facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">ITEM</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">DESCRIPCIÓN</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">CANT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">UND</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">VALOR UNIT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">SUBTOTAL</td>"); facturaSBDetalle.Append(" </tr>"); facturaSBDetalle.Append(" </thead>"); var montoGravado = 0M; var montoImpuestoTotal = 0M; foreach (var vd in ventaGasolutionsDetalleInfoLista) { facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.CodigoItem + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border: 1px none #0b44e9; text-align: left; vertical-align: top;\" class=\"Estilo8\">" + vd.Descripcion + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + ((vd.TotalVenta - vd.Impuesto) / vd.PrecioUnitario).ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.UnidadMedida + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.PrecioUnitario.ToString("N2") + "</td>"); //facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + (vd.Cantidad * vd.PrecioUnitario).ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + (vd.TotalVenta - vd.Impuesto).ToString("N2") + "</td>"); facturaSBDetalle.Append(" </tr>"); montoGravado = montoGravado + vd.TotalVenta; } facturaSBDetalle.Append("</table>"); var montoIgv = montoGravado * 0.18M; var montoTotal = montoGravado + montoIgv; comprobanteSB.Replace("@MONTO_GRAVADA", ventaInfo.Gravadas.ToString("N2")); comprobanteSB.Replace("@MONTO_INAFECTA", "0.00"); comprobanteSB.Replace("@MONTO_EXONERADA", "0.00"); comprobanteSB.Replace("@MONTO_GRATUITA", "0.00"); comprobanteSB.Replace("@MONTO_IGV", ventaInfo.TotalIgv.ToString("N2")); comprobanteSB.Replace("@MONTO_TOTAL", ventaInfo.TotalVenta.ToString("N2")); comprobanteSB.Replace("@PRODUCTO_DETALLE", facturaSBDetalle.ToString()); #endregion nombreArchivoComprobante = "Factura_" + DateTime.Now.ToString("ddMMyyyyhhmmss"); // + ".pdf"; } if (ventaInfo.TipoDocumento.Equals(Constantes.TipoComprobanteBoletaVenta)) { //comprobanteSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/BoletaPowerGas.html")); comprobanteSB.Append(Herramientas.Helper.ObtenerTexto(PlantillaBoleta)); #region Boleta comprobanteSB.Replace("@EMPRESA_LOGO", HttpContext.Current.Server.MapPath(empresaInfo.Imagen)); comprobanteSB.Replace("@EMPRESA_NOMBRE", ventaInfo.NombreComercialEmisor); comprobanteSB.Replace("@EMPRESA_RUC", ventaInfo.NroDocumentoEmisor); comprobanteSB.Replace("@NUMEROCOMPROBANTE", ventaInfo.IdDocumento); comprobanteSB.Replace("@EMPRESA_DIRECCION", ventaInfo.DireccionEmisor); comprobanteSB.Replace("@EMPRESA_TELEFONO", String.Empty); comprobanteSB.Replace("@EMPRESA_FAX", String.Empty); comprobanteSB.Replace("@EMPRESA_PAIS", empresaInfo.Pais); comprobanteSB.Replace("@EMPRESA_DEPARTAMENTO", empresaInfo.Departamento); comprobanteSB.Replace("@EMPRESA_PROVINCIA", empresaInfo.Provincia); comprobanteSB.Replace("@EMPRESA_DISTRITO", empresaInfo.Distrito); comprobanteSB.Replace("@FECHAEMISION", ventaInfo.FechaEmision.ToString("dd/MM/yyyy")); comprobanteSB.Replace("@AGENCIA_DIRECCION", agenciaInfo.Direccion); //var clienteInfo = new Cliente().Listar(ventaInfo.ClienteId).FirstOrDefault(); comprobanteSB.Replace("@CLIENTE_NOMBRE", ventaInfo.NombreComercialReceptor); comprobanteSB.Replace("@CLIENTE_DIRECCION", ventaInfo.DireccionReceptor); comprobanteSB.Replace("@CLIENTE_DISTRITO", String.Empty); comprobanteSB.Replace("@CLIENTE_RUC", ventaInfo.NroDocumentoReceptor); comprobanteSB.Replace("@CLIENTE_CODIGO", String.Empty); comprobanteSB.Replace("@MONEDA", ventaInfo.Moneda); var facturaSBDetalle = new StringBuilder(""); facturaSBDetalle.Append("<table style=\"width: 100%; border-collapse: collapse;\">"); facturaSBDetalle.Append(" <thead>"); facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">ITEM</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">DESCRIPCIÓN</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">CANT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">UND</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">VALOR UNIT</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border-bottom: 1px solid #0b44e9; text-align: center;\" class=\"Estilo67\">SUBTOTAL</td>"); facturaSBDetalle.Append(" </tr>"); facturaSBDetalle.Append(" </thead>"); var montoGravado = 0M; var montoImpuestoTotal = 0M; foreach (var vd in ventaGasolutionsDetalleInfoLista) { facturaSBDetalle.Append(" <tr>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.CodigoItem + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 50%; border: 1px none #0b44e9; text-align: left; vertical-align: top;\" class=\"Estilo8\">" + vd.Descripcion + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + ((vd.TotalVenta - vd.Impuesto) / vd.PrecioUnitario).ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.UnidadMedida + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + vd.PrecioUnitario.ToString("N2") + "</td>"); facturaSBDetalle.Append(" <td style=\"width: 10%; border: 1px none #0b44e9; text-align: center; vertical-align: top;\" class=\"Estilo8\">" + (vd.TotalVenta - vd.Impuesto).ToString("N2") + "</td>"); facturaSBDetalle.Append(" </tr>"); montoGravado = montoGravado + vd.TotalVenta; } facturaSBDetalle.Append("</table>"); var montoIgv = montoGravado * 0.18M; var montoTotal = montoGravado + montoIgv; comprobanteSB.Replace("@MONTO_GRAVADA", ventaInfo.Gravadas.ToString("N2")); comprobanteSB.Replace("@MONTO_INAFECTA", "0.00"); comprobanteSB.Replace("@MONTO_EXONERADA", "0.00"); comprobanteSB.Replace("@MONTO_GRATUITA", "0.00"); comprobanteSB.Replace("@MONTO_IGV", ventaInfo.TotalIgv.ToString("N2")); comprobanteSB.Replace("@MONTO_TOTAL", ventaInfo.TotalVenta.ToString("N2")); comprobanteSB.Replace("@PRODUCTO_DETALLE", facturaSBDetalle.ToString()); #endregion nombreArchivoComprobante = "Boleta_" + DateTime.Now.ToString("ddMMyyyyhhmmss"); // + ".pdf"; } if (!Directory.Exists(rutaPdfFactura)) { Directory.CreateDirectory(rutaPdfFactura); } #region Codigo QR var codigoQR = ventaInfo.NroDocumentoReceptor + "|" + ventaInfo.TipoDocumento + "|" + ventaInfo.IdDocumento.Substring(0, 4) + "|" + ventaInfo.IdDocumento.Substring(5, ventaInfo.IdDocumento.Length - 5) + "|" + ventaInfo.TotalIgv + "|" + ventaInfo.TotalVenta + "|" + ventaInfo.FechaEmision + "|" + ventaInfo.TipoDocumentoReceptor + "|" + ventaInfo.NroDocumentoReceptor + "|" + responseFirma.Data.ResumenFirma + "|" + responseFirma.Data.ValorFirma; // instantiate a writer object var barcodeWriter = new BarcodeWriter(); // set the barcode format barcodeWriter.Format = BarcodeFormat.PDF_417; // write text and generate a 2-D barcode as a bitmap // barcodeWriter.Write(codigoQR).Save(@"C:\Users\jeremy\Desktop\generated.bmp"); //barcodeWriter.Write(codigoQR).Save(HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NumeroDocumentoCliente + "/" + _documento.IdDocumento + ".bmp")); barcodeWriter.Write(codigoQR).Save(rutaPdfFactura + "/" + _documento.IdDocumento + ".bmp"); #endregion comprobanteSB.Replace("@CODIGO_QR", HttpContext.Current.Server.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NroDocumentoReceptor + "/" + _documento.IdDocumento + ".bmp")); comprobanteSB.Replace("@MONTO_LETRAS", Herramientas.NumeroALetras.numeroAletras(ventaInfo.TotalVenta)); comprobanteSB = Herramientas.Helper.EncodeHtml(comprobanteSB); //var margins = new PageMargins(); //margins.Left = 1; //htmlToComprobante.Margins = margins; var pdfBytesFactura = htmlToComprobante.GeneratePdf(comprobanteSB.ToString()); // var comprobanteImpreso = rutaPdfFactura + "\\" + nombreArchivoComprobante + ".pdf"; File.WriteAllBytes(rutaPdfFactura + "/" + nombreArchivoComprobante + ".pdf", pdfBytesFactura); File.WriteAllBytes(rutaPdfFactura + "/" + nombreArchivoComprobante + ".xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); Negocio.Helper.ActualizarColumnasTabla("VentaGasolutions", new string[] { "ComprobanteImpreso" }, new string[] { nombreArchivoComprobante + ".pdf" }, new string[] { "VentaGasolutionsId" }, new string[] { ventaInfo.VentaGasolutionsId.ToString() }); #endregion mensaje = "El Comprobante se generó correctamente" + "@" + (nombreArchivoComprobante) + "@" + ventaInfo.NroDocumentoReceptor; } catch (Exception ex) { bool rethrow = ExceptionPolicy.HandleException(ex, Constantes.ExcepcionPoliticaPresentacion); mensaje = rethrow ? ex.Message : Constantes.ExcepcionPoliticaPresentacion; mensaje = (mensaje + "-" + ex.Source) + "@" + "" + "@" + ""; } return(mensaje); }
public static string ImprimirComprobanteAntes(string numeroDocumento, string tipoDocumentoId, string serie, string correlativo, string fechaEmision, decimal montoTotal) { var mensaje = String.Empty; try { var fecha = DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); // var ventaInfoLista = new Negocio.VentaPetroamerica().ListarPaginado(0, numeroDocumento.Trim(), tipoDocumentoId, serie, correlativo, fecha, fecha, 0, 0, String.Empty, 0, 0); var ventaInfoLista = new Negocio.VentaGasolutions().ListarPaginado(0, String.Empty, tipoDocumentoId, serie + "-" + correlativo, fecha, fecha, 0, 0, 0, 0); var ventaGasolutionsDetalleInfo = new VentaDetalleGasolutionsInfo(); ventaInfoLista = ventaInfoLista.Where(v => v.TotalVenta.Equals(montoTotal)).ToList(); var ventaInfo = new VentaGasolutionsInfo(); if (ventaInfoLista.Count > 0) { ventaInfo = ventaInfoLista.FirstOrDefault(); ventaGasolutionsDetalleInfo = new Negocio.VentaGasolutions().ListarDetalle(ventaInfo.VentaGasolutionsId, 0).FirstOrDefault(); } else { mensaje = "No se ha encontrado el comprobante." + "@" + "" + "@" + ventaInfo.NroDocumentoReceptor; return(mensaje); } var ventaDetalleInfo = new List <VentaDetalleInfo>(); _documento = new DocumentoElectronico(); #region Documento _documento.CalculoDetraccion = 0; _documento.CalculoIgv = Decimal.Divide(18, 100); _documento.CalculoIsc = 0; _documento.DescuentoGlobal = 0; #region Emisor var emisor = new DocumentoElectronico().Emisor; emisor.Departamento = ventaInfo.DepartamentoEmisor; emisor.Direccion = ventaInfo.DireccionEmisor; emisor.Distrito = ventaInfo.DistritoEmisor; emisor.NombreComercial = ventaInfo.NombreComercialEmisor; emisor.NombreLegal = ventaInfo.NombreLegalEmisor; emisor.NroDocumento = ventaInfo.NroDocumentoEmisor; emisor.Provincia = ventaInfo.ProvinciaEmisor; emisor.TipoDocumento = "6"; emisor.Ubigeo = ventaInfo.UbigeoEmisor; emisor.Urbanizacion = ""; _documento.Emisor = emisor; #endregion _documento.Exoneradas = 0; _documento.FechaEmision = ventaInfo.FechaEmision.ToString("dd/MM/yyyy"); _documento.Gratuitas = 0; _documento.Gravadas = ventaInfo.Gravadas; _documento.IdDocumento = ventaInfo.IdDocumento; _documento.Inafectas = 0; #region Items var itemId = 1; //foreach (var vd in ventaDetalleInfo) //{ var item = new DetalleDocumento(); //item.Cantidad = vd.Cantidad; item.Cantidad = ventaGasolutionsDetalleInfo.Cantidad; //item.Descripcion = vd.Producto; item.Descripcion = ventaGasolutionsDetalleInfo.Descripcion; //item.Id = itemId; item.Id = ventaGasolutionsDetalleInfo.Id; itemId++; //item.Impuesto = vd.Igv; item.Impuesto = ventaGasolutionsDetalleInfo.Impuesto; //item.PrecioUnitario = vd.PrecioUnitario; item.PrecioUnitario = ventaGasolutionsDetalleInfo.PrecioUnitario; //item.Suma = vd.SubTotal; item.Suma = ventaGasolutionsDetalleInfo.TotalVenta; //item.TotalVenta = vd.MontoTotal; item.TotalVenta = ventaGasolutionsDetalleInfo.TotalVenta; //item.UnidadMedida = vd.UnidadMedida; item.UnidadMedida = ventaGasolutionsDetalleInfo.UnidadMedida; item.Descuento = 0; item.ImpuestoSelectivo = 0; item.OtroImpuesto = 0; item.PrecioReferencial = 0; item.TipoImpuesto = "10"; item.TipoPrecio = "01"; _documento.Items.Add(item); //} #endregion _documento.Moneda = ventaInfo.MonedaId.Equals(Constantes.MonedaSoles) ? Constantes.MonedaSolesSunat : Constantes.MonedaDolaresSunat; _documento.MontoAnticipo = 0; _documento.MontoDetraccion = 0; _documento.MontoEnLetras = Herramientas.NumeroALetras.numeroAletras(ventaInfo.TotalVenta); _documento.MontoPercepcion = 0; _documento.PlacaVehiculo = ventaInfo.PlacaVehiculo; #region Receptor var receptor = new DocumentoElectronico().Receptor; receptor.Departamento = ""; receptor.Direccion = ventaInfo.DireccionReceptor; receptor.Distrito = ""; receptor.NombreComercial = ventaInfo.NombreComercialReceptor; receptor.NombreLegal = ventaInfo.NombreLegalReceptor; receptor.NroDocumento = ventaInfo.NroDocumentoReceptor; receptor.Provincia = ""; receptor.TipoDocumento = ventaInfo.TipoDocumentoReceptor; receptor.Ubigeo = ""; receptor.Urbanizacion = ""; _documento.Receptor = receptor; #endregion _documento.TipoDocumento = ventaInfo.TipoDocumento; _documento.TotalIgv = ventaInfo.TotalIgv; _documento.TotalIsc = 0; _documento.TotalOtrosTributos = 0; _documento.TotalVenta = ventaInfo.TotalVenta; #endregion string metodoApi; switch (_documento.TipoDocumento) { case "07": metodoApi = "api/GenerarNotaCredito"; break; case "08": metodoApi = "api/GenerarNotaDebito"; break; default: metodoApi = "api/GenerarFactura"; break; } var rutaPdfFactura = HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NroDocumentoReceptor + ""); #region Generando XML var client = new RestClient(BaseUrl); var requestInvoice = new RestRequest("GenerarFactura", Method.POST) { RequestFormat = DataFormat.Json }; requestInvoice.AddBody(_documento); var documentoResponse = client.Execute <DocumentoResponse>(requestInvoice); if (!documentoResponse.Data.Exito) { throw new ApplicationException(documentoResponse.Data.MensajeError); } // string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/" + _documento.IdDocumento + ".xml"); string rutaXml = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente"); if (!Directory.Exists(rutaXml)) { Directory.CreateDirectory(rutaXml); } File.WriteAllBytes(rutaXml + "/" + _documento.IdDocumento + ".xml", Convert.FromBase64String(documentoResponse.Data.TramaXmlSinFirma)); #endregion #region Firma string rutaCertificado = HostingEnvironment.MapPath("~/Archivos/Facturacion/certificado.pfx"); var firmado = new FirmadoRequest { TramaXmlSinFirma = documentoResponse.Data.TramaXmlSinFirma, CertificadoDigital = Convert.ToBase64String(File.ReadAllBytes(rutaCertificado)), PasswordCertificado = "9dGxdmm5JHKwKsXc", UnSoloNodoExtension = false }; var requestFirma = new RestRequest("Firmar", Method.POST) { RequestFormat = DataFormat.Json }; requestFirma.AddBody(firmado); var responseFirma = client.Execute <FirmadoResponse>(requestFirma); if (!responseFirma.Data.Exito) { throw new ApplicationException(responseFirma.Data.MensajeError); } //string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente/" + _documento.IdDocumento + "_Firmado.xml"); string rutaXmlFirmado = HostingEnvironment.MapPath("~/Archivos/Facturacion/XML/Cliente"); if (!Directory.Exists(rutaXmlFirmado)) { Directory.CreateDirectory(rutaXmlFirmado); } File.WriteAllBytes(rutaXmlFirmado + "/" + _documento.IdDocumento + "_Firmado.xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); #endregion #region Impresión Comprobante var htmlToComprobante = new NReco.PdfGenerator.HtmlToPdfConverter(); var nombreArchivoComprobante = String.Empty; var comprobanteSB = new StringBuilder(); if (ventaInfo.TipoDocumento.Equals(Constantes.TipoComprobanteFactura)) { comprobanteSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/FacturaJulcan.html")); #region Factura //comprobanteSB.Replace("@EMPRESA_LOGO", HttpContext.Current.Server.MapPath("~/Imagenes/petroamerica_logo.png")); comprobanteSB.Replace("@EMPRESA_LOGO", String.Empty); comprobanteSB.Replace("@EMPRESA_NOMBRE", ventaInfo.NombreComercialEmisor); comprobanteSB.Replace("@EMPRESA_DIRECCION", ventaInfo.DireccionEmisor); comprobanteSB.Replace("@GRIFO_DIRECCION", String.Empty); comprobanteSB.Replace("@EMPRESA_RUC", ventaInfo.NroDocumentoEmisor); comprobanteSB.Replace("@IMPRESORA", String.Empty); comprobanteSB.Replace("@NUMEROCOMPROBANTE", ventaInfo.IdDocumento); comprobanteSB.Replace("@FECHA", fechaEmision); comprobanteSB.Replace("@FECHA", fechaEmision); comprobanteSB.Replace("@CLIENTE_NOMBRE", ventaInfo.NombreComercialReceptor); comprobanteSB.Replace("@CLIENTE_RUC", ventaInfo.NroDocumentoReceptor); comprobanteSB.Replace("@CLIENTE_PLACA", ventaInfo.PlacaVehiculo); comprobanteSB.Replace("@CLIENTE_DIRECCION", ventaInfo.DireccionReceptor); comprobanteSB.Replace("@CANTIDAD", ventaGasolutionsDetalleInfo.Cantidad.ToString("N2")); comprobanteSB.Replace("@PRECIO", ventaGasolutionsDetalleInfo.PrecioUnitario.ToString("N2")); comprobanteSB.Replace("@MONTO_VENTA", ventaInfo.Gravadas.ToString("N2")); comprobanteSB.Replace("@PRODUCTO", ventaGasolutionsDetalleInfo.Descripcion); comprobanteSB.Replace("@MONEDA_SIMBOLO", ventaInfo.SimboloMoneda); comprobanteSB.Replace("@MONTO_IMPUESTO", ventaInfo.TotalIgv.ToString("N2")); comprobanteSB.Replace("@MONTO_TOTAL", ventaInfo.TotalVenta.ToString("N2")); comprobanteSB.Replace("@VENDEDOR", String.Empty); comprobanteSB.Replace("@CODIGO_HASH", responseFirma.Data.ResumenFirma); comprobanteSB.Replace("@TEXTO_MONTO_TOTAL", NumeroALetras.numeroAletras(ventaInfo.TotalVenta)); #endregion nombreArchivoComprobante = "Factura_" + DateTime.Now.ToString("ddMMyyyyhhmmss"); // + ".pdf"; } if (ventaInfo.TipoDocumento.Equals(Constantes.TipoComprobanteBoletaVenta)) { comprobanteSB.Append(Herramientas.Helper.ObtenerTexto("~/Archivos/Plantillas/BoletaJulcan.html")); #region Boleta //comprobanteSB.Replace("@EMPRESA_LOGO", HttpContext.Current.Server.MapPath("~/Imagenes/petroamerica_logo.png")); comprobanteSB.Replace("@EMPRESA_LOGO", String.Empty); comprobanteSB.Replace("@EMPRESA_NOMBRE", ventaInfo.NombreComercialEmisor); comprobanteSB.Replace("@EMPRESA_DIRECCION", ventaInfo.DireccionEmisor); comprobanteSB.Replace("@GRIFO_DIRECCION", String.Empty); comprobanteSB.Replace("@EMPRESA_RUC", ventaInfo.NroDocumentoEmisor); comprobanteSB.Replace("@IMPRESORA", String.Empty); comprobanteSB.Replace("@NUMEROCOMPROBANTE", ventaInfo.IdDocumento); comprobanteSB.Replace("@FECHA", fechaEmision); comprobanteSB.Replace("@CLIENTE_NOMBRE", ventaInfo.NombreComercialReceptor); comprobanteSB.Replace("@CLIENTE_DIRECCION", ventaInfo.DireccionReceptor); comprobanteSB.Replace("@CANTIDAD", ventaGasolutionsDetalleInfo.Cantidad.ToString("N2")); comprobanteSB.Replace("@PRECIO", ventaGasolutionsDetalleInfo.PrecioUnitario.ToString("N2")); comprobanteSB.Replace("@MONTO_VENTA", ventaInfo.Gravadas.ToString("N2")); comprobanteSB.Replace("@PRODUCTO", ventaGasolutionsDetalleInfo.Descripcion); comprobanteSB.Replace("@MONEDA_SIMBOLO", ventaInfo.SimboloMoneda); comprobanteSB.Replace("@MONTO_IMPUESTO", ventaInfo.TotalIgv.ToString("N2")); comprobanteSB.Replace("@MONTO_TOTAL", ventaInfo.TotalVenta.ToString("N2")); comprobanteSB.Replace("@VENDEDOR", String.Empty); comprobanteSB.Replace("@CODIGO_HASH", responseFirma.Data.ResumenFirma); comprobanteSB.Replace("@TEXTO_MONTO_TOTAL", NumeroALetras.numeroAletras(ventaInfo.TotalVenta)); #endregion nombreArchivoComprobante = "Boleta_" + DateTime.Now.ToString("ddMMyyyyhhmmss"); // + ".pdf"; } if (!Directory.Exists(rutaPdfFactura)) { Directory.CreateDirectory(rutaPdfFactura); } #region Codigo QR var codigoQR = ventaInfo.NroDocumentoReceptor + "|" + ventaInfo.TipoDocumento + "|" + ventaInfo.IdDocumento.Substring(0, 4) + "|" + ventaInfo.IdDocumento.Substring(5, 8) + "|" + ventaInfo.TotalIgv + "|" + ventaInfo.TotalVenta + "|" + ventaInfo.FechaEmision + "|" + ventaInfo.TipoDocumentoReceptor + "|" + ventaInfo.NroDocumentoReceptor + "|" + responseFirma.Data.ResumenFirma + "|" + responseFirma.Data.ValorFirma; // instantiate a writer object var barcodeWriter = new ZXing.BarcodeWriter(); // set the barcode format barcodeWriter.Format = BarcodeFormat.PDF_417; // write text and generate a 2-D barcode as a bitmap // barcodeWriter.Write(codigoQR).Save(@"C:\Users\jeremy\Desktop\generated.bmp"); //barcodeWriter.Write(codigoQR).Save(HostingEnvironment.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NumeroDocumentoCliente + "/" + _documento.IdDocumento + ".bmp")); barcodeWriter.Write(codigoQR).Save(rutaPdfFactura + "/" + _documento.IdDocumento + ".bmp"); #endregion comprobanteSB.Replace("@CODIGO_QR", HttpContext.Current.Server.MapPath("~/Archivos/Documentos/Cliente/" + ventaInfo.NroDocumentoReceptor + "/" + _documento.IdDocumento + ".bmp")); comprobanteSB = Herramientas.Helper.EncodeHtml(comprobanteSB); //var margins = new PageMargins(); //margins.Left = 1; //htmlToComprobante.Margins = margins; var pdfBytesFactura = htmlToComprobante.GeneratePdf(comprobanteSB.ToString()); // var comprobanteImpreso = rutaPdfFactura + "\\" + nombreArchivoComprobante + ".pdf"; File.WriteAllBytes(rutaPdfFactura + "/" + nombreArchivoComprobante + ".pdf", pdfBytesFactura); File.WriteAllBytes(rutaPdfFactura + "/" + nombreArchivoComprobante + ".xml", Convert.FromBase64String(responseFirma.Data.TramaXmlFirmado)); #endregion mensaje = "El Comprobante se generó correctamente" + "@" + nombreArchivoComprobante + "@" + ventaInfo.NroDocumentoReceptor; } catch (Exception ex) { bool rethrow = ExceptionPolicy.HandleException(ex, Constantes.ExcepcionPoliticaPresentacion); mensaje = rethrow ? ex.Message : Constantes.ExcepcionPoliticaPresentacion; // var sex = new SmartException(ex, usuarioInfo.Matricula, codigoOperacion.ToString()); //RegistrarScript("MostrarMensaje('" + mensaje.Replace("'", "") + "');", "ErrorConsultaComprobante"); mensaje = (mensaje + "-" + ex.Source) + "@" + "" + "@" + numeroDocumento; } return(mensaje); }
private static VentaGasolutionsInfo CargarVentaInfo(IDataReader dr) { int colCount = dr.FieldCount; var values = new object[colCount]; #region Indices int indVentaGasolutionsId = dr.GetOrdinal("VentaGasolutionsId"); int indFechaEmision = dr.GetOrdinal("FechaEmision"); int indGravadas = dr.GetOrdinal("Gravadas"); int indIdDocumento = dr.GetOrdinal("IdDocumento"); int indCalculoIgv = dr.GetOrdinal("CalculoIgv"); int indMonedaId = dr.GetOrdinal("MonedaId"); int indMoneda = dr.GetOrdinal("Moneda"); int indSimboloMoneda = dr.GetOrdinal("SimboloMoneda"); int indMontoEnLetras = dr.GetOrdinal("MontoEnLetras"); int indPlacaVehiculo = dr.GetOrdinal("PlacaVehiculo"); int indTipoDocumento = dr.GetOrdinal("TipoDocumento"); int indTotalIgv = dr.GetOrdinal("TotalIgv"); int indTotalVenta = dr.GetOrdinal("TotalVenta"); int indDescuento = dr.GetOrdinal("Descuento"); int indTipoDocumentoEmisor = dr.GetOrdinal("TipoDocumentoEmisor"); int indNroDocumentoEmisor = dr.GetOrdinal("NroDocumentoEmisor"); int indNombreComercialEmisor = dr.GetOrdinal("NombreComercialEmisor"); int indNombreLegalEmisor = dr.GetOrdinal("NombreLegalEmisor"); int indDepartamentoEmisor = dr.GetOrdinal("DepartamentoEmisor"); int indProvinciaEmisor = dr.GetOrdinal("ProvinciaEmisor"); int indDistritoEmisor = dr.GetOrdinal("DistritoEmisor"); int indUbigeoEmisor = dr.GetOrdinal("UbigeoEmisor"); int indDireccionEmisor = dr.GetOrdinal("DireccionEmisor"); int indTipoDocumentoReceptor = dr.GetOrdinal("TipoDocumentoReceptor"); int indNroDocumentoReceptor = dr.GetOrdinal("NroDocumentoReceptor"); int indNombreComercialReceptor = dr.GetOrdinal("NombreComercialReceptor"); int indNombreLegalReceptor = dr.GetOrdinal("NombreLegalReceptor"); int indDireccionReceptor = dr.GetOrdinal("DireccionReceptor"); int indCodigoRespuesta = dr.GetOrdinal("CodigoRespuesta"); int indExito = dr.GetOrdinal("Exito"); int indMensajeError = dr.GetOrdinal("MensajeError"); int indMensajeRespuesta = dr.GetOrdinal("MensajeRespuesta"); int indNombreArchivo = dr.GetOrdinal("NombreArchivo"); int indNroTicket = dr.GetOrdinal("NroTicket"); int indEstadoId = dr.GetOrdinal("EstadoId"); int indEstado = dr.GetOrdinal("Estado"); int indComprobanteImpreso = dr.GetOrdinal("ComprobanteImpreso"); int indFechaCreacion = dr.GetOrdinal("FechaCreacion"); int indNumeroFila = dr.GetOrdinal("NumeroFila"); int indTotalFilas = dr.GetOrdinal("TotalFilas"); #endregion var ventaInfo = new VentaGasolutionsInfo(); dr.GetValues(values); #region Campos ventaInfo.VentaGasolutionsId = Convert.ToInt32(values[indVentaGasolutionsId]); if (values[indFechaEmision] != DBNull.Value) { ventaInfo.FechaEmision = Convert.ToDateTime(values[indFechaEmision]); } ventaInfo.Gravadas = Convert.ToDecimal(values[indGravadas]); ventaInfo.IdDocumento = Convert.ToString(values[indIdDocumento]); ventaInfo.CalculoIgv = Convert.ToDecimal(values[indCalculoIgv]); ventaInfo.MonedaId = Convert.ToString(values[indMonedaId]); ventaInfo.Moneda = Convert.ToString(values[indMoneda]); ventaInfo.SimboloMoneda = Convert.ToString(values[indSimboloMoneda]); ventaInfo.MontoEnLetras = Convert.ToString(values[indMontoEnLetras]); ventaInfo.PlacaVehiculo = Convert.ToString(values[indPlacaVehiculo]); ventaInfo.TipoDocumento = Convert.ToString(values[indTipoDocumento]); ventaInfo.TotalIgv = Convert.ToDecimal(values[indTotalIgv]); ventaInfo.TotalVenta = Convert.ToDecimal(values[indTotalVenta]); ventaInfo.Descuento = Convert.ToDecimal(values[indDescuento]); ventaInfo.TipoDocumentoEmisor = Convert.ToString(values[indTipoDocumentoEmisor]); ventaInfo.NroDocumentoEmisor = Convert.ToString(values[indNroDocumentoEmisor]); ventaInfo.NombreComercialEmisor = Convert.ToString(values[indNombreComercialEmisor]); ventaInfo.NombreLegalEmisor = Convert.ToString(values[indNombreLegalEmisor]); ventaInfo.DepartamentoEmisor = Convert.ToString(values[indDepartamentoEmisor]); ventaInfo.ProvinciaEmisor = Convert.ToString(values[indProvinciaEmisor]); ventaInfo.DistritoEmisor = Convert.ToString(values[indDistritoEmisor]); ventaInfo.UbigeoEmisor = Convert.ToString(values[indUbigeoEmisor]); ventaInfo.DireccionEmisor = Convert.ToString(values[indDireccionEmisor]); ventaInfo.TipoDocumentoReceptor = Convert.ToString(values[indTipoDocumentoReceptor]); ventaInfo.NroDocumentoReceptor = Convert.ToString(values[indNroDocumentoReceptor]); ventaInfo.NombreComercialReceptor = Convert.ToString(values[indNombreComercialReceptor]); ventaInfo.NombreLegalReceptor = Convert.ToString(values[indNombreLegalReceptor]); ventaInfo.DireccionReceptor = Convert.ToString(values[indDireccionReceptor]); if (values[indCodigoRespuesta] != DBNull.Value) { ventaInfo.CodigoRespuesta = Convert.ToString(values[indCodigoRespuesta]); } if (values[indExito] != DBNull.Value) { ventaInfo.Exito = Convert.ToInt32(values[indExito]); } if (values[indMensajeError] != DBNull.Value) { ventaInfo.MensajeError = Convert.ToString(values[indMensajeError]); } if (values[indMensajeRespuesta] != DBNull.Value) { ventaInfo.MensajeRespuesta = Convert.ToString(values[indMensajeRespuesta]); } if (values[indNombreArchivo] != DBNull.Value) { ventaInfo.NombreArchivo = Convert.ToString(values[indNombreArchivo]); } if (values[indNroTicket] != DBNull.Value) { ventaInfo.NroTicket = Convert.ToString(values[indNroTicket]); } ventaInfo.EstadoId = Convert.ToInt32(values[indEstadoId]); ventaInfo.Estado = Convert.ToString(values[indEstado]); ventaInfo.ComprobanteImpreso = Convert.ToString(values[indComprobanteImpreso]); ventaInfo.FechaCreacion = Convert.ToDateTime(values[indFechaCreacion]); ventaInfo.NumeroFila = Convert.ToInt32(values[indNumeroFila]); ventaInfo.TotalFilas = Convert.ToInt32(values[indTotalFilas]); #endregion return(ventaInfo); }
public int VentaGasolutions_Insertar(VentaGasolutionsInfo ventaInfo) { return(new VentaGasolutions().Insertar(ventaInfo)); }
public int Insertar(VentaGasolutionsInfo ventaInfo) { int resultado; try { using (var oConnection = new SqlConnection(HelperAccesoDatos.GetCadenaConexion())) { var sqlComando = new SqlCommand { Connection = oConnection, CommandText = "InsertarVentaGasolutions", CommandType = CommandType.StoredProcedure }; sqlComando.Parameters.Add("FechaEmision", SqlDbType.DateTime2).Value = ventaInfo.FechaEmision; sqlComando.Parameters.Add("Gravadas", SqlDbType.Decimal).Value = ventaInfo.Gravadas; sqlComando.Parameters.Add("IdDocumento", SqlDbType.VarChar).Value = ventaInfo.IdDocumento; sqlComando.Parameters.Add("CalculoIgv", SqlDbType.Decimal).Value = ventaInfo.CalculoIgv; sqlComando.Parameters.Add("MonedaId", SqlDbType.VarChar).Value = ventaInfo.MonedaId; sqlComando.Parameters.Add("MontoEnLetras", SqlDbType.VarChar).Value = ventaInfo.MontoEnLetras; sqlComando.Parameters.Add("PlacaVehiculo", SqlDbType.VarChar).Value = ventaInfo.PlacaVehiculo; sqlComando.Parameters.Add("TipoDocumento", SqlDbType.VarChar).Value = ventaInfo.TipoDocumento; sqlComando.Parameters.Add("TotalIgv", SqlDbType.Decimal).Value = ventaInfo.TotalIgv; sqlComando.Parameters.Add("TotalVenta", SqlDbType.Decimal).Value = ventaInfo.TotalVenta; sqlComando.Parameters.Add("Descuento", SqlDbType.Decimal).Value = ventaInfo.Descuento; sqlComando.Parameters.Add("TipoDocumentoEmisor", SqlDbType.VarChar).Value = ventaInfo.TipoDocumentoEmisor; sqlComando.Parameters.Add("NroDocumentoEmisor", SqlDbType.VarChar).Value = ventaInfo.NroDocumentoEmisor; sqlComando.Parameters.Add("NombreComercialEmisor", SqlDbType.VarChar).Value = ventaInfo.NombreComercialEmisor; sqlComando.Parameters.Add("NombreLegalEmisor", SqlDbType.VarChar).Value = ventaInfo.NombreLegalEmisor; sqlComando.Parameters.Add("DepartamentoEmisor", SqlDbType.VarChar).Value = ventaInfo.DepartamentoEmisor; sqlComando.Parameters.Add("ProvinciaEmisor", SqlDbType.VarChar).Value = ventaInfo.ProvinciaEmisor; sqlComando.Parameters.Add("DistritoEmisor", SqlDbType.VarChar).Value = ventaInfo.DistritoEmisor; sqlComando.Parameters.Add("UbigeoEmisor", SqlDbType.VarChar).Value = ventaInfo.UbigeoEmisor; sqlComando.Parameters.Add("DireccionEmisor", SqlDbType.VarChar).Value = ventaInfo.DireccionEmisor; sqlComando.Parameters.Add("TipoDocumentoReceptor", SqlDbType.VarChar).Value = ventaInfo.TipoDocumentoReceptor; sqlComando.Parameters.Add("NroDocumentoReceptor", SqlDbType.VarChar).Value = ventaInfo.NroDocumentoReceptor; sqlComando.Parameters.Add("NombreComercialReceptor", SqlDbType.VarChar).Value = ventaInfo.NombreComercialReceptor; sqlComando.Parameters.Add("NombreLegalReceptor", SqlDbType.VarChar).Value = ventaInfo.NombreLegalReceptor; sqlComando.Parameters.Add("DireccionReceptor", SqlDbType.VarChar).Value = ventaInfo.DireccionReceptor; sqlComando.Parameters.Add("CodigoRespuesta", SqlDbType.VarChar).Value = ventaInfo.CodigoRespuesta; sqlComando.Parameters.Add("Exito", SqlDbType.Int).Value = ventaInfo.Exito; sqlComando.Parameters.Add("MensajeError", SqlDbType.VarChar).Value = ventaInfo.MensajeError; sqlComando.Parameters.Add("MensajeRespuesta", SqlDbType.VarChar).Value = ventaInfo.MensajeRespuesta; sqlComando.Parameters.Add("NombreArchivo", SqlDbType.VarChar).Value = ventaInfo.NombreArchivo; sqlComando.Parameters.Add("NroTicket", SqlDbType.VarChar).Value = ventaInfo.NroTicket; sqlComando.Parameters.Add("EstadoId", SqlDbType.Int).Value = ventaInfo.EstadoId; sqlComando.Parameters.Add("ComprobanteImpreso", SqlDbType.VarChar).Value = ventaInfo.ComprobanteImpreso; oConnection.Open(); resultado = Convert.ToInt32(sqlComando.ExecuteScalar()); oConnection.Close(); } } catch (Exception ex) { throw ex; } return(resultado); }