DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_MULTI_ORG

Source


1 PACKAGE BODY pa_multi_org AS
2 /* $Header: PAMORGB.pls 115.1 99/07/16 15:08:11 porting ship  $ */
3 
4   PROCEDURE copy_seed_data ( x_rec_count  OUT NUMBER
5                            , x_err_text   OUT VARCHAR2 )
6   IS
7     x_org_id     NUMBER(15);
8     x_user       NUMBER(15) := 1;
9     x_login      NUMBER(15) := 0;
10     l_rec_count  NUMBER := 0;
11     x_stage      VARCHAR2(100);
12 
13   BEGIN
14     -- Get operating unit ORG_ID
15     x_stage := 'SELECT ORG_ID FROM PA_IMPLEMENTATIONS';
16     SELECT  org_id
17       INTO  x_org_id
18       FROM  pa_implementations;
19 
20     -- Copy Function Transactions
21     x_stage := 'INSERT INTO PA_FUNCTION_TRANSACTIONS';
22     INSERT INTO pa_function_transactions(
23        application_id
24     ,  function_code
25     ,  function_transaction_code
26     ,  function_transaction_name
27     ,  last_update_date
28     ,  last_updated_by
29     ,  creation_date
30     ,  created_by
31     ,  last_update_login
32     ,  enabled_flag
33     ,  description
34     ,  org_id )
35     SELECT
36      	    ft.application_id
37     ,       ft.function_code
38     ,       ft.function_transaction_code
39     ,       ft.function_transaction_name
40     ,       sysdate
41     ,       x_user
42     ,       sysdate
43     ,       x_user
44     ,       x_login
45     ,       ft.enabled_flag
46     ,       ft.description
47     ,       x_org_id
48       FROM  pa_function_transactions_all ft
49      WHERE  org_id = -3113
50     AND NOT EXISTS (
51        SELECT NULL
52          FROM pa_function_transactions
53         WHERE org_id = x_org_id
54           AND application_id = ft.application_id
55           AND function_code = ft.function_code
56           AND function_transaction_code = ft.function_transaction_code );
57 
58     l_rec_count := l_rec_count + SQL%ROWCOUNT;
59 
60     -- Copy Billing Assignments
61     x_stage := 'INSERT INTO PA_BILLING_ASSIGNMENTS';
62     INSERT INTO pa_billing_assignments(
63        billing_assignment_id
64     ,  billing_extension_id
65     ,  project_type
66     ,  project_id
67     ,  top_task_id
68     ,  amount
69     ,  percentage
70     ,  active_flag
71     ,  last_update_date
72     ,  last_updated_by
73     ,  creation_date
74     ,  created_by
75     ,  last_update_login
76     ,  distribution_rule
77     ,  org_id )
78     SELECT
79             pa_billing_assignments_s.NEXTVAL
80     ,       ba.billing_extension_id
81     ,       ba.project_type
82     ,       ba.project_id
83     ,       ba.top_task_id
84     ,       ba.amount
85     ,       ba.percentage
86     ,       ba.active_flag
87     ,       sysdate
88     ,       x_user
89     ,       sysdate
90     ,       x_user
91     ,       x_login
92     ,       ba.distribution_rule
93     ,       x_org_id
94       FROM  pa_billing_assignments_all ba
95      WHERE  org_id = -3113
96     AND NOT EXISTS (
97        SELECT NULL
98          FROM pa_billing_assignments
99         WHERE org_id = x_org_id
100           AND distribution_rule = ba.distribution_rule
101           AND billing_extension_id = ba.billing_extension_id
102           AND project_type = ba.project_type
103           AND project_id = ba.project_id
104           AND top_task_id = ba.top_task_id );
105 
106     l_rec_count := l_rec_count + SQL%ROWCOUNT;
107 
108     IF ( l_rec_count > 0 ) THEN
109       COMMIT;
110     END IF;
111 
112     x_rec_count := l_rec_count;
113 
114   EXCEPTION
115     WHEN  NO_DATA_FOUND  THEN
116       x_rec_count := -1403;
117       x_err_text :=  x_stage || ' - ' || SQLERRM(-1403);
118     WHEN  OTHERS  THEN
119       x_rec_count := SQLCODE;
120       x_err_text :=  x_stage || ' - ' || SQLERRM(SQLCODE);
121 
122   END copy_seed_data;
123 
124 END pa_multi_org;