БД: панель "Работы проектов" - добавлена проверка наличия работы в буфере перед построением списка зависимых, реализована проверка доступных для отображения работ при формировании данных диаграммы Ганта

This commit is contained in:
Mikhail Chechnev 2024-01-31 15:03:59 +03:00
parent 30122efc4c
commit 93a73c85ae

View File

@ -4717,6 +4717,11 @@ text="Проверить, что для расчётных полей дата-
/* Добавляем работу в диаграмму */ /* Добавляем работу в диаграмму */
PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK(RGANTT => RG, RTASK => RGT); PKG_P8PANELS_VISUAL.TGANTT_ADD_TASK(RGANTT => RG, RTASK => RGT);
end loop; end loop;
/* Проверим, что есть хоть что-то для отображения */
if (RG.RTASKS.COUNT = 0) then
P_EXCEPTION(0,
'Для проекта не определены этапы/работы, отображение которых допустимо в диаграмме (убедитесь, что для них в учётных данных заданы плановые даты начала/окончания).');
end if;
/* Формируем список */ /* Формируем список */
COUT := PKG_P8PANELS_VISUAL.TGANTT_TO_XML(RGANTT => RG, NINCLUDE_DEF => NINCLUDE_DEF); COUT := PKG_P8PANELS_VISUAL.TGANTT_TO_XML(RGANTT => RG, NINCLUDE_DEF => NINCLUDE_DEF);
end JB_JOBS_LIST; end JB_JOBS_LIST;
@ -5819,7 +5824,14 @@ text="Проверить, что для расчётных полей дата-
end loop; end loop;
end loop; end loop;
/* Обходим работы проекта ещё раз, для наполнения списка предшествующих в буфере балансировки */ /* Обходим работы проекта ещё раз, для наполнения списка предшествующих в буфере балансировки */
for PJ in (select J.RN NRN from PROJECTJOB J where J.PRN = PRJ.NRN) for PJ in (select J.RN NRN
from PROJECTJOB J
where J.PRN = PRJ.NRN
and exists (select null
from P8PNL_JB_JOBS JB
where JB.IDENT = NIDENT
and JB.STAGE = 0
and JB.SOURCE = J.RN))
loop loop
RH_JB_JOBS := JB_JOBS_GET_BY_SOURCE(NIDENT => NIDENT, NPRN => NJB_PRJCTS, NSOURCE => PJ.NRN); RH_JB_JOBS := JB_JOBS_GET_BY_SOURCE(NIDENT => NIDENT, NPRN => NJB_PRJCTS, NSOURCE => PJ.NRN);
/* Помещаем предшествующие работы в буфер балансировки */ /* Помещаем предшествующие работы в буфер балансировки */