Tempo aproximado para leitura: 00:02:30 min
Dúvida
Como funcional o cálculo de horas (AF9_HDURAC) na tarefa do projeto
Ambiente
Cross Segmentos - Backoffice Protheus - SIGAPMS - Todas as versões.
Solução
Funcionamento dos campos da tarefa do projeto na inclusão/alteração:
- "Duracao Hrs (AF9_HDURAC)"
- "Calendario (AF9_CALEND)"
- "Dt.Ini.Prv* (AF9_START)"
- "Dt.Fin. Prv. (AF9_FINISH)"
- "Hr.Inic.Prv. (AF9_HORAI)"
- "Hr.Fin. Prv (AF9_HORAF)"
Se informado uma quantia de horas (AF9_HDURAC) maior que a carga horária do calendário (AEG_HUTEIS), o sistema joga para os próximos dias as horas excedentes, os campos que se alteram com isso: "Dt.Fin. Prv. (AF9_FINISH)" e "Hr.Fin. Prv (AF9_HORAF)".
Exemplo conceitual:
Carga horário do calendário são 9 horas (AEG_HUTEIS), De inicio as 09:00 (AEG_HORAI) e fim as 17:00 (AEG_HORAF). Eu informo na duração da tarefa (AF9_HDURAC) 12 horas.
Como o calendário admite o máximo de 9 horas ao dia, ele subtrairá até dar zero a hora final (AF9_HORAF) menos a inicial (AF9_HORAI). Cada subtração que ainda sobrar horas, é acrescentado 1 dia a mais na tarefa (AF9_FINISH).
Exemplo prático:
Na tarefa iniciada no dia 01/01/2024 será colocado o calendário "001" tem a 9 horas de total de carga horária (08:00 até 17:00), então temos no começo:
- "Duracao Hrs (AF9_HDURAC)" = 9
- "Calendario (AF9_CALEND)" = 001
- "Dt.Ini.Prv* (AF9_START)" = 01/01/2024
- "Dt.Fin. Prv. (AF9_FINISH)" = 01/01/2024
- "Hr.Inic.Prv. (AF9_HORAI)" = 08:00
- "Hr.Fin. Prv (AF9_HORAF)" = 17:00
Ao alterar a duração de "9" para "22" teremos:
O sistema subtrairá dentro do intervalo (AF9_HORAI até AF9_HORAF) definido, as 22 horas informadas (AF9_HDURAC):
- 22 - 9 (horas do intervalo) = 13 (SUBTRAÇÃO 1)
- 13 - 9 (horas do intervalo) = 4 (SUBTRAÇÃO 2)
- 4 - 9 (horas do intervalo) = ZERAM AS HORAS (não fica negativo) (SUBTRAÇÃO 3)
O sistema efetuou 3 subtrações, então a data final da tarefa (AF9_FINISH) será reajustado há 3 dias a frente (01/01/2024 + 3 dias = 03/01/2024) (dia 1 completo (9 horas) = 01/01/2024, dia 2 completo (9 horas) = 02/01/2024, dia 3 parcial (4 horas) = 03/01/2024).
No último dia novo calculado ("AF9_FINISH" = 03/01/2024), o intervalo serão as últimas horas subtraídas, ou seja, o último dia (AF9_FINISH) começara as 09:00 (AF9_HORAI) e terminará as 13:00 (AF9_HORAF)
Resultado final:
- "Duracao Hrs (AF9_HDURAC)" = 22
- "Calendario (AF9_CALEND)" = 001
- "Dt.Ini.Prv* (AF9_START)" = 01/01/2024
- "Dt.Fin. Prv. (AF9_FINISH)" = 03/01/2024
- "Hr.Inic.Prv. (AF9_HORAI)" = 08:00
- "Hr.Fin. Prv (AF9_HORAF)" = 12:00
Supondo que o cabeçalho da tarefa esteja assim:
- "Duracao Hrs (AF9_HDURAC)" = 9
- "Calendario (AF9_CALEND)" = 001
- "Dt.Ini.Prv* (AF9_START)" = 01/01/2024
- "Dt.Fin. Prv. (AF9_FINISH)" = 01/01/2024
- "Hr.Inic.Prv. (AF9_HORAI)" = 08:00
- "Hr.Fin. Prv (AF9_HORAF)" = 17:00
Se for alterado o (AF9_FINISH) manualmente para 3 dias acima aparecerá a mensagem:

Resultado se escolher data inicial:
(AF9_HORAF) = 03/04/2024
(AF9_HORAI) = 03/04/2024
Resultado se escolher duração:
(AF9_HORAF) = 01/04/2024
(AF9_HORAI) = 03/04/2024
(AF9_HDURAC)" = 27 (3 [dias a frente colocado] * 9 [intervalo])
0 Comentários