예제 #1
0
        public RetornoModel <PropostaModel> AprovarProposta(PropostaModel model)
        {
            try
            {
                if (DateTime.Now > model.Data.AddHours(ConfiguracaoAppUtil.GetAsInt(ConfiguracaoGeral.tempoExpiracaoProposta)))
                {
                    return(new RetornoModel <PropostaModel>
                    {
                        Mensagem = "Proposta não pode ser aprovada pois já expirou o prazo de validade"
                    });
                }

                var usuarioCorrente = new UsuarioService().Carregar(model.IdUsuario);

                if (usuarioCorrente.Perfil == PerfilUsuario.AnalistaComercial)
                {
                    return(new RetornoModel <PropostaModel>
                    {
                        Mensagem = "Proposta não pode ser aprovada por usuários com perfil " + PerfilUsuario.AnalistaComercial.Description()
                    });
                }
                else if (usuarioCorrente.Perfil == PerfilUsuario.AnalistaFinanceiro)
                {
                    InserirHistorico(model.ID, AcaoProposta.AprovacaoAnalista, model.IdUsuario);
                    if (model.Valor > ConfiguracaoAppUtil.GetAsDecimal(ConfiguracaoGeral.valorMinimoAprovacaoDiretoria))
                    {
                        InserirHistorico(model.ID, AcaoProposta.SolicitadoAprovacao, model.IdUsuario);
                        model.Status = StatusProposta.PedenteDiretoria;
                    }
                }
                else
                {
                    InserirHistorico(model.ID, AcaoProposta.AprovacaoDiretoria, model.IdUsuario);
                }

                var result = Salvar(model);
                if (result.Sucesso)
                {
                    if (model.Status == StatusProposta.PedenteDiretoria)
                    {
                        result.Mensagem = "Proposta enviada para aprovação do " + PerfilUsuario.DiretorFinanceiro.Description();
                    }
                    else
                    {
                        result.Mensagem = "Proposta aprovada com sucesso!";
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                LogUtil.Error(ex);
                throw;
            }
        }
예제 #2
0
        public List <FormaPagamento> ListarEvento(int ClienteID, string sessionID, decimal valorCompra)
        {
            LogUtil.Debug(string.Format("##FormaPagamentoBO.ObtendoFormaPagamento## SESSION {0}", sessionID));

            DateTime dataInicial = new DateTime();
            DateTime dataFinal   = new DateTime();

            try
            {
                dataInicial = DateTime.ParseExact(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.InicioAmex), "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
                dataFinal   = DateTime.ParseExact(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.FimAmex), "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
            }
            catch
            {
                dataInicial = dataFinal = DateTime.MaxValue;
            }
            DateTime dataAtual = DateTime.Now;


            //Carrega as bandeiras dos cartões
            List <IngressoRapido.Lib.FormaPagamento.Bandeiras> formasPagamentoProxy = new IngressoRapido.Lib.FormaPagamento().FormasDePagamentoPrioritarias(ClienteID, sessionID);

            LogUtil.Debug(string.Format("##FormaPagamentoBO.ObtendoFormaPagamento## SESSION {0}, PGTO_COUNT {1}", sessionID, formasPagamentoProxy.Count));

            List <FormaPagamento> formasPagamento = new List <FormaPagamento>();

            foreach (var item in formasPagamentoProxy)
            {
                int maxParcelas = new IngressoRapido.Lib.FormaPagamento().ParcelaMaxima(item, ClienteID, sessionID);

                enumFormaPagamento bandeira = ConvertBandeira(item);

                if (bandeira != enumFormaPagamento.Nenhuma)
                {
                    if (bandeira == enumFormaPagamento.Amex)
                    {
                        if (dataAtual >= dataInicial && dataAtual <= dataFinal && valorCompra >= ConfiguracaoAppUtil.GetAsDecimal(enumConfiguracaoBO.ValorAmex))
                        {
                            maxParcelas = maxParcelas < 10 ? maxParcelas++ : 10;
                        }
                    }

                    formasPagamento.Add(new FormaPagamento()
                    {
                        NomeAsEnum = bandeira, Parcelas = ((byte)maxParcelas)
                    });
                }
            }

            LogUtil.Debug(string.Format("##FormaPagamentoBO.ObtendoFormaPagamento.SUCCESS## SESSION {0}, PGTO_COUNT {1}", sessionID, formasPagamento.Count));

            return(formasPagamento);
        }
예제 #3
0
        public List <FormaPagamento> ListarEvento(List <int> eventos, decimal valorCompra)
        {
            List <FormaPagamento> formasPagamento = ado.ListarEvento(eventos.Distinct().ToList());

            if (formasPagamento != null)
            {
                DateTime dataInicial = new DateTime();
                DateTime dataFinal   = new DateTime();
                try
                {
                    dataInicial = DateTime.ParseExact(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.InicioAmex), "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
                    dataFinal   = DateTime.ParseExact(ConfiguracaoAppUtil.Get(enumConfiguracaoBO.FimAmex), "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
                }
                catch
                {
                    dataInicial = dataFinal = DateTime.MaxValue;
                }
                DateTime dataAtual = DateTime.Now;


                //AMEX, Ver se o método da IRLIB já faz essa verificação
                if (dataAtual >= dataInicial && dataAtual <= dataFinal && valorCompra >= ConfiguracaoAppUtil.GetAsDecimal(enumConfiguracaoBO.ValorAmex))
                {
                    foreach (var item in formasPagamento.Where(x => x.NomeAsEnum == DataAccess.Model.Enumerator.enumFormaPagamento.Amex))
                    {
                        item.Parcelas = Convert.ToByte(item.Parcelas++ < 10 ? item.Parcelas++ : 10);
                    }
                }
            }
            return(formasPagamento);
        }