forked from CITKParus/P8-Panels
ЦИТК-835 - Доработка панели "Производственная программа"
This commit is contained in:
parent
b533b7ce42
commit
54a9d56096
@ -81,6 +81,22 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
SFCPRODPLAN_TYPE constant PKG_STD.TSTRING := 'План'; -- Тип планов (мнемокод состояния)
|
SFCPRODPLAN_TYPE constant PKG_STD.TSTRING := 'План'; -- Тип планов (мнемокод состояния)
|
||||||
NMAX_TASKS constant PKG_STD.TNUMBER := 10000; -- Максимальное количество отображаемых задач
|
NMAX_TASKS constant PKG_STD.TNUMBER := 10000; -- Максимальное количество отображаемых задач
|
||||||
|
|
||||||
|
/* Константы - классы задач плана ("Производственная программа") */
|
||||||
|
NCLASS_WO_DEFICIT constant PKG_STD.TNUMBER := 0; -- Без дефицита выпуска
|
||||||
|
NCLASS_PART_DEFICIT constant PKG_STD.TNUMBER := 1; -- С частичным дефицитом выпуска
|
||||||
|
NCLASS_FULL_DEFICIT constant PKG_STD.TNUMBER := 2; -- С полным дефицитом выпуска
|
||||||
|
NCLASS_WITH_DEFICIT constant PKG_STD.TNUMBER := 3; -- С дефицитом запуска или датой меньше текущей
|
||||||
|
NCLASS_FUTURE_DATE constant PKG_STD.TNUMBER := 4; -- Дата анализа еще не наступила
|
||||||
|
NCLASS_WO_LINKS constant PKG_STD.TNUMBER := 5; -- Задача без связи
|
||||||
|
|
||||||
|
/* Константы - типы задач плана, содержание детализации ("Производственная программа") */
|
||||||
|
NTASK_TYPE_RL_WITH_GP constant PKG_STD.TNUMBER := 0; -- Маршрутные листы с развертыванием товарных запасов
|
||||||
|
NTASK_TYPE_RL_WITH_DL constant PKG_STD.TNUMBER := 1; -- Маршрутные листы с развертыванием комплектаций
|
||||||
|
NTASK_TYPE_INC_DEPS constant PKG_STD.TNUMBER := 2; -- Приход из подразделений
|
||||||
|
NTASK_TYPE_INC_DEPS_RL constant PKG_STD.TNUMBER := 3; -- Приход из подразделений и маршрутные листы
|
||||||
|
NTASK_TYPE_RL constant PKG_STD.TNUMBER := 4; -- Маршрутные листы
|
||||||
|
NTASK_TYPE_EMPTY constant PKG_STD.TNUMBER := null; -- Нет детализации
|
||||||
|
|
||||||
/* Константы - дополнительные атрибуты */
|
/* Константы - дополнительные атрибуты */
|
||||||
STASK_ATTR_START_FACT constant PKG_STD.TSTRING := 'start_fact'; -- Запущено
|
STASK_ATTR_START_FACT constant PKG_STD.TSTRING := 'start_fact'; -- Запущено
|
||||||
STASK_ATTR_MAIN_QUANT constant PKG_STD.TSTRING := 'main_quant'; -- Количество план
|
STASK_ATTR_MAIN_QUANT constant PKG_STD.TSTRING := 'main_quant'; -- Количество план
|
||||||
@ -273,7 +289,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||||||
BVISIBLE => true);
|
BVISIBLE => true);
|
||||||
/* Если тип = 3, то необходимо включать состояние */
|
/* Если тип = 3, то необходимо включать состояние */
|
||||||
if (NTYPE = 3) then
|
if (NTYPE = NTASK_TYPE_INC_DEPS_RL) then
|
||||||
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
|
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
|
||||||
SNAME => 'SDOC_STATE',
|
SNAME => 'SDOC_STATE',
|
||||||
SCAPTION => 'Состояние',
|
SCAPTION => 'Состояние',
|
||||||
@ -404,7 +420,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
ICURSOR => ICURSOR,
|
ICURSOR => ICURSOR,
|
||||||
NPOSITION => 2);
|
NPOSITION => 2);
|
||||||
/* Если тип = 3, то необходимо включать состояние */
|
/* Если тип = 3, то необходимо включать состояние */
|
||||||
if (NTYPE = 3) then
|
if (NTYPE = NTASK_TYPE_INC_DEPS_RL) then
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||||||
SNAME => 'SDOC_STATE',
|
SNAME => 'SDOC_STATE',
|
||||||
ICURSOR => ICURSOR,
|
ICURSOR => ICURSOR,
|
||||||
@ -1455,7 +1471,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
procedure FCROUTLST_DG_GET
|
procedure FCROUTLST_DG_GET
|
||||||
(
|
(
|
||||||
NFCPRODPLANSP in number, -- Рег. номер связанной спецификации плана
|
NFCPRODPLANSP in number, -- Рег. номер связанной спецификации плана
|
||||||
NTYPE in number, -- Тип спецификации плана (0 - Деталь, 1 - Изделие/сборочная единица, 3/4 - ПиП)
|
NTYPE in number, -- Тип спецификации плана (см. константы NTASK_TYPE_*)
|
||||||
NPAGE_NUMBER in number, -- Номер страницы (игнорируется при NPAGE_SIZE=0)
|
NPAGE_NUMBER in number, -- Номер страницы (игнорируется при NPAGE_SIZE=0)
|
||||||
NPAGE_SIZE in number, -- Количество записей на странице (0 - все)
|
NPAGE_SIZE in number, -- Количество записей на странице (0 - все)
|
||||||
CORDERS in clob, -- Сортировки
|
CORDERS in clob, -- Сортировки
|
||||||
@ -1467,7 +1483,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
/* Выбираем сборку таблицы, исходя из типа спецификации плана */
|
/* Выбираем сборку таблицы, исходя из типа спецификации плана */
|
||||||
case
|
case
|
||||||
/* Деталь */
|
/* Деталь */
|
||||||
when (NTYPE = 0) then
|
when (NTYPE = NTASK_TYPE_RL_WITH_GP) then
|
||||||
/* Получаем таблицу по детали */
|
/* Получаем таблицу по детали */
|
||||||
FCROUTLST_DG_BY_DTL(NFCPRODPLANSP => NFCPRODPLANSP,
|
FCROUTLST_DG_BY_DTL(NFCPRODPLANSP => NFCPRODPLANSP,
|
||||||
NPAGE_NUMBER => NPAGE_NUMBER,
|
NPAGE_NUMBER => NPAGE_NUMBER,
|
||||||
@ -1476,7 +1492,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
NINCLUDE_DEF => NINCLUDE_DEF,
|
NINCLUDE_DEF => NINCLUDE_DEF,
|
||||||
COUT => COUT);
|
COUT => COUT);
|
||||||
/* Изделие/сборочная единица */
|
/* Изделие/сборочная единица */
|
||||||
when (NTYPE = 1) then
|
when (NTYPE = NTASK_TYPE_RL_WITH_DL) then
|
||||||
/* Получаем таблицу по изделию */
|
/* Получаем таблицу по изделию */
|
||||||
FCROUTLST_DG_BY_PRDCT(NFCPRODPLANSP => NFCPRODPLANSP,
|
FCROUTLST_DG_BY_PRDCT(NFCPRODPLANSP => NFCPRODPLANSP,
|
||||||
NPAGE_NUMBER => NPAGE_NUMBER,
|
NPAGE_NUMBER => NPAGE_NUMBER,
|
||||||
@ -1485,7 +1501,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
NINCLUDE_DEF => NINCLUDE_DEF,
|
NINCLUDE_DEF => NINCLUDE_DEF,
|
||||||
COUT => COUT);
|
COUT => COUT);
|
||||||
/* Для приходов из подразделений */
|
/* Для приходов из подразделений */
|
||||||
when ((NTYPE = 3) or (NTYPE = 4)) then
|
when ((NTYPE = NTASK_TYPE_INC_DEPS_RL) or (NTYPE = NTASK_TYPE_RL)) then
|
||||||
/* Получаем таблицу по приходу */
|
/* Получаем таблицу по приходу */
|
||||||
FCROUTLST_DG_BY_DEPS(NFCPRODPLANSP => NFCPRODPLANSP,
|
FCROUTLST_DG_BY_DEPS(NFCPRODPLANSP => NFCPRODPLANSP,
|
||||||
NPAGE_NUMBER => NPAGE_NUMBER,
|
NPAGE_NUMBER => NPAGE_NUMBER,
|
||||||
@ -1520,11 +1536,11 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
DDATE_FROM PKG_STD.TLDATE; -- Дата запуска спецификации
|
DDATE_FROM PKG_STD.TLDATE; -- Дата запуска спецификации
|
||||||
DDATE_TO PKG_STD.TLDATE; -- Дата выпуска спецификации
|
DDATE_TO PKG_STD.TLDATE; -- Дата выпуска спецификации
|
||||||
STASK_CAPTION PKG_STD.TSTRING; -- Описание задачи в Ганте
|
STASK_CAPTION PKG_STD.TSTRING; -- Описание задачи в Ганте
|
||||||
NTYPE PKG_STD.TNUMBER; -- Тип задачи (0/1 - для "Дата выпуска", 2/3/4 - для "Дата выпуска")
|
NTYPE PKG_STD.TNUMBER; -- Тип задачи (см. константы NTASK_TYPE_*)
|
||||||
SDETAIL_LIST PKG_STD.TSTRING; -- Ссылки на детализацию
|
SDETAIL_LIST PKG_STD.TSTRING; -- Ссылки на детализацию
|
||||||
SPLAN_TITLE PKG_STD.TSTRING; -- Заголовок плана
|
SPLAN_TITLE PKG_STD.TSTRING; -- Заголовок плана
|
||||||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
|
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
|
||||||
NTASK_CLASS PKG_STD.TNUMBER; -- Класс задачи
|
NTASK_CLASS PKG_STD.TNUMBER; -- Класс задачи (см. константы NCLASS_*)
|
||||||
NLEVEL_FILTER PKG_STD.TNUMBER; -- Уровень для фильтра
|
NLEVEL_FILTER PKG_STD.TNUMBER; -- Уровень для фильтра
|
||||||
|
|
||||||
/* Объединение значений в строковое представление */
|
/* Объединение значений в строковое представление */
|
||||||
@ -1666,7 +1682,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
NMAIN_QUANT in number, -- Выпуск
|
NMAIN_QUANT in number, -- Выпуск
|
||||||
NREL_FACT in number, -- Выпуск факт
|
NREL_FACT in number, -- Выпуск факт
|
||||||
DREP_DATE_TO in date, -- Дата выпуска
|
DREP_DATE_TO in date, -- Дата выпуска
|
||||||
NTYPE in number, -- Тип (0 - Деталь, 1 - Изделие/сборочная единица)
|
NTYPE in number, -- Тип (см. константы NTASK_TYPE_*)
|
||||||
SDETAIL_LIST in varchar2, -- Ссылки на детализацию
|
SDETAIL_LIST in varchar2, -- Ссылки на детализацию
|
||||||
SMEAS in varchar2 -- Единица измерения
|
SMEAS in varchar2 -- Единица измерения
|
||||||
)
|
)
|
||||||
@ -1748,33 +1764,24 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
NHAVE_LINK in number := 0 -- Наличие связей с "Маршрутный лист" или "Приход из подразделения"
|
NHAVE_LINK in number := 0 -- Наличие связей с "Маршрутный лист" или "Приход из подразделения"
|
||||||
) return number -- Класс задачи
|
) return number -- Класс задачи
|
||||||
is
|
is
|
||||||
NTASK_CLASS PKG_STD.TNUMBER; -- Класс задачи
|
NTASK_CLASS PKG_STD.TNUMBER; -- Класс задачи (см. константы NCLASS*)
|
||||||
begin
|
begin
|
||||||
/*
|
|
||||||
Описание классов:
|
|
||||||
0 - Без дефицита выпуска (последующий цвет "Зеленый")
|
|
||||||
1 - С частичным дефицитом выпуска (последующий цвет "Желто-зелеый")
|
|
||||||
2 - С полным дефицитом выпуска (последующий цвет "Желтый")
|
|
||||||
3 - С дефицитом запуска или датой меньше текущей (последующий цвет "Красный")
|
|
||||||
4 - Дата анализа еще не наступила (последующий цвет "Серый")
|
|
||||||
5 - Задача без связи (последующий цвет "Черный")
|
|
||||||
*/
|
|
||||||
/* Если одна из дат не указана */
|
/* Если одна из дат не указана */
|
||||||
if ((DREP_DATE is null) or (DREP_DATE_TO is null)) then
|
if ((DREP_DATE is null) or (DREP_DATE_TO is null)) then
|
||||||
/* Если спецификация также не имеет связей */
|
/* Если спецификация также не имеет связей */
|
||||||
if (NHAVE_LINK = 0) then
|
if (NHAVE_LINK = 0) then
|
||||||
NTASK_CLASS := 5;
|
NTASK_CLASS := NCLASS_WO_LINKS;
|
||||||
end if;
|
end if;
|
||||||
else
|
else
|
||||||
/* Если нет связанных документов */
|
/* Если нет связанных документов */
|
||||||
if (NHAVE_LINK = 0) then
|
if (NHAVE_LINK = 0) then
|
||||||
/* Если дата запуска меньше текущей даты */
|
/* Если дата запуска меньше текущей даты */
|
||||||
if (DREP_DATE <= sysdate) then
|
if (DREP_DATE <= sysdate) then
|
||||||
NTASK_CLASS := 3;
|
NTASK_CLASS := NCLASS_WITH_DEFICIT;
|
||||||
end if;
|
end if;
|
||||||
/* Если дата больше текущей даты */
|
/* Если дата больше текущей даты */
|
||||||
if (DREP_DATE > sysdate) then
|
if (DREP_DATE > sysdate) then
|
||||||
NTASK_CLASS := 4;
|
NTASK_CLASS := NCLASS_FUTURE_DATE;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
@ -1784,22 +1791,22 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
if (NDEFRESLIZ <> 0) then
|
if (NDEFRESLIZ <> 0) then
|
||||||
/* Если дефицит выпуска = 0 */
|
/* Если дефицит выпуска = 0 */
|
||||||
if (NDEFSTART = 0) then
|
if (NDEFSTART = 0) then
|
||||||
NTASK_CLASS := 0;
|
NTASK_CLASS := NCLASS_WO_DEFICIT;
|
||||||
else
|
else
|
||||||
NTASK_CLASS := 3;
|
NTASK_CLASS := NCLASS_WITH_DEFICIT;
|
||||||
end if;
|
end if;
|
||||||
else
|
else
|
||||||
/* Если дефицит выпуска = 0 */
|
/* Если дефицит выпуска = 0 */
|
||||||
if (NDEFSTART = 0) then
|
if (NDEFSTART = 0) then
|
||||||
NTASK_CLASS := 0;
|
NTASK_CLASS := NCLASS_WO_DEFICIT;
|
||||||
else
|
else
|
||||||
/* Если дефицит запуска = 0 и выпуск факт = 0 */
|
/* Если дефицит запуска = 0 и выпуск факт = 0 */
|
||||||
if ((NDEFRESLIZ = 0) and (NREL_FACT = 0)) then
|
if ((NDEFRESLIZ = 0) and (NREL_FACT = 0)) then
|
||||||
NTASK_CLASS := 2;
|
NTASK_CLASS := NCLASS_FULL_DEFICIT;
|
||||||
end if;
|
end if;
|
||||||
/* Если дефицит запуска = 0 и выпуск факт <> 0 */
|
/* Если дефицит запуска = 0 и выпуск факт <> 0 */
|
||||||
if ((NDEFRESLIZ = 0) and (NREL_FACT <> 0)) then
|
if ((NDEFRESLIZ = 0) and (NREL_FACT <> 0)) then
|
||||||
NTASK_CLASS := 1;
|
NTASK_CLASS := NCLASS_PART_DEFICIT;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
@ -1815,28 +1822,19 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
SSORT_FIELD in varchar2, -- Тип сортировки
|
SSORT_FIELD in varchar2, -- Тип сортировки
|
||||||
NFCPRODPLAN in number, -- Рег. номер плана
|
NFCPRODPLAN in number, -- Рег. номер плана
|
||||||
NFCPRODPLANSP in number, -- Рег. номер спецификации плана
|
NFCPRODPLANSP in number, -- Рег. номер спецификации плана
|
||||||
NTASK_CLASS in number, -- Класс задачи
|
NTASK_CLASS in number, -- Класс задачи (см. константы NCLASS_*)
|
||||||
NTYPE out number, -- Тип задачи (0/1 - для "Дата выпуска", 2/3/4 - для "Дата выпуска")
|
NTYPE out number, -- Тип задачи (см. константы NTASK_TYPE_*)
|
||||||
SDETAIL_LIST out varchar2 -- Ссылки на детализацию
|
SDETAIL_LIST out varchar2 -- Ссылки на детализацию
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
begin
|
begin
|
||||||
/*
|
|
||||||
Описание типов:
|
|
||||||
0 - Маршрутные листы с развертыванием товарных запасов
|
|
||||||
1 - Маршрутные листы с развертыванием комплектаций
|
|
||||||
2 - Приход из подразделений
|
|
||||||
3 - Приход из подразделений и маршрутные листы
|
|
||||||
4 - Маршрутные листы
|
|
||||||
null - Нет детализации
|
|
||||||
*/
|
|
||||||
/* Исходим сортировка по "Дата запуска" */
|
/* Исходим сортировка по "Дата запуска" */
|
||||||
if (SSORT_FIELD = 'DREP_DATE') then
|
if (SSORT_FIELD = 'DREP_DATE') then
|
||||||
/* Если цвет - красный */
|
/* Если класс "С дефицитом запуска или датой меньше текущей" */
|
||||||
if (NTASK_CLASS = 3) then
|
if (NTASK_CLASS = NCLASS_WITH_DEFICIT) then
|
||||||
/* Проверяем деталь или изделие */
|
/* Проверяем деталь или изделие */
|
||||||
begin
|
begin
|
||||||
select 1
|
select NTASK_TYPE_RL_WITH_DL
|
||||||
into NTYPE
|
into NTYPE
|
||||||
from DUAL
|
from DUAL
|
||||||
where exists (select null
|
where exists (select null
|
||||||
@ -1845,65 +1843,65 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
and SP.UP_LEVEL = NFCPRODPLANSP);
|
and SP.UP_LEVEL = NFCPRODPLANSP);
|
||||||
exception
|
exception
|
||||||
when others then
|
when others then
|
||||||
NTYPE := 0;
|
NTYPE := NTASK_TYPE_RL_WITH_GP;
|
||||||
end;
|
end;
|
||||||
/* Проверяем наличие связей с маршрутными листами */
|
/* Проверяем наличие связей с маршрутными листами */
|
||||||
if (LINK_FCROUTLST_CHECK(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP, NSTATE => 0) = 0) then
|
if (LINK_FCROUTLST_CHECK(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP, NSTATE => 0) = 0) then
|
||||||
/* Указываем, что маршрутных листов нет */
|
/* Указываем, что маршрутных листов нет */
|
||||||
SDETAIL_LIST := 'Нет маршрутных листов';
|
SDETAIL_LIST := 'Нет маршрутных листов';
|
||||||
NTYPE := null;
|
NTYPE := NTASK_TYPE_EMPTY;
|
||||||
else
|
else
|
||||||
/* Указываем, что маршрутные листы есть */
|
/* Указываем, что маршрутные листы есть */
|
||||||
SDETAIL_LIST := 'Маршрутные листы';
|
SDETAIL_LIST := 'Маршрутные листы';
|
||||||
end if;
|
end if;
|
||||||
else
|
else
|
||||||
/* Не отображаем информацию о маршрутных листах */
|
/* Не отображаем информацию о маршрутных листах */
|
||||||
NTYPE := null;
|
NTYPE := NTASK_TYPE_EMPTY;
|
||||||
SDETAIL_LIST := null;
|
SDETAIL_LIST := null;
|
||||||
end if;
|
end if;
|
||||||
else
|
else
|
||||||
/* Исходим от класса */
|
/* Исходим от класса */
|
||||||
case
|
case
|
||||||
/* Закрашен зеленым */
|
/* Если класс "Без дефицита выпуска" */
|
||||||
when (NTASK_CLASS = 0) then
|
when (NTASK_CLASS = NCLASS_WO_DEFICIT) then
|
||||||
/* Проверяем наличией связей с приходов из подразделений */
|
/* Проверяем наличией связей с приходов из подразделений */
|
||||||
if (LINK_INCOMEFROMDEPS_CHECK(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP, NSTATE => 2) = 0) then
|
if (LINK_INCOMEFROMDEPS_CHECK(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP, NSTATE => 2) = 0) then
|
||||||
/* Указываем, что приходов из подразделений нет */
|
/* Указываем, что приходов из подразделений нет */
|
||||||
SDETAIL_LIST := 'Нет приходов из подразделений';
|
SDETAIL_LIST := 'Нет приходов из подразделений';
|
||||||
NTYPE := null;
|
NTYPE := NTASK_TYPE_EMPTY;
|
||||||
else
|
else
|
||||||
/* Указываем, что приходы из подразделений есть */
|
/* Указываем, что приходы из подразделений есть */
|
||||||
SDETAIL_LIST := 'Приход из подразделений';
|
SDETAIL_LIST := 'Приход из подразделений';
|
||||||
NTYPE := 2;
|
NTYPE := NTASK_TYPE_INC_DEPS;
|
||||||
end if;
|
end if;
|
||||||
/* Закрашен желто-зеленым */
|
/* Если класс "С частичным дефицитом выпуска" */
|
||||||
when (NTASK_CLASS = 1) then
|
when (NTASK_CLASS = NCLASS_PART_DEFICIT) then
|
||||||
/* Проверяем наличией связей с приходов из подразделений */
|
/* Проверяем наличией связей с приходов из подразделений */
|
||||||
if (LINK_INCOMEFROMDEPS_CHECK(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP) = 0) then
|
if (LINK_INCOMEFROMDEPS_CHECK(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP) = 0) then
|
||||||
/* Указываем, что приходов из подразделений нет */
|
/* Указываем, что приходов из подразделений нет */
|
||||||
SDETAIL_LIST := 'Нет приходов из подразделений';
|
SDETAIL_LIST := 'Нет приходов из подразделений';
|
||||||
NTYPE := null;
|
NTYPE := NTASK_TYPE_EMPTY;
|
||||||
else
|
else
|
||||||
/* Указываем, что приходы из подразделений есть */
|
/* Указываем, что приходы из подразделений есть */
|
||||||
SDETAIL_LIST := 'Приход из подразделений';
|
SDETAIL_LIST := 'Приход из подразделений';
|
||||||
NTYPE := 3;
|
NTYPE := NTASK_TYPE_INC_DEPS_RL;
|
||||||
end if;
|
end if;
|
||||||
/* Закрашен желтым или красным */
|
/* Если класс "С дефицитом запуска или датой меньше текущей" или "С полным дефицитом выпуска" */
|
||||||
when ((NTASK_CLASS = 2) or (NTASK_CLASS = 3)) then
|
when ((NTASK_CLASS = NCLASS_FULL_DEFICIT) or (NTASK_CLASS = NCLASS_WITH_DEFICIT)) then
|
||||||
/* Проверяем наличие связей с маршрутными листами */
|
/* Проверяем наличие связей с маршрутными листами */
|
||||||
if (LINK_FCROUTLST_CHECK(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP, NSTATE => 1) = 0) then
|
if (LINK_FCROUTLST_CHECK(NCOMPANY => NCOMPANY, NFCPRODPLANSP => NFCPRODPLANSP, NSTATE => 1) = 0) then
|
||||||
/* Указываем, что маршрутных листов нет */
|
/* Указываем, что маршрутных листов нет */
|
||||||
SDETAIL_LIST := 'Нет маршрутных листов';
|
SDETAIL_LIST := 'Нет маршрутных листов';
|
||||||
NTYPE := null;
|
NTYPE := NTASK_TYPE_EMPTY;
|
||||||
else
|
else
|
||||||
/* Указываем, что маршрутные листы есть */
|
/* Указываем, что маршрутные листы есть */
|
||||||
SDETAIL_LIST := 'Маршрутные листы';
|
SDETAIL_LIST := 'Маршрутные листы';
|
||||||
NTYPE := 4;
|
NTYPE := NTASK_TYPE_RL;
|
||||||
end if;
|
end if;
|
||||||
/* Класс не поддерживается */
|
/* Класс не поддерживается */
|
||||||
else
|
else
|
||||||
/* Для данных классов ничего не выводится */
|
/* Для данных классов ничего не выводится */
|
||||||
NTYPE := null;
|
NTYPE := NTASK_TYPE_EMPTY;
|
||||||
SDETAIL_LIST := null;
|
SDETAIL_LIST := null;
|
||||||
end case;
|
end case;
|
||||||
end if;
|
end if;
|
||||||
@ -1912,7 +1910,7 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
/* Формирование цветовых характеристик для задачи */
|
/* Формирование цветовых характеристик для задачи */
|
||||||
procedure GET_TASK_COLORS
|
procedure GET_TASK_COLORS
|
||||||
(
|
(
|
||||||
NTASK_CLASS in number, -- Класс задачи
|
NTASK_CLASS in number, -- Класс задачи (см. константы NCLASS_*)
|
||||||
STASK_BG_COLOR out varchar2, -- Цвет заливки спецификации
|
STASK_BG_COLOR out varchar2, -- Цвет заливки спецификации
|
||||||
STASK_BG_PROGRESS_COLOR out varchar2, -- Цвет заливки прогресса спецификации
|
STASK_BG_PROGRESS_COLOR out varchar2, -- Цвет заливки прогресса спецификации
|
||||||
STASK_TEXT_COLOR in out varchar2 -- Цвет текста
|
STASK_TEXT_COLOR in out varchar2 -- Цвет текста
|
||||||
@ -1921,33 +1919,33 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
begin
|
begin
|
||||||
/* Исходим от класса задачи */
|
/* Исходим от класса задачи */
|
||||||
case NTASK_CLASS
|
case NTASK_CLASS
|
||||||
/* Полностью зеленый */
|
/* Без дефицита выпуска */
|
||||||
when 0 then
|
when NCLASS_WO_DEFICIT then
|
||||||
STASK_BG_COLOR := SBG_COLOR_GREEN;
|
STASK_BG_COLOR := SBG_COLOR_GREEN;
|
||||||
STASK_TEXT_COLOR := STEXT_COLOR_GREY;
|
STASK_TEXT_COLOR := STEXT_COLOR_GREY;
|
||||||
STASK_BG_PROGRESS_COLOR := null;
|
STASK_BG_PROGRESS_COLOR := null;
|
||||||
/* Частично зелёный, прогресс жёлтый */
|
/* С частичным дефицитом выпуска */
|
||||||
when 1 then
|
when NCLASS_PART_DEFICIT then
|
||||||
STASK_BG_COLOR := SBG_COLOR_GREEN;
|
STASK_BG_COLOR := SBG_COLOR_GREEN;
|
||||||
STASK_BG_PROGRESS_COLOR := SBG_COLOR_YELLOW;
|
STASK_BG_PROGRESS_COLOR := SBG_COLOR_YELLOW;
|
||||||
STASK_TEXT_COLOR := STEXT_COLOR_GREY;
|
STASK_TEXT_COLOR := STEXT_COLOR_GREY;
|
||||||
/* Полностью жёлтый */
|
/* С полным дефицитом выпуска */
|
||||||
when 2 then
|
when NCLASS_FULL_DEFICIT then
|
||||||
STASK_BG_COLOR := SBG_COLOR_YELLOW;
|
STASK_BG_COLOR := SBG_COLOR_YELLOW;
|
||||||
STASK_TEXT_COLOR := null;
|
STASK_TEXT_COLOR := null;
|
||||||
STASK_BG_PROGRESS_COLOR := null;
|
STASK_BG_PROGRESS_COLOR := null;
|
||||||
/* Полностью красный */
|
/* С дефицитом запуска или датой меньше текущей */
|
||||||
when 3 then
|
when NCLASS_WITH_DEFICIT then
|
||||||
STASK_BG_COLOR := SBG_COLOR_RED;
|
STASK_BG_COLOR := SBG_COLOR_RED;
|
||||||
STASK_TEXT_COLOR := null;
|
STASK_TEXT_COLOR := null;
|
||||||
STASK_BG_PROGRESS_COLOR := null;
|
STASK_BG_PROGRESS_COLOR := null;
|
||||||
/* Полностью серый */
|
/* Дата анализа еще не наступила */
|
||||||
when 4 then
|
when NCLASS_FUTURE_DATE then
|
||||||
STASK_BG_COLOR := SBG_COLOR_GREY;
|
STASK_BG_COLOR := SBG_COLOR_GREY;
|
||||||
STASK_TEXT_COLOR := null;
|
STASK_TEXT_COLOR := null;
|
||||||
STASK_BG_PROGRESS_COLOR := null;
|
STASK_BG_PROGRESS_COLOR := null;
|
||||||
/* Полностью черный */
|
/* Задача без связи */
|
||||||
when 5 then
|
when NCLASS_WO_LINKS then
|
||||||
STASK_BG_COLOR := SBG_COLOR_BLACK;
|
STASK_BG_COLOR := SBG_COLOR_BLACK;
|
||||||
STASK_TEXT_COLOR := STEXT_COLOR_ORANGE;
|
STASK_TEXT_COLOR := STEXT_COLOR_ORANGE;
|
||||||
STASK_BG_PROGRESS_COLOR := null;
|
STASK_BG_PROGRESS_COLOR := null;
|
||||||
@ -2075,8 +2073,8 @@ create or replace package body PKG_P8PANELS_MECHREC as
|
|||||||
STASK_BG_COLOR => STASK_BG_COLOR,
|
STASK_BG_COLOR => STASK_BG_COLOR,
|
||||||
STASK_BG_PROGRESS_COLOR => STASK_BG_PROGRESS_COLOR,
|
STASK_BG_PROGRESS_COLOR => STASK_BG_PROGRESS_COLOR,
|
||||||
STASK_TEXT_COLOR => STASK_TEXT_COLOR);
|
STASK_TEXT_COLOR => STASK_TEXT_COLOR);
|
||||||
/* Если класс задачи "1" */
|
/* Если класс задачи "С частичным дефицитом выпуска" */
|
||||||
if (NTASK_CLASS = 1) then
|
if (NTASK_CLASS = NCLASS_PART_DEFICIT) then
|
||||||
/* Определяем пропорции прогресса */
|
/* Определяем пропорции прогресса */
|
||||||
NTASK_PROGRESS := ROUND(C.NREL_FACT / C.NMAIN_QUANT * 100);
|
NTASK_PROGRESS := ROUND(C.NREL_FACT / C.NMAIN_QUANT * 100);
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user