コード例 #1
0
    static void Main()
    {
        int          madeira = 0, ferro = 30, plastico = 10, ceramica = 0;
        string       fornecedor = "voce", nome_produto = "pc";
        ProdutoFinal produto = new ProdutoFinal(fornecedor, nome_produto, madeira, ferro, plastico, ceramica);

        System.Console.WriteLine("os dados são:\nnome do produto {0}\nquantidade de madeira(kilo) : {1}\nquantidade de ferro(kilo) : {2}\nquantidade de plastico(kilo) : {3}\nquantidade ceramica(kilo) : {4}", nome_produto, produto.madeira, produto.ferro, produto.plastico, produto.ceramica);
    }
コード例 #2
0
ファイル: ProdutoController.cs プロジェクト: amurta76/Bakery
 private IActionResult AlterarProdutoFinal(int id, ProdutoFinal produto)
 {
     if (produto.ValidaQuantidadeEstoque() && produto.ValidaValor())
     {
         return(AlterarProduto(id, produto));
     }
     else if (!produto.ValidaQuantidadeEstoque())
     {
         return(BadRequest("Quantidade inválida."));
     }
     else
     {
         return(BadRequest("Valor inválido."));
     }
 }
コード例 #3
0
ファイル: ProdutoController.cs プロジェクト: amurta76/Bakery
 private IActionResult IncluirProdutoFinal(ProdutoFinal produto, bool validaEstoque)
 {
     if ((produto.ValidaQuantidadeEstoque() || !validaEstoque) && produto.ValidaValor())
     {
         return(IncluirProduto(produto, validaEstoque));
     }
     else if (!produto.ValidaQuantidadeEstoque() && validaEstoque)
     {
         return(BadRequest("Quantidade inválida."));
     }
     else
     {
         return(BadRequest("Valor inválido."));
     }
 }
コード例 #4
0
        public static void Renderizar()
        {
            ProdutoFinal p = new ProdutoFinal();

            Console.WriteLine("  -- CADASTRAR PRODUTO --\n");
            //Console.WriteLine("Digite o nome do produto:");
            //p.Nome = Console.ReadLine();
            Console.WriteLine("Digite o preço do produto:");
            p.Preco = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Digite a quantidade do produto:");
            p.Quantidade = Convert.ToInt32(Console.ReadLine());
            if (ProdutoDAO.CadastrarProduto(p))
            {
                Console.WriteLine("\nProduto cadastrado com sucesso!");
            }
            else
            {
                Console.WriteLine("\nEsse produto já existe!");
            }
        }
コード例 #5
0
ファイル: CaixaController.cs プロジェクト: amurta76/Bakery
        public ActionResult <List <FechamentoCaixaDTO> > Put(int id, [FromBody] Caixa caixa)
        {
            if (caixa == null)
            {
                return(BadRequest("Não foi possível fechar o caixa, sem dados para o fechamento."));
            }

            if (id == caixa.Id)
            {
                var caixaBaseDeDados = _caixaRepositorio.Selecionar(id);
                if (caixaBaseDeDados.EstaAberto())
                {
                    foreach (var item in caixa.Descartes)
                    {
                        ProdutoFinal descarte = (ProdutoFinal)_produtoRepositorio.Selecionar(item.IdProdutoFinal);

                        Estoque estoqueDescarte = new Estoque()
                        {
                            Produto     = descarte,
                            Data        = DateTime.Now,
                            Quantidade  = item.Quantidade,
                            TipoEstoque = EnumTipoEstoque.SAIDA
                        };
                        _estoqueRepositorio.Incluir(estoqueDescarte);
                        descarte.QuantidadeEstoque -= estoqueDescarte.Quantidade;
                        _produtoRepositorio.Alterar(descarte);
                    }

                    caixaBaseDeDados.DataFechameto = DateTime.Now;
                    caixaBaseDeDados.SituacaoCaixa = EnumSitucaoCaixa.FECHADO;
                    _caixaRepositorio.Alterar(caixaBaseDeDados);

                    var valores = _vendaRepositorio.VendaCaixa(caixa.Id);

                    return(Ok(valores));
                }
            }
            return(BadRequest("Impossível realizar o fechamento do caixa, pois o caixa não está aberto."));
        }
コード例 #6
0
ファイル: ProdutoController.cs プロジェクト: amurta76/Bakery
        [ProducesResponseType(500)] //Erro interno do servidor
        public IActionResult Post([FromBody] ProdutoFinal produto)
        {
            bool validaEstoque = true;

            return(IncluirProdutoFinal(produto, validaEstoque));
        }
コード例 #7
0
ファイル: ProdutoController.cs プロジェクト: amurta76/Bakery
 [ProducesResponseType(500)] //Erro interno do servidor
 public IActionResult Put(int id, [FromBody] ProdutoFinal produto)
 {
     return(AlterarProdutoFinal(id, produto));
 }
コード例 #8
0
        [ProducesResponseType(500)] //Erro interno do servidor
        public ActionResult <VendaDTO> RealizarVenda([FromBody] Venda venda)
        {
            try
            {
                if (venda == null)
                {
                    return(BadRequest("Venda não foi finalizada com sucesso"));
                }

                if (venda.Data.Date < DateTime.Now.Date)
                {
                    return(BadRequest("A venda não foi realizada, a data da venda não pode ser anterior a hoje"));
                }

                if (venda.Data.Date > DateTime.Now.Date)
                {
                    return(BadRequest("A venda não foi realizada, a data da venda não pode ser posterior a hoje"));
                }

                if (venda.Valor <= 0)
                {
                    return(BadRequest("Não será permitido realizar a venda se o valor for zero "));
                }

                if (venda.TipoPagamento == EnumTipoPagamento.DINHEIRO &&
                    venda.ValorRecebido < venda.Valor)
                {
                    return(BadRequest("Não será permitido realizar a venda. O valor recebido é menor que o valor da venda."));
                }

                decimal totalVenda = 0;
                foreach (var item in venda.Itens)
                {
                    ProdutoFinal produtoFinal = (ProdutoFinal)_produtoRepositorio.Selecionar(item.IdProdutoFinal);

                    totalVenda += produtoFinal.Valor * item.Quantidade;

                    if ((produtoFinal.QuantidadeEstoque - item.Quantidade) < 0)
                    {
                        return(BadRequest($"Não será permitido realizar a venda. O produto {produtoFinal.Nome} está com estoque indisponível"));
                    }
                }


                if (venda.Valor != totalVenda)
                {
                    return(BadRequest("Não será permitido realizar a venda. O Valor da venda está incorreto."));
                }

                var caixa = _caixaRepositorio.Selecionar(venda.Caixa.Id);

                if (!caixa.EstaAberto())
                {
                    return(BadRequest("Não será permitido realizar a venda se o caixa estiver fechado"));
                }

                venda.Caixa = caixa;

                foreach (var item in venda.Itens)
                {
                    ProdutoFinal produtoFinal = (ProdutoFinal)_produtoRepositorio.Selecionar(item.IdProdutoFinal);

                    Estoque estoque = new Estoque()
                    {
                        Produto     = produtoFinal,
                        Data        = DateTime.Now,
                        Quantidade  = item.Quantidade,
                        TipoEstoque = EnumTipoEstoque.SAIDA
                    };
                    _estoqueRepositorio.Incluir(estoque);
                    produtoFinal.QuantidadeEstoque -= estoque.Quantidade;
                    _produtoRepositorio.Alterar(produtoFinal);
                }

                _vendaRepositorio.Incluir(venda);
                VendaDTO vendaRetorno = new VendaDTO();
                vendaRetorno.Mensagem = "Venda efetuada com sucesso";


                vendaRetorno.ValorPago = venda.Valor;

                if (venda.TipoPagamento == EnumTipoPagamento.DINHEIRO)
                {
                    vendaRetorno.Troco = venda.ValorRecebido - venda.Valor;
                }

                return(Ok(vendaRetorno));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }