コード例 #1
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);
        }
コード例 #2
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!");
            }
        }
コード例 #3
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!");
            }
        }