private void Registrar(object sender, RoutedEventArgs e)
        {
            try
            {
                Lote Lote = new Lote();
                Lote.DataDeFabricacao = DataDeFabricacao.SelectedDate.Value;
                Lote.DataDeVencimento = DataDeVencimento.SelectedDate.Value;
                Lote.Corredor         = Corredor.SelectionBoxItem.ToString();
                Lote.Secao            = Secao.SelectionBoxItem.ToString();
                Lote.Gaveta           = Gaveta.SelectionBoxItem.ToString();

                Lote.Endereco = EnderecoDAO.GetEnderecoPorDescricao(Endereco.SelectionBoxItem.ToString());
                Lote.Produto  = ProdutoDAO.GetProdutoPorNome(Produto.SelectionBoxItem.ToString());

                Lote.QuantidadeDeProdutos = Convert.ToInt32(QuantidadeDeProdutos.Text);

                if (LoteDAO.ValidarGaveta(Lote.Gaveta, Lote.Corredor, Lote.Secao))
                {
                    MessageBox.Show("Esta gaveta já esta ocupada.", "Registrar entrada de lote");
                }
                else if (LoteController.CadastrarEntradaDeLote(Lote))
                {
                    MessageBox.Show("Lote Cadastrado com sucesso!", "Registrar saída de lote");
                }
                else
                {
                    MessageBox.Show("Por favor informe valores válidos", "Registrar entrada de lote");
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Por favor informe valores válidos", "Registrar entrada de lote");
            }
        }
        private void BtnRegistrar(object sender, RoutedEventArgs e)
        {
            int IdLote = 0;

            try
            {
                IdLote = Convert.ToInt32(NumeroLote.Text);

                if (LoteDAO.ValidarSaidaLote(IdLote))
                {
                    Lote Lote = new Lote();
                    Lote = LoteDAO.BuscarLote(IdLote);

                    LoteController.CadastrarSaidaDeLote(Lote);
                    MessageBox.Show("Lote retirado com sucesso!", "Registrar saída de lote");
                }
                else
                {
                    MessageBox.Show("Por favor informe um número de lote que esteja em estoque.", "Registrar saída de lote");
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Por favor informe um número válido", "Registrar saída de lote");
            }
        }
Exemple #3
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"));
            }
        }
Exemple #4
0
        // GET: Lote
        public ActionResult Index()
        {
            LoteDAO loteDAO   = new LoteDAO();
            var     listaLote = loteDAO.GetAll();

            ViewBag.Lotes = listaLote;
            return(View());
        }
Exemple #5
0
 public GerenciadorDB()
 {
     usuarioDAO = new UsuarioDAO(db, db.Usuario);
     leilaoDAO  = new LeilaoDAO(db, db.Leilao);
     loteDAO    = new LoteDAO(db, db.Lote);
     lanceDAO   = new LanceDAO(db, db.Lance);
     loteBemDAO = new LoteBemDAO(db, db.LoteBem);
 }
 private void dataGrid_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
 {
     if (e.RowIndex >= 0)
     {
         DataGridViewRow row = this.dataGrid.Rows[e.RowIndex];
         objLote         = LoteDAO.findById((int)row.Cells["dataGridViewTextBoxColumn1"].Value);
         nomeLote.Text   = "Lote " + objLote.Id + " " + objLote.Codigo;
         nuRetirar.Value = objLote.Qtd_estoque;
     }
 }
Exemple #7
0
        public IEnumerable <SelectListItem> GetLotes()
        {
            var dao   = new LoteDAO();
            var lotes = dao.GetAll()
                        .Select(x => new SelectListItem
            {
                Value = x.CodigoLote.ToString(),
                Text  = x.DescricaoLote,
            });

            return(new SelectList(lotes, "Value", "Text"));
        }
Exemple #8
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));
        }
Exemple #9
0
        public ActionResult FormularioLote()
        {
            LoteDAO loteDAO   = new LoteDAO();
            var     listaLote = loteDAO.GetAll();

            EstoqueDAO estoqueDAO   = new EstoqueDAO();
            var        listaEstoque = estoqueDAO.GetAll();

            ProdutoDAO produtoDAO   = new ProdutoDAO();
            var        listaProduto = produtoDAO.GetAll();

            ViewBag.Lotes    = listaLote;
            ViewBag.Estoques = listaEstoque;
            ViewBag.Produtos = listaProduto;
            return(View());
        }
        private void btnRetirar_Click(object sender, EventArgs e)
        {
            MovimentacoesController controller = new MovimentacoesController();

            objLote.Qtd_estoque = (int)nuRetirar.Value;
            LoteDAO dao = new LoteDAO();

            if (controller.CadastrarLote(objLote))
            {
                MessageBox.Show("Retirado!!");
                dataGrid.DataSource = LoteDAO.returnDataSource();
            }
            else
            {
                MessageBox.Show("Erro!!");
            }
        }
Exemple #11
0
        public JsonResult VerificaSituacaoEstoque()
        {
            var loteDAO      = new LoteDAO();
            var baixaDAO     = new BaixaDAO();
            var listabaixa   = baixaDAO.GetAll();
            var loteAtual    = loteDAO.GetAll();
            var produtoDAO   = new ProdutoDAO();
            var listaProduto = produtoDAO.GetAll();

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

            foreach (var aux in listaProduto)
            {
                var produtoemestoque = loteDAO.GetAll().Where(x => x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeProduto);
                var produtobaixado   = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month) && x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeBaixa);
                var produtogeral     = produtoemestoque + produtobaixado;
                var baixamenos1      = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 1) && x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeBaixa);
                var baixamenos2      = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 2) && x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeBaixa);
                var baixamenos3      = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 3) && x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeBaixa);
                var nomeproduto      = produtoDAO.GetById(aux.CodigoProduto);

                var mediabaixa = (baixamenos1 + baixamenos2 + baixamenos3) / 3;

                if (mediabaixa > produtogeral)
                {
                    var produtofalta = mediabaixa - produtogeral;
                    texto = "Seu estoque ficará em falta de: " + produtofalta + " do produto " + nomeproduto.NomeProduto + " ";
                    lista.Add(new VerificaSituacaoEstoqueViewModel()
                    {
                        NomeProduto  = nomeproduto.NomeProduto,
                        EstoqueAtual = produtogeral,
                        MediaBaixa   = mediabaixa,
                    });
                }
                else
                {
                    ViewBag.Mensagem = "";
                }
            }

            var js   = new JavaScriptSerializer();
            var json = js.Serialize(lista);

            return(Json(json, JsonRequestBehavior.AllowGet));
        }
Exemple #12
0
        public JsonResult RetornaRankingBaixas()
        {
            //Retorna Grafico de Colunas
            //Esse grafico retorna a quantidade de produtos totais.

            ProdutoDAO produtoDAO   = new ProdutoDAO();
            var        listaProduto = produtoDAO.GetAll();

            LoteDAO loteDAO   = new LoteDAO();
            var     listaLote = loteDAO.GetAll();

            BaixaDAO baixaDAO   = new BaixaDAO();
            var      listaBaixa = baixaDAO.GetAll();

            var resultQuery = from b in listaBaixa
                              join p in listaProduto
                              on b.Produto_CodigoProduto equals p.CodigoProduto
                              where b.QuantidadeBaixa > 0
                              orderby b.QuantidadeBaixa
                              group b by new { p.NomeProduto } into g

                select new
            {
                NomeProduto     = g.Key.NomeProduto,
                QuantidadeBaixa = g.Sum(x => x.QuantidadeBaixa)
            };

            resultQuery = resultQuery.OrderByDescending(x => x.QuantidadeBaixa).Take(5);

            var lista = new List <RankingBaixaViewModel>();

            foreach (var item in resultQuery)
            {
                lista.Add(new RankingBaixaViewModel()
                {
                    NomeProduto     = item.NomeProduto,
                    QuantidadeBaixa = item.QuantidadeBaixa
                });
            }

            var js   = new JavaScriptSerializer();
            var json = js.Serialize(lista);

            return(Json(json, JsonRequestBehavior.AllowGet));
        }
        public Boolean cadastrarLote(Lote obj)
        {
            LoteDAO dao = new LoteDAO();

            if (obj.Id != 0)
            {
                dao.update(obj);
                historico(obj, "UPDATE");
                return(true);
            }
            else
            {
                obj.DataEntrada = DateTime.Now;
                dao.insert(obj);
                historico(LoteDAO.findByCode(obj.Codigo), "INSERT");
                return(true);
            }
        }
Exemple #14
0
        public ActionResult Index()
        {
            LoteDAO loteDAO = new LoteDAO();
            var     lotes   = loteDAO.GetAll().Where(x => x.QuantidadeProduto > 0).OrderBy(x => x.ValidadeLote);

            EstoqueDAO estoqueDao = new EstoqueDAO();

            var model = lotes.Select(x => new LoteViewModel()
            {
                CodigoLote        = x.CodigoLote,
                DescricaoLote     = x.DescricaoLote,
                Produto           = x.Produto,
                ValidadeLote      = x.ValidadeLote,
                QuantidadeProduto = x.QuantidadeProduto,
                LocalEstoque      = estoqueDao.GetById(x.Estoque_CodigoEstoque).DescricaoEstoque,
            });

            return(View(model));
        }
Exemple #15
0
        public JsonResult RetornaRankingProdutosMorto()
        {
            //Retorna Grafico de Colunas
            //Esse grafico retorna a quantidade de produtos totais.

            ProdutoDAO produtoDAO   = new ProdutoDAO();
            var        listaProduto = produtoDAO.GetAll();

            LoteDAO loteDAO   = new LoteDAO();
            var     listaLote = loteDAO.GetAll();

            var resultQuery = from l in listaLote
                              join p in listaProduto
                              on l.Produto_CodigoProduto equals p.CodigoProduto
                              where l.ValidadeLote < DateTime.Now.Date &&
                              l.QuantidadeProduto > 0
                              orderby l.QuantidadeProduto
                              group l by new { p.NomeProduto } into g

                select new
            {
                NomeProduto       = g.Key.NomeProduto,
                QuantidadeProduto = g.Sum(x => x.QuantidadeProduto)
            };

            resultQuery = resultQuery.OrderByDescending(x => x.QuantidadeProduto).Take(5);

            var lista = new List <RankingProdutosMortoViewModel>();

            foreach (var item in resultQuery)
            {
                lista.Add(new RankingProdutosMortoViewModel()
                {
                    NomeProduto       = item.NomeProduto,
                    QuantidadeProduto = item.QuantidadeProduto
                });
            }

            var js   = new JavaScriptSerializer();
            var json = js.Serialize(lista);

            return(Json(json, JsonRequestBehavior.AllowGet));
        }
 public static bool CadastrarSaidaDeLote(Lote lote)
 {
     try
     {
         if (LoteDAO.ValidarSaidaLote(lote.Id))
         {
             HistoricoDAO.GerarHistoricoSaidaLote(lote);
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception)
     {
         return(false);
     }
 }
 public static bool CadastrarEntradaDeLote(Lote lote)
 {
     try
     {
         if (LoteDAO.ValidarNumeroDeLote(lote.Id) && LoteDAO.ValidarDataDeVencimento(lote.DataDeVencimento) &&
             LoteDAO.ValidarDataDeFabricacao(lote.DataDeFabricacao))
         {
             LoteDAO.CadastrarLote(lote);
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception)
     {
         return(false);
     }
 }
Exemple #18
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));
        }
Exemple #19
0
        public ActionResult RetornaRankingProdutos()
        {
            //Retorna Grafico de Colunas
            //Esse grafico retorna a quantidade de produtos totais.

            ProdutoDAO produtoDAO   = new ProdutoDAO();
            var        listaProduto = produtoDAO.GetAll();

            LoteDAO loteDAO   = new LoteDAO();
            var     listaLote = loteDAO.GetAll();

            var resultQuery = from l in listaLote
                              join p in listaProduto
                              on l.Produto_CodigoProduto equals p.CodigoProduto
                              group l by new { p.NomeProduto } into g
                select new
            {
                NomeProduto       = g.Key.NomeProduto,
                QuantidadeProduto = g.Sum(x => x.QuantidadeProduto)
            };

            return(View(resultQuery));
        }
Exemple #20
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"));
            }
        }
Exemple #21
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"));
            }
        }
Exemple #22
0
        public ActionResult RelatorioProduto(string nomeCategoria, DateTime dataValidade)
        {
            RelatorioViewModel model = new RelatorioViewModel
            {
                ListaProdutoViewModel = new List <ProdutoViewModel>()
            };

            CategoriaDAO categoriaDAO    = new CategoriaDAO();
            var          listaCategoria  = categoriaDAO.GetAll();
            var          filtroCategoria = new List <CategoriaProduto>();

            foreach (var item in listaCategoria)
            {
                if (item.NomeCategoria.Equals(nomeCategoria))
                {
                    filtroCategoria.Add(item);
                }
            }

            ProdutoDAO produtoDAO   = new ProdutoDAO();
            var        listaProduto = produtoDAO.GetAll();
            //var filtroProduto = new List<Produto>();
            //foreach (var item in listaProduto)
            //{
            //    if (item.NomeProduto.Equals(nomeProduto))
            //    {
            //        filtroProduto.Add(item);
            //    }
            //}

            LoteDAO loteDAO    = new LoteDAO();
            var     listaLote  = loteDAO.GetAll();
            var     filtroLote = new List <Lote>();

            foreach (var item in listaLote)
            {
                if (item.ValidadeLote.Equals(dataValidade))
                {
                    filtroLote.Add(item);
                }
            }
            if (nomeCategoria != null && dataValidade != null)
            {
                var resultQuery = from p in listaProduto
                                  join l in filtroLote
                                  on p.CodigoProduto equals l.Produto_CodigoProduto
                                  join c in filtroCategoria
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  select new
                {
                    p.NomeProduto,
                    c.NomeCategoria,
                    l.ValidadeLote,
                };
                return(View());
            }
            else if (nomeCategoria == null && dataValidade != null)
            {
                var resultQuery = from p in listaProduto
                                  join l in filtroLote
                                  on p.CodigoProduto equals l.Produto_CodigoProduto
                                  select new
                {
                    p.NomeProduto,
                    p.MarcaProduto,
                    l.ValidadeLote,
                };
                return(View());
            }
            else if (nomeCategoria == null && dataValidade == null)
            {
                var todosLote       = loteDAO.GetAll();
                var todosProdutos   = produtoDAO.GetAll();
                var todasCategorias = categoriaDAO.GetAll();

                var resultQuery = from p in todosProdutos
                                  join l in todosLote
                                  on p.CodigoProduto equals l.Produto_CodigoProduto
                                  join c in todasCategorias
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  select new
                {
                    p.NomeProduto,
                    c.NomeCategoria,
                    p.MarcaProduto,
                    l.ValidadeLote,
                };
                return(View());
            }

            return(null);
        }
Exemple #23
0
        public ActionResult RelatorioLote(FiltrosViewModel filtro)
        {
            CategoriaDAO categoriaDAO   = new CategoriaDAO();
            var          listaCategoria = categoriaDAO.GetAll();
            LoteDAO      loteDAO        = new LoteDAO();
            var          listaLote      = loteDAO.GetAll();
            ProdutoDAO   produtoDAO     = new ProdutoDAO();
            var          listaProduto   = produtoDAO.GetAll();
            EstoqueDAO   estoqueDao     = new EstoqueDAO();

            //todos
            if (filtro.SelectItemLoteId != null && filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId != null)
            {
                var resultQuery = from l in listaLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in listaCategoria on
                                  p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where l.Produto_CodigoProduto == filtro.SelectItemProdutoId &&
                                  p.CodigoProduto == filtro.SelectItemProdutoId &&
                                  p.Categoria_CodigoCategoria == filtro.SelectItemCategoriaId
                                  select new RelatorioLoteViewModel
                {
                    DescricaoLote     = l.DescricaoLote,
                    NomeProduto       = p.NomeProduto,
                    NomeCategoria     = c.NomeCategoria,
                    ValidadeLote      = l.ValidadeLote,
                    QuantidadeProduto = l.QuantidadeProduto,
                    LocalEstoque      = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque,
                };
                return(View(resultQuery.Distinct()));
            }
            //seleciona produto e categoria aaaaa
            else if (filtro.SelectItemLoteId == null && filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId != null)
            {
                var resultQuery = from l in listaLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in listaCategoria on
                                  p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where p.CodigoProduto == filtro.SelectItemProdutoId &&
                                  c.CodigoCategoria == filtro.SelectItemCategoriaId
                                  select new RelatorioLoteViewModel
                {
                    DescricaoLote     = l.DescricaoLote,
                    NomeProduto       = p.NomeProduto,
                    NomeCategoria     = c.NomeCategoria,
                    ValidadeLote      = l.ValidadeLote,
                    QuantidadeProduto = l.QuantidadeProduto,
                    LocalEstoque      = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque,
                };
                return(View(resultQuery.Distinct()));
            }
            //seleciona produto e lote
            else if (filtro.SelectItemLoteId != null && filtro.SelectItemCategoriaId == null && filtro.SelectItemProdutoId != null)
            {
                var resultQuery = from l in listaLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in listaCategoria on
                                  p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where p.CodigoProduto == filtro.SelectItemProdutoId &&
                                  l.CodigoLote == filtro.SelectItemLoteId
                                  select new RelatorioLoteViewModel
                {
                    DescricaoLote     = l.DescricaoLote,
                    NomeProduto       = p.NomeProduto,
                    NomeCategoria     = c.NomeCategoria,
                    ValidadeLote      = l.ValidadeLote,
                    QuantidadeProduto = l.QuantidadeProduto,
                    LocalEstoque      = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque,
                };
                return(View(resultQuery.Distinct()));
            }
            //lote e categoria
            else if (filtro.SelectItemLoteId != null && filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId == null)
            {
                var resultQuery = from l in listaLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in listaCategoria on
                                  p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where l.CodigoLote == filtro.SelectItemLoteId &&
                                  c.CodigoCategoria == filtro.SelectItemCategoriaId
                                  select new RelatorioLoteViewModel
                {
                    DescricaoLote     = l.DescricaoLote,
                    NomeProduto       = p.NomeProduto,
                    NomeCategoria     = c.NomeCategoria,
                    ValidadeLote      = l.ValidadeLote,
                    QuantidadeProduto = l.QuantidadeProduto,
                    LocalEstoque      = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque,
                };
                return(View(resultQuery.Distinct()));
            }
            //produto
            else if (filtro.SelectItemLoteId == null && filtro.SelectItemCategoriaId == null && filtro.SelectItemProdutoId != null)
            {
                var resultQuery = from l in listaLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in listaCategoria on
                                  p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where p.CodigoProduto == filtro.SelectItemProdutoId
                                  select new RelatorioLoteViewModel
                {
                    DescricaoLote     = l.DescricaoLote,
                    NomeProduto       = p.NomeProduto,
                    NomeCategoria     = c.NomeCategoria,
                    ValidadeLote      = l.ValidadeLote,
                    QuantidadeProduto = l.QuantidadeProduto,
                    LocalEstoque      = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque,
                };
                return(View(resultQuery.Distinct()));
            }
            //lote
            else if (filtro.SelectItemLoteId != null && filtro.SelectItemCategoriaId == null && filtro.SelectItemProdutoId == null)
            {
                var resultQuery = from l in listaLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in listaCategoria on
                                  p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where l.CodigoLote == filtro.SelectItemLoteId
                                  select new RelatorioLoteViewModel
                {
                    DescricaoLote     = l.DescricaoLote,
                    NomeProduto       = p.NomeProduto,
                    NomeCategoria     = c.NomeCategoria,
                    ValidadeLote      = l.ValidadeLote,
                    QuantidadeProduto = l.QuantidadeProduto,
                    LocalEstoque      = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque,
                };
                return(View(resultQuery.Distinct()));
            }

            //categoria
            else if (filtro.SelectItemLoteId == null && filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId == null)
            {
                var resultQuery = from l in listaLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in listaCategoria on
                                  p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where c.CodigoCategoria == filtro.SelectItemCategoriaId
                                  select new RelatorioLoteViewModel
                {
                    DescricaoLote     = l.DescricaoLote,
                    NomeProduto       = p.NomeProduto,
                    NomeCategoria     = c.NomeCategoria,
                    ValidadeLote      = l.ValidadeLote,
                    QuantidadeProduto = l.QuantidadeProduto,
                    LocalEstoque      = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque,
                };
                return(View(resultQuery.Distinct()));
            }

            else
            {
                var resultQuery = from l in listaLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in listaCategoria on
                                  p.Categoria_CodigoCategoria equals c.CodigoCategoria

                                  select new RelatorioLoteViewModel
                {
                    DescricaoLote     = l.DescricaoLote,
                    NomeProduto       = p.NomeProduto,
                    NomeCategoria     = c.NomeCategoria,
                    ValidadeLote      = l.ValidadeLote,
                    QuantidadeProduto = l.QuantidadeProduto,
                    LocalEstoque      = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque,
                };
                return(View(resultQuery.Distinct()));
            }
        }
Exemple #24
0
        public ActionResult RelatorioProduto(FiltrosViewModel filtro)
        {
            CategoriaDAO categoriaDAO = new CategoriaDAO();
            ProdutoDAO   produtoDAO   = new ProdutoDAO();
            LoteDAO      loteDAO      = new LoteDAO();

            var todosLote       = loteDAO.GetAll();
            var todosProdutos   = produtoDAO.GetAll();
            var todasCategorias = categoriaDAO.GetAll();

            if (filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId != null)
            {
                var resultQuery = from p in todosProdutos
                                  join c in todasCategorias
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where p.Categoria_CodigoCategoria == filtro.SelectItemCategoriaId &&
                                  p.CodigoProduto == filtro.SelectItemProdutoId
                                  select new RelatorioProdutoViewModel
                {
                    NomeProduto   = p.NomeProduto,
                    NomeCategoria = c.NomeCategoria,
                    Marca         = p.MarcaProduto,
                };
                return(View(resultQuery.Distinct()));
            }
            else if (filtro.SelectItemCategoriaId == null && filtro.SelectItemProdutoId != null)
            {
                var resultQuery = from p in todosProdutos
                                  join c in todasCategorias
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where p.CodigoProduto == filtro.SelectItemProdutoId
                                  select new RelatorioProdutoViewModel
                {
                    NomeProduto   = p.NomeProduto,
                    NomeCategoria = c.NomeCategoria,
                    Marca         = p.MarcaProduto,
                };
                return(View(resultQuery.Distinct()));
            }
            else if (filtro.SelectItemCategoriaId != null && filtro.NomeProduto == null)
            {
                var resultQuery = from p in todosProdutos
                                  join c in todasCategorias
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where p.Categoria_CodigoCategoria == filtro.SelectItemCategoriaId
                                  select new RelatorioProdutoViewModel
                {
                    NomeProduto   = p.NomeProduto,
                    NomeCategoria = c.NomeCategoria,
                    Marca         = p.MarcaProduto,
                };
                return(View(resultQuery.Distinct()));
            }
            else if (filtro.SelectItemProdutoId == null && filtro.SelectItemCategoriaId != null)
            {
                var resultQuery = from p in todosProdutos
                                  join c in todasCategorias
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  where p.CodigoProduto == filtro.SelectItemProdutoId
                                  select new RelatorioProdutoViewModel
                {
                    NomeProduto   = p.NomeProduto,
                    NomeCategoria = c.NomeCategoria,
                    Marca         = p.MarcaProduto,
                };
                return(View(resultQuery.Distinct()));
            }
            else
            {
                var resultQuery = from p in todosProdutos
                                  join c in todasCategorias
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  select new RelatorioProdutoViewModel
                {
                    NomeProduto   = p.NomeProduto,
                    NomeCategoria = c.NomeCategoria,
                    Marca         = p.MarcaProduto,
                };
                return(View(resultQuery.Distinct()));
            }
        }
Exemple #25
0
 public LoteRN()
 {
     dao = new LoteDAO();
 }
Exemple #26
0
        public ActionResult RelatorioLote(string nomeLote, string nomeCategoria, DateTime dataValidade)
        {
            CategoriaDAO categoriaDAO    = new CategoriaDAO();
            var          listaCategoria  = categoriaDAO.GetAll();
            var          filtroCategoria = new List <CategoriaProduto>();

            foreach (var item in listaCategoria)
            {
                if (item.NomeCategoria.Equals(nomeCategoria))
                {
                    filtroCategoria.Add(item);
                }
            }

            LoteDAO loteDAO    = new LoteDAO();
            var     listaLote  = loteDAO.GetAll();
            var     filtroLote = new List <Lote>();

            foreach (var item in listaLote)
            {
                if (item.ValidadeLote.Equals(dataValidade) && item.DescricaoLote.Equals(nomeLote))
                {
                    filtroLote.Add(item);
                }
            }

            ProdutoDAO produtoDAO    = new ProdutoDAO();
            var        listaProduto  = produtoDAO.GetAll();
            var        filtroProduto = new List <Produto>();


            if (nomeLote != null && nomeCategoria != null && dataValidade != null)
            {
                var resultQuery = from l in filtroLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in filtroCategoria
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  orderby l.ValidadeLote
                                  select new
                {
                    l.DescricaoLote,
                    p.NomeProduto,
                    c.NomeCategoria,
                    l.ValidadeLote,
                    l.QuantidadeProduto,
                };
                return(View());
            }
            else
            {
                var resultQuery = from l in listaLote
                                  join p in listaProduto
                                  on l.Produto_CodigoProduto equals p.CodigoProduto
                                  join c in listaCategoria
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  orderby l.ValidadeLote
                                  select new
                {
                    l.DescricaoLote,
                    p.NomeProduto,
                    c.NomeCategoria,
                    l.ValidadeLote,
                    l.QuantidadeProduto,
                };
                return(View());
            }
        }
Exemple #27
0
        static void Main(string[] args)
        {
            #region VARIAVEIS DE ENTRADA
            string nomeCategoria             = null;
            Nullable <DateTime> dataValidade = null /*new DateTime(2018, 06, 01)*/;
            #endregion

            //METODOS QUE REQUISITAM DADOS NO BANCO E FILTRAM

            #region COLETORES DE DADOS DAO
            ProdutoDAO produtoDAO   = new ProdutoDAO();
            var        listaProduto = produtoDAO.GetAll();

            LoteDAO loteDAO    = new LoteDAO();
            var     listaLote  = loteDAO.GetAll();
            var     filtroLote = new List <Lote>();
            foreach (var item in listaLote)
            {
                if (item.ValidadeLote.Equals(dataValidade))
                {
                    filtroLote.Add(item);
                }
            }

            CategoriaDAO categoriaDAO    = new CategoriaDAO();
            var          listaCategoria  = categoriaDAO.GetAll();
            var          filtroCategoria = new List <CategoriaProduto>();
            foreach (var item in listaCategoria)
            {
                if (item.NomeCategoria.Equals(nomeCategoria))
                {
                    filtroCategoria.Add(item);
                }
            }
            #endregion

            //Retorna Grafico de Colunas
            //Esse grafico retorna a quantidade de produtos totais.
            //Com ele podemos criar um ranking de produto para verificar o que mais é vendido, tornando mais dificil de vencer no estoque
            //Pois tem alta rotatividade

            #region DADOS GRAFICO DE RANKING DE PRODUTOS (BARRA)

            //var resultQuery = from l in listaLote
            //                  join p in listaProduto
            //                  on l.Produto_CodigoProduto equals p.CodigoProduto
            //                  group l by new { p.NomeProduto } into g
            //                  select new
            //                  {
            //                      NomeProduto = g.Key.NomeProduto,
            //                      QuantidadeProduto = g.Sum(x => x.QuantidadeProduto)
            //                  };

            //foreach (var item in resultQuery)
            //{
            //    Console.WriteLine("Produto: " + item.NomeProduto + " Quantidade: " + item.QuantidadeProduto);
            //}
            //Console.ReadLine();

            #endregion

            //Esse relatorio pode ser filtrado pelo nome da categoria do lote e pela data de validade
            //O Mesmo vai retornar o resultado de todos os lotes daquela categoria e com aquela data
            //Esse relatorio é importate para sabermos o nome o tipo de produto que tem dentro de cada lote, quantidade e se esta proximo do vencimento

            #region RELATORIO LOTE COM FILTRO DE DATA E NOMECATEGORIA
            //if (nomeCategoria != null && dataValidade != null)
            //{
            //    var resultQuery = from l in listaLote
            //                      join p in listaProduto
            //                      on l.Produto_CodigoProduto equals p.CodigoProduto
            //                      join c in filtroCategoria
            //                      on p.Categoria_CodigoCategoria equals c.CodigoCategoria
            //                      orderby l.ValidadeLote
            //                      select new
            //                      {
            //                          l.DescricaoLote,
            //                          p.NomeProduto,
            //                          c.NomeCategoria,
            //                          l.ValidadeLote,
            //                          l.QuantidadeProduto,
            //                      };
            //    foreach (var item in resultQuery)
            //    {
            //        Console.WriteLine("Lote: " + item.DescricaoLote + " Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Validade: " + item.ValidadeLote + " Quantidade: " + item.QuantidadeProduto);
            //    }
            //    Console.ReadLine();

            //}
            //else
            //{
            //    var resultQuery = from l in listaLote
            //                      join p in listaProduto
            //                      on l.Produto_CodigoProduto equals p.CodigoProduto
            //                      join c in listaCategoria
            //                      on p.Categoria_CodigoCategoria equals c.CodigoCategoria
            //                      orderby l.ValidadeLote
            //                      select new
            //                      {
            //                          l.DescricaoLote,
            //                          p.NomeProduto,
            //                          c.NomeCategoria,
            //                          l.ValidadeLote,
            //                          l.QuantidadeProduto,
            //                      };
            //    foreach (var item in resultQuery)
            //    {
            //        Console.WriteLine("Lote: " + item.DescricaoLote + " Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Validade: " + item.ValidadeLote + " Quantidade: " + item.QuantidadeProduto);
            //    }
            //    Console.ReadLine();
            //}
            #endregion


            //RELATORIO DE PRODUTO
            // Filtros: CATEGORIA/DATA ou DATA ou TODOS OS PRODUTOS
            #region RELATORIO DE PRODUTO
            if (nomeCategoria != null && dataValidade != null)
            {
                var resultQuery = from p in listaProduto
                                  join l in filtroLote
                                  on p.CodigoProduto equals l.Produto_CodigoProduto
                                  join c in filtroCategoria
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  select new
                {
                    p.NomeProduto,
                    c.NomeCategoria,
                    p.MarcaProduto,
                    l.ValidadeLote,
                };

                foreach (var item in resultQuery)
                {
                    Console.WriteLine("Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Marca: " + item.MarcaProduto + " Validade: " + item.ValidadeLote);
                }
                Console.ReadLine();
            }
            else if (nomeCategoria == null && dataValidade != null)
            {
                var resultQuery = from p in listaProduto
                                  join l in filtroLote
                                  on p.CodigoProduto equals l.Produto_CodigoProduto
                                  join c in listaCategoria
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  select new
                {
                    p.NomeProduto,
                    c.NomeCategoria,
                    p.MarcaProduto,
                    l.ValidadeLote,
                };

                foreach (var item in resultQuery)
                {
                    Console.WriteLine("Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Marca: " + item.MarcaProduto + " Validade: " + item.ValidadeLote);
                }
                Console.ReadLine();
            }
            else if (nomeCategoria == null && dataValidade == null)
            {
                var todosLote       = loteDAO.GetAll();
                var todosProdutos   = produtoDAO.GetAll();
                var todasCategorias = categoriaDAO.GetAll();

                var resultQuery = from p in todosProdutos
                                  join l in todosLote
                                  on p.CodigoProduto equals l.Produto_CodigoProduto
                                  join c in todasCategorias
                                  on p.Categoria_CodigoCategoria equals c.CodigoCategoria
                                  select new
                {
                    p.NomeProduto,
                    c.NomeCategoria,
                    p.MarcaProduto,
                    l.ValidadeLote,
                };

                foreach (var item in resultQuery)
                {
                    Console.WriteLine("Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Marca: " + item.MarcaProduto + " Validade: " + item.ValidadeLote);
                }
                Console.ReadLine();
            }
            #endregion
        }
 public static List <Lote> ListarLotesEmEstoquePorProduto(Produto produto)
 {
     return(LoteDAO.ListarLotesEmEstoquePorProduto(produto));
 }
 public static List <Lote> ListarLotesEmEstoquePorDataDeVencimento(DateTime dataDeVencimento)
 {
     return(LoteDAO.ListarLotesEmEstoquePorDataDeVencimento(dataDeVencimento));
 }
Exemple #30
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);
        }