DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEX_STRATEGY_TEMPLATES_PKG

Source


1 package body IEX_STRATEGY_TEMPLATES_PKG as
2 /* $Header: iextsttb.pls 120.4.12010000.3 2010/01/29 20:18:07 ehuh ship $ */
3 
4 PG_DEBUG NUMBER(2) := TO_NUMBER(NVL(FND_PROFILE.value('IEX_DEBUG_LEVEL'), '20'));
5 
6 procedure ADD_LANGUAGE
7 is
8 begin
9   delete from IEX_STRATEGY_TEMPLATES_TL T
10   where not exists
11     (select NULL
12      from IEX_STRATEGY_TEMPLATES_B B
13      where B.STRATEGY_TEMP_ID = T.STRATEGY_TEMP_ID
14     );
15 
16   update IEX_STRATEGY_TEMPLATES_TL T
17         set (STRATEGY_NAME) =
18              (select B.STRATEGY_NAME
19               from IEX_STRATEGY_TEMPLATES_TL B
20               where B.STRATEGY_TEMP_ID = T.STRATEGY_TEMP_ID
21               and B.LANGUAGE = T.SOURCE_LANG)
22         where (
23               T.STRATEGY_TEMP_ID,T.LANGUAGE
24                ) in (select
25                        SUBT.STRATEGY_TEMP_ID,
26                        SUBT.LANGUAGE
27                      from IEX_STRATEGY_TEMPLATES_TL SUBB,
28                           IEX_STRATEGY_TEMPLATES_TL SUBT
29                      where SUBB.STRATEGY_TEMP_ID = SUBT.STRATEGY_TEMP_ID
30                      and SUBB.LANGUAGE = SUBT.SOURCE_LANG
31                      and SUBB.STRATEGY_NAME<> SUBT.STRATEGY_NAME
32                      OR (SUBB.STRATEGY_NAME IS NULL AND SUBT.STRATEGY_NAME IS NOT NULL)
33                      OR (SUBB.STRATEGY_NAME IS NOT NULL AND SUBT.STRATEGY_NAME IS NULL)
34                 );
35 
36   insert into IEX_STRATEGY_TEMPLATES_TL (
37     STRATEGY_TEMP_ID,
38     STRATEGY_NAME,
39     LAST_UPDATE_DATE,
40     LAST_UPDATED_BY,
41     CREATION_DATE,
42     CREATED_BY,
43     LAST_UPDATE_LOGIN,
44     LANGUAGE,
45     SOURCE_LANG
46   ) select
47     B.STRATEGY_TEMP_ID,
48     B.STRATEGY_NAME,
49     B.LAST_UPDATE_DATE,
50     B.LAST_UPDATED_BY,
51     B.CREATION_DATE,
52     B.CREATED_BY,
53     B.LAST_UPDATE_LOGIN,
54     L.LANGUAGE_CODE,
55     B.SOURCE_LANG
56   from IEX_STRATEGY_TEMPLATES_TL B, FND_LANGUAGES L
57   where L.INSTALLED_FLAG in ('I', 'B')
58   and B.LANGUAGE = userenv('LANG')
59   and not exists
60     (select NULL
61      from IEX_STRATEGY_TEMPLATES_TL T
62      where T.STRATEGY_TEMP_ID = B.STRATEGY_TEMP_ID
63      and T.LANGUAGE = L.LANGUAGE_CODE);
64 
65 end ADD_LANGUAGE;
66 
67 
68 procedure TRANSLATE_ROW (
69   X_STRATEGY_TEMP_ID in NUMBER,
70   X_STRATEGY_NAME in VARCHAR2,
71   X_OBJECT_VERSION_NUMBER in NUMBER,
72   X_OWNER in VARCHAR2
73 ) IS
74 
75 begin
76 	UPDATE IEX_STRATEGY_TEMPLATES_TL SET
77 		STRATEGY_NAME=X_STRATEGY_NAME,
78 		last_update_date = sysdate,
79 		last_updated_by = decode(X_OWNER, 'SEED', 1, 0),
80 		last_update_login = 0,
81 		source_lang = userenv('LANG')
82 	WHERE userenv('LANG') in (LANGUAGE, SOURCE_LANG) AND
83 		 STRATEGY_TEMP_id = X_STRATEGY_TEMP_ID;
84 end TRANSLATE_ROW;
85 
86 
87 PROCEDURE COPY_STRATEGY_GROUP(P_GROUP_ID in NUMBER, RETURN_STATUS OUT NOCOPY VARCHAR2) IS
88  nNextGroupID number;
89   nNextTempID number;
90   nNextXrefID NUMBER;
91 
92   CURSOR c_templates(vGROUP_ID NUMBER) is
93         SELECT
94         STRATEGY_TEMP_ID,
95         STRATEGY_TEMP_GROUP_ID,
96         STRATEGY_ORDER_ID
97         LAST_UPDATE_LOGIN,
98         REQUEST_ID,
99         STRATEGY_RANK,
100         ENABLED_FLAG,
101         CATEGORY_TYPE,
102         CHANGE_STRATEGY_YN,
103         CHECK_LIST_YN,
104         CHECK_LIST_TEMP_ID ,
105         VALID_FROM_DT,
106         VALID_TO_DT,
107         OBJECT_FILTER_ID,
108         STRATEGY_LEVEL,
109         SCORE_TOLERANCE,
110         STRATEGY_NAME,
111         STRATEGY_ORDER_ID
112      FROM  IEX_STRATEGY_TEMPLATES_VL
113         WHERE STRATEGY_TEMP_GROUP_ID = vGROUP_ID;
114 
115   CURSOR c_Xref(vTemplate_ID number) IS
116      SELECT
117         WORK_TEMP_XREF_ID,
118         STRATEGY_TEMP_ID,
119         WORK_ITEM_TEMP_ID,
120         WORK_ITEM_ORDER,
121         REQUIRED_YN,
122         CREATED_BY,
123         CREATION_DATE,
124         LAST_UPDATE_DATE,
125         LAST_UPDATED_BY,
126         LAST_UPDATE_LOGIN,
127         REQUEST_ID,
128         OBJECT_VERSION_NUMBER
129     FROM IEX_STRATEGY_WORK_TEMP_XREF
130       WHERE STRATEGY_TEMP_ID = vTemplate_ID;
131 
132 BEGIN
133 
134     SAVEPOINT IEX_STRY_TEMP_PKG_COPYSTRGRP;
135 
136     RETURN_STATUS := 'A';
137 
138     IEX_DEBUG_PUB.logmessage('Copy Strategy Group ');
139     select IEX_STRATEGY_TEMPLATE_GROUPS_S.NEXTVAL
140       into nNextGroupID from DUAL;
141 
142     IEX_DEBUG_PUB.logmessage('Next Strategy GROUP_ID ID = ' || nNextGroupID);
143     IEX_DEBUG_PUB.logmessage('AAAAAAAAAAAAA = ' || nNextGroupID);
144     RETURN_STATUS := 'B';
145 
146     INSERT INTO IEX_STRATEGY_TEMPLATE_GROUPS (
147         OBJECT_VERSION_NUMBER,
148         CREATED_BY,
149         CREATION_DATE,
150         LAST_UPDATE_DATE,
151         LAST_UPDATED_BY,
152         LAST_UPDATE_LOGIN,
153         REQUEST_ID,
154         GROUP_ID,
155         GROUP_NAME,
156         STRATEGY_RANK,
157         ENABLED_FLAG,
158         CATEGORY_TYPE,
159         CHANGE_STRATEGY_YN,
160         CHECK_LIST_YN,
161         CHECK_LIST_TEMP_ID,
162         VALID_FROM_DT,
163         VALID_TO_DT,
164         OBJECT_FILTER_ID,
165         STRATEGY_LEVEL,
166         SCORE_TOLERANCE,
167         STRATEGY_TEMP_ID
168       )
169       SELECT
170         1,
171         FND_GLOBAL.USER_ID,
172         SYSDATE,
173         SYSDATE,
174         FND_GLOBAL.USER_ID,
175         ISTL.LAST_UPDATE_LOGIN,
176         ISTL.REQUEST_ID,
177         nNextGroupID,
178         'Copy of ' || ISTL.GROUP_NAME,
179         ISTL.STRATEGY_RANK,
180         ISTL.ENABLED_FLAG,
181         ISTL.CATEGORY_TYPE,
182         ISTL.CHANGE_STRATEGY_YN,
183         ISTL.CHECK_LIST_YN,
184         ISTL.CHECK_LIST_TEMP_ID ,
185         ISTL.VALID_FROM_DT,
186         ISTL.VALID_TO_DT,
187         ISTL.OBJECT_FILTER_ID,
188         ISTL.STRATEGY_LEVEL,
189         ISTL.SCORE_TOLERANCE,
190         ISTL.STRATEGY_TEMP_ID
191      FROM  IEX_STRATEGY_TEMPLATE_GROUPS istl
192         WHERE istl.GROUP_ID = p_GROUP_ID AND
193            NOT EXISTS (SELECT 1 FROM IEX_STRATEGY_TEMPLATE_GROUPS istg
194               WHERE istg.GROUP_NAME  = 'Copy of ' || istl.GROUP_NAME );
195 
196    IEX_DEBUG_PUB.logmessage('Done copying the Group ');
197    IEX_DEBUG_PUB.logmessage('BBBBBBBBBBBB = ' || nNextGroupID);
198    IEX_DEBUG_PUB.logmessage('P_GROUP_ID = ' || p_group_id);
199 
200     FOR tempCur IN c_templates(P_GROUP_ID)  LOOP
201 
202        IEX_DEBUG_PUB.logmessage('Copy Strategy Template ' || tempCur.STRATEGY_TEMP_ID);
203 
204         select IEX_STRATEGY_TEMPLATES_S.NEXTVAL
205            into nNextTempID from DUAL;
206 
207        IEX_DEBUG_PUB.logmessage('Next Strategy Template ID = ' || nNextTempID);
208        IEX_DEBUG_PUB.logmessage('Copy FND_GLOBAL.USER_ID ' || FND_GLOBAL.USER_ID);
209        IEX_DEBUG_PUB.logmessage('Copy LAST_UPDATE_LOGIN ' || tempCur.LAST_UPDATE_LOGIN);
210        IEX_DEBUG_PUB.logmessage('Copy REQUEST_ID Template ' || tempCur.REQUEST_ID);
211        IEX_DEBUG_PUB.logmessage('Copy STRATEGY_RANK  Template ' || tempCur.STRATEGY_RANK);
212        IEX_DEBUG_PUB.logmessage('Copy ENABLED_FLAG Template ' || tempCur.ENABLED_FLAG);
213        IEX_DEBUG_PUB.logmessage('Copy Strategy Template ' || tempCur.STRATEGY_TEMP_ID);
214 
215        INSERT INTO IEX_STRATEGY_TEMPLATES_B (
216           OBJECT_VERSION_NUMBER,
217           CREATED_BY,
218           CREATION_DATE,
219           LAST_UPDATE_DATE,
220           LAST_UPDATED_BY,
221           LAST_UPDATE_LOGIN,
222           REQUEST_ID,
223           STRATEGY_TEMP_ID,
224           STRATEGY_RANK,
225           ENABLED_FLAG,
226           CATEGORY_TYPE,
227           CHANGE_STRATEGY_YN,
228           CHECK_LIST_YN,
229           CHECK_LIST_TEMP_ID,
230           VALID_FROM_DT,
231           VALID_TO_DT,
232           OBJECT_FILTER_ID,
233           STRATEGY_LEVEL,
234           SCORE_TOLERANCE,
235           STRATEGY_TEMP_GROUP_ID,
236           STRATEGY_ORDER_ID
237       )
238       VALUES(
239         1,
240         FND_GLOBAL.USER_ID,
241         SYSDATE,
242         SYSDATE,
243         FND_GLOBAL.USER_ID,
244         FND_GLOBAL.USER_ID,-- bug 6671798 tempCur.LAST_UPDATE_LOGIN,
245         tempCur.REQUEST_ID,
246         nNextTempID,
247         tempCur.STRATEGY_RANK,
248         tempCur.ENABLED_FLAG,
249         tempCur.CATEGORY_TYPE,
250         tempCur.CHANGE_STRATEGY_YN,
251         tempCur.CHECK_LIST_YN,
252         tempCur.CHECK_LIST_TEMP_ID ,
253         tempCur.VALID_FROM_DT,
254         tempCur.VALID_TO_DT,
255         tempCur.OBJECT_FILTER_ID,
256         tempCur.STRATEGY_LEVEL,
257         tempCur.SCORE_TOLERANCE,
258         nNextGroupID,
259         tempCur.STRATEGY_ORDER_ID
260      );
261 
262 
263      IEX_DEBUG_PUB.logmessage('Done inserting... IEX_STRATEGY_TEMPLATES_B');
264 
265      INSERT INTO IEX_STRATEGY_TEMPLATES_tl (
266           CREATED_BY,
267           CREATION_DATE,
268           LAST_UPDATE_DATE,
269           LAST_UPDATED_BY,
270           LAST_UPDATE_LOGIN,
271           STRATEGY_TEMP_ID,
272           STRATEGY_NAME,
273           SOURCE_LANG,
274           LANGUAGE
275           )
276         VALUES (
277         FND_GLOBAL.USER_ID,
278         SYSDATE,
279         SYSDATE,
280         FND_GLOBAL.USER_ID,
281         FND_GLOBAL.USER_ID,-- bug 6671798 tempCur.LAST_UPDATE_LOGIN,
282         nNextTempID,
283         'Copy of ' || tempCur.strategy_name,
284         userenv('LANG'),
285         userenv('LANG')
286       );
287       IEX_DEBUG_PUB.logmessage('End Copy Strategy Template ' || nNextTempID);
288 
289   -- begin added for a Bug 9305366
290   insert into IEX_STRATEGY_TEMPLATES_TL (
291     STRATEGY_TEMP_ID,
292     STRATEGY_NAME,
293     LAST_UPDATE_DATE,
294     LAST_UPDATED_BY,
295     CREATION_DATE,
296     CREATED_BY,
297     LAST_UPDATE_LOGIN,
298     LANGUAGE,
299     SOURCE_LANG
300   ) select
301     B.STRATEGY_TEMP_ID,
302     B.STRATEGY_NAME,
303     B.LAST_UPDATE_DATE,
304     B.LAST_UPDATED_BY,
305     B.CREATION_DATE,
306     B.CREATED_BY,
307     B.LAST_UPDATE_LOGIN,
308     L.LANGUAGE_CODE,
309     B.SOURCE_LANG
310   from IEX_STRATEGY_TEMPLATES_TL B, FND_LANGUAGES L
311   where L.INSTALLED_FLAG in ('I', 'B')
312   and B.LANGUAGE = userenv('LANG')
313   and not exists
314     (select NULL
315      from IEX_STRATEGY_TEMPLATES_TL T
316      where T.STRATEGY_TEMP_ID = B.STRATEGY_TEMP_ID
317      and T.LANGUAGE = L.LANGUAGE_CODE);
318 
319 IEX_DEBUG_PUB.logmessage('End Copy Multi-Lang Strategy Template ' || nNextTempID);
320 
321   -- end added for a Bug 9305366
322 
323 
324 
325       FOR xrefCur IN c_Xref(tempCur.STRATEGY_TEMP_ID)  LOOP
326 
327        IEX_DEBUG_PUB.logmessage('Copy XRef for Template = ' || tempCur.STRATEGY_TEMP_ID ||
328            ' and Xref ID = ' || xrefCur.WORK_TEMP_XREF_ID );
329 
330         select IEX_STRATEGY_WORK_TEMP_XREF_S.NEXTVAL
331            into nNextXrefID FROM DUAL;
332 
333        IEX_DEBUG_PUB.logmessage('Next Work Item Xref ID from seq = ' || nNextXrefID);
334 
335         INSERT INTO IEX_STRATEGY_WORK_TEMP_XREF(
336           WORK_TEMP_XREF_ID,
337           STRATEGY_TEMP_ID,
338           WORK_ITEM_TEMP_ID,
339           WORK_ITEM_ORDER,
340           REQUIRED_YN,
341           CREATED_BY,
342           CREATION_DATE,
343           LAST_UPDATE_DATE,
344           LAST_UPDATED_BY,
345           LAST_UPDATE_LOGIN,
346           OBJECT_VERSION_NUMBER )
347         VALUES (nNextXrefID,
348           nNextTempID,
349           xrefCur.WORK_ITEM_TEMP_ID,
350           xrefCur.WORK_ITEM_ORDER,
351           xrefCur.REQUIRED_YN,
352           FND_GLOBAL.USER_ID,
353           SYSDATE,
354           SYSDATE,
355           FND_GLOBAL.USER_ID,
356           FND_GLOBAL.USER_ID,--  bug 6671798 xrefCur.LAST_UPDATE_LOGIN,
357           1);
358 
359       END LOOP;  /* xrefCur */
360 
361    END LOOP;  /* tempCur */
362 
363 
364 
365    --RETURN_STATUS := 'S';
366    RETURN_STATUS := nNextGroupID;  -- bug 7705188
367    Commit Work;
368 
369 EXCEPTION
370    WHEN OTHERS THEN
371     ROLLBACK TO IEX_STRY_TEMP_PKG_COPYSTRGRP;
372     RETURN_STATUS := 'E';
373 END COPY_STRATEGY_GROUP;
374 
375 
376 end IEX_STRATEGY_TEMPLATES_PKG;