forked from CITKParus/P8-Panels
БД: Доработаны показатели контроля актирования и соисполнения проектов
This commit is contained in:
parent
2d5d46eb78
commit
81b4913b31
@ -135,7 +135,7 @@ create or replace package PKG_P8PANELS_PROJECTS as
|
|||||||
function STAGES_GET_CTRL_COEXEC
|
function STAGES_GET_CTRL_COEXEC
|
||||||
(
|
(
|
||||||
NRN in number -- Рег. номер этапа проекта
|
NRN in number -- Рег. номер этапа проекта
|
||||||
) return number; -- Состояние (0 - без отклонений, 1 - есть отклонения)
|
) return number; -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
|
|
||||||
/* Получение состояния сроков этапа проекта */
|
/* Получение состояния сроков этапа проекта */
|
||||||
function STAGES_GET_CTRL_PERIOD
|
function STAGES_GET_CTRL_PERIOD
|
||||||
@ -153,7 +153,7 @@ create or replace package PKG_P8PANELS_PROJECTS as
|
|||||||
function STAGES_GET_CTRL_ACT
|
function STAGES_GET_CTRL_ACT
|
||||||
(
|
(
|
||||||
NRN in number -- Рег. номер этапа проекта
|
NRN in number -- Рег. номер этапа проекта
|
||||||
) return number; -- Состояние (0 - без отклонений, 1 - есть отклонения)
|
) return number; -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
|
|
||||||
/* Получение остатка срока исполнения этапа проекта */
|
/* Получение остатка срока исполнения этапа проекта */
|
||||||
function STAGES_GET_DAYS_LEFT
|
function STAGES_GET_DAYS_LEFT
|
||||||
@ -246,6 +246,13 @@ create or replace package PKG_P8PANELS_PROJECTS as
|
|||||||
NIDENT out number -- Идентификатор буфера подобранных (списка отмеченных записей, null - не найдено)
|
NIDENT out number -- Идентификатор буфера подобранных (списка отмеченных записей, null - не найдено)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* Подбор приходных накладных соисполнителя этапа проекта */
|
||||||
|
procedure STAGE_CONTRACTS_SELECT_ININV
|
||||||
|
(
|
||||||
|
NPROJECTSTAGEPF in number, -- Рег. номер соисполнителя этапа проекта
|
||||||
|
NIDENT out number -- Идентификатор буфера подобранных (списка отмеченных записей, null - не найдено)
|
||||||
|
);
|
||||||
|
|
||||||
/* Подбор платежей финансирования соисполнителя этапа проекта */
|
/* Подбор платежей финансирования соисполнителя этапа проекта */
|
||||||
procedure STAGE_CONTRACTS_SELECT_FIN_OUT
|
procedure STAGE_CONTRACTS_SELECT_FIN_OUT
|
||||||
(
|
(
|
||||||
@ -259,15 +266,26 @@ create or replace package PKG_P8PANELS_PROJECTS as
|
|||||||
NPROJECTSTAGEPF in number -- Рег. номер соисполнителя этапа проекта
|
NPROJECTSTAGEPF in number -- Рег. номер соисполнителя этапа проекта
|
||||||
) return number; -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
) return number; -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
|
|
||||||
|
/* Получение состояния соисполнения по договору соисполнителя этапа проекта */
|
||||||
|
function STAGE_CONTRACTS_GET_CTRL_COEXE
|
||||||
|
(
|
||||||
|
NPROJECTSTAGEPF in number -- Рег. номер соисполнителя этапа проекта
|
||||||
|
) return number; -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
|
|
||||||
/* Получение сведений по договору соисполнителя этапа проекта */
|
/* Получение сведений по договору соисполнителя этапа проекта */
|
||||||
procedure STAGE_CONTRACTS_GET
|
procedure STAGE_CONTRACTS_GET
|
||||||
(
|
(
|
||||||
NPROJECTSTAGEPF in number, -- Рег. номер соисполнителя этапа проекта
|
NPROJECTSTAGEPF in number, -- Рег. номер соисполнителя этапа проекта
|
||||||
NINC_FIN in number := 0, -- Включить сведения о финансированеии (0 - нет, 1 - да)
|
NINC_FIN in number := 0, -- Включить сведения о финансировании (0 - нет, 1 - да)
|
||||||
|
NINC_COEXEC in number := 0, -- Включить сведения о соисполнении (0 - нет, 1 - да)
|
||||||
NPAY_IN out number, -- Сведения о финансировании - сумма акцептованных счетов на оплату
|
NPAY_IN out number, -- Сведения о финансировании - сумма акцептованных счетов на оплату
|
||||||
NFIN_OUT out number, -- Сведения о финансировании - сумма оплаченных счетов на оплату
|
NFIN_OUT out number, -- Сведения о финансировании - сумма оплаченных счетов на оплату
|
||||||
NPAY_IN_REST out number, -- Сведения о финансировании - сумма оставшихся к оплате счетов на оплату
|
NPAY_IN_REST out number, -- Сведения о финансировании - сумма оставшихся к оплате счетов на оплату
|
||||||
NCTRL_FIN out number -- Сведения о финансировани - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
NFIN_REST out number, -- Сведения о финансировании - общий остаток к оплате по договору
|
||||||
|
NCTRL_FIN out number, -- Сведения о финансировании - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
|
NCOEXEC_IN out number, -- Сведения о соисполнении - получено актов/накладных
|
||||||
|
NCOEXEC_REST out number, -- Сведения о соисполнении - остаток к актированию/поставке
|
||||||
|
NCTRL_COEXEC out number -- Сведения о соисполнении - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Список договоров этапа проекта */
|
/* Список договоров этапа проекта */
|
||||||
@ -530,25 +548,38 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
/* Получение состояния соисполнения проекта */
|
/* Получение состояния соисполнения проекта */
|
||||||
function GET_CTRL_COEXEC
|
function GET_CTRL_COEXEC
|
||||||
(
|
(
|
||||||
NRN in number -- Рег. номер проекта
|
NRN in number -- Рег. номер проекта
|
||||||
) return number -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
) return number -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
is
|
is
|
||||||
BFOUND boolean := false; -- Флаг наличия этапов
|
NSTAGE_CTRL PKG_STD.TNUMBER; -- Состояние этапа
|
||||||
|
NCNT_STAGES PKG_STD.TNUMBER :=0; -- Количество этапов
|
||||||
|
NCNT_NULL PKG_STD.TNUMBER :=0; -- Количество "безконтрольных" этапов
|
||||||
begin
|
begin
|
||||||
/* Обходим этапы */
|
/* Обходим этапы */
|
||||||
for C in (select PS.RN from PROJECTSTAGE PS where PS.PRN = NRN)
|
for C in (select PS.RN from PROJECTSTAGE PS where PS.PRN = NRN)
|
||||||
loop
|
loop
|
||||||
/* Выставим флаг наличия этапов */
|
/* Увеличим счётчик этапов */
|
||||||
BFOUND := true;
|
NCNT_STAGES := NCNT_STAGES + 1;
|
||||||
|
/* Получим состояние этапа */
|
||||||
|
NSTAGE_CTRL := STAGES_GET_CTRL_COEXEC(NRN => C.RN);
|
||||||
|
/* Подсчитаем количество "безконтрольных" */
|
||||||
|
if (NSTAGE_CTRL is null) then
|
||||||
|
NCNT_NULL := NCNT_NULL + 1;
|
||||||
|
end if;
|
||||||
/* Если у этапа есть отклонение - оно есть и у проекта */
|
/* Если у этапа есть отклонение - оно есть и у проекта */
|
||||||
if (STAGES_GET_CTRL_COEXEC(NRN => C.RN) = 1) then
|
if (NSTAGE_CTRL = 1) then
|
||||||
return 1;
|
return 1;
|
||||||
end if;
|
end if;
|
||||||
end loop;
|
end loop;
|
||||||
|
/* Если ни один этап не подлежит контролю - то и состояние проекта тоже */
|
||||||
|
if (NCNT_NULL = NCNT_STAGES) then
|
||||||
|
return null;
|
||||||
|
end if;
|
||||||
/* Если мы здесь - отклонений нет */
|
/* Если мы здесь - отклонений нет */
|
||||||
if (BFOUND) then
|
if (NCNT_STAGES > 0) then
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
|
/* Нет этапов и нет контроля */
|
||||||
return null;
|
return null;
|
||||||
end if;
|
end if;
|
||||||
end GET_CTRL_COEXEC;
|
end GET_CTRL_COEXEC;
|
||||||
@ -634,25 +665,38 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
/* Получение состояния актирования проекта */
|
/* Получение состояния актирования проекта */
|
||||||
function GET_CTRL_ACT
|
function GET_CTRL_ACT
|
||||||
(
|
(
|
||||||
NRN in number -- Рег. номер проекта
|
NRN in number -- Рег. номер проекта
|
||||||
) return number -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
) return number -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
is
|
is
|
||||||
BFOUND boolean := false; -- Флаг наличия этапов
|
NSTAGE_CTRL PKG_STD.TNUMBER; -- Состояние этапа
|
||||||
|
NCNT_STAGES PKG_STD.TNUMBER :=0; -- Количество этапов
|
||||||
|
NCNT_NULL PKG_STD.TNUMBER :=0; -- Количество "безконтрольных" этапов
|
||||||
begin
|
begin
|
||||||
/* Обходим этапы */
|
/* Обходим этапы */
|
||||||
for C in (select PS.RN from PROJECTSTAGE PS where PS.PRN = NRN)
|
for C in (select PS.RN from PROJECTSTAGE PS where PS.PRN = NRN)
|
||||||
loop
|
loop
|
||||||
/* Выставим флаг наличия этапов */
|
/* Увеличим счётчик этапов */
|
||||||
BFOUND := true;
|
NCNT_STAGES := NCNT_STAGES + 1;
|
||||||
|
/* Получим состояние этапа */
|
||||||
|
NSTAGE_CTRL := STAGES_GET_CTRL_ACT(NRN => C.RN);
|
||||||
|
/* Подсчитаем количество "безконтрольных" */
|
||||||
|
if (NSTAGE_CTRL is null) then
|
||||||
|
NCNT_NULL := NCNT_NULL + 1;
|
||||||
|
end if;
|
||||||
/* Если у этапа есть отклонение - оно есть и у проекта */
|
/* Если у этапа есть отклонение - оно есть и у проекта */
|
||||||
if (STAGES_GET_CTRL_ACT(NRN => C.RN) = 1) then
|
if (NSTAGE_CTRL = 1) then
|
||||||
return 1;
|
return 1;
|
||||||
end if;
|
end if;
|
||||||
end loop;
|
end loop;
|
||||||
|
/* Если ни один этап не подлежит контролю - то и состояние проекта тоже */
|
||||||
|
if (NCNT_NULL = NCNT_STAGES) then
|
||||||
|
return null;
|
||||||
|
end if;
|
||||||
/* Если мы здесь - отклонений нет */
|
/* Если мы здесь - отклонений нет */
|
||||||
if (BFOUND) then
|
if (NCNT_STAGES > 0) then
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
|
/* Нет этапов и нет контроля */
|
||||||
return null;
|
return null;
|
||||||
end if;
|
end if;
|
||||||
end GET_CTRL_ACT;
|
end GET_CTRL_ACT;
|
||||||
@ -1186,6 +1230,12 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
PKG_COND_BROKER.BIND_VARIABLE(SVARIABLE_NAME => 'EDCTRL_COST',
|
PKG_COND_BROKER.BIND_VARIABLE(SVARIABLE_NAME => 'EDCTRL_COST',
|
||||||
NVALUE => PKG_COND_BROKER.GET_CONDITION_NUM(SCONDITION_NAME => 'EDCTRL_COST'));
|
NVALUE => PKG_COND_BROKER.GET_CONDITION_NUM(SCONDITION_NAME => 'EDCTRL_COST'));
|
||||||
end if;
|
end if;
|
||||||
|
/* Контроль актирования */
|
||||||
|
if (PKG_COND_BROKER.CONDITION_EXISTS(SCONDITION_NAME => 'EDCTRL_ACT') = 1) then
|
||||||
|
PKG_COND_BROKER.ADD_CLAUSE(SCLAUSE => 'PKG_P8PANELS_PROJECTS.STAGES_GET_CTRL_ACT(RN) = :EDCTRL_ACT');
|
||||||
|
PKG_COND_BROKER.BIND_VARIABLE(SVARIABLE_NAME => 'EDCTRL_ACT',
|
||||||
|
NVALUE => PKG_COND_BROKER.GET_CONDITION_NUM(SCONDITION_NAME => 'EDCTRL_ACT'));
|
||||||
|
end if;
|
||||||
end STAGES_COND;
|
end STAGES_COND;
|
||||||
|
|
||||||
/* Подбор платежей финансирования этапа проекта */
|
/* Подбор платежей финансирования этапа проекта */
|
||||||
@ -1363,11 +1413,40 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
/* Получение состояния соисполнения этапа проекта */
|
/* Получение состояния соисполнения этапа проекта */
|
||||||
function STAGES_GET_CTRL_COEXEC
|
function STAGES_GET_CTRL_COEXEC
|
||||||
(
|
(
|
||||||
NRN in number -- Рег. номер этапа проекта
|
NRN in number -- Рег. номер этапа проекта
|
||||||
) return number -- Состояние (0 - без отклонений, 1 - есть отклонения)
|
) return number -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
is
|
is
|
||||||
|
NCONTR_CTRL PKG_STD.TNUMBER; -- Состояние соисполнителя этапа
|
||||||
|
NCNT_CONTR PKG_STD.TNUMBER :=0; -- Количество соисполнителей этапа
|
||||||
|
NCNT_NULL PKG_STD.TNUMBER :=0; -- Количество "безконтрольных" соисполнителей этапа
|
||||||
begin
|
begin
|
||||||
return 0;
|
/* Обходим соисполнителей этапа */
|
||||||
|
for C in (select PSPF.RN from PROJECTSTAGEPF PSPF where PSPF.PRN = NRN)
|
||||||
|
loop
|
||||||
|
/* Увеличим счётчик соисполнителей */
|
||||||
|
NCNT_CONTR := NCNT_CONTR + 1;
|
||||||
|
/* Получим состояние соисполнителя */
|
||||||
|
NCONTR_CTRL := STAGE_CONTRACTS_GET_CTRL_COEXE(NPROJECTSTAGEPF => C.RN);
|
||||||
|
/* Подсчитаем количество "безконтрольных" */
|
||||||
|
if (NCONTR_CTRL is null) then
|
||||||
|
NCNT_NULL := NCNT_NULL + 1;
|
||||||
|
end if;
|
||||||
|
/* Если у соисполнителя есть отклонение - оно есть и у этапа */
|
||||||
|
if (NCONTR_CTRL = 1) then
|
||||||
|
return 1;
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
/* Если ни один соисполнитель не подлежит контролю - то и состояние жтапа тоже */
|
||||||
|
if (NCNT_NULL = NCNT_CONTR) then
|
||||||
|
return null;
|
||||||
|
end if;
|
||||||
|
/* Если мы здесь - отклонений нет */
|
||||||
|
if (NCNT_CONTR > 0) then
|
||||||
|
return 0;
|
||||||
|
else
|
||||||
|
/* Нет соисполнителей и нет контроля */
|
||||||
|
return null;
|
||||||
|
end if;
|
||||||
end STAGES_GET_CTRL_COEXEC;
|
end STAGES_GET_CTRL_COEXEC;
|
||||||
|
|
||||||
/* Получение состояния сроков этапа проекта */
|
/* Получение состояния сроков этапа проекта */
|
||||||
@ -1433,12 +1512,40 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
/* Получение состояния актирования этапа проекта */
|
/* Получение состояния актирования этапа проекта */
|
||||||
function STAGES_GET_CTRL_ACT
|
function STAGES_GET_CTRL_ACT
|
||||||
(
|
(
|
||||||
NRN in number -- Рег. номер этапа проекта
|
NRN in number -- Рег. номер этапа проекта
|
||||||
) return number -- Состояние (0 - без отклонений, 1 - есть отклонения)
|
) return number -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
is
|
is
|
||||||
|
RPS PROJECTSTAGE%rowtype; -- Запись этапа проекта
|
||||||
|
NTRANSINVCUST PKG_STD.TREF; -- Рег. номер РНОПотр, закрывающей этап
|
||||||
begin
|
begin
|
||||||
return 1;
|
/* Читаем запись этапа */
|
||||||
end STAGES_GET_CTRL_ACT;
|
RPS := STAGES_GET(NRN => NRN);
|
||||||
|
/* Если этап не в состоянии "Закрыт", то нечего контролировать */
|
||||||
|
if (RPS.STATE <> 2) then
|
||||||
|
return null;
|
||||||
|
end if;
|
||||||
|
/* Проверяем наличие подписанного аката */
|
||||||
|
begin
|
||||||
|
select T.RN
|
||||||
|
into NTRANSINVCUST
|
||||||
|
from TRANSINVCUST T
|
||||||
|
where T.FACEACC = RPS.FACEACCCUST
|
||||||
|
and T.STATUS = 1
|
||||||
|
and exists (select null
|
||||||
|
from TRINVCUSTCLC TC
|
||||||
|
where TC.PRN in (select TS.RN from TRANSINVCUSTSPECS TS where TS.PRN = T.RN)
|
||||||
|
and TC.FACEACCOUNT = RPS.FACEACC);
|
||||||
|
exception
|
||||||
|
when NO_DATA_FOUND then
|
||||||
|
null;
|
||||||
|
end;
|
||||||
|
/* Если мы здесь, значит этап "Закрыт", если нет закрывающего акта с заказчиком - это отклонение */
|
||||||
|
if (NTRANSINVCUST is null) then
|
||||||
|
return 1;
|
||||||
|
end if;
|
||||||
|
/* Все проверки пройдены - отклонений нет */
|
||||||
|
return 0;
|
||||||
|
end STAGES_GET_CTRL_ACT;
|
||||||
|
|
||||||
/* Получение остатка срока исполнения этапа проекта */
|
/* Получение остатка срока исполнения этапа проекта */
|
||||||
function STAGES_GET_DAYS_LEFT
|
function STAGES_GET_DAYS_LEFT
|
||||||
@ -1712,7 +1819,15 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
SCOND_FROM => 'EDCTRL_COST',
|
SCOND_FROM => 'EDCTRL_COST',
|
||||||
BORDER => true,
|
BORDER => true,
|
||||||
BFILTER => true,
|
BFILTER => true,
|
||||||
RCOL_VALS => RCOL_VALS);
|
RCOL_VALS => RCOL_VALS);
|
||||||
|
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
|
||||||
|
SNAME => 'NCTRL_ACT',
|
||||||
|
SCAPTION => 'Актирование',
|
||||||
|
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||||||
|
SCOND_FROM => 'EDCTRL_ACT',
|
||||||
|
BORDER => true,
|
||||||
|
BFILTER => true,
|
||||||
|
RCOL_VALS => RCOL_VALS);
|
||||||
/* Обходим данные */
|
/* Обходим данные */
|
||||||
begin
|
begin
|
||||||
/* Собираем запрос */
|
/* Собираем запрос */
|
||||||
@ -1744,7 +1859,8 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
''CostNotes'' SLNK_UNIT_NCOST_FACT,
|
''CostNotes'' SLNK_UNIT_NCOST_FACT,
|
||||||
1 NLNK_DOCUMENT_NCOST_FACT,
|
1 NLNK_DOCUMENT_NCOST_FACT,
|
||||||
PKG_P8PANELS_PROJECTS.STAGES_GET_SUMM_REALIZ(PS.RN, :NFPDARTCL_REALIZ) NSUMM_REALIZ,
|
PKG_P8PANELS_PROJECTS.STAGES_GET_SUMM_REALIZ(PS.RN, :NFPDARTCL_REALIZ) NSUMM_REALIZ,
|
||||||
PKG_P8PANELS_PROJECTS.STAGES_GET_CTRL_COST(PS.RN) NCTRL_COST
|
PKG_P8PANELS_PROJECTS.STAGES_GET_CTRL_COST(PS.RN) NCTRL_COST,
|
||||||
|
PKG_P8PANELS_PROJECTS.STAGES_GET_CTRL_ACT(PS.RN) NCTRL_ACT
|
||||||
from PROJECTSTAGE PS,
|
from PROJECTSTAGE PS,
|
||||||
PROJECT P,
|
PROJECT P,
|
||||||
FACEACC FAC,
|
FACEACC FAC,
|
||||||
@ -1798,7 +1914,8 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 23);
|
PKG_SQL_DML.DEFINE_COLUMN_STR(ICURSOR => ICURSOR, IPOSITION => 23);
|
||||||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 24);
|
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 24);
|
||||||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 25);
|
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 25);
|
||||||
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 26);
|
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 26);
|
||||||
|
PKG_SQL_DML.DEFINE_COLUMN_NUM(ICURSOR => ICURSOR, IPOSITION => 27);
|
||||||
/* Делаем выборку */
|
/* Делаем выборку */
|
||||||
if (PKG_SQL_DML.EXECUTE(ICURSOR => ICURSOR) = 0) then
|
if (PKG_SQL_DML.EXECUTE(ICURSOR => ICURSOR) = 0) then
|
||||||
null;
|
null;
|
||||||
@ -1896,6 +2013,10 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
SNAME => 'NCTRL_COST',
|
SNAME => 'NCTRL_COST',
|
||||||
ICURSOR => ICURSOR,
|
ICURSOR => ICURSOR,
|
||||||
NPOSITION => 26);
|
NPOSITION => 26);
|
||||||
|
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW,
|
||||||
|
SNAME => 'NCTRL_ACT',
|
||||||
|
ICURSOR => ICURSOR,
|
||||||
|
NPOSITION => 27);
|
||||||
/* Добавляем строку в таблицу */
|
/* Добавляем строку в таблицу */
|
||||||
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
|
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
|
||||||
end loop;
|
end loop;
|
||||||
@ -2286,6 +2407,21 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
|
COUT := PKG_P8PANELS_VISUAL.TDATA_GRID_TO_XML(RDATA_GRID => RDG, NINCLUDE_DEF => NINCLUDE_DEF);
|
||||||
end STAGE_ARTS_LIST;
|
end STAGE_ARTS_LIST;
|
||||||
|
|
||||||
|
/* Считывание записи соисполнителя этапа проекта */
|
||||||
|
function STAGE_CONTRACTS_GET_PSPF
|
||||||
|
(
|
||||||
|
NPROJECTSTAGEPF in number -- Рег. номер соисполнителя этапа проекта
|
||||||
|
) return PROJECTSTAGEPF%rowtype -- Запись соисполнителя этапа проекта
|
||||||
|
is
|
||||||
|
RRES PROJECTSTAGEPF%rowtype; -- Буфер для результата
|
||||||
|
begin
|
||||||
|
select PS.* into RRES from PROJECTSTAGEPF PS where PS.RN = NPROJECTSTAGEPF;
|
||||||
|
return RRES;
|
||||||
|
exception
|
||||||
|
when NO_DATA_FOUND then
|
||||||
|
PKG_MSG.RECORD_NOT_FOUND(NFLAG_SMART => 0, NDOCUMENT => NPROJECTSTAGEPF, SUNIT_TABLE => 'PROJECTSTAGEPF');
|
||||||
|
end STAGE_CONTRACTS_GET_PSPF;
|
||||||
|
|
||||||
/* Список договоров этапа проекта */
|
/* Список договоров этапа проекта */
|
||||||
procedure STAGE_CONTRACTS_COND
|
procedure STAGE_CONTRACTS_COND
|
||||||
is
|
is
|
||||||
@ -2346,6 +2482,12 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
PKG_COND_BROKER.BIND_VARIABLE(SVARIABLE_NAME => 'EDCTRL_FIN',
|
PKG_COND_BROKER.BIND_VARIABLE(SVARIABLE_NAME => 'EDCTRL_FIN',
|
||||||
NVALUE => PKG_COND_BROKER.GET_CONDITION_NUM(SCONDITION_NAME => 'EDCTRL_FIN'));
|
NVALUE => PKG_COND_BROKER.GET_CONDITION_NUM(SCONDITION_NAME => 'EDCTRL_FIN'));
|
||||||
end if;
|
end if;
|
||||||
|
/* Контроль соисполнения */
|
||||||
|
if (PKG_COND_BROKER.CONDITION_EXISTS(SCONDITION_NAME => 'EDCTRL_COEXEC') = 1) then
|
||||||
|
PKG_COND_BROKER.ADD_CLAUSE(SCLAUSE => 'PKG_P8PANELS_PROJECTS.STAGE_CONTRACTS_GET_CTRL_COEXE(RN) = :EDCTRL_COEXEC');
|
||||||
|
PKG_COND_BROKER.BIND_VARIABLE(SVARIABLE_NAME => 'EDCTRL_COEXEC',
|
||||||
|
NVALUE => PKG_COND_BROKER.GET_CONDITION_NUM(SCONDITION_NAME => 'EDCTRL_COEXEC'));
|
||||||
|
end if;
|
||||||
end STAGE_CONTRACTS_COND;
|
end STAGE_CONTRACTS_COND;
|
||||||
|
|
||||||
/* Подбор входящих счетов на оплату соисполнителя этапа проекта */
|
/* Подбор входящих счетов на оплату соисполнителя этапа проекта */
|
||||||
@ -2389,6 +2531,48 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
NRN => NSELECTLIST);
|
NRN => NSELECTLIST);
|
||||||
end loop;
|
end loop;
|
||||||
end STAGE_CONTRACTS_SELECT_PAY_IN;
|
end STAGE_CONTRACTS_SELECT_PAY_IN;
|
||||||
|
|
||||||
|
/* Подбор приходных накладных соисполнителя этапа проекта */
|
||||||
|
procedure STAGE_CONTRACTS_SELECT_ININV
|
||||||
|
(
|
||||||
|
NPROJECTSTAGEPF in number, -- Рег. номер соисполнителя этапа проекта
|
||||||
|
NIDENT out number -- Идентификатор буфера подобранных (списка отмеченных записей, null - не найдено)
|
||||||
|
)
|
||||||
|
is
|
||||||
|
NSELECTLIST PKG_STD.TREF; -- Рег. номер добавленной записи буфера подобранных
|
||||||
|
begin
|
||||||
|
/* Подберём счета */
|
||||||
|
for C in (select I.COMPANY,
|
||||||
|
I.RN
|
||||||
|
from PROJECTSTAGEPF PSPF,
|
||||||
|
PROJECTSTAGE PS,
|
||||||
|
ININVOICES I
|
||||||
|
where PSPF.RN = NPROJECTSTAGEPF
|
||||||
|
and PSPF.PRN = PS.RN
|
||||||
|
and PSPF.FACEACC = I.FACEACC
|
||||||
|
and I.STATUS = 2
|
||||||
|
and exists (select null
|
||||||
|
from ININVOICESSPC ICLC
|
||||||
|
where ICLC.PRN in (select ISP.RN from ININVOICESSPECS ISP where ISP.PRN = I.RN)
|
||||||
|
and ICLC.FACEACCOUNT = PS.FACEACC))
|
||||||
|
loop
|
||||||
|
/* Сформируем идентификатор буфера */
|
||||||
|
if (NIDENT is null) then
|
||||||
|
NIDENT := GEN_IDENT();
|
||||||
|
end if;
|
||||||
|
/* Добавим подобранное в список отмеченных записей */
|
||||||
|
P_SELECTLIST_BASE_INSERT(NIDENT => NIDENT,
|
||||||
|
NCOMPANY => C.COMPANY,
|
||||||
|
NDOCUMENT => C.RN,
|
||||||
|
SUNITCODE => 'IncomingInvoices',
|
||||||
|
SACTIONCODE => null,
|
||||||
|
NCRN => null,
|
||||||
|
NDOCUMENT1 => null,
|
||||||
|
SUNITCODE1 => null,
|
||||||
|
SACTIONCODE1 => null,
|
||||||
|
NRN => NSELECTLIST);
|
||||||
|
end loop;
|
||||||
|
end STAGE_CONTRACTS_SELECT_ININV;
|
||||||
|
|
||||||
/* Подбор платежей финансирования соисполнителя этапа проекта */
|
/* Подбор платежей финансирования соисполнителя этапа проекта */
|
||||||
procedure STAGE_CONTRACTS_SELECT_FIN_OUT
|
procedure STAGE_CONTRACTS_SELECT_FIN_OUT
|
||||||
@ -2444,70 +2628,106 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
/* Получим сведения по договору соисполнителя этапа */
|
/* Получим сведения по договору соисполнителя этапа */
|
||||||
STAGE_CONTRACTS_GET(NPROJECTSTAGEPF => NPROJECTSTAGEPF,
|
STAGE_CONTRACTS_GET(NPROJECTSTAGEPF => NPROJECTSTAGEPF,
|
||||||
NINC_FIN => 1,
|
NINC_FIN => 1,
|
||||||
|
NINC_COEXEC => 0,
|
||||||
NPAY_IN => NTMP,
|
NPAY_IN => NTMP,
|
||||||
NFIN_OUT => NTMP,
|
NFIN_OUT => NTMP,
|
||||||
NPAY_IN_REST => NTMP,
|
NPAY_IN_REST => NTMP,
|
||||||
NCTRL_FIN => NCTRL_FIN);
|
NFIN_REST => NTMP,
|
||||||
|
NCTRL_FIN => NCTRL_FIN,
|
||||||
|
NCOEXEC_IN => NTMP,
|
||||||
|
NCOEXEC_REST => NTMP,
|
||||||
|
NCTRL_COEXEC => NTMP);
|
||||||
/* Вернём результат */
|
/* Вернём результат */
|
||||||
return NCTRL_FIN;
|
return NCTRL_FIN;
|
||||||
end STAGE_CONTRACTS_GET_CTRL_FIN;
|
end STAGE_CONTRACTS_GET_CTRL_FIN;
|
||||||
|
|
||||||
|
/* Получение состояния соисполнения по договору соисполнителя этапа проекта */
|
||||||
|
function STAGE_CONTRACTS_GET_CTRL_COEXE
|
||||||
|
(
|
||||||
|
NPROJECTSTAGEPF in number -- Рег. номер соисполнителя этапа проекта
|
||||||
|
) return number -- Состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
|
is
|
||||||
|
NTMP PKG_STD.TNUMBER; -- Буфер для вызова процедуры расчёта
|
||||||
|
NCTRL_COEXEC PKG_STD.TNUMBER; -- Буфер для результата
|
||||||
|
begin
|
||||||
|
/* Получим сведения по договору соисполнителя этапа */
|
||||||
|
STAGE_CONTRACTS_GET(NPROJECTSTAGEPF => NPROJECTSTAGEPF,
|
||||||
|
NINC_FIN => 0,
|
||||||
|
NINC_COEXEC => 1,
|
||||||
|
NPAY_IN => NTMP,
|
||||||
|
NFIN_OUT => NTMP,
|
||||||
|
NPAY_IN_REST => NTMP,
|
||||||
|
NFIN_REST => NTMP,
|
||||||
|
NCTRL_FIN => NTMP,
|
||||||
|
NCOEXEC_IN => NTMP,
|
||||||
|
NCOEXEC_REST => NTMP,
|
||||||
|
NCTRL_COEXEC => NCTRL_COEXEC);
|
||||||
|
/* Вернём результат */
|
||||||
|
return NCTRL_COEXEC;
|
||||||
|
end STAGE_CONTRACTS_GET_CTRL_COEXE;
|
||||||
|
|
||||||
/* Получение сведений по договору соисполнителя этапа проекта */
|
/* Получение сведений по договору соисполнителя этапа проекта */
|
||||||
procedure STAGE_CONTRACTS_GET
|
procedure STAGE_CONTRACTS_GET
|
||||||
(
|
(
|
||||||
NPROJECTSTAGEPF in number, -- Рег. номер соисполнителя этапа проекта
|
NPROJECTSTAGEPF in number, -- Рег. номер соисполнителя этапа проекта
|
||||||
NINC_FIN in number := 0, -- Включить сведения о финансированеии (0 - нет, 1 - да)
|
NINC_FIN in number := 0, -- Включить сведения о финансировании (0 - нет, 1 - да)
|
||||||
NPAY_IN out number, -- Сведения о финансировании - сумма акцептованных счетов на оплату
|
NINC_COEXEC in number := 0, -- Включить сведения о соисполнении (0 - нет, 1 - да)
|
||||||
NFIN_OUT out number, -- Сведения о финансировании - сумма оплаченных счетов на оплату
|
NPAY_IN out number, -- Сведения о финансировании - сумма акцептованных счетов на оплату
|
||||||
NPAY_IN_REST out number, -- Сведения о финансировании - сумма оставшихся к оплате счетов на оплату
|
NFIN_OUT out number, -- Сведения о финансировании - сумма оплаченных счетов на оплату
|
||||||
NCTRL_FIN out number -- Сведения о финансировани - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
NPAY_IN_REST out number, -- Сведения о финансировании - сумма оставшихся к оплате счетов на оплату
|
||||||
|
NFIN_REST out number, -- Сведения о финансировании - общий остаток к оплате по договору
|
||||||
|
NCTRL_FIN out number, -- Сведения о финансировании - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
|
NCOEXEC_IN out number, -- Сведения о соисполнении - получено актов/накладных
|
||||||
|
NCOEXEC_REST out number, -- Сведения о соисполнении - остаток к актированию/поставке
|
||||||
|
NCTRL_COEXEC out number -- Сведения о соисполнении - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
NPS_FACEACC PKG_STD.TREF; -- Рег. номер лицевого счета затрат этапа проекта
|
RPSPF PROJECTSTAGEPF%rowtype; -- Запись соисполнителя этапа проекта
|
||||||
|
RPS PROJECTSTAGE%rowtype; -- Запись родительского этапа проекта
|
||||||
|
NDAYS_LEFT PKG_STD.TNUMBER; -- Остаток дней до завершения родительского этапа проекта
|
||||||
begin
|
begin
|
||||||
/* Читаем лицевой счёт затрат родительского этапа проекта */
|
/* Читаем запись соисполнителя этапа проекта */
|
||||||
begin
|
RPSPF := STAGE_CONTRACTS_GET_PSPF(NPROJECTSTAGEPF => NPROJECTSTAGEPF);
|
||||||
select PS.FACEACC
|
/* Читаем записб родительского этапа проекта */
|
||||||
into NPS_FACEACC
|
RPS := STAGES_GET(NRN => RPSPF.PRN);
|
||||||
from PROJECTSTAGEPF PSPF,
|
/* Инициализируем выходные значения */
|
||||||
PROJECTSTAGE PS
|
NPAY_IN := 0;
|
||||||
where PSPF.RN = NPROJECTSTAGEPF
|
NFIN_OUT := 0;
|
||||||
and PSPF.PRN = PS.RN;
|
NPAY_IN_REST := 0;
|
||||||
exception
|
NFIN_REST := RPSPF.COST_PLAN;
|
||||||
when others then
|
NCTRL_FIN := null;
|
||||||
NPS_FACEACC := null;
|
NCOEXEC_IN := 0;
|
||||||
end;
|
NCOEXEC_REST := RPSPF.COST_PLAN;
|
||||||
/* Если ЛС этапа проекта нашли */
|
NCTRL_COEXEC := null;
|
||||||
if (NPS_FACEACC is not null) then
|
/* Если ЛС этапа проекта задан */
|
||||||
|
if (RPS.FACEACC is not null) then
|
||||||
/* Если нужны сведения о финансировании */
|
/* Если нужны сведения о финансировании */
|
||||||
if (NINC_FIN = 1) then
|
if (NINC_FIN = 1) then
|
||||||
/* Сумма акцептованных счетов на оплату - по ВСО с ЛС соисполнителя этапа проекта, в калькуляции которых присутствует ЛС затрат этапа проекта */
|
/* Сумма акцептованных счетов на оплату - по ВСО с ЛС соисполнителя этапа проекта, в калькуляции которых присутствует ЛС затрат этапа проекта */
|
||||||
select sum(PAI.SUMMWITHNDS * PAI.FA_BASECOURS)
|
select sum(PAI.SUMMWITHNDS * PAI.FA_BASECOURS)
|
||||||
into NPAY_IN
|
into NPAY_IN
|
||||||
from PROJECTSTAGEPF PSPF,
|
from PAYACCIN PAI
|
||||||
PAYACCIN PAI
|
where PAI.FACEACC = RPSPF.FACEACC
|
||||||
where PSPF.RN = NPROJECTSTAGEPF
|
|
||||||
and PSPF.FACEACC = PAI.FACEACC
|
|
||||||
and PAI.DOC_STATE = 1
|
and PAI.DOC_STATE = 1
|
||||||
and exists (select null
|
and exists (select null
|
||||||
from PAYACCINSPCLC PCLC
|
from PAYACCINSPCLC PCLC
|
||||||
where PCLC.PRN in (select PAIS.RN from PAYACCINSPEC PAIS where PAIS.PRN = PAI.RN)
|
where PCLC.PRN in (select PAIS.RN from PAYACCINSPEC PAIS where PAIS.PRN = PAI.RN)
|
||||||
and PCLC.FACEACCOUNT = NPS_FACEACC);
|
and PCLC.FACEACCOUNT = RPS.FACEACC);
|
||||||
/* Сумма оплаченных счетов на оплату - по расходным факт. ЖП с ЛС соисполнителя этапа проекта, в калькуляции которых присутствует ЛС затрат этапа проекта */
|
/* Сумма оплаченных счетов на оплату - по расходным факт. ЖП с ЛС соисполнителя этапа проекта, в калькуляции которых присутствует ЛС затрат этапа проекта */
|
||||||
select sum(PN.PAY_SUM * (PN.CURR_RATE_BASE / PN.CURR_RATE))
|
select sum(PN.PAY_SUM * (PN.CURR_RATE_BASE / PN.CURR_RATE))
|
||||||
into NFIN_OUT
|
into NFIN_OUT
|
||||||
from PROJECTSTAGEPF PSPF,
|
from PAYNOTES PN
|
||||||
PAYNOTES PN
|
where PN.FACEACC = RPSPF.FACEACC
|
||||||
where PSPF.RN = NPROJECTSTAGEPF
|
|
||||||
and PSPF.FACEACC = PN.FACEACC
|
|
||||||
and PN.SIGNPLAN = 0
|
and PN.SIGNPLAN = 0
|
||||||
and exists (select null
|
and exists (select null
|
||||||
from PAYNOTESCLC PNCLC
|
from PAYNOTESCLC PNCLC
|
||||||
where PNCLC.PRN = PN.RN
|
where PNCLC.PRN = PN.RN
|
||||||
and PNCLC.FACEACCOUNT = NPS_FACEACC);
|
and PNCLC.FACEACCOUNT = RPS.FACEACC);
|
||||||
/* Сумма оставшихся к оплате счетов на оплату */
|
/* Сумма оставшихся к оплате счетов на оплату */
|
||||||
NPAY_IN_REST := COALESCE(NPAY_IN, 0) - COALESCE(NFIN_OUT, 0);
|
NPAY_IN_REST := COALESCE(NPAY_IN, 0) - COALESCE(NFIN_OUT, 0);
|
||||||
/* Контроль отклонений (состояние) */
|
/* Общий остаток к оплате по договору */
|
||||||
|
NFIN_REST := RPSPF.COST_PLAN - COALESCE(NFIN_OUT, 0);
|
||||||
|
/* Контроль отклонений по финансированию (состояние) */
|
||||||
if (NPAY_IN is null) then
|
if (NPAY_IN is null) then
|
||||||
NCTRL_FIN := null;
|
NCTRL_FIN := null;
|
||||||
else
|
else
|
||||||
@ -2521,12 +2741,34 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
NPAY_IN := COALESCE(NPAY_IN, 0);
|
NPAY_IN := COALESCE(NPAY_IN, 0);
|
||||||
NFIN_OUT := COALESCE(NFIN_OUT, 0);
|
NFIN_OUT := COALESCE(NFIN_OUT, 0);
|
||||||
end if;
|
end if;
|
||||||
else
|
/* Если нужны сведения о соисполнении */
|
||||||
/* Без ЛС этапа проекта посчитать ничего не можем */
|
if (NINC_COEXEC = 1) then
|
||||||
NPAY_IN := 0;
|
/* Получено актов/накладных - по отработанным как факт ПН с ЛС соисполнителя этапа проекта, в калькуляции которых присутствует ЛС затрат этапа проекта */
|
||||||
NFIN_OUT := 0;
|
select sum(I.SUMMTAX * (I.CURBASECOURS / I.CURCOURS))
|
||||||
NPAY_IN_REST := 0;
|
into NCOEXEC_IN
|
||||||
NCTRL_FIN := null;
|
from ININVOICES I
|
||||||
|
where I.FACEACC = RPSPF.FACEACC
|
||||||
|
and I.STATUS = 2
|
||||||
|
and exists (select null
|
||||||
|
from ININVOICESSPC ICLC
|
||||||
|
where ICLC.PRN in (select ISP.RN from ININVOICESSPECS ISP where ISP.PRN = I.RN)
|
||||||
|
and ICLC.FACEACCOUNT = RPS.FACEACC);
|
||||||
|
/* Общий остаток к актированию/поставке */
|
||||||
|
NCOEXEC_REST := RPSPF.COST_PLAN - COALESCE(NCOEXEC_IN, 0);
|
||||||
|
/* Контроль отклонений по соисполнению (состояние) */
|
||||||
|
NDAYS_LEFT := STAGES_GET_DAYS_LEFT(NRN => RPS.RN);
|
||||||
|
if (NDAYS_LEFT is null) then
|
||||||
|
NCTRL_COEXEC := null;
|
||||||
|
else
|
||||||
|
if ((NCOEXEC_REST > 0) and (NDAYS_LEFT < NDAYS_LEFT_LIMIT)) then
|
||||||
|
NCTRL_COEXEC := 1;
|
||||||
|
else
|
||||||
|
NCTRL_COEXEC := 0;
|
||||||
|
end if;
|
||||||
|
end if;
|
||||||
|
/* Приведение значений */
|
||||||
|
NCOEXEC_IN := COALESCE(NCOEXEC_IN, 0);
|
||||||
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end STAGE_CONTRACTS_GET;
|
end STAGE_CONTRACTS_GET;
|
||||||
|
|
||||||
@ -2553,12 +2795,15 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
NROW_TO PKG_STD.TREF; -- Номер строки по
|
NROW_TO PKG_STD.TREF; -- Номер строки по
|
||||||
CSQL clob; -- Буфер для запроса
|
CSQL clob; -- Буфер для запроса
|
||||||
ICURSOR integer; -- Курсор для исполнения запроса
|
ICURSOR integer; -- Курсор для исполнения запроса
|
||||||
NPROJECTSTAGEPF PKG_STD.TREF; -- Рег. номер соисполнителя этапа проекта
|
NPROJECTSTAGEPF PKG_STD.TREF; -- Рег. номер соисполнителя этапа проекта
|
||||||
NSUMM PKG_STD.TNUMBER; -- Сумма по договору соисполнителя
|
|
||||||
NPAY_IN PKG_STD.TNUMBER; -- Сведения о финансировании - сумма акцептованных счетов на оплату
|
NPAY_IN PKG_STD.TNUMBER; -- Сведения о финансировании - сумма акцептованных счетов на оплату
|
||||||
NFIN_OUT PKG_STD.TNUMBER; -- Сведения о финансировании - сумма оплаченных счетов на оплату
|
NFIN_OUT PKG_STD.TNUMBER; -- Сведения о финансировании - сумма оплаченных счетов на оплату
|
||||||
NPAY_IN_REST PKG_STD.TNUMBER; -- Сведения о финансировании - сумма оставшихся к оплате счетов на оплату
|
NPAY_IN_REST PKG_STD.TNUMBER; -- Сведения о финансировании - сумма оставшихся к оплате счетов на оплату
|
||||||
NCTRL_FIN PKG_STD.TNUMBER; -- Сведения о финансировани - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
NFIN_REST PKG_STD.TNUMBER; -- Сведения о финансировании - общий остаток к оплате по договору
|
||||||
|
NCTRL_FIN PKG_STD.TNUMBER; -- Сведения о финансировании - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
|
NCOEXEC_IN PKG_STD.TNUMBER; -- Сведения о соисполнении - получено актов/накладных
|
||||||
|
NCOEXEC_REST PKG_STD.TNUMBER; -- Сведения о соисполнении - остаток к актированию/поставке
|
||||||
|
NCTRL_COEXEC PKG_STD.TNUMBER; -- Сведения о соисполнении - состояние (null - не определено, 0 - без отклонений, 1 - есть отклонения)
|
||||||
begin
|
begin
|
||||||
/* Читаем фильтры */
|
/* Читаем фильтры */
|
||||||
RF := PKG_P8PANELS_VISUAL.TFILTERS_FROM_XML(CFILTERS => CFILTERS);
|
RF := PKG_P8PANELS_VISUAL.TFILTERS_FROM_XML(CFILTERS => CFILTERS);
|
||||||
@ -2713,14 +2958,32 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
SCAPTION => 'Финансирование (исходящее)',
|
SCAPTION => 'Финансирование (исходящее)',
|
||||||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||||||
SCOND_FROM => 'EDCTRL_FIN',
|
SCOND_FROM => 'EDCTRL_FIN',
|
||||||
BORDER => true,
|
BORDER => false,
|
||||||
BFILTER => true,
|
BFILTER => true,
|
||||||
RCOL_VALS => RCOL_VALS);
|
RCOL_VALS => RCOL_VALS);
|
||||||
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
|
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
|
||||||
SNAME => 'NREST',
|
SNAME => 'NFIN_REST',
|
||||||
SCAPTION => 'Общий остаток к оплате по договору',
|
SCAPTION => 'Общий остаток к оплате по договору',
|
||||||
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||||||
BVISIBLE => false);
|
BVISIBLE => false);
|
||||||
|
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
|
||||||
|
SNAME => 'NCOEXEC_IN',
|
||||||
|
SCAPTION => 'Получено актов/накладных',
|
||||||
|
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||||||
|
BVISIBLE => false);
|
||||||
|
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
|
||||||
|
SNAME => 'NCOEXEC_REST',
|
||||||
|
SCAPTION => 'Остаток к актированию/поставке',
|
||||||
|
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||||||
|
BVISIBLE => false);
|
||||||
|
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_COL_DEF(RDATA_GRID => RDG,
|
||||||
|
SNAME => 'NCTRL_COEXEC',
|
||||||
|
SCAPTION => 'Соисполнение',
|
||||||
|
SDATA_TYPE => PKG_P8PANELS_VISUAL.SDATA_TYPE_NUMB,
|
||||||
|
SCOND_FROM => 'EDCTRL_COEXEC',
|
||||||
|
BORDER => false,
|
||||||
|
BFILTER => true,
|
||||||
|
RCOL_VALS => RCOL_VALS);
|
||||||
/* Обходим данные */
|
/* Обходим данные */
|
||||||
begin
|
begin
|
||||||
/* Собираем запрос */
|
/* Собираем запрос */
|
||||||
@ -2868,8 +3131,7 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
SNAME => 'DCSTAGE_END_DATE',
|
SNAME => 'DCSTAGE_END_DATE',
|
||||||
ICURSOR => ICURSOR,
|
ICURSOR => ICURSOR,
|
||||||
NPOSITION => 17);
|
NPOSITION => 17);
|
||||||
PKG_SQL_DML.COLUMN_VALUE_NUM(ICURSOR => ICURSOR, IPOSITION => 18, NVALUE => NSUMM);
|
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLN(RROW => RDG_ROW, SNAME => 'NSUMM', ICURSOR => ICURSOR, NPOSITION => 18);
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NSUMM', NVALUE => NSUMM);
|
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SCURR', ICURSOR => ICURSOR, NPOSITION => 19);
|
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW, SNAME => 'SCURR', ICURSOR => ICURSOR, NPOSITION => 19);
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
PKG_P8PANELS_VISUAL.TROW_ADD_CUR_COLS(RROW => RDG_ROW,
|
||||||
SNAME => 'SCOST_ART',
|
SNAME => 'SCOST_ART',
|
||||||
@ -2877,15 +3139,23 @@ text="ПРАВА ДОСТУПА!!!!"
|
|||||||
NPOSITION => 20);
|
NPOSITION => 20);
|
||||||
STAGE_CONTRACTS_GET(NPROJECTSTAGEPF => NPROJECTSTAGEPF,
|
STAGE_CONTRACTS_GET(NPROJECTSTAGEPF => NPROJECTSTAGEPF,
|
||||||
NINC_FIN => 1,
|
NINC_FIN => 1,
|
||||||
|
NINC_COEXEC => 1,
|
||||||
NPAY_IN => NPAY_IN,
|
NPAY_IN => NPAY_IN,
|
||||||
NFIN_OUT => NFIN_OUT,
|
NFIN_OUT => NFIN_OUT,
|
||||||
NPAY_IN_REST => NPAY_IN_REST,
|
NPAY_IN_REST => NPAY_IN_REST,
|
||||||
NCTRL_FIN => NCTRL_FIN);
|
NFIN_REST => NFIN_REST,
|
||||||
|
NCTRL_FIN => NCTRL_FIN,
|
||||||
|
NCOEXEC_IN => NCOEXEC_IN,
|
||||||
|
NCOEXEC_REST => NCOEXEC_REST,
|
||||||
|
NCTRL_COEXEC => NCTRL_COEXEC);
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPAY_IN', NVALUE => NPAY_IN);
|
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPAY_IN', NVALUE => NPAY_IN);
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NFIN_OUT', NVALUE => NFIN_OUT);
|
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NFIN_OUT', NVALUE => NFIN_OUT);
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPAY_IN_REST', NVALUE => NPAY_IN_REST);
|
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NPAY_IN_REST', NVALUE => NPAY_IN_REST);
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCTRL_FIN', NVALUE => NCTRL_FIN);
|
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCTRL_FIN', NVALUE => NCTRL_FIN);
|
||||||
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NREST', NVALUE => NSUMM - COALESCE(NFIN_OUT, 0));
|
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NFIN_REST', NVALUE => NFIN_REST);
|
||||||
|
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOEXEC_IN', NVALUE => NCOEXEC_IN);
|
||||||
|
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCOEXEC_REST', NVALUE => NCOEXEC_REST);
|
||||||
|
PKG_P8PANELS_VISUAL.TROW_ADD_COL(RROW => RDG_ROW, SNAME => 'NCTRL_COEXEC', NVALUE => NCTRL_COEXEC);
|
||||||
/* Добавляем строку в таблицу */
|
/* Добавляем строку в таблицу */
|
||||||
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
|
PKG_P8PANELS_VISUAL.TDATA_GRID_ADD_ROW(RDATA_GRID => RDG, RROW => RDG_ROW);
|
||||||
end loop;
|
end loop;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user