예제 #1
0
        public void ProdutoRepository_Atualizar_DeveRetornarOk()
        {
            //Cenário
            int     id      = 1;
            Produto produto = ObjectMother.getValidoProduto();

            produto.Id = id;

            //Acão
            produto = _produtoRepository.Atualizar(produto);

            //Verificar
            produto.Id.Should().Be(produto.Id);
        }
예제 #2
0
        public string Salvar(ProdutoModel model)
        {
            if (!ValidaProduto(model))
            {
                return("AVISO");
            }

            bool salvou = false;

            try
            {
                if (model.Id == 0)
                {
                    salvou = produtoRepository.Salvar(model);
                }
                else
                {
                    salvou = produtoRepository.Atualizar(model);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            return("OK");
        }
예제 #3
0
        public IActionResult Aprovar(ulong id)
        {
            var pedido = produtoRepository.ObterPor(id);

            if (produtoRepository.Atualizar(pedido))
            {
                return(RedirectToAction("Dashboard", "Administrador"));
            }
            else
            {
                return(View("Erro", new RespostasViewModel("Não foi possível aprovar este pedido")
                {
                    NomeView = "Dashdoard",
                    UsuarioEmail = ObterUsuarioSession(),
                    UsuarioNome = ObterUsuarioNomeSession()
                }));
            }
        }
예제 #4
0
 public ActionResult Edit([Bind(Include = "Id,Descricao,Categoria,Preco")] Produto produto)
 {
     if (ModelState.IsValid)
     {
         _produtoRepository.Atualizar(produto);
         return(RedirectToAction("Index"));
     }
     return(View(produto));
 }
예제 #5
0
        public async Task <IActionResult> PutProduto(int id, Produto produto)
        {
            if (id != produto.Id)
            {
                return(BadRequest());
            }

            _produtoRepository.Atualizar(produto);
            return(Ok(produto));
        }
예제 #6
0
        public void Atualizar(ProdutoDao produtoDao)
        {
            try
            {
                ValidarAtualizar(produtoDao);

                produtoRepository.Atualizar(produtoDao.ToBd());
            }
            catch (BusinessException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                logRepository.Incluir(new Log()
                {
                    Descricao = ex.ToString(), DataHora = DateTime.Now
                });

                throw ex;
            }
        }
예제 #7
0
        public void Atualizar(Produto produto)
        {
            ProdutoRepository repository = new ProdutoRepository();

            try
            {
                repository.AbrirConexao();
                repository.Atualizar(produto);
            }
            catch (Exception e)
            {
                throw new Exception("Ocorreu um erro: " + e.Message);
            }
            finally
            {
                repository.FecharConexao();
            }
        }
        public void Atualizar()
        {
            try
            {
                Console.WriteLine("\n Atualização de produto!");

                Console.Write("Informe o Id do produto: ");
                var idProduto = Guid.Parse(Console.ReadLine());

                var produtoRepository = new ProdutoRepository();
                produtoRepository.ConnectionString = connectionString;

                var produto = produtoRepository.ObterPorId(idProduto);

                if (produto != null)
                {
                    Console.Write("Informe o Nome do Poduto: ");
                    produto.Nome = Console.ReadLine();

                    Console.Write("Informe o preço do Poduto: ");
                    produto.Preco = decimal.Parse(Console.ReadLine());

                    Console.Write("Informe a quantidade da Poduto: ");
                    produto.Quantidade = int.Parse(Console.ReadLine());

                    Console.Write("Informa data de validade do Poduto: ");
                    produto.DataValidade = DateTime.Parse(Console.ReadLine());

                    produtoRepository.Atualizar(produto);

                    Console.WriteLine("\n PRODUTO ATUALIZADO COM SUCESSO!");
                    Console.WriteLine("\n\n");
                }
                else
                {
                    Console.WriteLine("\n Produto no encontrado");
                    Console.WriteLine("\n\n");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("\n Erro! " + e.Message);
            }
        }
예제 #9
0
        public ActionResult <ReturnResponse> Put([FromBody] ProdutoRequest request)
        {
            var produto = ProdutoMapper.Mapper(request);

            return(ProdutoRepository.Atualizar(produto));
        }
예제 #10
0
        public void Atualizar(Produto produto)
        {
            ProdutoRepository repository = new ProdutoRepository();

            repository.Atualizar(produto);
        }
예제 #11
0
        static void Main(string[] args)
        {
            ProdutoRepository repository = new ProdutoRepository();

            try
            {
                repository.AbrirConexao();
                Console.WriteLine("\nCONTROLE DE PRODUTOS\n");
                Console.WriteLine("(1) Inserir Produto");
                Console.WriteLine("(2) Atualizar Produto");
                Console.WriteLine("(3) Excluir Produto");
                Console.WriteLine("(4) Consultar Produtos");
                Console.Write("\nEscolha a opção desejada..: ");
                int     opcao   = int.Parse(Console.ReadLine());
                Produto produto = new Produto();
                switch (opcao)
                {
                case 1:
                    Console.Write("Nome do Produto...: ");
                    produto.Nome = Console.ReadLine();
                    Console.Write("Preço do Produto..: ");
                    produto.Preco = decimal.Parse(Console.ReadLine());
                    repository.Inserir(produto);
                    Console.WriteLine("\nProduto cadastrado com sucesso.");
                    break;

                case 2:
                    Console.Write("Id do Produto.....: ");
                    produto.IdProduto = int.Parse(Console.ReadLine());
                    Console.Write("Nome do Produto...: ");
                    produto.Nome = Console.ReadLine();
                    Console.Write("Preço do Produto..: ");
                    produto.Preco = decimal.Parse(Console.ReadLine());
                    repository.Atualizar(produto);
                    Console.WriteLine("\nProduto atualizado com sucesso.");
                    break;

                case 3:
                    Console.Write("Id do Produto.....: ");
                    int idProduto = int.Parse(Console.ReadLine());
                    repository.Excluir(idProduto);
                    Console.WriteLine("\nProduto excluido com sucesso.");
                    break;

                case 4:
                    List <Produto> lista = repository.Consultar();
                    foreach (Produto item in lista)
                    {
                        Console.WriteLine("Id do Produto......: "
                                          + item.IdProduto);
                        Console.WriteLine("Nome...............: "
                                          + item.Nome);
                        Console.WriteLine("Preço..............: "
                                          + item.Preco);
                        Console.WriteLine("Data de Cadastro...: "
                                          + item.DataCadastro);
                        Console.WriteLine("...");
                    }
                    break;

                default:
                    Console.WriteLine("\nOpção inválida.");
                    break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("\nErro: " + e.Message);
            }
            finally
            {
                repository.FecharConexao();
            }
            Console.ReadKey(); //pausar..
        }
예제 #12
0
        public void ImportarXML(NotaFiscalDao notaFiscalDao, out List <string> mensagemErro, out List <string> mensagemSucesso, out int qtdNFeImportada)
        {
            try
            {
                qtdNFeImportada = 0;
                mensagemErro    = new List <string>();
                mensagemSucesso = new List <string>();

                var lojaDepositoDao = lojaRepository.Listar(new Loja()
                {
                    Deposito = true, Ativo = true
                }).FirstOrDefault();

                // se não houver loja depósito, retorna
                if (lojaDepositoDao == null)
                {
                    mensagemErro.Add("Loja de depósito não cadastrada");
                    qtdNFeImportada = 0;
                    return;
                }

                using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions()
                {
                    Timeout = TimeSpan.FromMinutes(10)
                }))
                {
                    XNamespace nsNFe = "http://www.portalfiscal.inf.br/nfe";

                    foreach (Stream item in notaFiscalDao.Arquivo)
                    {
                        var    todosProdutoAtualizados = true;
                        string xmlString = string.Empty;

                        using (StreamReader sr = new StreamReader(item))
                            xmlString = sr.ReadToEnd();

                        if (string.IsNullOrEmpty(xmlString))
                        {
                            mensagemErro.Add("XML está vazio");
                            continue;
                        }

                        XDocument xml = XDocument.Parse(xmlString, LoadOptions.None);

                        IEnumerable <XElement> noNFe = xml.Descendants(nsNFe + "NFe");

                        if (!noNFe.Any())
                        {
                            mensagemErro.Add("XML não é uma NFe (NFe)");
                            continue;
                        }

                        IEnumerable <XElement> NFe            = xml.Descendants(nsNFe + "NFe");
                        IEnumerable <XElement> NFe_infNFe     = NFe.Elements(nsNFe + "infNFe");
                        IEnumerable <XElement> NFe_infNFe_det = NFe_infNFe.Elements(nsNFe + "det");
                        IEnumerable <XElement> NFe_infNFe_ide = NFe_infNFe.Elements(nsNFe + "ide");

                        if (NFe_infNFe_det == null || NFe_infNFe_det.Count() <= 0)
                        {
                            mensagemErro.Add("XML não tem produtos (det)");
                            continue;
                        }

                        if (NFe_infNFe_ide == null)
                        {
                            mensagemErro.Add("XML não tem identificação (ide)");
                            continue;
                        }

                        var NFe_infNFe_nNF = NFe_infNFe_ide.Elements(nsNFe + "nNF").FirstOrDefault();
                        if (NFe_infNFe_nNF == null)
                        {
                            mensagemErro.Add("XML não tem número (nNF)");
                            continue;
                        }

                        int numeroNfe;
                        int.TryParse(NFe_infNFe_nNF.Value, out numeroNfe);

                        if (numeroNfe <= 0)
                        {
                            mensagemErro.Add("XML tem número inválido (nNF)");
                            continue;
                        }

                        var NFe_infNFe_dhEmi = NFe_infNFe_ide.Elements(nsNFe + "dhEmi").FirstOrDefault();
                        if (NFe_infNFe_dhEmi == null)
                        {
                            mensagemErro.Add("XML não tem data de emissão (dhEmi)");
                            continue;
                        }

                        DateTime dataEmissaoNfe;
                        DateTime.TryParse(NFe_infNFe_dhEmi.Value, out dataEmissaoNfe);

                        if (dataEmissaoNfe == DateTime.MinValue)
                        {
                            mensagemErro.Add("XML tem data de emissão inválida (dhEmi)");
                            continue;
                        }

                        var notafiscalDao = new NotaFiscalDao()
                        {
                            Numero = numeroNfe, LojaDao = new LojaDao()
                            {
                                LojaID = lojaDepositoDao.LojaID
                            }, DataEmissao = dataEmissaoNfe, DataCadastro = DateTime.Now
                        };
                        var notaFiscalId = Incluir(notafiscalDao);

                        foreach (XElement det in NFe_infNFe_det)
                        {
                            XElement NFe_infNFe_det_prod = det.Elements(nsNFe + "prod").FirstOrDefault();

                            if (NFe_infNFe_det_prod == null)
                            {
                                mensagemErro.Add("Produto não encontrado no XML (prod)");
                                continue;
                            }

                            XElement NFe_infNFe_det_prod_cProd = NFe_infNFe_det_prod.Elements(nsNFe + "cProd").FirstOrDefault();
                            XElement NFe_infNFe_det_prod_qCom  = NFe_infNFe_det_prod.Elements(nsNFe + "qCom").FirstOrDefault();
                            XElement NFe_infNFe_det_prod_xProd = NFe_infNFe_det_prod.Elements(nsNFe + "xProd").FirstOrDefault();
                            XElement NFe_infNFe_det_prod_vProd = NFe_infNFe_det_prod.Elements(nsNFe + "vProd").FirstOrDefault();

                            long   cProd = 0;
                            short  qCom  = 0;
                            double vProd = 0;

                            if (NFe_infNFe_det_prod_cProd != null)
                            {
                                cProd = Convert.ToInt64(NFe_infNFe_det_prod_cProd.Value);
                            }

                            if (NFe_infNFe_det_prod_qCom != null)
                            {
                                qCom = Convert.ToInt16(Math.Floor(Convert.ToDecimal(NFe_infNFe_det_prod_qCom.Value, new CultureInfo("en-US").NumberFormat)));
                            }

                            if (NFe_infNFe_det_prod_vProd != null)
                            {
                                vProd = Convert.ToDouble(NFe_infNFe_det_prod_vProd.Value, new CultureInfo("en-US").NumberFormat);
                            }

                            if (cProd <= 0)
                            {
                                mensagemErro.Add("Código do produto não encontrado no XML");
                            }

                            if (qCom <= 0)
                            {
                                mensagemErro.Add("Quantidade do produto não encontrado no XML");
                            }

                            if (cProd <= 0 || qCom <= 0)
                            {
                                continue;
                            }

                            var produtoExisteNaLojaDeposito = produtoRepository.ListarEmLoja(0, cProd, 0, lojaDepositoDao.LojaID);
                            var atualizado = false;

                            if (produtoExisteNaLojaDeposito != null && produtoExisteNaLojaDeposito.ProdutoID > 0)
                            {
                                atualizado = produtoRepository.Atualizar(lojaDepositoDao.LojaID, cProd, qCom);

                                if (atualizado)
                                {
                                    mensagemSucesso.Add(string.Format("Produto {0}: Atualizado a quantidade do estoque do depósito em {1}", cProd, qCom));
                                }
                            }
                            else
                            {
                                var produtoDao = new ProdutoDao()
                                {
                                    Numero = cProd, Quantidade = qCom, Ativo = true, Preco = vProd
                                };

                                // encontra a medida dentro do campo xProd
                                var regexMedida = Regex.Match(NFe_infNFe_det_prod_xProd.Value, @"[0-9]?[0-9]?[0-9]?\s[X-x]?\s[0-9]?[0-9]?[0-9]?\s[X-x]?\s[0-9]?[0-9]?[0-9]");
                                var medidaDao   = new MedidaDao()
                                {
                                    Descricao = regexMedida.Value.Replace(" ", "")
                                };

                                // se encontrar a medida na base de dados, associa ao produto. Caso contrário, cadastra-a
                                var medida = medidaBusiness.Listar(medidaDao).FirstOrDefault();
                                if (medida == null)
                                {
                                    int medidaId = medidaBusiness.Incluir(medidaDao);

                                    produtoDao.MedidaDao.MedidaID = medidaId;
                                    produtoDao.MedidaDao.Ativo    = true;
                                }
                                else
                                {
                                    produtoDao.MedidaDao = medida;
                                }

                                // encontra a categoria dentro do campo xProd
                                var regexCategoria     = Regex.Match(NFe_infNFe_det_prod_xProd.Value, @"^[^\s]+");
                                var descricaoCategoria = regexCategoria.Value;

                                if (descricaoCategoria == "BAU")
                                {
                                    descricaoCategoria = "BAÚ";
                                }
                                else if (descricaoCategoria == "COLCHAO")
                                {
                                    descricaoCategoria = "COLCHÃO";
                                }
                                else if (descricaoCategoria == "ORTOPEDICO")
                                {
                                    descricaoCategoria = "ORTOPÉDICO";
                                }
                                else if (descricaoCategoria == "SOFA")
                                {
                                    descricaoCategoria = "SOFÁ";
                                }
                                else if (descricaoCategoria == "COLCHAO")
                                {
                                    descricaoCategoria = "COLCHÃO";
                                }

                                var categoriaDao = categoriaBusiness.Listar(new CategoriaDao()
                                {
                                    Descricao = descricaoCategoria
                                }).FirstOrDefault();

                                // se encontrar a categoria na base de dados, associa ao produto. Caso contrário, cadastra-a
                                if (categoriaDao == null)
                                {
                                    var categoriaId = categoriaBusiness.Incluir(categoriaDao);

                                    produtoDao.CategoriaDao.FirstOrDefault().CategoriaID = categoriaId;
                                    produtoDao.CategoriaDao.FirstOrDefault().Ativo       = true;
                                }
                                else
                                {
                                    produtoDao.CategoriaDao.Clear();
                                    produtoDao.CategoriaDao.Add(categoriaDao);
                                }

                                produtoDao.Descricao = NFe_infNFe_det_prod_xProd.Value.Substring(0, regexMedida.Index).Trim();

                                // cadastra o produto
                                var produtoId = produtoRepository.Incluir(produtoDao.ToBd());

                                // atualiza a quantidade desse produto na loja do depósito
                                produtoRepository.Atualizar(lojaDepositoDao.LojaID, cProd, qCom);

                                notaFiscalProdutoBusiness.Incluir(new NotaFiscalProdutoDao()
                                {
                                    NotaFiscalID = notaFiscalId, ProdutoDao = new ProdutoDao()
                                    {
                                        ProdutoID = produtoId
                                    }, Quantidade = qCom
                                });

                                mensagemSucesso.Add(string.Format("Produto {0}: Cadastrado em todas as lojas e atualizado a quantidade do estoque do depósito em {1}", cProd, qCom));
                            }
                        }

                        if (todosProdutoAtualizados)
                        {
                            qtdNFeImportada++;
                        }
                    }

                    scope.Complete();
                }

                mensagemSucesso.Add(string.Format("{0} notas fiscais importadas com sucesso", qtdNFeImportada));
            }
            catch (BusinessException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                logRepository.Incluir(new Log()
                {
                    Descricao = ex.ToString(), DataHora = DateTime.Now
                });

                throw ex;
            }
        }
예제 #13
0
        static void Main(string[] args)
        {
            Console.WriteLine("\nPRODUTOS\n");
            Console.WriteLine("\nEscolha uma das opções a seguir:\n");
            Console.WriteLine("1 - Cadastrar um produto");
            Console.WriteLine("2 - Atualizar um produto");
            Console.WriteLine("3 - Excluir um produto");
            Console.WriteLine("4 - Consultar produtos");
            int opcao = int.Parse(Console.ReadLine());

            Produto           produto    = new Produto();
            ProdutoRepository repository = new ProdutoRepository();

            switch (opcao)
            {
                #region Caso1
            case 1:
                try
                {
                    Console.WriteLine("Nome do Produto....: ");
                    produto.Nome = Console.ReadLine();

                    Console.WriteLine("Preço do Produto...: ");
                    produto.Preco = decimal.Parse(Console.ReadLine());

                    repository.AbrirConexao();
                    repository.Inserir(produto);

                    Console.WriteLine("\nProduto cadastrado com sucesso!");
                }
                catch (Exception e)
                {
                    Console.WriteLine("\nErro: " + e.Message);
                }
                finally
                {
                    repository.FecharConexao();
                }
                break;
                #endregion

                #region Caso2
            case 2:
                try
                {
                    Console.WriteLine("Informe o id do Produto que deseja atualizar: ");
                    produto.IdProduto = int.Parse(Console.ReadLine());

                    Console.WriteLine("\nInforme os novos dados do Produto:\n");
                    Console.WriteLine("Nome do Produto....: ");
                    produto.Nome = Console.ReadLine();

                    Console.WriteLine("Preço do Produto...: ");
                    produto.Preco = decimal.Parse(Console.ReadLine());

                    repository.AbrirConexao();
                    repository.Atualizar(produto);

                    Console.WriteLine("\nProduto atualizado com sucesso!");
                }
                catch (Exception e)
                {
                    Console.WriteLine("\nErro: " + e.Message);
                }
                finally
                {
                    repository.FecharConexao();
                }
                break;
                #endregion

                #region Caso3
            case 3:
                try
                {
                    Console.WriteLine("Informe o id do Produto que deseja excluir....: ");
                    int idProduto = int.Parse(Console.ReadLine());

                    repository.AbrirConexao();
                    repository.Excluir(idProduto);

                    Console.WriteLine("\nProduto exluído com sucesso!");
                }
                catch (Exception e)
                {
                    Console.WriteLine("\nErro: " + e.Message);
                }
                finally
                {
                    repository.FecharConexao();
                }
                break;
                #endregion

                #region Caso4
            case 4:
                try
                {
                    List <Produto> lista = new List <Produto>();

                    repository.AbrirConexao();
                    lista = repository.Consultar();

                    foreach (Produto p in lista)
                    {
                        Console.WriteLine("\nLista de Produtos:\n");
                        Console.WriteLine("IdProduto.........: " + p.IdProduto);
                        Console.WriteLine("Nome..............: " + p.Nome);
                        Console.WriteLine("Preço.............: " + p.Preco);
                        Console.WriteLine("Data de Cadastro..: " + p.DataCadastro);
                        Console.WriteLine("--------------------------------------");
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("\nErro: " + e.Message);
                }
                finally
                {
                    repository.FecharConexao();
                }
                break;

                #endregion
            default:
                Console.WriteLine("Escolha uma opção válida!");
                break;
            }

            Console.ReadKey();
        }
예제 #14
0
 public async Task Atualizar([FromBody] Produto produto)
 {
     await produtoRepository.Atualizar(produto);
 }