private void EnviarPeriodoParaEacesso(PeriodoRepasse periodoRepasse)
        {
            var celulas = ObterTodasCelulas();

            var connectionString = _connectionStrings.Value.EacessoConnection;

            using (IDbConnection dbConnection = new SqlConnection(connectionString))
            {
                dbConnection.Open();
                string sQueryInsercao = "";

                foreach (var celula in celulas)
                {
                    string QueryVerificacao = $@"SELECT * FROM tblAbertura_Fechamento_Repasse WHERE ID_CELULA ={celula}  AND DT_ABERTURA_REPASSE ='{periodoRepasse.DtLancamento}' ";
                    var    result           = dbConnection.Query(QueryVerificacao);
                    if (result.Count() == 0)
                    {
                        sQueryInsercao = $@"insert into stfcorp.tblabertura_fechamento_repasse (ID_CELULA, DT_ABERTURA_REPASSE) values ({celula}, '{periodoRepasse.DtLancamento}')";
                        dbConnection.Execute(sQueryInsercao);
                    }
                }

                dbConnection.Close();
            }
        }
        private void EnviarEmailAtualizacaoRepasse(PeriodoRepasse periodoRepasse)
        {
            List <ValorParametroEmailDTO> parametros = DefinirParametrosRepasse(periodoRepasse);
            var email = new EmailDto
            {
                IdTemplate       = 8,
                RemetenteNome    = "Gestão de Repasses",
                Para             = ObterDestinatarioEmailPeriodoRepasse(),
                ValoresParametro = parametros
            };

            EnviarEmail(email);
        }
 public IActionResult ObterPeriodoRepassePorId()
 {
     try
     {
         PeriodoRepasse periodoRepasse   = _basePeriodoRepasseService.BuscarTodos().OrderBy(x => x.DtLancamento).LastOrDefault();
         var            periodoRepasseVM = _mapper.Map <PeriodoRepasseDto>(periodoRepasse);
         return(Ok(periodoRepasseVM));
     }
     catch (Exception e)
     {
         return(BadRequest());
     }
 }
 private PeriodoRepasseDto CriarEntidadePeriodoParaBroadcast(PeriodoRepasse periodo, bool ehAlteracaoCronograma)
 {
     return(new PeriodoRepasseDto
     {
         DtLancamentoInicio = periodo.DtLancamentoInicio,
         DtLancamentoFim = periodo.DtLancamentoFim,
         DtAnaliseInicio = periodo.DtAnaliseInicio,
         DtAnaliseFim = periodo.DtAnaliseFim,
         DtAprovacaoInicio = periodo.DtAprovacaoInicio,
         DtAprovacaoFim = periodo.DtAprovacaoFim,
         DtLancamento = periodo.DtLancamento,
         EhAlteracaoCronograma = ehAlteracaoCronograma
     });
 }
        public void PopularDataFimEacesso(PeriodoRepasse periodoVigente)
        {
            var connectionString = _connectionStrings.Value.EacessoConnection;

            using (IDbConnection dbConnection = new SqlConnection(connectionString))
            {
                dbConnection.Open();
                string sQueryInsercao = "";

                sQueryInsercao = $@"UPDATE STFCORP.TBLABERTURA_FECHAMENTO_REPASSE SET DT_FECHAMENTO_REPASSE = '{periodoVigente.DtAprovacaoFim}' 
                                    WHERE DT_ABERTURA_REPASSE = '{periodoVigente.DtLancamento}'";
                dbConnection.Execute(sQueryInsercao);

                dbConnection.Close();
            }
        }
        public void Persistir(PeriodoRepasse periodoRepasse)
        {
            var periodoDto = CriarEntidadePeriodoParaBroadcast(periodoRepasse, periodoRepasse.Id == 0 ? false : true);

            if (periodoRepasse.Id == 0)
            {
                _periodoRepasseRepository.Adicionar(periodoRepasse);
                EnviarPeriodoParaEacesso(periodoRepasse);
                EnviarEmailRepasse(periodoRepasse);
            }
            else
            {
                _periodoRepasseRepository.Update(periodoRepasse);
                EnviarEmailAtualizacaoRepasse(periodoRepasse);
            }

            if (_unitOfWork.Commit())
            {
                CadastrarBroadcastsParaAberturaDePeriodo(periodoDto);
            }
        }
        private List <ValorParametroEmailDTO> DefinirParametrosRepasse(PeriodoRepasse periodoRepasse)
        {
            var parametros = new List <ValorParametroEmailDTO>();
            var parametroMesAnoRepasseLancamento = new ValorParametroEmailDTO
            {
                ParametroNome  = "[ParametroMesAnoRepasseLancamento]",
                ParametroValor = periodoRepasse.DtLancamento.ToString("dd/MM/yyyy")
            };

            parametros.Add(parametroMesAnoRepasseLancamento);

            var parametroDataInicioLancamento = new ValorParametroEmailDTO
            {
                ParametroNome  = "[ParametroDataInicioLancamento]",
                ParametroValor = periodoRepasse.DtLancamentoInicio.ToString("dd/MM/yyyy")
            };

            parametros.Add(parametroDataInicioLancamento);

            var parametroDataFimLancamento = new ValorParametroEmailDTO
            {
                ParametroNome  = "[ParametroDataFimLancamento]",
                ParametroValor = periodoRepasse.DtLancamentoFim.ToString("dd/MM/yyyy")
            };

            parametros.Add(parametroDataFimLancamento);

            var parametroDataInicioAprovacao1Nivel = new ValorParametroEmailDTO
            {
                ParametroNome  = "[ParametroDataInicioAprovacao1Nivel]",
                ParametroValor = periodoRepasse.DtAnaliseInicio.ToString("dd/MM/yyyy")
            };

            parametros.Add(parametroDataInicioAprovacao1Nivel);

            var parametroDataFimAprovacao1Nivel = new ValorParametroEmailDTO
            {
                ParametroNome  = "[ParametroDataFimAprovacao1Nivel]",
                ParametroValor = periodoRepasse.DtAnaliseFim.ToString("dd/MM/yyyy")
            };

            parametros.Add(parametroDataFimAprovacao1Nivel);

            var parametroDataInicioAprovacao2Nivel = new ValorParametroEmailDTO
            {
                ParametroNome  = "[ParametroDataInicioAprovacao2Nivel]",
                ParametroValor = periodoRepasse.DtAprovacaoInicio.ToString("dd/MM/yyyy")
            };

            parametros.Add(parametroDataInicioAprovacao2Nivel);

            var parametroDataFimAprovacao2Nivel = new ValorParametroEmailDTO
            {
                ParametroNome  = "[ParametroDataFimAprovacao2Nivel]",
                ParametroValor = periodoRepasse.DtAprovacaoFim.ToString("dd/MM/yyyy")
            };

            parametros.Add(parametroDataFimAprovacao2Nivel);

            var parametroMesAnoRepasseReferencia = new ValorParametroEmailDTO
            {
                ParametroNome  = "[ParametroMesAnoRepasseReferencia]",
                ParametroValor = periodoRepasse.DtLancamento.AddMonths(-1).ToString("dd/MM/yyyy")
            };

            parametros.Add(parametroMesAnoRepasseReferencia);

            var parametroDatatFechamento = new ValorParametroEmailDTO
            {
                ParametroNome  = " [ParametroDataFechamento]",
                ParametroValor = periodoRepasse.DtAprovacaoFim.ToString("dd/MM/yyyy")
            };

            parametros.Add(parametroDatatFechamento);
            return(parametros);
        }
 private bool DataRepasseEstaDentroDoUltimoPeriodoCadastrado(DateTime dataRepasse, PeriodoRepasse periodoVigente) =>
 dataRepasse >= periodoVigente.DtAnaliseInicio && dataRepasse <= periodoVigente.DtAnaliseFim;