core-jgi/db/maintain/Maintenance/AD_Org_Check.sql

56 lines
1.7 KiB
SQL

/**
* For AD_Org create
* - Missing Org Tree Structure
*/
BEGIN
DBMS_OUTPUT.PUT_LINE('Adding to Base Org Tree');
DECLARE
CURSOR Cur_Tree IS
SELECT *
FROM AD_ClientInfo;
CURSOR Cur_Org (Client NUMBER, Tree NUMBER) IS
SELECT *
FROM AD_Org
WHERE AD_Org_ID NOT IN
(SELECT Node_ID FROM AD_TreeNode WHERE AD_Tree_ID=Tree)
AND AD_Client_ID=Client;
CURSOR Cur_OrgInfo IS
SELECT *
FROM AD_Org o
WHERE NOT EXISTS
(SELECT * FROM AD_OrgInfo oi WHERE oi.AD_Org_ID=o.AD_Org_ID);
BEGIN
FOR CT IN Cur_Tree LOOP
DBMS_OUTPUT.PUT_LINE(' For Tree ' || CT.AD_Tree_Org_ID
|| ' Client=' || CT.AD_Client_ID);
--
FOR CO IN Cur_Org (CT.AD_Client_ID, CT.AD_Tree_Org_ID) LOOP
INSERT INTO AD_TreeNode
(AD_Client_ID, AD_Org_ID,
IsActive, Created, CreatedBy, Updated, UpdatedBy,
AD_Tree_ID, Node_ID, Parent_ID, SeqNo)
VALUES
(CO.AD_Client_ID, CO.AD_Org_ID,
CO.IsActive, CO.Created, CO.CreatedBy, CO.Updated, CO.UpdatedBy,
CT.AD_Tree_Org_ID, CO.AD_Org_ID, 0, 999);
DBMS_OUTPUT.PUT_LINE(' added: ' || CO.Name
|| ' Client=' || CO.AD_Client_ID || ' Org=' || CO.AD_Org_ID);
END LOOP; -- Org Loop
END LOOP; -- Tree Loop
FOR o IN Cur_OrgInfo () LOOP
DBMS_OUTPUT.PUT_LINE('Create OrgInfo For Org ' || o.AD_Org_ID || ' ' || o.Name);
INSERT INTO AD_OrgInfo
(AD_Org_ID, AD_Client_ID, IsActive, Created, CreatedBy, Updated, UpdatedBy,
C_Location_ID, Duns, TaxID, PA_Goal_ID)
VALUES
(o.AD_Org_ID, o.AD_Client_ID, o.IsActive, o.Created, o.CreatedBy, o.Updated, o.UpdatedBy,
NULL, '?', '?', NULL);
END LOOP;
END;
COMMIT;
END;