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); }
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); }
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()); } }
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); } }
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(); } }
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); } }
private string ObterUltimaSituacao(HorasMesPrestador prestadorHoras) { var situacao = prestadorHoras.LogsHorasMesPrestador.OrderByDescending(x => x.DataAlteracao).ThenByDescending(x => x.Id).FirstOrDefault().SituacaoNova; return(situacao); }