Beispiel #1
0
        /// <summary>
        /// Método responsável por inicializar os valores dos campos do popup a partir do último histórico de uma tarefa, caso não tenha inicializa valores padrões.
        /// </summary>
        /// <param name="oidCronogramaTarefa">Oid da Tarefa</param>
        /// <param name="nbEstimativaInicial">Estimativa Inicial (Hora) da tarefa</param>
        public virtual void InicializarHistoricoTarefa(CronogramaTarefaDecorator cronogramaTarefaItem, string login)
        {
            view.Desabilitar();
            view.TxJustificativaDeReducao = "";
            loginColaborador = login;

            InicializadorEstimativaDto inicializador = GetInicializadorEstimativaInicial(login);

            horaInicial         = inicializador.HoraInicialEstimativa;
            HoraInicialSugerida = inicializador.HoraInicialEstimativa;
            view.DtRealizado    = inicializador.DataEstimativa;
            DiaTrabalhoAtual    = inicializador.DiaAtual;
            DataSugerida        = inicializador.DataEstimativa;
            SelecionarPeriodoTrabalhoDiaAtual();
            cronogramaTarefa             = cronogramaTarefaItem;
            horaEstimativaInicial        = cronogramaTarefa.EstimativaInicial;
            view.OidSituacaoPlanejamento = cronogramaTarefa.OidSituacaoPlanejamentoTarefa;
            view.TxComentario            = "";
            horaRealizada   = new TimeSpan(0);
            horaRestante    = cronogramaTarefa.NbEstimativaRestante.ToTimeSpan();
            horaFinal       = horaInicial;
            estimativaTotal = new TimeSpan(horaRestante.Ticks);
            AtualizarValoresHorariosDaView();
            view.Habilitar();
            //sempre iniciar desativado o painel de justificativa
            view.AlterarEstadoAtivacaoPainelJustificativa(false);
        }
        public ActionResult UltimoHistorico(string login, DateTime?data, Guid?oidTarefa)
        {
            if (!string.IsNullOrWhiteSpace(login))
            {
                InicializadorEstimativaDto retorno = null;

                if (data.HasValue)
                {
                    retorno = TarefaHistoricoTrabalhoBo.SelecionarInicializadorEstimativaColaboradorParaDataEspecifica(login, data.Value);
                }
                else
                {
                    retorno = TarefaHistoricoTrabalhoBo.SelecionarInicializadorEstimativaDto(login, DateTime.Now.Date);
                }

                if (retorno == null)
                {
                    return(new HttpNotFoundResult());
                }

                return(new JsonNetResult(retorno));
            }

            if (oidTarefa.HasValue)
            {
                var resultado = TarefaHistoricoTrabalhoBo.ConsultarTarefaHistoricoAtualPorOidTarefaDto(oidTarefa.Value);
                if (resultado == null)
                {
                    return(new HttpNotFoundResult());
                }
                return(Json(resultado, JsonRequestBehavior.AllowGet));
            }
            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Parâmetro inválido."));
        }
Beispiel #3
0
 public void DadoQueOUltimoEsforcoEstimadoPeloColaboradorSejaNoDiaAs(DateTime dataAtual, string horaInicio)
 {
     inicializadorDeEstimativa = new InicializadorEstimativaDto()
     {
         DataEstimativa = dataAtual, DiaAtual = diaTrabalhoAtual, HoraInicialEstimativa = ConversorTimeSpan.ConverterHorasDeStringParaTimeSpan(horaInicio)
     };
     planejamentoServiceStub.RetornoInicializadorEstimativa = inicializadorDeEstimativa;
 }
Beispiel #4
0
        /// <summary>
        /// Método responsável por selecionar o dia de trabalho atual
        /// </summary>
        /// <param name="dataSelecionada">data para selecionar o dia atual</param>
        public void SelecionarDiaTrabalho(DateTime dataSelecionada)
        {
            InicializadorEstimativaDto inicializador = servicoPlanejamento.ConsultarHorarioUltimaTarefaDiaColaborador(LoginColaborador, dataSelecionada);

            DiaTrabalhoAtual = inicializador.DiaAtual;
            horaInicial      = inicializador.HoraInicialEstimativa;
            SelecionarPeriodoTrabalhoDiaAtual();
            CalcularHoraFinal();
            AtualizarValoresHorariosDaView();
        }
Beispiel #5
0
        /// <summary>
        /// Método responsável por selecionar o dia de trabalho atual
        /// </summary>
        /// <param name="dataSelecionada">data para selecionar o dia atual</param>
        public void SelecionarDiaTrabalho(DateTime dataSelecionada)
        {
            if (string.IsNullOrEmpty(Login))
            {
                throw new Exception("Deveria ter sido preenchido o login do colaborador");
            }

            InicializadorEstimativaDto inicializador = planejamentoServiceClient.ConsultarHorarioUltimaTarefaDiaColaborador(Login, dataSelecionada);

            DiaTrabalhoAtual = inicializador.DiaAtual;
            horaInicial      = inicializador.HoraInicialEstimativa;
            SelecionarPeriodoTrabalhoDiaAtual();
            CalcularHoraFinal();
        }
Beispiel #6
0
 public void InicializarDados()
 {
     situacoesPlanejamentoAtivas   = new List <SituacaoPlanejamentoDTO>();
     situacoesPlanejamentoInativas = new List <SituacaoPlanejamentoDTO>();
     CriarSituacoesPlanejamento();
     SelecionarSituacaoPlanejamentoPadrao();
     CriarCronogramas();
     SelecionarCronograma(1);
     tarefas = new List <CronogramaTarefaGridItem>();
     CriarColaboradores();
     CriarCronogramaColaboradoresConfig();
     RetornoInicializadorEstimativa       = new InicializadorEstimativaDto();
     RetornoUltimaTarefaHistoricoTrabalho = new TarefaHistoricoTrabalhoDto();
     RetornoUltimaTarefaDiaColaborador    = new InicializadorEstimativaDto();
 }
Beispiel #7
0
        /// <summary>
        /// Método para preencher uma inicialização do dia selecionado
        /// </summary>
        /// <param name="semanaTrabalho">semana de trabalho do colaborador</param>
        /// <param name="dataSelecionada">data de selecao</param>
        /// <returns></returns>
        private static InicializadorEstimativaDto PreencherInicializacaoDiaSelecionado(SemanaTrabalho semanaTrabalho, DateTime dataSelecionada)
        {
            InicializadorEstimativaDto inicializadorDto = new InicializadorEstimativaDto();

            if (SemanaTrabalhoBo.DiaAtualPossuiPeriodoTrabalho(semanaTrabalho, dataSelecionada.DayOfWeek))
            {
                inicializadorDto.DataEstimativa = dataSelecionada;
                DiaTrabalho dia   = SemanaTrabalhoDao.SelecionarDiaTrabalho(semanaTrabalho, dataSelecionada.DayOfWeek);
                long        ticks = dia.PeriodosDeTrabalho.Min(o => ConversorTimeSpan.ConverterHorasDeStringParaTicks(o.HoraInicial));
                inicializadorDto.HoraInicialEstimativa = new TimeSpan(ticks);
            }
            else
            {
                inicializadorDto = new InicializadorEstimativaDto()
                {
                    DataEstimativa = dataSelecionada, HoraInicialEstimativa = new TimeSpan(8, 0, 0)
                }
            };

            inicializadorDto.DiaAtual = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDto(dataSelecionada.DayOfWeek, semanaTrabalho);
            return(inicializadorDto);
        }
Beispiel #8
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);
            }
        }