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; } }
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); }
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); }