public static void Consultar(out List<eFact_Entidades.Lote> Lotes, eFact_Entidades.Lote.TipoConsulta TipoConsulta, DateTime FechaDsd, DateTime FechaHst, string CuitVendedor, string NumeroLote, string PuntoVenta, bool VerPendientes, CedEntidades.Sesion Sesion) { List<eFact_Entidades.Lote> lotes = new List<eFact_Entidades.Lote>(); eFact_DB.Lote l = new eFact_DB.Lote(Sesion); l.Consultar(out lotes, TipoConsulta, FechaDsd, FechaHst, CuitVendedor, NumeroLote, PuntoVenta, VerPendientes); Lotes = lotes; }
public static void VerificarEnviosPosteriores(bool LoteNuevo, string CuitVendedor, string NumeroLote, string PuntoVenta, int NumeroEnvio, CedEntidades.Sesion Sesion) { List<eFact_Entidades.Lote> lotes = new List<eFact_Entidades.Lote>(); eFact_DB.Lote l = new eFact_DB.Lote(Sesion); l.Consultar(out lotes, eFact_Entidades.Lote.TipoConsulta.SinAplicarFechas, DateTime.Today, DateTime.Today, CuitVendedor, NumeroLote, PuntoVenta, false); if (lotes.Count != 0) { //Verificar si hay envios posteriores del lote. if (lotes[0].NumeroEnvio > NumeroEnvio) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.Lote.HayEnviosPosteriores(""); } //Verifico el estado de la ultimo lote enviado. if (LoteNuevo && (lotes[0].WF.IdEstado != "RechazadoIF" && lotes[0].WF.IdEstado != "Cancelado")) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.Lote.Existente("Ya existe el lote " + NumeroLote + " en el estado: " + lotes[0].WF.DescrEstado); } } }
public static void ObtenerNumeroEnvioDisponible(out int NumeroEnvioDisponible, string CuitVendedor, string NumeroLote, string PuntoVenta, CedEntidades.Sesion Sesion) { List<eFact_Entidades.Lote> lotes = new List<eFact_Entidades.Lote>(); eFact_DB.Lote l = new eFact_DB.Lote(Sesion); l.Consultar(out lotes, eFact_Entidades.Lote.TipoConsulta.SinAplicarFechas, DateTime.Today, DateTime.Today, CuitVendedor, NumeroLote, PuntoVenta, false); if (lotes.Count != 0) { //Verificar que el ultimo envio del lote este un estado final ( cancelado o rechzado por interfactureas ) para generar un nuevo numero de envio. if (lotes[0].WF.IdEstado == "RechazadoIF" || lotes[0].WF.IdEstado == "Cancelado") { NumeroEnvioDisponible = lotes.Count + 1; } else { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.Lote.ImposibleAsignarNuevoNroEnvio("Ya existe el lote " + NumeroLote + " en el estado: " + lotes[0].WF.DescrEstado); } } else { //Si el lote NO existe, es el primer envio. NumeroEnvioDisponible = 1; } }