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