public string DeletarVenda(long idVenda) { try { var venda = VendaRepositorio.Buscar(idVenda); if (venda.Situacao == SituacaoVenda.Pago) { return("Impossivel excluir uma venda paga!"); } var preVenda = PreVendaRepositorio.Filtrar(d => d.IdVenda == idVenda).ToList(); if (preVenda != null) { preVenda.ForEach(d => PreVendaRepositorio.Excluir(d)); } var itemVenda = ItemVendaRepositorio.Filtrar(d => d.IdVenda == idVenda).ToList(); if (itemVenda != null) { itemVenda.ForEach(d => ItemVendaRepositorio.Excluir(d)); } if (venda != null) { VendaRepositorio.Excluir(venda); } var linhas = Contexto.Salvar(); return(""); } catch (Exception ex) { return("Erro ao tentar excluir Venda. Tente novamente!"); } }
//[Inject] //public UsuarioAplicacao UsuarioAplicacao { get; set; } public PaginacaoModel2 <Venda, PreVenda, FiltroVenda> ObterDetalhesVenda (PaginacaoModel2 <Venda, PreVenda, FiltroVenda> paginacaoModel, long idVenda) { paginacaoModel.ListaModel2 = PreVendaRepositorio.Filtrar(d => d.IdVenda == idVenda).ToList(); paginacaoModel.NomeCliente = VendaRepositorio.Filtrar(d => d.Id == idVenda).Select(d => d.Cliente.Nome).FirstOrDefault(); return(paginacaoModel); }
public string GravarPreVenda(PreVenda preVenda) { if (preVenda.Quantidade == 0) { return("Favor inserir quantidade nesse produto"); } preVenda.Ativo = Ativo.Ativo; preVenda.DataHora = DateTime.Now; preVenda.IdUsuario = AutenticacaoAplicacao.ObterUsuarioLogado().Id; PreVendaRepositorio.Cadastrar(preVenda); Contexto.Salvar(); return(""); }
public string FinalizarVenda(FinalizacaoVendaModel finalizacaoVendaModel) { try { if (finalizacaoVendaModel.IdCliente == 0) { return("Favor selecionar o cliente"); } if (finalizacaoVendaModel.ValorPago > 0 && finalizacaoVendaModel.TipoFinalizador == TipoFinalizador.EmAberto) { return("Favor selecionar o tipo do pagamento!"); } if (finalizacaoVendaModel.ValorPago > 0 && finalizacaoVendaModel.TipoFinalizador == TipoFinalizador.Cortesia) { return("Favor retirar o valor se for uma cortesia"); } if ((finalizacaoVendaModel?.ValorPago ?? 0) == 0 && finalizacaoVendaModel.TipoFinalizador != TipoFinalizador.Saldo && finalizacaoVendaModel.TipoFinalizador != TipoFinalizador.EmAberto && finalizacaoVendaModel.TipoFinalizador != TipoFinalizador.Cortesia) { return("Favor digite o valor a ser pago ou selecione o tipo de pagamento correto!"); } var idUsuarioLogado = AutenticacaoAplicacao.ObterUsuarioLogado().Id; var preVendas = PreVendaRepositorio.Filtrar(d => d.Ativo == Ativo.Ativo && d.IdUsuario == idUsuarioLogado).ToList(); var venda = GravarVenda(finalizacaoVendaModel.IdCliente, preVendas); if (finalizacaoVendaModel.TipoFinalizador == TipoFinalizador.Saldo && finalizacaoVendaModel.ValorPago > venda.Cliente.Saldo) { return("Favor selecionar o tipo do pagamento!"); } if (finalizacaoVendaModel.TipoFinalizador == TipoFinalizador.Saldo && ((venda?.Cliente?.Saldo ?? 0) + (finalizacaoVendaModel?.ValorPago ?? 0)) < venda.Valor) { return("Cliente não possui saldo!"); } GeraPagamentoVenda(finalizacaoVendaModel, venda); var resultado = Contexto.Salvar(); return(""); } catch (Exception ex) { return("Erro ao tentar finalizar a venda, tente novamente!"); } }
public string DeletarPreVenda(long idPreVenda) { try { var preVenda = PreVendaRepositorio.Buscar(idPreVenda); PreVendaRepositorio.Excluir(preVenda); Contexto.Salvar(); return(""); } catch { return("Erro ao tentar excluir item. Tente novamente!"); } }
private Venda GravarVenda(long idCliente, List <PreVenda> preVendas) { var venda = new Venda { Cliente = ClienteAplicacao.BuscarClientePorId(idCliente), DataVenda = DateTime.Now, IdUsuario = AutenticacaoAplicacao.ObterUsuarioLogado().Id, QtdItem = RetornaQtdTotalVenda(preVendas.Select(d => d.Quantidade).ToList()), Valor = RetornaValorTotalVenda(preVendas) }; VendaRepositorio.Cadastrar(venda); GravarItemVenda(preVendas, venda); preVendas.ForEach(d => d.Venda = venda); preVendas.ForEach(d => PreVendaRepositorio.Atualizar(d)); return(venda); }
public VendaModelo ObterPreVendaAtual() { var idUsuarioAtual = AutenticacaoAplicacao.ObterUsuarioLogado().Id; var preVendas = PreVendaRepositorio.ObterPreVendaAtual(idUsuarioAtual); foreach (var item in preVendas) { if (item.Produto == null) { item.Produto = ProdutoAplicacao.BuscarPorId(item.IdProduto); } } return(new VendaModelo { PreVendas = preVendas, PaginacaoCliente = new Dominio.modelos.PaginacaoModel <Cliente, Dominio.modelos.FiltroCliente>(), ValorTotal = preVendas.Sum(d => (d.Produto.Valor * d.Quantidade)), }); }
private void InativaPreVenda(PreVenda preVenda) { preVenda.Ativo = Ativo.Inativo; PreVendaRepositorio.Atualizar(preVenda); }