public string Inserir(Entrada_Produtos entradaProdutos)
        {
            if (entradaProdutos.DATAENTRADA < DateTime.Now.Date)
            {
                erros.Add("O produto deve ser cadastrado em uma data válida.");
            }
            if (entradaProdutos.IDFORNECEDOR < 1)
            {
                erros.Add("Fornecedor não existe.");
            }
            else
            {
                Fornecedor f = fornecedorbll.LerPorID(entradaProdutos.IDFORNECEDOR);
                if (f == null)
                {
                    erros.Add("Fornecedor não existe.");
                }
            }
            if (entradaProdutos.IDFUNCIONARIO < 1)
            {
                erros.Add("Funcionário não existe.");
            }
            else
            {
                Funcionario f = funcionariobll.LerPorID(entradaProdutos.IDFUNCIONARIO);
                if (f == null)
                {
                    erros.Add("Funcionário não existe.");
                }
            }
            if (erros.Count != 0)
            {
                StringBuilder builder = new StringBuilder();

                for (int i = 0; i < erros.Count; i++)
                {
                    builder.AppendLine(erros[i]);
                }
                erros.Clear();
                return(builder.ToString());
            }
            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    entradadal.Inserir(entradaProdutos);
                    entradaProdutos.ID = entradadal.LerIdGerado();
                    entradadal.InserirItems(entradaProdutos);
                    for (int i = 0; i < entradaProdutos.Itens.Count; i++)
                    {
                        ItemEntrada item = entradaProdutos.Itens[i];
                        Produto     p    = produtobll.LerPorID(item.IDProduto);
                        p.Quantidade += item.Qtd;
                        double novoPreco =
                            (p.Quantidade * p.Preco) + (item.Preco * item.Qtd);
                        p.Preco = novoPreco / (p.Quantidade + item.Qtd);
                        produtobll.Alterar(p);
                    }
                    scope.Complete();
                    return("Entrada realizada com sucesso.");
                }
                catch
                {
                    return("Erro na entrada de produtos.");
                }
            }
        }
Example #2
0
        public string Inserir(Saidas_Produtos saida)
        {
            if (saida.DATAVENDA > DateTime.Now.Date)
            {
                erros.Add("Data de venda inválida");
            }
            if (saida.IDCHECKIN < 1)
            {
                erros.Add("Checkin inválido.");
            }
            else
            {
                Cliente c = cbll.LerPorID(saida.IDCHECKIN);
                if (c == null)
                {
                    erros.Add("checkin inválido.");
                }
            }
            if (saida.IDFUNCIONARIO < 1)
            {
                erros.Add("Produto inválido.");
            }
            else
            {
                Produto p = pbll.LerPorID(saida.IDFUNCIONARIO);
                if (p == null)
                {
                    erros.Add("Produto inválido");
                }
            }

            if (erros.Count != 0)
            {
                StringBuilder builder = new StringBuilder();
                for (int i = 0; i < erros.Count; i++)
                {
                    builder.AppendLine(erros[i]);
                }
                erros.Clear();
                return(builder.ToString());
            }

            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    sdal.Inserir(saida);
                    saida.ID = sdal.LerIdGerado();
                    sdal.InserirItens(saida);
                    for (int i = 0; i < saida.Itens.Count; i++)
                    {
                        ItemSaida item = saida.Itens[i];
                        Produto   p    = pbll.LerPorID(item.IDPRODUTO);
                        p.Quantidade += item.QTD;
                        double NovoPreco = (p.Quantidade * p.Preco) + (item.PRECO * item.QTD);
                        p.Preco = NovoPreco / (p.Quantidade + item.QTD);
                        pbll.Alterar(p);
                    }
                    scope.Complete();
                    return("Saída realizada com sucesso.");
                }
                catch (Exception)
                {
                    return("Erro na saída de produto.");
                }
            }
        }