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."); } } }
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."); } } }