示例#1
0
        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!");
            }
        }
示例#2
0
        //[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);
        }
示例#3
0
 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("");
 }
示例#4
0
        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!");
            }
        }
示例#5
0
 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!");
     }
 }
示例#6
0
        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);
        }
示例#7
0
        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)),
            });
        }
示例#8
0
 private void InativaPreVenda(PreVenda preVenda)
 {
     preVenda.Ativo = Ativo.Inativo;
     PreVendaRepositorio.Atualizar(preVenda);
 }