forked from CITKParus/P8-Panels
1359 lines
83 KiB
SQL
1359 lines
83 KiB
SQL
create or replace package PKG_P8PANELS_RRPCONFED as
|
||
|
||
/* Получение разделов регламентированного отчёта */
|
||
procedure RRPCONF_GET_SECTIONS
|
||
(
|
||
NRN_RRPCONF in number, -- Ид. нстройки форм регламентированного отчёта
|
||
COUT out clob -- Список разделов
|
||
);
|
||
|
||
/* Добавление раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTN_INSERT
|
||
(
|
||
NPRN in number, -- Ид. настройки форм регламентированного отчёта
|
||
SCODE in varchar2, -- Мнемокод
|
||
SNAME in varchar2, -- Наименование
|
||
NRN out number -- Ид. созданной записи
|
||
);
|
||
|
||
/* Исправление раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTN_UPDATE
|
||
(
|
||
NRN in number, -- Ид. раздела
|
||
SCODE in varchar2, -- Мнемокод раздела
|
||
SNAME in varchar2 -- Наименование раздела
|
||
);
|
||
|
||
/* Удаление раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTN_DELETE
|
||
(
|
||
NRN in number -- Ид. раздела
|
||
);
|
||
|
||
/* Получение кодов настройки, раздела и показателя раздела по ид. показателя раздела */
|
||
procedure RRPCONFSCTNMRK_GET_CODES
|
||
(
|
||
NRN in number, -- Ид. показателя раздела
|
||
SRRPCONF out varchar2, -- Код настройки формы регламентированного отчёта
|
||
SRRPCONFSCTN out varchar2, -- Код раздела
|
||
SRRPCONFSCTNMRK out varchar2 -- Код показателя раздела
|
||
);
|
||
|
||
/* Формирование кода и наименования показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_GET_CODE_NAME
|
||
(
|
||
NRRPCONFSCTN in number, -- Рег. номер раздела
|
||
NRRPROW in number, -- Рег. номер строки
|
||
NRRPCOLUMN in number, -- Рег. номер графы
|
||
SCODE out varchar2, -- Мнемокод показателя раздела
|
||
SNAME out varchar2 -- Наименование показателя раздела
|
||
);
|
||
|
||
/* Формирование кода и наименования показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_GET_NAME
|
||
(
|
||
NRRPCONFSCTNMRK in number, -- Рег. номер показателя
|
||
SNAME out varchar2 -- Наименование показателя раздела
|
||
);
|
||
|
||
/* Добавление показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_INSERT
|
||
(
|
||
NPRN in number, -- Ид. раздела
|
||
SCODE in varchar2, -- Мнемокод показателя раздела
|
||
SNAME in varchar2, -- Наименование показателя раздела
|
||
NRRPROW in number, -- Рег. номер строки
|
||
NRRPCOLUMN in number, -- Рег. номер графы
|
||
NRN out number -- Ид. созданной записи
|
||
);
|
||
|
||
/* Исправление показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_UPDATE
|
||
(
|
||
NRN in number, -- Ид. показателя раздела
|
||
SNAME in varchar2 -- Новое наименование
|
||
);
|
||
|
||
/* Удаление показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_DELETE
|
||
(
|
||
NRN in number -- Ид. показателя раздела
|
||
);
|
||
|
||
end PKG_P8PANELS_RRPCONFED;
|
||
/
|
||
create or replace package body PKG_P8PANELS_RRPCONFED as
|
||
|
||
/* Маски для формирования представления параметров состава показателя */
|
||
SPRM_MASK_ACC_DC constant PKG_STD.TSTRING := 'ДЕБЕТ_КРЕДИТ'; -- Маска для параметров "Счет дебет" и "Счет кредит"
|
||
SPRM_MASK_ACC constant PKG_STD.TSTRING := 'СЧЕТ'; -- Маска для параметров "Счет"
|
||
SPRM_MASK_ACC_WO_ANL constant PKG_STD.TSTRING := 'СЧЕТ_БЕЗ_АНЛ'; -- Маска для параметров "Счет" без учета аналитик
|
||
SPRM_MASK_DATE_FROM constant PKG_STD.TSTRING := 'ДАТА_С'; -- Маска для параметров "Дата с"
|
||
SPRM_MASK_DATE_TO constant PKG_STD.TSTRING := 'ДАТА_ПО'; -- Маска для параметров "Дата по"
|
||
SPRM_MASK_RRPCONF constant PKG_STD.TSTRING := 'НАСТРОЙКА'; -- Маска для параметров настройки РО
|
||
|
||
/* Константы - мнемокоды разделов */
|
||
SUNIT_RRPCONFSCTN constant PKG_STD.TSTRING := 'RRPConfigSection'; -- Раздел настройки регламентированного отчета
|
||
SUNIT_RRPCONFSCTNMRK constant PKG_STD.TSTRING := 'RRPConfigSectionMark'; -- Показатель раздела настройки регламентированного отчета
|
||
|
||
/* Константы - действия разделов */
|
||
SACTION_DELETE constant PKG_STD.TSTRING := 'DELETE'; -- Удаление
|
||
|
||
/* Получение доступности действия раздела */
|
||
function UTL_UNIT_ACTION_GET_ALLOW
|
||
(
|
||
SUNIT in varchar2, -- Мнемокод раздела (см. константы SUNIT_*)
|
||
SACTION in varchar2, -- Действие (см. константы SACTION_*)
|
||
NRN in number -- Рег. номер записи
|
||
) return number -- Доступность действия (0 - недоступно, 1 - доступно)
|
||
is
|
||
NRESULT PKG_STD.TNUMBER; -- Доступность действия (0 - недоступно, 1 - доступно)
|
||
begin
|
||
/* Исходим отраздела */
|
||
case SUNIT
|
||
/* Раздел настройки регламентированного отчета */
|
||
when SUNIT_RRPCONFSCTN then
|
||
/* Исходим от действия */
|
||
case SACTION
|
||
/* Удаление */
|
||
when SACTION_DELETE then
|
||
/* Если раздел есть в сформированном отчете/параметре отчета/имеет дочерний раздел - удаление невозможно */
|
||
begin
|
||
select 0
|
||
into NRESULT
|
||
from DUAL
|
||
where exists (select null from RRPDOC_STORAGE_SCTN S where S.RRPCONFSCTN = NRN)
|
||
or exists (select null from RRPDOCPRM P where P.RRPCONFSCTN = NRN)
|
||
or exists (select null from RRPCONFSCTN C where C.RRPCONFSCTN = NRN);
|
||
exception
|
||
/* Если таких записей нет - удаление возможно */
|
||
when NO_DATA_FOUND then
|
||
NRESULT := 1;
|
||
/* Если необработанная ошибка - удаление невозможно */
|
||
when others then
|
||
NRESULT := 0;
|
||
end;
|
||
/* Действие неопределено */
|
||
else
|
||
NRESULT := 1;
|
||
end case;
|
||
/* Показатель раздела настройки регламентированного отчета */
|
||
when SUNIT_RRPCONFSCTNMRK then
|
||
/* Исходим от действия */
|
||
case SACTION
|
||
/* Удаление */
|
||
when SACTION_DELETE then
|
||
/* Если показатель есть в сформированном отчете - удаление невозможно */
|
||
begin
|
||
select 0
|
||
into NRESULT
|
||
from DUAL
|
||
where exists (select null from RRPDOC_STORAGE_MRK M where M.RRPCONFSCTNMRK = NRN);
|
||
exception
|
||
/* Если таких записей нет - удаление возможно */
|
||
when NO_DATA_FOUND then
|
||
NRESULT := 1;
|
||
/* Если необработанная ошибка - удаление невозможно */
|
||
when others then
|
||
NRESULT := 0;
|
||
end;
|
||
else
|
||
NRESULT := 1;
|
||
end case;
|
||
/* Раздел неопределен */
|
||
else
|
||
NRESULT := 1;
|
||
end case;
|
||
/* Возвращаем результат */
|
||
return NRESULT;
|
||
end UTL_UNIT_ACTION_GET_ALLOW;
|
||
|
||
/* Формирование описателя состава показателя регламентированного отчета */
|
||
function UTL_RRPCONFSCTNMRKCN_GET_DESC
|
||
(
|
||
NCOMPANY in number, -- Рег. номер организации
|
||
NRRPCONFSCTNMRKCN in number -- Рег. номер состава показателя регламентированного отчета
|
||
) return varchar2 -- Описатель показателя
|
||
is
|
||
SRESULT PKG_STD.TSTRING; -- Описатель показателя
|
||
SCN_DESC PKG_STD.TSTRING; -- Основные параметры состава показателя
|
||
RREC RRPCONFSCTNMRKCN%rowtype; -- Запись состава показателя регламентированного отчета
|
||
RRRPCONFSCTNMRK RRPCONFSCTNMRK%rowtype; -- Запись показателя регламентированного отчета
|
||
|
||
/* Считывание мнемокода показателя по рег. номеру состава показателя */
|
||
function UTL_MARK_GET_CODE_BY_CN
|
||
(
|
||
NRRPCONFSCTNMRKCN in number -- Рег. номер состава показателя
|
||
) return varchar2 -- Мнемокод показателя
|
||
is
|
||
SRESULT PKG_STD.TSTRING; -- Мнемокод показателя
|
||
begin
|
||
/* Считываем мнемокод показателя */
|
||
begin
|
||
select M.CODE
|
||
into SRESULT
|
||
from RRPCONFSCTNMRKCN T,
|
||
RRPCONFSCTNMRK M
|
||
where T.RN = NRRPCONFSCTNMRKCN
|
||
and M.RN = T.PRN;
|
||
exception
|
||
when others then
|
||
SRESULT := null;
|
||
end;
|
||
/* Возвращаем результат */
|
||
return SRESULT;
|
||
end UTL_MARK_GET_CODE_BY_CN;
|
||
|
||
/* Считывание мнемокода настройки по рег. номеру состава показателя */
|
||
function UTL_CONF_GET_CODE_BY_CN
|
||
(
|
||
NRRPCONFSCTNMRKCN in number -- Рег. номер состава показателя
|
||
) return varchar2 -- Мнемокод настройки регламентированного отчета
|
||
is
|
||
SRESULT PKG_STD.TSTRING; -- Мнемокод настройки регламентированного отчета
|
||
begin
|
||
/* Считываем мнемокод настройки регламентированного отчета */
|
||
begin
|
||
select C.CODE
|
||
into SRESULT
|
||
from RRPCONFSCTNMRKCN T,
|
||
RRPCONFSCTNMRK M,
|
||
RRPCONF C
|
||
where T.RN = NRRPCONFSCTNMRKCN
|
||
and M.RN = T.PRN
|
||
and C.RN = M.RRPCONF;
|
||
exception
|
||
when others then
|
||
SRESULT := null;
|
||
end;
|
||
/* Возвращаем результат */
|
||
return SRESULT;
|
||
end UTL_CONF_GET_CODE_BY_CN;
|
||
|
||
/* Формирование представления параметров состава показателя */
|
||
procedure MAKE_PRMS_BY_MASK
|
||
(
|
||
SPRMS_DESC in out varchar2, -- Строковое представление параметров
|
||
NCOMPANY in number, -- Рег. номер организации
|
||
NRRPCONFSCTNMRKCN in number, -- Рег. номер состава показателя
|
||
SMASK in varchar2 -- Маска (см. константы SPRM_MASK_*)
|
||
)
|
||
is
|
||
SDATE_FROM PKG_STD.TSTRING; -- Строковое представление "Дата с"
|
||
SDATE_TO PKG_STD.TSTRING; -- Строковое представление "Дата по"
|
||
DDATE_FROM PKG_STD.TLDATE; -- ДАТА_С
|
||
SDATE_FROM_PATTERN PKG_STD.TSTRING; -- ДАТА_С_ШАБЛОН
|
||
DDATE_TO PKG_STD.TLDATE; -- ДАТА_ПО
|
||
SDATE_TO_PATTERN PKG_STD.TSTRING; -- ДАТА_ПО_ШАБЛОН
|
||
SACCOUNT_DEBIT PKG_STD.TSTRING; -- СЧЕТ_ДЕБЕТ
|
||
SANALYTIC_DEBIT1 PKG_STD.TSTRING; -- АНАЛИТИКА1_ДЕБЕТ
|
||
SANALYTIC_DEBIT2 PKG_STD.TSTRING; -- АНАЛИТИКА2_ДЕБЕТ
|
||
SANALYTIC_DEBIT3 PKG_STD.TSTRING; -- АНАЛИТИКА3_ДЕБЕТ
|
||
SANALYTIC_DEBIT4 PKG_STD.TSTRING; -- АНАЛИТИКА4_ДЕБЕТ
|
||
SANALYTIC_DEBIT5 PKG_STD.TSTRING; -- АНАЛИТИКА5_ДЕБЕТ
|
||
SACCOUNT_CREDIT PKG_STD.TSTRING; -- СЧЕТ_КРЕДИТ
|
||
SANALYTIC_CREDIT1 PKG_STD.TSTRING; -- АНАЛИТИКА1_КРЕДИТ
|
||
SANALYTIC_CREDIT2 PKG_STD.TSTRING; -- АНАЛИТИКА2_КРЕДИТ
|
||
SANALYTIC_CREDIT3 PKG_STD.TSTRING; -- АНАЛИТИКА3_КРЕДИТ
|
||
SANALYTIC_CREDIT4 PKG_STD.TSTRING; -- АНАЛИТИКА4_КРЕДИТ
|
||
SANALYTIC_CREDIT5 PKG_STD.TSTRING; -- АНАЛИТИКА5_КРЕДИТ
|
||
SACCOUNT PKG_STD.TSTRING; -- СЧЕТ
|
||
SANALYTIC1 PKG_STD.TSTRING; -- АНАЛИТИКА1
|
||
SANALYTIC2 PKG_STD.TSTRING; -- АНАЛИТИКА2
|
||
SANALYTIC3 PKG_STD.TSTRING; -- АНАЛИТИКА3
|
||
SANALYTIC4 PKG_STD.TSTRING; -- АНАЛИТИКА4
|
||
SANALYTIC5 PKG_STD.TSTRING; -- АНАЛИТИКА5
|
||
SRRPCONF PKG_STD.TSTRING; -- НАСТРОЙКА
|
||
NRRPCONF_RD PKG_STD.TNUMBER; -- НАСТРОЙКА_ТЕК
|
||
SMARK_CODE PKG_STD.TSTRING; -- ПОКАЗАТЕЛЬ
|
||
NMARK_CODE_RD PKG_STD.TNUMBER; -- ПОКАЗАТЕЛЬ_ТЕК
|
||
SMARK_ROW_CODE PKG_STD.TSTRING; -- СТРОКА_ПОКАЗАТЕЛЯ
|
||
SMARK_COL_CODE PKG_STD.TSTRING; -- ГРАФА_ПОКАЗАТЕЛЯ
|
||
begin
|
||
/* Получаем представление параметров исходя из маски */
|
||
case SMASK
|
||
/* "Счет дебет" и "Счет кредит" */
|
||
when SPRM_MASK_ACC_DC then
|
||
/* Считывание значения - Счет дебет */
|
||
SACCOUNT_DEBIT := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SACCOUNT_DEBIT_P);
|
||
/* Считывание значения - Аналитический счет 1 дебет */
|
||
SANALYTIC_DEBIT1 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_DEBIT1_P);
|
||
/* Считывание значения - Аналитический счет 2 дебет */
|
||
SANALYTIC_DEBIT2 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_DEBIT2_P);
|
||
/* Считывание значения - Аналитический счет 3 дебет */
|
||
SANALYTIC_DEBIT3 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_DEBIT3_P);
|
||
/* Считывание значения - Аналитический счет 4 дебет */
|
||
SANALYTIC_DEBIT4 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_DEBIT4_P);
|
||
/* Считывание значения - Аналитический счет 5 дебет */
|
||
SANALYTIC_DEBIT5 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_DEBIT5_P);
|
||
/* Считывание значения - Счет кредит */
|
||
SACCOUNT_CREDIT := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SACCOUNT_CREDIT_P);
|
||
/* Считывание значения - Аналитический счет 1 кредит */
|
||
SANALYTIC_CREDIT1 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_CREDIT1_P);
|
||
/* Считывание значения - Аналитический счет 2 кредит */
|
||
SANALYTIC_CREDIT2 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_CREDIT2_P);
|
||
/* Считывание значения - Аналитический счет 3 кредит */
|
||
SANALYTIC_CREDIT3 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_CREDIT3_P);
|
||
/* Считывание значения - Аналитический счет 4 кредит */
|
||
SANALYTIC_CREDIT4 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_CREDIT4_P);
|
||
/* Считывание значения - Аналитический счет 5 кредит */
|
||
SANALYTIC_CREDIT5 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC_CREDIT5_P);
|
||
/* Если указан счет дебет */
|
||
if ((SACCOUNT_DEBIT is not null) or (SANALYTIC_DEBIT1 is not null) or (SANALYTIC_DEBIT2 is not null) or
|
||
(SANALYTIC_DEBIT3 is not null) or (SANALYTIC_DEBIT4 is not null) or (SANALYTIC_DEBIT5 is not null)) then
|
||
/* Добавляем */
|
||
SPRMS_DESC := SPRMS_DESC || 'Д:' || SACCOUNT_DEBIT || '';
|
||
/* Добавляем информацию об аналитиках */
|
||
SPRMS_DESC := SPRMS_DESC || '(' || SANALYTIC_DEBIT1 || ',' || SANALYTIC_DEBIT2 || ',' || SANALYTIC_DEBIT3 || ',' ||
|
||
SANALYTIC_DEBIT4 || ',' || SANALYTIC_DEBIT5 || '),';
|
||
end if;
|
||
/* Если указан счет кредит */
|
||
if ((SACCOUNT_CREDIT is not null) or (SANALYTIC_CREDIT1 is not null) or (SANALYTIC_CREDIT2 is not null) or
|
||
(SANALYTIC_CREDIT3 is not null) or (SANALYTIC_CREDIT4 is not null) or (SANALYTIC_CREDIT5 is not null)) then
|
||
/* Добавляем */
|
||
SPRMS_DESC := SPRMS_DESC || 'К:' || SACCOUNT_CREDIT || ',';
|
||
/* Добавляем информацию об аналитиках */
|
||
SPRMS_DESC := SPRMS_DESC || '(' || SANALYTIC_CREDIT1 || ',' || SANALYTIC_CREDIT2 || ',' ||
|
||
SANALYTIC_CREDIT3 || ',' || SANALYTIC_CREDIT4 || ',' || SANALYTIC_CREDIT5 || '),';
|
||
end if;
|
||
/* "Счет" */
|
||
when SPRM_MASK_ACC then
|
||
/* Считывание значения - Счет */
|
||
SACCOUNT := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SACCOUNT_P);
|
||
/* Считывание значения - Аналитический счет 1 */
|
||
SANALYTIC1 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC1_P);
|
||
/* Считывание значения - Аналитический счет 2 */
|
||
SANALYTIC2 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC2_P);
|
||
/* Считывание значения - Аналитический счет 3 */
|
||
SANALYTIC3 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC3_P);
|
||
/* Считывание значения - Аналитический счет 4 */
|
||
SANALYTIC4 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC4_P);
|
||
/* Считывание значения - Аналитический счет 5 */
|
||
SANALYTIC5 := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SANALYTIC5_P);
|
||
/* Если указан счет */
|
||
if ((SACCOUNT is not null) or (SANALYTIC1 is not null) or (SANALYTIC2 is not null) or
|
||
(SANALYTIC3 is not null) or (SANALYTIC4 is not null) or (SANALYTIC5 is not null)) then
|
||
/* Добавляем */
|
||
SPRMS_DESC := SPRMS_DESC || 'С:' || SACCOUNT || '';
|
||
/* Добавляем информацию об аналитиках */
|
||
SPRMS_DESC := SPRMS_DESC || '(' || SANALYTIC1 || ',' || SANALYTIC2 || ',' || SANALYTIC3 || ',' ||
|
||
SANALYTIC4 || ',' || SANALYTIC5 || '),';
|
||
end if;
|
||
/* "Счет" без аналитик */
|
||
when SPRM_MASK_ACC_WO_ANL then
|
||
/* Считывание значения - Счет */
|
||
SACCOUNT := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SACCOUNT_P);
|
||
/* Если счет не пустой */
|
||
if (SACCOUNT is not null) then
|
||
/* Добавляем информацию по счету */
|
||
SPRMS_DESC := SPRMS_DESC || 'С:' || SACCOUNT || ',';
|
||
end if;
|
||
/* "Дата с" */
|
||
when SPRM_MASK_DATE_FROM then
|
||
/* Считывание значения - Дата с */
|
||
DDATE_FROM := PKG_RRPCONFSCTNMRKCN.PARAM_GET_DATE_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SDATE_FROM_P);
|
||
/* Считывание значения - Дата с (шаблон) */
|
||
SDATE_FROM_PATTERN := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SDATE_FROM_PATTERN_P);
|
||
/* Определяем "Дата с" */
|
||
SDATE_FROM := COALESCE(TO_CHAR(DDATE_FROM, 'dd.mm.yyyy'), SDATE_FROM_PATTERN);
|
||
/* Если указана дата с */
|
||
if (SDATE_FROM is not null) then
|
||
/* Добавляем дату с */
|
||
SPRMS_DESC := SPRMS_DESC || 'ДС:' || SDATE_FROM || ',';
|
||
end if;
|
||
/* "Дата по" */
|
||
when SPRM_MASK_DATE_TO then
|
||
/* Считывание значения - Дата по */
|
||
DDATE_TO := PKG_RRPCONFSCTNMRKCN.PARAM_GET_DATE_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SDATE_TO_P);
|
||
/* Считывание значения - Дата по (шаблон) */
|
||
SDATE_TO_PATTERN := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SDATE_TO_PATTERN_P);
|
||
/* пределяем "Дата по" */
|
||
SDATE_TO := COALESCE(TO_CHAR(DDATE_TO, 'dd.mm.yyyy'), SDATE_TO_PATTERN);
|
||
/* Если указана дата по */
|
||
if (SDATE_TO is not null) then
|
||
/* Добавляем дату по */
|
||
SPRMS_DESC := SPRMS_DESC || 'ДП:' || SDATE_TO || ',';
|
||
end if;
|
||
/* Параметры настройки РО */
|
||
when SPRM_MASK_RRPCONF then
|
||
/* Считывание значения - Настройка регламентированного отчета */
|
||
SRRPCONF := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SRRPCONF_P);
|
||
/* Считывание значения - Настройка регламентированного отчета (текущее) */
|
||
NRRPCONF_RD := PKG_RRPCONFSCTNMRKCN.PARAM_GET_NUM_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SRRPCONF_RD_P);
|
||
/* Если указана текущая настройка */
|
||
if (NRRPCONF_RD = 1) then
|
||
/* Считываем мнемокод текущей настройки */
|
||
SRRPCONF := UTL_CONF_GET_CODE_BY_CN(NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN);
|
||
end if;
|
||
/* Считывание значения - Мнемокод показателя */
|
||
SMARK_CODE := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SMARK_CODE_P);
|
||
/* Считывание значения - Мнемокод показателя (текущее) */
|
||
NMARK_CODE_RD := PKG_RRPCONFSCTNMRKCN.PARAM_GET_NUM_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SMARK_CODE_RD_P);
|
||
/* Если указан текущий показатель */
|
||
if (NMARK_CODE_RD = 1) then
|
||
/* Считываем мнемокод текущей настройки */
|
||
SMARK_CODE := UTL_MARK_GET_CODE_BY_CN(NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN);
|
||
end if;
|
||
/* Считывание значения - Мнемокод строки показателя */
|
||
SMARK_ROW_CODE := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SMARK_ROW_CODE_P);
|
||
/* Считывание значения - Мнемокод графы показателя */
|
||
SMARK_COL_CODE := PKG_RRPCONFSCTNMRKCN.PARAM_GET_STR_VALUE(NCOMPANY => NCOMPANY,
|
||
NPRN => NRRPCONFSCTNMRKCN,
|
||
SPARAM => PKG_RRPCONFSCTNMRKCN.SMARK_COL_CODE_P);
|
||
/* Если настройка указана */
|
||
if (SRRPCONF is not null) then
|
||
/* Добавляем */
|
||
SPRMS_DESC := SPRMS_DESC || 'Н:' || SRRPCONF || ',';
|
||
end if;
|
||
/* Если мнемокод показателя указан */
|
||
if (SMARK_CODE is not null) then
|
||
/* Добавляем */
|
||
SPRMS_DESC := SPRMS_DESC || 'П:' || SRRPCONF || ',';
|
||
end if;
|
||
/* Если строка показателя указана */
|
||
if (SMARK_ROW_CODE is not null) then
|
||
/* Добавляем */
|
||
SPRMS_DESC := SPRMS_DESC || 'СТР:' || SMARK_ROW_CODE || ',';
|
||
end if;
|
||
/* Если графа показателя указана */
|
||
if (SMARK_COL_CODE is not null) then
|
||
/* Добавляем */
|
||
SPRMS_DESC := SPRMS_DESC || 'ГРФ:' || SMARK_COL_CODE || ',';
|
||
end if;
|
||
else
|
||
/* Незвестная маска */
|
||
null;
|
||
end case;
|
||
end MAKE_PRMS_BY_MASK;
|
||
|
||
/* Формирование строки основных параметров для учетного раздела состава показателя */
|
||
function SOURCE_UNIT_GET_PRMS
|
||
(
|
||
NCOMPANY in number, -- Рег. номер организации
|
||
NRRPCONFSCTNMRKCN in number, -- Рег. номер состава показателя регламентированного отчета
|
||
SSOURCE_UNIT in varchar2 -- Учетный раздел
|
||
) return varchar2 -- Строковое представление основных параметров учетного раздела
|
||
is
|
||
SRESULT PKG_STD.TSTRING; -- Строковое представление основных параметров учетного раздела
|
||
begin
|
||
/* Открываем параметры */
|
||
SRESULT := '(';
|
||
/* Собираем параметры исходя из раздела */
|
||
case SSOURCE_UNIT
|
||
/* Хозяйственные операции */
|
||
when 'EconomicOperations' then
|
||
/* Получаем информацию по "Счет дебет" и "Счет кредит" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_ACC_DC);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Добавляем информацию по "Дата по" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_TO);
|
||
/* Расчёты с дебиторами/кредиторами */
|
||
when 'DebitorsCreditorsAccounts' then
|
||
/* Получаем информацию по "Счет" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_ACC);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Добавляем информацию по "Дата по" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_TO);
|
||
/* Остатки средств по счетам */
|
||
when 'AccountsRemnants' then
|
||
/* Получаем информацию по "Счет" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_ACC);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Остатки товарно-материальных ценностей */
|
||
when 'ValuesRemnants' then
|
||
/* Получаем информацию по "Счет" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_ACC);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Дебиторская/кредиторская задолженность */
|
||
when 'DebitorsCreditorsRemnants' then
|
||
/* Получаем информацию по "Счет" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_ACC);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Добавляем информацию по "Дата по" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_TO);
|
||
/* Инвентарная картотека */
|
||
when 'Inventory' then
|
||
/* Получаем информацию по "Счет" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_ACC);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Добавляем информацию по "Дата по" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_TO);
|
||
/* Картотека МБП */
|
||
when 'ItemsCards' then
|
||
/* Получаем информацию по "Счет" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_ACC_WO_ANL);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Картотека операций будущих периодов */
|
||
when 'OperCards' then
|
||
/* Получаем информацию по "Счет" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_ACC);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Добавляем информацию по "Дата по" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_TO);
|
||
/* Регламентированный отчет */
|
||
when 'RRPDocuments' then
|
||
/* Добавляем информацию по настройке */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_RRPCONF);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Добавляем информацию по "Дата по" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_TO);
|
||
/* Декларация по налогу на прибыль */
|
||
when 'DeclarationIncome' then
|
||
/* Добавляем информацию по настройке */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_RRPCONF);
|
||
/* Добавляем информацию по "Дата с" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_FROM);
|
||
/* Добавляем информацию по "Дата по" */
|
||
MAKE_PRMS_BY_MASK(SPRMS_DESC => SRESULT,
|
||
NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => NRRPCONFSCTNMRKCN,
|
||
SMASK => SPRM_MASK_DATE_TO);
|
||
/* Неизвестный раздел */
|
||
else
|
||
SRESULT := null;
|
||
end case;
|
||
/* Убираем лишний знак */
|
||
SRESULT := RTRIM(SRESULT, ',');
|
||
/* Закрываем параметры */
|
||
SRESULT := SRESULT || ')';
|
||
/* Возвращаем результат */
|
||
return SRESULT;
|
||
end SOURCE_UNIT_GET_PRMS;
|
||
|
||
/* Считывание типа источинка состава показателя в текстовом представлении */
|
||
function RRPCONFSCTNMRKCN_GET_ST
|
||
(
|
||
NSOURCE_TYPE in number, -- Тип источника
|
||
SSOURCE_UNIT in varchar2 -- Раздел источника
|
||
) return varchar2 -- Тип источника в текстовом представлении
|
||
is
|
||
SRESULT PKG_STD.TSTRING; -- Тип источника в текстовом представлении
|
||
begin
|
||
/* Строковое представление источника значения */
|
||
case NSOURCE_TYPE
|
||
when 0 then
|
||
/* Исходим от раздела */
|
||
case SSOURCE_UNIT
|
||
when 'EconomicOperations' then
|
||
SRESULT := 'ХО';
|
||
when 'DebitorsCreditorsAccounts' then
|
||
SRESULT := 'РСДК';
|
||
when 'AccountsRemnants' then
|
||
SRESULT := 'ОС';
|
||
when 'ValuesRemnants' then
|
||
SRESULT := 'ТМЦ';
|
||
when 'DebitorsCreditorsRemnants' then
|
||
SRESULT := 'ДКЗ';
|
||
when 'Inventory' then
|
||
SRESULT := 'ИК';
|
||
when 'ItemsCards' then
|
||
SRESULT := 'МБП';
|
||
when 'OperCards' then
|
||
SRESULT := 'КОБП';
|
||
when 'DeclarationIncome' then
|
||
SRESULT := 'ДПНП';
|
||
when 'RRPDocuments' then
|
||
SRESULT := 'РО';
|
||
else
|
||
SRESULT := null;
|
||
end case;
|
||
when 1 then
|
||
SRESULT := 'РП';
|
||
when 2 then
|
||
SRESULT := 'ХП';
|
||
when 3 then
|
||
SRESULT := 'СЗ';
|
||
when 4 then
|
||
SRESULT := 'fx';
|
||
else
|
||
SRESULT := null;
|
||
end case;
|
||
/* Возвращаем результат */
|
||
return SRESULT;
|
||
end RRPCONFSCTNMRKCN_GET_ST;
|
||
|
||
/* Считывание знака состава показателя в текстовом представлении */
|
||
function RRPCONFSCTNMRKCN_GET_SIGN
|
||
(
|
||
NSIGN in number -- Знак состава показателя
|
||
) return varchar2 -- Знак состава показателя в текстовом представлении
|
||
is
|
||
SRESULT PKG_STD.TSTRING; -- Знак состава показателя в текстовом представлении
|
||
begin
|
||
/* Опеределяем знак */
|
||
case NSIGN
|
||
when 0 then
|
||
SRESULT := '+';
|
||
when 1 then
|
||
SRESULT := '-';
|
||
else
|
||
SRESULT := '+/-';
|
||
end case;
|
||
/* Возвращаем результат */
|
||
return SRESULT;
|
||
end RRPCONFSCTNMRKCN_GET_SIGN;
|
||
begin
|
||
/* Считывание записи состава показателя регламентированного отчета */
|
||
RREC := GET_RRPCONFSCTNMRKCN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRRPCONFSCTNMRKCN);
|
||
/* Формируем представление состава показателя в виде формулы */
|
||
case RREC.SOURCE_TYPE
|
||
/* Учетный раздел */
|
||
when 0 then
|
||
/* Собираем представление из параметров составов */
|
||
SCN_DESC := SOURCE_UNIT_GET_PRMS(NCOMPANY => NCOMPANY,
|
||
NRRPCONFSCTNMRKCN => RREC.RN,
|
||
SSOURCE_UNIT => RREC.SOURCE_UNIT);
|
||
/* Расчетный показатель */
|
||
when 1 then
|
||
/* Считываем запись расчетного показателя */
|
||
RRRPCONFSCTNMRK := GET_RRPCONFSCTNMRK_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RREC.RRPCONFSCTNMRK);
|
||
/* Указываем мнемокод показателя */
|
||
SCN_DESC := '(' || RRRPCONFSCTNMRK.CODE || ')';
|
||
/* Хранимая процедура */
|
||
when 2 then
|
||
/* Формируем из пакета и процедуры */
|
||
SCN_DESC := '(' || PKG_OBJECT_DESC.STORED_NAME(SPACKAGE_NAME => RREC.PKG, SSTORED_NAME => RREC.PRC) || ')';
|
||
/* Статическое значение */
|
||
when 3 then
|
||
/* Указываем статическое значение */
|
||
SCN_DESC := '(' || COALESCE(RREC.STATIC_STR,
|
||
COALESCE(TO_CHAR(RREC.STATIC_NUM), TO_CHAR(RREC.STATIC_DATE, 'dd.mm.yyyy'))) || ')';
|
||
/* Формула */
|
||
when 4 then
|
||
/* Указываем формулу */
|
||
SCN_DESC := '(' || RREC.FORMULA || ')';
|
||
else
|
||
SCN_DESC := null;
|
||
end case;
|
||
/* Формируем описатель */
|
||
SRESULT := RRPCONFSCTNMRKCN_GET_SIGN(NSIGN => RREC.SIGN) || ' ' ||
|
||
RRPCONFSCTNMRKCN_GET_ST(NSOURCE_TYPE => RREC.SOURCE_TYPE, SSOURCE_UNIT => RREC.SOURCE_UNIT) || SCN_DESC;
|
||
/* Возвращаем результат */
|
||
return SRESULT;
|
||
end UTL_RRPCONFSCTNMRKCN_GET_DESC;
|
||
|
||
/* Получение разделов регламентированного отчёта */
|
||
procedure RRPCONF_GET_SECTIONS
|
||
(
|
||
NRN_RRPCONF in number, -- Ид. нстройки форм регламентированного отчёта
|
||
COUT out clob -- Список разделов
|
||
)
|
||
is
|
||
NVERSION PKG_STD.TREF; -- Рег. номер версии словаря контрагентов
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Организация сеанса
|
||
RDG PKG_P8PANELS_VISUAL.TDG; -- Описание таблицы
|
||
RDG_ROW PKG_P8PANELS_VISUAL.TDG_ROW; -- Строка таблицы
|
||
CDG clob; -- XML данных раздела
|
||
CXML PKG_CONTVALLOC2NS.TCONTAINER; -- Контейнер для данных XML
|
||
RRRPCONFSCTNMRK RRPCONFSCTNMRK%rowtype; -- Рег. номер показателя
|
||
NCURRENT_SECTION PKG_STD.TNUMBER; -- Идентификатор раздела настройки в контейнере
|
||
NSECTION_RN PKG_STD.TREF; -- Рег. номер раздел настройки
|
||
SSECTION_CODE PKG_STD.TSTRING; -- Мнемокод раздела настройки
|
||
SSECTION_NAME PKG_STD.TSTRING; -- Наименование раздела настройки
|
||
CSECTION_CLOB clob; -- Данные по разделу настройки
|
||
|
||
/* Инициализация колонок граф показателей */
|
||
procedure MARKS_COLUMNS_INIT
|
||
(
|
||
RDG in out nocopy PKG_P8PANELS_VISUAL.TDG, -- Описание таблицы
|
||
NRRPCONFSCTN in number -- Рег. номер раздела
|
||
)
|
||
is
|
||
begin
|
||
/* Цикл по графам показателей раздела */
|
||
for REC in (select C.CODE,
|
||
C.NAME
|
||
from RRPCONFSCTNMRK T,
|
||
RRPCOLUMN C
|
||
where T.PRN = NRRPCONFSCTN
|
||
and T.RRPCOLUMN = C.RN
|
||
group by C.RN,
|
||
C.CODE,
|
||
C.NAME
|
||
order by C.CODE)
|
||
loop
|
||
/* Наименование графы */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SCOL_' || REC.CODE,
|
||
SCAPTION => REC.NAME,
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
NWIDTH => 200);
|
||
/* Рег. номер графы */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NCOL_RN_' || REC.CODE,
|
||
SCAPTION => REC.NAME || ' рег. номер',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BVISIBLE => false);
|
||
/* Рег. номер показателя */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NMARK_RN_' || REC.CODE,
|
||
SCAPTION => REC.NAME || ' рег. номер показателя',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BVISIBLE => false);
|
||
/* Мнемокод показателя */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SMARK_CODE_' || REC.CODE,
|
||
SCAPTION => REC.NAME || ' мнемокод показателя',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
BVISIBLE => false);
|
||
/* Для составов показтелей */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'MARK_CNS_' || REC.CODE,
|
||
SCAPTION => REC.NAME || ' состав показателя',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
BVISIBLE => false);
|
||
end loop;
|
||
end MARKS_COLUMNS_INIT;
|
||
|
||
/* Считывание показателя по строке/графе */
|
||
function RRPCONFSCTNMRK_GET_ROWCOL
|
||
(
|
||
NRRPCONFSCTN in number, -- Рег. номер раздела
|
||
NRRPROW in number, -- Рег. номер строки
|
||
NRRPCOLUMN in number -- Рег. номер графы
|
||
) return RRPCONFSCTNMRK%rowtype -- Запись показателя
|
||
is
|
||
RRESULT RRPCONFSCTNMRK%rowtype; -- Рег. номер показателя
|
||
begin
|
||
/* Считываем рег. номер показателя */
|
||
begin
|
||
select T.*
|
||
into RRESULT
|
||
from RRPCONFSCTNMRK T
|
||
where T.PRN = NRRPCONFSCTN
|
||
and T.RRPROW = NRRPROW
|
||
and T.RRPCOLUMN = NRRPCOLUMN;
|
||
exception
|
||
when others then
|
||
RRESULT := null;
|
||
end;
|
||
/* Возвращаем результат */
|
||
return RRESULT;
|
||
end RRPCONFSCTNMRK_GET_ROWCOL;
|
||
begin
|
||
/* Очистка контейнера */
|
||
PKG_CONTVALLOC2NS.PURGE(RCONTAINER => CXML);
|
||
/* Определение версии раздела */
|
||
NVERSION := GET_SESSION_VERSION(SUNITCODE => 'RRPConfig');
|
||
/* Цикл по разделам настройки форм регламентированного отчёта */
|
||
for S in (select T.RN NRN,
|
||
T.VERSION NVERSION,
|
||
T.CRN NCRN,
|
||
T.PRN NPRN,
|
||
T.CODE SCODE,
|
||
T.NAME SNAME,
|
||
COALESCE((select 1
|
||
from RRPCONFSCTNMRK M
|
||
where M.PRN = T.RN
|
||
and ROWNUM = 1),
|
||
0) NMARKS_EXISTS,
|
||
ROWNUM RNUM
|
||
from RRPCONFSCTN T
|
||
where T.PRN = NRN_RRPCONF
|
||
and T.VERSION = NVERSION
|
||
order by T.CODE)
|
||
loop
|
||
/* Инициализируем таблицу данных */
|
||
RDG := PKG_P8PANELS_VISUAL.TDG_MAKE(BFIXED_HEADER => true, NFIXED_COLUMNS => 1);
|
||
/* Формируем структуру заголовка */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SROW_NAME',
|
||
SCAPTION => '',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
NWIDTH => 150);
|
||
/* Формируем структуру заголовка */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'SROW_CODE',
|
||
SCAPTION => 'Мнемокод строки',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_STR,
|
||
BVISIBLE => false);
|
||
/* Формируем структуру заголовка */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_COL_DEF(RDATA_GRID => RDG,
|
||
SNAME => 'NROW_RN',
|
||
SCAPTION => 'Рег. номер строки',
|
||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||
BVISIBLE => false);
|
||
/* Если раздел содержит показатели */
|
||
if (S.NMARKS_EXISTS = 1) then
|
||
/* Инициализируем колонки граф */
|
||
MARKS_COLUMNS_INIT(RDG => RDG, NRRPCONFSCTN => S.NRN);
|
||
/* Обходим строки раздела */
|
||
for R in (select R.RN,
|
||
R.CODE,
|
||
R.NAME
|
||
from RRPCONFSCTNMRK T,
|
||
RRPROW R
|
||
where T.PRN = S.NRN
|
||
and R.RN = T.RRPROW
|
||
group by R.RN,
|
||
R.CODE,
|
||
R.NAME,
|
||
R.ROW_CODE,
|
||
R.SORT_NUMB
|
||
order by R.SORT_NUMB,
|
||
LPAD(R.ROW_CODE, 40, '0'),
|
||
LPAD(R.CODE, 20, '0'))
|
||
loop
|
||
/* Заполняем наименование строки */
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SROW_NAME', SVALUE => R.NAME, BCLEAR => true);
|
||
/* Заполняем мнемокод строки */
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SROW_CODE', SVALUE => R.CODE);
|
||
/* Заполняем рег. номер строки */
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NROW_RN', NVALUE => R.RN);
|
||
/* Обходим графы раздела */
|
||
for C in (select C.RN,
|
||
C.CODE,
|
||
C.NAME
|
||
from RRPCONFSCTNMRK T,
|
||
RRPCOLUMN C
|
||
where T.PRN = S.NRN
|
||
and C.RN = T.RRPCOLUMN
|
||
group by C.RN,
|
||
C.CODE,
|
||
C.NAME,
|
||
C.COLUMN_CODE,
|
||
C.SORT_NUMB
|
||
order by C.SORT_NUMB,
|
||
LPAD(C.COLUMN_CODE, 40, '0'),
|
||
LPAD(C.CODE, 20, '0'))
|
||
loop
|
||
/* Считываем показатель по строке/графе */
|
||
RRRPCONFSCTNMRK := RRPCONFSCTNMRK_GET_ROWCOL(NRRPCONFSCTN => S.NRN, NRRPROW => R.RN, NRRPCOLUMN => C.RN);
|
||
/* Заполняем рег. номер графы */
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'SCOL_' || C.CODE, SVALUE => C.NAME);
|
||
/* Заполняем рег. номер графы */
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOL_RN_' || C.CODE, NVALUE => C.RN);
|
||
/* Заполняем рег. номер показателя */
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
|
||
SNAME => 'NMARK_RN_' || C.CODE,
|
||
NVALUE => RRRPCONFSCTNMRK.RN);
|
||
/* Если ошибка считывания показателя */
|
||
if (RRRPCONFSCTNMRK.RN is not null) then
|
||
/* Заполняем мнемокод показателя */
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW,
|
||
SNAME => 'SMARK_CODE_' || C.CODE,
|
||
SVALUE => RRRPCONFSCTNMRK.CODE);
|
||
/* Добавляем атрибут состава показателей */
|
||
PKG_P8PANELS_VISUAL.TDG_ROW_ADD_COL(RROW => RDG_ROW, SNAME => 'MARK_CNS_' || C.CODE, SVALUE => null);
|
||
end if;
|
||
end loop;
|
||
/* Добавим строку для раздела */
|
||
PKG_P8PANELS_VISUAL.TDG_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
|
||
end loop;
|
||
end if;
|
||
/* Сериализуем описание */
|
||
CDG := PKG_P8PANELS_VISUAL.TDG_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => 1);
|
||
/* Заполняем контейнер данными о разделе */
|
||
PKG_CONTVALLOC2NS.PUTN(RCONTAINER => CXML, NTABID => S.RNUM, SROWID => 'RN', NVALUE => S.NRN);
|
||
PKG_CONTVALLOC2NS.PUTS(RCONTAINER => CXML, NTABID => S.RNUM, SROWID => 'CODE', SVALUE => S.SCODE);
|
||
PKG_CONTVALLOC2NS.PUTS(RCONTAINER => CXML, NTABID => S.RNUM, SROWID => 'NAME', SVALUE => S.SNAME);
|
||
PKG_CONTVALLOC2NS.PUTLC(RCONTAINER => CXML, NTABID => S.RNUM, SROWID => 'CLOB', LCVALUE => CDG);
|
||
end loop;
|
||
/* Формируем XML с данными */
|
||
PKG_XFAST.PROLOGUE(ITYPE => PKG_XFAST.CONTENT_);
|
||
PKG_XFAST.DOWN_NODE(SNAME => 'DATA');
|
||
/* Цикл по контейнеру с данными о разделах */
|
||
for X in 1 .. PKG_CONTVALLOC2NS.COUNT_(RCONTAINER => CXML)
|
||
loop
|
||
/* Ид. раздела */
|
||
if (X = 1) then
|
||
NCURRENT_SECTION := PKG_CONTVALLOC2NS.FIRST_(RCONTAINER => CXML);
|
||
else
|
||
NCURRENT_SECTION := PKG_CONTVALLOC2NS.NEXT_(RCONTAINER => CXML, NTABID => NCURRENT_SECTION);
|
||
end if;
|
||
/* Рег. номер раздела */
|
||
NSECTION_RN := PKG_CONTVALLOC2NS.GETN(RCONTAINER => CXML, NTABID => NCURRENT_SECTION, SROWID => 'RN');
|
||
/* Мнемокод раздела */
|
||
SSECTION_CODE := PKG_CONTVALLOC2NS.GETS(RCONTAINER => CXML, NTABID => NCURRENT_SECTION, SROWID => 'CODE');
|
||
/* Наименование раздела */
|
||
SSECTION_NAME := PKG_CONTVALLOC2NS.GETS(RCONTAINER => CXML, NTABID => NCURRENT_SECTION, SROWID => 'NAME');
|
||
/* Clob с показателями раздела */
|
||
CSECTION_CLOB := PKG_CONTVALLOC2NS.GETLC(RCONTAINER => CXML, NTABID => NCURRENT_SECTION, SROWID => 'CLOB');
|
||
/* Формирование элемента XML с данными о разделе */
|
||
PKG_XFAST.DOWN_NODE(SNAME => 'SECTIONS');
|
||
PKG_XFAST.ATTR(SNAME => 'NRN', NVALUE => NSECTION_RN);
|
||
PKG_XFAST.ATTR(SNAME => 'SCODE', SVALUE => SSECTION_CODE);
|
||
PKG_XFAST.ATTR(SNAME => 'SNAME', SVALUE => SSECTION_NAME);
|
||
PKG_XFAST.ATTR(SNAME => 'NDELETE_ALLOW',
|
||
NVALUE => UTL_UNIT_ACTION_GET_ALLOW(SUNIT => SUNIT_RRPCONFSCTN,
|
||
SACTION => SACTION_DELETE,
|
||
NRN => NSECTION_RN));
|
||
PKG_XFAST.VALUE_XML(LCVALUE => CSECTION_CLOB);
|
||
/* Добавляем информацию о составах показателей */
|
||
PKG_XFAST.DOWN_NODE(SNAME => 'MARK_CNS');
|
||
/* Цикл по составам показателей раздела */
|
||
for REC in (select T.PRN,
|
||
T.RN,
|
||
T.NUMB
|
||
from RRPCONFSCTNMRK M,
|
||
RRPCONFSCTNMRKCN T
|
||
where M.PRN = NSECTION_RN
|
||
and T.PRN = M.RN
|
||
order by M.RN,
|
||
T.NUMB asc)
|
||
loop
|
||
/* Добавляем состав */
|
||
PKG_XFAST.DOWN_NODE(SNAME => 'MARK_CN');
|
||
PKG_XFAST.ATTR(SNAME => 'NPRN', NVALUE => REC.PRN);
|
||
PKG_XFAST.ATTR(SNAME => 'NRN', NVALUE => REC.RN);
|
||
PKG_XFAST.ATTR(SNAME => 'SNUMB', SVALUE => REC.NUMB);
|
||
PKG_XFAST.ATTR(SNAME => 'SDESC',
|
||
SVALUE => UTL_RRPCONFSCTNMRKCN_GET_DESC(NCOMPANY => NCOMPANY, NRRPCONFSCTNMRKCN => REC.RN));
|
||
PKG_XFAST.UP();
|
||
end loop;
|
||
PKG_XFAST.UP();
|
||
PKG_XFAST.UP();
|
||
end loop;
|
||
PKG_XFAST.UP();
|
||
/* Сериализуем описание */
|
||
COUT := PKG_XFAST.SERIALIZE_TO_CLOB();
|
||
PKG_XFAST.EPILOGUE();
|
||
/* Очистка контейнера */
|
||
PKG_CONTVALLOC2NS.PURGE(RCONTAINER => CXML);
|
||
end RRPCONF_GET_SECTIONS;
|
||
|
||
/* Добавление раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTN_INSERT
|
||
(
|
||
NPRN in number, -- Ид. настройки форм регламентированного отчёта
|
||
SCODE in varchar2, -- Мнемокод
|
||
SNAME in varchar2, -- Наименование
|
||
NRN out number -- Ид. созданной записи
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
|
||
begin
|
||
/* Добавим раздел */
|
||
P_RRPCONFSCTN_INSERT(NCOMPANY => NCOMPANY,
|
||
NPRN => NPRN,
|
||
SCODE => SCODE,
|
||
SNAME => SNAME,
|
||
SRRPCONFSCTN => null,
|
||
SRRPPRMGRP => null,
|
||
SNOTE => null,
|
||
NHTML_HIDE => 0,
|
||
NHTML_HIDE_NAME_COL => 0,
|
||
NHTML_MAKE_HIER_GRP => 0,
|
||
SCLSF_CODE => null,
|
||
NLINKS_UPDATE => 0,
|
||
NDUP_RN => null,
|
||
NRN => NRN);
|
||
end RRPCONFSCTN_INSERT;
|
||
|
||
/* Исправление раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTN_UPDATE
|
||
(
|
||
NRN in number, -- Ид. раздела
|
||
SCODE in varchar2, -- Мнемокод раздела
|
||
SNAME in varchar2 -- Наименование раздела
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
|
||
RRES RRPCONFSCTN%rowtype; -- Запись раздела настройки формы регламентированного отчета
|
||
RRRPCONFSCTN RRPCONFSCTN%rowtype; -- Запись родительского раздела настройки регламентированного отчета
|
||
RRRPPRMGRP RRPPRMGRP%rowtype; -- Запись группы параметров регламентированного отчета
|
||
begin
|
||
/* Считаем исправляемую запись */
|
||
RRES := GET_RRPCONFSCTN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRN);
|
||
/* Считаем запись родительского этапа */
|
||
if (RRES.RRPCONFSCTN is not null) then
|
||
RRRPCONFSCTN := GET_RRPCONFSCTN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RRES.RRPCONFSCTN);
|
||
end if;
|
||
/* Считаем запись группы параметров */
|
||
if (RRES.RRPPRMGRP is not null) then
|
||
RRRPPRMGRP := GET_RRPPRMGRP_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RRES.RRPPRMGRP);
|
||
end if;
|
||
/* Исправим раздел */
|
||
P_RRPCONFSCTN_UPDATE(NRN => RRES.RN,
|
||
NCOMPANY => NCOMPANY,
|
||
SCODE => SCODE,
|
||
SNAME => SNAME,
|
||
SRRPCONFSCTN => RRRPCONFSCTN.CODE,
|
||
SRRPPRMGRP => RRRPPRMGRP.CODE,
|
||
SNOTE => RRES.NOTE,
|
||
NHTML_HIDE => RRES.HTML_HIDE,
|
||
NHTML_HIDE_NAME_COL => RRES.HTML_HIDE_NAME_COL,
|
||
NHTML_MAKE_HIER_GRP => RRES.HTML_MAKE_HIER_GRP,
|
||
SCLSF_CODE => RRES.CLSF_CODE,
|
||
NFORMULA_UPDATE => 1,
|
||
NMARK_UPDATE => 1);
|
||
end RRPCONFSCTN_UPDATE;
|
||
|
||
/* Удаление раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTN_DELETE
|
||
(
|
||
NRN in number -- Ид. раздела
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
|
||
begin
|
||
/* Если действие недоступно для удаления */
|
||
if (UTL_UNIT_ACTION_GET_ALLOW(SUNIT => SUNIT_RRPCONFSCTN, SACTION => SACTION_DELETE, NRN => NRN) = 0) then
|
||
P_EXCEPTION(0,
|
||
'Данный раздел используется в сформированных документах/параметрах документа/дочерний раздел. Удаление запрещено.');
|
||
end if;
|
||
/* Удалим раздел */
|
||
P_RRPCONFSCTN_DELETE(NRN => NRN, NCOMPANY => NCOMPANY);
|
||
end RRPCONFSCTN_DELETE;
|
||
|
||
/* Получение кодов настройки, раздела и показателя раздела по ид. показателя раздела */
|
||
procedure RRPCONFSCTNMRK_GET_CODES
|
||
(
|
||
NRN in number, -- Ид. показателя раздела
|
||
SRRPCONF out varchar2, -- Код настройки формы регламентированного отчёта
|
||
SRRPCONFSCTN out varchar2, -- Код раздела
|
||
SRRPCONFSCTNMRK out varchar2 -- Код показателя раздела
|
||
)
|
||
is
|
||
begin
|
||
/* Считываем данные показателя/раздела/настройки */
|
||
begin
|
||
select C.CODE,
|
||
S.CODE,
|
||
M.CODE
|
||
into SRRPCONF,
|
||
SRRPCONFSCTN,
|
||
SRRPCONFSCTNMRK
|
||
from RRPCONF C,
|
||
RRPCONFSCTN S,
|
||
RRPCONFSCTNMRK M
|
||
where M.RN = NRN
|
||
and S.RN = M.PRN
|
||
and C.RN = S.PRN;
|
||
exception
|
||
when others then
|
||
P_EXCEPTION(0,
|
||
'Не определен показатель настройки регламентированного отчета.');
|
||
end;
|
||
end RRPCONFSCTNMRK_GET_CODES;
|
||
|
||
/* Формирование кода и наименования показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_GET_CODE_NAME
|
||
(
|
||
NRRPCONFSCTN in number, -- Рег. номер раздела
|
||
NRRPROW in number, -- Рег. номер строки
|
||
NRRPCOLUMN in number, -- Рег. номер графы
|
||
SCODE out varchar2, -- Мнемокод показателя раздела
|
||
SNAME out varchar2 -- Наименование показателя раздела
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
|
||
RRRPCONFSCTN RRPCONFSCTN%rowtype; -- Запись раздела регламентированного отчета
|
||
RRRPROW RRPROW%rowtype; -- Запись строки регламентированного отчета
|
||
RRRPCOLUMN RRPCOLUMN%rowtype; -- Запись графы регламентированного отчета
|
||
begin
|
||
/* Считываем запись раздела регламентированного отчета */
|
||
RRRPCONFSCTN := GET_RRPCONFSCTN_ID(NFLAG_SMART => 1, NCOMPANY => NCOMPANY, NRN => NRRPCONFSCTN);
|
||
/* Считываем запись строки регламентированного отчета */
|
||
RRRPROW := GET_RRPROW_ID(NFLAG_SMART => 1, NCOMPANY => NCOMPANY, NRN => NRRPROW);
|
||
/* Считываем запись графы регламентированного отчета */
|
||
RRRPCOLUMN := GET_RRPCOLUMN_ID(NFLAG_SMART => 1, NCOMPANY => NCOMPANY, NRN => NRRPCOLUMN);
|
||
/* Если все записи считаны */
|
||
if ((RRRPCONFSCTN.RN is not null) and (RRRPROW.RN is not null) and (RRRPCOLUMN.RN is not null)) then
|
||
/* Сформируем код показателя */
|
||
P_RRPCONFSCTNMRK_MAKE_CODE(SRRPCONFSCTN => RRRPCONFSCTN.CODE,
|
||
SRRPROW => RRRPROW.CODE,
|
||
SRRPCOLUMN => RRRPCOLUMN.CODE,
|
||
SCODE => SCODE);
|
||
/* Сформируем наименование показателя */
|
||
P_RRPCONFSCTNMRK_MAKE_NAME(NCOMPANY => NCOMPANY,
|
||
NRRPROW => RRRPROW.RN,
|
||
NRRPCOLUMN => RRRPCOLUMN.RN,
|
||
NCHANGE_NAME => 1,
|
||
NCHANGE_NAME_PARENT => 0,
|
||
SNAME => SNAME);
|
||
end if;
|
||
end RRPCONFSCTNMRK_GET_CODE_NAME;
|
||
|
||
/* Формирование кода и наименования показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_GET_NAME
|
||
(
|
||
NRRPCONFSCTNMRK in number, -- Рег. номер показателя
|
||
SNAME out varchar2 -- Наименование показателя раздела
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
|
||
RRRPCONFSCTNMRK RRPCONFSCTNMRK%rowtype; -- Запись показателя регламентированного отчета
|
||
begin
|
||
/* Считываем запись раздела регламентированного отчета */
|
||
RRRPCONFSCTNMRK := GET_RRPCONFSCTNMRK_ID(NFLAG_SMART => 1, NCOMPANY => NCOMPANY, NRN => NRRPCONFSCTNMRK);
|
||
/* Указываем наименование показателя */
|
||
SNAME := RRRPCONFSCTNMRK.NAME;
|
||
end RRPCONFSCTNMRK_GET_NAME;
|
||
|
||
/* Добавление показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_INSERT
|
||
(
|
||
NPRN in number, -- Ид. раздела
|
||
SCODE in varchar2, -- Мнемокод показателя раздела
|
||
SNAME in varchar2, -- Наименование показателя раздела
|
||
NRRPROW in number, -- Рег. номер строки
|
||
NRRPCOLUMN in number, -- Рег. номер графы
|
||
NRN out number -- Ид. созданной записи
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
|
||
RRRPROW RRPROW%rowtype; -- Запись строки регламентированного отчета
|
||
RRRPVERSION_ROW RRPVERSION%rowtype; -- Запись редакции строки регламентированного отчета
|
||
RRRPCOLUMN RRPCOLUMN%rowtype; -- Запись графы регламентированного отчета
|
||
RRRPVERSION_COL RRPVERSION%rowtype; -- Запись редакции графы регламентированного отчета
|
||
begin
|
||
/* Если строка не указана */
|
||
if (NRRPROW is null) then
|
||
P_EXCEPTION(0,
|
||
'Ошибка считывания строки регламентированного отчета.');
|
||
end if;
|
||
/* Если графа не указана */
|
||
if (NRRPCOLUMN is null) then
|
||
P_EXCEPTION(0,
|
||
'Ошибка считывания графы регламентированного отчета.');
|
||
end if;
|
||
/* Считываем запись строки регламентированного отчета */
|
||
RRRPROW := GET_RRPROW_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRRPROW);
|
||
/* Считываем запись графы регламентированного отчета */
|
||
RRRPCOLUMN := GET_RRPCOLUMN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRRPCOLUMN);
|
||
/* Считываем запись редакции строки регламентированного отчета */
|
||
RRRPVERSION_ROW := GET_RRPVERSION_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RRRPROW.RRPVERSION);
|
||
/* Считываем запись редакции графы регламентированного отчета */
|
||
RRRPVERSION_COL := GET_RRPVERSION_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RRRPCOLUMN.RRPVERSION);
|
||
/* Добавим показатель */
|
||
P_RRPCONFSCTNMRK_INSERT(NCOMPANY => NCOMPANY,
|
||
NPRN => NPRN,
|
||
NNUMB => F_RRPCONFSCTNMRK_NEXT_NUMB(NCOMPANY => NCOMPANY, NPRN => NPRN),
|
||
SCODE => SCODE,
|
||
SNAME => SNAME,
|
||
SRRPROW => RRRPROW.CODE,
|
||
SRRPVERSION_ROW => RRRPVERSION_ROW.CODE,
|
||
SRRPCOLUMN => RRRPCOLUMN.CODE,
|
||
SRRPVERSION_COLUMN => RRRPVERSION_COL.CODE,
|
||
SPKG_ROW => null,
|
||
SPRC_ROW => null,
|
||
SPKG_COL => null,
|
||
SPRC_COL => null,
|
||
SRRPPRM => null,
|
||
NIGNORE_ZOOM => 0,
|
||
NIGNORE_SHARP => 0,
|
||
SCLSF_CODE => null,
|
||
SNOTE => null,
|
||
NDUP_RN => null,
|
||
NRN => NRN);
|
||
end RRPCONFSCTNMRK_INSERT;
|
||
|
||
/* Исправление показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_UPDATE
|
||
(
|
||
NRN in number, -- Ид. показателя раздела
|
||
SNAME in varchar2 -- Новое наименование
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
|
||
RESSCTNMRK RRPCONFSCTNMRK%rowtype; -- Запись настройки показателя регламентированного отчета
|
||
RESROW RRPROW%rowtype; -- Запись строки регламентированного отчета
|
||
RESCOLUMN RRPCOLUMN%rowtype; -- Запись графы регламентированного отчета
|
||
RRRPPRM RRPPRM%rowtype; -- Запись типового параметра регламентированного отчета
|
||
SROWVER PKG_STD.TSTRING; -- Мнемокод редакции строки
|
||
SCOLVER PKG_STD.TSTRING; -- Мнемокод редакции графы
|
||
begin
|
||
/* Получение записи параметра раздела */
|
||
RESSCTNMRK := GET_RRPCONFSCTNMRK_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => NRN);
|
||
/* Получение записи строки */
|
||
RESROW := GET_RRPROW_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPROW);
|
||
/* Получение записи графы */
|
||
RESCOLUMN := GET_RRPCOLUMN_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPCOLUMN);
|
||
/* Получение мнемокода редакции строки */
|
||
if (RESROW.RRPVERSION is not null) then
|
||
SROWVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESROW.RRPVERSION);
|
||
end if;
|
||
/* Получение мнемокода редакции графы */
|
||
if (RESCOLUMN.RRPVERSION is not null) then
|
||
SCOLVER := GET_RRPVERSION_CODE_ID(NFLAG_SMART => 0, NRN => RESCOLUMN.RRPVERSION);
|
||
end if;
|
||
/* Получение записи типового параметра */
|
||
if (RESSCTNMRK.RRPPRM is not null) then
|
||
RRRPPRM := GET_RRPPRM_ID(NFLAG_SMART => 0, NCOMPANY => NCOMPANY, NRN => RESSCTNMRK.RRPPRM);
|
||
end if;
|
||
/* Исправим показатель */
|
||
P_RRPCONFSCTNMRK_UPDATE(NRN => NRN,
|
||
NCOMPANY => NCOMPANY,
|
||
NNUMB => RESSCTNMRK.NUMB,
|
||
SCODE => RESSCTNMRK.CODE,
|
||
SNAME => SNAME,
|
||
SRRPROW => RESROW.CODE,
|
||
SRRPVERSION_ROW => SROWVER,
|
||
SRRPCOLUMN => RESCOLUMN.CODE,
|
||
SRRPVERSION_COLUMN => SCOLVER,
|
||
SPKG_ROW => RESSCTNMRK.PKG_ROW,
|
||
SPRC_ROW => RESSCTNMRK.PRC_ROW,
|
||
SPKG_COL => RESSCTNMRK.PKG_COL,
|
||
SPRC_COL => RESSCTNMRK.PRC_COL,
|
||
SRRPPRM => RRRPPRM.CODE,
|
||
NIGNORE_ZOOM => RESSCTNMRK.IGNORE_ZOOM,
|
||
NIGNORE_SHARP => RESSCTNMRK.IGNORE_SHARP,
|
||
SCLSF_CODE => RESSCTNMRK.CLSF_CODE,
|
||
NFORMULA_UPDATE => 0,
|
||
SNOTE => RESSCTNMRK.NOTE);
|
||
end RRPCONFSCTNMRK_UPDATE;
|
||
|
||
/* Удаление показателя раздела регламентированного отчёта */
|
||
procedure RRPCONFSCTNMRK_DELETE
|
||
(
|
||
NRN in number -- Ид. показателя раздела
|
||
)
|
||
is
|
||
NCOMPANY PKG_STD.TREF := GET_SESSION_COMPANY(); -- Рег. номер организации
|
||
begin
|
||
/* Если действие недоступно для удаления */
|
||
if (UTL_UNIT_ACTION_GET_ALLOW(SUNIT => SUNIT_RRPCONFSCTNMRK, SACTION => SACTION_DELETE, NRN => NRN) = 0) then
|
||
P_EXCEPTION(0,
|
||
'Данный показатель используется в сформированных документах. Удаление запрещено.');
|
||
end if;
|
||
/* Удалим показатель */
|
||
P_RRPCONFSCTNMRK_DELETE(NCOMPANY => NCOMPANY, NRN => NRN);
|
||
end RRPCONFSCTNMRK_DELETE;
|
||
|
||
end PKG_P8PANELS_RRPCONFED;
|
||
/
|