private void MostrarFotografiaDeEncabezado(dynamic sender, int idFactura) { try { foreach (var factura in FacturaDetalles.Where(facturaDetalle => facturaDetalle.INVOICE_ID == idFactura)) { UsuarioDeseaCargarEncabezadoFactura?.Invoke(sender, new FacturaArgumento { Data = new FacturaEncabezado { INVOICE_ID = factura.INVOICE_ID, CDF_SERIE = factura.CDF_SERIE, CDF_RESOLUCION = factura.CDF_RESOLUCION, IS_CREDIT_NOTE = factura.IS_CREDIT_NOTE } }); if (!string.IsNullOrEmpty(FacturaEncabezado.IMAGE_1)) { UiVisualizadorImagenes.Items.Add(FacturaEncabezado.IMAGE_1); } if (!string.IsNullOrEmpty(FacturaEncabezado.IMAGE_2)) { UiVisualizadorImagenes.Items.Add(FacturaEncabezado.IMAGE_2); } if (!string.IsNullOrEmpty(FacturaEncabezado.IMAGE_3)) { UiVisualizadorImagenes.Items.Add(FacturaEncabezado.IMAGE_3); } UiVisualizadorImagenes.DataBind(); break; } } catch (Exception ex) { EstablecerError(ex.Message, sender); } }
private void ObtenerFacturaParaMarcador(dynamic sender, int idFactura) { try { foreach (var factura in FacturaDetalles.Where(facturaDetalle => facturaDetalle.INVOICE_ID == idFactura)) { ((ASPxGridView)(sender)).JSProperties.Add("cpAgregarMarcador", factura); break; } } catch (Exception ex) { EstablecerError(ex.Message, sender); } }
/// <summary> /// Metodo que recorre las facturas y genera el reporte de las mismas en formato XML /// </summary> public void GenerarReporteDeFacturasEnFormatoXml() { UiVistaEncabezado.ExpandAll(); var listaFacturasVisibles = new List <FacturaDetalle>(); for (var i = 0; i < UiVistaEncabezado.VisibleRowCount; i++) { if (UiVistaEncabezado.IsGroupRow(i)) { continue; } var fila = (FacturaDetalle)UiVistaEncabezado.GetRow(i); if (fila != null) { listaFacturasVisibles.Add(fila); } } var listaFacturasAgrupadas = listaFacturasVisibles.GroupBy(factura => factura.ID).Select(grupoFactura => grupoFactura.First()).ToList(); var listaDeFacturasParaReporte = listaFacturasAgrupadas.Select(factura => new FacturaEncabezado { ID = factura.ID , INVOICE_ID = factura.INVOICE_ID , CDF_RESOLUCION = factura.CDF_RESOLUCION , CDF_SERIE = factura.CDF_SERIE , CLIENT_ID = factura.CLIENT_ID , CDF_NOMBRECLIENTE = factura.CDF_NOMBRECLIENTE , POSTED_DATETIME = factura.POSTED_DATETIME , PAY_DEAL = factura.PAY_DEAL , CODE_CUSTOMER_ALTERNATE = factura.CODE_CUSTOMER_ALTERNATE , Detalle = FacturaDetalles.Where(detalleDeFactura => detalleDeFactura.ID.Equals(factura.ID)).ToList() }).ToList(); MarcarFacturasQueGeneraronXml?.Invoke(UiVistaEncabezado, new FacturaArgumento { ListaDeFacturasEncabezado = listaDeFacturasParaReporte, FechaInicial = UiFechaIncio.Date, FechaFinal = UiFechaFinal.Date, Login = Session["LOGIN"].ToString() }); UiVistaEncabezado.JSProperties.Add("cpRecargarGrid", "Enabled"); var documentoXml = new XDocument(new XDeclaration("1.0", "iso-8859-1", null)); var nodoRaiz = new XElement("invoices"); documentoXml.Add(nodoRaiz); foreach (var facturaParaXml in listaDeFacturasParaReporte) { var nodoFactura = new XElement("invoice"); nodoFactura.Add(new XElement("id", facturaParaXml.INVOICE_ID)); nodoFactura.Add(new XElement("OfficialSerNr", facturaParaXml.CDF_RESOLUCION)); nodoFactura.Add(new XElement("CustCode", facturaParaXml.CODE_CUSTOMER_ALTERNATE)); nodoFactura.Add(new XElement("CustName", facturaParaXml.CDF_NOMBRECLIENTE)); nodoFactura.Add(new XElement("TransDate", Convert.ToDateTime(facturaParaXml.POSTED_DATETIME.ToString()).Date.ToString("dd/MM/yyyy"))); nodoFactura.Add(new XElement("PayDeal", facturaParaXml.PAY_DEAL)); var nodoDetalleDeFactura = new XElement("items"); for (var i = 0; i < facturaParaXml.Detalle.Count; i++) { var detalleDeFactura = facturaParaXml.Detalle[i]; var nodoSkuDeDetalleDeFactura = new XElement("item_line"); nodoSkuDeDetalleDeFactura.Add(new XElement("id", i)); nodoSkuDeDetalleDeFactura.Add(new XElement("ArtCode", detalleDeFactura.ART_CODE)); nodoSkuDeDetalleDeFactura.Add(new XElement("Spec", detalleDeFactura.DESCRIPTION_SKU)); nodoSkuDeDetalleDeFactura.Add(new XElement("Quant", detalleDeFactura.QTY)); nodoSkuDeDetalleDeFactura.Add(new XElement("Price", detalleDeFactura.PRICE)); nodoSkuDeDetalleDeFactura.Add(new XElement("VATCode", detalleDeFactura.VAT_CODE)); nodoSkuDeDetalleDeFactura.Add(new XElement("Sum", detalleDeFactura.TOTAL_LINE)); nodoSkuDeDetalleDeFactura.Add(new XElement("SerialNr", detalleDeFactura.SERIAL_NR)); nodoDetalleDeFactura.Add(nodoSkuDeDetalleDeFactura); } nodoFactura.Add(nodoDetalleDeFactura); nodoRaiz.Add(nodoFactura); } var carpetaParaAlmacenarDocumentoXml = $"{AppDomain.CurrentDomain.BaseDirectory}/App_Data/UploadTemp/"; var fechaDeCreacionDeDocumento = DateTime.Now.ToString("u").Replace(':', '.').Replace('Z', ' '); var nombreDeArchivo = $"ReporteDeFacturas {fechaDeCreacionDeDocumento} {Session["LOGIN"]}.xml"; var rutaCompletaDeGuardadoDeArchivo = Path.Combine(carpetaParaAlmacenarDocumentoXml, nombreDeArchivo); documentoXml.Save(rutaCompletaDeGuardadoDeArchivo); var response = System.Web.HttpContext.Current.Response; response.ClearContent(); response.Clear(); response.ContentType = "application/xml"; response.AddHeader("Content-Disposition", $"attachment; filename={nombreDeArchivo};"); response.TransmitFile(rutaCompletaDeGuardadoDeArchivo); response.Flush(); response.End(); }