public static int GuardarSoloFormulas(List <CambiosReporteInfo> cambiosDetalle, string fechaReparto)
        {
            int valorRetorno = 0;

            try
            {
                RepartoPL reparto = new RepartoPL();

                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                int usuario        = seguridad.Usuario.UsuarioID;
                var fecha          = DateTime.Parse(fechaReparto.ToString(CultureInfo.InvariantCulture));

                //informacion del la organzacion y usuario
                if (seguridad != null)
                {
                    for (int i = 0; i < cambiosDetalle.Count; i++)
                    {
                        cambiosDetalle[i].OrganizacionID        = organizacionId;
                        cambiosDetalle[i].UsuarioModificacionID = usuario;
                        cambiosDetalle[i].FechaReparto          = fecha;
                    }
                    valorRetorno = reparto.GuardarFormulasRepartoDetalle(cambiosDetalle);
                }
            }
            catch (Exception ex)
            {
                valorRetorno = -1;
            }
            return(valorRetorno);
        }
Пример #2
0
        public static int GuardarEstatusDistribucion(string codigoCorral, int estatusDistribucion)
        {
            var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
            int resultado = 0;
            var repartoPl = new RepartoPL();
            var corral    = new CorralInfo();

            try
            {
                if (seguridad != null)
                {
                    corral.Codigo            = codigoCorral;
                    corral.Organizacion      = seguridad.Usuario.Organizacion;
                    corral.UsuarioCreacionID = seguridad.Usuario.UsuarioID;

                    resultado = repartoPl.GuardarEstatusDistribucion(corral, estatusDistribucion);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                resultado = 0;
            }
            return(resultado);
        }
Пример #3
0
        public static Response <ResultadoOperacion> GenerarOrdenReparto(int tipoServicio, int seccion, string fechaReparto)
        {
            var respuesta = new ResultadoOperacion();

            try
            {
                var usuario = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                if (usuario != null)
                {
                    var repartoPl    = new RepartoPL();
                    var ordenReparto = new OrdenRepartoAlimentacionInfo
                    {
                        UsuarioID      = usuario.Usuario.UsuarioID,
                        TipoServicioID = tipoServicio,
                        OrganizacionID = usuario.Usuario.Organizacion.OrganizacionID,
                        Seccion        = seccion,
                        FechaReparto   = Convert.ToDateTime(fechaReparto)
                    };
                    if (!ActualizarParametroEjecucion(true))
                    {
                        respuesta.CodigoMensaje = 1;
                        return(Response <ResultadoOperacion> .CrearResponse(false, respuesta));
                    }
                    respuesta = repartoPl.GenerarOrdenReparto(ordenReparto);
                    ActualizarParametroEjecucion(false);
                    return(Response <ResultadoOperacion> .CrearResponse(true, respuesta));
                }
                return(Response <ResultadoOperacion> .CrearResponse(false, respuesta));
            }
            catch (Exception)
            {
                ActualizarParametroEjecucion(false);
                return(Response <ResultadoOperacion> .CrearResponse(false, respuesta));
            }
        }
Пример #4
0
        /// <summary>
        /// Llena los datos de la lista de servicios
        /// </summary>
        private void LlenarComboServicios()
        {
            try
            {
                var ordenRepartoPl = new RepartoPL();
                listaServicio = ordenRepartoPl.ObtenerTiposDeServicios();

                if (listaServicio == null)
                {
                    return;
                }
                var lista = listaServicio.Where(servicio => servicio.TipoServicioId == (int)TipoServicioEnum.Matutino || servicio.TipoServicioId == (int)TipoServicioEnum.Vespertino).ToList();
                lista.Add(new TipoServicioInfo {
                    Descripcion = "Seleccione", TipoServicioId = 0
                });
                cboServicios.DataSource = lista;

                cboServicios.DataBind();
                cboServicios.SelectedIndex = lista.Count - 1;
            }
            catch (Exception)
            {
                ClientScript.RegisterStartupScript(GetType(), "myScript", "EnviarMensajeServicios();", true);
            }
        }
Пример #5
0
        /// <summary>
        /// Valida los parametros para la ejecucion
        /// </summary>
        /// <returns></returns>
        private bool ValidarParametros()
        {
            try
            {
                var usuario = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                if (usuario != null)
                {
                    var repartoPl = new RepartoPL();
                    var respuesta = repartoPl.LeerConfiguracion(usuario.Usuario.Organizacion.OrganizacionID, ParametrosEnum.porcentajeMatutino);

                    if (string.IsNullOrEmpty(respuesta))
                    {
                        return(false);
                    }
                    respuesta = repartoPl.LeerConfiguracion(usuario.Usuario.Organizacion.OrganizacionID, ParametrosEnum.porcentajeVespertino);

                    if (string.IsNullOrEmpty(respuesta))
                    {
                        return(false);
                    }
                }
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }
Пример #6
0
        public static RepartoInfo ObtenerSiguienteCorral()
        {
            var         seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
            RepartoInfo reparto   = null;
            var         repartoPl = new RepartoPL();

            try
            {
                if (seguridad != null)
                {
                    if (seguridad.Usuario.Operador == null)
                    {
                        var operadorPL = new OperadorPL();
                        seguridad.Usuario.Operador = operadorPL.ObtenerPorUsuarioId(seguridad.Usuario.UsuarioID, seguridad.Usuario.OrganizacionID);
                    }
                    reparto = repartoPl.ObtenerRepartoPorOperadorId(seguridad.Usuario.Operador, new CorralInfo());
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                reparto = null;
            }

            return(reparto);
        }
Пример #7
0
 private void ConsultarConsumo()
 {
     try
     {
         if (dpFecha.SelectedDate == null || dpFecha.SelectedDate.Value == DateTime.MinValue)
         {
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.AplicacionConsumoAlimento_FechaInvalida, MessageBoxButton.OK, MessageImage.Warning);
             return;
         }
         var repartoPL = new RepartoPL();
         Contexto.ListaFormulas = repartoPL.ObtenerConsumoPendiente(Contexto);
         if (Contexto.ListaFormulas == null || !Contexto.ListaFormulas.Any())
         {
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.AplicacionConsumoAlimento_SinConsumos, MessageBoxButton.OK, MessageImage.Warning);
             return;
         }
         dgConsumos.ItemsSource = Contexto.ListaFormulas;
         var consumoNegativo = Contexto.ListaFormulas.FirstOrDefault(rep => rep.CantidadDiferencia < 0);
         if (consumoNegativo == null)
         {
             dpFecha.IsEnabled     = false;
             btnEjecutar.IsEnabled = true;
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.AplicacionConsumoAlimento_ErrorConsultarConsumos, MessageBoxButton.OK, MessageImage.Error);
     }
 }
        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);
        }
Пример #9
0
        private void ObtenerFormula()
        {
            var repartoPL = new RepartoPL();
            List <RepartoInfo> repartos = repartoPL.ObtenerPorCorralOrganizacion(Contexto.CorralInfo.CorralID,
                                                                                 Contexto.OrganizacionId);

            if (repartos != null && repartos.Any())
            {
                repartos         = repartos.OrderByDescending(fecha => fecha.Fecha).ToList();
                Contexto.Formula = repartos.Select(x => new FormulaInfo
                {
                    FormulaId =
                        x.DetalleReparto.Select(
                            formula => formula.FormulaIDServida).
                        FirstOrDefault()
                }).FirstOrDefault();
                var detallesRepartoFecha = repartos.Select(x => new
                {
                    x.Fecha,
                    Formula =
                        x.DetalleReparto.Select(
                            formula => formula.FormulaIDServida).
                        FirstOrDefault()
                }).ToList();
                int diasFormula = 0;
                if (detallesRepartoFecha.Count > 1)
                {
                    diasFormula = ObtenerDiasFormula(detallesRepartoFecha, 1, 1);
                }
                var repartosZilmax = repartos.Select(x => new
                {
                    x.Fecha,
                    Formula =
                        x.DetalleReparto.Select(
                            formula => formula.TipoFormula == TipoFormula.Finalizacion.GetHashCode()).
                        FirstOrDefault()
                }).ToList();
                if (repartosZilmax.Any())
                {
                    var repartosZilmaxValidos = repartosZilmax.Where(zil => zil.Formula);
                    if (repartosZilmaxValidos.Any())
                    {
                        int diasZilmax = ObtenerDiasFormula(repartosZilmaxValidos.ToList(), 1, 1);
                        Contexto.DiasZilmax = diasZilmax;
                    }
                    else
                    {
                        Contexto.DiasZilmax = 0;
                    }
                }
                Contexto.DiasFormula = diasFormula;
            }
        }
Пример #10
0
        public Response <RepartoAvanceInfo> ObtenerAvanceReparto(int idUsuario)
        {
            var respuesta = new RepartoAvanceInfo();

            try
            {
                var repartoPl = new RepartoPL();

                respuesta = repartoPl.ObtenerAvanceReparto(idUsuario);

                return(Response <ResultadoOperacion> .CrearResponse(true, respuesta));
            }
            catch (Exception)
            {
                return(Response <ResultadoOperacion> .CrearResponse(false, respuesta));
            }
        }
Пример #11
0
        public static Response <ResultadoValidacion> ValidarGuardar(int tipoServicio)
        {
            var usuario   = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
            var respuesta = new ResultadoValidacion();

            if (usuario != null)
            {
                try
                {
                    var repartoPl = new RepartoPL();
                    respuesta = repartoPl.ValidarOrdenReparto(tipoServicio, usuario.Usuario.Organizacion.OrganizacionID);
                    return(Response <ResultadoValidacion> .CrearResponse(true, respuesta));
                }
                catch (Exception)
                {
                    return(Response <ResultadoValidacion> .CrearResponse(false, respuesta));
                }
            }
            return(Response <ResultadoValidacion> .CrearResponse(false, respuesta));
        }
Пример #12
0
        public static RepartoInfo ObtenerRepartoPorCorral(CorralInfo corral)
        {
            var         seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
            RepartoInfo reparto   = null;
            var         repartoPl = new RepartoPL();

            try
            {
                if (seguridad != null)
                {
                    reparto = repartoPl.ObtenerRepartoPorOperadorId(seguridad.Usuario.Operador, corral);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                reparto = null;
            }

            return(reparto);
        }
Пример #13
0
        public static Response <RepartoAvanceInfo> ObtenerAvanceReparto(int idUsuario)
        {
            var usuario   = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
            var respuesta = new RepartoAvanceInfo();

            if (usuario != null)
            {
                try
                {
                    var repartoPl = new RepartoPL();

                    respuesta = repartoPl.ObtenerAvanceReparto(usuario.Usuario.UsuarioID);

                    return(Response <ResultadoOperacion> .CrearResponse(true, respuesta));
                }
                catch (Exception)
                {
                    return(Response <ResultadoOperacion> .CrearResponse(false, respuesta));
                }
            }
            return(Response <ResultadoOperacion> .CrearResponse(false, respuesta));
        }
Пример #14
0
        public static RepartoAvanceInfo ObtenerAvanceReparto()
        {
            RepartoAvanceInfo respuesta = null;

            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                if (seguridad != null)
                {
                    var repartoPl = new RepartoPL();

                    respuesta = repartoPl.ObtenerAvanceReparto(seguridad.Usuario.UsuarioID);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(respuesta);
        }
Пример #15
0
        public static ResultadoOperacion GenerarOrdenRepartoManual(List <CorralInfo> corrales, ParametroCapturaManualConsumoInfo parametroConsumo)
        {
            var repartoPl = new RepartoPL();
            var respuesta = new ResultadoOperacion();

            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                if (seguridad != null)
                {
                    parametroConsumo.UsuarioId      = seguridad.Usuario.UsuarioID;
                    parametroConsumo.OrganizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                    respuesta = repartoPl.GenerarOrdenRepartoManual(corrales, parametroConsumo);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                respuesta.Resultado = false;
            }

            return(respuesta);
        }
        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);
        }
Пример #17
0
        //private static int organizacionID;
        //private static int usuarioID;
        //private static SeguridadInfo usuario;

        #endregion
        #region Eventos

        protected void Page_Load(object sender, EventArgs e)
        {
            var ordenRepartoPl = new RepartoPL();

            var usuario             = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
            var localResourceObject = GetLocalResourceObject("msgErrorRolUsuario");

            if (localResourceObject != null)
            {
                msgErrorUsuario.Value = localResourceObject.ToString();
            }
            localResourceObject = GetLocalResourceObject("msgErrorParametros");
            if (localResourceObject != null)
            {
                msgErrorParametros.Value = localResourceObject.ToString();
            }
            localResourceObject = GetLocalResourceObject("msgSinCorrales");
            if (localResourceObject != null)
            {
                msgSinCorrales.Value = localResourceObject.ToString();
            }
            localResourceObject = GetLocalResourceObject("OK");
            if (localResourceObject != null)
            {
                msgOK.Value = localResourceObject.ToString();
            }
            localResourceObject = GetLocalResourceObject("msgSinConsumoTotal");
            if (localResourceObject != null)
            {
                msgSinConsumoTotal.Value = localResourceObject.ToString();
            }
            localResourceObject = GetLocalResourceObject("msgCorralesIncompletos");
            if (localResourceObject != null)
            {
                msgCorralesIncompletos.Value = localResourceObject.ToString();
            }
            localResourceObject = GetLocalResourceObject("msgErrorProceso");
            if (localResourceObject != null)
            {
                msgErrorProceso.Value = localResourceObject.ToString();
            }
            localResourceObject = GetLocalResourceObject("AlimentoNoServidoMatutino");
            if (localResourceObject != null)
            {
                AlimentoNoServidoMatutino.Value = localResourceObject.ToString();
            }
            localResourceObject = GetLocalResourceObject("AlimentoNoServidoVespertino");
            if (localResourceObject != null)
            {
                AlimentoNoServidoVespertino.Value = localResourceObject.ToString();
            }
            localResourceObject = GetLocalResourceObject("msgFaltaPorcentaje");
            if (localResourceObject != null)
            {
                msgFaltaPorcentaje.Value = localResourceObject.ToString();
            }
            btnSi.Value     = GetLocalResourceObject("btnSi").ToString();
            btnNo.Value     = GetLocalResourceObject("btnNo").ToString();
            idUsuario.Value = usuario.Usuario.UsuarioID.ToString(CultureInfo.InvariantCulture);
            if (usuario != null)
            {
                //organizacionID = usuario.Usuario.Organizacion.OrganizacionID;
                //usuarioID = usuario.Usuario.UsuarioID;
                listaServicio = ordenRepartoPl.ObtenerTiposDeServicios();
                if (listaServicio == null)
                {
                    ClientScript.RegisterStartupScript(GetType(), "myScript", " EnviarMensajeSinParametros();", true);
                }
                else
                {
                    foreach (var servicio in listaServicio)
                    {
                        switch (servicio.TipoServicioId)
                        {
                        case (int)TipoServicioEnum.Matutino:
                            lblrdbMatutino.Text = servicio.Descripcion;
                            break;

                        case (int)TipoServicioEnum.Vespertino:
                            lblrdbVespertino.Text = servicio.Descripcion;
                            break;
                        }
                    }
                }

                if (!ValidarParametros())
                {
                    ClientScript.RegisterStartupScript(GetType(), "myScript", " EnviarMensajeSinParametros();", true);
                }
                var parametroOrganizacionPL         = new ParametroOrganizacionPL();
                ParametroOrganizacionInfo parametro = parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(usuario.Usuario.Organizacion.OrganizacionID,
                                                                                                                     ParametrosEnum.EJECORDENREP.ToString());
                if (parametro != null)
                {
                    int valor;
                    int.TryParse(parametro.Valor, out valor);
                    if (valor != 0)
                    {
                        ClientScript.RegisterStartupScript(GetType(), "myScript", " EnviarMensajeEjecutandose();", true);
                    }
                }
            }
            else
            {
                ClientScript.RegisterStartupScript(GetType(), "myScript", "EnviarMensajeRolUsuario();", true);
            }
            CargarComboSeccion();
        }
        public static int GuardarReparto(List <CambiosReporteInfo> cambiosDetalle, string fechaReparto)
        {
            int valorRetorno = 0;

            try
            {
                var repartoPl = new RepartoPL();
                var corralPL  = new CorralPL();
                var lotePL    = new LotePL();

                var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                //informacion del la organzacion y usuario
                if (seguridad != null)
                {
                    int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                    int usuario        = seguridad.Usuario.UsuarioID;
                    var fecha          = DateTime.Parse(fechaReparto.ToString(CultureInfo.InvariantCulture));

                    List <string> codigosCorral = cambiosDetalle.Select(det => det.CorralInfo.Codigo).Distinct().ToList();

                    List <CorralInfo> corralesOrganizacion = corralPL.ObtenerCorralesPorCodigosCorral(codigosCorral,
                                                                                                      organizacionId);

                    List <CambiosReporteInfo> repartosInactivar = new List <CambiosReporteInfo>();

                    int  cantidadManiana = 0;
                    bool bandera         = false;

                    foreach (CambiosReporteInfo t in cambiosDetalle)
                    {
                        t.OrganizacionID        = organizacionId;
                        t.UsuarioModificacionID = usuario;
                        t.FechaReparto          = fecha;

                        #region Eliminar Duplicados
                        if (t.RepartoID == 0)
                        {
                            CorralInfo corralCompleto =
                                corralesOrganizacion.FirstOrDefault(
                                    cor =>
                                    cor.Codigo.Trim().Equals(t.CorralInfo.Codigo.Trim(),
                                                             StringComparison.InvariantCultureIgnoreCase));
                            if (corralCompleto == null)
                            {
                                continue;
                            }

                            var corral = new CorralInfo
                            {
                                Organizacion = new OrganizacionInfo
                                {
                                    OrganizacionID = organizacionId
                                },
                                CorralID = corralCompleto.CorralID
                            };

                            RepartoInfo repartoCorral = repartoPl.ObtnerPorFechaCorral(corral, fecha);
                            if (repartoCorral != null)
                            {
                                RepartoDetalleInfo repartoDetalleMatutino =
                                    repartoCorral.DetalleReparto.FirstOrDefault(
                                        rep => rep.TipoServicioID == TipoServicioEnum.Matutino.GetHashCode());

                                RepartoDetalleInfo repartoDetalleVespertino =
                                    repartoCorral.DetalleReparto.FirstOrDefault(
                                        rep => rep.TipoServicioID == TipoServicioEnum.Vespertino.GetHashCode());

                                LoteInfo lote = lotePL.ObtenerLotesActivos(organizacionId, corralCompleto.CorralID);

                                if (t.TipoServicioID == (int)TipoServicioEnum.Matutino)
                                //&& t.Servido == 1)
                                {
                                    if (repartoDetalleMatutino != null)
                                    {
                                        //cantidadManiana = t.CantidadServida;
                                        //if(repartoCorral.Fecha.Date == DateTime.Now.Date)
                                        //{
                                        //    t.NoModificar = true;
                                        //}
                                        cantidadManiana = repartoDetalleMatutino.CantidadProgramada;
                                        bandera         = true;
                                    }
                                }

                                if (repartoDetalleMatutino != null)
                                {
                                    if (repartoCorral.LoteID == 0 || !repartoDetalleMatutino.Servido)
                                    {
                                        t.Lote        = lote.Lote;
                                        t.Cabezas     = lote.Cabezas;
                                        t.CambiarLote = true;
                                        t.RepartoID   = repartoCorral.RepartoID;
                                        //t.RepartoDetalleIdManiana = repartoDetalleMatutino.RepartoDetalleID;
                                        if (repartoDetalleVespertino != null)
                                        {
                                            t.RepartoDetalleIdTarde = repartoDetalleVespertino.RepartoDetalleID;
                                        }
                                    }
                                    else
                                    if (repartoCorral.LoteID != lote.LoteID)
                                    {
                                        if (t.TipoServicioID == (int)TipoServicioEnum.Vespertino)
                                        {
                                            if (repartoDetalleVespertino != null)
                                            {
                                                var repartoInactivar = new CambiosReporteInfo
                                                {
                                                    RepartoDetalleIdTarde = repartoDetalleVespertino.RepartoDetalleID,
                                                    InactivarDetalle      = true,
                                                    CorralInfo            = new CorralInfo(),
                                                    UsuarioModificacionID = usuario,
                                                    FechaReparto          = fecha
                                                };
                                                repartosInactivar.Add(repartoInactivar);
                                            }
                                            t.Lote = lote.Lote;
                                        }
                                        else
                                        {
                                            t.RepartoDetalleIdManiana = repartoDetalleMatutino.RepartoDetalleID;
                                        }
                                    }
                                }
                            }
                        }
                        #endregion Eliminar Duplicados

                        var repartoDetalleManiana = new RepartoDetalleInfo();
                        if (t.RepartoID > 0)
                        {
                            IList <RepartoDetalleInfo> detalleRepartos =
                                repartoPl.ObtenerDetalle(new RepartoInfo {
                                RepartoID = t.RepartoID
                            });

                            if (detalleRepartos != null && detalleRepartos.Any())
                            {
                                repartoDetalleManiana =
                                    detalleRepartos.FirstOrDefault(
                                        det => det.TipoServicioID == TipoServicioEnum.Matutino.GetHashCode());
                            }
                        }
                        if (t.TipoServicioID == (int)TipoServicioEnum.Matutino)
                        //&& t.Servido == 1)
                        {
                            if (repartoDetalleManiana != null)
                            {
                                //cantidadManiana = t.CantidadServida;
                                if (t.FechaReparto.Date == DateTime.Now.Date && t.Servido == 1)
                                {
                                    t.NoModificar = true;
                                }
                                if (t.Servido == 1)
                                {
                                    cantidadManiana = repartoDetalleManiana.CantidadServida;
                                }
                                else
                                {
                                    cantidadManiana = repartoDetalleManiana.CantidadProgramada;
                                }
                                bandera = true;
                            }
                        }

                        if (bandera && t.TipoServicioID == (int)TipoServicioEnum.Vespertino)
                        {
                            if (t.CantidadProgramada == 0)
                            {
                                t.CantidadProgramada = 0;
                            }
                            else
                            {
                                t.CantidadProgramada = t.CantidadProgramada - cantidadManiana;
                            }

                            if (cantidadManiana == 0)
                            {
                                t.ValidaPorcentaje = 0;
                            }
                            else
                            {
                                t.ValidaPorcentaje = 1;
                            }

                            bandera         = false;
                            cantidadManiana = 0;
                        }
                    }
                    cambiosDetalle.AddRange(repartosInactivar);
                    valorRetorno = repartoPl.GenerarOrdenRepartoConfiguracionAjustes(cambiosDetalle.Where(cam => cam.NoModificar == false).ToList());
                }
            }
            catch (Exception ex)
            {
                valorRetorno = -1;
            }
            return(valorRetorno);
        }