📄 c_periodcontrol_check.sql
字号:
/**
* PeriodControl Check
* - Make sure that for all periods, we have all BaseDocTypes
*/
DECLARE
CURSOR CUR_Periods IS
SELECT C_Period_ID, AD_Client_ID, AD_Org_ID, Name
FROM C_Period
ORDER BY 2,1;
BEGIN
-- For all Periods
FOR p IN CUR_Periods LOOP
DBMS_OUTPUT.PUT_LINE(p.Name);
DECLARE
v_NextNo NUMBER;
--
CURSOR CUR_DocType IS
SELECT Value
FROM AD_Ref_List
WHERE AD_Reference_ID=183
AND Value NOT IN
(SELECT DocBaseType FROM C_PeriodControl pc
WHERE pc.C_Period_ID = p.C_Period_ID)
ORDER BY 1;
BEGIN
-- Missing Base Document Types
FOR dt IN CUR_DocType LOOP
DBMS_OUTPUT.PUT_LINE(' ' || dt.Value);
AD_Sequence_Next('C_PeriodControl', p.AD_Client_ID, v_NextNo);
INSERT INTO C_PeriodControl
(C_PeriodControl_ID,
AD_Client_ID, AD_Org_ID, IsActive, Created, CreatedBy, Updated, UpdatedBy,
C_Period_ID, DocBaseType,
PeriodStatus, PeriodAction, Processing)
VALUES
(v_NextNo,
p.AD_Client_ID, p.AD_Org_ID, 'Y', SysDate, 0, SysDate, 0,
p.C_Period_ID, dt.Value,
'N', 'N', NULL); -- NeverOpened, NoAction
END LOOP;
END;
END LOOP;
END;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -