Пример #1
0
 public bool Valido()
 {
     AddNotifications(new ValidationContract()
                      .IsTrue(DiaVencimento > 0, "Dia Vencimento", "Informe o dia de vencimento")
                      .IsTrue(ValorContrato > 0, "Valor Contrato", "Informe o valor do contrato")
                      .IsTrue(Ano > 0, "Ano", "Informe o Ano")
                      .IsTrue(MesInicioPagamento > 0, "Mes Inicio Pagamento", "Informe o Mês início de pagamento")
                      .IsTrue(TotalParcelas > 0, "TotalParcelas", "Informe o total de parcelas")
                      .IsTrue((Id <= 0), "Id", "Id informado não é valido")
                      .IsNotNullOrEmpty(DataIncialPagamento.ToShortDateString(), "Data Inicio Pagamento", "Informe a data inicial de pagamento")
                      .IsNotNullOrEmpty(ChaveRegistro.ToString(), "Chave Registros", "Informe a chave de registros")
                      .IsNotNullOrEmpty(IdMatriculaGuid, "Cod-Matricula", "Chave matricula não localizado")
                      );
     return(Valid);
 }
Пример #2
0
        public async Task <IComandoResultado> ManipuladorAsync(MatricularComando comando)
        {
            //Obter itens matricula
            var turmas = (await _repositorio.ObterMatriculaItensTempPor(new Guid(comando.IdMatriculaGuid))).ToList();

            if (turmas.Count() <= 0)
            {
                AddNotification("Turmas", $"Informe pelo menos uma turma");
            }
            comando.ValorContrato = turmas.Sum(x => x.ValorCalculado);
            //Criar Entidade
            var matricula = new Matricula(comando.Id, comando.IdAluno, comando.TotalParcelas,
                                          comando.DataContrato, comando.PercentualDesconto, comando.ValorDesconto, comando.ValorMatricula,
                                          comando.ValorContrato, comando.DiaVencimento, comando.DataIncialPagamento, ChaveRegistro.Gerar(), comando.Ano, comando.MesInicioPagamento);

            //check Matricula Existe
            if (await _repositorio.CheckMatriculaExisteAsync(matricula))
            {
                AddNotification("Matricula", $"Aluno informado ja possui matricula ativa para o ano de {comando.Ano} ");
            }

            //Validar Comando
            comando.Valido();
            AddNotifications(comando.Notifications);
            if (Invalid)
            {
                return(new ComandoResultado(false, "Por favor, corrija os campos abaixo", Notifications));
            }

            //Persistir Dados
            var id = await _repositorio.MatricularAsync(matricula);

            //Persistir Item
            foreach (var item in turmas)
            {
                await _repositorio.RegistrarItemMatricula(new MatriculaItem(
                                                              id,
                                                              item.IdTurma,
                                                              item.Valor,
                                                              item.Desconto,
                                                              item.ValorDesconto,
                                                              item.ValorCalculado
                                                              ));

                //Enturmar Aluno
                await _repositorioAluno.SalvarTurmaAsync(new TurmaAluno(item.IdTurma, matricula.IdAluno));
            }
            //Deletar Tem item matricula
            await _repositorio.DeletarItemMatriculaTemp(comando.IdMatriculaGuid, 0);

            //Persistir Boletos
            await _repositorio.GerarMensalidade(new Mensalidade(0, matricula.IdAluno, id, matricula.TotalParcelas, Convert.ToDecimal(matricula.ValorContrato), matricula.ValorDesconto, matricula.DataIncialPagamento, 2));

            //Persistir Boleto Matricula
            await _repositorio.GerarMensalidade(new Mensalidade(0, matricula.IdAluno, id, 1, Convert.ToDecimal(matricula.ValorMaricula), matricula.ValorDesconto, matricula.DataIncialPagamento, 1));

            // Retornar o resultado para tela
            return(new ComandoResultado(true, "Matricula realizada com sucesso", new
            {
                Id = id,
                Nome = "Matriculado",
                Status = true
            }));
        }