Ejemplo n.º 1
0
        public List <EstoqueProduto> ListarEstoqueProduto(string strNomeCampo, string strTipoCampo, string strValor, string strOrdem)
        {
            try
            {
                AbrirConexao();

                string strSQL = "select * from [VW_ESTOQUE]";

                if (strValor != "")
                {
                    strSQL = strSQL + " Where " + MontaFiltro(strNomeCampo, strTipoCampo, strValor);
                }

                if (strOrdem != "")
                {
                    strSQL = strSQL + " Order By " + strOrdem;
                }

                Cmd = new SqlCommand(strSQL, Con);

                Dr = Cmd.ExecuteReader();

                List <EstoqueProduto> lista = new List <EstoqueProduto>();


                Habil_TipoDAL rx = new Habil_TipoDAL();
                Habil_Tipo    px = new Habil_Tipo();

                while (Dr.Read())
                {
                    EstoqueProduto p = new EstoqueProduto();

                    p.CodigoIndice            = Convert.ToInt32(Dr["CD_INDEX"]);
                    p.CodigoEmpresa           = Convert.ToInt32(Dr["CD_EMPRESA"]);
                    p.CodigoIndiceLocalizacao = Convert.ToInt32(Dr["CD_INDEX_LOCALIZACAO"]);
                    p.CodigoLocalizacao       = Convert.ToString(Dr["CD_LOCALIZACAO"]);
                    p.CodigoProduto           = Convert.ToInt32(Dr["CD_PRODUTO"]);
                    p.CodigoLote        = Convert.ToInt32(Dr["CD_LOTE"]);
                    p.Quantidade        = Convert.ToDecimal(Dr["QUANTIDADE"]);
                    p.CodigoSituacao    = Convert.ToInt32(Dr["CD_SITUACAO"]);
                    p.NomeEmpresa       = Convert.ToString(Dr["NM_PESSOA"]);
                    p.NomeProduto       = Convert.ToString(Dr["NM_PRODUTO"]);
                    p.DescricaoSituacao = Convert.ToString(Dr["DS_SITUACAO"]);

                    lista.Add(p);
                }



                return(lista);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Listar Estoques: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 2
0
        public void EstoqueIndiceProduto(int intCodEmpresa, int intCodProduto, int intCodLocalizacao, int intCodLote, ref decimal refQtd)
        {
            try
            {
                AbrirConexao();

                strSQL = "select QUANTIDADE from [VW_ESTOQUE] WHERE CD_EMPRESA = @v1 AND CD_PRODUTO = @v2 AND CD_INDEX_LOCALIZACAO = @v3 AND CD_LOTE = @v4";
                Cmd    = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v1", intCodEmpresa);
                Cmd.Parameters.AddWithValue("@v2", intCodProduto);
                Cmd.Parameters.AddWithValue("@v3", intCodLocalizacao);
                Cmd.Parameters.AddWithValue("@v4", intCodLote);

                Dr = Cmd.ExecuteReader();

                EstoqueProduto p;

                while (Dr.Read())
                {
                    p = new EstoqueProduto();

                    refQtd = Convert.ToDecimal(Dr["QUANTIDADE"]);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Listar Estoque : " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 3
0
        public List <EstoqueProduto> ListarEstoque2(int strNomeEmpresa, int strNomeProtuto)
        {
            try
            {
                AbrirConexao();

                string strSQL = "Select CD_LOTE from [VW_ESTOQUE] Where CD_EMPRESA = @V1 AND CD_PRODUTO = @v2";

                Cmd = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v1", strNomeEmpresa);
                Cmd.Parameters.AddWithValue("@v2", strNomeProtuto);

                Dr = Cmd.ExecuteReader();

                List <EstoqueProduto> lista = new List <EstoqueProduto>();

                while (Dr.Read())
                {
                    EstoqueProduto p = new EstoqueProduto();

                    p.CodigoLote = Convert.ToInt32(Dr["CD_LOTE"]);

                    lista.Add(p);
                }
                return(lista);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Listar Estoque : " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 4
0
        public void Atualizar(EstoqueProduto p)
        {
            try
            {
                AbrirConexao();

                strSQL = "update [ESTOQUE] set [CD_EMPRESA] = @v1, [CD_LOCALIZACAO] = @v2, [CD_PRODUTO] = @v3, [CD_LOTE] = @v4, [QUANTIDADE] = @v5, [CD_SITUACAO] = @v6 Where [CD_INDEX] = @v7";
                Cmd    = new SqlCommand(strSQL, Con);

                Cmd.Parameters.AddWithValue("@v7", p.CodigoIndice);
                Cmd.Parameters.AddWithValue("@v1", p.CodigoEmpresa);
                Cmd.Parameters.AddWithValue("@v2", p.CodigoIndiceLocalizacao);
                Cmd.Parameters.AddWithValue("@v3", p.CodigoProduto);
                Cmd.Parameters.AddWithValue("@v4", p.CodigoLote);
                Cmd.Parameters.AddWithValue("@v5", p.Quantidade);
                Cmd.Parameters.AddWithValue("@v6", p.CodigoSituacao);
                p.CodigoIndice = Convert.ToInt32(Cmd.ExecuteScalar());
                Cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao atualizar o Estoque: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            ViewMethods    vm = new ViewMethods();
            EstoqueProduto ep = new EstoqueProduto();
            ListaVendedore lv = new ListaVendedore();

            Vendedor vendedor1 = new Vendedor("Jhonata", "Simonetto");
            Produto  p1        = new Produto("Apple", 100.00m, 10);

            lv.AdicionarVendedor(vendedor1);
            ep.AdicionarEstoque(p1);

            vm.VenderProduto(5, 10, p1, vendedor1);


            Console.WriteLine("Tecle:" +
                              "\n1 Para cadastrar Produto//" +
                              "\n2 Para Cadastrar vendedor//" +
                              "\n3 Listar todos produtos//" +
                              "\n4 Listar todos vendedors//" +
                              "\n5 Para realizar venda de um produto ja cadastrado//");

            string opcao = Convert.ToString(Console.ReadLine());

            //add method while and trim to clean
            if (opcao == "1")
            {
                Console.WriteLine("Digite o nome do Produto: ");
                string nomeProduto = Console.ReadLine();
                Console.WriteLine("Digite o valor do Produto: ");
                decimal valorProduto = Convert.ToDecimal(Console.ReadLine());
                Console.WriteLine("Digite a quantidade em estoque: ");
                int     quantidadeProduto = Convert.ToInt32(Console.ReadLine());
                Produto p = new Produto(nomeProduto, valorProduto, quantidadeProduto);
                ep.AdicionarEstoque(p);
                Console.ReadKey();
            }
            else if (opcao == "2")
            {
                Console.WriteLine("Digite o primeiro nome do Vendedor: ");
                string nomeVendedor = Console.ReadLine();
                Console.WriteLine("Digite o ultimo nome do Vendedor: ");
                string   sobrenomeVendedor = Console.ReadLine();
                Vendedor v = new Vendedor(nomeVendedor, sobrenomeVendedor);
                lv.AdicionarVendedor(v);
                Console.ReadKey();
            }
            else if (opcao == "3")
            {
                Console.WriteLine(ep.ToString());
                Console.ReadKey();
            }
            else if (opcao == "4")
            {
                Console.WriteLine(lv.ToString());
                Console.ReadKey();
            }

            //Console.ReadKey();
        }
Ejemplo n.º 6
0
        public bool AdicionarProduto(EstoqueProduto dados)
        {
            var  db = _Connection();
            bool retorno;

            using (var con = new SqlConnection(db))
            {
                try
                {
                    var query = @"UPDATE Produtos
                                       SET Estoque = @idEstoque
                                     WHERE Id = @idProduto";
                    con.Open();
                    var retornoConsulta = con.Execute(query, dados);
                    if (retornoConsulta >= 1)
                    {
                        retorno = true;
                    }
                    else
                    {
                        retorno = false;
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    con.Close();
                }
            }

            return(retorno);
        }
Ejemplo n.º 7
0
        static void Main(string[] args)
        {
            EstoqueProduto produto = new EstoqueProduto("TV", 500.00, 5);

            produto.NomeDoProduto = "Notebook";
            Console.WriteLine(produto.NomeDoProduto);

            /*Console.WriteLine("Entre com os dados do produto:");
             * Console.Write("Nome: ");
             * string nomeDoProduto = Console.ReadLine();
             * Console.Write("Preco: ");
             * double precoDoProduto = double.Parse(Console.ReadLine());
             *
             * EstoqueProduto dados = new EstoqueProduto(nomeDoProduto, precoDoProduto);
             *
             * Console.WriteLine($"Dados do produto: {dados}");
             *
             * Console.Write("Digite o número de produtos a ser adicionado ao estoque: ");
             * int quantidade = int.Parse(Console.ReadLine());
             * dados.AdicionarProduto(quantidade);
             * Console.WriteLine($"Dados Atualizados: {dados}");
             *
             * Console.Write("Digite o número de produtos a ser removido ao estoque: ");
             * quantidade = int.Parse(Console.ReadLine());
             * dados.RemoverProduto(quantidade);
             * Console.WriteLine($"Dados atualizados: {dados}");*/
        }
Ejemplo n.º 8
0
        public List <EstoqueProduto> RetornarListaEstoque()
        {
            var listaProdutosEstoque = (from p in _context.Produto
                                        join pe in _context.ProdutoEstoque on p.Id equals pe.ProdutoId
                                        orderby p.Nome
                                        select new
            {
                p.Id,
                p.Nome,
                pe.EstoqueId
            }).ToList();



            List <EstoqueProduto> lista = new List <EstoqueProduto>();
            EstoqueProduto        item;

            foreach (var ls in listaProdutosEstoque)
            {
                item      = new EstoqueProduto();
                item.Id   = Convert.ToInt32(ls.Id);
                item.Nome = ls.Nome.ToString();

                var qtde = _context.Estoque.FirstOrDefault(m => m.Id == ls.EstoqueId).Quantidade;

                item.Quantidade = qtde;


                lista.Add(item);
            }

            return(lista);
        }
Ejemplo n.º 9
0
        public ActionResult DeleteConfirmed(int id)
        {
            EstoqueProduto estoqueProduto = db.EstoqueProduto.Find(id);

            db.EstoqueProduto.Remove(estoqueProduto);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 10
0
        public void ObterQuantidadeTotal(int intCodEmpresa, int intCodProduto, int intCodLocalizacao, int intCodLote, ref decimal refQtdTotal)
        {
            try
            {
                AbrirConexao();

                strSQL = "select ISNULL(SUM(QUANTIDADE),0) AS QUANTIDADE from VW_ESTOQUE  WHERE CD_SITUACAO = 128";
                strSQL = strSQL + "AND CD_EMPRESA = @v1";
                if (intCodProduto != 0)
                {
                    strSQL = strSQL + " AND CD_PRODUTO = @v2";
                }
                if (intCodLocalizacao != 0)
                {
                    strSQL = strSQL + " AND CD_INDEX_LOCALIZACAO = @v3";
                }
                if (intCodLote != 0)
                {
                    strSQL = strSQL + " AND CD_LOTE = @v4";
                }

                Cmd = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v1", intCodEmpresa);
                if (intCodProduto != 0)
                {
                    Cmd.Parameters.AddWithValue("@v2", intCodProduto);
                }
                if (intCodLocalizacao != 0)
                {
                    Cmd.Parameters.AddWithValue("@v3", intCodLocalizacao);
                }
                if (intCodLote != 0)
                {
                    Cmd.Parameters.AddWithValue("@v4", intCodLote);
                }

                Dr = Cmd.ExecuteReader();

                EstoqueProduto p = null;

                if (Dr.Read())
                {
                    p = new EstoqueProduto();

                    refQtdTotal = Convert.ToDecimal(Dr["QUANTIDADE"]);
                }
                return;
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Pesquisar Estoque: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 11
0
        public bool Create([Bind(Include = "ID,ProdutoID,QtdeTotalEstoque,CustoTotalEstoque")] EstoqueProduto estoqueProduto)
        {
            if (ModelState.IsValid)
            {
                db.EstoqueProdutos.Add(estoqueProduto);
                db.SaveChanges();
                return(true);
            }

            return(false);
        }
Ejemplo n.º 12
0
        public bool RemoverItem(EstoqueProduto dados)
        {
            if (dados.IdEstoque >= 1)
            {
                dados.IdEstoque = 0;
            }

            var result = _estoque.RemoverProduto(dados);

            return(result);
        }
Ejemplo n.º 13
0
 public IActionResult Put(int id, [FromBody] EstoqueProduto estoqueProduto)
 {
     try
     {
         _repo.Editar(estoqueProduto);
         return(Ok(_repo.SelecionarTudo()));
     }
     catch (System.Exception)
     {
         return(StatusCode(500));
     }
 }
Ejemplo n.º 14
0
        private void GravarEstoqueProduto(ItemOrdemDeCompra item)
        {
            var ep = new EstoqueProduto();

            ep.IdProduto        = item.IdProduto.Value;
            ep.IdOrdemCompra    = this.Id;
            ep.DataMovimentacao = DateTime.Now;
            ep.IdHistorico      = 3;        //Ordem de Compra
            ep.ValorUnitario    = item.ValorUnitario;

            db.EstoqueProduto.Add(ep);
            db.SaveChanges();
        }
Ejemplo n.º 15
0
 public ActionResult Edit([Bind(Include = "Id,IdProduto,IdOrdemCompra,IdOrdemServico,DataMovimentacao,IdHistorico,ValorUnitario")] EstoqueProduto estoqueProduto)
 {
     if (ModelState.IsValid)
     {
         db.Entry(estoqueProduto).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IdHistorico   = new SelectList(db.HistoricoEstoque, "Id", "Descricao", estoqueProduto.IdHistorico);
     ViewBag.IdOrdemCompra = new SelectList(db.OrdemCompra, "Id", "DescricaoCurta", estoqueProduto.IdOrdemCompra);
     ViewBag.IdProduto     = new SelectList(db.Produto, "Id", "Descricao", estoqueProduto.IdProduto);
     return(View(estoqueProduto));
 }
Ejemplo n.º 16
0
        // GET: EstoqueProduto/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EstoqueProduto estoqueProduto = db.EstoqueProduto.Find(id);

            if (estoqueProduto == null)
            {
                return(HttpNotFound());
            }
            return(View(estoqueProduto));
        }
Ejemplo n.º 17
0
        public bool Edit([Bind(Include = "ID,ProdutoID,QtdeTotalEstoque,CustoTotalEstoque")] EstoqueProduto estoqueProduto)
        {
            EstoqueProduto estoqueProdutoEditar = db.EstoqueProdutos.Find(estoqueProduto.ID);

            estoqueProdutoEditar.QtdeTotalEstoque  = estoqueProduto.QtdeTotalEstoque;
            estoqueProdutoEditar.CustoTotalEstoque = estoqueProduto.CustoTotalEstoque;

            if (ModelState.IsValid)
            {
                db.Entry(estoqueProdutoEditar).State = EntityState.Modified;
                db.SaveChanges();
                return(true);
            }
            return(false);
        }
Ejemplo n.º 18
0
        public ActionResult <EstoqueProduto> GetEstoqueProduto([FromHeader] string ibge, int produto, int unidade, int produtor, string lote)
        {
            try
            {
                ibge = _config.GetConnectionString(Connection.GetConnection(ibge));
                EstoqueProduto item = _produtoRepository.GetEstoqueImunobiologicoByParams(ibge, produto, unidade, produtor, lote);

                return(Ok(item));
            }
            catch (Exception ex)
            {
                var response = TrataErro.GetResponse(ex.Message, true);
                return(StatusCode((int)HttpStatusCode.InternalServerError, response));
            }
        }
Ejemplo n.º 19
0
        public PartialViewResult QuantidadeEstoqueP(int?id)
        {
            EstoqueProduto       ep = new EstoqueProduto();
            ApplicationDbContext ex = new ApplicationDbContext();

            if (ex.EstoqueProdutos.Where(x => x.ProdutoId == id).FirstOrDefault() != null)
            {
                ViewBag.Quantidade = ex.EstoqueProdutos.Where(x => x.ProdutoId == id).Sum(x => x.Quantidade);
            }
            else
            {
                ViewBag.Quantidade = 0;
            }

            return(PartialView());
        }
Ejemplo n.º 20
0
        public void Devolver(List <DevolucaoVenda> devolucaoVenda)
        {
            Parallel.ForEach(devolucaoVenda, async t =>
            {
                EstoqueProduto estoqueProduto = await _estoqueProdutoService.GetEstoqueProdutoByProdutoIdAsync(t.ProdutoId);
                VendaProduto vendaProd        = new VendaProduto();
                vendaProd = (t.VendaProduto is null)
                ? await _vendaProdutoService.GetByIdAsync(t.VendaProdutoId)
                : t.VendaProduto;
                estoqueProduto.QuantidadeProduto = estoqueProduto.QuantidadeProduto + vendaProd.QuantidadeVedida;

                EntradaProdutoEstoque entradaProdutoEstoque = new EntradaProdutoEstoque(t.ProdutoId, estoqueProduto.EstoqueId);
                _entradaProdutoEstoqueService.AddAsync(entradaProdutoEstoque);

                AddAsync(t);
            });
        }
        public void Devolver(List <DevolucaoCompra> devolucaoCompra)
        {
            Parallel.ForEach(devolucaoCompra, async t =>
            {
                EstoqueProduto estoqueProduto = await _estoqueProdutoService.GetEstoqueProdutoByProdutoIdAsync(t.ProdutoId);
                CompraProduto compProd        = new CompraProduto();
                compProd = (t.CompraProduto is null)
                ? await _compraProdutoService.GetByIdAsync(t.CompraProdutoId)
                : t.CompraProduto;
                estoqueProduto.QuantidadeProduto = estoqueProduto.QuantidadeProduto - compProd.QuantidadeComprada;

                SaidaProdutoEstoque saidaProdutoEstoque = new SaidaProdutoEstoque(t.ProdutoId, estoqueProduto.EstoqueId, compProd.QuantidadeComprada);
                _saidaProdutoEstoqueService.AddAsync(saidaProdutoEstoque);

                AddAsync(t);
            });
        }
Ejemplo n.º 22
0
        public async void Enviado(VendaProduto vendaProduto, Guid estoqueId)
        {
            EstoqueProduto estoqueProdutoService = await _estoqueProdutoService.GetEstoqueProdutoByProdutoIdAsync(vendaProduto.ProdutoId);

            if (estoqueProdutoService is null)
            {
                throw (new Exception("Por favor, cadastre o produto nesse estoque, depois realize a operação de envio!"));
            }
            estoqueProdutoService.QuantidadeProduto = estoqueProdutoService.QuantidadeProduto - vendaProduto.QuantidadeVedida;
            VendaProduto vendaProdutoAntiga = await this.GetByIdAsync(vendaProduto.Id);

            vendaProdutoAntiga.Enviado = true;

            SaidaProdutoEstoque entradaProdutoEstoque = new SaidaProdutoEstoque(vendaProduto.ProdutoId, estoqueId, vendaProduto.QuantidadeVedida);

            _saidaProdutoEstoqueService.Add(entradaProdutoEstoque);
        }
Ejemplo n.º 23
0
        // GET: EstoqueProduto/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EstoqueProduto estoqueProduto = db.EstoqueProduto.Find(id);

            if (estoqueProduto == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IdHistorico   = new SelectList(db.HistoricoEstoque, "Id", "Descricao", estoqueProduto.IdHistorico);
            ViewBag.IdOrdemCompra = new SelectList(db.OrdemCompra, "Id", "DescricaoCurta", estoqueProduto.IdOrdemCompra);
            ViewBag.IdProduto     = new SelectList(db.Produto, "Id", "Descricao", estoqueProduto.IdProduto);
            return(View(estoqueProduto));
        }
Ejemplo n.º 24
0
        public async void Recebido(CompraProduto compraProduto, Guid estoqueId)
        {
            EstoqueProduto estoqueProdutoService = await _estoqueProdutoService.GetEstoqueProdutoByProdutoIdAsync(compraProduto.ProdutoId);

            if (estoqueProdutoService is null)
            {
                throw (new Exception("Por favor, cadastre o produto nesse estoque, depois realize a operação de recebimento!"));
            }
            estoqueProdutoService.QuantidadeProduto += compraProduto.QuantidadeComprada;
            CompraProduto compraProdutoAntiga = await this.GetByIdAsync(compraProduto.Id);

            compraProdutoAntiga.IsRecebido = true;

            EntradaProdutoEstoque entradaProdutoEstoque = new EntradaProdutoEstoque(compraProduto.ProdutoId, estoqueId);

            _entradaProdutoEstoqueService.Add(entradaProdutoEstoque);
        }
Ejemplo n.º 25
0
        public void Inserir(EstoqueProduto p)
        {
            try
            {
                AbrirConexao();

                strSQL = "insert into [ESTOQUE] (CD_EMPRESA, CD_LOCALIZACAO, CD_PRODUTO, CD_LOTE, QUANTIDADE, CD_SITUACAO )" +
                         " values (@v1, @v2, @v3, @v4, @v5, @v6)";
                Cmd = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v1", p.CodigoEmpresa);
                Cmd.Parameters.AddWithValue("@v2", p.CodigoIndiceLocalizacao);
                Cmd.Parameters.AddWithValue("@v3", p.CodigoProduto);
                Cmd.Parameters.AddWithValue("@v4", p.CodigoLote);
                Cmd.Parameters.AddWithValue("@v5", p.Quantidade);
                Cmd.Parameters.AddWithValue("@v6", p.CodigoSituacao);
                p.CodigoIndice = Convert.ToInt32(Cmd.ExecuteScalar());
            }
            catch (SqlException ex)
            {
                if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error
                {
                    switch (ex.Errors[0].Number)
                    {
                    case 2601:     // Primary key violation
                        throw new DuplicateNameException("Inclusão não Permitida!!! Chave já consta no Banco de Dados. Mensagem :" + ex.Message.ToString(), ex);

                    case 2627:     // Primary key violation
                        throw new DuplicateNameException("Inclusão não Permitida!!! Chave já consta no Banco de Dados. Mensagem :" + ex.Message.ToString(), ex);

                    default:
                        throw new Exception("Erro ao Incluir Estoque: " + ex.Message.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao gravar PIS: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 26
0
        public EstoqueProduto PesquisarEstoqueParaInventario(decimal decIndice)
        {
            try
            {
                AbrirConexao();
                strSQL = "Select * from [VW_ESTOQUE] Where CD_INDEX = @v1";
                Cmd    = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v1", decIndice);

                Dr = Cmd.ExecuteReader();

                EstoqueProduto p = null;

                if (Dr.Read())
                {
                    p = new EstoqueProduto();

                    p.CodigoIndice            = Convert.ToInt32(Dr["CD_INDEX"]);
                    p.CodigoEmpresa           = Convert.ToInt32(Dr["CD_EMPRESA"]);
                    p.CodigoIndiceLocalizacao = Convert.ToInt32(Dr["CD_INDEX_LOCALIZACAO"]);
                    p.CodigoLocalizacao       = Convert.ToString(Dr["CD_LOCALIZACAO"]);
                    p.CodigoProduto           = Convert.ToInt32(Dr["CD_PRODUTO"]);
                    p.CodigoLote        = Convert.ToInt32(Dr["CD_LOTE"]);
                    p.Quantidade        = Convert.ToDecimal(Dr["QUANTIDADE"]);
                    p.CodigoSituacao    = Convert.ToInt32(Dr["CD_SITUACAO"]);
                    p.NomeEmpresa       = Convert.ToString(Dr["CD_PESSOA"]);
                    p.NomeProduto       = Convert.ToString(Dr["NM_PRODUTO"]);
                    p.DescricaoSituacao = Convert.ToString(Dr["DS_SITUACAO"]);
                }

                return(p);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Pesquisar Estoque: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 27
0
        public EstoqueProduto LerEstoque(int empresa, string localizacao, int produto, int lote)
        {
            try
            {
                AbrirConexao();
                strSQL = "Select * from [VW_ESTOQUE] Where CD_EMPRESA = @V1 AND CD_INDEX_LOCALIZACAO = @v2 AND CD_PRODUTO = @v3 AND CD_LOTE = @v4";
                Cmd    = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v1", empresa);
                Cmd.Parameters.AddWithValue("@v2", localizacao);
                Cmd.Parameters.AddWithValue("@v3", produto);
                Cmd.Parameters.AddWithValue("@v4", lote);

                Dr = Cmd.ExecuteReader();

                EstoqueProduto p = null;

                if (Dr.Read())
                {
                    p = new EstoqueProduto();


                    p.CodigoEmpresa     = Convert.ToInt32(Dr["CD_EMPRESA"]);
                    p.CodigoLocalizacao = Convert.ToString(Dr["CD_LOCALIZACAO"]);
                    p.CodigoProduto     = Convert.ToInt32(Dr["CD_PRODUTO"]);
                    p.CodigoLote        = Convert.ToInt32(Dr["CD_LOTE"]);
                }

                return(p);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Pesquisar Estoque: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Ejemplo n.º 28
0
        public ActionResult Create([Bind(Include = "ID,DataProducao,ValorVendaUnitario,ProdutoID,QtdeInicial,QtdeDisponivel,CustoMedio,CustoTotalInicial,Validade,_Produto")] LoteProduto loteProduto)
        {
            if (ModelState.IsValid)
            {
                // Verificando se há insumos necessários suficientes em estoque

                bool insumosDisponiveis = true;

                Produto produto = db.Produtos.Find(loteProduto.ProdutoID);

                foreach (InsumoComposicaoProduto item in produto._ComposicaoProduto)
                {
                    double qtdeInsumo        = item.QtdeInsumo * loteProduto.QtdeInicial;
                    double qtdeEstoqueInsumo = db.EstoqueInsumos.Where(m => m.InsumoID.Equals(item.InsumoID)).Sum(m => m.QtdeTotalEstoque);

                    if (qtdeInsumo > qtdeEstoqueInsumo)
                    {
                        insumosDisponiveis = false;
                    }
                }

                if (insumosDisponiveis)
                {
                    // Cria loteProduto no banco, depois vai ser alterado para incluir atributos faltantes sobre o custo

                    loteProduto.QtdeDisponivel = loteProduto.QtdeInicial;
                    db.LotesProdutos.Add(loteProduto);
                    db.SaveChanges();

                    double custoTotalLoteProduto = 0;

                    List <LoteInsumoProducao> lotesComposicaoProduto = new List <LoteInsumoProducao>();

                    // Percorre composição de Produto para encontrar os insumos necessário
                    foreach (InsumoComposicaoProduto item in loteProduto._Produto._ComposicaoProduto)
                    {
                        EstoqueInsumo estoqueInsumo = db.EstoqueInsumos.Where(e => e.InsumoID == item.InsumoID).FirstOrDefault();

                        double qtdeInsumo = item.QtdeInsumo * loteProduto.QtdeInicial;

                        while (qtdeInsumo > 0)
                        {
                            // Procura o Lote de Insumo que tenha estoque para e que esteja com a validade mais próxima
                            LoteInsumo loteDisponivel = db.LotesInsumos.
                                                        Where(l => l.InsumoID == item.InsumoID && l.QtdeDisponivel > 0).
                                                        OrderBy(l => l.Validade).FirstOrDefault();

                            if ((loteDisponivel.QtdeDisponivel - qtdeInsumo) >= 0)
                            {
                                loteDisponivel.QtdeDisponivel -= qtdeInsumo;
                                LotesInsumosController lic = new LotesInsumosController();
                                lic.Edit(loteDisponivel);

                                LoteInsumoProducao loteInsumoProducao = new LoteInsumoProducao()
                                {
                                    QtdeInsumo       = qtdeInsumo,
                                    CustoTotalInsumo = qtdeInsumo * loteDisponivel.CustoMedio,
                                    LoteInsumoID     = loteDisponivel.ID,
                                    LoteProdutoID    = loteProduto.ID
                                };

                                MovimentacaoEstoqueInsumo movimentacaoEstoqueInsumo = new MovimentacaoEstoqueInsumo()
                                {
                                    DataMovimentacao  = loteProduto.DataProducao,
                                    Qtde              = -qtdeInsumo,
                                    ValorMovimentacao = loteDisponivel.CustoMedio * qtdeInsumo,
                                    LoteInsumoID      = loteDisponivel.ID
                                };

                                MovimentacoesEstoqueInsumosController meic = new MovimentacoesEstoqueInsumosController();
                                meic.Create(movimentacaoEstoqueInsumo);

                                estoqueInsumo.QtdeTotalEstoque  -= loteInsumoProducao.QtdeInsumo;
                                estoqueInsumo.CustoTotalEstoque -= loteInsumoProducao.CustoTotalInsumo;

                                EstoqueInsumosController eic = new EstoqueInsumosController();
                                eic.Edit(estoqueInsumo);

                                lotesComposicaoProduto.Add(loteInsumoProducao);
                                qtdeInsumo             = 0;
                                custoTotalLoteProduto += loteInsumoProducao.CustoTotalInsumo;
                            }
                            else
                            {
                                LoteInsumoProducao loteInsumoProducao = new LoteInsumoProducao()
                                {
                                    QtdeInsumo       = loteDisponivel.QtdeDisponivel,
                                    CustoTotalInsumo = loteDisponivel.QtdeDisponivel * loteDisponivel.CustoMedio,
                                    LoteInsumoID     = loteDisponivel.ID,
                                    LoteProdutoID    = loteProduto.ID
                                };

                                MovimentacaoEstoqueInsumo movimentacaoEstoqueInsumo = new MovimentacaoEstoqueInsumo()
                                {
                                    DataMovimentacao  = loteProduto.DataProducao,
                                    Qtde              = -loteDisponivel.QtdeDisponivel,
                                    ValorMovimentacao = loteDisponivel.CustoMedio * loteDisponivel.QtdeDisponivel,
                                    LoteInsumoID      = loteDisponivel.ID
                                };

                                MovimentacoesEstoqueInsumosController meic = new MovimentacoesEstoqueInsumosController();
                                meic.Create(movimentacaoEstoqueInsumo);

                                estoqueInsumo.QtdeTotalEstoque  -= loteInsumoProducao.QtdeInsumo;
                                estoqueInsumo.CustoTotalEstoque -= loteInsumoProducao.CustoTotalInsumo;

                                EstoqueInsumosController eic = new EstoqueInsumosController();
                                eic.Edit(estoqueInsumo);

                                lotesComposicaoProduto.Add(loteInsumoProducao);
                                qtdeInsumo            -= loteDisponivel.QtdeDisponivel;
                                custoTotalLoteProduto += loteInsumoProducao.CustoTotalInsumo;

                                loteDisponivel.QtdeDisponivel = 0;
                                LotesInsumosController lic = new LotesInsumosController();
                                lic.Edit(loteDisponivel);
                            }
                        }
                    }

                    loteProduto.CustoTotalInicial = custoTotalLoteProduto;
                    loteProduto.CustoMedio        = custoTotalLoteProduto / loteProduto.QtdeInicial;
                    db.Entry(loteProduto).State   = EntityState.Modified;

                    db.LotesInsumosProducao.AddRange(lotesComposicaoProduto);
                    db.SaveChanges();

                    MovimentacaoEstoqueProduto movimentacaoEstoqueProduto = new MovimentacaoEstoqueProduto()
                    {
                        DataMovimentacao  = loteProduto.DataProducao,
                        Qtde              = loteProduto.QtdeInicial,
                        ValorMovimentacao = loteProduto.CustoTotalInicial,
                        LoteProdutoID     = loteProduto.ID
                    };

                    MovimentacoesEstoqueProdutosController mepc = new MovimentacoesEstoqueProdutosController();
                    if (mepc.Create(movimentacaoEstoqueProduto))
                    {
                        EstoqueProdutosController epc = new EstoqueProdutosController();

                        var x = db.EstoqueProdutos.Where(e => e.ProdutoID == loteProduto.ProdutoID).FirstOrDefault();

                        if (x != null)
                        {
                            EstoqueProduto estoqueProduto = x;

                            estoqueProduto.QtdeTotalEstoque  += loteProduto.QtdeInicial;
                            estoqueProduto.CustoTotalEstoque += loteProduto.CustoTotalInicial;

                            epc.Edit(estoqueProduto);
                        }
                        else
                        {
                            EstoqueProduto estoqueProduto = new EstoqueProduto()
                            {
                                QtdeTotalEstoque  = loteProduto.QtdeInicial,
                                CustoTotalEstoque = loteProduto.CustoTotalInicial,
                                ProdutoID         = loteProduto.ProdutoID
                            };

                            if (!epc.Create(estoqueProduto))
                            {
                                return(View());
                            }
                        }

                        return(RedirectToAction("Index"));
                    }
                }
            }

            ViewBag.ProdutoID = new SelectList(db.Produtos, "ProdutoID", "Nome", loteProduto.ProdutoID);
            return(View(loteProduto));
        }
Ejemplo n.º 29
0
        public bool AdicionaItem(EstoqueProduto dados)
        {
            var result = _estoque.AdicionarProduto(dados);

            return(result);
        }