private void Validar(Guid siteId, int diaVencimento, FaturaDto faturaDto) { if (faturaDto.Mes < 1 || faturaDto.Mes > 12) throw new FormatoInvalido("O mês da fatura não é válido."); if (faturaDto.Ano < 2016) throw new FormatoInvalido("O ano da fatura não é válido."); if (faturaDto.QuantidadeEquipamentos < 0) throw new FormatoInvalido("A quantidade de equipamentos não é válida."); if (faturaDto.QuantidadeUsuarios < 0) throw new FormatoInvalido("A quantidade de usuários não é válida."); if (faturaDto.Descontos < 0 || faturaDto.Descontos > faturaDto.Total) throw new FormatoInvalido("O desconto não é válido."); if (faturaDto.Total < 0) throw new FormatoInvalido("O total não é válido."); if (_repositorioFaturas.BuscarPorMesAno(siteId, faturaDto.Mes, faturaDto.Ano) != null) throw new FormatoInvalido("Esta fatura já consta em nosso sistema."); var dataAtual = DateTime.Now; if (faturaDto.Mes == dataAtual.Month && faturaDto.Ano == dataAtual.Year && dataAtual.Day < diaVencimento-10) throw new FormatoInvalido("Esta fatura só pode ser paga com no máximo 10 dias de antecedência."); }
public void Adicionar(Guid siteId, string token, FaturaDto faturaDto) { HttpRuntime.Cache.Add(PegaNomeChaveCache(siteId, token), faturaDto, null, DateTime.Now.AddMinutes(40), Cache.NoSlidingExpiration, CacheItemPriority.High, null); }
public Fatura Criar(Guid siteId, FaturaDto faturaDto) { var site = _repositorioSites.BuscarPorId(siteId); Validar(siteId, site.DiaVencimento, faturaDto); var fatura = _fabricaFatura.Criar(siteId, faturaDto); _repositorioFaturas.Inserir(fatura); return fatura; }
public ResultadoPagamentoPayPal CriarPagamento(Guid siteId, FaturaDto faturaDto) { var apiContext = _configuradorPayPal.GetApiContext(); var pagamentoCriado = _fabricaPagamentoPayPal.Criar(_configuradorPayPal.UrlCancelamentoPagamento, _configuradorPayPal.UrlConfirmacaoPagamento, faturaDto).Create(apiContext); _cachePayPal.Adicionar(siteId, pagamentoCriado.token, faturaDto); return new ResultadoPagamentoPayPal(pagamentoCriado.token, pagamentoCriado.GetApprovalUrl()); }
public virtual Fatura Criar(Guid siteId, FaturaDto faturaDto) { return Criar(Guid.NewGuid(), siteId, new DateTime(faturaDto.Ano, faturaDto.Mes, 1), faturaDto.ValorPorEquipamento, faturaDto.ValorPorUsuario, faturaDto.QuantidadeEquipamentos, faturaDto.QuantidadeUsuarios, faturaDto.Descontos, faturaDto.Total); }
public virtual Payment Criar(string urlCancelamentoPagamento, string urlConfirmacaoPagamento, FaturaDto faturaDto) { return new Payment { intent = "sale", payer = new Payer { payment_method = "paypal" }, transactions = PegarListaTransacoes(faturaDto), redirect_urls = new RedirectUrls { cancel_url = urlCancelamentoPagamento, return_url = urlConfirmacaoPagamento } }; }
private static List<Transaction> PegarListaTransacoes(FaturaDto faturaDto) { var transactionList = new List<Transaction> { new Transaction { description = "Pagamento fatura SCEI: " + faturaDto.MesAnoComoString, invoice_number = PegarNumeroRandomicoParaPagamento(), amount = new Amount { currency = "BRL", total = faturaDto.Total.ToString(CultureInfo.InvariantCulture), details = new Details { tax = "0", shipping = "0", subtotal = faturaDto.Total.ToString(CultureInfo.InvariantCulture) } }, item_list = new ItemList { items = new List<Item> { new Item { name = "Usuários mantidos pelo SCEI", currency = "BRL", price = faturaDto.ValorPorUsuario.ToString(CultureInfo.InvariantCulture), quantity = faturaDto.QuantidadeUsuarios.ToString(CultureInfo.InvariantCulture), sku = "#1-usuários" }, new Item { name = "Equipamentos mantidos pelo SCEI", currency = "BRL", price = faturaDto.ValorPorEquipamento.ToString(CultureInfo.InvariantCulture), quantity = faturaDto.QuantidadeEquipamentos.ToString(CultureInfo.InvariantCulture), sku = "#2-equipamentos" } } } } }; return transactionList; }
public void Validar(Guid siteId, FaturaDto faturaDto) { var site = _repositorioSites.BuscarPorId(siteId); Validar(siteId, site.DiaVencimento, faturaDto); }