public void AlterarPedido(PedidoVenda pedidoVenda) { var pedido = GetPedidoVenda(pedidoVenda.Id); RemoverPedido(pedido); AdicionarPedido(pedidoVenda); }
public async Task <IActionResult> PutPedidoVenda([FromRoute] int id, [FromBody] PedidoVenda pedidoVenda) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != pedidoVenda.Id) { return(BadRequest()); } _context.Entry(pedidoVenda).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PedidoVendaExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public Task <int> Editar(PedidoVendaVM pedidoVendaVM) { try { //(Guid id, DateTime dataVenda, Guid idCliente, IEnumerable<ItemPedidoVenda> itemPedidos, double valorTotal var itemsPedidos = new List <ItemPedidoVenda>(); foreach (var item in pedidoVendaVM.ItemPedidosVM) { Guid idItemPedido; if (item.Id == Guid.Empty || item.Id == null) { idItemPedido = Guid.NewGuid(); } else { idItemPedido = item.Id.GetValueOrDefault(); } itemsPedidos.Add(new ItemPedidoVenda(idItemPedido, item.Quantidade, item.Preco, item.SubTotal, item.IdProduto, pedidoVendaVM.Id)); } var novoPedido = new PedidoVenda( pedidoVendaVM.Id, pedidoVendaVM.DataVenda.Value, pedidoVendaVM.IdCliente, itemsPedidos, pedidoVendaVM.ValorTotal, pedidoVendaVM.IdUsuarioLogado); return(_repository.Editar(novoPedido)); } catch (Exception e) { throw new Exception(e.Message); } }
public async Task <int> Inserir(PedidoVenda pedido) { try { PedidoVenda pedidoVenda = new PedidoVenda( pedido.DataVenda, pedido.IdCliente, pedido.ItemPedidos, pedido.ValorTotal, pedido.IdUsuarioLogado ); var itemsPedidos = pedido.ItemPedidos.Select(i => new ItemPedidoVenda { Id = Guid.NewGuid(), Quantidade = i.Quantidade, Preco = i.Preco, SubTotal = i.SubTotal, IdProduto = i.IdProduto, IdPedido = pedidoVenda.Id }).ToList(); pedidoVenda.ItemPedidos = itemsPedidos; _context.Pedidos.Add(pedidoVenda); return(await SalvarCommit()); } catch (MySqlException e) { _context.Dispose(); throw new Exception(e.Message); } }
static void Main(string[] args) { var pedido1 = new PedidoVenda("Juliano", "Juarez", "Rua Caravelas, 991, Jussara - PR", 100.60m); #region Implementação convencional ImprimirPedido(pedido1.NomeCliente, pedido1.NomeVendedor, pedido1.ValorTotal); #endregion Implementação convencional #region Parâmetros nomeados ImprimirPedido(vendedor: pedido1.NomeVendedor, valorTotal: pedido1.ValorTotal, cliente: pedido1.NomeCliente); ImprimirPedido(valorTotal: pedido1.ValorTotal, vendedor: pedido1.NomeVendedor, cliente: pedido1.NomeCliente); #endregion Parâmetros nomeados #region Parâmetro opcional ImprimirPedidoComParametrosOpcionais(pedido1.NomeCliente, pedido1.ValorTotal); ImprimirPedidoComParametrosOpcionais(pedido1.NomeCliente, pedido1.ValorTotal, pedido1.NomeVendedor); #endregion Parâmetro opcional #region Sobrecargas ImprimirPedido(pedido1.NomeCliente, pedido1.NomeVendedor, pedido1.Endereco, pedido1.ValorTotal); Console.WriteLine(ImprimirPedido(pedido1)); Console.WriteLine(pedido1.ToString()); #endregion Sobrecargas Console.ReadLine(); }
public IHttpActionResult Get(int id) { PedidoVenda pedidoVenda = RepositorioPedidoVenda.PorId(id); if (pedidoVenda == null) { return(NotFound()); } var pedidoVendaModel = new PedidoVendaModel(); pedidoVendaModel.Cliente = new ClienteModel() { Cpf = pedidoVenda.Cliente.Cpf, Id = pedidoVenda.Cliente.Id, Nome = pedidoVenda.Cliente.Nome }; pedidoVendaModel.DataEntrega = pedidoVenda.DataEntrega; pedidoVendaModel.Id = pedidoVenda.Id; pedidoVendaModel.Itens = pedidoVenda.Itens.Select(e => new ItemPedidoVendaModel() { IdProduto = e.Produto.Id, DescricaoProduto = e.Produto.Descricao, Quantidade = e.Quantidade, Valor = e.Valor, ValorTotal = e.ValorTotal }).ToArray(); pedidoVendaModel.ValorTotal = pedidoVenda.ValorTotal; return(Ok(pedidoVendaModel)); }
public PedidoVenda Construir() { if (dataEntrega < dataMinimaEntrega) { throw new PedidoVendaException("Data de entrega deve ser de hoje em diante"); } List <ItemPedidoVenda> itensPedido = new List <ItemPedidoVenda>(); PedidoVenda pedidoVenda; foreach (Produto p in itens.Keys) { var requisicao = itens[p]; ItemPedidoVenda item = new ItemPedidoVenda(p, requisicao.Quantidade, requisicao.Valor); itensPedido.Add(item); } if (cliente == null) { cliente = Dominio.Cliente.ConsumidorGenerico; } pedidoVenda = new PedidoVenda(dataEntrega, cliente, itensPedido); Reiniciar(); return(pedidoVenda); }
public ActionResult DeleteConfirmed(int id) { PedidoVenda pedidoVenda = db.PedidoVendas.Find(id); db.PedidoVendas.Remove(pedidoVenda); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "seqPedVenda,nroEmpresa,seqPessoa,dtaPedido")] PedidoVenda pedidoVenda) { if (ModelState.IsValid) { db.Entry(pedidoVenda).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(pedidoVenda)); }
public ActionResult Edit([Bind(Include = "idPedidoVenda,dtEmissao,vValorTotalPedido")] PedidoVenda pedidoVenda) { if (ModelState.IsValid) { db.Entry(pedidoVenda).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(pedidoVenda)); }
public ActionResult Create([Bind(Include = "seqPedVenda,nroEmpresa,seqPessoa,dtaPedido")] PedidoVenda pedidoVenda) { if (ModelState.IsValid) { db.PedidoVenda.Add(pedidoVenda); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(pedidoVenda)); }
public ActionResult Create(PedidoVenda pedidoVenda) { if (ModelState.IsValid) { db.PedidoVendas.Add(pedidoVenda); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(pedidoVenda)); }
public async Task <IActionResult> PostPedidoVenda([FromBody] PedidoVenda pedidoVenda) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.PedidoVenda.Add(pedidoVenda); await _context.SaveChangesAsync(); return(CreatedAtAction("GetPedidoVenda", new { id = pedidoVenda.Id }, pedidoVenda)); }
static void Main(string[] args) { IPedidoVendaRepository repository = new PedidoVendaRepositorio(); var pedido1 = new PedidoVenda("Juliano", "Maycon", "Rua Teste, 103", 100.60m); repository.AdicionarPedido(pedido1); var pedidoConsultado = repository.GetPedidoVenda(pedido1.Id); Console.WriteLine(pedidoConsultado.ToString()); Console.Write($"{DateTime.Now.ToString("ddMMyyyyHHmmss")}.xml"); File.WriteAllText("C:\\VirtualPDV", $"{DateTime.Now}.xml"); Console.ReadLine(); }
public ActionResult ItemVendas(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PedidoVenda pedidoVenda = db.PedidoVenda.Find(id); if (pedidoVenda == null) { return(HttpNotFound()); } return(RedirectToAction("Index", "ItemVendas", id)); }
public bool ExistePedido(Guid id) { PedidoVenda pedidoVenda = null; try { pedidoVenda = _context.Pedidos.Where(x => x.Id == id).FirstOrDefault(); return(pedidoVenda != null); } catch (MySqlException ex) { throw new Exception(ex.Message); } }
// GET: PedidoVenda/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PedidoVenda pedidoVenda = db.PedidoVendas.Find(id); if (pedidoVenda == null) { return(HttpNotFound()); } return(View(pedidoVenda)); }
private void PagamentoPrazo(PedidoVenda pedido) { var contaReceberService = new ContaReceberService(db, configuration); try { db.ContaReceberTemp .Where(e => e.NumeroCI == pedido.Numero && e.Loja == pedido.Loja && e.RowDeleted != "T") .ToList() .ForEach(temp => { ContaReceber cr = new ContaReceber { Cliente = temp.Cliente, DataEmissao = temp.DataEmissao, DataVencimento = temp.DataVencimento, Desconto = 0, FlagEntrada = temp.FlagEntrada, FlagPgto = temp.FlagPgto, Juros = 0, Loja = temp.Loja, NumeroCI = temp.NumeroCI, NumeroDocumento = temp.NumeroDocumento, NumeroDuplicata = temp.NumeroDuplicata, NumeroFatura = string.Empty, TipoVenda = temp.TipoVenda, ValorDuplicata = temp.ValorDuplicata, ValorFatura = temp.ValorFatura }; db.ContaReceber.Add(cr); db.SaveChanges(); if (cr.FlagEntrada == "S") { contaReceberService.recebimentoTitulo( cr.NumeroDuplicata, (DateTime)cr.DataEmissao, (double)cr.ValorDuplicata, string.Empty, cr.Loja, (double)cr.Juros, (double)cr.Desconto, (short)cr.FlagPgto ); } }); ExcluiContaReceberTemp(pedido.Numero, pedido.Loja); } catch (Exception) { throw; } }
public async Task <int> Excluir(Guid id) { try { PedidoVenda pedidoVenda = null; pedidoVenda = await BuscarPorId(id); if (pedidoVenda != null) { _context.Remove(pedidoVenda); } return(await SalvarCommit()); } catch (MySqlException e) { throw new Exception(e.Message); } }
private PedidoVenda Montar(DataRow dataRow) { var result = new PedidoVenda { Id = Convert.ToInt32(dataRow["Id"]), Criacao = Convert.ToDateTime(dataRow["Criacao"]), Modificacao = Convert.ToDateTime(dataRow["Modificacao"]), ClienteId = Convert.ToInt32(dataRow["ClienteId"]), VendedorId = Convert.ToInt32(dataRow["VendedorId"]), Status = dataRow["Status"].ToString(), DataLiberacao = dataRow["DataLiberacao"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(dataRow["DataLiberacao"]), TotalProdutos = Convert.ToDecimal(dataRow["TotalProdutos"]), QuantidadeItens = Convert.ToInt32(dataRow["QuantidadeItens"]), ValorDesconto = Convert.ToDecimal(dataRow["ValorDesconto"]), ValorAcrescimo = Convert.ToDecimal(dataRow["ValorAcrescimo"]), DataEntrega = dataRow["DataEntrega"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(dataRow["DataEntrega"]) }; return(result); }
public IHttpActionResult FazerPedido([FromBody] NovoPedidoVendaModel pedido) { PedidoVenda pedidoVenda; Cliente cliente = RepositorioCliente.PorId(pedido.IdCliente); var pedidoBuilder = PedidoVenda.Novo() .Cliente(cliente) .EntregaEm(pedido.DataEntrega); foreach (var item in pedido.Itens) { Produto produto = RepositorioProduto.PorId(item.IdProduto); if (produto == null) { return(BadRequest()); } pedidoBuilder.CompraProduto(produto, item.Quantidade, item.Valor); } try { pedidoVenda = pedidoBuilder.Construir(); RepositorioPedidoVenda.Adicionar(pedidoVenda); } catch (PedidoVendaException ex) { return(BadRequest(ex.Message)); } return(CreatedAtRoute("DefaultApi", new { controller = "PedidoVenda", id = pedidoVenda.Id }, new CabecalhoPedidoModel() { Id = pedidoVenda.Id, Numero = pedidoVenda.Numero, RazaoCliente = pedidoVenda.Cliente.Nome, ValorTotal = pedidoVenda.ValorTotal })); }
public async Task <long> Salvar(Pedido pedido) { long idPedidoVenda = 0; try { var pedidoVendaRepository = _uow.PedidoVendaRepository.ObterPorIdPedido(pedido.IdPedido); if (pedidoVendaRepository != null) { return(pedidoVendaRepository.IdPedidoVenda); } var pedidoVenda = new PedidoVenda() { IdPedido = pedido.IdPedido, IdCliente = pedido.IdCliente, IdEmpresa = pedido.IdEmpresa, IdPedidoVendaStatus = PedidoVendaStatusEnum.PendenteSeparacao, IdRepresentante = pedido.IdRepresentante, IdTransportadora = pedido.IdTransportadora, NroPedidoVenda = pedido.NroPedido, NroVolumes = 0 //Inicialmente salva com 0. Posteriormente, o valor é atualizado. }; _uow.PedidoVendaRepository.Add(pedidoVenda); await _uow.SaveChangesAsync(); idPedidoVenda = pedidoVenda.IdPedidoVenda; } catch (Exception ex) { _log.Error(String.Format("Erro ao salvar o pedido de venda do pedido {0}.", pedido.IdPedido), ex); } return(idPedidoVenda); }
private void PagamentoVista(PedidoVenda pedido) { try { ContaReceber cr = new ContaReceber { Cliente = pedido.Cliente, DataEmissao = pedido.Data, DataVencimento = (DateTime)pedido.Data, Desconto = pedido.ValorDesconto, FlagEntrada = pedido.FlagEntrada, FlagPgto = StatusContaReceber.PENDENTE, Juros = Math.Round((double)pedido.ValorAcrescimo, 2), Loja = pedido.Loja, NumeroCI = pedido.Numero, NumeroDocumento = pedido.NumeroDocumento, NumeroDuplicata = pedido.Numero + "/0", NumeroFatura = string.Empty, TipoVenda = pedido.TipoVenda, ValorDuplicata = Math.Round((double)pedido.Total, 2), ValorFatura = Math.Round((double)pedido.Total, 2) }; db.ContaReceber.Add(cr); db.SaveChanges(); var contaReceberService = new ContaReceberService(db, configuration); contaReceberService.recebimentoTitulo( cr.NumeroDuplicata, (DateTime)cr.DataEmissao, (double)cr.ValorDuplicata, string.Empty, cr.Loja, (double)cr.Juros, (double)cr.Desconto, (short)cr.FlagPgto ); } catch (Exception ex) { throw ex; } }
public int CriaContaReceberPeloPedido(string Numero, string Loja) { try { if (!existeRecebimento(Numero, Loja)) { excluiTitulos(Numero, Loja); PedidoVenda pedido = db.PedidoVenda .Where(e => e.Numero == Numero && e.Loja == Loja && e.RowDeleted != "T").SingleOrDefault(); switch (pedido.TipoVenda) { case TipoVenda.VISTA: PagamentoVista(pedido); break; case TipoVenda.CARTAO: PagamentoCartao(pedido); break; default: PagamentoPrazo(pedido); break; } return(Status.OK); } else { return(Status.PEDIDO_RECEBIDO); } } catch (Exception ex) { throw ex; } }
public async Task <int> Editar(PedidoVenda pedido) { try { PedidoVenda pedidoVenda = await BuscarPorId(pedido.Id); var ItensDaTela = pedido.ItemPedidos.ToList(); var ItensDoBanco = pedidoVenda.ItemPedidos.ToList(); var ItensParaRemover = ItensDoBanco.Where(itemBanco => !ItensDaTela.Exists(itemTela => itemTela.Id == itemBanco.Id)).ToList(); if (ItensParaRemover.Count() > 0) { foreach (var item in ItensParaRemover) { _context.ItemsPedidos.Remove(item); } } var ItensParaAtualizar = ItensDoBanco.Where(itemBanco => ItensDaTela.Exists(itemTela => itemTela.Id == itemBanco.Id)).ToList(); if (ItensParaAtualizar.Count() > 0) { foreach (var item in ItensParaAtualizar) { ItensDaTela.ForEach(it => { if (it.Id == item.Id) { item.Preco = it.Preco; item.Pedido = it.Pedido; item.Produto = it.Produto; item.SubTotal = it.SubTotal; item.IdPedido = it.IdPedido; item.IdProduto = it.IdProduto; item.Quantidade = it.Quantidade; _context.ItemsPedidos.Update(item); } }); } } var ItensParaAdicionar = ItensDaTela.Where(itemTela => !ItensDoBanco.Exists(itemBanco => itemBanco.Id == itemTela.Id)).ToList(); if (ItensParaAdicionar.Count() > 0) { foreach (var item in ItensParaAdicionar) { await _context.ItemsPedidos.AddAsync(item); } } pedidoVenda.Id = pedido.Id; pedidoVenda.DataVenda = pedido.DataVenda; pedidoVenda.IdCliente = pedido.IdCliente; pedidoVenda.ItemPedidos = pedido.ItemPedidos; pedidoVenda.ValorTotal = pedido.ValorTotal; _context.Entry(pedidoVenda).State = EntityState.Modified; _context.Pedidos.Update(pedidoVenda); return(await SalvarCommit()); } catch (MySqlException e) { throw new Exception(e.Message); } }
internal static string ImprimirPedido(PedidoVenda pedidoVenda) { return($"Cliente: {pedidoVenda.NomeCliente} Vendedor: {pedidoVenda.NomeVendedor}" + $" Endereço: {pedidoVenda.Endereco} Total R$: {pedidoVenda.ValorTotal}"); }
private void PagamentoCartao(PedidoVenda pedido) { try { var parcelas = pedido.Parcelas; var valorTotal = pedido.Total; var parcela = 1; if (pedido.FlagEntrada == "S") { parcelas--; valorTotal -= pedido.ValorEntrada; ContaReceber cr = new ContaReceber { Cliente = pedido.Cliente, DataEmissao = pedido.Data, DataVencimento = (DateTime)pedido.Data, Desconto = 0, FlagEntrada = pedido.FlagEntrada, FlagPgto = StatusContaReceber.PAGO, Juros = 0, Loja = pedido.Loja, NumeroCI = pedido.Numero, NumeroDocumento = pedido.NumeroDocumento, NumeroDuplicata = pedido.Numero + "/0", NumeroFatura = string.Empty, TipoVenda = TipoVenda.VISTA, ValorDuplicata = Math.Round((double)pedido.ValorEntrada, 2), ValorFatura = Math.Round((double)pedido.Total, 2) }; db.ContaReceber.Add(cr); db.SaveChanges(); var contaReceberService = new ContaReceberService(db, configuration); contaReceberService.recebimentoTitulo( cr.NumeroDuplicata, (DateTime)cr.DataEmissao, (double)cr.ValorDuplicata, string.Empty, cr.Loja, (double)cr.Juros, (double)cr.Desconto, (short)cr.FlagPgto ); } if (parcelas > 0) { var valorParcela = valorTotal / parcelas; var plano = db.Operadoras.Where(e => e.RowId == pedido.OperadoraId && e.RowDeleted != "T").Single(); var taxaCartao = plano.Taxa; var clienteId = plano.Admin; var intervalo = plano.TipoVencimento; var vencimento = ((DateTime)pedido.Data).AddDays(intervalo); var valorDesconto = (valorParcela / 100) * taxaCartao; for (; parcela <= parcelas; parcela++) { ContaReceber cr = new ContaReceber { Cliente = clienteId, DataVencimento = vencimento, Desconto = Math.Round((double)valorDesconto, 2), FlagEntrada = "N", FlagPgto = StatusContaReceber.PENDENTE, Juros = 0d, Loja = pedido.Loja, NumeroCI = pedido.Numero, NumeroDocumento = pedido.NumeroDocumento, NumeroDuplicata = pedido.Numero + "/" + parcela.ToString(), NumeroFatura = string.Empty, TipoVenda = pedido.TipoVenda, ValorDuplicata = Math.Round((double)valorParcela, 2), ValorFatura = Math.Round((double)pedido.Total, 2) }; db.ContaReceber.Add(cr); vencimento = vencimento.AddDays(intervalo); } db.SaveChanges(); } } catch (Exception ex) { throw ex; } }
public void AdicionarPedido(PedidoVenda pedidoVenda) { _lista.Add(pedidoVenda); }
public void RemoverPedido(PedidoVenda pedidoVenda) { _lista.Remove(pedidoVenda); }
protected override void Seed(VendasContext context) { var produtos = new Produto[] { new Produto() { Descricao = "Smart TV LG 42\"", Valor = 2100 }, new Produto() { Descricao = "Notebook Dell Vostro 3550", Valor = 2750 }, new Produto() { Descricao = "ZenFone 2 16GB", Valor = 1250 }, new Produto() { Descricao = "Livro .Net Core Resumão", Valor = 250 }, new Produto() { Descricao = "Mouse Logitech sem fio", Valor = 50 }, new Produto() { Descricao = "MousePad cor sólida", Valor = 2.5m }, new Produto() { Descricao = "Caneca linguagens - branco ou preto", Valor = 12 }, new Produto() { Descricao = "Teclado Microsoft Wired 800", Valor = 131 }, new Produto() { Descricao = "Impressora HP Deskjet Ink Advantage", Valor = 199.99m }, }; var clientes = new Cliente[] { new Cliente() { Cpf = "98262100565", Nome = "Denis Bittencourt" }, new Cliente() { Cpf = "61202277764", Nome = "Diego Muniz" }, new Cliente() { Cpf = "26361532410", Nome = "Dinorah Gabriel" }, new Cliente() { Cpf = "78179211800", Nome = "Ronaldo Beraldo" } }; // CONSUMIDOR GENERICO, sempre ID 1 context.Clientes.Add(Cliente.ConsumidorGenerico); context.SaveChanges(); context.Produtos.AddRange(produtos); context.Clientes.AddRange(clientes); var pedidoVenda1 = PedidoVenda.Novo() .Cliente(clientes[0]) .EntregaEm(new DateTime(2020, 11, 30)) .CompraProduto(produtos[2], 2, 1250) .CompraProduto(produtos[1], 1, 2500) .Construir(); pedidoVenda1.Numero = 1; var pedidoVenda2 = PedidoVenda.Novo() .Cliente(clientes[1]) .EntregaEm(new DateTime(2020, 12, 29)) .CompraProduto(produtos[0], 1, 2000) .CompraProduto(produtos[4], 1, 50) .Construir(); pedidoVenda2.Numero = 2; context.PedidosVenda.AddRange(new PedidoVenda[] { pedidoVenda1, pedidoVenda2 }); context.SaveChanges(); }