示例#1
0
        public ActionResult Create(LoteViewModel model)
        {
            LoteDAO loteDAO = new LoteDAO();

            if (ModelState.IsValid && model.DescricaoLote != "" && model.DescricaoLote != null && model.QuantidadeProduto > 0)
            {
                Lote lote = new Lote
                {
                    DescricaoLote         = model.DescricaoLote,
                    Estoque_CodigoEstoque = (int)model.SelectItemEstoqueId,
                    Produto_CodigoProduto = (int)model.SelectItemProdutoId,
                    QuantidadeProduto     = model.QuantidadeProduto,
                    ValidadeLote          = model.ValidadeLote,
                };

                loteDAO.Salva(lote);

                return(RedirectToAction("Index", "Lote"));
            }
            else
            {
                ModelState.AddModelError("", "Quantidade invalida");
                return(View("ErroQuantidade"));
            }
        }
示例#2
0
        public ActionResult Create()
        {
            EstoqueController estoqueController = new EstoqueController();
            ProdutoController produtoController = new ProdutoController();
            var model = new LoteViewModel()
            {
                Produtos = produtoController.GetProdutos(),
                Estoques = estoqueController.GetEstoque(),
            };

            return(View(model));
        }
示例#3
0
        public ActionResult BaixaLote(int codigoLote)
        {
            LoteDAO dao  = new LoteDAO();
            var     lote = dao.GetById(codigoLote);

            var model = new LoteViewModel()
            {
                CodigoLote        = codigoLote,
                DescricaoLote     = lote.DescricaoLote,
                QuantidadeProduto = lote.QuantidadeProduto,
                ValidadeLote      = lote.ValidadeLote,
            };

            return(View(model));
        }
示例#4
0
        public ActionResult Consultar(int codigoLote)
        {
            var dao        = new LoteDAO();
            var lote       = dao.GetById(codigoLote);
            var daoEstoque = new EstoqueDAO();
            var estoque    = daoEstoque.GetById(lote.Estoque_CodigoEstoque);
            var produtoDao = new ProdutoDAO();
            var produto    = produtoDao.GetById(lote.Produto_CodigoProduto);
            var model      = new LoteViewModel()
            {
                CodigoLote        = lote.CodigoLote,
                DescricaoLote     = lote.DescricaoLote,
                QuantidadeProduto = lote.QuantidadeProduto,
                Estoque           = estoque,
                Produto           = produto,
                ValidadeLote      = lote.ValidadeLote,
            };

            return(View(model));
        }
示例#5
0
        public ActionResult BaixaLote(LoteViewModel model, int codigoLote)
        {
            var loteDAO   = new LoteDAO();
            var loteAtual = loteDAO.GetById(codigoLote);

            if (model.QuantidadeBaixa > loteAtual.QuantidadeProduto)
            {
                ModelState.AddModelError("", "Quantidade invalida");
                return(View("ErroQuantidade"));
            }
            else
            {
                var lote = new Lote()
                {
                    CodigoLote        = loteAtual.CodigoLote,
                    QuantidadeProduto = (loteAtual.QuantidadeProduto - model.QuantidadeBaixa), //Subtraindo a quantidade atual.
                };



                loteDAO.Update(lote);

                var baixaDAO = new BaixaDAO();
                var baixa    = new Baixa()
                {
                    DataBaixa             = DateTime.Now,
                    Lote_CodigoLote       = loteAtual.CodigoLote,
                    Produto_CodigoProduto = loteAtual.Produto_CodigoProduto,
                    QuantidadeBaixa       = model.QuantidadeBaixa,
                };

                baixaDAO.Salva(baixa);

                return(RedirectToAction("Index"));
            }
        }
示例#6
0
        public ActionResult Adiciona(LoteViewModel model)
        {
            LoteDAO loteDAO = new LoteDAO();

            if (ModelState.IsValid)
            {
                Lote lote = new Lote
                {
                    DescricaoLote         = model.DescricaoLote,
                    Estoque_CodigoEstoque = model.Estoque.CodigoEstoque,
                    Produto_CodigoProduto = model.Produto.CodigoProduto,
                    QuantidadeProduto     = model.QuantidadeProduto,
                    ValidadeLote          = model.ValidadeLote,
                };

                loteDAO.Salva(lote);

                return(RedirectToAction("Index", "Lote"));
            }
            else
            {
                return(View("FormularioLote"));
            }
        }
示例#7
0
        public LoteViewModel VerificaSituacaoLote()
        {
            var loteDAO      = new LoteDAO();
            var baixaDAO     = new BaixaDAO();
            var listabaixa   = baixaDAO.GetAll();
            var loteAtual    = loteDAO.GetAll();
            var produtoDAO   = new ProdutoDAO();
            var listaProduto = produtoDAO.GetAll();
            var baixaTotal   = 0;

            HashSet <string> lista = new HashSet <string>();
            var texto = "";

            foreach (var aux in loteAtual)
            {
                var lotemesatual  = loteDAO.GetAll().Where(x => x.ValidadeLote.Month == DateTime.Now.Month && x.Produto_CodigoProduto == aux.Produto_CodigoProduto).Sum(x => x.QuantidadeProduto);
                var baixaprodmes1 = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 1) && x.Produto_CodigoProduto == aux.Produto_CodigoProduto).Sum(x => x.QuantidadeBaixa);
                var baixaprodmes2 = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 2) && x.Produto_CodigoProduto == aux.Produto_CodigoProduto).Sum(x => x.QuantidadeBaixa);
                var baixaprodmes3 = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 3) && x.Produto_CodigoProduto == aux.Produto_CodigoProduto).Sum(x => x.QuantidadeBaixa);
                var nomeproduto   = produtoDAO.GetById(aux.Produto_CodigoProduto);

                var diasrestantes = aux.ValidadeLote.Day - DateTime.Now.Day;


                if (baixaprodmes1 > 0 && baixaprodmes2 > 0 && baixaprodmes3 > 0) // 3 meses
                {
                    baixaTotal = ((baixaprodmes1 + baixaprodmes2 + baixaprodmes3) / 3);
                }
                else if (baixaprodmes1 == 0 && baixaprodmes2 > 0 && baixaprodmes3 > 0) // 2 e 3 meses
                {
                    baixaTotal = (baixaprodmes2 + baixaprodmes3) / 2;
                }
                else if (baixaprodmes2 == 0 && baixaprodmes1 > 0 && baixaprodmes3 > 0) //1 e 3 meses
                {
                    baixaTotal = (baixaprodmes1 + baixaprodmes3) / 2;
                }
                else if (baixaprodmes3 == 0 && baixaprodmes1 > 0 && baixaprodmes2 > 0) // 1 e 2
                {
                    baixaTotal = (baixaprodmes1 + baixaprodmes2) / 2;
                }
                else if (baixaprodmes2 == 0 && baixaprodmes3 == 0 && baixaprodmes1 > 0)
                {
                    baixaTotal = baixaprodmes1;
                }
                else if (baixaprodmes1 == 0 && baixaprodmes3 == 0 && baixaprodmes2 > 0)
                {
                    baixaTotal = baixaprodmes2;
                }
                else if (baixaprodmes2 == 0 && baixaprodmes1 == 0 && baixaprodmes3 > 0)
                {
                    baixaTotal = baixaprodmes3;
                }
                else
                {
                    baixaTotal = 0;
                }
                //Verificação do warning de baixas
                if (lotemesatual > baixaTotal && baixaTotal > 0) //&& diasrestantes < 16)
                {
                    var diferençaresultado   = lotemesatual - baixaTotal;
                    var resultadoporcentagem = (float)((diferençaresultado * 100) / lotemesatual);
                    texto = "Ops, você não conseguira vender: " + resultadoporcentagem + " % do seu estoque de " + nomeproduto.NomeProduto + ", faça uma promoção!";
                    lista.Add(texto);
                }
                else
                {
                    ViewBag.Mensagem = "";
                }
            }
            var model = new LoteViewModel()
            {
                ListaAlerta = lista,
            };

            return(model);
        }