static void Main(string[] args) { Console.Write("Nome: "); string nome = Console.ReadLine(); Console.Write("Telefone: "); string fone = Console.ReadLine(); Console.Write("E-mail: "); string email = Console.ReadLine(); Cliente cliente = new Cliente(nome, fone, email); Console.Write("Movimentação (1 LOCAÇÃO - 2 DEVOLUÇÃO): "); int tipPedido = int.Parse(Console.ReadLine()); if (tipPedido == 1) { Console.Write("Status Locacao ou Devolucao: "); StatusMovimentacao status = Enum.Parse <StatusMovimentacao>(Console.ReadLine()); Console.Write("Quantidade de itens no lançamento:"); int qt_lan = int.Parse(Console.ReadLine()); Movimentacao movLocacao = new MovimentacaoLocacao(DateTime.Now, status, cliente); for (int i = 1; i <= qt_lan; i++) { Console.Write($"Item {i} - "); Console.Write("Nome Produto: "); string descricao = Console.ReadLine(); Console.Write("Valor do Produto: "); double valor_produto = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Quantidade: "); int qt_produto = int.Parse(Console.ReadLine()); Console.WriteLine("Escolha o status " + "Dvd ou " + " Livro"); StatusProduto statusProduto = Enum.Parse <StatusProduto>(Console.ReadLine()); Produto produto = new Produto(descricao, valor_produto, statusProduto); MovimentacaoItem movimentacaoItemLocacao = new MovimentacaoItem(qt_produto, valor_produto, produto); MovimentacaoLocacao mov = (MovimentacaoLocacao)movLocacao; mov.AddMovimentacao(movimentacaoItemLocacao); } Console.WriteLine(movLocacao); } else if (tipPedido == 2) { Console.Write("Multa Devolução: "); double valor_multa = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Status - Devolvido : "); StatusMovimentacao status = Enum.Parse <StatusMovimentacao>(Console.ReadLine()); Movimentacao movDevolucao = new MovimentacaoDevolucao(DateTime.Now, status, cliente, valor_multa); Console.WriteLine("boa noite"); } }
public async Task MovimentarEstoqueVenda(Venda venda, StatusMovimentacao status, TipoMovimentacao tipo) { List <MovimentacaoEstoque> movimentacoes = new List <MovimentacaoEstoque>(); foreach (var item in await _context.ItemsVenda.AsQueryable().Where(x => x.VendaId == venda.Id).ToListAsync()) { movimentacoes.Add(new MovimentacaoEstoque() { DataMovimentacao = DateTime.Now, MovUsuarioID = venda.usuarioVendaID, ProdutoMovId = item.ProdutoId, Quantidade = item.Quantidade, TipoMovimentacao = tipo, StatusMovimetacao = status, VendaMovID = venda.Id }); await AtualizarEstoque(item, status); } _context.MovimentacoesEstoque.AddRange(movimentacoes); await _context.SaveChangesAsync(); }
private async Task AtualizarEstoque(ItemVenda itemVenda, StatusMovimentacao status) { var produto = await _context.Estoques.Where(x => x.ProdutoEstoqueId == itemVenda.ProdutoId).FirstOrDefaultAsync(); produto.Disponivel = (status == StatusMovimentacao.ENTRADA) ? produto.Disponivel + itemVenda.Quantidade : produto.Disponivel - itemVenda.Quantidade; }
public MovimentacaoDevolucao(DateTime momento, StatusMovimentacao status, Cliente cliente, double multa) : base(momento, status, cliente) { Multa = multa; }
public MovimentacaoLocacao(DateTime momento, StatusMovimentacao status, Cliente cliente) : base(momento, status, cliente) { }
protected Movimentacao(DateTime momento, StatusMovimentacao status, Cliente cliente) { Momento = momento; Status = status; Cliente = cliente; }