public static void Alta(CedForecastEntidades.OrdenCompraInfoAlta OrdenCompraInfoAlta, CedEntidades.Sesion Sesion) { ValidacionAlta(OrdenCompraInfoAlta, Sesion); CedEntidades.WF wF = Cedeira.SV.WF.Nueva("OrdenCpra", "NA", 0, String.Empty, Sesion); CedEntidades.Evento eventoWF=new CedEntidades.Evento(); eventoWF.Flow.IdFlow = wF.IdFlow; eventoWF.Id = "Alta"; Cedeira.SV.WF.LeerEvento(eventoWF, Sesion); string handler = Cedeira.SV.WF.EjecutarEvento(wF, eventoWF, true); new CedForecastDB.OrdenCompra(Sesion).Alta(OrdenCompraInfoAlta, handler); }
public static void CambioEstado(CedForecastEntidades.OrdenCompra OrdenCompraOriginal, CedForecastEntidades.OrdenCompra OrdenCompraModificada, CedEntidades.Sesion Sesion) { ValidacionCambioEstado(OrdenCompraOriginal, OrdenCompraModificada, Sesion); CedEntidades.Evento eventoWF = new CedEntidades.Evento(); eventoWF.Flow.IdFlow = "OrdenCpra"; eventoWF.Id = "CambioEst"; Cedeira.SV.WF.LeerEvento(eventoWF, Sesion); eventoWF.IdEstadoHst.IdEstado = OrdenCompraModificada.WF.IdEstado; string handler = Cedeira.SV.WF.EjecutarEvento(OrdenCompraOriginal.WF, eventoWF, true); new CedForecastDB.OrdenCompra(Sesion).CambioEstado(OrdenCompraOriginal, OrdenCompraModificada, handler); }
public static void Anulacion(List<CedForecastEntidades.OrdenCompra> OrdenesCompra, CedEntidades.Sesion Sesion) { CedEntidades.Evento eventoWF = new CedEntidades.Evento(); eventoWF.Flow.IdFlow = "OrdenCpra"; eventoWF.Id = "Anul"; Cedeira.SV.WF.LeerEvento(eventoWF, Sesion); List<string> handlers = new List<string>(); for (int i = 0; i < OrdenesCompra.Count; i++) { handlers.Add(Cedeira.SV.WF.EjecutarEvento(OrdenesCompra[i].WF, eventoWF, true)); } new CedForecastDB.OrdenCompra(Sesion).Anulacion(handlers); }
public static void IngresoADeposito(List<CedForecastEntidades.OrdenCompra> OrdenesCompra, CedForecastEntidades.OrdenCompraInfoIngresoADeposito InfoIngresoADeposito, CedEntidades.Sesion Sesion) { ValidacionIngresoADeposito(InfoIngresoADeposito, Sesion); CedEntidades.Evento eventoWF = new CedEntidades.Evento(); eventoWF.Flow.IdFlow = "OrdenCpra"; eventoWF.Id = "IngrADep"; Cedeira.SV.WF.LeerEvento(eventoWF, Sesion); List<string> handlers = new List<string>(); for (int i = 0; i < OrdenesCompra.Count; i++) { handlers.Add(Cedeira.SV.WF.EjecutarEvento(OrdenesCompra[i].WF, eventoWF, true)); } new CedForecastDB.OrdenCompra(Sesion).IngresoADeposito(ListaOrdenesCompra(OrdenesCompra), InfoIngresoADeposito, handlers); }
public static void RegistroDespacho(List<CedForecastEntidades.OrdenCompra> OrdenesCompra, CedForecastEntidades.OrdenCompraInfoRegistroDespacho InfoRegistroDespacho, CedEntidades.Sesion Sesion) { ValidacionRegistroDespacho(InfoRegistroDespacho, Sesion); CedEntidades.Evento eventoWF = new CedEntidades.Evento(); eventoWF.Flow.IdFlow = "OrdenCpra"; eventoWF.Id = "RegDesp"; Cedeira.SV.WF.LeerEvento(eventoWF, Sesion); List<string> handlers = new List<string>(); for (int i = 0; i < OrdenesCompra.Count; i++) { CedForecastEntidades.ArticuloInfoAdicional articuloInfoAdicional = new CedForecastEntidades.ArticuloInfoAdicional(); articuloInfoAdicional.IdArticulo = OrdenesCompra[i].IdArticulo; CedForecastRN.ArticuloInfoAdicional.Leer(articuloInfoAdicional, Sesion); if (articuloInfoAdicional.IdRENAR == String.Empty) { eventoWF.IdEstadoHst.IdEstado = "PteIngrADep"; } else { eventoWF.IdEstadoHst.IdEstado = "PteInspRenar"; } handlers.Add(Cedeira.SV.WF.EjecutarEvento(OrdenesCompra[i].WF, eventoWF, true)); } new CedForecastDB.OrdenCompra(Sesion).RegistroDespacho(ListaOrdenesCompra(OrdenesCompra), InfoRegistroDespacho, handlers); }
public static void Ejecutar(eFact_Entidades.Lote Lote, CedEntidades.Evento Evento, string Handler, eFact_Entidades.Aplicacion Aplicacion, CedEntidades.Sesion Sesion) { string handlerEvento = ""; //VerificarAssemblyVersion(); eFact_DB.Lote lote = new eFact_DB.Lote(Sesion); string nombreArchivoProcesado = ""; switch (Lote.WF.IdFlow) { case "eFact": switch (Evento.Id) { case "EnvBandSalida": if (Lote.NumeroEnvio > 1) { eFact_Entidades.Lote l = new eFact_Entidades.Lote(); l.CuitVendedor = Lote.CuitVendedor; l.PuntoVenta = Lote.PuntoVenta; l.NumeroLote = Lote.NumeroLote; l.NumeroEnvio = Lote.NumeroEnvio - 1; eFact_RN.Lote.Leer(l, Sesion); //Busca el evento automático, para anular el envio anterior. CedEntidades.Evento evento = l.WF.EventosPosibles.Find((delegate(CedEntidades.Evento e1) { return e1.Automatico == true && (e1.Id == "AnularRechIF" || e1.Id == "AnularCancel"); })); handlerEvento = Cedeira.SV.WF.EjecutarEvento(l.WF, evento, true); handlerEvento += " end "; } handlerEvento += Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, true); lote.Insertar(Lote, handlerEvento, Handler); break; case "EnvBandSalidaV": handlerEvento += Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, true); lote.Insertar(Lote, handlerEvento, Handler); break; case "EnviarAIF": handlerEvento += Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, true); lote.ActualizarFechaEnvio(Lote, handlerEvento); break; case "RegAceptAFIP": case "RegActAFIP": handlerEvento = Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, true); lote.ActualizarDatosCAE(Lote, handlerEvento); if (Aplicacion.TipoItfAut == "XML") { GuardarItfXML(out nombreArchivoProcesado, Lote, "ROK", Aplicacion.ArchPathItfAut, true, false); } else if (Aplicacion.TipoItfAut == "TXT") { GuardarItfTXT(out nombreArchivoProcesado, Lote, "ROK", Aplicacion.ArchPathItfAut, true); } break; case "RegAceptAFIPO": case "RegActAFIPO": handlerEvento = Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, true); lote.ActualizarDatosCAE(Lote, handlerEvento); if (Aplicacion.TipoItfAut == "XML") { GuardarItfXML(out nombreArchivoProcesado, Lote, "ROO", Aplicacion.ArchPathItfAut, true, false); } else if (Aplicacion.TipoItfAut == "TXT") { GuardarItfTXT(out nombreArchivoProcesado, Lote, "ROO", Aplicacion.ArchPathItfAut, true); } break; case "RegAceptAFIPP": case "RegActAFIPP": handlerEvento = Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, true); lote.ActualizarDatosCAE(Lote, handlerEvento); if (Aplicacion.TipoItfAut == "XML") { GuardarItfXML(out nombreArchivoProcesado, Lote, "ROP", Aplicacion.ArchPathItfAut, true, false); } else if (Aplicacion.TipoItfAut == "TXT") { GuardarItfTXT(out nombreArchivoProcesado, Lote, "ROP", Aplicacion.ArchPathItfAut, true); } break; case "RegContAFIP": case "RegContAFIPO": case "RegContAFIPP": handlerEvento = Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, true); DataTable dt = lote.Insertar(Lote, handlerEvento, ""); Lote.IdLote = Convert.ToInt32(dt.Rows[0][0].ToString()); Leer(Lote, Sesion); CedEntidades.Evento eventoAct = new CedEntidades.Evento(); eventoAct = Lote.WF.EventosPosibles[0]; handlerEvento = Cedeira.SV.WF.EjecutarEvento(Lote.WF, eventoAct, true); lote.ActualizarDatosCAE(Lote, handlerEvento); if (Aplicacion.TipoItfAut == "XML") { GuardarItfXML(out nombreArchivoProcesado, Lote, "ROK", Aplicacion.ArchPathItfAut, true, false); } else if (Aplicacion.TipoItfAut == "TXT") { GuardarItfTXT(out nombreArchivoProcesado, Lote, "ROK", Aplicacion.ArchPathItfAut, true); } break; case "RegRechAFIP": handlerEvento = Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, true); lote.ActualizarDatosError(Lote, handlerEvento); if (Aplicacion.TipoItfAut == "XML") { GuardarItfXML(out nombreArchivoProcesado, Lote, "RAF", Aplicacion.ArchPathItfAut, true, false); } else if (Aplicacion.TipoItfAut == "TXT") { GuardarItfTXTlr(out nombreArchivoProcesado, Lote, "RAF", Aplicacion.ArchPathItfAut, true); } break; case "RegRechIF": handlerEvento = Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, true); lote.ActualizarDatosError(Lote, handlerEvento); if (Aplicacion.TipoItfAut == "XML") { GuardarItfXML(out nombreArchivoProcesado, Lote, "RIF", Aplicacion.ArchPathItfAut, true, false); } else if (Aplicacion.TipoItfAut == "TXT") { GuardarItfTXTlr(out nombreArchivoProcesado, Lote, "RIF", Aplicacion.ArchPathItfAut, true); } break; default: Cedeira.SV.WF.EjecutarEvento(Lote.WF, Evento, false); break; } break; } }
public System.Collections.Generic.List<CedEntidades.Evento> WF_EventosXLotePosibles_qry(CedEntidades.WF Wf) { string a = "Select WF_Evento.*, WF_Flow.DescrFlow, EstadoDsd.DescrEstado as DescrEstadoDsd, EstadoHst.DescrEstado as DescrEstadoHst " + "from WF_Evento, WF_Flow, WF_Estado EstadoDsd, WF_Estado EstadoHst " + "where WF_Evento.IdFlow='" + Wf.IdFlow + "' and WF_Evento.IdEstadoDsd in ('" + Wf.IdEstado + "', '<Cualquiera>') " + "and WF_Evento.IdFlow=WF_Flow.IdFlow " + "and EstadoDsd.IdEstado=WF_Evento.IdEstadoDsd and EstadoHst.IdEstado=WF_Evento.IdEstadoHst " + "and WF_Evento.IdEvento in (select IdEvento from WF_EsquemaSeg where IdCircuito='" + Wf.IdCircuito + "' and IdFlow='" + Wf.IdFlow + "') " + "and WF_Evento.XLote=1 "; DataView dv = (DataView)Ejecutar( a, TipoRetorno.DV, Transaccion.NoAcepta, sesion.CnnStr); System.Collections.Generic.List<CedEntidades.Evento> eventosPos = new System.Collections.Generic.List<CedEntidades.Evento>(); for (int i = 0; i < dv.Table.Rows.Count; i++) { CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Flow.IdFlow = Convert.ToString(dv.Table.Rows[i]["IdFlow"]); evento.Id = Convert.ToString(dv.Table.Rows[i]["IdEvento"]); evento.Descr = Convert.ToString(dv.Table.Rows[i]["DescrEvento"]); evento.TextoAccion = Convert.ToString(dv.Table.Rows[i]["TextoAccion"]); evento.IdEstadoDsd.IdEstado = Convert.ToString(dv.Table.Rows[i]["IdEstadoDsd"]); evento.IdEstadoHst.IdEstado = Convert.ToString(dv.Table.Rows[i]["IdEstadoHst"]); evento.Automatico = Convert.ToBoolean(dv.Table.Rows[i]["Automatico"]); evento.CXO = Convert.ToBoolean(dv.Table.Rows[i]["CXO"]); evento.XLote = Convert.ToBoolean(dv.Table.Rows[i]["XLote"]); evento.Flow.DescrFlow = Convert.ToString(dv.Table.Rows[i]["DescrFlow"]); evento.IdEstadoDsd.DescrEstado = Convert.ToString(dv.Table.Rows[i]["DescrEstadoDsd"]); evento.IdEstadoHst.DescrEstado = Convert.ToString(dv.Table.Rows[i]["DescrEstadoHst"]); eventosPos.Add(evento); } return eventosPos; }
public System.Collections.Generic.List<CedEntidades.Evento> WF_EventosIniciales_qry(CedEntidades.WF Wf) { StringBuilder a=new StringBuilder(String.Empty); a.Append("select WF_Evento.*, WF_Flow.DescrFlow, EstadoHst.DescrEstado as DescrEstadoHst "); a.Append("from WF_Evento "); a.Append("inner join WF_Flow on WF_Evento.IdFlow=WF_Flow.IdFlow "); a.Append("left outer join WF_Estado EstadoHst on EstadoHst.IdEstado=WF_Evento.IdEstadoHst "); a.Append("where WF_Evento.IdFlow='" + Wf.IdFlow + "' and WF_Evento.IdEstadoDsd is null "); DataView dv = (DataView)Ejecutar( a.ToString(), TipoRetorno.DV, Transaccion.NoAcepta, sesion.CnnStr); System.Collections.Generic.List<CedEntidades.Evento> eventosPos = new System.Collections.Generic.List<CedEntidades.Evento>(); for (int i = 0; i < dv.Table.Rows.Count; i++) { CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Flow.IdFlow = Convert.ToString(dv.Table.Rows[i]["IdFlow"]); evento.Id = Convert.ToString(dv.Table.Rows[i]["IdEvento"]); evento.Descr = Convert.ToString(dv.Table.Rows[i]["DescrEvento"]); evento.TextoAccion = Convert.ToString(dv.Table.Rows[i]["TextoAccion"]); evento.IdEstadoDsd.IdEstado = Convert.ToString(dv.Table.Rows[i]["IdEstadoDsd"]); evento.IdEstadoHst.IdEstado = Convert.ToString(dv.Table.Rows[i]["IdEstadoHst"]); evento.Automatico = Convert.ToBoolean(dv.Table.Rows[i]["Automatico"]); evento.CXO = Convert.ToBoolean(dv.Table.Rows[i]["CXO"]); evento.XLote = Convert.ToBoolean(dv.Table.Rows[i]["XLote"]); evento.Flow.DescrFlow = Convert.ToString(dv.Table.Rows[i]["DescrFlow"]); evento.IdEstadoHst.DescrEstado = Convert.ToString(dv.Table.Rows[i]["DescrEstadoHst"]); eventosPos.Add(evento); } return eventosPos; }
private void EjecutarEventoBandejaS(string IdEvento, string Comentario, eFact_Entidades.Lote lote) { CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Id = IdEvento; evento.Flow.IdFlow = "eFact"; evento.Flow.DescrFlow = "Facturación Electrónica"; evento.Comentario = Comentario; Cedeira.SV.WF.LeerEvento(evento, Aplicacion.Sesion); eFact_RN.Lote.VerificarEnviosPosteriores(false, lote.CuitVendedor, lote.NumeroLote, lote.PuntoVenta, lote.NumeroEnvio, eFact_R.Aplicacion.Sesion); eFact_RN.Lote.Ejecutar(lote, evento, "", Aplicacion.Aplic, Aplicacion.Sesion); RefreshBandejaSalida(); }
private void EnviarABandejaSButton_Click(object sender, EventArgs e) { Cursor = System.Windows.Forms.Cursors.WaitCursor; VerificarServicio(); if (Aplicacion.Modalidad == "Automatica" && ServicioOK == true) { MessageBox.Show("No es posible enviar archivos a la bandeja de salida, mientras el Servicio-eFact se encuentre activo.", "ATENCIÓN", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } EnviarABandejaSButton.Enabled = false; DescartarBandejaEButton.Enabled = false; try { if (BandejaEDataGridView.SelectedRows.Count != 0) { //Inicializar filtros para visualizar los archivos procesados. InicializarFiltrosTablero(); for (int i = 0; i < BandejaEDataGridView.SelectedRows.Count; i++) { int renglon = BandejaEDataGridView.SelectedRows[i].Index; //Definir el nombre del archivo a guardar en el histórico como procesado, con o sin error. //Mas adelante se le agraga el prefijo ( BAK o ERR ). string NombreArchivo = dtBandejaEntrada[renglon].Nombre; string FechaTexto = DateTime.Now.ToString("yyyyMMdd-hhmmss"); string ArchGuardarComoNombre = ""; eFact_RN.Engine.GenerarNombreArch(out ArchGuardarComoNombre, "", NombreArchivo); //-------------------------------------- //Procesar el archivo seleccionado. try { eFact_Entidades.Lote lote = new eFact_Entidades.Lote(); eFact_RN.Archivo.Procesar(out lote, dtBandejaEntrada[renglon], Aplicacion.Aplic, Aplicacion.Sesion); //Agregar datos del proceso a la entidad Archivo ArchGuardarComoNombre = "BAK-" + ArchGuardarComoNombre; dtBandejaEntrada[renglon].NombreProcesado = ArchGuardarComoNombre; dtBandejaEntrada[renglon].FechaProceso = DateTime.Now; string handler = eFact_RN.Archivo.Insertar(dtBandejaEntrada[renglon], true, Aplicacion.Sesion); //Ejecutar el insert local del "Lote". CedEntidades.Evento evento = new CedEntidades.Evento(); if (lote.IdNaturalezaLote == "") { evento.Id = "EnvBandSalida"; evento.Flow.IdFlow = "eFact"; //evento.Flow.DescrFlow = "Facturación Electrónica"; Cedeira.SV.WF.LeerEvento(evento, Aplicacion.Sesion); lote.WF = Cedeira.SV.WF.Nueva("eFact", "Fact", 0, "Facturacion Electrónica", Aplicacion.Sesion); } else { evento.Id = "EnvBandSalidaV"; evento.Flow.IdFlow = "eFact"; //evento.Flow.DescrFlow = "Comprobantes"; Cedeira.SV.WF.LeerEvento(evento, Aplicacion.Sesion); lote.WF = Cedeira.SV.WF.Nueva("eFact", "Fact", 0, "Comprobantes", Aplicacion.Sesion); } eFact_RN.Lote.VerificarEnviosPosteriores(true, lote.CuitVendedor, lote.NumeroLote, lote.PuntoVenta, lote.NumeroEnvio, eFact_R.Aplicacion.Sesion); //Generar nombre de archivo procesado para ser enviado al histórico. eFact_RN.Lote.Ejecutar(lote, evento, handler, Aplicacion.Aplic, Aplicacion.Sesion); } catch (Exception ex) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex); dtBandejaEntrada[renglon].Comentario = ex.Message; if (ex.InnerException != null) { dtBandejaEntrada[renglon].Comentario += "\r\n" + ex.InnerException.Message; } //Agregar datos del proceso a la entidad Archivo ArchGuardarComoNombre = "ERR-" + ArchGuardarComoNombre; dtBandejaEntrada[renglon].NombreProcesado = ArchGuardarComoNombre; dtBandejaEntrada[renglon].FechaProceso = DateTime.Now; eFact_RN.Archivo.Insertar(dtBandejaEntrada[renglon], false, Aplicacion.Sesion); } //Remover archivo ---------------------- Directory.Move(Aplicacion.Aplic.ArchPath + "\\" + NombreArchivo, Aplicacion.Aplic.ArchPathHis + ArchGuardarComoNombre); //-------------------------------------- } } } catch (Exception ex2) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex2); } //Actualizar Bandeja de entrada. try { LimpiarBandejaEntrada(); ActualizarBandejaE(); RefreshBandejaSalida(); } catch (Exception ex) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex); } finally { EnviarABandejaSButton.Enabled = true; DescartarBandejaEButton.Enabled = true; Cursor = System.Windows.Forms.Cursors.Default; } }
private void BandejaSDataGridView_SelectionChanged(object sender, EventArgs e) { try { EventosComboBox.Enabled = false; switch (BandejaSDataGridView.SelectedRows.Count) { case 0: break; case 1: int renglon = BandejaSDataGridView.SelectedRows[0].Index; List<CedEntidades.Evento> leventos = new List<CedEntidades.Evento>(); CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Id = "(ElegirAccion)"; evento.Descr = "( Eligir una acción )"; leventos.Add(evento); List<CedEntidades.Evento> leventosAux = dtBandejaSalida[renglon].WF.EventosPosibles.FindAll((delegate(CedEntidades.Evento e1) { return e1.Automatico == false; })); leventos.AddRange(leventosAux); EventosComboBox.DataSource = leventos; EventosComboBox.DisplayMember = "Descr"; EventosComboBox.ValueMember = "Id"; //Armado de ComboBox con las opciones de exportar con respuesta IF. ExportarItfComboBox.Items.Clear(); ExportarItfComboBox.Items.Add("( Elegir una opción para Exportar )"); ExportarItfComboBox.Items.Add("Exportar archivo original en formato TXT"); ExportarItfComboBox.Items.Add("Exportar archivo original en formato XML"); ExportarItfComboBox.Items.Add("Exportar archivo original en formato XML para subir a Interfacturas"); ExportarItfComboBox.SelectedIndex = 0; if (dtBandejaSalida[renglon].WF.IdEstado == "AceptadoAFIP") { ExportarItfComboBox.Items.Add("Exportar archivo con respuesta AFIP en formato TXT"); ExportarItfComboBox.Items.Add("Exportar archivo con respuesta AFIP en formato XML"); } break; default: ExportarItfComboBox.Items.Clear(); ExportarItfComboBox.Items.Add("( Elegir una opción para Exportar )"); ExportarItfComboBox.Items.Add("Exportar archivo original en formato TXT"); ExportarItfComboBox.Items.Add("Exportar archivo original en formato XML"); ExportarItfComboBox.Items.Add("Exportar archivo original en formato XML para subir a Interfacturas"); ExportarItfComboBox.SelectedIndex = 0; ConfigBotonesEventosXLote(); break; } } catch (Exception ex) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex); } finally { EventosComboBox.Enabled = true; Cursor = System.Windows.Forms.Cursors.Default; } }
private void ActualizarButton_Click(object sender, EventArgs e) { try { Cursor = System.Windows.Forms.Cursors.WaitCursor; if (modoActual == Modo.Contingencia) { //Verificar si el Lote se encuentra en el estado "AceptadoBCRA" en la aplicación, en ese caso //actualizar la info de CAE y el estadoIFoAFIP de cada comprobante. De lo contrario, //incorporar el Lote con un evento de contingencia. if (lote.IdOp != 0) { if (MessageBox.Show("Desea actualizar los datos del lote obtenidos de Interfacturas ?", "Contingencia", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { //Actualizar datos CAE y resultado/motivo CedEntidades.Evento evento = new CedEntidades.Evento(); evento = lote.WF.EventosPosibles[0]; eFact_RN.Lote.Ejecutar(lote, evento, "", Aplicacion.Aplic, Aplicacion.Sesion); MessageBox.Show("Lote actualizado satisfactoriamente.", "Contingencia", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } } else { if (MessageBox.Show("Desea incorporar el lote obtenido de Interfacturas ?", "Contingencia", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { //Incorporar nuevo Lote por contingencia desde IF. eFact_RN.Lote.Ejecutar(lote, eventoContingencia, "", Aplicacion.Aplic, Aplicacion.Sesion); MessageBox.Show("Lote actualizado satisfactoriamente.", "Contingencia", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Contingencia", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } finally { Cancelar(); Cursor = System.Windows.Forms.Cursors.Default; } }
private void ConsultarLoteIFButton_Click(object sender, EventArgs e) { try { Cursor = System.Windows.Forms.Cursors.WaitCursor; NumeroLoteTextBox.ReadOnly = true; CuitVendedorTextBox.ReadOnly = true; PuntoVentaTextBox.ReadOnly = true; FeaEntidades.InterFacturas.lote_comprobantes Lc = new FeaEntidades.InterFacturas.lote_comprobantes(); eFact_RN.IBK.error[] respErroresLote = new eFact_RN.IBK.error[0]; eFact_RN.IBK.error[] respErroresComprobantes = new eFact_RN.IBK.error[0]; eFact_Entidades.Vendedor v = Aplicacion.Vendedores.Find(delegate(eFact_Entidades.Vendedor e1) { return e1.CuitVendedor == CuitVendedorTextBox.Text; }); if (v == null) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Vendedor.Inexistente("CUIT " + CuitVendedorTextBox.Text); } if (modoActual == Modo.Contingencia) { lote = new eFact_Entidades.Lote(); if (NumeroLoteTextBox.Text == "") { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorNoInfo("Número de lote"); } if (!(Cedeira.SV.Fun.IsNumeric(NumeroLoteTextBox.Text))) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorInvalido("Número de lote"); } lote.NumeroLote = NumeroLoteTextBox.Text; if (CuitVendedorTextBox.Text == "") { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorNoInfo("Cuit vendedor"); } if (!(Cedeira.SV.Fun.IsNumeric(CuitVendedorTextBox.Text))) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorInvalido("Cuit vendedor"); } lote.CuitVendedor = CuitVendedorTextBox.Text; if (PuntoVentaTextBox.Text == "") { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorNoInfo("Punto de Venta"); } if (!(Cedeira.SV.Fun.IsNumeric(PuntoVentaTextBox.Text))) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.ValorInvalido("Punto de Venta"); } lote.PuntoVenta = PuntoVentaTextBox.Text; eFact_RN.Lote.ConsultarLoteIF(out Lc, out respErroresLote, out respErroresComprobantes, lote, v.NumeroSerieCertificado.ToString()); //Verificar si existe en la base de datos como AceptadaAFIP eFact_Entidades.Lote loteAceptadoAFIP = new eFact_Entidades.Lote(); List<eFact_Entidades.Lote> lotes = new List<eFact_Entidades.Lote>(); eFact_RN.Lote.Consultar(out lotes, eFact_Entidades.Lote.TipoConsulta.SinAplicarFechas, DateTime.Today, DateTime.Today, CuitVendedorTextBox.Text, NumeroLoteTextBox.Text, PuntoVentaTextBox.Text, false, Aplicacion.Sesion); loteAceptadoAFIP = lotes.Find(delegate(eFact_Entidades.Lote e1) { return e1.IdEstado == "AceptadoAFIP" || e1.IdEstado == "AceptadoAFIPO" || e1.IdEstado == "AceptadoAFIPP"; }); if (loteAceptadoAFIP != null && loteAceptadoAFIP.IdOp != 0) { //Verificar si cambio el XML de respuesta string loteXml = ""; eFact_RN.Lote.SerializarLc(out loteXml, Lc); if (!(loteAceptadoAFIP.LoteXmlIF.Equals(loteXml))) { MessageBox.Show("El XML de respuesta actual, difiere del XML de respuesta obtenido en esta consulta. Si actualiza los datos, quedará registrado este último XML de respuesta.", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } lote = loteAceptadoAFIP; lote.LoteXmlIF = loteXml; for (int i = 0; i < lote.Comprobantes.Count; i++) { if (Lc.comprobante[i].cabecera.informacion_comprobante.cae != null) { lote.Comprobantes[i].NumeroCAE = Lc.comprobante[i].cabecera.informacion_comprobante.cae; lote.Comprobantes[i].FechaCAE = eFact_RN.Archivo.ConvertirStringToDateTime(Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae.Trim()); lote.Comprobantes[i].FechaVtoCAE = eFact_RN.Archivo.ConvertirStringToDateTime(Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae.Trim()); } lote.Comprobantes[i].EstadoIFoAFIP = Lc.comprobante[i].cabecera.informacion_comprobante.resultado; lote.Comprobantes[i].ComentarioIFoAFIP = Lc.comprobante[i].cabecera.informacion_comprobante.motivo; } } else { eFact_RN.Lote.Lc2Lote(out lote, Lc, Aplicacion.Aplic, Aplicacion.Sesion); eventoContingencia = new CedEntidades.Evento(); CedEntidades.Flow flow = new CedEntidades.Flow(); flow.IdFlow = "eFact"; eventoContingencia.Flow = flow; string resultado = ""; string resultadoTexto = ""; if (Lc.cabecera_lote.resultado != null && Lc.cabecera_lote.resultado.ToString().Trim() != "") { resultado = Lc.cabecera_lote.resultado.ToString(); resultadoTexto = "\r\nEl lote consultado se encuentra en estado: " + Lc.cabecera_lote.resultado.ToString(); } switch (resultado) { case "A": eventoContingencia.Id = "RegContAFIP"; break; case "O": eventoContingencia.Id = "RegContAFIPO"; break; case "P": eventoContingencia.Id = "RegContAFIPP"; break; default: throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.Lote.EstadoNoPermitido("Solo es posible operar en contingencia con lotes Aceptados por AFIP." + resultadoTexto); } Cedeira.SV.WF.LeerEvento(eventoContingencia, Aplicacion.Sesion); lote.WF.EventosPosibles.Clear(); lote.WF.EventosPosibles.Add(eventoContingencia); } lote.WF.EsquemaSegEventosPosibles = Cedeira.SV.WF.EsquemaSegEventosPosibles(lote.WF); eFact_RN.Lote.MuestroEsquemaSegEventosPosibles(EsquemaSegEventosPosiblesTreeView, lote); BindingControles(); DetalleLoteDataGridView.AutoGenerateColumns = false; DetalleLoteDataGridView.DataSource = new List<eFact_Entidades.Comprobante>(); DetalleLoteDataGridView.DataSource = lote.Comprobantes; CancelarButton.Visible = true; ActualizarButton.Visible = true; ConsultarLoteIFButton.Enabled = false; } else { eFact_RN.Lote.ConsultarLoteIF(out Lc, out respErroresLote, out respErroresComprobantes, lote, v.NumeroSerieCertificado.ToString()); MessageBox.Show("Lote de comprobantes número " + lote.NumeroLote + " encontrado satisfactoriamente en Interfacturas.", "Consulta de Lotes", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Consulta de Lotes", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); if (modoActual == Modo.Contingencia) { Cancelar(); } } finally { Cursor = System.Windows.Forms.Cursors.Default; } }
public EventoReferencia(CedEntidades.Evento Evento) { evento = Evento; }
public static void ActualizacionInfoEmbarque(CedForecastEntidades.OrdenCompra OrdenCompra, CedForecastEntidades.OrdenCompraInfoEmbarque InfoEmbarque, CedEntidades.Sesion Sesion) { CedEntidades.Evento eventoWF = new CedEntidades.Evento(); if ((OrdenCompra.IdReferenciaSAP != InfoEmbarque.IdReferenciaSAP) || (OrdenCompra.Vapor != InfoEmbarque.Vapor) || (OrdenCompra.FechaEstimadaSalida != InfoEmbarque.FechaEstimadaSalida) || (OrdenCompra.FechaEstimadaArribo != InfoEmbarque.FechaEstimadaArribo)) { eventoWF.Flow.IdFlow = "OrdenCpra"; eventoWF.Id = "ActInfoEmb"; Cedeira.SV.WF.LeerEvento(eventoWF, Sesion); List<string> handlers = new List<string>(); string handler = Cedeira.SV.WF.EjecutarEvento(OrdenCompra.WF, eventoWF, true); new CedForecastDB.OrdenCompra(Sesion).ActualizacionInfoEmbarque(OrdenCompra, InfoEmbarque, handler); } }
public System.Collections.Generic.List<CedEntidades.Evento> WF_EventosXLote_qry(string IdFlow) { StringBuilder a = new StringBuilder(String.Empty); a.Append("select * "); a.Append("from WF_Evento "); a.Append("where WF_Evento.IdFlow='" + IdFlow + "' "); DataView dv = (DataView)Ejecutar( a.ToString(), TipoRetorno.DV, Transaccion.NoAcepta, sesion.CnnStr); System.Collections.Generic.List<CedEntidades.Evento> eventosXLote = new System.Collections.Generic.List<CedEntidades.Evento>(); for (int i = 0; i < dv.Table.Rows.Count; i++) { if (Convert.ToBoolean(dv.Table.Rows[i]["XLote"])) { CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Flow.IdFlow = Convert.ToString(dv.Table.Rows[i]["IdFlow"]); evento.Id = Convert.ToString(dv.Table.Rows[i]["IdEvento"]); evento.Descr = Convert.ToString(dv.Table.Rows[i]["DescrEvento"]); evento.TextoAccion = Convert.ToString(dv.Table.Rows[i]["TextoAccion"]); evento.IdEstadoDsd.IdEstado = Convert.ToString(dv.Table.Rows[i]["IdEstadoDsd"]); evento.IdEstadoHst.IdEstado = Convert.ToString(dv.Table.Rows[i]["IdEstadoHst"]); evento.Automatico = Convert.ToBoolean(dv.Table.Rows[i]["Automatico"]); evento.CXO = Convert.ToBoolean(dv.Table.Rows[i]["CXO"]); evento.XLote = Convert.ToBoolean(dv.Table.Rows[i]["XLote"]); eventosXLote.Add(evento); } } return eventosXLote; }
private void InicializarEventosComboBox(out List<CedEntidades.Evento> EventosXLote) { List<CedEntidades.Evento> eventosXLote = new List<CedEntidades.Evento>(); CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Id = "(ElegirAccion)"; evento.Descr = "( Eligir una acción )"; eventosXLote.Add(evento); EventosComboBox.DisplayMember = "Descr"; //TextoAccion + " todas las seleccionadas" EventosComboBox.ValueMember = "Id"; EventosComboBox.DataSource = eventosXLote; EventosComboBox.SelectedIndex = 0; EventosXLote = eventosXLote; }
public List<CedEntidades.Evento> WF_EventosIniciales_qry() { DataView dv = (DataView)Ejecutar( "select IdFlow+'-'+IdEvento as IdEventoInicial, IdFlow+'-'+DescrEvento as DescrEventoInicial from WF_Evento where IdEstadoDsd is null", TipoRetorno.DV, Transaccion.NoAcepta, sesion.CnnStr); List<CedEntidades.Evento> eventosInic = new List<CedEntidades.Evento>(); for (int i = 0; i < dv.Table.Rows.Count; i++) { CedEntidades.Evento e = new CedEntidades.Evento(); e.Id = Convert.ToString(dv.Table.Rows[i]["IdEvento"]); e.Descr = Convert.ToString(dv.Table.Rows[i]["DescrEventoInicial"]); eventosInic.Add(e); } return eventosInic; }
public static void RecepcionDocumentos(List<CedForecastEntidades.OrdenCompra> OrdenesCompra, CedForecastEntidades.OrdenCompraInfoRecepcionDocumentos InfoRecepcionDocumentos, CedEntidades.Sesion Sesion) { ValidacionRecepcionDocumentos(InfoRecepcionDocumentos, Sesion); CedEntidades.Evento eventoWF = new CedEntidades.Evento(); eventoWF.Flow.IdFlow = "OrdenCpra"; eventoWF.Id = "RecepDocs"; Cedeira.SV.WF.LeerEvento(eventoWF, Sesion); List<string> handlers = new List<string>(); for (int i = 0; i < OrdenesCompra.Count; i++) { handlers.Add(Cedeira.SV.WF.EjecutarEvento(OrdenesCompra[i].WF, eventoWF, true)); } new CedForecastDB.OrdenCompra(Sesion).RecepcionDocumentos(ListaOrdenesCompra(OrdenesCompra), InfoRecepcionDocumentos, handlers); }
private void Copiar(DataSet ds, int NroRowPpal, eFact_Entidades.Lote Hasta) { DataRow Desde; Desde = ds.Tables[0].Rows[NroRowPpal]; Hasta.IdLote = Convert.ToInt32(Desde["IdLote"]); Hasta.CuitVendedor = Convert.ToString(Desde["CuitVendedor"]); Hasta.PuntoVenta = Convert.ToString(Desde["PuntoVenta"]); Hasta.NumeroLote = Convert.ToString(Desde["NumeroLote"]); Hasta.NumeroEnvio = Convert.ToInt32(Desde["NumeroEnvio"]); Hasta.IdOp = Convert.ToInt32(Desde["IdOp"]); Hasta.FechaAlta = Convert.ToDateTime(Desde["FechaAlta"]); if (Desde["FechaEnvio"].ToString() == "") { Desde["FechaEnvio"] = "31/12/9998"; } Hasta.FechaEnvio = Convert.ToDateTime(Desde["FechaEnvio"]); Hasta.NombreArch = Convert.ToString(Desde["NombreArch"]); Hasta.CantidadRegistros = Convert.ToInt32(Desde["CantidadRegistros"]); Hasta.LoteXml = Convert.ToString(Desde["LoteXml"]); Hasta.LoteXmlIF = Convert.ToString(Desde["LoteXmlIF"]); Hasta.IdNaturalezaLote = Convert.ToString(Desde["IdNaturalezaLote"]); Hasta.WF = new CedEntidades.WF(); Hasta.WF.IdOp = Convert.ToInt32(Desde["IdOp"]); Hasta.WF.IdFlow = Convert.ToString(Desde["IdFlow"]); Hasta.WF.DescrFlow = Convert.ToString(Desde["DescrFlow"]); Hasta.WF.IdCircuito = Convert.ToString(Desde["IdCircuito"]); Hasta.WF.IdCircuitoOrig = Hasta.WF.IdCircuito; Hasta.WF.DescrCircuito = Convert.ToString(Desde["DescrCircuito"]); Hasta.WF.IdNivSeg = Convert.ToInt32(Desde["IdNivSeg"]); Hasta.WF.DescrNivSeg = Convert.ToString(Desde["DescrNivSeg"]); Hasta.WF.DescrOp = Convert.ToString(Desde["DescrOp"]); Hasta.WF.IdEstado = Convert.ToString(Desde["IdEstado"]); Hasta.WF.UltActualiz = Cedeira.SV.db.ByteArray2TimeStamp((byte[])Desde["UltActualiz"]); Hasta.WF.DescrEstado = Convert.ToString(Desde["DescrEstado"]); Hasta.WF.Sesion = sesion; //Comprobantes DataRow[] dr = ds.Tables[1].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.Comprobantes = new List<eFact_Entidades.Comprobante>(); for (int i = 0; i < dr.Length; i++) { eFact_Entidades.Comprobante c = new eFact_Entidades.Comprobante(); c.IdLote = Convert.ToInt32(dr[i]["IdLote"]); c.IdTipoComprobante = Convert.ToInt16(dr[i]["IdTipoComprobante"]); c.NumeroComprobante = Convert.ToString(dr[i]["NumeroComprobante"]); c.IdMoneda = Convert.ToString(dr[i]["IdMoneda"]); c.Importe = Convert.ToDecimal(dr[i]["Importe"]); c.NroDocComprador = Convert.ToString(dr[i]["NroDocComprador"]); c.TipoDocComprador = Convert.ToInt16(dr[i]["TipoDocComprador"]); c.NombreComprador = Convert.ToString(dr[i]["NombreComprador"]); c.Fecha= Convert.ToDateTime(dr[i]["Fecha"]); c.NumeroCAE = Convert.ToString(dr[i]["NumeroCAE"]); if (dr[i]["FechaCAE"].ToString() == "") { dr[i]["FechaCAE"] = "31/12/9998"; } c.FechaCAE = Convert.ToDateTime(dr[i]["FechaCAE"]); if (dr[i]["FechaVtoCAE"].ToString() == "") { dr[i]["FechaVtoCAE"] = "31/12/9998"; } c.FechaVtoCAE = Convert.ToDateTime(dr[i]["FechaVtoCAE"]); if (dr[i]["ImporteMonedaOrigen"].ToString() != "") { c.ImporteMonedaOrigen = Convert.ToDecimal(dr[i]["ImporteMonedaOrigen"]); } if (dr[i]["ImporteMonedaOrigen"].ToString() != "") { c.TipoCambio = Convert.ToDecimal(dr[i]["TipoCambio"]); } if (dr[i]["EstadoIFoAFIP"].ToString() != "") { c.EstadoIFoAFIP = Convert.ToString(dr[i]["EstadoIFoAFIP"]); } if (dr[i]["ComentarioIFoAFIP"].ToString() != "") { c.ComentarioIFoAFIP = Convert.ToString(dr[i]["ComentarioIFoAFIP"]); } Hasta.Comprobantes.Add(c); } //ComprobantesC (Compras) dr = ds.Tables[2].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.ComprobantesC = new List<eFact_Entidades.ComprobanteC>(); for (int i = 0; i < dr.Length; i++) { eFact_Entidades.ComprobanteC cC = new eFact_Entidades.ComprobanteC(); cC.IdLote = Convert.ToInt32(dr[i]["IdLote"]); cC.PuntoVenta = Convert.ToString(dr[i]["PuntoVenta"]); cC.IdTipoComprobante = Convert.ToInt16(dr[i]["IdTipoComprobante"]); cC.NumeroComprobante = Convert.ToString(dr[i]["NumeroComprobante"]); cC.IdMoneda = Convert.ToString(dr[i]["IdMoneda"]); cC.Importe = Convert.ToDecimal(dr[i]["Importe"]); cC.NroDocVendedor = Convert.ToString(dr[i]["NroDocVendedor"]); cC.TipoDocVendedor = Convert.ToInt16(dr[i]["TipoDocVendedor"]); cC.NombreVendedor = Convert.ToString(dr[i]["NombreVendedor"]); cC.Fecha = Convert.ToDateTime(dr[i]["Fecha"]); if (dr[i]["ImporteMonedaOrigen"].ToString() != "") { cC.ImporteMonedaOrigen = Convert.ToDecimal(dr[i]["ImporteMonedaOrigen"]); } if (dr[i]["ImporteMonedaOrigen"].ToString() != "") { cC.TipoCambio = Convert.ToDecimal(dr[i]["TipoCambio"]); } Hasta.ComprobantesC.Add(cC); } //ComprobantesC (Compras - Despachos de Impotación) dr = ds.Tables[3].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.ComprobantesD = new List<eFact_Entidades.ComprobanteD>(); for (int i = 0; i < dr.Length; i++) { eFact_Entidades.ComprobanteD cD = new eFact_Entidades.ComprobanteD(); cD.IdLote = Convert.ToInt32(dr[i]["IdLote"]); cD.IdTipoComprobante = Convert.ToInt16(dr[i]["IdTipoComprobante"]); cD.NumeroDespacho = Convert.ToString(dr[i]["NumeroDespacho"]); cD.NroDocVendedor = Convert.ToString(dr[i]["NroDocVendedor"]); cD.TipoDocVendedor = Convert.ToInt16(dr[i]["TipoDocVendedor"]); cD.NombreVendedor = Convert.ToString(dr[i]["NombreVendedor"]); cD.Fecha = Convert.ToDateTime(dr[i]["Fecha"]); cD.IdMoneda = Convert.ToString(dr[i]["IdMoneda"]); cD.Importe = Convert.ToDecimal(dr[i]["Importe"]); //if (dr[i]["ImporteMonedaOrigen"].ToString() != "") //{ // cD.ImporteMonedaOrigen = Convert.ToDecimal(dr[i]["ImporteMonedaOrigen"]); //} //if (dr[i]["ImporteMonedaOrigen"].ToString() != "") //{ // cD.TipoCambio = Convert.ToDecimal(dr[i]["TipoCambio"]); //} Hasta.ComprobantesD.Add(cD); } //WF dr = ds.Tables[4].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.WF.Log = new List<CedEntidades.Log>(); for (int i = 0; i < dr.Length; i++) { CedEntidades.Log l = new CedEntidades.Log(); l.Circuito.IdCircuito = Convert.ToString(dr[i]["IdCircuito"]); l.Comentario = Convert.ToString(dr[i]["Comentario"]); l.Estado = Convert.ToString(dr[i]["Estado"]); l.Evento.Id = Convert.ToString(dr[i]["IdEvento"]); l.Evento.Descr = Convert.ToString(dr[i]["Evento"]); l.Fecha = Convert.ToDateTime(dr[i]["Fecha"]); l.Flow.IdFlow = Convert.ToString(dr[i]["IdFlow"]); l.Grupo.Id = Convert.ToString(dr[i]["IdGrupo"]); l.Grupo.Descr = Convert.ToString(dr[i]["DescrGrupo"]); l.IdLog = Convert.ToInt32(dr[i]["IdLog"]); l.IdNivSeg = Convert.ToInt32(dr[i]["IdNivSeg"]); l.Responsable = Convert.ToString(dr[i]["Responsable"]); l.Supervisor = Convert.ToBoolean(dr[i]["Supervisor"]); l.SupervisorNivel = Convert.ToByte(dr[i]["SupervisorNivel"]); l.Usuario.IdUsuario = Convert.ToString(dr[i]["IdUsuario"]); l.Usuario.Nombre = Convert.ToString(dr[i]["Nombre"]); Hasta.WF.Log.Add(l); } dr = ds.Tables[5].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.WF.EventosPosibles = new List<CedEntidades.Evento>(); for (int i = 0; i < dr.Length; i++) { CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Flow.IdFlow = Convert.ToString(dr[i]["IdFlow"]); evento.Id = Convert.ToString(dr[i]["IdEvento"]); evento.Descr = Convert.ToString(dr[i]["DescrEvento"]); evento.TextoAccion = Convert.ToString(dr[i]["TextoAccion"]); evento.IdEstadoDsd.IdEstado = Convert.ToString(dr[i]["IdEstadoDsd"]); evento.IdEstadoHst.IdEstado = Convert.ToString(dr[i]["IdEstadoHst"]); evento.Automatico = Convert.ToBoolean(dr[i]["Automatico"]); evento.CXO = Convert.ToBoolean(dr[i]["CXO"]); evento.XLote = Convert.ToBoolean(dr[i]["XLote"]); evento.Flow.DescrFlow = Convert.ToString(dr[i]["DescrFlow"]); evento.IdEstadoDsd.DescrEstado = Convert.ToString(dr[i]["DescrEstadoDsd"]); evento.IdEstadoHst.DescrEstado = Convert.ToString(dr[i]["DescrEstadoHst"]); Hasta.WF.EventosPosibles.Add(evento); } dr = ds.Tables[6].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.WF.EventosXLotePosibles = new List<CedEntidades.Evento>(); for (int i = 0; i < dr.Length; i++) { CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Flow.IdFlow = Convert.ToString(dr[i]["IdFlow"]); evento.Id = Convert.ToString(dr[i]["IdEvento"]); evento.Descr = Convert.ToString(dr[i]["DescrEvento"]); evento.TextoAccion = Convert.ToString(dr[i]["TextoAccion"]); evento.IdEstadoDsd.IdEstado = Convert.ToString(dr[i]["IdEstadoDsd"]); evento.IdEstadoHst.IdEstado = Convert.ToString(dr[i]["IdEstadoHst"]); evento.Automatico = Convert.ToBoolean(dr[i]["Automatico"]); evento.CXO = Convert.ToBoolean(dr[i]["CXO"]); evento.XLote = Convert.ToBoolean(dr[i]["XLote"]); evento.Flow.DescrFlow = Convert.ToString(dr[i]["DescrFlow"]); evento.IdEstadoDsd.DescrEstado = Convert.ToString(dr[i]["DescrEstadoDsd"]); evento.IdEstadoHst.DescrEstado = Convert.ToString(dr[i]["DescrEstadoHst"]); Hasta.WF.EventosXLotePosibles.Add(evento); } }
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { try { bool EncontreArchivos = false; timer1.Stop(); CultureInfo cedeiraCultura = new CultureInfo(System.Configuration.ConfigurationManager.AppSettings["Cultura"], false); cedeiraCultura.DateTimeFormat = new CultureInfo(System.Configuration.ConfigurationManager.AppSettings["CulturaDateTimeFormat"], false).DateTimeFormat; Thread.CurrentThread.CurrentCulture = cedeiraCultura; //Solo la primera vez inicia la sesion if (Aplicacion == null) { Inicializar(); } //Actualizar Estado AFIP de los Lotes Ptes de Respuesta. ActualizarEstadoAFIPLotes(); //Enviar a Interfacturas Lotes Ptes de Envío. EnviarAIFLotesPtesDeEnvio(); string[] files = Directory.GetFiles(Aplicacion.ArchPath, "*.*"); List<eFact_Entidades.Archivo> Archivos = new List<eFact_Entidades.Archivo>(); foreach (string d in files) { FileInfo ArchFileInfo = new FileInfo(d); try { if (@System.Configuration.ConfigurationManager.AppSettings["ClearMemory"] == "SI") { Memory.ClearMemory(); } eFact_Entidades.Archivo archivo = new eFact_Entidades.Archivo(); ActualizarBandejaEntrada(archivo, ArchFileInfo, Aplicacion.Sesion); Archivos.Add(archivo); EncontreArchivos = true; } catch (Exception ex) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex); } } Archivos.Sort(ordenarPorNombre); foreach (eFact_Entidades.Archivo elem in Archivos) { string NombreArchivo = elem.Nombre; string FechaTexto = DateTime.Now.ToString("yyyyMMdd-hhmmss"); string ArchGuardarComoNombre = ""; eFact_RN.Engine.GenerarNombreArch(out ArchGuardarComoNombre, "", NombreArchivo); //-------------------------------------- //Procesar el archivo seleccionado. try { eFact_Entidades.Lote lote = new eFact_Entidades.Lote(); eFact_RN.Archivo.Procesar(out lote, elem, Aplicacion, Aplicacion.Sesion); //Agregar datos del proceso a la entidad Archivo ArchGuardarComoNombre = "BAK-" + ArchGuardarComoNombre; elem.NombreProcesado = ArchGuardarComoNombre; elem.FechaProceso = DateTime.Now; string handler = eFact_RN.Archivo.Insertar(elem, true, Aplicacion.Sesion); //Ejecutar el insert local del "Lote". CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Id = "EnvBandSalida"; evento.Flow.IdFlow = "eFact"; evento.Flow.DescrFlow = "Facturación Electrónica"; Cedeira.SV.WF.LeerEvento(evento, Aplicacion.Sesion); lote.WF = Cedeira.SV.WF.Nueva("eFact", "FactServ", 0, "Facturacion Electrónica", Aplicacion.Sesion); eFact_RN.Lote.VerificarEnviosPosteriores(true, lote.CuitVendedor, lote.NumeroLote, lote.PuntoVenta, lote.NumeroEnvio, Aplicacion.Sesion); //Generar nombre de archivo procesado para ser enviado al histórico. eFact_RN.Lote.Ejecutar(lote, evento, handler, Aplicacion, Aplicacion.Sesion); //Leer el Lote procesado. eFact_RN.Lote.Leer(lote, Aplicacion.Sesion); //Enviar el Lote a IF. EnviarAIF(lote); } catch (Exception ex) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex); elem.Comentario = ex.Message; if (ex.InnerException != null) { elem.Comentario += "\r\n" + ex.InnerException.Message; } if (ex.StackTrace != null) { string st = ex.StackTrace; if (st.Length > 2000) { st = st.Substring(0, 2000); } elem.Comentario += "\r\n\r\n" + st; } //Agregar datos del proceso a la entidad Archivo ArchGuardarComoNombre = "ERR-" + ArchGuardarComoNombre; elem.NombreProcesado = ArchGuardarComoNombre; elem.FechaProceso = DateTime.Now; eFact_RN.Archivo.Insertar(elem, false, Aplicacion.Sesion); } //Remover archivo ---------------------- Directory.Move(Aplicacion.ArchPath + "\\" + NombreArchivo, Aplicacion.ArchPathHis + ArchGuardarComoNombre); //-------------------------------------- //Solo procesa un archivo y sale, para poder recibir posteriormente la respuesta AFIP. //Cuando se vuelve a iniciar el timer de servicio se ejecuta la funcion "ActualizarEstadoAFIPLotes()". break; } if (EncontreArchivos) { if (@System.Configuration.ConfigurationManager.AppSettings["ClearMemory"] == "SI") { Memory.ClearMemory(); } } } catch (Exception ex) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex); } finally { timer1.Start(); } }