public static RepartoDetalleInfo ObtenerOrdenRepartoDetalleTarde(int loteID, int repartoID, int corralID, string fechaReparto) { IList <RepartoDetalleInfo> repartoDetalleLista = null; RepartoDetalleInfo repartoDetalle = null; LoteInfo lote = null; RepartoInfo reparto = new RepartoInfo(); RepartoPL repartoPL = new RepartoPL(); LotePL lotePL = new LotePL(); var corralPL = new CorralPL(); try { var fecha = DateTime.Parse(fechaReparto.ToString(CultureInfo.InvariantCulture)); var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; if (seguridad != null) { lote = lotePL.ObtenerPorId(loteID); CorralInfo corral = corralPL.ObtenerPorId(corralID); /*DateTime fecha = new DateTime(); * fecha = DateTime.Now; * fecha = fecha.AddDays(-1);*/ if (lote != null) { reparto = repartoPL.ObtnerPorLote(lote, fecha); } else { reparto = repartoPL.ObtnerPorFechaCorral(corral, fecha); } if (reparto != null) { repartoDetalleLista = repartoPL.ObtenerDetalle(reparto); if (repartoDetalleLista != null) { for (int i = 0; i < repartoDetalleLista.Count; i++) { if (repartoDetalleLista[i].TipoServicioID == (int)TipoServicioEnum.Vespertino) { repartoDetalle = repartoDetalleLista[i]; } } } } } } catch (Exception ex) { Logger.Error(ex); } return(repartoDetalle); }
public void LoteObtenerPorId() { var pl = new LotePL(); LoteInfo info; try { info = pl.ObtenerPorId(1); } catch (Exception) { info = null; } Assert.AreNotEqual(info, null); }
public static Respuesta <Reemplazo_Arete_Model> Reemplazo_Arete(Peticion <Reemplazo_Arete_Request> req) { var feedBack = new Respuesta <Reemplazo_Arete_Model> { Mensaje = string.Empty, Resultado = false }; try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; var fechaSacrificio = String.Format("{0:u}", req.Datos.FechaSacrificio); var pl = new LotePL(); var animalPl = new AnimalPL(); var loteInfo = pl.ObtenerPorId(req.Datos.LoteID); if (loteInfo != null) { var aretesScp = pl.ObtenerLoteConAnimalesScp(seguridad.Usuario.OrganizacionID, loteInfo.Lote, loteInfo.Corral.Codigo, fechaSacrificio); if (aretesScp.Any()) { if (!pl.ExistenAretesRepetidos(aretesScp)) { //var animalId = animalPl.PlancharAretes(aretesScp,req.Datos.AnimalID,req.Datos.LoteID,seguridad.Usuario.UsuarioID); //feedBack.Datos.AnimalID = animalId; feedBack.Resultado = true; } else { feedBack.Mensaje = string.Format("Existen aretes duplicados en el Control de Piso para el corral {0}, lote {1}, fecha de producción {2}.", loteInfo.Corral.Codigo, loteInfo.Lote, fechaSacrificio); } } else { feedBack.Mensaje = string.Format("No se encontraron aretes en el Control de Piso para el corral {0}, lote {1}, fecha de producción {2}, por lo tanto no se puede realizar el reemplazo.", loteInfo.Corral.Codigo, loteInfo.Lote, fechaSacrificio); } } else { feedBack.Mensaje = string.Format("No se encontró el lote ni el corral para obtener los aretes del Control de Piso."); } } catch (Exception ex) { Logger.Error(ex); feedBack.Mensaje = string.Format("Ocurrió un error al reemplazar el arete."); } return(feedBack); }
public static List <ConfiguracionFormulaInfo> ConsultarConfiguracionFormula(int LoteID) { List <ConfiguracionFormulaInfo> resultado = null; LoteInfo lote = null; TipoGanadoInfo tipoGanado = null; List <AnimalInfo> animales = null; CorralInfo corral = null; LotePL lotePL = new LotePL(); AnimalPL animalPL = new AnimalPL(); ConfiguracionFormulaPL configuracionFormulaPL = new ConfiguracionFormulaPL(); try { lote = lotePL.ObtenerPorId(LoteID); if (lote != null) { animales = animalPL.ObtenerAnimalesPorLoteID(lote); if (animales != null) { tipoGanado = lotePL.ObtenerSoloTipoGanadoCorral(animales, lote); if (tipoGanado != null) { resultado = configuracionFormulaPL.ObtenerFormulaPorTipoGanado(tipoGanado, lote.OrganizacionID); } } } } catch (Exception ex) { resultado = null; } return(resultado); }
public static int ObtenerHabilitarEstadoComedero(int loteID) { int resultado = 0; ProgramacionReimplantePL programacionReinplantePL = new ProgramacionReimplantePL(); OrdenSacrificioPL ordenSacrificioPL = new OrdenSacrificioPL(); LotePL lotePL = new LotePL(); LoteInfo lote = new LoteInfo(); OrdenSacrificioInfo orden = new OrdenSacrificioInfo(); try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; if (seguridad != null) { lote = lotePL.ObtenerPorId(loteID); if (lote != null) { //Se verifica si el corral va a Zilmax if (lote.FechaDisponibilidad.ToShortDateString() != DateTime.Now.ToShortDateString()) { resultado = 1; } //Se verifica si el corral va a reimplante if (resultado == 1) { List <ProgramacionReinplanteInfo> programacionReinplante = null; programacionReinplante = programacionReinplantePL.ObtenerProgramacionReimplantePorLoteID(lote); if (programacionReinplante.Count > 0) { if (programacionReinplante.First().Fecha.ToShortDateString() == DateTime.Now.ToShortDateString()) { resultado = 0; } } } //Se verifica si el corral va a sacrificio if (resultado == 1) { orden.FechaOrden = DateTime.Now; orden.OrganizacionID = organizacionId; orden.EstatusID = (int)Estatus.OrdenSacrificioPendiente; orden = ordenSacrificioPL.ObtenerOrdenSacrificioDelDia(orden); if (orden != null) { for (var i = 0; i < orden.DetalleOrden.Count; i++) { if (orden.DetalleOrden[i].Lote.LoteID == lote.LoteID) { resultado = 0; } } } } } } } catch (Exception ex) { Logger.Error(ex); } return(resultado); }
public static RepartoInfo ObtenerOrdenReparto(int loteID, int corralID, string fechaReparto) { RepartoInfo reparto = null; LoteInfo lote = null; RepartoPL repartoPL = new RepartoPL(); LotePL lotePL = new LotePL(); var corralPL = new CorralPL(); var fecha = DateTime.Parse(fechaReparto); try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; if (seguridad != null) { lote = lotePL.ObtenerPorId(loteID); CorralInfo corral = corralPL.ObtenerPorId(corralID); //if (lote != null) //{ if (lote != null) { reparto = repartoPL.ObtnerPorLote(lote, fecha); } else { reparto = repartoPL.ObtnerPorFechaCorral(corral, fecha); } if (lote != null && reparto == null) { reparto = repartoPL.ObtnerPorFechaCorral(corral, fecha); if (reparto == null || reparto.LoteID == 0 || reparto.LoteID != lote.LoteID) { reparto = null; } } if (reparto != null && reparto.DetalleReparto != null /* && * reparto.DetalleReparto.Count == * reparto.DetalleReparto.Where(dato => dato.Servido == true).ToList().Count()*/) { var matutinosServidos = 0; var vespertinoServidos = 0; matutinosServidos = reparto.DetalleReparto.Count( tmpDetalleReparto => tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Matutino && tmpDetalleReparto.Servido); if (matutinosServidos > 0) { reparto.TotalRepartos = 1; } vespertinoServidos = reparto.DetalleReparto.Count( tmpDetalleReparto => tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Vespertino && tmpDetalleReparto.Servido); reparto.CantidadPedido = reparto.DetalleReparto.Where( tmpDetalleReparto => tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Vespertino || tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Matutino) .ToList().Sum(tmpDetalleReparto => tmpDetalleReparto.CantidadProgramada); if (vespertinoServidos > 0) { reparto.TotalRepartos = 2; } if (reparto.TotalRepartos == 0) { reparto.TotalRepartos = 3; } RepartoDetalleInfo repartoMatutino = reparto.DetalleReparto.FirstOrDefault( tmpDetalleReparto => tmpDetalleReparto.TipoServicioID == (int)TipoServicioEnum.Matutino); if (repartoMatutino != null) { reparto.CantidadProgramadaManiana = repartoMatutino.CantidadProgramada; } } else { reparto = new RepartoInfo { Fecha = fecha, TotalRepartos = 0 }; } } } catch (Exception ex) { Logger.Error(ex); } return(reparto); }
private bool ValidarAreteMetalico() { try { var animalInfo = new AnimalInfo { AreteMetalico = txtAreteMetalico.Text, OrganizacionIDEntrada = organizacionID }; //Buscar el animal en el inventario var corteGanadoPl = new CorteGanadoPL(); animalInfo = corteGanadoPl.ExisteAreteMetalicoEnPartida(animalInfo); if (animalInfo != null) { //Se obtiene el ultimo movimiento var animalPL = new AnimalPL(); var ultimoMovimiento = animalPL.ObtenerUltimoMovimientoAnimal(animalInfo); if (ultimoMovimiento != null) { //Se obtiene el corral en el que se encuentra var corralPL = new CorralPL(); var corralInfo = corralPL.ObtenerPorId(ultimoMovimiento.CorralID); if (corralInfo != null) { //Se obtiene el Corral Origen txtCorralOrigen.Text = corralInfo.Codigo; var lotePL = new LotePL(); //var loteOrigen = new LoteInfo // { // CorralID = corralInfo.CorralID, // OrganizacionID = organizacionID // }; LoteInfo loteOrigen = lotePL.ObtenerPorId(ultimoMovimiento.LoteID); if (loteOrigen == null || loteOrigen.Activo == EstatusEnum.Inactivo) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TrasferenciaGanadoIndividual_LoteInactivo, MessageBoxButton.OK, MessageImage.Warning); txtAreteMetalico.Focusable = true; txtAreteMetalico.Focus(); txtAreteMetalico.Clear(); return(false); } } //Si existe se obtienen los datos del animal txtPesoOrigen.Text = animalInfo.PesoCompra.ToString(CultureInfo.InvariantCulture); var tipoGanadoPl = new TipoGanadoPL(); var tipoGanado = tipoGanadoPl.ObtenerPorID(animalInfo.TipoGanadoID); if (tipoGanado != null) { //Se obtiene el tipo de ganado y sexo txtSexo.Text = tipoGanado.Sexo.ToString(); } //Se inicializa la info del animal de forma global animal = animalInfo; corralOrigen = corralInfo; txtArete.Text = animal.Arete; } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TrasferenciaGanadoIndividual_AreteNoExiste, MessageBoxButton.OK, MessageImage.Warning); txtAreteMetalico.Focusable = true; txtAreteMetalico.Focus(); txtAreteMetalico.Clear(); return(false); } } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TrasferenciaGanadoIndividual_AreteNoExiste, MessageBoxButton.OK, MessageImage.Warning); txtAreteMetalico.Focusable = true; txtAreteMetalico.Focus(); txtAreteMetalico.Clear(); return(false); } } catch (Exception ex) { Logger.Error(ex); } return(true); }
public static List <CorralInfo> ObtenerCorralDestinoAnimal(string arete) { var corrales = new List <CorralInfo>(); try { //var animalPL = new AnimalPL(); var animalMovimientoPL = new AnimalMovimientoPL(); var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; //animal = animalPL.ObtenerAnimalPorArete(arete, organizacionId); List <AnimalMovimientoInfo> movimientosArete = animalMovimientoPL.ObtenerMovimientosPorArete(organizacionId, arete); var movimientoEnfermeria = new AnimalMovimientoInfo(); var movimientoCorralOrigen = new AnimalMovimientoInfo(); var parametroOrganizacionPL = new ParametroOrganizacionPL(); var deteccionAnimalBL = new DeteccionAnimalBL(); var corralPL = new CorralPL(); double diasEnfermeria = 0; if (movimientosArete != null && movimientosArete.Any()) { movimientosArete = movimientosArete.OrderByDescending(mov => mov.AnimalMovimientoID).ToList(); foreach (var animalMovimientoInfo in movimientosArete) { if (animalMovimientoInfo.GrupoCorralID == GrupoCorralEnum.Enfermeria.GetHashCode()) { var movimientosDiferenteEnfermeria = movimientosArete.Any( mov => mov.GrupoCorralID != GrupoCorralEnum.Enfermeria.GetHashCode()); if (!movimientosDiferenteEnfermeria) { var primerMovimientoEnfermeria = movimientosArete.LastOrDefault(); if (primerMovimientoEnfermeria != null) { movimientoEnfermeria = primerMovimientoEnfermeria; DeteccionAnimalInfo deteccionAnimal = deteccionAnimalBL.ObtenerPorAnimalMovimientoID( movimientoEnfermeria.AnimalMovimientoID); if (deteccionAnimal != null) { animalMovimientoInfo.GrupoCorralEnum = (GrupoCorralEnum)deteccionAnimal.GrupoCorralID; movimientoCorralOrigen = animalMovimientoInfo; TimeSpan diferencia = DateTime.Now - movimientoEnfermeria.FechaMovimiento; diasEnfermeria = diferencia.TotalDays; break; } } } movimientoEnfermeria = animalMovimientoInfo; continue; } if (animalMovimientoInfo.GrupoCorralID != GrupoCorralEnum.Enfermeria.GetHashCode()) { //Validar que el corral no sea el de Sobrantes ParametroOrganizacionInfo parametroOrganizacionSobrante = parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(organizacionId, ParametrosEnum.CORRALSOBRANTE.ToString()); if (parametroOrganizacionSobrante != null && !string.IsNullOrWhiteSpace(parametroOrganizacionSobrante.Valor)) { var corralSobrante = new CorralInfo { Codigo = parametroOrganizacionSobrante.Valor, Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId } }; corralSobrante = corralPL.ObtenerPorCodicoOrganizacionCorral(corralSobrante); var lotePL = new LotePL(); if (corralSobrante != null) { LoteInfo loteOrigenSobrante = lotePL.ObtenerPorCorral(organizacionId, corralSobrante.CorralID); TimeSpan diferencia; if (loteOrigenSobrante != null) { if (loteOrigenSobrante.LoteID == animalMovimientoInfo.LoteID) { DeteccionAnimalInfo deteccionAnimal = deteccionAnimalBL.ObtenerPorAnimalMovimientoID( movimientoEnfermeria.AnimalMovimientoID); if (deteccionAnimal != null) { animalMovimientoInfo.GrupoCorralEnum = (GrupoCorralEnum)animalMovimientoInfo.GrupoCorralID; movimientoCorralOrigen = animalMovimientoInfo; movimientoCorralOrigen.LoteID = deteccionAnimal.Lote.LoteID; diferencia = DateTime.Now - movimientoEnfermeria.FechaMovimiento; diasEnfermeria = diferencia.TotalDays; break; } } } animalMovimientoInfo.GrupoCorralEnum = (GrupoCorralEnum)animalMovimientoInfo.GrupoCorralID; movimientoCorralOrigen = animalMovimientoInfo; diferencia = DateTime.Now - movimientoEnfermeria.FechaMovimiento; diasEnfermeria = diferencia.TotalDays; break; } } } } } int diasRecuperacion = 0; ParametroOrganizacionInfo parametroOrganizacion = parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(organizacionId, ParametrosEnum.DiasRecuperacion. ToString()); if (parametroOrganizacion != null) { int.TryParse(parametroOrganizacion.Valor, out diasRecuperacion); } if (diasRecuperacion == 0) { diasRecuperacion = 7; //Valor por default, si no se encuentra el parámetro de la organización } if (movimientoCorralOrigen.TipoCorralID == TipoCorral.CorraletaRecuperado.GetHashCode() || movimientoCorralOrigen.TipoCorralID == TipoCorral.CorraletaRecuperadosPartida.GetHashCode()) { var tipoCorralRecuperado = new TipoCorralInfo { TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode() }; List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId); if (corralesRecuperados != null && corralesRecuperados.Any()) { corrales.AddRange(corralesRecuperados); return(corrales); } } switch (movimientoCorralOrigen.GrupoCorralEnum) { case GrupoCorralEnum.Produccion: if (diasEnfermeria < diasRecuperacion) { var lotePL = new LotePL(); //var corralPL = new CorralPL(); LoteInfo loteOriginal = lotePL.ObtenerPorId(movimientoCorralOrigen.LoteID); if (loteOriginal != null && loteOriginal.Activo == EstatusEnum.Activo) { corrales.Add(loteOriginal.Corral); } else { var tipoCorralRecuperado = new TipoCorralInfo { TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode() }; List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId); if (corralesRecuperados != null && corralesRecuperados.Any()) { corrales.AddRange(corralesRecuperados); } } } else { //var corralPL = new CorralPL(); var tipoCorralRecuperado = new TipoCorralInfo { TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode() }; List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId); if (corralesRecuperados != null && corralesRecuperados.Any()) { corrales.AddRange(corralesRecuperados); } } break; case GrupoCorralEnum.Recepcion: if (diasEnfermeria < diasRecuperacion) { //var corralPL = new CorralPL(); var tipoCorralRecuperadoPartida = new TipoCorralInfo { TipoCorralID = TipoCorral.CorraletaRecuperadosPartida.GetHashCode() }; List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperadoPartida, organizacionId); if (corralesRecuperados != null && corralesRecuperados.Any()) { corrales.AddRange(corralesRecuperados); } } else { //var corralPL = new CorralPL(); var tipoCorralRecuperado = new TipoCorralInfo { TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode() }; List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId); if (corralesRecuperados != null && corralesRecuperados.Any()) { corrales.AddRange(corralesRecuperados); } } break; } if (!corrales.Any()) { var tipoCorralRecuperado = new TipoCorralInfo { TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode() }; List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId); if (corralesRecuperados != null && corralesRecuperados.Any()) { corrales.AddRange(corralesRecuperados); } } } catch (Exception ex) { Logger.Error(ex); } return(corrales); }