Ejemplo n.º 1
0
        public ActionResult Disponibilidade(DisponibilidadeViewModel dvm)
        {
            DisponibilidadePostViewModel dpvm = GetDVMFromRequest(Request);

            List <AlertaDeDisponibilidade> alertasExistentes = db.Alertas.Include(a => a.Email).ToList();

            foreach (var alertaExistente in alertasExistentes)
            {
                if (!dpvm.alertas.Any(a => a.Key == alertaExistente.Id))
                {
                    foreach (Insumo insumo in db.Insumos.Where(ins => ins.Alerta.Id == alertaExistente.Id))
                    {
                        insumo.Alerta = null;
                    }
                    db.Alertas.Remove(alertaExistente);
                }
            }

            foreach (var alertaNovo in dpvm.alertas)
            {
                if (alertasExistentes.Any(a => a.Id == alertaNovo.Key))
                {
                    AlertaDeDisponibilidade alertaExistente = db.Alertas.Find(alertaNovo.Key);
                    alertaExistente.Ativado          = alertaNovo.Value.Ativado;
                    alertaExistente.Email            = alertaNovo.Value.Email;
                    alertaExistente.QuantidadeMinima = alertaNovo.Value.QuantidadeMinima;
                }
                else
                {
                    AlertaDeDisponibilidade alertaASerInserido = new AlertaDeDisponibilidade()
                    {
                        Ativado          = alertaNovo.Value.Ativado,
                        Email            = alertaNovo.Value.Email,
                        Id               = alertaNovo.Key,
                        QuantidadeMinima = alertaNovo.Value.QuantidadeMinima
                    };

                    db.Alertas.Add(alertaASerInserido);
                }
            }

            db.SaveChanges();

            return(Disponibilidade());
        }
Ejemplo n.º 2
0
        //GET: Reports/Disponibilidade
        public ActionResult Disponibilidade()
        {
            List <Insumo>                  insumos    = db.Insumos.Include(i => i.Unidade).ToList();
            List <Aquisicao>               aquisicoes = db.Aquisicoes.Include(aq => aq.Insumo).ToList();
            List <SaidaDeEstoque>          saidas     = db.SaidaDeEstoque.Include(s => s.Insumo).ToList();
            List <AlertaDeDisponibilidade> alertas    = db.Alertas
                                                        .Include(a => a.Email).ToList();

            Estoque e = new Estoque();

            e.IncluirAquisicao(aquisicoes.ToArray());
            e.IncluirSaidas(saidas.ToArray());

            List <double> quantidades = new List <double>();

            foreach (Insumo i in insumos)
            {
                quantidades.Add(e.ObterQuantidade(i));
            }

            List <bool> possuiAlerta = new List <bool>();

            foreach (Insumo insumo in insumos)
            {
                if (insumo.Alerta == null || !insumo.Alerta.Ativado)
                {
                    possuiAlerta.Add(false);
                }
                else
                {
                    possuiAlerta.Add(true);
                }
            }

            DisponibilidadeViewModel dvm = new DisponibilidadeViewModel()
            {
                insumos      = insumos,
                quantidades  = quantidades,
                possuiAlerta = possuiAlerta
            };

            return(View(dvm));
        }