[Home] [Help]
PACKAGE BODY: APPS.IEX_UWQ_PROM_ENUMS_PVT
Source
1 PACKAGE BODY IEX_UWQ_PROM_ENUMS_PVT AS
2 /* $Header: iexenprb.pls 120.22.12010000.10 2010/05/17 11:36:11 pnaveenk ship $ */
3
4 -- Sub-Program Units
5
6 PG_DEBUG NUMBER(2);
7
8 PROCEDURE SET_MO_GLOBAL IS
9 L VARCHAR2(240);
10 CURSOR C_ORG_ID IS SELECT ORGANIZATION_ID FROM HR_OPERATING_UNITS
11 WHERE MO_GLOBAL.CHECK_ACCESS(ORGANIZATION_ID) = 'Y';
12 BEGIN
13
14 MO_GLOBAL.INIT('IEX');
15 MO_GLOBAL.SET_POLICY_CONTEXT('M',NULL);
16
17
18 FOR I_ORG IN C_ORG_ID LOOP
19 MO_GLOBAL.SET_POLICY_CONTEXT('S',I_ORG.ORGANIZATION_ID);
20
21 L := IEX_UTILITIES.get_cache_value('GL_CURRENCY'||I_ORG.ORGANIZATION_ID,
22 'SELECT GLSOB.CURRENCY_CODE CURRENCY from GL_SETS_OF_BOOKS GLSOB, AR_SYSTEM_PARAMETERS ARSYS WHERE ARSYS.SET_OF_BOOKS_ID ' ||
23 ' = GLSOB.SET_OF_BOOKS_ID');
24 L := IEX_UTILITIES.get_cache_value('DEFAULT_EXCHANGE_RATE_TYPE'||I_ORG.ORGANIZATION_ID, 'SELECT DEFAULT_EXCHANGE_RATE_TYPE FROM AR_CMGT_SETUP_OPTIONS');
25 END LOOP;
26
27 MO_GLOBAL.SET_POLICY_CONTEXT('M',NULL);
28
29 END SET_MO_GLOBAL;
30
31 PROCEDURE ENUMERATE_PROM_NODES
32 (P_RESOURCE_ID IN NUMBER
33 ,P_LANGUAGE IN VARCHAR2
34 ,P_SOURCE_LANG IN VARCHAR2
35 ,P_SEL_ENUM_ID IN NUMBER
36 )
37 AS
38
39 l_node_label VARCHAR2(200);
40 l_ld_list IEU_PUB.EnumeratorDataRecordList;
41
42 l_node_counter NUMBER;
43 l_bind_list IEU_PUB.BindVariableRecordList ;
44 l_Access varchar2(10);
45 l_Level varchar2(15);
46 l_person_id NUMBER;
47
48
49 CURSOR c_person IS
50 select source_id
51 from jtf_rs_resource_extns
52 where resource_id = p_resource_id;
53
54 CURSOR c_del_new_nodes is
55 select lookup_code, meaning from fnd_lookup_values
56 where lookup_type = 'IEX_UWQ_NODE_STATUS' and LANGUAGE = userenv('LANG');
57
58 CURSOR c_node_label(in_lookup_type VARCHAR2,in_lookup_code VARCHAR2) IS
59 SELECT meaning
60 FROM fnd_lookup_values
61 WHERE lookup_type = in_lookup_type
62 AND lookup_code = in_lookup_code
63 AND LANGUAGE = userenv('LANG');
64
65 CURSOR c_sel_enum(in_sel_enum_id NUMBER) IS
66 SELECT work_q_view_for_primary_node, work_q_label_lu_type, work_q_label_lu_code
67 FROM ieu_uwq_sel_enumerators
68 WHERE sel_enum_id = in_sel_enum_id;
69
70 -- Added for bug 8708271 PNAVEENK
71 CURSOR c_ml_setup IS
72 select DEFINE_PARTY_RUNNING_LEVEL,DEFINE_OU_RUNNING_LEVEL
73 from IEX_QUESTIONNAIRE_ITEMS;
74 -- End for bug 8708271
75 l_sel_enum_rec c_sel_enum%ROWTYPE;
76
77 l_Complete_Days varchar2(40);
78 l_data_source VARCHAR2(1000);
79 l_default_where VARCHAR2(1000);
80 l_security_where VARCHAR2(2000);
81 l_node_where VARCHAR2(2000);
82 l_uwq_where VARCHAR2(1000);
83 -- l_org_id NUMBER; -- commented for bug 8826561 PNAVEENK
84
85 type tbl_wclause is table of varchar2(500) index by binary_integer;
86
87 l_wclause tbl_wclause;
88 l_str1 VARCHAR2(2000);
89 l_str2 VARCHAR2(2000);
90 l_str_and VARCHAR2(100);
91 l_str_prom VARCHAR2(1000);
92 l_bkr_filter VARCHAR2(240);
93 l_str_bkr VARCHAR2(1000);
94 l_check NUMBER(5);
95 -- Begin -jypark- 05/25/05 - 4608220 - Added profile to show/hide UWQ sub-nodes
96 l_EnableNodes varchar2(10);
97 -- End -jypark- 05/25/05 - 4608220 - Added profile to show/hide UWQ sub-nodes
98 l_party_override varchar2(1); -- Added for bug 8708271 PNAVEENK
99 l_org_override varchar2(1); -- Added for bug 8708271 PNAVEENK
100 BEGIN
101
102 -- SAVEPOINT start_prom_enumeration;
103 -- Moac Changes start. Set the policy context.
104 MO_GLOBAL.INIT('IEX');
105 MO_GLOBAL.SET_POLICY_CONTEXT('M',NULL);
106 -- Moac Changes End. Set the policy context.
107
108 l_Complete_Days := NVL(FND_PROFILE.VALUE('IEX_UWQ_COMPLETION_DAYS'), 30);
109 l_bkr_filter := NVL(fnd_profile.value('IEX_BANKRUPTCY_FILTER'), 'Y');
110 --l_org_id := TO_NUMBER(oe_profile.value('OE_ORGANIZATION_ID', fnd_profile.value('ORG_ID'))); -- commented for bug 8826561 PNAVEENK
111 l_Access := NVL(FND_PROFILE.VALUE('IEX_CUST_ACCESS'), 'F');
112 l_Level := NVL(FND_PROFILE.VALUE('IEX_ACCESS_LEVEL'),'PARTY');
113
114 l_node_counter := 0;
115 If (l_Access = 'T') then
116 SELECT count(*) into l_check from iex_assignments where
117 alt_resource_id = p_RESOURCE_ID
118 AND TRUNC(START_DATE) <= TRUNC(SYSDATE)
119 AND TRUNC(NVL(END_DATE,SYSDATE)) >= TRUNC(SYSDATE)
120 AND NVL(DELETED_FLAG,'N') = 'N';
121 End If;
122
123 l_str_and := ' AND ';
124 l_str_prom := ' AND NUMBER_OF_PROMISES > 0 ';
125
126
127 OPEN c_sel_enum(p_sel_enum_id);
128 FETCH c_sel_enum INTO l_sel_enum_rec;
129 CLOSE c_sel_enum;
130
131 OPEN c_node_label(l_sel_enum_rec.work_q_label_lu_type, l_sel_enum_rec.work_q_label_lu_code);
132 FETCH c_node_label INTO l_node_label;
133 CLOSE c_node_label;
134 -- Start for bug 8708271 PNAVEENK
135 open c_ml_setup;
136 fetch c_ml_setup into l_party_override,l_org_override;
137 close c_ml_setup;
138 -- End for bug 8708271
139 --Bug4775893. Fix by LKKUMAR on 14-Dec-2005. Start.
140 l_wclause(1) :=
141 ' (RESOURCE_ID = :RESOURCE_ID ' ||
142 ' OR :RESOURCE_ID ' ||
143 ' IN (select iea.alt_resource_id '||
144 ' FROM iex_assignments iea ' ||
145 ' WHERE nvl(iea.deleted_flag,''N'') = ''N'' ' ||
146 ' AND TRUNC(iea.START_DATE) <= TRUNC(SYSDATE) ' ||
147 ' AND TRUNC(NVL(iea.END_DATE,SYSDATE)) >= TRUNC(SYSDATE) ' ||
148 ' AND iea.alt_resource_id = :RESOURCE_ID ' ||
149 ' AND iea.resource_id = ' || l_sel_enum_rec.work_q_view_for_primary_node ||'.RESOURCE_ID )) ' ||
150 ' AND ' || ' (UWQ_STATUS IS NULL or UWQ_STATUS = :UWQ_STATUS or ' ||
151 ' (trunc(UWQ_ACTIVE_DATE) <= trunc(SYSDATE) and UWQ_STATUS = ''PENDING'' )) ';
152
153 l_wclause(2) :=
154 ' (RESOURCE_ID = :RESOURCE_ID ' ||
155 ' OR :RESOURCE_ID ' ||
156 ' IN (select iea.alt_resource_id '||
157 ' FROM iex_assignments iea ' ||
158 ' WHERE nvl(iea.deleted_flag,''N'') = ''N'' ' ||
159 ' AND TRUNC(iea.START_DATE) <= TRUNC(SYSDATE) ' ||
160 ' AND TRUNC(NVL(iea.END_DATE,SYSDATE)) >= TRUNC(SYSDATE) ' ||
161 ' AND iea.alt_resource_id = :RESOURCE_ID ' ||
162 ' AND iea.resource_id = ' || l_sel_enum_rec.work_q_view_for_primary_node ||'.RESOURCE_ID )) ' ||
163 ' AND' || ' (UWQ_STATUS = :UWQ_STATUS and (trunc(UWQ_ACTIVE_DATE) > trunc(SYSDATE))) ';
164
165 l_wclause(3) :=
166 ' (RESOURCE_ID = :RESOURCE_ID ' ||
167 ' OR :RESOURCE_ID ' ||
168 ' IN (select iea.alt_resource_id '||
169 ' FROM iex_assignments iea ' ||
170 ' WHERE nvl(iea.deleted_flag,''N'') = ''N'' ' ||
171 ' AND TRUNC(iea.START_DATE) <= TRUNC(SYSDATE) ' ||
172 ' AND TRUNC(NVL(iea.END_DATE,SYSDATE)) >= TRUNC(SYSDATE) ' ||
173 ' AND iea.alt_resource_id = :RESOURCE_ID ' ||
174 ' AND iea.resource_id = ' || l_sel_enum_rec.work_q_view_for_primary_node ||'.RESOURCE_ID )) ' ||
175 ' AND ' ||
176 ' (UWQ_STATUS = :UWQ_STATUS and (trunc(UWQ_COMPLETE_DATE) + ' || l_Complete_Days || ' > trunc(SYSDATE))) ';
177 --Start for bug#7574861 by PNAVEENK
178 /* If (l_check >0 ) then
179
180 l_str1 :=
181 ' OR ' || l_sel_enum_rec.work_q_view_for_primary_node || '.PARTY_ID' || ' IN (SELECT distinct hp.party_id ' ||
182 ' FROM hz_customer_profiles hp,ar_collectors ac, ' ||
183 ' iex_assignments iea ' ||
184 ' WHERE hp.collector_id = ac.collector_id ' ||
185 ' AND ac.resource_id = iea.resource_id ' ||
186 ' AND iea.alt_employee_id = :PERSON_ID ' ||
187 ' AND TRUNC(iea.START_DATE) <= TRUNC(SYSDATE) ' ||
188 ' AND TRUNC(NVL(iea.END_DATE,SYSDATE)) >= TRUNC(SYSDATE) )';
189 l_security_where := l_str1 ;
190 Else
191 l_str1 :=
192 ' OR ' || l_sel_enum_rec.work_q_view_for_primary_node || '.PARTY_ID' || ' IN (SELECT distinct hp.party_id ' ||
193 ' FROM hz_customer_profiles hp,ar_collectors ac ' ||
194 ' WHERE hp.collector_id = ac.collector_id ' ||
195 ' AND ac.resource_type = ''RS_RESOURCE'' ' ||
196 ' AND ac.employee_id = :PERSON_ID ';
197 l_str2 := ' UNION ALL SELECT hp.party_id ' ||
198 ' FROM hz_customer_profiles hp, ar_collectors ac , jtf_rs_group_members jtgrp ' ||
199 ' WHERE hp.collector_id = ac.collector_id ' ||
200 ' AND ac.resource_ID = jtgrp.group_id ' ||
201 ' AND ac.employee_id = :PERSON_ID ' ||
202 ' AND ac.resource_type = ''RS_GROUP'' ' ||
203 ' AND NVL(jtgrp.delete_flag,''N'') = ''N'' ) ' ;
204
205 l_security_where := l_str1 ||l_str2;
206 END IF; */
207 --End for bug#7574861 by PNAVEENK
208 --Bug4775893. Fix by LKKUMAR on 14-Dec-2005. End.
209
210 -- changed for bug#7693986 by PNAVEENk on 12-1-2009
211 IF p_sel_enum_id = 13069 THEN
212 l_str_bkr := ' AND NOT EXISTS (SELECT 1 FROM iex_bankruptcies bkr WHERE bkr.party_id = ' || l_sel_enum_rec.work_q_view_for_primary_node || '.customer_id and NVL(BKR.DISPOSITION_CODE,''GRANTED'') in (''GRANTED'',''NEGOTIATION'') ) ' ;
213 ELSE
214 l_str_bkr := ' AND NOT EXISTS (SELECT 1 FROM iex_bankruptcies bkr WHERE bkr.party_id = ' || l_sel_enum_rec.work_q_view_for_primary_node || '.party_id and NVL(BKR.DISPOSITION_CODE,''GRANTED'') in (''GRANTED'',''NEGOTIATION'') ) ' ;
215 END IF;
216 -- end for bug#7693986
217 IF p_sel_enum_id = 13066 THEN
218 l_data_source := 'IEX_PROMISES_UWQ';
219 END IF;
220
221 --Bug4775893. Fix by LKKUMAR on 14-Dec-2005. Start.
222 l_default_where := ' ( RESOURCE_ID = :RESOURCE_ID and :UWQ_STATUS = :UWQ_STATUS ' ||
223 ' OR :RESOURCE_ID ' ||
224 ' IN (select iea.alt_resource_id '||
225 ' FROM iex_assignments iea ' ||
226 ' WHERE nvl(iea.deleted_flag,''N'') = ''N'' ' ||
227 ' AND TRUNC(iea.START_DATE) <= TRUNC(SYSDATE) ' ||
228 ' AND TRUNC(NVL(iea.END_DATE,SYSDATE)) >= TRUNC(SYSDATE) ' ||
229 ' AND iea.alt_resource_id = :RESOURCE_ID ' ||
230 ' AND iea.resource_id = ' || l_sel_enum_rec.work_q_view_for_primary_node ||'.RESOURCE_ID )) ';
231 --Bug4775893. Fix by LKKUMAR on 14-Dec-2005. End.
232 -- Start for bug 8708271 PNAVEENK
233 if l_party_override = 'Y' or l_org_override ='Y' then
234
235 l_default_where := l_default_where || ' AND iex_utilities.get_party_running_level (party_id , org_id ) = ''DELINQUENCY'' ';
236 else
237 null;
238 end if;
239 -- End for bug 8708271
240 l_ld_list(l_node_counter).NODE_LABEL := l_node_label;
241 l_ld_list(l_node_counter).VIEW_NAME := l_sel_enum_rec.work_q_view_for_primary_node;
242 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
243 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
244
245 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
246 l_bind_list(1).bind_var_value := 'ALL';
247 l_bind_list(1).bind_var_data_type := 'CHAR' ;
248
249
250 l_bind_list(2).bind_var_name := ':RESOURCE_ID';
251
252 l_bind_list(2).bind_var_value := p_resource_id;
253
254 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
255
256 IF ( l_access in ('F', 'P')) THEN
257 IF l_bkr_filter = 'Y' THEN
258 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_bkr;
259 ELSE
260 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where;
261 END IF;
262
263 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
264 ELSE
265 OPEN c_person;
266 FETCH c_person INTO l_person_id;
267 CLOSE c_person;
268 -- For bug#7574861 Bind variables commented by PNAVEENK
269 --Commented
270 -- l_bind_list(3).bind_var_name := ':PERSON_ID' ;
271 -- l_bind_list(3).bind_var_value := l_person_id;
272 -- l_bind_list(3).bind_var_data_type := 'NUMBER' ;
273
274 IF l_bkr_filter = 'Y' THEN
275 l_ld_list(l_node_counter).WHERE_CLAUSE := '( ' || l_default_where || ' ) ' || l_str_bkr; --Changed for bug#7574861 by PNAVEENK
276 ELSE
277 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where; --Changed for bug#7574861 by PNAVEENK
278 END IF;
279
280 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
281 END IF;
282
283 l_ld_list(l_node_counter).MEDIA_TYPE_ID := '';
284 l_ld_list(l_node_counter).NODE_TYPE := 0;
285 l_ld_list(l_node_counter).HIDE_IF_EMPTY := '';
286 l_ld_list(l_node_counter).NODE_DEPTH := 1;
287
288
289 l_node_counter := l_node_counter + 1;
290
291 -- Begin -jypark- 05/25/05 - 4608220 - Added profile to show/hide UWQ sub-nodes
292 l_EnableNodes := NVL(FND_PROFILE.VALUE('IEX_ENABLE_UWQ_STATUS'),'N');
293
294 if (l_EnableNodes <> 'N') then
295 -- End -jypark- 05/25/05 - 4608220 - Added profile to show/hide UWQ sub-nodes
296
297 FOR cur_rec IN c_del_new_nodes LOOP
298 IF (cur_rec.lookup_code = 'ACTIVE') THEN
299 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
300 l_bind_list(1).bind_var_value := 'ACTIVE';
301 l_bind_list(1).bind_var_data_type := 'CHAR' ;
302 l_uwq_where := l_wclause(1);
303 l_node_where := l_default_where || ' AND ACTIVE_PROMISES > 0 ';
304 ELSIF (cur_rec.lookup_code = 'PENDING') THEN
305 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
306 l_bind_list(1).bind_var_value := 'PENDING';
307 l_bind_list(1).bind_var_data_type := 'CHAR' ;
308 l_uwq_where := l_wclause(2);
309 l_node_where := l_default_where || ' AND PENDING_PROMISES > 0 ';
310 ELSIF (cur_rec.lookup_code = 'COMPLETE') THEN
311 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
312 l_bind_list(1).bind_var_value := 'COMPLETE';
313 l_bind_list(1).bind_var_data_type := 'CHAR' ;
314 l_uwq_where := l_wclause(3);
315 l_node_where := l_default_where || ' AND COMPLETE_PROMISES > 0 ';
316 END IF;
317
318 l_ld_list(l_node_counter).NODE_LABEL := cur_rec.meaning;
319 l_ld_list(l_node_counter).VIEW_NAME := l_sel_enum_rec.work_q_view_for_primary_node;
320 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
321
322 l_bind_list(2).bind_var_name := ':RESOURCE_ID' ;
323
324 l_bind_list(2).bind_var_value := p_resource_id;
325
326 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
327
328 IF ( l_access in ('P', 'F')) THEN
329 IF l_bkr_filter = 'Y' THEN
330 l_ld_list(l_node_counter).WHERE_CLAUSE := l_uwq_where || l_str_bkr;
331 ELSE
332 l_ld_list(l_node_counter).WHERE_CLAUSE := l_uwq_where;
333 END IF;
334
335 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
336 ELSE
337 IF l_bkr_filter = 'Y' THEN
338 l_ld_list(l_node_counter).WHERE_CLAUSE := ' ( ' || l_uwq_where || ' ) ' || l_str_bkr; --Changed for bug#7574861 by PNAVEENK
339 ELSE
340 l_ld_list(l_node_counter).WHERE_CLAUSE := l_uwq_where; --Changed for bug#7574861 by PNAVEENK
341 END IF;
342 --Commented for bug#7574861 by PNAVEENK
343 -- l_bind_list(3).bind_var_name := ':PERSON_ID' ;
344 -- l_bind_list(3).bind_var_value := l_person_id;
345 -- l_bind_list(3).bind_var_data_type := 'NUMBER' ;
346 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
347 END IF;
348
349 l_ld_list(l_node_counter).MEDIA_TYPE_ID := '';
350 l_ld_list(l_node_counter).NODE_TYPE := 0;
351 l_ld_list(l_node_counter).HIDE_IF_EMPTY := '';
352 l_ld_list(l_node_counter).NODE_DEPTH := 2;
353
354 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
355
356 l_node_counter := l_node_counter + 1;
357 END LOOP;
358 -- Begin -jypark- 05/25/05 - 4608220 - Added profile to show/hide UWQ sub-nodes
359 end if;
360 -- End -jypark- 05/25/05 - 4608220 - Added profile to show/hide UWQ sub-nodes
361
362
363 IEU_PUB.ADD_UWQ_NODE_DATA
364 (P_RESOURCE_ID,
365 P_SEL_ENUM_ID,
366 l_ld_list
367 );
368
369
370 EXCEPTION
371 WHEN OTHERS THEN
372 RAISE;
373
374 END ENUMERATE_PROM_NODES;
375
376 PROCEDURE ENUMERATE_CU_PROM_NODES
377 (P_RESOURCE_ID IN NUMBER
378 ,P_LANGUAGE IN VARCHAR2
379 ,P_SOURCE_LANG IN VARCHAR2
380 ,P_SEL_ENUM_ID IN NUMBER
381 )
382 AS
383
384 l_node_label VARCHAR2(200);
385 l_ld_list IEU_PUB.EnumeratorDataRecordList;
386
387 l_node_counter NUMBER;
388 l_bind_list IEU_PUB.BindVariableRecordList ;
389 l_Access varchar2(10);
390 l_Level varchar2(15);
391
392
393 CURSOR c_del_new_nodes is
394 select lookup_code, meaning from fnd_lookup_values
395 where lookup_type = 'IEX_UWQ_NODE_STATUS' and LANGUAGE = userenv('LANG');
396
397 CURSOR c_node_label(in_lookup_type VARCHAR2,in_lookup_code VARCHAR2) IS
398 SELECT meaning
399 FROM fnd_lookup_values
400 WHERE lookup_type = in_lookup_type
401 AND lookup_code = in_lookup_code
402 AND LANGUAGE = userenv('LANG');
403
404 CURSOR c_sel_enum(in_sel_enum_id NUMBER) IS
405 SELECT work_q_view_for_primary_node, work_q_label_lu_type, work_q_label_lu_code
406 FROM ieu_uwq_sel_enumerators
407 WHERE sel_enum_id = in_sel_enum_id;
408
409 l_sel_enum_rec c_sel_enum%ROWTYPE;
410
411 l_Complete_Days varchar2(40);
412 l_data_source VARCHAR2(1000);
413 l_default_where VARCHAR2(1000);
414 l_security_where VARCHAR2(2000);
415 l_node_where VARCHAR2(2000);
416 l_uwq_where VARCHAR2(1000);
417 -- l_org_id NUMBER; -- commented for bug 8826561 PNAVEENK
418
419 type tbl_wclause is table of varchar2(500) index by binary_integer;
420
421 l_wclause tbl_wclause;
422 l_str1 VARCHAR2(2000);
423 l_str_and VARCHAR2(100);
424 l_str_or VARCHAR2(10);
425 l_str_prom VARCHAR2(1000);
426 l_bkr_filter VARCHAR2(240);
427 l_str_bkr VARCHAR2(1000);
428 l_view_name VARCHAR2(240);
429 l_refresh_view_name VARCHAR2(240);
430 l_check NUMBER(5);
431
432 l_EnableNodes varchar2(10);
433
434 l_collector_id number;
435
436 CURSOR c_collector_id IS
437 SELECT collector_id from AR_COLLECTORS where resource_id = p_resource_id
438 and resource_type = 'RS_RESOURCE';
439
440 CURSOR c_person IS
441 select source_id
442 from jtf_rs_resource_extns
443 where resource_id = p_resource_id;
444
445 l_person_id number;
446
447 CURSOR c_strategy_level IS
448 SELECT PREFERENCE_VALUE
449 FROM IEX_APP_PREFERENCES_B
450 WHERE PREFERENCE_NAME = 'COLLECTIONS STRATEGY LEVEL'
451 and org_id is null
452 and enabled_flag='Y';
453
454 l_strategy_level VARCHAR2(30);
455 l_temp_str varchar2(5); -- Added for bug#8537638 PNAVEENK 11-8-2009
456 --begin bug#6717849 schekuri 31-Jul-2009
457 l_level_count number;
458 cursor c_multi_level
459 is select lookup_code
460 from iex_lookups_v
461 where lookup_type='IEX_RUNNING_LEVEL'
462 and lookup_code= 'CUSTOMER'
463 and iex_utilities.validate_running_level(LOOKUP_CODE)='Y';
464 --end bug#6717849 schekuri 31-Jul-2009
465
466 BEGIN
467
468 SET_MO_GLOBAL;
469
470 l_Complete_Days := NVL(FND_PROFILE.VALUE('IEX_UWQ_COMPLETION_DAYS'), 30);
471 l_bkr_filter := NVL(fnd_profile.value('IEX_BANKRUPTCY_FILTER'), 'Y');
472 -- l_org_id := TO_NUMBER(oe_profile.value('OE_ORGANIZATION_ID', fnd_profile.value('ORG_ID'))); -- commented for bug 8826561 PNAVEENK
473 l_Access := NVL(FND_PROFILE.VALUE('IEX_CUST_ACCESS'), 'F');
474 l_Level := NVL(FND_PROFILE.VALUE('IEX_ACCESS_LEVEL'),'PARTY');
475
476 /* IF (l_Access = 'T') THEN
477 SELECT count(*) INTO l_check FROM iex_assignments where
478 alt_resource_id = p_RESOURCE_ID
479 AND TRUNC(START_DATE) <= TRUNC(SYSDATE)
480 AND TRUNC(NVL(END_DATE,SYSDATE)) >= TRUNC(SYSDATE)
481 AND NVL(DELETED_FLAG,'N') = 'N';
482 END IF;
483
484
485 l_str_and := ' AND ';
486 l_str_prom := ' AND NUMBER_OF_PROMISES > 0 ';
487 l_str_or := ' OR ';
488 */
489 l_node_counter := 0;
490
491 -- !!
492 -- !!!!!!!!!! BUILDING MAIN NODE WHERE CLAUSE
493 -- !!
494
495 OPEN c_sel_enum(p_sel_enum_id);
496 FETCH c_sel_enum INTO l_sel_enum_rec;
497 CLOSE c_sel_enum;
498
499 OPEN c_node_label(l_sel_enum_rec.work_q_label_lu_type, l_sel_enum_rec.work_q_label_lu_code);
500 FETCH c_node_label INTO l_node_label;
501 CLOSE c_node_label;
502
503 -- Start bug 5874874 gnramasa 25-Apr-07
504 l_data_source := 'IEX_CU_PRO_ALL_UWQ';
505 l_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
506 l_refresh_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
507
508 /*
509 l_str_bkr := ' AND NUMBER_OF_BANKRUPTCIES = 0 ';
510 IF (l_check >0 ) THEN
511 l_str1 := ASSIGNMENTS_WHERE_CLAUSE('PARTY', l_view_name) || ' AND ' || RESOURCES_WHERE_CLAUSE('PARTY', l_view_name) || ' ) ';
512 ELSE
513 l_str1 := RESOURCES_WHERE_CLAUSE('PARTY', l_view_name);
514 END IF;
515
516 l_security_where := l_str1 ;
517 l_default_where := ' ( RESOURCE_ID = :RESOURCE_ID OR' || ASSIGNMENTS_WHERE_CLAUSE('PARTY', l_view_name) || ' ) ';
518
519 l_bind_list(1).bind_var_name := ':RESOURCE_ID';
520 l_bind_list(1).bind_var_value := 1;
521 l_bind_list(1).bind_var_data_type := 'NUMBER' ;
522
523 --Begin - Bug#5344878 - Andre Araujo - Need to add bind variables
524 l_bind_list(2).bind_var_name := ':REAL_RESOURCE_ID';
525 l_bind_list(2).bind_var_value := p_resource_id;
526 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
527 --End - Bug#5344878 - Andre Araujo - Need to add bind variables
528
529 IF ( l_access in ('F', 'P')) THEN
530 IF l_bkr_filter = 'Y' THEN
531 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_prom || l_str_bkr;
532 ELSE
533 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_prom;
534 END IF;
535
536 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
537 ELSE
538
539 -- No count view when the security is enabled
540 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_view_name;
541 OPEN c_person;
542 FETCH c_person INTO l_person_id;
543 CLOSE c_person;
544
545
546 l_bind_list(3).bind_var_name := ':PERSON_ID' ;
547 l_bind_list(3).bind_var_value := l_person_id;
548 l_bind_list(3).bind_var_data_type := 'NUMBER' ;
549
550 IF l_bkr_filter = 'Y' THEN
551 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_and || l_security_where || l_str_prom || l_str_bkr;
552 ELSE
553 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_and || l_security_where || l_str_prom;
554 END IF;
555
556 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
557 END IF;
558 */
559 OPEN c_strategy_level;
560 FETCH c_strategy_level INTO l_strategy_level;
561 CLOSE c_strategy_level;
562
563 --begin bug#6717849 schekuri 31-Jul-2009
564 select count(1)
565 into l_level_count
566 from iex_lookups_v
567 where lookup_type='IEX_RUNNING_LEVEL'
568 and iex_utilities.validate_running_level(LOOKUP_CODE)='Y';
569
570 if l_level_count>1 then
571 open c_multi_level;
572 fetch c_multi_level into l_strategy_level;
573 close c_multi_level;
574 end if;
575 --end bug#6717849 schekuri 31-Jul-2009
576
577 IF l_strategy_level = 'CUSTOMER' THEN
578
579 l_ld_list(l_node_counter).NODE_LABEL := l_node_label;
580 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
581 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
582 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
583 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_refresh_view_name;
584
585 -- l_default_where := ' IEU_PARAM_PK_COL=''PARTY_ID'' and '||attach_where_clause(p_resource_id); --bug#6717849 schekuri 31-Jul-2009
586 l_default_where := ' IEU_PARAM_PK_COL=''PARTY_ID'' ' ||attach_where_clause(p_resource_id); -- bug 8537638 PNAVEENK 11-8-2009
587 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where;
588
589 IF (l_access = 'T' ) THEN
590 OPEN c_collector_id;
591 FETCH c_collector_id INTO l_collector_id;
592 CLOSE c_collector_id;
593
594 OPEN c_person;
595 FETCH c_person INTO l_person_id;
596 CLOSE c_person;
597
598 l_bind_list(1).bind_var_name := ':PERSON_ID' ;
599 l_bind_list(1).bind_var_value := l_person_id;
600 l_bind_list(1).bind_var_data_type := 'NUMBER' ;
601
602 l_bind_list(2).bind_var_name := ':COLLECTOR_RESOURCE_ID' ;
603 l_bind_list(2).bind_var_value := p_resource_id;
604 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
605
606 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
607 ELSE -- bug 9453423 PNAVEENK
608 IF l_default_where IS NULL THEN
609 l_ld_list(l_node_counter).WHERE_CLAUSE := ' RESOURCE_ID = :RESOURCE_ID';
610
611 l_bind_list(1).bind_var_name := ':RESOURCE_ID';
612 l_bind_list(1).bind_var_value := 1;
613 l_bind_list(1).bind_var_data_type := 'NUMBER' ;
614
615 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
616 END IF;
617 END IF;
618 ELSE /* IF l_strategy_level <> 'CUSTOMER' */
619
620 l_ld_list(l_node_counter).NODE_LABEL := l_node_label;
621 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
622 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
623 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
624
625 l_ld_list(l_node_counter).WHERE_CLAUSE := 'RESOURCE_ID = :RESOURCE_ID AND :UWQ_STATUS = :UWQ_STATUS ';
626
627 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
628 l_bind_list(1).bind_var_value := 'ALL';
629 l_bind_list(1).bind_var_data_type := 'CHAR' ;
630
631 l_bind_list(2).bind_var_name := ':RESOURCE_ID';
632 l_bind_list(2).bind_var_value := -1;
633 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
634
635 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
636 END IF;
637 -- End bug 5874874 gnramasa 25-Apr-07
638 l_ld_list(l_node_counter).MEDIA_TYPE_ID := '';
639 l_ld_list(l_node_counter).NODE_TYPE := 0;
640 l_ld_list(l_node_counter).HIDE_IF_EMPTY := '';
641 l_ld_list(l_node_counter).NODE_DEPTH := 1;
642
643
644 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
645 iex_debug_pub.LogMessage('ENUMERATE_CU_PROM_NODES: main final where clause: ' || l_ld_list(l_node_counter).WHERE_CLAUSE);
646 END IF;
647
648 l_node_counter := l_node_counter + 1;
649 l_EnableNodes := NVL(FND_PROFILE.VALUE('IEX_ENABLE_UWQ_STATUS'),'N');
650
651 if (l_EnableNodes <> 'N') then
652 l_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
653 l_refresh_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
654 -- Start for bug 8537638 PNAVEENK 11-8-2009
655 if l_ld_list(0).WHERE_CLAUSE is not null then
656 l_temp_str := ' and ';
657 else
658 l_temp_str := ' ';
659 end if;
660
661 FOR cur_rec IN c_del_new_nodes LOOP
662 IF l_strategy_level = 'CUSTOMER' THEN
663 IF (cur_rec.lookup_code = 'ACTIVE') THEN
664 l_data_source := 'IEX_CU_PRO_ACT_UWQ';
665 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and active_promises is not null';
666 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and NVL(active_promises,0) > 0 ';
667 l_node_where := l_ld_list(0).WHERE_CLAUSE || l_temp_str || ' NVL(active_promises,0) > 0 ';
668 ELSIF (cur_rec.lookup_code = 'PENDING') THEN
669 l_data_source := 'IEX_CU_PRO_PEND_UWQ';
670 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and pending_promises is not null';
671 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and NVL(pending_promises,0) > 0 ';
672 l_node_where := l_ld_list(0).WHERE_CLAUSE || l_temp_str || ' NVL(pending_promises,0) > 0 ';
673 ELSIF (cur_rec.lookup_code = 'COMPLETE') THEN
674 l_data_source := 'IEX_CU_PRO_COMP_UWQ';
675 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and complete_promises is not null';
676 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and NVL(complete_promises,0) > 0 ';
677 l_node_where := l_ld_list(0).WHERE_CLAUSE || l_temp_str || ' NVL(complete_promises,0) > 0 ';
678 END IF;
679 -- end for bug 8537638
680
681 l_ld_list(l_node_counter).NODE_LABEL := cur_rec.meaning;
682 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
683 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
684 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_refresh_view_name;
685 l_ld_list(l_node_counter).WHERE_CLAUSE := l_node_where;
686 l_ld_list(l_node_counter).BIND_VARS := l_ld_list(0).BIND_VARS;
687 ELSE /* IF l_strategy_level <> 'CUSTOMER' */
688
689 l_ld_list(l_node_counter).NODE_LABEL := cur_rec.meaning;
690 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
691 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
692 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
693
694 l_ld_list(l_node_counter).WHERE_CLAUSE := 'RESOURCE_ID = :RESOURCE_ID AND :UWQ_STATUS = :UWQ_STATUS ';
695
696 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
697 l_bind_list(1).bind_var_value := 'ALL';
698 l_bind_list(1).bind_var_data_type := 'CHAR' ;
699
700 l_bind_list(2).bind_var_name := ':RESOURCE_ID';
701 l_bind_list(2).bind_var_value := -1;
702 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
703
704 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
705 END IF;
706
707 l_ld_list(l_node_counter).MEDIA_TYPE_ID := '';
708 l_ld_list(l_node_counter).NODE_TYPE := 0;
709 l_ld_list(l_node_counter).HIDE_IF_EMPTY := '';
710 l_ld_list(l_node_counter).NODE_DEPTH := 2;
711
712 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
713
714 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
715 iex_debug_pub.LogMessage('ENUMERATE_CU_PROM_NODES: Subnode final where clause: ' || l_ld_list(l_node_counter).WHERE_CLAUSE);
716 END IF;
717
718
719 l_node_counter := l_node_counter + 1;
720 END LOOP;
721 END IF;
722
723 IEU_PUB.ADD_UWQ_NODE_DATA
724 (P_RESOURCE_ID,
725 P_SEL_ENUM_ID,
726 l_ld_list
727 );
728
729
730 EXCEPTION
731 WHEN OTHERS THEN
732 if( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
733 FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED, 'iex', 'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM );
734 End if;
735 RAISE;
736
737 END ENUMERATE_CU_PROM_NODES;
738
739
740 PROCEDURE ENUMERATE_ACC_PROM_NODES
741 (P_RESOURCE_ID IN NUMBER
742 ,P_LANGUAGE IN VARCHAR2
743 ,P_SOURCE_LANG IN VARCHAR2
744 ,P_SEL_ENUM_ID IN NUMBER
745 )
746 AS
747
748 l_node_label VARCHAR2(200);
749 l_ld_list IEU_PUB.EnumeratorDataRecordList;
750
751 l_node_counter NUMBER;
752 l_bind_list IEU_PUB.BindVariableRecordList ;
753 l_Access varchar2(10);
754 l_Level varchar2(15);
755 l_person_id NUMBER;
756 l_check NUMBER;
757
758 CURSOR c_del_new_nodes is
759 select lookup_code, meaning from fnd_lookup_values
760 where lookup_type = 'IEX_UWQ_NODE_STATUS' and LANGUAGE = userenv('LANG');
761
762 CURSOR c_node_label(in_lookup_type VARCHAR2,in_lookup_code VARCHAR2) IS
763 SELECT meaning
764 FROM fnd_lookup_values
765 WHERE lookup_type = in_lookup_type
766 AND lookup_code = in_lookup_code
767 AND LANGUAGE = userenv('LANG');
768
769 CURSOR c_sel_enum(in_sel_enum_id NUMBER) IS
770 SELECT work_q_view_for_primary_node, work_q_label_lu_type, work_q_label_lu_code
771 FROM ieu_uwq_sel_enumerators
772 WHERE sel_enum_id = in_sel_enum_id;
773
774 l_sel_enum_rec c_sel_enum%ROWTYPE;
775
776 l_Complete_Days varchar2(40);
777 l_data_source VARCHAR2(1000);
778 l_default_where VARCHAR2(1000);
779 l_security_where VARCHAR2(2000);
780 l_node_where VARCHAR2(2000);
781 l_uwq_where VARCHAR2(1000);
782 -- l_org_id NUMBER; -- commented for bug 8826561 PNAVEENK
783
784 type tbl_wclause is table of varchar2(500) index by binary_integer;
785
786 l_wclause tbl_wclause;
787 l_str1 VARCHAR2(2000);
788 l_str_and VARCHAR2(100);
789 l_str_prom VARCHAR2(1000);
790 l_bkr_filter VARCHAR2(240);
791 l_str_bkr VARCHAR2(1000);
792 l_view_name VARCHAR2(240);
793 l_refresh_view_name VARCHAR2(240);
794 l_EnableNodes varchar2(10);
795
796 l_collector_id number;
797 l_resource_id number;
798
799 CURSOR c_collector_id IS
800 SELECT collector_id from AR_COLLECTORS where resource_id = p_resource_id
801 and resource_type = 'RS_RESOURCE';
802
803 CURSOR c_person IS
804 select source_id
805 from jtf_rs_resource_extns
806 where resource_id = p_resource_id;
807
808 CURSOR c_strategy_level IS
809 SELECT PREFERENCE_VALUE
810 FROM IEX_APP_PREFERENCES_B
811 WHERE PREFERENCE_NAME = 'COLLECTIONS STRATEGY LEVEL'
812 and org_id is null
813 and enabled_flag='Y';
814
815 l_strategy_level VARCHAR2(30);
816 l_temp_str varchar2(5); -- Added for bug 8537638 PNAVEENK 11-8-2009
817 --begin bug#6717849 schekuri 31-Jul-2009
818 l_level_count number;
819 cursor c_multi_level
820 is select lookup_code
821 from iex_lookups_v
822 where lookup_type='IEX_RUNNING_LEVEL'
823 and lookup_code= 'ACCOUNT'
824 and iex_utilities.validate_running_level(LOOKUP_CODE)='Y';
825 --end bug#6717849 schekuri 31-Jul-2009
826
827 BEGIN
828
829 SET_MO_GLOBAL;
830
831 l_Complete_Days := NVL(FND_PROFILE.VALUE('IEX_UWQ_COMPLETION_DAYS'), 30);
832 l_bkr_filter := NVL(fnd_profile.value('IEX_BANKRUPTCY_FILTER'), 'Y');
833 -- l_org_id := TO_NUMBER(oe_profile.value('OE_ORGANIZATION_ID', fnd_profile.value('ORG_ID'))); -- commented for bug 8826561 PNAVEENK
834
835 l_Access := NVL(FND_PROFILE.VALUE('IEX_CUST_ACCESS'), 'F');
836 /*
837 l_Level := NVL(FND_PROFILE.VALUE('IEX_ACCESS_LEVEL'), 'PARTY');
838
839 -- !!
840 -- !!!!!!!!!! BUILDING MAIN NODE WHERE CLAUSE
841 -- !!
842
843 l_str_and := ' AND ';
844 l_str_prom := ' AND NUMBER_OF_PROMISES > 0 ';
845 */
846 l_node_counter := 0;
847
848 OPEN c_sel_enum(p_sel_enum_id);
849 FETCH c_sel_enum INTO l_sel_enum_rec;
850 CLOSE c_sel_enum;
851
852 OPEN c_node_label(l_sel_enum_rec.work_q_label_lu_type, l_sel_enum_rec.work_q_label_lu_code);
853 FETCH c_node_label INTO l_node_label;
854 CLOSE c_node_label;
855 -- Start bug 5874874 gnramasa 25-Apr-07
856 l_data_source := 'IEX_ACC_PRO_ALL_UWQ';
857 l_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
858 l_refresh_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
859
860 /*
861 l_str_bkr := ' AND NUMBER_OF_BANKRUPTCIES = 0 ';
862
863
864 IF (l_Access = 'T') then
865 SELECT count(*) INTO l_check FROM iex_assignments where
866 alt_resource_id = P_RESOURCE_ID
867 AND TRUNC(START_DATE) <= TRUNC(SYSDATE)
868 AND TRUNC(NVL(END_DATE,SYSDATE)) >= TRUNC(SYSDATE)
869 AND NVL(DELETED_FLAG,'N') = 'N';
870 END IF;
871
872 IF (l_Level = 'PARTY') then
873 If (l_check > 0) then
874 l_str1 := ASSIGNMENTS_WHERE_CLAUSE('PARTY', l_sel_enum_rec.work_q_view_for_primary_node) || ' AND ' || RESOURCES_WHERE_CLAUSE('PARTY', l_sel_enum_rec.work_q_view_for_primary_node) || ' ) ';
875 Else
876 l_str1 := RESOURCES_WHERE_CLAUSE('PARTY', l_sel_enum_rec.work_q_view_for_primary_node);
877 End If;
878 ELSE
879 If (l_check > 0) then
880 l_str1 := ASSIGNMENTS_WHERE_CLAUSE('ACCOUNT', l_sel_enum_rec.work_q_view_for_primary_node) || ' AND ' || RESOURCES_WHERE_CLAUSE('ACCOUNT', l_sel_enum_rec.work_q_view_for_primary_node) || ' ) ';
881 Else
882 l_str1 := RESOURCES_WHERE_CLAUSE('ACCOUNT', l_sel_enum_rec.work_q_view_for_primary_node);
883 End If;
884 END IF;
885
886 l_security_where := l_str1;
887
888 l_default_where := ' ( RESOURCE_ID = :RESOURCE_ID OR' || ASSIGNMENTS_WHERE_CLAUSE('ACCOUNT', l_view_name) || ' ) ';
889
890
891 l_ld_list(l_node_counter).NODE_LABEL := l_node_label;
892 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
893 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
894 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
895 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_refresh_view_name;
896
897 l_bind_list(1).bind_var_name := ':RESOURCE_ID';
898 l_bind_list(1).bind_var_value := 1;
899 l_bind_list(1).bind_var_data_type := 'NUMBER' ;
900
901
902 l_bind_list(2).bind_var_name := ':REAL_RESOURCE_ID';
903 l_bind_list(2).bind_var_value := p_resource_id;
904 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
905
906
907 IF ( l_access in ('F', 'P')) THEN
908 IF l_bkr_filter = 'Y' THEN
909 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_prom || l_str_bkr;
910 ELSE
911 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_prom;
912 END IF;
913
914 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
915 ELSE
916 -- No count view when the security is enabled
917 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_view_name;
918
919 OPEN c_person;
920 FETCH c_person INTO l_person_id;
921 CLOSE c_person;
922
923 l_bind_list(3).bind_var_name := ':PERSON_ID' ;
924 l_bind_list(3).bind_var_value := l_person_id;
925 l_bind_list(3).bind_var_data_type := 'NUMBER' ;
926
927 IF l_bkr_filter = 'Y' THEN
928 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_and || l_security_where || l_str_prom || l_str_bkr;
929 ELSE
930 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_and || l_security_where || l_str_prom;
931 END IF;
932
933 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
934 END IF;
935 */
936 OPEN c_strategy_level;
937 FETCH c_strategy_level INTO l_strategy_level;
938 CLOSE c_strategy_level;
939
940 --begin bug#6717849 schekuri 31-Jul-2009
941 select count(1)
942 into l_level_count
943 from iex_lookups_v
944 where lookup_type='IEX_RUNNING_LEVEL'
945 and iex_utilities.validate_running_level(LOOKUP_CODE)='Y';
946
947 if l_level_count>1 then
948 open c_multi_level;
949 fetch c_multi_level into l_strategy_level;
950 close c_multi_level;
951 end if;
952 --end bug#6717849 schekuri 31-Jul-2009
953
954 IF l_strategy_level = 'ACCOUNT' THEN
955
956 l_ld_list(l_node_counter).NODE_LABEL := l_node_label;
957 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
958 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
959 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
960 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_refresh_view_name;
961
962 -- l_default_where := ' IEU_PARAM_PK_COL=''CUST_ACCOUNT_ID'' and '||attach_where_clause(p_resource_id); --bug#6717849 schekuri 31-Jul-2009
963 l_default_where := ' IEU_PARAM_PK_COL=''CUST_ACCOUNT_ID'' ' ||attach_where_clause(p_resource_id); -- bug 8537638 PNAVEENK 11-8-2009
964 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where;
965
966 IF (l_access = 'T' ) THEN
967 OPEN c_collector_id;
968 FETCH c_collector_id INTO l_collector_id;
969 CLOSE c_collector_id;
970
971 OPEN c_person;
972 FETCH c_person INTO l_person_id;
973 CLOSE c_person;
974
975 l_bind_list(1).bind_var_name := ':PERSON_ID' ;
976 l_bind_list(1).bind_var_value := l_person_id;
977 l_bind_list(1).bind_var_data_type := 'NUMBER' ;
978
979 -- Begin fix bug #5660900-12/16/2006-Use resource_id instead of collector_id because employee is assigned to more 2 or more collectors
980 -- l_bind_list(2).bind_var_name := ':COLLECTOR_ID' ;
981 -- l_bind_list(2).bind_var_value := l_collector_id;
982 -- l_bind_list(2).bind_var_data_type := 'NUMBER' ;
983
984 l_bind_list(2).bind_var_name := ':COLLECTOR_RESOURCE_ID' ;
985 l_bind_list(2).bind_var_value := p_resource_id;
986 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
987
988 -- End fix bug #5660900-12/16/2006-Use resource_id instead of collector_id because employee is assigned to more 2 or more collectors
989 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
990 ELSE -- bug 9453423 PNAVEENK
991 IF l_default_where IS NULL THEN
992 l_ld_list(l_node_counter).WHERE_CLAUSE := ' RESOURCE_ID = :RESOURCE_ID';
993
994 l_bind_list(1).bind_var_name := ':RESOURCE_ID';
995 l_bind_list(1).bind_var_value := 1;
996 l_bind_list(1).bind_var_data_type := 'NUMBER' ;
997
998 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
999 END IF;
1000 END IF;
1001
1002 ELSE /* IF l_strategy_level <> 'ACCOUNT' */
1003
1004 l_ld_list(l_node_counter).NODE_LABEL := l_node_label;
1005 l_ld_list(l_node_counter).VIEW_NAME := l_sel_enum_rec.work_q_view_for_primary_node;
1006 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
1007 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
1008
1009 l_ld_list(l_node_counter).WHERE_CLAUSE := 'RESOURCE_ID = :RESOURCE_ID AND :UWQ_STATUS = :UWQ_STATUS ';
1010
1011 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
1012 l_bind_list(1).bind_var_value := 'ALL';
1013 l_bind_list(1).bind_var_data_type := 'CHAR' ;
1014
1015 l_bind_list(2).bind_var_name := ':RESOURCE_ID';
1016 l_bind_list(2).bind_var_value := -1;
1017 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
1018
1019 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
1020 END IF;
1021 -- End bug 5874874 gnramasa 25-Apr-07
1022 l_ld_list(l_node_counter).MEDIA_TYPE_ID := '';
1023 l_ld_list(l_node_counter).NODE_TYPE := 0;
1024 l_ld_list(l_node_counter).HIDE_IF_EMPTY := '';
1025 l_ld_list(l_node_counter).NODE_DEPTH := 1;
1026
1027
1028 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
1029 iex_debug_pub.LogMessage('ENUMERATE_ACC_PROM_NODES: main final where clause: ' || l_ld_list(l_node_counter).WHERE_CLAUSE);
1030 END IF;
1031
1032
1033 -- !!
1034 -- !!!!!!!!!! BUILDING SUB NODES WHERE CLAUSE
1035 -- !!
1036
1037 l_node_counter := l_node_counter + 1;
1038
1039
1040 l_EnableNodes := NVL(FND_PROFILE.VALUE('IEX_ENABLE_UWQ_STATUS'),'N');
1041
1042 if (l_EnableNodes <> 'N') then
1043 l_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
1044 l_refresh_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
1045
1046 -- Start for bug 8537638 PNAVEENK 11-8-2009
1047 if l_ld_list(0).WHERE_CLAUSE is not null then
1048 l_temp_str := ' and ';
1049 else
1050 l_temp_str := ' ';
1051 end if;
1052
1053 FOR cur_rec IN c_del_new_nodes LOOP
1054 IF l_strategy_level = 'ACCOUNT' THEN
1055 IF (cur_rec.lookup_code = 'ACTIVE') THEN
1056 l_data_source := 'IEX_ACC_PRO_ACT_UWQ';
1057 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and active_promises is not null';
1058 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and NVL(active_promises,0) > 0 ';
1059 l_node_where := l_ld_list(0).WHERE_CLAUSE || l_temp_str || ' NVL(active_promises,0) > 0 ';
1060 ELSIF (cur_rec.lookup_code = 'PENDING') THEN
1061 l_data_source := 'IEX_ACC_PRO_PEND_UWQ';
1062 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and pending_promises is not null';
1063 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and NVL(pending_promises,0) > 0 ';
1064 l_node_where := l_ld_list(0).WHERE_CLAUSE || l_temp_str || ' NVL(pending_promises,0) > 0 ';
1065 ELSIF (cur_rec.lookup_code = 'COMPLETE') THEN
1066 l_data_source := 'IEX_ACC_PRO_COMP_UWQ';
1067 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and complete_promises is not null';
1068 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and NVL(complete_promises,0) > 0 ';
1069 l_node_where := l_ld_list(0).WHERE_CLAUSE || l_temp_str || ' NVL(complete_promises,0) > 0 ';
1070 END IF;
1071 -- end for bug 8537638
1072
1073 l_ld_list(l_node_counter).NODE_LABEL := cur_rec.meaning;
1074 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
1075 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
1076 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_refresh_view_name;
1077
1078
1079 l_ld_list(l_node_counter).WHERE_CLAUSE := l_node_where;
1080 l_ld_list(l_node_counter).BIND_VARS := l_ld_list(0).BIND_VARS;
1081 ELSE /* IF l_strategy_level <> 'ACCOUNT' */
1082
1083 l_ld_list(l_node_counter).NODE_LABEL := cur_rec.meaning;
1084 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
1085 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
1086 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
1087
1088 l_ld_list(l_node_counter).WHERE_CLAUSE := 'RESOURCE_ID = :RESOURCE_ID AND :UWQ_STATUS = :UWQ_STATUS ';
1089
1090 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
1091 l_bind_list(1).bind_var_value := 'ALL';
1092 l_bind_list(1).bind_var_data_type := 'CHAR' ;
1093
1094 l_bind_list(2).bind_var_name := ':RESOURCE_ID';
1095 l_bind_list(2).bind_var_value := -1;
1096 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
1097
1098 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
1099 END IF;
1100
1101 l_ld_list(l_node_counter).MEDIA_TYPE_ID := '';
1102 l_ld_list(l_node_counter).NODE_TYPE := 0;
1103 l_ld_list(l_node_counter).HIDE_IF_EMPTY := '';
1104 l_ld_list(l_node_counter).NODE_DEPTH := 2;
1105
1106 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
1107
1108 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
1109 iex_debug_pub.LogMessage('ENUMERATE_ACC_PROM_NODES: Subnode final where clause: ' || l_ld_list(l_node_counter).WHERE_CLAUSE);
1110 END IF;
1111
1112 l_node_counter := l_node_counter + 1;
1113 END LOOP;
1114
1115 END IF;
1116
1117
1118
1119 IEU_PUB.ADD_UWQ_NODE_DATA
1120 (P_RESOURCE_ID,
1121 P_SEL_ENUM_ID,
1122 l_ld_list
1123 );
1124
1125
1126 EXCEPTION
1127 WHEN OTHERS THEN
1128 if( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
1129 FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED, 'iex', 'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM );
1130 End if;
1131 RAISE;
1132
1133 END ENUMERATE_ACC_PROM_NODES;
1134
1135 PROCEDURE ENUMERATE_BILLTO_PROM_NODES
1136 (P_RESOURCE_ID IN NUMBER
1137 ,P_LANGUAGE IN VARCHAR2
1138 ,P_SOURCE_LANG IN VARCHAR2
1139 ,P_SEL_ENUM_ID IN NUMBER
1140 )
1141 AS
1142
1143 l_node_label VARCHAR2(200);
1144 l_ld_list IEU_PUB.EnumeratorDataRecordList;
1145
1146 l_node_counter NUMBER;
1147 l_bind_list IEU_PUB.BindVariableRecordList ;
1148 l_Access varchar2(10);
1149 l_Level varchar2(15);
1150 l_person_id NUMBER;
1151
1152
1153 CURSOR c_del_new_nodes is
1154 select lookup_code, meaning from fnd_lookup_values
1155 where lookup_type = 'IEX_UWQ_NODE_STATUS' and LANGUAGE = userenv('LANG');
1156
1157 CURSOR c_node_label(in_lookup_type VARCHAR2,in_lookup_code VARCHAR2) IS
1158 SELECT meaning
1159 FROM fnd_lookup_values
1160 WHERE lookup_type = in_lookup_type
1161 AND lookup_code = in_lookup_code
1162 AND LANGUAGE = userenv('LANG');
1163
1164 CURSOR c_sel_enum(in_sel_enum_id NUMBER) IS
1165 SELECT work_q_view_for_primary_node, work_q_label_lu_type, work_q_label_lu_code
1166 FROM ieu_uwq_sel_enumerators
1167 WHERE sel_enum_id = in_sel_enum_id;
1168
1169 l_sel_enum_rec c_sel_enum%ROWTYPE;
1170
1171 l_data_source VARCHAR2(1000);
1172 l_default_where VARCHAR2(1000);
1173 l_security_where VARCHAR2(2000);
1174 l_node_where VARCHAR2(2000);
1175 l_uwq_where VARCHAR2(1000);
1176
1177 type tbl_wclause is table of varchar2(500) index by binary_integer;
1178
1179 l_wclause tbl_wclause;
1180 l_str_bkr VARCHAR2(1000);
1181 l_view_name VARCHAR2(240);
1182 l_refresh_view_name VARCHAR2(240);
1183 --l_org_id NUMBER; -- commented for bug 8826561 PNAVEENK
1184 l_Complete_Days VARCHAR2(40);
1185 l_bkr_filter VARCHAR2(240);
1186 l_str1 VARCHAR2(2000);
1187 l_str_and VARCHAR2(100);
1188 l_str_prom VARCHAR2(1000);
1189 l_check NUMBER;
1190 l_EnableNodes varchar2(10);
1191 l_collector_id number;
1192 l_resource_id number;
1193
1194 CURSOR c_collector_id IS
1195 SELECT collector_id from AR_COLLECTORS where resource_id = p_resource_id
1196 and resource_type = 'RS_RESOURCE';
1197
1198 CURSOR c_person IS
1199 select source_id
1200 from jtf_rs_resource_extns
1201 where resource_id = p_resource_id;
1202
1203 CURSOR c_strategy_level IS
1204 SELECT PREFERENCE_VALUE
1205 FROM IEX_APP_PREFERENCES_B
1206 WHERE PREFERENCE_NAME = 'COLLECTIONS STRATEGY LEVEL'
1207 and org_id is null
1208 and enabled_flag='Y';
1209
1210 l_strategy_level VARCHAR2(30);
1211 l_temp_str varchar2(5); -- Added for bug 8537638 PNAVEENK 11-8-2009
1212 --begin bug#6717849 schekuri 31-Jul-2009
1213 l_level_count number;
1214 cursor c_multi_level
1215 is select lookup_code
1216 from iex_lookups_v
1217 where lookup_type='IEX_RUNNING_LEVEL'
1218 and lookup_code= 'BILL_TO'
1219 and iex_utilities.validate_running_level(LOOKUP_CODE)='Y';
1220 --end bug#6717849 schekuri 31-Jul-2009
1221
1222 BEGIN
1223
1224 SET_MO_GLOBAL;
1225
1226 l_Complete_Days := NVL(FND_PROFILE.VALUE('IEX_UWQ_COMPLETION_DAYS'), 30);
1227 l_bkr_filter := NVL(fnd_profile.value('IEX_BANKRUPTCY_FILTER'), 'Y');
1228 --l_org_id := TO_NUMBER(oe_profile.value('OE_ORGANIZATION_ID', fnd_profile.value('ORG_ID'))); -- commented for bug 8826561 PNAVEENK
1229 l_Access := NVL(FND_PROFILE.VALUE('IEX_CUST_ACCESS'), 'F');
1230 l_node_counter := 0;
1231
1232 OPEN c_sel_enum(p_sel_enum_id);
1233 FETCH c_sel_enum INTO l_sel_enum_rec;
1234 CLOSE c_sel_enum;
1235
1236 OPEN c_node_label(l_sel_enum_rec.work_q_label_lu_type, l_sel_enum_rec.work_q_label_lu_code);
1237 FETCH c_node_label INTO l_node_label;
1238 CLOSE c_node_label;
1239
1240 -- Start bug 5874874 gnramasa 25-Apr-07
1241 l_data_source := 'IEX_BILLTO_PRO_ALL_UWQ';
1242 l_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
1243 l_refresh_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
1244
1245 /*
1246 l_str_bkr := ' AND NUMBER_OF_BANKRUPTCIES = 0 ';
1247
1248
1249 IF l_Access = 'T' then
1250 SELECT count(*) INTO l_check FROM iex_assignments where
1251 alt_resource_id = p_RESOURCE_ID
1252 AND TRUNC(START_DATE) <= TRUNC(SYSDATE)
1253 AND TRUNC(NVL(END_DATE,SYSDATE)) >= TRUNC(SYSDATE)
1254 AND NVL(DELETED_FLAG,'N') = 'N';
1255 END IF;
1256
1257 IF (l_level = 'PARTY') then
1258 IF (l_check > 0 ) then
1259 l_str1 := ASSIGNMENTS_WHERE_CLAUSE('PARTY', l_sel_enum_rec.work_q_view_for_primary_node) || ' AND ' || RESOURCES_WHERE_CLAUSE('PARTY', l_sel_enum_rec.work_q_view_for_primary_node) || ' ) ';
1260 ELSE
1261 l_str1 := RESOURCES_WHERE_CLAUSE('PARTY', l_sel_enum_rec.work_q_view_for_primary_node);
1262 END IF;
1263 ELSIF (l_level = 'ACCOUNT') then
1264 IF (l_check > 0 ) then
1265 l_str1 := ASSIGNMENTS_WHERE_CLAUSE('ACCOUNT', l_sel_enum_rec.work_q_view_for_primary_node) || ' AND ' || RESOURCES_WHERE_CLAUSE('ACCOUNT', l_sel_enum_rec.work_q_view_for_primary_node) || ' ) ';
1266 ELSE
1267 l_str1 := RESOURCES_WHERE_CLAUSE('ACCOUNT', l_sel_enum_rec.work_q_view_for_primary_node);
1268 END IF;
1269 ELSE
1270 IF l_check > 0 then
1271 l_str1 := ASSIGNMENTS_WHERE_CLAUSE('BILLTO', l_sel_enum_rec.work_q_view_for_primary_node) || ' AND ' || RESOURCES_WHERE_CLAUSE('BILLTO', l_sel_enum_rec.work_q_view_for_primary_node) || ' ) ';
1272 ELSE
1273 l_str1 := RESOURCES_WHERE_CLAUSE('BILLTO', l_sel_enum_rec.work_q_view_for_primary_node);
1274 END IF;
1275 END IF;
1276
1277 l_security_where := l_str1;
1278
1279 l_default_where := ' ( RESOURCE_ID = :RESOURCE_ID OR' || ASSIGNMENTS_WHERE_CLAUSE('BILLTO', l_view_name) || ' ) ';
1280
1281
1282 l_ld_list(l_node_counter).NODE_LABEL := l_node_label;
1283 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
1284 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
1285 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
1286 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_refresh_view_name;
1287
1288 l_bind_list(1).bind_var_name := ':RESOURCE_ID';
1289 l_bind_list(1).bind_var_value := 1;
1290 l_bind_list(1).bind_var_data_type := 'NUMBER' ;
1291
1292 l_bind_list(2).bind_var_name := ':REAL_RESOURCE_ID';
1293 l_bind_list(2).bind_var_value := p_resource_id;
1294 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
1295
1296 IF ( l_access in ('F', 'P')) THEN
1297 IF l_bkr_filter = 'Y' THEN
1298 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_prom || l_str_bkr;
1299 ELSE
1300 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_prom;
1301 END IF;
1302
1303 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
1304 ELSE
1305
1306 -- No count view when the security is enabled
1307 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_view_name;
1308
1309 OPEN c_person;
1310 FETCH c_person INTO l_person_id;
1311 CLOSE c_person;
1312
1313 l_bind_list(3).bind_var_name := ':PERSON_ID' ;
1314 l_bind_list(3).bind_var_value := l_person_id;
1315 l_bind_list(3).bind_var_data_type := 'NUMBER' ;
1316
1317 IF l_bkr_filter = 'Y' THEN
1318 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_and || l_security_where || l_str_prom || l_str_bkr;
1319 ELSE
1320 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where || l_str_and || l_security_where || l_str_prom;
1321 END IF;
1322
1323 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
1324 END IF;
1325 */
1326
1327 OPEN c_strategy_level;
1328 FETCH c_strategy_level INTO l_strategy_level;
1329 CLOSE c_strategy_level;
1330
1331 --begin bug#6717849 schekuri 31-Jul-2009
1332 select count(1)
1333 into l_level_count
1334 from iex_lookups_v
1335 where lookup_type='IEX_RUNNING_LEVEL'
1336 and iex_utilities.validate_running_level(LOOKUP_CODE)='Y';
1337
1338 if l_level_count>1 then
1339 open c_multi_level;
1340 fetch c_multi_level into l_strategy_level;
1341 close c_multi_level;
1342 end if;
1343 --end bug#6717849 schekuri 31-Jul-2009
1344
1345 IF l_strategy_level = 'BILL_TO' THEN
1346 l_ld_list(l_node_counter).NODE_LABEL := l_node_label;
1347 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
1348 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
1349 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
1350 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_refresh_view_name;
1351
1352 -- l_default_where :=' IEU_PARAM_PK_COL=''CUSTOMER_SITE_USE_ID'' and '||attach_where_clause(p_resource_id); --bug#6717849 schekuri 31-Jul-2009
1353 l_default_where :=' IEU_PARAM_PK_COL=''CUSTOMER_SITE_USE_ID'' ' || attach_where_clause(p_resource_id); -- bug 8537638 PNAVEENK 11-8-2009
1354 l_ld_list(l_node_counter).WHERE_CLAUSE := l_default_where;
1355
1356 IF (l_access = 'T' ) THEN
1357 OPEN c_collector_id;
1358 FETCH c_collector_id INTO l_collector_id;
1359 CLOSE c_collector_id;
1360
1361 OPEN c_person;
1362 FETCH c_person INTO l_person_id;
1363 CLOSE c_person;
1364
1365 l_bind_list(1).bind_var_name := ':PERSON_ID' ;
1366 l_bind_list(1).bind_var_value := l_person_id;
1367 l_bind_list(1).bind_var_data_type := 'NUMBER' ;
1368
1369 l_bind_list(2).bind_var_name := ':COLLECTOR_RESOURCE_ID' ;
1370 l_bind_list(2).bind_var_value := p_resource_id;
1371 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
1372
1373 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
1374 ELSE -- bug 9453423 PNAVEENK
1375 IF l_default_where IS NULL THEN
1376 l_ld_list(l_node_counter).WHERE_CLAUSE := ' RESOURCE_ID = :RESOURCE_ID';
1377
1378 l_bind_list(1).bind_var_name := ':RESOURCE_ID';
1379 l_bind_list(1).bind_var_value := 1;
1380 l_bind_list(1).bind_var_data_type := 'NUMBER' ;
1381
1382 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
1383 END IF;
1384 END IF;
1385 ELSE /* IF l_strategy_level <> 'BILL_TO' */
1386
1387 l_ld_list(l_node_counter).NODE_LABEL := l_node_label;
1388 l_ld_list(l_node_counter).VIEW_NAME := l_sel_enum_rec.work_q_view_for_primary_node;
1389 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
1390 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
1391
1392 l_ld_list(l_node_counter).WHERE_CLAUSE := 'RESOURCE_ID = :RESOURCE_ID AND :UWQ_STATUS = :UWQ_STATUS ';
1393
1394 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
1395 l_bind_list(1).bind_var_value := 'ALL';
1396 l_bind_list(1).bind_var_data_type := 'CHAR' ;
1397
1398 l_bind_list(2).bind_var_name := ':RESOURCE_ID';
1399 l_bind_list(2).bind_var_value := -1;
1400 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
1401
1402 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
1403 END IF;
1404
1405
1406 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_view_name;
1407 -- End bug 5874874 gnramasa 25-Apr-07
1408
1409 l_ld_list(l_node_counter).MEDIA_TYPE_ID := '';
1410 l_ld_list(l_node_counter).NODE_TYPE := 0;
1411 l_ld_list(l_node_counter).HIDE_IF_EMPTY := '';
1412 l_ld_list(l_node_counter).NODE_DEPTH := 1;
1413
1414 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
1415 iex_debug_pub.LogMessage('ENUMERATE_BILLTO_PROM_NODES: main final where clause: ' || l_ld_list(l_node_counter).WHERE_CLAUSE);
1416 END IF;
1417
1418 -- !!
1419 -- !!!!!!!!!! BUILDING SUB NODES WHERE CLAUSE
1420 -- !!
1421
1422 l_node_counter := l_node_counter + 1;
1423
1424
1425 l_EnableNodes := NVL(FND_PROFILE.VALUE('IEX_ENABLE_UWQ_STATUS'),'N');
1426
1427 if (l_EnableNodes <> 'N') then
1428 l_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
1429 l_refresh_view_name := 'IEX_CU_PRO_ALL_UWQ_V';
1430
1431 -- Start for bug 8537638 PNAVEENK 31-8-2009
1432 if l_ld_list(0).WHERE_CLAUSE is not null then
1433 l_temp_str := ' and ';
1434 else
1435 l_temp_str := ' ';
1436 end if;
1437
1438 FOR cur_rec IN c_del_new_nodes LOOP
1439 IF l_strategy_level = 'BILL_TO' THEN
1440 IF (cur_rec.lookup_code = 'ACTIVE') THEN
1441 l_data_source := 'IEX_BILLTO_PRO_ACT_UWQ';
1442 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and active_promises is not null';
1443 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and NVL(active_promises,0) > 0 ';
1444 l_node_where := l_ld_list(0).WHERE_CLAUSE || l_temp_str || ' NVL(active_promises,0) > 0 ';
1445 ELSIF (cur_rec.lookup_code = 'PENDING') THEN
1446 l_data_source := 'IEX_BILLTO_PRO_PEND_UWQ';
1447 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and pending_promises is not null';
1448 -- l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and NVL(pending_promises,0) > 0 ';
1449 l_node_where := l_ld_list(0).WHERE_CLAUSE || l_temp_str || ' NVL(pending_promises,0) > 0 ';
1450 ELSIF (cur_rec.lookup_code = 'COMPLETE') THEN
1451 l_data_source := 'IEX_BILLTO_PRO_COMP_UWQ';
1452 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and complete_promises is not null';
1453 --l_node_where := l_ld_list(0).WHERE_CLAUSE || ' and NVL(complete_promises,0) > 0 ';
1454 l_node_where := l_ld_list(0).WHERE_CLAUSE || l_temp_str || ' NVL(complete_promises,0) > 0 ';
1455 END IF;
1456 -- end for bug 8537638
1457
1458 l_ld_list(l_node_counter).NODE_LABEL := cur_rec.meaning;
1459 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
1460 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
1461 l_ld_list(l_node_counter).REFRESH_VIEW_NAME := l_refresh_view_name;
1462
1463
1464 l_ld_list(l_node_counter).WHERE_CLAUSE := l_node_where;
1465 l_ld_list(l_node_counter).BIND_VARS := l_ld_list(0).BIND_VARS;
1466
1467 ELSE /* IF l_strategy_level <> 'BILL_TO' */
1468
1469 l_ld_list(l_node_counter).NODE_LABEL := cur_rec.meaning;
1470 l_ld_list(l_node_counter).VIEW_NAME := l_view_name;
1471 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
1472 l_ld_list(l_node_counter).DATA_SOURCE := l_data_source;
1473
1474 l_ld_list(l_node_counter).WHERE_CLAUSE := 'RESOURCE_ID = :RESOURCE_ID AND :UWQ_STATUS = :UWQ_STATUS ';
1475
1476 l_bind_list(1).bind_var_name := ':UWQ_STATUS' ;
1477 l_bind_list(1).bind_var_value := 'ALL';
1478 l_bind_list(1).bind_var_data_type := 'CHAR' ;
1479
1480 l_bind_list(2).bind_var_name := ':RESOURCE_ID';
1481 l_bind_list(2).bind_var_value := -1;
1482 l_bind_list(2).bind_var_data_type := 'NUMBER' ;
1483
1484 l_ld_list(l_node_counter).BIND_VARS := IEU_PUB.SET_BIND_VAR_DATA(l_bind_list) ;
1485 END IF;
1486
1487 l_ld_list(l_node_counter).MEDIA_TYPE_ID := '';
1488 l_ld_list(l_node_counter).NODE_TYPE := 0;
1489 l_ld_list(l_node_counter).HIDE_IF_EMPTY := '';
1490 l_ld_list(l_node_counter).NODE_DEPTH := 2;
1491
1492 l_ld_list(l_node_counter).RES_CAT_ENUM_FLAG := 'N';
1493
1494
1495 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
1496 iex_debug_pub.LogMessage('ENUMERATE_BILLTO_PROM_NODES: Subnode final where clause: ' || l_ld_list(l_node_counter).WHERE_CLAUSE);
1497 END IF;
1498
1499 l_node_counter := l_node_counter + 1;
1500 END LOOP;
1501
1502 END IF;
1503
1504 IEU_PUB.ADD_UWQ_NODE_DATA
1505 (P_RESOURCE_ID,
1506 P_SEL_ENUM_ID,
1507 l_ld_list
1508 );
1509
1510
1511 EXCEPTION
1512 WHEN OTHERS THEN
1513 if( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) then
1514 FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED, 'iex', 'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM );
1515 End if;
1516 RAISE;
1517
1518 END ENUMERATE_BILLTO_PROM_NODES;
1519
1520
1521 FUNCTION ATTACH_WHERE_CLAUSE(P_RESOURCE_ID NUMBER) return varchar2 IS
1522 l_check number := 0;
1523 l_collector_id number;
1524 l_security_where varchar2(2000);
1525
1526 l_Access varchar2(1) := NVL(FND_PROFILE.VALUE('IEX_CUST_ACCESS'), 'F');
1527 l_bkr_filter varchar2(1) := NVL(fnd_profile.value('IEX_BANKRUPTCY_FILTER'), 'Y');
1528 l_person_id number;
1529
1530 l_bind_list IEU_PUB.BindVariableRecordList ;
1531 l_ld_list IEU_PUB.EnumeratorDataRecordList;
1532 l_group_check number := 0;
1533
1534 BEGIN
1535
1536 IF (l_Access = 'T') THEN
1537 SELECT count(*) INTO l_check FROM iex_assignments where
1538 alt_resource_id = p_RESOURCE_ID
1539 AND TRUNC(START_DATE) <= TRUNC(SYSDATE)
1540 AND TRUNC(NVL(END_DATE,SYSDATE)) >= TRUNC(SYSDATE)
1541 AND NVL(DELETED_FLAG,'N') = 'N';
1542
1543 select count(1) into l_group_check
1544 from ar_collectors where status='A' and
1545 nvl(inactive_date,sysdate)>=sysdate and resource_type='RS_GROUP';
1546
1547
1548 if l_check>0 or l_group_check>0 then
1549 l_security_where := ' :person_id = :person_id and collector_resource_id in (select resource_id from ar_collectors where resource_type = ''RS_RESOURCE'' and resource_id = :COLLECTOR_RESOURCE_ID ';
1550 else
1551 l_security_where := ' :person_id = :person_id and collector_resource_id = :COLLECTOR_RESOURCE_ID ';
1552 end if;
1553
1554 if l_check>0 then
1555 l_security_where := l_security_where ||
1556 ' union all SELECT ac.resource_id FROM iex_assignments iea,ar_collectors ac where '||
1557 ' iea.alt_employee_id = :PERSON_ID '||
1558 ' AND TRUNC(iea.START_DATE) <= TRUNC(SYSDATE) '||
1559 ' AND TRUNC(NVL(iea.END_DATE,SYSDATE)) >= TRUNC(SYSDATE) '||
1560 ' AND NVL(iea.DELETED_FLAG,''N'') = ''N'' '||
1561 ' and ac.resource_id=iea.resource_id '||
1562 ' and ac.resource_type in (''RS_RESOURCE'',''RS_GROUP'') ';
1563 end if;
1564
1565 if l_group_check>0 then
1566 l_security_where := l_security_where ||
1567 ' union all SELECT ac.resource_ID '||
1568 ' FROM ar_collectors ac , jtf_rs_group_members jtgrp '||
1569 ' WHERE ac.resource_ID = jtgrp.group_id '||
1570 ' AND ac.resource_type = ''RS_GROUP'''||
1571 ' AND NVL(jtgrp.delete_flag,''N'') = ''N'''||
1572 ' AND jtgrp.resource_ID = :COLLECTOR_RESOURCE_ID ';
1573 end if;
1574
1575 if l_check>0 or l_group_check>0 then
1576 l_security_where := l_security_where || ' ) ';
1577 end if;
1578
1579
1580 IF (l_bkr_filter = 'Y') THEN
1581 l_security_where := l_security_where || ' AND NUMBER_OF_BANKRUPTCIES = 0 ';
1582 END IF;
1583 ELSE --full mode
1584 IF (l_bkr_filter = 'Y') THEN
1585 l_security_where := l_security_where || ' NUMBER_OF_BANKRUPTCIES = 0 ';
1586 END IF;
1587 END IF;
1588
1589
1590
1591 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
1592 iex_debug_pub.LogMessage('RESOURCES_WHERE_CLAUSE: final where clause: ' || l_security_where );
1593 END IF;
1594 -- Start for bug 8538637 PNAVEENK 11-8-2009
1595 if l_security_where is not null then
1596 l_security_where := 'and ' || l_security_where;
1597 return l_security_where;
1598 else
1599 return null;
1600 end if;
1601 -- end for bug 8538637
1602 EXCEPTION WHEN OTHERS THEN
1603 IF (FND_LOG.LEVEL_EVENT >= PG_DEBUG) THEN
1604 iex_debug_pub.LogMessage('Error occurred while constructing the where clause ' || sqlerrm);
1605 END IF;
1606
1607 return null;
1608
1609 END ATTACH_WHERE_CLAUSE;
1610
1611 -- PL/SQL Block
1612 BEGIN
1613 PG_DEBUG := TO_NUMBER(NVL(FND_PROFILE.value('IEX_DEBUG_LEVEL'), '20'));
1614 END IEX_UWQ_PROM_ENUMS_PVT;