private static void ReemplarResumenImportesMonedaExtranjera(FeaEntidades.Turismo.lote_comprobantes lc) { if (!lc.comprobante[0].resumen.codigo_moneda.Equals("PES")) { lc.comprobante[0].resumen.importe_total_neto_gravado = lc.comprobante[0].resumen.importes_moneda_origen.importe_total_neto_gravado; lc.comprobante[0].resumen.importe_total_concepto_no_gravado = lc.comprobante[0].resumen.importes_moneda_origen.importe_total_concepto_no_gravado; lc.comprobante[0].resumen.importe_operaciones_exentas = lc.comprobante[0].resumen.importes_moneda_origen.importe_operaciones_exentas; lc.comprobante[0].resumen.impuesto_liq = lc.comprobante[0].resumen.importes_moneda_origen.impuesto_liq; lc.comprobante[0].resumen.impuesto_liq_rni = lc.comprobante[0].resumen.importes_moneda_origen.impuesto_liq_rni; lc.comprobante[0].resumen.importe_total_impuestos_municipales = lc.comprobante[0].resumen.importes_moneda_origen.importe_total_impuestos_municipales; lc.comprobante[0].resumen.importe_total_impuestos_nacionales = lc.comprobante[0].resumen.importes_moneda_origen.importe_total_impuestos_nacionales; lc.comprobante[0].resumen.importe_total_ingresos_brutos = lc.comprobante[0].resumen.importes_moneda_origen.importe_total_ingresos_brutos; lc.comprobante[0].resumen.importe_total_impuestos_internos = lc.comprobante[0].resumen.importes_moneda_origen.importe_total_impuestos_internos; lc.comprobante[0].resumen.importe_total_factura = lc.comprobante[0].resumen.importes_moneda_origen.importe_total_factura; if (lc.comprobante[0].resumen.descuentos != null) { for (int i = 0; i < lc.comprobante[0].resumen.descuentos.Length; i++) { if (lc.comprobante[0].resumen.descuentos[i] != null) { lc.comprobante[0].resumen.descuentos[i].importe_descuento = lc.comprobante[0].resumen.descuentos[i].importe_descuento_moneda_origen; lc.comprobante[0].resumen.descuentos[i].importe_iva_descuento = lc.comprobante[0].resumen.descuentos[i].importe_iva_descuento_moneda_origen; } } } } }
protected void Page_Load(object sender, EventArgs e) { var culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-GB"); culture.NumberFormat.CurrencySymbol = string.Empty; System.Threading.Thread.CurrentThread.CurrentCulture = culture; System.Threading.Thread.CurrentThread.CurrentUICulture = culture; base.InitializeCulture(); if (Session["lote"] == null) { Response.Redirect("~/Inicio.aspx"); } else { try { string lcomp = Server.MapPath("~/Facturacion/Electronica/Reportes/lote_comprobantesT.xsd"); System.IO.File.Copy(lcomp, @System.IO.Path.GetTempPath() + "lote_comprobantesT.xsd", true); string imagen = Server.MapPath("~/Facturacion/Electronica/Reportes/Imagen.xsd"); System.IO.File.Copy(imagen, @System.IO.Path.GetTempPath() + "Imagen.xsd", true); facturaRpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); string reportPath = Server.MapPath("~/Facturacion/Electronica/Reportes/FacturaT.rpt"); facturaRpt.Load(reportPath); FeaEntidades.Turismo.lote_comprobantes lc = (FeaEntidades.Turismo.lote_comprobantes)Session["lote"]; AsignarCamposOpcionales(lc); ReemplarResumenImportesMonedaExtranjera(lc); DataSet ds = new DataSet(); XmlSerializer objXS = new XmlSerializer(lc.GetType()); StringWriter objSW = new StringWriter(); objXS.Serialize(objSW, lc); StringReader objSR = new StringReader(objSW.ToString()); ds.ReadXml(objSR); bool original = true; try { original = (bool)Session["EsComprobanteOriginal"]; if (original == false) { facturaRpt.DataDefinition.FormulaFields["Borrador"].Text = "'BORRADOR'"; } } catch { } facturaRpt.SetDataSource(ds); facturaRpt.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperLetter; facturaRpt.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait; IncrustarLogo(lc.comprobante[0].cabecera.informacion_vendedor.cuit.ToString(), lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta.ToString()); string cae = lc.comprobante[0].cabecera.informacion_comprobante.cae; if (cae.Replace(" ", string.Empty).Equals(string.Empty)) { cae = "99999999999999"; } GenerarCodigoBarras(lc.comprobante[0].cabecera.informacion_vendedor.cuit + lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante.ToString("00") + lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta.ToString("0000") + cae + System.DateTime.Now.ToString("yyyyMMdd")); AsignarParametros(lc.comprobante[0].resumen.importe_total_factura); facturaRpt.Subreports["impuestos"].DataDefinition.FormulaFields["TipoDeComprobante"].Text = "'" + lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante.ToString() + "'"; facturaRpt.Subreports["resumen"].DataDefinition.FormulaFields["TipoDeComprobante"].Text = "'" + lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante.ToString() + "'"; System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append(lc.comprobante[0].cabecera.informacion_vendedor.cuit); sb.Append("-"); sb.Append(lc.comprobante[0].cabecera.informacion_comprobante.punto_de_venta.ToString("0000")); sb.Append("-"); sb.Append(lc.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante.ToString("00")); sb.Append("-"); sb.Append(lc.comprobante[0].cabecera.informacion_comprobante.numero_comprobante.ToString("00000000")); if (original == false) { sb.Append("-BORRADOR"); } CrystalDecisions.Shared.ExportOptions exportOpts = new CrystalDecisions.Shared.ExportOptions(); CrystalDecisions.Shared.PdfRtfWordFormatOptions pdfOpts = CrystalDecisions.Shared.ExportOptions.CreatePdfRtfWordFormatOptions(); exportOpts.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; exportOpts.ExportFormatOptions = pdfOpts; facturaRpt.ExportToHttpResponse(exportOpts, Response, true, sb.ToString()); } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { RN.Sesion.GrabarLogTexto(Server.MapPath("~/Consultar.txt"), "Reporte: " + ex.Message + " " + ex.StackTrace); throw new Exception(ex.Message); //WebForms.Excepciones.Redireccionar(ex, "~/Excepciones/Excepciones.aspx"); } } }
private void AsignarCamposOpcionales(FeaEntidades.Turismo.lote_comprobantes lc) { if (lc.comprobante[0].cabecera.informacion_comprobante.condicion_de_pago == null) { lc.comprobante[0].cabecera.informacion_comprobante.condicion_de_pago = string.Empty; } if (lc.comprobante[0].cabecera.informacion_comprobante.fecha_vencimiento_cae == null) { lc.comprobante[0].cabecera.informacion_comprobante.fecha_vencimiento_cae = string.Empty; } lc.comprobante[0].cabecera.informacion_comprobante.condicion_de_pagoSpecified = true; if (lc.comprobante[0].cabecera.informacion_comprobante.codigo_conceptoSpecified == false) { lc.comprobante[0].cabecera.informacion_comprobante.codigo_conceptoSpecified = true; } lc.comprobante[0].cabecera.informacion_vendedor.condicion_ingresos_brutosSpecified = true; lc.comprobante[0].cabecera.informacion_vendedor.condicion_IVASpecified = true; if (lc.comprobante[0].cabecera.informacion_vendedor.provincia == null) { lc.comprobante[0].cabecera.informacion_vendedor.provincia = string.Empty; } lc.comprobante[0].cabecera.informacion_comprador.condicion_ingresos_brutosSpecified = true; lc.comprobante[0].cabecera.informacion_comprador.condicion_IVASpecified = true; if (lc.comprobante[0].cabecera.informacion_comprador.domicilio_calle == null) { lc.comprobante[0].cabecera.informacion_comprador.domicilio_calle = string.Empty; } if (lc.comprobante[0].cabecera.informacion_comprador.provincia == null) { lc.comprobante[0].cabecera.informacion_comprador.provincia = string.Empty; } lc.comprobante[0].resumen.cant_alicuotas_ivaSpecified = true; lc.comprobante[0].resumen.importe_total_impuestos_internosSpecified = true; lc.comprobante[0].resumen.importe_total_impuestos_municipalesSpecified = true; lc.comprobante[0].resumen.importe_total_impuestos_nacionalesSpecified = true; lc.comprobante[0].resumen.importe_total_ingresos_brutosSpecified = true; if (lc.comprobante[0].resumen.descuentos != null) { for (int i = 0; i < lc.comprobante[0].resumen.descuentos.Length; i++) { if (lc.comprobante[0].resumen.descuentos[i] != null) { if (lc.comprobante[0].resumen.descuentos[i].importe_iva_descuentoSpecified.Equals(false)) { lc.comprobante[0].resumen.descuentos[i].importe_iva_descuentoSpecified = true; } if (lc.comprobante[0].resumen.descuentos[i].alicuota_iva_descuentoSpecified.Equals(false)) { lc.comprobante[0].resumen.descuentos[i].alicuota_iva_descuentoSpecified = true; } if (lc.comprobante[0].resumen.descuentos[i].porcentaje_descuentoSpecified.Equals(false)) { lc.comprobante[0].resumen.descuentos[i].porcentaje_descuentoSpecified = true; } } } } for (int i = 0; i < lc.comprobante[0].detalle.linea.Length; i++) { if (lc.comprobante[0].detalle.linea[i] != null) { lc.comprobante[0].detalle.linea[i].precio_unitarioSpecified = true; lc.comprobante[0].detalle.linea[i].importe_ivaSpecified = true; if (lc.comprobante[0].detalle.linea[i].alicuota_ivaSpecified.Equals(false)) { lc.comprobante[0].detalle.linea[i].alicuota_ivaSpecified = true; lc.comprobante[0].detalle.linea[i].alicuota_iva = 99; } lc.comprobante[0].detalle.linea[i].cantidadSpecified = true; if (lc.comprobante[0].detalle.linea[i].unidad == null) { lc.comprobante[0].detalle.linea[i].unidad = string.Empty; } if (lc.comprobante[0].detalle.linea[i].indicacion_exento_gravado == null) { lc.comprobante[0].detalle.linea[i].indicacion_exento_gravado = string.Empty; } if (lc.comprobante[0].detalle.linea[i].importes_moneda_origen != null) { lc.comprobante[0].detalle.linea[i].importes_moneda_origen.importe_ivaSpecified = true; lc.comprobante[0].detalle.linea[i].importes_moneda_origen.importe_total_articuloSpecified = true; lc.comprobante[0].detalle.linea[i].importes_moneda_origen.importe_total_descuentosSpecified = true; lc.comprobante[0].detalle.linea[i].importes_moneda_origen.importe_total_impuestosSpecified = true; lc.comprobante[0].detalle.linea[i].importes_moneda_origen.precio_unitarioSpecified = true; } if (lc.comprobante[0].detalle.linea[i].GTINSpecified.Equals(false)) { lc.comprobante[0].detalle.linea[i].GTINSpecified = true; lc.comprobante[0].detalle.linea[i].GTIN = 0; } } else { break; } } }