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 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); }