56 lines
1.7 KiB
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;
|
|
|