private IEnumerable <EntregaFixaProcessada> GeraTodasRecorrenciasDeUmaRegra(IEnumerable <Competencia> competencias = null, ParametrosDeRegraDeRemuneracao regraFixa = null) { PeriodoSimples periodo = competencias.ObtemPeriodoQueCompreendeTodasAsCompetencias(); DateTime inicio = periodo.Inicio; DateTime fim = periodo.Fim; dynamic idMoeda = regraFixa.ParametrosExtras.Dinheiro["Moeda"]["Id"]; decimal valor = decimal.Parse(regraFixa.ParametrosExtras.Dinheiro["Valor"].ToString()); Moeda moeda = Moeda.Obtem(idMoeda.ToString()); Dinheiro valorRegra = new Dinheiro(valor, moeda); JsonSerializerSettings settingsSerializer = new JsonSerializerSettings() { ContractResolver = new JsonContractResolverDeModelosBase() }; //Dinheiro valorRegra = JsonConvert.DeserializeObject<Dinheiro>(regraFixa.ParametrosExtras.Dinheiro.ToString(), settingsSerializer); Recorrencia <DateTime> rec = JsonConvert.DeserializeObject <Recorrencia <DateTime> >(regraFixa.ParametrosExtras.Recorrencia.ToString(), settingsSerializer); rec.Atual = regraFixa.Vigencia.Inicio; DateTime dataReferencia = rec.Atual; Dictionary <int, DateTime> datasDoPeriodo = new Dictionary <int, DateTime>(); Recorrencia <DateTime> atual = rec; while (dataReferencia <= fim) { datasDoPeriodo.Add(atual.Serie, dataReferencia); atual = atual.ProximoNaRecorrencia; dataReferencia = atual.Atual; } atual = rec.AnteriorNaRecorrencia; dataReferencia = atual.Atual; List <EntregaFixaProcessada> entregas = new List <EntregaFixaProcessada>(); foreach (KeyValuePair <int, DateTime> data in datasDoPeriodo) { foreach (Competencia comp in competencias) { if (comp.Contem(data.Value)) { EntregaFixaProcessada ent = new EntregaFixaProcessada(data.Value, comp); ent.Serie = data.Key; ent.IdRegra = regraFixa.Id; entregas.Add(ent); break; } } } return(entregas); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var jsonObject = JObject.Load(reader); DateTime dataOcorrencia = jsonObject[PropriedadeData].Value <DateTime>(); string tipo = jsonObject[PropriedadeTipo].Value <String>(); Recorrencia <DateTime> recorrencia = GeraRecorrenciaDeAcordoComTipo(tipo, dataOcorrencia); return(recorrencia); }
public EduProcessaHorarioTurmaParams( IList <SHorario> horarios, IList <ProfessorTurma> professores, STurmaDisc sTurmaDisc, SDisciplina sDisciplina, Recorrencia recorrencia, bool verificaChoqueTurma ) { Horarios = horarios; Professores = professores; STurmaDisc = sTurmaDisc; SDisciplina = sDisciplina; Recorrencia = recorrencia; VerificaChoqueTurma = verificaChoqueTurma; }
public object RealizarPagamento(RequisicaoPagamento p) { iniRequisicao(); Recorrencia requisicao = new Recorrencia(); requisicao.Customer = new Customer(); requisicao.Payment = new Payment(); requisicao.Payment.RecurrentPayment = new RecurrentPayment(); requisicao.Payment.CreditCard = new CreditCard(); requisicao.MerchantOrderId = DateTime.Now.ToString("ddMMyyyyHHmmss") + p.id_usuario_mobvendas.ToString(); requisicao.Customer.Name = p.name; requisicao.Payment.Type = "CreditCard"; requisicao.Payment.Amount = Convert.ToDecimal(p.amount.Replace(".", ",")) * 100; requisicao.Payment.Installments = 1; requisicao.Payment.SoftDescriptor = "MobVendas"; requisicao.Payment.RecurrentPayment.AuthorizeNow = true; requisicao.Payment.CreditCard.CardNumber = p.cardnumber; requisicao.Payment.CreditCard.Holder = p.name; requisicao.Payment.CreditCard.ExpirationDate = p.expirationdate; requisicao.Payment.CreditCard.SecurityCode = p.securityCode; requisicao.Payment.CreditCard.Brand = p.brand; string json = JsonConvert.SerializeObject(requisicao); var httpContent = new StringContent(json, Encoding.UTF8, "application/json"); try { var response = client.PostAsync("1/sales", httpContent).Result; if (response.IsSuccessStatusCode) { var resposta = JsonConvert.DeserializeObject <Recorrencia>(response.Content.ReadAsStringAsync().Result); if (resposta.Payment.ReturnCode == "4" || resposta.Payment.ReturnCode == "6") { var resp = JsonConvert.DeserializeObject <Captura>(client.PutAsync("1/sales/" + resposta.Payment.PaymentId + "/capture", null).Result.Content.ReadAsStringAsync().Result); PAGAMENTOS_MOBVENDAS pag = new PAGAMENTOS_MOBVENDAS(); // pagamentos pag.ID_USUARIO_MOBVENDAS = Convert.ToInt32(p.id_usuario_mobvendas); pag.CodRetorno = Convert.ToInt32(resposta.Payment.ReturnCode); pag.Cartao = resposta.Payment.CreditCard.CardNumber; pag.Bandeira = resposta.Payment.CreditCard.Brand; pag.DataPagamento = DateTime.Now; pag.Valor = resposta.Payment.Amount; pag.MerchantOrderId = resposta.MerchantOrderId; pag.DataExpiracao = resposta.Payment.CreditCard.ExpirationDate; db.PAGAMENTOS_MOBVENDAS.Add(pag); try { db.SaveChanges(); } catch (Exception ex1) { return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = ex1.Message }); } var usuMob = db.USUARIOS_MOBVENDAS.Find(Convert.ToInt32(p.id_usuario_mobvendas)); usuMob.ID_RECORRENCIA = resposta.Payment.RecurrentPayment.RecurrentPaymentId; usuMob.SITUACAOCONTA = 1; usuMob.TIPOPLANO = 3; usuMob.DataProxPagamento = Convert.ToDateTime(resposta.Payment.RecurrentPayment.NextRecurrency); db.Entry(usuMob).State = EntityState.Modified; try { db.SaveChanges(); } catch (Exception ex2) { return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = ex2.Message }); } var ex = db.USUARIOS_MOBVENDAS.Find(pag.ID_USUARIO_MOBVENDAS); UsuarioSimples usu = new UsuarioSimples() { email = ex.EMAIL, nome = ex.NOME, dataProxPag = ex.DataProxPagamento }; try { enviarEmail(pag, usu); } catch (Exception ex3) { return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = ex3.Message }); } e.EnviarNotificacao("E", "Pagamento realizado com sucesso!", "Pagamento", usuMob.ID_USUARIO_MOBVENDAS, 4); return(new { idResposta = (int)Codigo.Ok, msgResposta = "Pagamento feito com sucesso!", dataPag = pag.DataPagamento, dataProxPag = usuMob.DataProxPagamento, cartaoCredito = pag.Cartao, bandeira = pag.Bandeira, valor = pag.Valor }); } else { /* * 5: Não autorizada * 57: Cartão expirado * 78: Cartão bloqueado * 99: Time out * 77: Carão cancelado * 70: Problemas com cartão de crédito */ switch (resposta.Payment.ReturnCode) { case "5": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Compra não autorizada!" }); case "57": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Cartão Expirado!" }); case "78": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Cartão bloqueado!" }); case "99": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Time Out!" }); case "77": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Cartão cancelado!" }); case "70": return(new { idResposta = (int)Codigo.ErroCartao, msgResposta = "Problemas com cartão de crédito!" }); } } } return(new { idResposta = (int)Codigo.ErroGeral, msgResposta = "Erro no pagamento!" }); } catch (Exception ex) { return(new { idResposta = (int)Codigo.ErroGeral, msgResposta = ex.Message }); } }