Esempio n. 1
0
        private void GenerarRepartoAlimentoDetalle(List <GridRepartosModel> repartoDetalle, List <RepartoAlimentoDetalleInfo> listaRepartosAlimentoDetalle, int organizacionID, int repartoAlimentoID)
        {
            IList <RepartoAlimentoDetalleInfo> listaDetallesGuardadas = new List <RepartoAlimentoDetalleInfo>();

            if (repartoAlimentoID > 0)
            {
                var repartoAlimentoDetalleDAL = new RepartoAlimentoDetalleDAL();
                listaDetallesGuardadas =
                    repartoAlimentoDetalleDAL.ObtenerPorRepartoAlimentoID(repartoAlimentoID);
            }
            var codigosCorral = new List <string>();

            repartoDetalle.ForEach(rep =>
            {
                codigosCorral.Add(rep.CorralInicio.Trim().PadLeft(3, '0'));
                codigosCorral.Add(rep.CorralFinal.Trim().PadLeft(3, '0'));
            });
            var corralDAL = new CorralDAL();
            List <CorralInfo> corrales = corralDAL.ObtenerCorralesPorCodigosCorral(codigosCorral, organizacionID);

            if (corrales == null)
            {
                return;
            }
            foreach (var detalle in repartoDetalle)
            {
                if (listaDetallesGuardadas != null && listaDetallesGuardadas.Any())
                {
                    RepartoAlimentoDetalleInfo detalleExiste =
                        listaDetallesGuardadas.FirstOrDefault(
                            deta =>
                            deta.FolioReparto == detalle.Reparto && deta.FormulaIDRacion == detalle.RacionFormula);
                    if (detalleExiste != null)
                    {
                        continue;
                    }
                }
                var repartoAlimentoDetalle = new RepartoAlimentoDetalleInfo();
                repartoAlimentoDetalle.FolioReparto    = detalle.Reparto;
                repartoAlimentoDetalle.FormulaIDRacion = detalle.RacionFormula;
                repartoAlimentoDetalle.Tolva           = detalle.NumeroTolva.ToString(CultureInfo.InvariantCulture);
                repartoAlimentoDetalle.KilosEmbarcados = detalle.KilosEmbarcados;
                repartoAlimentoDetalle.KilosRepartidos = detalle.KilosRepartidos;
                repartoAlimentoDetalle.Sobrante        = detalle.Sobrante;
                repartoAlimentoDetalle.PesoFinal       = detalle.PesoFinal;

                CorralInfo corralInicio =
                    corrales.FirstOrDefault(
                        cor => cor.Codigo.ToUpper().Trim().Equals(detalle.CorralInicio.ToUpper().Trim().PadLeft(3, '0')));
                if (corralInicio == null)
                {
                    continue;
                }
                repartoAlimentoDetalle.CorralIDInicio = corralInicio.CorralID;
                CorralInfo corralFinal =
                    corrales.FirstOrDefault(
                        cor => cor.Codigo.ToUpper().Trim().Equals(detalle.CorralFinal.ToUpper().Trim().PadLeft(3, '0')));
                if (corralFinal == null)
                {
                    continue;
                }
                repartoAlimentoDetalle.CorralIDFinal     = corralFinal.CorralID;
                repartoAlimentoDetalle.HoraRepartoInicio = detalle.HoraInicioReparto;
                repartoAlimentoDetalle.HoraRepartoFinal  = detalle.HoraFinalReparto;
                repartoAlimentoDetalle.Observaciones     = detalle.Observaciones;

                listaRepartosAlimentoDetalle.Add(repartoAlimentoDetalle);
            }
        }