44 lines
1.2 KiB
SQL
44 lines
1.2 KiB
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;
|