forked from CITKParus/P8-Panels
БД: Удалён код РТ "PM0010" - "Калькуляция этапа проекта"
This commit is contained in:
parent
f90e3793d3
commit
d3ac23c217
@ -193,9 +193,6 @@ create or replace package PKG_P8PANELS_PROJECTS as
|
||||
COUT out clob -- Сериализованная таблица данных
|
||||
);
|
||||
|
||||
/* Формирование расчетной таблицы "PM0010" - "Калькуляция этапа проекта" */
|
||||
procedure STAGES_CT_CALC;
|
||||
|
||||
/* Подбор записей журнала затрат по статье калькуляции этапа проекта */
|
||||
procedure STAGE_ARTS_SELECT_COST_FACT
|
||||
(
|
||||
@ -1860,188 +1857,6 @@ text="ПРАВА ДОСТУПА!!!!"
|
||||
COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
|
||||
end STAGES_LIST;
|
||||
|
||||
/* Считывание записи проекта/этапа для расчётной таблицы "PM0010" - "Калькуляция этапа проекта" */
|
||||
procedure STAGES_CT_CALC_LOAD_PROJECT
|
||||
(
|
||||
RPRJ out PROJECT%rowtype, -- Запись проекта
|
||||
RSTG out PROJECTSTAGE%rowtype -- Запись этапа проекта
|
||||
)
|
||||
is
|
||||
NCOMPANY PKG_STD.TREF; -- Рег. номер организации из входных параметров
|
||||
SPROJECT_CODE PKG_STD.TSTRING; -- Код проета из параметров
|
||||
SPROJECT_STAGE_NUMB PKG_STD.TSTRING; -- Номер этапа проекта из входных параметров
|
||||
begin
|
||||
/* Считывание параметра "Организация" */
|
||||
PRSG_CALCTAB_IMAGE.READ_PARAMETER_NUM(SNAME => SSTAGES_CT_CALC_PRM_COMP, NVALUE => NCOMPANY);
|
||||
/* Считывание параметра "Код проекта" */
|
||||
PRSG_CALCTAB_IMAGE.READ_PARAMETER_STR(SNAME => SSTAGES_CT_CALC_PRM_PRJ, SVALUE => SPROJECT_CODE);
|
||||
/* Считывание параметра "Номер этапа проекта" */
|
||||
PRSG_CALCTAB_IMAGE.READ_PARAMETER_STR(SNAME => SSTAGES_CT_CALC_PRM_STG, SVALUE => SPROJECT_STAGE_NUMB);
|
||||
/* Читаем данные */
|
||||
begin
|
||||
/* Проект */
|
||||
select P.*
|
||||
into RPRJ
|
||||
from PROJECT P
|
||||
where P.COMPANY = NCOMPANY
|
||||
and P.CODE = SPROJECT_CODE;
|
||||
/* Этап */
|
||||
select PS.*
|
||||
into RSTG
|
||||
from PROJECTSTAGE PS
|
||||
where PS.PRN = RPRJ.RN
|
||||
and trim(PS.NUMB) = trim(SPROJECT_STAGE_NUMB);
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
P_EXCEPTION(0,
|
||||
'Этап "%s" проекта "%s" в организации "%s" не определён.',
|
||||
COALESCE(SPROJECT_STAGE_NUMB, '<НЕ УКАЗАН>'),
|
||||
COALESCE(SPROJECT_CODE, '<НЕ УКАЗАН>'),
|
||||
COALESCE(TO_CHAR(NCOMPANY), '<НЕ УКАЗАНА>'));
|
||||
end;
|
||||
end STAGES_CT_CALC_LOAD_PROJECT;
|
||||
|
||||
/* Формирование заголовков таблиц для расчётной таблицы "PM0010" - "Калькуляция этапа проекта" */
|
||||
procedure STAGES_CT_CALC_TABLE_CAPTIONS
|
||||
is
|
||||
RPRJ PROJECT%rowtype; -- Запись проекта
|
||||
RSTG PROJECTSTAGE%rowtype; -- Запись этапа проекта
|
||||
begin
|
||||
/* Считаем проект и этап */
|
||||
STAGES_CT_CALC_LOAD_PROJECT(RPRJ => RPRJ, RSTG => RSTG);
|
||||
/* Работаем от имени таблицы */
|
||||
case PRSG_CALCTAB.TABLE_NAME
|
||||
/* Таблица "Статьи калькуляции" */
|
||||
when SSTAGES_CT_CALC_TBL_CLARTS then
|
||||
PRSG_CALCTAB_BUILD.WRITE_TABLE_CAPTION(STEXT => 'Калькуляция этапа "' || trim(RSTG.NUMB) || '" проекта "' ||
|
||||
RPRJ.CODE || '"');
|
||||
/* Неизвестная таблица */
|
||||
else
|
||||
null;
|
||||
end case;
|
||||
end STAGES_CT_CALC_TABLE_CAPTIONS;
|
||||
|
||||
/* Формирование строк для расчетной таблицы "PM0010" - "Калькуляция этапа проекта" */
|
||||
procedure STAGES_CT_CALC_BUILD_LINES
|
||||
is
|
||||
NCOMPANY PKG_STD.TREF; -- Рег. номер организации из входных параметров
|
||||
NVERSION PKG_STD.TREF; -- Рег. номер версии словаря "Статьи затрат"
|
||||
SCRN PKG_STD.TSTRING; -- Наименование каталога статей калькуляции в словаре "Статьи затрат"
|
||||
NCRN PKG_STD.TREF; -- Рег. номер каталога статей калькуляции в словаре "Статьи затрат"
|
||||
BCREATED boolean := false; -- Флаг успешного добавления строк в таблицу
|
||||
begin
|
||||
/* Строки для таблицы "Статьи калькуляции" */
|
||||
if (PRSG_CALCTAB.TABLE_NAME = SSTAGES_CT_CALC_TBL_CLARTS) then
|
||||
/* Считывание параметра "Организация" */
|
||||
PRSG_CALCTAB_IMAGE.READ_PARAMETER_NUM(SNAME => SSTAGES_CT_CALC_PRM_COMP, NVALUE => NCOMPANY);
|
||||
/* Считывание параметра "Каталог статей калькуляции" */
|
||||
PRSG_CALCTAB_IMAGE.READ_PARAMETER_STR(SNAME => SSTAGES_CT_CALC_PRM_ARTSCAT, SVALUE => SCRN);
|
||||
/* Находим версию словаря "Статьи затрат" */
|
||||
FIND_VERSION_BY_COMPANY(NCOMPANY => NCOMPANY, SUNITCODE => 'FinPlanArticles', NVERSION => NVERSION);
|
||||
/* Находим рег. номер каталога статей калькуляции */
|
||||
FIND_ACATALOG_NAME(NFLAG_SMART => 0,
|
||||
NCOMPANY => NCOMPANY,
|
||||
NVERSION => NVERSION,
|
||||
SUNITCODE => 'FinPlanArticles',
|
||||
SNAME => SCRN,
|
||||
NRN => NCRN);
|
||||
/* Идем по статьям калькуляции */
|
||||
for C in (select T.RN
|
||||
from FPDARTCL T
|
||||
where T.VERSION = NVERSION
|
||||
and T.CRN = NCRN
|
||||
order by T.CODE)
|
||||
loop
|
||||
/* Добавим строку */
|
||||
PRSG_CALCTAB_BUILD.APPEND_ROW_COPY(NSOURCE => C.RN);
|
||||
/* Поднимем флаг добавления */
|
||||
BCREATED := true;
|
||||
end loop;
|
||||
/* Если статей не нашли */
|
||||
if (not BCREATED) then
|
||||
P_EXCEPTION(0, 'Не задан набор статей калькуляции.');
|
||||
end if;
|
||||
end if;
|
||||
end STAGES_CT_CALC_BUILD_LINES;
|
||||
|
||||
/* Наполнение строк для расчетной таблицы "PM0010" - "Калькуляция этапа проекта" */
|
||||
procedure STAGES_CT_CALC_FILL_LINES
|
||||
is
|
||||
RCURSOR PRSG_CALCTAB.TCURSOR; -- Маркер коллекции строк таблицы
|
||||
RFPDARTCL FPDARTCL%rowtype; -- Запись статьи калькуляции в словаре
|
||||
NSUMM_PL PKG_STD.TNUMBER; -- Плановая сумма (считанная из хранилища расчётной таблицы)
|
||||
begin
|
||||
/* Выбор листа и таблицы "Статьи калькуляции"*/
|
||||
PRSG_CALCTAB_IMAGE.SELECT_TABLE(SSHEET_NAME => SSTAGES_CT_CALC_SH_CACL, STABLE_NAME => SSTAGES_CT_CALC_TBL_CLARTS);
|
||||
/* Первая строка */
|
||||
PRSG_CALCTAB_IMAGE.FIRST_ROW(SROW_NAME => SSTAGES_CT_CALC_LN_ARTS, RCURSOR => RCURSOR);
|
||||
/* Цикл по строкам */
|
||||
loop
|
||||
/* Cчитаем статью */
|
||||
begin
|
||||
select A.* into RFPDARTCL from FPDARTCL A where A.RN = RCURSOR.ROW_SOURCE;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
PKG_MSG.RECORD_NOT_FOUND(NFLAG_SMART => 0, NDOCUMENT => RCURSOR.ROW_SOURCE, SUNIT_TABLE => 'FPDARTCL');
|
||||
end;
|
||||
/* Заполняем колонки - "Номер" */
|
||||
PRSG_CALCTAB_IMAGE.WRITE_ROW_STR(RCURSOR => RCURSOR,
|
||||
SCOLUMN_NAME => SSTAGES_CT_CALC_CL_NUMB,
|
||||
SVALUE => RFPDARTCL.CODE,
|
||||
NSOURCE => RFPDARTCL.RN);
|
||||
/* Заполняем колонки - "Наименование" */
|
||||
PRSG_CALCTAB_IMAGE.WRITE_ROW_STR(RCURSOR => RCURSOR,
|
||||
SCOLUMN_NAME => SSTAGES_CT_CALC_CL_NAME,
|
||||
SVALUE => RFPDARTCL.NAME,
|
||||
NSOURCE => RFPDARTCL.RN);
|
||||
/* Заполняем колонки - "Плановая сумма" */
|
||||
PRSG_CALCTAB_IMAGE.READ_ROW_NUM(RCURSOR => RCURSOR,
|
||||
SCOLUMN_NAME => SSTAGES_CT_CALC_CL_SUMM_PL,
|
||||
NVALUE => NSUMM_PL);
|
||||
PRSG_CALCTAB_IMAGE.WRITE_ROW_NUM(RCURSOR => RCURSOR,
|
||||
SCOLUMN_NAME => SSTAGES_CT_CALC_CL_SUMM_PL,
|
||||
NVALUE => COALESCE(NSUMM_PL, 0),
|
||||
NSOURCE => RFPDARTCL.RN);
|
||||
/* Выходим если строк больше нет */
|
||||
if (not PRSG_CALCTAB_IMAGE.NEXT_ROW(RCURSOR => RCURSOR)) then
|
||||
exit;
|
||||
end if;
|
||||
end loop;
|
||||
end STAGES_CT_CALC_FILL_LINES;
|
||||
|
||||
/* Формирование расчетной таблицы "PM0010" - "Калькуляция этапа проекта" */
|
||||
procedure STAGES_CT_CALC
|
||||
is
|
||||
begin
|
||||
/* Работаем в зависимости от текущего режима вызова */
|
||||
case
|
||||
/* Инициализация построения */
|
||||
when (PRSG_CALCTAB.CONTEXT_INIT) then
|
||||
null;
|
||||
/* Формирование заголовков листов */
|
||||
when (PRSG_CALCTAB.CONTEXT_SHEET_CAPTION) then
|
||||
null;
|
||||
/* Формирование заголовков таблиц */
|
||||
when (PRSG_CALCTAB.CONTEXT_TABLE_CAPTION) then
|
||||
STAGES_CT_CALC_TABLE_CAPTIONS();
|
||||
/* Формирование столбцов */
|
||||
when (PRSG_CALCTAB.CONTEXT_COLUMN_CAPTION) then
|
||||
null;
|
||||
/* Формирование строк */
|
||||
when (PRSG_CALCTAB.CONTEXT_ROW_COPIES) then
|
||||
STAGES_CT_CALC_BUILD_LINES();
|
||||
/* Наполнение данными */
|
||||
when (PRSG_CALCTAB.CONTEXT_BEFORE) then
|
||||
STAGES_CT_CALC_FILL_LINES();
|
||||
/* Сохранение */
|
||||
when (PRSG_CALCTAB.CONTEXT_AFTER) then
|
||||
null;
|
||||
/* Прочее */
|
||||
else
|
||||
null;
|
||||
end case;
|
||||
end STAGES_CT_CALC;
|
||||
|
||||
/* Подбор записей журнала затрат по статье калькуляции этапа проекта */
|
||||
procedure STAGE_ARTS_SELECT_COST_FACT
|
||||
(
|
||||
|
Loading…
x
Reference in New Issue
Block a user