private void ProcesarConf() { try { if (DirectorioEXCELTextBox.Text == "") { MessageBox.Show("Seleccionar la planilla EXCEL.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } if (DirectorioXMLTextBox.Text == "") { MessageBox.Show("Seleccionar el directorio para guardar los archivos XML.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } FileHelpers.DataLink.ExcelStorage fh = new FileHelpers.DataLink.ExcelStorage(typeof(Planilla1)); fh.FileName = DirectorioEXCELTextBox.Text; fh.SheetName = NombreHojaCONFTextBox.Text; fh.StartRow = 2; fh.StartColumn = 1; Planilla1[] conf = (Planilla1[])fh.ExtractRecords(); List<Planilla1> lconf = new List<Planilla1>(); lconf.AddRange(conf); //Crear clase completa para Hoja1 AsigConf.dias_operativos dops = new AsigConf.dias_operativos(); AsigConf.dias_operativosDia_operativo[] item = new AsigConf.dias_operativosDia_operativo[1]; item[0] = new AsigConf.dias_operativosDia_operativo(); item[0].fecha = conf[0].Fecha.ToString("dd/MM/yyyy"); dops.Items = new AsigConf.dias_operativosDia_operativo[1]; dops.Items[0] = item[0]; int countVG = 1; string ultVG = conf[0].megid_contrato_gas; for (int i = 0; i < conf.Length; i++) { if (ultVG != conf[i].megid_contrato_gas) { ultVG = conf[i].megid_contrato_gas; countVG += 1; } } dops.Items[0].volumenes_gas = new AsigConf.dias_operativosDia_operativoVolumen_gas[countVG]; AsigConf.dias_operativosDia_operativoVolumen_gas[] vgas = new AsigConf.dias_operativosDia_operativoVolumen_gas[countVG]; int contadorLineaConf = 0; for (int i = 0; i < dops.Items[0].volumenes_gas.Length; i++) { vgas[i] = new AsigConf.dias_operativosDia_operativoVolumen_gas(); vgas[i].megid_contrato_gas = conf[contadorLineaConf].megid_contrato_gas; vgas[i].megid_tipo_balance = "DI"; vgas[i].mov = "A"; //Lista de Punto List<Planilla1> lp = lconf.FindAll(delegate(Planilla1 e1) { return e1.megid_contrato_gas == vgas[i].megid_contrato_gas; }); AsigConf.dias_operativosDia_operativoVolumen_gasPUNTO[] punto = new AsigConf.dias_operativosDia_operativoVolumen_gasPUNTO[lp.Count]; for (int j = 0; j < lp.Count; j++) { punto[j] = new AsigConf.dias_operativosDia_operativoVolumen_gasPUNTO(); punto[j].megid_punto_medicion = lp[j].megid_punto_medicion; punto[j].volumen = lp[j].volumen; punto[j].megid_motivo = ""; punto[j].observaciones_motivo = ""; } if (contadorLineaConf > 0) { contadorLineaConf += lp.Count - 1; } vgas[i].PUNTOS = punto; dops.Items[0].volumenes_gas = vgas; contadorLineaConf += 1; } //Deserializar ( pasar de FeaEntidades.InterFacturas.lote_comprobantes a string XML ) MemoryStream ms = new MemoryStream(); XmlTextWriter writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1")); System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(dops.GetType()); x.Serialize(writer, dops); ms = (MemoryStream)writer.BaseStream; string resp = ByteArrayToString(ms.ToArray()); ms.Close(); ms = null; //Grabar archivo en disco System.Text.Encoding codificador; codificador = System.Text.Encoding.GetEncoding("iso-8859-1"); byte[] a = new byte[resp.Length]; a = codificador.GetBytes(resp); string NombreArchivo = DirectorioXMLTextBox.Text + "\\" + NombreHojaCONFTextBox.Text + "-" + DateTime.Now.ToString("yyyyMMdd-hhmmss") + ".xml"; FileStream fs = File.Create(NombreArchivo); fs.Write(a, 0, a.Length); fs.Close(); MessageBox.Show("Archivo XML procesado satisfactoriamente." + "\r\n\r\n" + "Nombre del Archivo: " + NombreArchivo, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } catch (Exception ex) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Archivo.ProcesarArchivo(ex); } finally { } }
private void ExcelButton_Click(object sender, EventArgs e) { OpenFileDialog xlsOpenFileDialog = new OpenFileDialog(); xlsOpenFileDialog.Filter = "Archivos Excel (*.xls)|*.xls|Todos los archivos (*.*)|*.*"; xlsOpenFileDialog.Multiselect = false; xlsOpenFileDialog.FilterIndex = 1; xlsOpenFileDialog.RestoreDirectory = true; if (xlsOpenFileDialog.ShowDialog() == DialogResult.OK) { try { string archivo = xlsOpenFileDialog.FileName; FeaEntidades.InterFacturas.lote_comprobantes lote = new FeaEntidades.InterFacturas.lote_comprobantes(); FeaEntidades.InterFacturas.cabecera compcab = new FeaEntidades.InterFacturas.cabecera(); FeaEntidades.InterFacturas.comprobante comp = new FeaEntidades.InterFacturas.comprobante(); comp.cabecera = compcab; lote.comprobante[0] = comp; List<FeaEntidades.Excel.Ubicador> lista = FeaEntidades.Excel.Ubicador.Lista(); foreach (FeaEntidades.Excel.Ubicador u in lista) { FileHelpers.DataLink.ExcelStorage provider = new FileHelpers.DataLink.ExcelStorage(u.GetType()); provider.StartRow = u.X; provider.StartColumn = u.Y; provider.FileName = @archivo; provider.SheetName = "XML"; Object[] oArray = (Object[])System.Array.CreateInstance(u.GetType(), 10); oArray = (Object[])provider.ExtractRecords(); foreach (Object o in oArray) { FileHelpers.DataLink.ExcelStorage providerInterno = new FileHelpers.DataLink.ExcelStorage(System.Type.GetType("FeaEntidades.InterFacturas." + ((FeaEntidades.Excel.Ubicador)o).Tipo + ", FeaEntidades")); providerInterno.StartRow = ((FeaEntidades.Excel.Ubicador)o).Y; providerInterno.StartColumn = ((FeaEntidades.Excel.Ubicador)o).X; providerInterno.FileName = @archivo; providerInterno.SheetName = "XML"; Object[] oArrayInterno = (Object[])System.Array.CreateInstance(System.Type.GetType("FeaEntidades.InterFacturas." + ((FeaEntidades.Excel.Ubicador)o).Tipo + ", FeaEntidades"), 10); oArrayInterno = (Object[])providerInterno.ExtractRecords(); if (oArrayInterno.Length > 0) { switch (oArrayInterno.GetType().ToString()) { case "FeaEntidades.InterFacturas.cabecera_lote[]": lote.cabecera_lote = (FeaEntidades.InterFacturas.cabecera_lote)oArrayInterno[0]; break; case "FeaEntidades.InterFacturas.informacion_comprador[]": compcab.informacion_comprador = (FeaEntidades.InterFacturas.informacion_comprador)oArrayInterno[0]; break; case "FeaEntidades.InterFacturas.informacion_comprobante[]": compcab.informacion_comprobante = (FeaEntidades.InterFacturas.informacion_comprobante)oArrayInterno[0]; break; case "FeaEntidades.InterFacturas.informacion_comprobanteReferencias[]": compcab.informacion_comprobante.referencias = (FeaEntidades.InterFacturas.informacion_comprobanteReferencias[])oArrayInterno; break; case "FeaEntidades.InterFacturas.informacion_vendedor[]": compcab.informacion_vendedor = (FeaEntidades.InterFacturas.informacion_vendedor)oArrayInterno[0]; break; case "FeaEntidades.InterFacturas.detalle[]": comp.detalle = (FeaEntidades.InterFacturas.detalle)oArrayInterno[0]; break; case "FeaEntidades.InterFacturas.linea[]": comp.detalle.linea = (FeaEntidades.InterFacturas.linea[])oArrayInterno; break; case "FeaEntidades.InterFacturas.lineaImportes_moneda_origen[]": break; case "FeaEntidades.InterFacturas.lineaImpuestos[]": break; case "FeaEntidades.InterFacturas.lineaDescuentos[]": break; case "FeaEntidades.InterFacturas.resumen[]": comp.resumen = (FeaEntidades.InterFacturas.resumen)oArrayInterno[0]; break; case "FeaEntidades.InterFacturas.resumenDescuentos[]": comp.resumen.descuentos = (FeaEntidades.InterFacturas.resumenDescuentos[])oArrayInterno; break; case "FeaEntidades.InterFacturas.resumenImportes_moneda_origen[]": break; case "FeaEntidades.InterFacturas.resumenImpuestos[]": FeaEntidades.InterFacturas.resumenImpuestos[] impLista = ((FeaEntidades.InterFacturas.resumenImpuestos[])oArrayInterno); FeaEntidades.InterFacturas.resumenImpuestos[] impNewLista = new FeaEntidades.InterFacturas.resumenImpuestos[10]; for (int im = 0; im < impLista.Length; im++) { if (impLista[im].importe_impuesto != 0) { impNewLista[im] = impLista[im]; } } comp.resumen.impuestos = impNewLista; break; } } } } System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(lote.GetType()); System.Text.StringBuilder sb = new System.Text.StringBuilder(); if (d != null) { sb.Append(@d); sb.Append(System.IO.Path.DirectorySeparatorChar); } else { throw new Exception("Debe elegir un directorio primero"); } sb.Append(lote.cabecera_lote.cuit_vendedor); sb.Append("-"); sb.Append(lote.cabecera_lote.punto_de_venta.ToString("0000")); sb.Append("-"); sb.Append(lote.comprobante[0].cabecera.informacion_comprobante.tipo_de_comprobante.ToString("00")); sb.Append("-"); sb.Append(lote.comprobante[0].cabecera.informacion_comprobante.numero_comprobante.ToString("00000000")); sb.Append(".xml"); System.IO.Stream fs = new System.IO.FileStream(sb.ToString(), System.IO.FileMode.Create); System.Xml.XmlWriter writer = new System.Xml.XmlTextWriter(fs, System.Text.Encoding.GetEncoding("ISO-8859-1")); x.Serialize(writer, lote); fs.Close(); System.Diagnostics.Process.Start(sb.ToString()); } catch(NullReferenceException) { try { throw new Exception("El archivo seleccionado no está generado desde el template excel"); } catch (Exception exc) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(exc); } } catch (Exception ex) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex); } } }
private void ProcesarLiq() { try { if (DirectorioEXCELTextBox.Text == "") { MessageBox.Show("Seleccionar la planilla EXCEL.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } if (DirectorioXMLTextBox.Text == "") { MessageBox.Show("Seleccionar el directorio para guardar los archivos XML.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } FileHelpers.DataLink.ExcelStorage fh = new FileHelpers.DataLink.ExcelStorage(typeof(Planilla2)); fh.FileName = DirectorioEXCELTextBox.Text; fh.SheetName = NombreHojaLIQTextBox.Text; fh.StartRow = 2; fh.StartColumn = 1; Planilla2[] liq = (Planilla2[])fh.ExtractRecords(); List<Planilla2> lliq = new List<Planilla2>(); lliq.AddRange(liq); Liq.periodos_facturacion periodosF = new Liq.periodos_facturacion(); Liq.periodo_facturacion pf = new Liq.periodo_facturacion(); pf.fecha_desde = lliq[0].fecha_desde.ToString("dd/MM/yyyy"); pf.fecha_hasta = lliq[0].fecha_hasta.ToString("dd/MM/yyyy"); Liq.contratos contratos = new Liq.contratos(); for (int i = 0; i < lliq.Count; i++) { Liq.contrato c = new Liq.contrato(); c.mov = "A"; c.megid_contrato = lliq[i].megid_contrato_gas; c.megid_moneda = lliq[i].megid_moneda; Liq.conceptos_facturacion conceptosF = new Liq.conceptos_facturacion(); Liq.concepto_facturacion cf = new Liq.concepto_facturacion(); cf.megid_concepto_facturacion = lliq[i].concepto_facturacion; cf.volumen = lliq[i].volumen; cf.monto = lliq[i].monto; cf.megid_entidad_medidora = ""; cf.megid_ruta = ""; cf.megid_tipo_medicion = ""; conceptosF.Add(cf); c.conceptos_facturacionCollection.Add(conceptosF); contratos.Add(c); } pf.contratosCollection.Add(contratos); periodosF.periodo_facturacionCollection.Add(pf); //Deserializar ( pasar de FeaEntidades.InterFacturas.lote_comprobantes a string XML ) MemoryStream ms = new MemoryStream(); XmlTextWriter writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1")); System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(periodosF.GetType()); x.Serialize(writer, periodosF); ms = (MemoryStream)writer.BaseStream; string resp = ByteArrayToString(ms.ToArray()); ms.Close(); ms = null; //Grabar archivo en disco System.Text.Encoding codificador; codificador = System.Text.Encoding.GetEncoding("iso-8859-1"); byte[] a = new byte[resp.Length]; a = codificador.GetBytes(resp); string NombreArchivo = DirectorioXMLTextBox.Text + "\\" + NombreHojaLIQTextBox.Text + "-" + DateTime.Now.ToString("yyyyMMdd-hhmmss") + ".xml"; FileStream fs = File.Create(NombreArchivo); fs.Write(a, 0, a.Length); fs.Close(); MessageBox.Show("Archivo XML procesado satisfactoriamente." + "\r\n\r\n" + "Nombre del Archivo: " + NombreArchivo, "Información", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } catch (Exception ex) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Archivo.ProcesarArchivo(ex); } finally { } }
public static void Procesar(string Directorio, CedEntidades.Sesion Sesion) { try { new CedForecastDB.PlanillaInfoEmbarque(Sesion).Guardar(Directorio); //Lectura planilla excel FileHelpers.DataLink.ExcelStorage planilla = new FileHelpers.DataLink.ExcelStorage(typeof(CedForecastEntidades.PlanillaInfoEmbarque)); planilla.StartRow = 9; planilla.StartColumn = 1; //planilla.SheetName = "Tabelle3"; planilla.FileName = Directorio; CedForecastEntidades.PlanillaInfoEmbarque[] filas = (CedForecastEntidades.PlanillaInfoEmbarque[])planilla.ExtractRecords(); //Prueba ---------------- //planilla = new FileHelpers.DataLink.ExcelStorage(typeof(CedForecastEntidades.PlanillaInfoEmbarque)); //planilla.OverrideFile = false; //planilla.StartRow = 9; //planilla.StartColumn = 1; //planilla.TemplateFile = "C:\\KS\\2011 Amerika - NEW.xls"; //planilla.FileName = "C:\\KS\\2011 Amerika - NEW2.xls"; //planilla.SheetName = "Cabecera"; //planilla.InsertRecords(filas); //planilla.TemplateFile = ""; //planilla.SheetName = "Detalle"; //planilla.InsertRecords(filas); //Fin Prueba ------------ //Actualizar items de la orden de compra for (int i = 0; i < filas.Length; i++) { try { //Determino info de embarque CedForecastEntidades.OrdenCompraInfoEmbarque infoEmbarque = new CedForecastEntidades.OrdenCompraInfoEmbarque(); infoEmbarque.IdReferenciaSAP = filas[i].IdReferenciaSAP; infoEmbarque.FechaEstimadaSalida = FormatearFechaOADate(filas[i].FechaEstimadaSalida); infoEmbarque.Vapor = filas[i].Vapor; infoEmbarque.FechaEstimadaArribo = FormatearFechaOADate(filas[i].FechaEstimadaArribo); //Leo orden de compra CedForecastEntidades.OrdenCompra ordenCompra = new CedForecastEntidades.OrdenCompra(); string itemOrdenCompra = QuitarPrefijo(filas[i].ItemOrdenCompra); ordenCompra.Id = Convert.ToInt32(itemOrdenCompra.Substring(0, itemOrdenCompra.Length - 1)); ordenCompra.IdItem = itemOrdenCompra.Substring(itemOrdenCompra.Length - 1, 1); CedForecastRN.OrdenCompra.LeerParaActualizacionInfoEmbarque(ordenCompra, Sesion); //Actualizo info embarque CedForecastRN.OrdenCompra.ActualizacionInfoEmbarque(ordenCompra, infoEmbarque, Sesion); } catch (Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ElementoInexistente) { } catch { throw; } } } catch (Exception ex) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex); } }