public void EfetuarReajustesDeContratos()
        {
            var reajustes = _reajusteContratoRepository.ObterReajustesParaJob();

            foreach (var reajuste in reajustes)
            {
                reajuste.Situacao = SharedEnuns.SituacoesReajusteContrato.ReajusteFinalizado.GetHashCode();

                // criar regristro na base e no eacesso
                var valorPrestador = new ValorPrestador
                {
                    DataAlteracao     = DateTime.Now,
                    DataReferencia    = reajuste.DataReajuste,
                    IdMoeda           = 1,
                    IdPrestador       = reajuste.IdPrestador,
                    IdTipoRemuneracao = reajuste.IdTipoContrato,
                    PermiteExcluir    = false,
                    ValorMes          = reajuste.ValorContrato,
                    ValorHora         = reajuste.ValorContrato / reajuste.QuantidadeHorasContrato,
                    Quantidade        = reajuste.QuantidadeHorasContrato
                };

                _reajusteContratoRepository.UpdateComLog(reajuste, SharedEnuns.AcoesLog.Finalizado.GetHashCode());

                _prestadorService.PersistirPrestadorRemuneracao(valorPrestador);
                _prestadorService.InserirRemuneracaoEAcesso(valorPrestador);
            }
        }
        public void RemoverValorPrestador(ValorPrestador valorPrestador)
        {
            _valorPrestadorRepository.Remove(valorPrestador);
            _unitOfWork.Commit();

            var prestador = _prestadorRepository.BuscarPorId(valorPrestador.IdPrestador);

            using (IDbConnection dbConnection = new SqlConnection(_connectionStrings.Value.EacessoConnection))
            {
                foreach (var valor in prestador.ValoresPrestador)
                {
                    InativarRemuneracaoPrestador(valor);
                }
            }
        }
        public void InativarRemuneracaoPrestador(ValorPrestador valorPrestador)
        {
            var prestador = _prestadorRepository.BuscarPorId(valorPrestador.IdPrestador);

            using (IDbConnection dbConnection = new SqlConnection(_connectionStrings.Value.EacessoConnection))
            {
                foreach (var valor in prestador.ValoresPrestador)
                {
                    var query = "UPDATE stfcorp.tblProfissionaisRemuneracoes SET" +
                                " Inativo = 1" +
                                //" WHERE IdProfissional = " + prestador.CodEacessoLegado + " and (vrmes = " + valor.ValorMes + " or vrhora = " + valor.ValorHora + ")";
                                " WHERE IdProfissional = " + prestador.CodEacessoLegado + " and (vrmes = @ValorMes or vrhora = @ValorHora)";

                    dbConnection.Query(query, new { valor.ValorMes, valor.ValorHora });
                }
            }
        }
        public bool ValidaExcluir(ValorPrestador valorPrestador)
        {
            var horasMesPrestador = _horasMesPrestadorService.BuscarHorasMesPrestadorPorPrestador(valorPrestador.IdPrestador);

            return(horasMesPrestador.Count == 0 || !horasMesPrestador.Any(x => x.DataAlteracao >= valorPrestador.DataAlteracao));
        }