Ejemplo n.º 1
0
        public bool VerificarIntegracaoPrestadorRm(HorasMesPrestador horasMesPrestador)
        {
            var connectionStringRM = _connectionStrings.Value.RMConnection;
            int possuiRepresentante = 1, possuiEmpresa = 1;

            using (IDbConnection dbConnection = new SqlConnection(connectionStringRM))
            {
                var prestador = _prestadorRepository.Buscar(x => x.Id == horasMesPrestador.IdPrestador).FirstOrDefault();

                var codRepresentanteRM = prestador.IdRepresentanteRmTRPR;
                var valorString        = ("000000" + codRepresentanteRM);
                var tam = valorString.Length;
                codRepresentanteRM = valorString.Substring(tam - 6);

                var codEmpresaRM = _empresaService.ObterCodEmpresaRm(horasMesPrestador.IdPrestador);

                var query = "SELECT count(1) from trpr where codrpr = '" + codRepresentanteRM + "'";
                possuiRepresentante = dbConnection.Query <int>(query).FirstOrDefault();

                query         = "SELECT count(1) from fcfo where codcfo = '" + codEmpresaRM + "'";
                possuiEmpresa = dbConnection.Query <int>(query).FirstOrDefault();

                dbConnection.Close();
            }

            return(possuiRepresentante + possuiEmpresa >= 2);
        }
Ejemplo n.º 2
0
        public List <LogHorasMesPrestador> BuscarLogsPorPrestador(HorasMesPrestador prestadorHoras)
        {
            var result = DbSet
                         .Include(x => x.HorasMesPrestador).AsNoTracking()
                         .Where(x => x.HorasMesPrestador.IdHorasMes == prestadorHoras.IdHorasMes && x.HorasMesPrestador.IdPrestador == prestadorHoras.IdPrestador)
                         .ToList();

            return(result);
        }
Ejemplo n.º 3
0
 private static string DefinirSituacao(HorasMesPrestador prestadorHoras, bool recadastro)
 {
     if (prestadorHoras.SemPrestacaoServico)
     {
         return(SharedEnuns.TipoSituacaoHorasMesPrestador.CANCELADO.GetDescription());
     }
     else
     {
         return(recadastro ?
                SharedEnuns.TipoSituacaoHorasMesPrestador.HORAS_RECADASTRADAS.GetDescription() :
                SharedEnuns.TipoSituacaoHorasMesPrestador.HORAS_CADASTRADAS.GetDescription());
     }
 }
Ejemplo n.º 4
0
        private bool VerificaSeLancadorEhAprovador(HorasMesPrestador prestadorHoras)
        {
            var prestador = _prestadorRepository.BuscarPorIdComIncludeCelula(prestadorHoras.IdPrestador);

            var idPessoaLancador         = _pessoaRepository.ObterIdPessoa(_variables.IdEacesso);
            var idPessoaPrestador        = prestador.IdPessoa;
            var idPessoaAprovadorGerente = prestador.Celula?.IdPessoaResponsavel;
            var idPessoaAprovadorDiretor = prestador.Celula?.CelulaSuperior?.IdPessoaResponsavel;

            if (prestadorHoras.Extras.HasValue && prestadorHoras.Extras != 0)
            {
                return(idPessoaLancador == idPessoaAprovadorDiretor && idPessoaPrestador != idPessoaAprovadorDiretor);
            }
            else
            {
                var lancadorGerente = (idPessoaLancador == idPessoaAprovadorGerente && idPessoaPrestador != idPessoaAprovadorGerente);
                var lancadorDiretor = (idPessoaLancador == idPessoaAprovadorDiretor && idPessoaPrestador != idPessoaAprovadorDiretor);

                return(lancadorGerente || lancadorDiretor);
            }
        }
Ejemplo n.º 5
0
        public void SalvarHoras(HorasMesPrestador prestadorHoras)
        {
            var horaAtual    = _horasMesPrestadorRepository.BuscarLancamentoParaPeriodoVigente(prestadorHoras.IdPrestador, prestadorHoras.IdHorasMes);
            var horaAprovada = !prestadorHoras.Situacao.Equals(SharedEnuns.TipoSituacaoHorasMesPrestador.CANCELADO.GetDescription()) &&
                               VerificaSeLancadorEhAprovador(prestadorHoras);

            if (prestadorHoras.SemPrestacaoServico)
            {
                prestadorHoras.Extras = null;
                prestadorHoras.Horas  = null;
            }
            if (horaAtual != null)
            {
                horaAtual.Situacao            = prestadorHoras.Situacao;
                horaAtual.SemPrestacaoServico = prestadorHoras.SemPrestacaoServico;
                AdicionarLogHorasCadastradas(horaAtual, horaAprovada, true, _variables.UserName);

                horaAtual.Horas    = prestadorHoras.Horas;
                horaAtual.Extras   = prestadorHoras.Extras;
                horaAtual.Situacao = ObterUltimaSituacao(horaAtual);
                horaAtual.ObservacaoSemPrestacaoServico = prestadorHoras.ObservacaoSemPrestacaoServico;
                horaAtual.SemPrestacaoServico           = prestadorHoras.SemPrestacaoServico;
                _horasMesPrestadorRepository.Update(horaAtual);
            }
            else
            {
                AdicionarLogHorasCadastradas(prestadorHoras, horaAprovada, false, _variables.UserName);
                prestadorHoras.Situacao = ObterUltimaSituacao(prestadorHoras);
                _horasMesPrestadorRepository.Adicionar(prestadorHoras);
            }

            _unitOfWork.Commit();
            if (horaAprovada)
            {
                CriarRegistroPrestadorNf(prestadorHoras.Id);
                _unitOfWork.Commit();
            }
        }
Ejemplo n.º 6
0
        private static void AdicionarLogHorasCadastradas(HorasMesPrestador prestadorHoras, bool horaAprovada, bool recadastro, string usuario)
        {
            LogHorasMesPrestador log = new LogHorasMesPrestador
            {
                SituacaoAnterior = prestadorHoras.LogsHorasMesPrestador.LastOrDefault()?.SituacaoNova,
                SituacaoNova     = DefinirSituacao(prestadorHoras, recadastro),
                DataAlteracao    = DateTime.Now,
                Usuario          = usuario
            };

            prestadorHoras.LogsHorasMesPrestador.Add(log);

            if (horaAprovada)
            {
                LogHorasMesPrestador logAprovado = new LogHorasMesPrestador
                {
                    SituacaoAnterior = DefinirSituacao(prestadorHoras, recadastro),
                    SituacaoNova     = SharedEnuns.TipoSituacaoHorasMesPrestador.HORAS_APROVADAS.GetDescription(),
                    DataAlteracao    = DateTime.Now,
                    Usuario          = usuario
                };
                prestadorHoras.LogsHorasMesPrestador.Add(logAprovado);
            }
        }
Ejemplo n.º 7
0
        private string ObterUltimaSituacao(HorasMesPrestador prestadorHoras)
        {
            var situacao = prestadorHoras.LogsHorasMesPrestador.OrderByDescending(x => x.DataAlteracao).ThenByDescending(x => x.Id).FirstOrDefault().SituacaoNova;

            return(situacao);
        }