Example #1
0
        /// <summary>
        /// Método responsável por retornar a ultima hora trabalhada pelo colaborador
        /// </summary>
        /// <param name="contexto"></param>
        /// <param name="login"></param>
        /// <returns></returns>
        public static TarefaHistoricoTrabalhoDto ConsultarUltimoEsforcoRealizadoColaboradorDto(WexDb contexto, string login)
        {
            TarefaHistoricoTrabalho historicoAtual = TarefaHistoricoTrabalhoDao.ConsultarUltimoEsforcoRealizadoColaborador(contexto, login);

            if (historicoAtual == null)
            {
                return(new TarefaHistoricoTrabalhoDto());
            }
            return(DtoFactory(historicoAtual));
        }
Example #2
0
        /// <summary>
        /// Método responsável por efetuar a seleção da hora de inicio da estimativa de uma tarefa para o colaborador
        /// </summary>
        /// <param name="contexto">sessão atual do banco</param>
        /// <param name="loginColaborador">login do colaborador atual</param>
        /// <returns>tarefaHistorico preenchida com</returns>
        public static InicializadorEstimativaDto SelecionarInicializadorEstimativaDto(string loginColaborador, DateTime dataSolicitacao, SemanaTrabalho semanaTrabalho)
        {
            WexDb contexto = ContextFactoryManager.CriarWexDb();

            TarefaHistoricoTrabalho ultimoHistoricoTrabalho = TarefaHistoricoTrabalhoDao.ConsultarUltimoEsforcoRealizadoColaborador(contexto, loginColaborador, dataSolicitacao);

            InicializadorEstimativaDto inicializadorEstimativaDto = new InicializadorEstimativaDto();

            DateTime dataSelecionada;

            if (!ValidarTarefaHistoricoTrabalho(ultimoHistoricoTrabalho))
            {
                dataSelecionada = dataSolicitacao.Date;
                SelecionarDataDiaUtilInicial(semanaTrabalho, ref dataSelecionada);
                return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
            }

            bool ultrapassouLimiteDia = ultimoHistoricoTrabalho.HoraFinal.Days > 0;

            dataSelecionada = new DateTime(ultimoHistoricoTrabalho.DtRealizado.Ticks);
            if (ultrapassouLimiteDia)
            {
                dataSelecionada = SelecionarDataProximoDiaUtil(semanaTrabalho, dataSelecionada);
                return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
            }

            SelecionarDataDiaUtilInicial(semanaTrabalho, ref dataSelecionada);
            if (dataSelecionada.Equals(dataSolicitacao.Date))
            {
                if (dataSelecionada.Equals(ultimoHistoricoTrabalho.DtRealizado))
                {
                    inicializadorEstimativaDto.DataEstimativa        = dataSelecionada;
                    inicializadorEstimativaDto.HoraInicialEstimativa = ultimoHistoricoTrabalho.HoraFinal;
                    inicializadorEstimativaDto.DiaAtual = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDto(dataSelecionada.DayOfWeek, semanaTrabalho);
                    return(inicializadorEstimativaDto);
                }
                return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
            }
            else
            {
                if (SemanaTrabalhoBo.DiaAtualPossuiPeriodoTrabalho(semanaTrabalho, dataSelecionada.DayOfWeek))
                {
                    DiaTrabalho dia   = SemanaTrabalhoDao.SelecionarDiaTrabalho(semanaTrabalho, dataSelecionada.DayOfWeek);
                    long        ticks = dia.PeriodosDeTrabalho.Max(o => ConversorTimeSpan.ConverterHorasDeStringParaTicks(o.HoraFinal));
                    TimeSpan    horaFinalExpediente = new TimeSpan(ticks);
                    if (ultimoHistoricoTrabalho.HoraFinal >= horaFinalExpediente)
                    {
                        dataSelecionada = SelecionarDataProximoDiaUtil(semanaTrabalho, dataSelecionada);
                        return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
                    }
                    if (dataSelecionada.Equals(ultimoHistoricoTrabalho.DtRealizado))
                    {
                        inicializadorEstimativaDto.DataEstimativa        = dataSelecionada;
                        inicializadorEstimativaDto.HoraInicialEstimativa = ultimoHistoricoTrabalho.HoraFinal;
                        inicializadorEstimativaDto.DiaAtual = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDto(dataSelecionada.DayOfWeek, semanaTrabalho);
                        return(inicializadorEstimativaDto);
                    }
                    return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
                }
                else
                {
                    inicializadorEstimativaDto.DataEstimativa        = dataSolicitacao.Date;
                    inicializadorEstimativaDto.HoraInicialEstimativa = new TimeSpan(8, 0, 0);
                    inicializadorEstimativaDto.DiaAtual = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDto(dataSolicitacao.DayOfWeek, semanaTrabalho);
                }
                return(inicializadorEstimativaDto);
            }
        }