[Home] [Help]
PACKAGE BODY: APPS.JTF_TERRITORY_GET_PUB
Source
1 PACKAGE BODY JTF_TERRITORY_GET_PUB AS
2 /* $Header: jtfptrgb.pls 120.3.12010000.4 2009/04/28 11:36:55 ppillai ship $ */
3 ---------------------------------------------------------
4 -- Start of Comments
5 -- ---------------------------------------------------
6 -- PACKAGE NAME: JTF_TERRITORY_GET_PUB
7 -- ---------------------------------------------------
8 -- PURPOSE
9 -- Joint task force core territory manager private api's.
10 -- This package is a public API for retrieving
11 -- related information from JTF tables.
12 -- It contains specification for pl/sql records and tables
13 -- and the Public territory related API's.
14 --
15 -- Procedures:
16 --
17 --
18 -- NOTES
19 -- This package is available for private use only
20 --
21 -- HISTORY
22 -- 07/15/99 JDOCHERT Created
23 -- 12/22/99 VNEDUNGA Making changes to confirm
24 -- to JTF_TERR_RSC
25 -- 05/03/00 VNEDUNGA Fxing get_esclation and get_Parent
26 -- API's
27 -- 05/03/01 ARPATEL Specify table entries for
28 -- x_QualifyingRsc_out_tbl in proc
29 -- Get_Escalation_TerrMembers
30 -- 07/16/01 ARPATEL Changed to a 'for loop' construct in Get_Escalation_TerrMembers
31 -- 08/22/01 ARPATEL Added JTF_TERR_ALL start/end date checks in cursor C_GetTerrRsc
32 --
33 -- End of Comments
34 G_FILE_NAME CONSTANT VARCHAR2(12) := 'jtfptrgb.pls';
35
36 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
37 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
38
39
40 PROCEDURE gen_init_sql ( x_select_clause OUT NOCOPY VARCHAR2
41 , x_from_clause OUT NOCOPY VARCHAR2
42 , x_where_clause OUT NOCOPY VARCHAR2 )
43 IS
44 l_proc_name VARCHAR2(30) := 'Gen_Init_SQL';
45
46 BEGIN
47
48 /* Debug Message */
49
50 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
51 THEN
52 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
53 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
54 FND_MSG_PUB.Add;
55 END IF;
56
57
58 /* build initial part of select clause */
59 x_select_clause := 'SELECT ' ||
60 'JTOV.TERR_ID, ' ||
61 'JTOV.NAME, ' ||
62 'JTOV.TERR_USAGE, ' ||
63 'JTOV.START_DATE_ACTIVE, ' ||
64 'JTOV.END_DATE_ACTIVE, ' ||
65 'JTOV.TEMPLATE_FLAG, ' ||
66 'JTOV.ESCALATION_TERRITORY_FLAG, ' ||
67 'JTOV.PARENT_TERR_NAME, ' ||
68 'JTOV.TERR_TYPE_NAME ';
69
70 /* build initial part of FROM clause
71 ** (smallest tables first from right-hand side)
72 */
73 x_from_clause := 'JTF_TERR_USGS JTUA, ' ||
74 'JTF_TERR_OVERVIEW_V JTOV, ' ||
75 'JTF_SOURCES JSE ';
76
77 /* build WHERE clause */
78 x_where_clause := ' WHERE JTUA.TERR_ID = JTOV.TERR_ID ' ||
79 ' AND JTUA.SOURCE_ID = JSE.SOURCE_ID ';
80
81 /* Debug Message */
82
83 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
84 THEN
85 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
86 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
87 FND_MSG_PUB.Add;
88 END IF;
89
90
91 END gen_init_sql;
92
93
94 PROCEDURE define_dsql_columns ( p_dsql_csr IN NUMBER,
95 p_terr_header_rec IN Terr_Header_Rec_Type )
96 IS
97 l_proc_name VARCHAR2(30) := 'Define_DSQL_Columns';
98
99 BEGIN
100
101 /* Debug Message */
102 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
103 THEN
104 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
105 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
106 FND_MSG_PUB.Add;
107 END IF;
108
109 /* define all columns */
110 dbms_sql.define_column(p_dsql_csr, 1, p_terr_header_rec.TERR_ID);
111 dbms_sql.define_column(p_dsql_csr, 2, p_terr_header_rec.TERR_NAME, 2000);
112 dbms_sql.define_column(p_dsql_csr, 3, p_terr_header_rec.TERR_USAGE, 30);
113 dbms_sql.define_column(p_dsql_csr, 4, p_terr_header_rec.START_DATE_ACTIVE);
114 dbms_sql.define_column(p_dsql_csr, 5, p_terr_header_rec.END_DATE_ACTIVE);
115 dbms_sql.define_column(p_dsql_csr, 6, p_terr_header_rec.TEMPLATE_FLAG, 1);
116 dbms_sql.define_column(p_dsql_csr, 7, p_terr_header_rec.ESCALATION_TERRITORY_FLAG, 1);
117 dbms_sql.define_column(p_dsql_csr, 8, p_terr_header_rec.PARENT_TERR_NAME, 2000);
118 dbms_sql.define_column(p_dsql_csr, 9, p_terr_header_rec.TERR_TYPE_NAME, 60);
119
120 /* Debug Message */
121 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
122 THEN
123 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
124 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
125 FND_MSG_PUB.Add;
126 END IF;
127
128 END define_dsql_columns;
129
130
131 PROCEDURE get_dsql_column_values ( p_dsql_csr IN NUMBER,
132 x_terr_header_rec OUT NOCOPY Terr_Header_Rec_Type )
133 IS
134 l_proc_name VARCHAR2(30) := 'Get_DSQL_Column_Values';
135
136 BEGIN
137
138 /* Debug Message */
139 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
140 THEN
141 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
142 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
143 FND_MSG_PUB.Add;
144 END IF;
145
146 /* get all columns */
147 dbms_sql.column_value(p_dsql_csr, 1, x_terr_header_rec.TERR_ID);
148 dbms_sql.column_value(p_dsql_csr, 2, x_terr_header_rec.TERR_NAME);
149 dbms_sql.column_value(p_dsql_csr, 3, x_terr_header_rec.TERR_USAGE);
150 dbms_sql.column_value(p_dsql_csr, 4, x_terr_header_rec.START_DATE_ACTIVE);
151 dbms_sql.column_value(p_dsql_csr, 5, x_terr_header_rec.END_DATE_ACTIVE);
152 dbms_sql.column_value(p_dsql_csr, 6, x_terr_header_rec.TEMPLATE_FLAG);
153 dbms_sql.column_value(p_dsql_csr, 7, x_terr_header_rec.ESCALATION_TERRITORY_FLAG);
154 dbms_sql.column_value(p_dsql_csr, 8, x_terr_header_rec.PARENT_TERR_NAME);
155 dbms_sql.column_value(p_dsql_csr, 9, x_terr_header_rec.TERR_TYPE_NAME);
156
157
158 /* Debug Message */
159 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
160 THEN
161 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
162 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
163 FND_MSG_PUB.Add;
164 END IF;
165
166 END get_dsql_column_values;
167
168
169
170 PROCEDURE gen_where_clause (
171 p_dsql_csr IN NUMBER,
172 p_Terr_Rec IN Terr_Rec_Type,
173 x_where_clause IN OUT NOCOPY VARCHAR2,
174 x_use_flag IN OUT NOCOPY VARCHAR2
175 )
176 IS
177
178 l_proc_name VARCHAR2(30) := 'Gen_Where: Terr_Rec_Type';
179
180 /* cursors to check if wildcard values '%' and '_' have been passed as item values */
181 CURSOR c_chk_str1 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '%', 1, 1) FROM DUAL;
182 CURSOR c_chk_str2 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '_', 1, 1) FROM DUAL;
183
184 /* return values from cursors */
185 str_csr1 NUMBER;
186 str_csr2 NUMBER;
187
188 l_operator VARCHAR2(10);
189 l_where_clause VARCHAR2(2000);
190
191 BEGIN
192
193
194 /* Debug Message */
195 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
196 THEN
197 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
198 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
199 FND_MSG_PUB.Add;
200 END IF;
201
202 --dbms_output.put_line('Value of p_TERR_rec.TERR_ID = '|| p_TERR_rec.terr_id);
203
204 /* Hint: more search criteria can be added here to
205 ** dynamically construct where clause at run time
206 */
207 IF ( (p_TERR_rec.TERR_ID IS NOT NULL) AND
208 (p_TERR_rec.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
209
210 x_use_flag := 'Y';
211 l_where_clause := l_where_clause || 'AND JTOV.TERR_ID = :p_TERR_1 ';
212
213 END IF;
214
215 IF ( (p_TERR_rec.NAME IS NOT NULL) AND
216 (p_TERR_rec.NAME <> FND_API.G_MISS_CHAR) ) THEN
217
218 --dbms_output.put_line('[2] Value of p_TERR_rec.NAME='|| p_TERR_rec.NAME);
219
220 -- check if item value contains '%' wildcard
221 OPEN c_chk_str1 ( p_TERR_rec.NAME);
222 FETCH c_chk_str1 INTO str_csr1;
223 CLOSE c_chk_str1;
224
225 IF ( str_csr1 <> 0 ) THEN
226 l_operator := 'LIKE';
227 ELSE
228
229 -- check if item value contains '_' wildcard
230 OPEN c_chk_str2 ( p_TERR_rec.NAME);
231 FETCH c_chk_str2 INTO str_csr2;
232 CLOSE c_chk_str2;
233
234 IF ( str_csr2 <> 0 ) THEN
235 l_operator := 'LIKE';
236 ELSE
237 l_operator := '=';
238 END IF;
239
240 END IF;
241
242 x_use_flag := 'Y';
243 l_where_clause := l_where_clause || 'AND JTOV.NAME ' || l_operator || ' :p_TERR_12 ';
244
245 END IF;
246
247
248 IF ( (p_TERR_rec.START_DATE_ACTIVE IS NOT NULL) AND
249 (p_TERR_rec.START_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
250
251 -- check if item value contains '%' wildcard
252 OPEN c_chk_str1 ( p_TERR_rec.START_DATE_ACTIVE);
253 FETCH c_chk_str1 INTO str_csr1;
254 CLOSE c_chk_str1;
255
256 IF ( str_csr1 <> 0 ) THEN
257 l_operator := 'LIKE';
258 ELSE
259
260 -- check if item value contains '_' wildcard
261 OPEN c_chk_str2 ( p_TERR_rec.START_DATE_ACTIVE);
262 FETCH c_chk_str2 INTO str_csr2;
263 CLOSE c_chk_str2;
264
265 IF ( str_csr2 <> 0 ) THEN
266 l_operator := 'LIKE';
267 ELSE
268 l_operator := '=';
269 END IF;
270
271 END IF;
272
273 x_use_flag := 'Y';
274 l_where_clause := l_where_clause || 'AND JTOV.START_DATE_ACTIVE ' ||
275 l_operator || ' :p_TERR_14 ';
276
277 END IF;
278
279 IF ( (p_TERR_rec.END_DATE_ACTIVE IS NOT NULL) AND
280 (p_TERR_rec.END_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
281
282 -- check if item value contains '%' wildcard
283 OPEN c_chk_str1 ( p_TERR_rec.END_DATE_ACTIVE);
284 FETCH c_chk_str1 INTO str_csr1;
285 CLOSE c_chk_str1;
286
287 IF ( str_csr1 <> 0 ) THEN
288 l_operator := 'LIKE';
289 ELSE
290
291 -- check if item value contains '_' wildcard
292 OPEN c_chk_str2 ( p_TERR_rec.END_DATE_ACTIVE);
293 FETCH c_chk_str2 INTO str_csr2;
294 CLOSE c_chk_str2;
295
296 IF ( str_csr2 <> 0 ) THEN
297 l_operator := 'LIKE';
298 ELSE
299 l_operator := '=';
300 END IF;
301 END IF;
302
303 x_use_flag := 'Y';
304 l_where_clause := l_where_clause || 'AND JTOV.END_DATE_ACTIVE ' ||
305 l_operator || ' :p_TERR_15 ';
306
307 END IF;
308
309
310 IF ( (p_TERR_rec.PARENT_TERRITORY_ID IS NOT NULL) AND
311 (p_TERR_rec.PARENT_TERRITORY_ID <> FND_API.G_MISS_NUM) ) THEN
312
313 x_use_flag := 'Y';
314 l_where_clause := l_where_clause || 'AND JTOV.PARENT_TERRITORY_ID = :p_TERR_17 ';
315
316 END IF;
317
318 IF ( (p_TERR_rec.TERRITORY_TYPE_ID IS NOT NULL) AND
319 (p_TERR_rec.TERRITORY_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
320
321 x_use_flag := 'Y';
322 l_where_clause := l_where_clause || 'AND JTOV.TERRITORY_TYPE_ID = :p_TERR_18 ';
323
324 END IF;
325
326 IF ( (p_TERR_rec.TEMPLATE_TERRITORY_ID IS NOT NULL) AND
327 (p_TERR_rec.TEMPLATE_TERRITORY_ID <> FND_API.G_MISS_NUM) ) THEN
328
329 x_use_flag := 'Y';
330 l_where_clause := l_where_clause || 'AND JTOV.TEMPLATE_TERRITORY_ID = :p_TERR_19 ';
331
332 END IF;
333
334 IF ( (p_TERR_rec.TEMPLATE_FLAG IS NOT NULL) AND
335 (p_TERR_rec.TEMPLATE_FLAG <> FND_API.G_MISS_CHAR) ) THEN
336
337 x_use_flag := 'Y';
338 l_where_clause := l_where_clause || 'AND JTOV.TEMPLATE_FLAG ' ||
339 l_operator || ' :p_TERR_20 ';
340
341 END IF;
342
343 IF ( (p_TERR_rec.ESCALATION_TERRITORY_ID IS NOT NULL) AND
344 (p_TERR_rec.ESCALATION_TERRITORY_ID <> FND_API.G_MISS_NUM) ) THEN
345
346 x_use_flag := 'Y';
347 l_where_clause := l_where_clause || 'AND JTOV.ESCALATION_TERRITORY_ID = :p_TERR_21 ';
348
349 END IF;
350
351 IF ( (p_TERR_rec.ESCALATION_TERRITORY_FLAG IS NOT NULL) AND
352 (p_TERR_rec.ESCALATION_TERRITORY_FLAG <> FND_API.G_MISS_CHAR) ) THEN
353
354 x_use_flag := 'Y';
355 l_where_clause := l_where_clause || 'AND JTOV.ESCALATION_TERRITORY_FLAG ' ||
356 l_operator || ' :p_TERR_22 ';
357
358 END IF;
359
360 IF ( (p_TERR_rec.OVERLAP_ALLOWED_FLAG IS NOT NULL) AND
361 (p_TERR_rec.OVERLAP_ALLOWED_FLAG <> FND_API.G_MISS_CHAR) ) THEN
362
363 x_use_flag := 'Y';
364 l_where_clause := l_where_clause || 'AND JTOV.OVERLAP_ALLOWED_FLAG ' ||
365 l_operator || ' :p_TERR_23 ';
366
367 END IF;
368
369 IF ( (p_TERR_rec.RANK IS NOT NULL) AND
370 (p_TERR_rec.RANK <> FND_API.G_MISS_NUM) ) THEN
371
372 x_use_flag := 'Y';
373 l_where_clause := l_where_clause || 'AND JTOV.RANK = :p_TERR_24 ';
374
375 END IF;
376
377 IF ( (p_TERR_rec.DESCRIPTION IS NOT NULL) AND
378 (p_TERR_rec.DESCRIPTION <> FND_API.G_MISS_CHAR) ) THEN
379
380 -- check if item value contains '%' wildcard
381 OPEN c_chk_str1 ( p_TERR_rec.DESCRIPTION);
382 FETCH c_chk_str1 INTO str_csr1;
383 CLOSE c_chk_str1;
384
385 IF ( str_csr1 <> 0 ) THEN
386 l_operator := 'LIKE';
387 ELSE
388
389 -- check if item value contains '_' wildcard
390 OPEN c_chk_str2 ( p_TERR_rec.DESCRIPTION);
391 FETCH c_chk_str2 INTO str_csr2;
392 CLOSE c_chk_str2;
393
394 IF ( str_csr2 <> 0 ) THEN
395 l_operator := 'LIKE';
396 ELSE
397 l_operator := '=';
398 END IF;
399
400 END IF;
401
402 x_use_flag := 'Y';
403 l_where_clause := l_where_clause || 'AND JTOV.DESCRIPTION ' ||
404 l_operator || ' :p_TERR_25 ';
405
406 END IF;
407
408 IF ( (p_TERR_rec.PARENT_TERR_NAME IS NOT NULL) AND
409 (p_TERR_rec.PARENT_TERR_NAME <> FND_API.G_MISS_CHAR) ) THEN
410
411 -- check if item value contains '%' wildcard
412 OPEN c_chk_str1 ( p_TERR_rec.PARENT_TERR_NAME);
413 FETCH c_chk_str1 INTO str_csr1;
414 CLOSE c_chk_str1;
415
416 IF ( str_csr1 <> 0 ) THEN
417 l_operator := 'LIKE';
418 ELSE
419
420 -- check if item value contains '_' wildcard
421 OPEN c_chk_str2 ( p_TERR_rec.PARENT_TERR_NAME);
422 FETCH c_chk_str2 INTO str_csr2;
423 CLOSE c_chk_str2;
424
425 IF ( str_csr2 <> 0 ) THEN
426 l_operator := 'LIKE';
427 ELSE
428 l_operator := '=';
429 END IF;
430
431 END IF;
432
433
434 x_use_flag := 'Y';
435 l_where_clause := l_where_clause || 'AND JTOV.PARENT_TERR_NAME ' ||
436 l_operator || ' :p_TERR_26 ';
437
438 END IF;
439
440 IF ( (p_TERR_rec.ESCALATION_TERR_NAME IS NOT NULL) AND
441 (p_TERR_rec.ESCALATION_TERR_NAME <> FND_API.G_MISS_CHAR) ) THEN
442
443 -- check if item value contains '%' wildcard
444 OPEN c_chk_str1 ( p_TERR_rec.ESCALATION_TERR_NAME);
445 FETCH c_chk_str1 INTO str_csr1;
446 CLOSE c_chk_str1;
447
448 IF ( str_csr1 <> 0 ) THEN
449 l_operator := 'LIKE';
450 ELSE
451
452 -- check if item value contains '_' wildcard
453 OPEN c_chk_str2 ( p_TERR_rec.ESCALATION_TERR_NAME);
454 FETCH c_chk_str2 INTO str_csr2;
455 CLOSE c_chk_str2;
456
457 IF ( str_csr2 <> 0 ) THEN
458 l_operator := 'LIKE';
459 ELSE
460 l_operator := '=';
461 END IF;
462 END IF;
463
464 x_use_flag := 'Y';
465 l_where_clause := l_where_clause || 'AND JTOV.ESCALATION_TERR_NAME ' ||
466 l_operator || ' :p_TERR_27 ';
467
468 END IF;
469
470 IF ( (p_TERR_rec.TEMPLATE_TERR_NAME IS NOT NULL) AND
471 (p_TERR_rec.TEMPLATE_TERR_NAME <> FND_API.G_MISS_CHAR) ) THEN
472
473 -- check if item value contains '%' wildcard
474 OPEN c_chk_str1 ( p_TERR_rec.TEMPLATE_TERR_NAME);
475 FETCH c_chk_str1 INTO str_csr1;
476 CLOSE c_chk_str1;
477
478 IF ( str_csr1 <> 0 ) THEN
479 l_operator := 'LIKE';
480 ELSE
481
482 -- check if item value contains '_' wildcard
483 OPEN c_chk_str2 ( p_TERR_rec.TEMPLATE_TERR_NAME);
484 FETCH c_chk_str2 INTO str_csr2;
485 CLOSE c_chk_str2;
486
487 IF ( str_csr2 <> 0 ) THEN
488 l_operator := 'LIKE';
489 ELSE
490 l_operator := '=';
491 END IF;
492 END IF;
493
494 x_use_flag := 'Y';
495 l_where_clause := l_where_clause || 'AND JTOV.TEMPLATE_TERR_NAME ' ||
496 l_operator || ' :p_TERR_28 ';
497
498 END IF;
499
500 x_where_clause := x_where_clause || l_where_clause;
501
502 /* Debug Message */
503 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
504 THEN
505 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
506 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
507 FND_MSG_PUB.Add;
508 END IF;
509
510 END gen_where_clause;
511
512
513 PROCEDURE gen_bind (
514 p_dsql_csr IN OUT NOCOPY NUMBER,
515 p_Terr_Rec IN Terr_Rec_Type
516 )
517 IS
518 l_proc_name VARCHAR2(30) := 'Gen_Bind: Terr_Rec_Type';
519 BEGIN
520
521 /* Debug Message */
522 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
523 THEN
524 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
525 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
526 FND_MSG_PUB.Add;
527 END IF;
528
529
530 /* Hint: more search criteria can be added here to
531 ** dynamically construct binds at run time
532 */
533 IF ( (p_TERR_rec.TERR_ID IS NOT NULL) AND
534 (p_TERR_rec.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
535
536 --dbms_output.put_line('Binding p_TERR_rec.TERR_ID to :p_Terr_1');
537
538 -- bind the input variables
539 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_1', p_TERR_rec.TERR_ID);
540
541 END IF;
542
543 IF ( (p_TERR_rec.NAME IS NOT NULL) AND
544 (p_TERR_rec.NAME <> FND_API.G_MISS_CHAR) ) THEN
545
546 -- bind the input variables
547 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_12', p_TERR_rec.NAME);
548
549 END IF;
550
551 IF ( (p_TERR_rec.START_DATE_ACTIVE IS NOT NULL) AND
552 (p_TERR_rec.START_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
553
554 -- bind the input variables
555 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_14', p_TERR_rec.START_DATE_ACTIVE);
556
557 END IF;
558
559 IF ( (p_TERR_rec.END_DATE_ACTIVE IS NOT NULL) AND
560 (p_TERR_rec.END_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
561
562 -- bind the input variables
563 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_15', p_TERR_rec.END_DATE_ACTIVE);
564
565 END IF;
566
567
568 IF ( (p_TERR_rec.PARENT_TERRITORY_ID IS NOT NULL) AND
569 (p_TERR_rec.PARENT_TERRITORY_ID <> FND_API.G_MISS_NUM) ) THEN
570
571 -- bind the input variables
572 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_17', p_TERR_rec.PARENT_TERRITORY_ID);
573
574 END IF;
575
576 IF ( (p_TERR_rec.TERRITORY_TYPE_ID IS NOT NULL) AND
577 (p_TERR_rec.TERRITORY_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
578
579 -- bind the input variables
580 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_18', p_TERR_rec.TERRITORY_TYPE_ID);
581
582 END IF;
583
584 IF ( (p_TERR_rec.TEMPLATE_TERRITORY_ID IS NOT NULL) AND
585 (p_TERR_rec.TEMPLATE_TERRITORY_ID <> FND_API.G_MISS_NUM) ) THEN
586
587 -- bind the input variables
588 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_19', p_TERR_rec.TEMPLATE_TERRITORY_ID);
589
590 END IF;
591
592 IF ( (p_TERR_rec.TEMPLATE_FLAG IS NOT NULL) AND
593 (p_TERR_rec.TEMPLATE_FLAG <> FND_API.G_MISS_CHAR) ) THEN
594
595 -- bind the input variables
596 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_20', p_TERR_rec.TEMPLATE_FLAG);
597
598 END IF;
599
600 IF ( (p_TERR_rec.ESCALATION_TERRITORY_ID IS NOT NULL) AND
601 (p_TERR_rec.ESCALATION_TERRITORY_ID <> FND_API.G_MISS_NUM) ) THEN
602
603 -- bind the input variables
604 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_21', p_TERR_rec.ESCALATION_TERRITORY_ID);
605
606 END IF;
607
608 IF ( (p_TERR_rec.ESCALATION_TERRITORY_FLAG IS NOT NULL) AND
609 (p_TERR_rec.ESCALATION_TERRITORY_FLAG <> FND_API.G_MISS_CHAR) ) THEN
610
611 -- bind the input variables
612 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_22', p_TERR_rec.ESCALATION_TERRITORY_FLAG);
613
614 END IF;
615
616 IF ( (p_TERR_rec.OVERLAP_ALLOWED_FLAG IS NOT NULL) AND
617 (p_TERR_rec.OVERLAP_ALLOWED_FLAG <> FND_API.G_MISS_CHAR) ) THEN
618
619 -- bind the input variables
620 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_23', p_TERR_rec.OVERLAP_ALLOWED_FLAG);
621
622 END IF;
623
624 IF ( (p_TERR_rec.RANK IS NOT NULL) AND
625 (p_TERR_rec.RANK <> FND_API.G_MISS_NUM) ) THEN
626
627 -- bind the input variables
628 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_24', p_TERR_rec.RANK);
629
630 END IF;
631
632 IF ( (p_TERR_rec.DESCRIPTION IS NOT NULL) AND
633 (p_TERR_rec.DESCRIPTION <> FND_API.G_MISS_CHAR) ) THEN
634
635 -- bind the input variables
636 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_25', p_TERR_rec.DESCRIPTION);
637
638 END IF;
639
640 IF ( (p_TERR_rec.PARENT_TERR_NAME IS NOT NULL) AND
641 (p_TERR_rec.PARENT_TERR_NAME <> FND_API.G_MISS_CHAR) ) THEN
642
643 -- bind the input variables
644 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_26', p_TERR_rec.PARENT_TERR_NAME);
645
646 END IF;
647
648 IF ( (p_TERR_rec.ESCALATION_TERR_NAME IS NOT NULL) AND
649 (p_TERR_rec.ESCALATION_TERR_NAME <> FND_API.G_MISS_CHAR) ) THEN
650
651 -- bind the input variables
652 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_27', p_TERR_rec.ESCALATION_TERR_NAME);
653
654 END IF;
655
656 IF ( (p_TERR_rec.TEMPLATE_TERR_NAME IS NOT NULL) AND
657 (p_TERR_rec.TEMPLATE_TERR_NAME <> FND_API.G_MISS_CHAR) ) THEN
658
659 -- bind the input variables
660 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_28', p_TERR_rec.TEMPLATE_TERR_NAME);
661
662 END IF;
663
664 /* Debug Message */
665 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
666 THEN
667 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
668 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
669 FND_MSG_PUB.Add;
670 END IF;
671
672 END gen_bind;
673
674 -----------------------------------------------------------------------
675 -- Territory Usages
676 -----------------------------------------------------------------------
677 PROCEDURE gen_where_clause (
678 p_dsql_csr IN NUMBER,
679 p_Terr_Usgs_Rec IN Terr_Usgs_Rec_Type,
680 x_where_clause IN OUT NOCOPY VARCHAR2,
681 x_use_flag IN OUT NOCOPY VARCHAR2
682 )
683 IS
684
685 l_proc_name VARCHAR2(30) := 'Gen_Where: Terr_Usgs';
686
687 /* cursors to check if wildcard values '%' and '_' have been passed as item values */
688 CURSOR c_chk_str1 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '%', 1, 1) FROM DUAL;
689 CURSOR c_chk_str2 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '_', 1, 1) FROM DUAL;
690
691 /* return values from cursors */
692 str_csr1 NUMBER;
693 str_csr2 NUMBER;
694
695 l_operator VARCHAR2(10);
696 l_where_clause VARCHAR2(2000);
697
698 BEGIN
699
700 /* Debug Message */
701 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
702 THEN
703 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
704 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
705 FND_MSG_PUB.Add;
706 END IF;
707
708 IF ( (p_TERR_USGS_rec.TERR_USG_ID IS NOT NULL) AND
709 (p_TERR_USGS_rec.TERR_USG_ID <> FND_API.G_MISS_NUM) ) THEN
710
711 x_use_flag := 'Y';
712 l_where_clause := l_where_clause || 'AND JTUA.TERR_USG_ID = :p_TERR_USGS_1 ';
713
714 END IF;
715
716 IF ( (p_TERR_USGS_rec.TERR_ID IS NOT NULL) AND
717 (p_TERR_USGS_rec.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
718
719 x_use_flag := 'Y';
720 l_where_clause := l_where_clause || 'AND JTUA.TERR_ID = :p_TERR_USGS_7 ';
721
722 END IF;
723
724 IF ( (p_TERR_USGS_rec.SOURCE_ID IS NOT NULL) AND
725 (p_TERR_USGS_rec.SOURCE_ID <> FND_API.G_MISS_NUM) ) THEN
726
727 x_use_flag := 'Y';
728 l_where_clause := l_where_clause || 'AND JTUA.SOURCE_ID = :p_TERR_USGS_8 ';
729
730 END IF;
731
732 IF ( (p_TERR_USGS_rec.USAGE IS NOT NULL) AND
733 (p_TERR_USGS_rec.USAGE <> FND_API.G_MISS_CHAR) ) THEN
734
735 -- check if item value contains '%' wildcard
736 OPEN c_chk_str1 ( p_TERR_USGS_rec.USAGE);
737 FETCH c_chk_str1 INTO str_csr1;
738 CLOSE c_chk_str1;
739
740 --dbms_output.put_line('str_csr1 = ' || TO_CHAR(str_csr1));
741
742 IF ( str_csr1 <> 0 ) THEN
743 l_operator := 'LIKE';
744 ELSE
745 -- check if item value contains '_' wildcard
746 OPEN c_chk_str2 ( p_TERR_USGS_rec.USAGE);
747 FETCH c_chk_str2 INTO str_csr2;
748 CLOSE c_chk_str2;
749
750 IF ( str_csr2 <> 0 ) THEN
751 l_operator := 'LIKE';
752 ELSE
753 l_operator := '=';
754 END IF;
755
756 END IF;
757
758 x_use_flag := 'Y';
759 l_where_clause := l_where_clause || 'AND JSE.MEANING ' ||
760 l_operator ||' :p_TERR_USGS_9 ';
761
762 END IF;
763
764 x_where_clause := x_where_clause || l_where_clause;
765
766 /* Debug Message */
767 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
768 THEN
769 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
770 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
771 FND_MSG_PUB.Add;
772 END IF;
773
774 END gen_where_clause;
775
776
777 PROCEDURE gen_bind (
778 p_dsql_csr IN NUMBER,
779 p_Terr_Usgs_Rec IN Terr_Usgs_Rec_Type
780 )
781 IS
782 l_proc_name VARCHAR2(30) := 'Gen_Bind: Terr_Usgs';
783
784 BEGIN
785
786 /* Debug Message */
787 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
788 THEN
789 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
790 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
791 FND_MSG_PUB.Add;
792 END IF;
793
794 IF ( (p_TERR_USGS_rec.TERR_USG_ID IS NOT NULL) AND
795 (p_TERR_USGS_rec.TERR_USG_ID <> FND_API.G_MISS_NUM) ) THEN
796
797 -- bind the input variables
798 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_USGS_1', p_TERR_USGS_rec.TERR_USG_ID);
799
800 END IF;
801
802 IF ( (p_TERR_USGS_rec.TERR_ID IS NOT NULL) AND
803 (p_TERR_USGS_rec.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
804
805 -- bind the input variables
806 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_USGS_7', p_TERR_USGS_rec.TERR_ID);
807
808 END IF;
809
810 IF ( (p_TERR_USGS_rec.SOURCE_ID IS NOT NULL) AND
811 (p_TERR_USGS_rec.SOURCE_ID <> FND_API.G_MISS_NUM) ) THEN
812
813 -- bind the input variables
814 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_USGS_8', p_TERR_USGS_rec.SOURCE_ID);
815
816 END IF;
817
818 IF ( (p_TERR_USGS_rec.USAGE IS NOT NULL) AND
819 (p_TERR_USGS_rec.USAGE <> FND_API.G_MISS_CHAR) ) THEN
820
821 -- bind the input variables
822 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_USGS_9', p_TERR_USGS_rec.USAGE);
823
824 END IF;
825
826 /* Debug Message */
827 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
828 THEN
829 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
830 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
831 FND_MSG_PUB.Add;
832 END IF;
833
834 END gen_bind;
835
836
837 -----------------------------------------------------------------------
838 -- Territory Types
839 -----------------------------------------------------------------------
840 PROCEDURE gen_where_clause (
841 p_dsql_csr IN NUMBER,
842 p_Terr_Types_Rec IN Terr_Type_Rec_Type,
843 x_where_clause IN OUT NOCOPY VARCHAR2,
844 x_use_flag IN OUT NOCOPY VARCHAR2
845 )
846 IS
847
848 l_proc_name VARCHAR2(30) := 'Gen_Where: Terr_Type';
849
850 /* cursors to check if wildcard values '%' and '_' have been passed as item values */
851 CURSOR c_chk_str1 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '%', 1, 1) FROM DUAL;
852 CURSOR c_chk_str2 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '_', 1, 1) FROM DUAL;
853
854 /* return values from cursors */
855 str_csr1 NUMBER;
856 str_csr2 NUMBER;
857
858 l_operator VARCHAR2(10);
859 l_where_clause VARCHAR2(2000);
860
861 BEGIN
862
863 /* Debug Message */
864 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
865 THEN
866 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
867 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
868 FND_MSG_PUB.Add;
869 END IF;
870
871 IF ( (p_TERR_TYPES_rec.TERR_TYPE_ID IS NOT NULL) AND
872 (p_TERR_TYPES_rec.TERR_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
873
874 x_use_flag := 'Y';
875 l_where_clause := l_where_clause || 'AND JTTA.TERR_TYPE_ID = :p_TERR_TYPES_1 ';
876
877 END IF;
878
879 IF ( (p_TERR_TYPES_rec.NAME IS NOT NULL) AND
880 (p_TERR_TYPES_rec.NAME <> FND_API.G_MISS_CHAR) ) THEN
881
882 -- check if item value contains '%' wildcard
883 OPEN c_chk_str1 ( p_TERR_TYPES_rec.NAME);
884 FETCH c_chk_str1 INTO str_csr1;
885 CLOSE c_chk_str1;
886
887 IF ( str_csr1 <> 0 ) THEN
888 l_operator := 'LIKE';
889 ELSE
890
891 -- check if item value contains '_' wildcard
892 OPEN c_chk_str2 ( p_TERR_TYPES_rec.NAME);
893 FETCH c_chk_str2 INTO str_csr2;
894 CLOSE c_chk_str2;
895
896 IF ( str_csr2 <> 0 ) THEN
897 l_operator := 'LIKE';
898 ELSE
899 l_operator := '=';
900 END IF;
901 END IF;
902
903 x_use_flag := 'Y';
904 l_where_clause := l_where_clause || 'AND JTTA.NAME ' ||
905 l_operator || ' :p_TERR_TYPES_8 ';
906
907 END IF;
908
909 IF ( (p_TERR_TYPES_rec.DESCRIPTION IS NOT NULL) AND
910 (p_TERR_TYPES_rec.DESCRIPTION <> FND_API.G_MISS_CHAR) ) THEN
911
912 -- check if item value contains '%' wildcard
913 OPEN c_chk_str1 ( p_TERR_TYPES_rec.DESCRIPTION);
914 FETCH c_chk_str1 INTO str_csr1;
915 CLOSE c_chk_str1;
916
917 IF ( str_csr1 <> 0 ) THEN
918 l_operator := 'LIKE';
919 ELSE
920
921 -- check if item value contains '_' wildcard
922 OPEN c_chk_str2 ( p_TERR_TYPES_rec.DESCRIPTION);
923 FETCH c_chk_str2 INTO str_csr2;
924 CLOSE c_chk_str2;
925
926 IF ( str_csr2 <> 0 ) THEN
927 l_operator := 'LIKE';
928 ELSE
929 l_operator := '=';
930 END IF;
931 END IF;
932
933 x_use_flag := 'Y';
934 l_where_clause := l_where_clause || 'AND JTTA.DESCRIPTION ' ||
935 l_operator || ' :p_TERR_TYPES_10 ';
936
937 END IF;
938
939 IF ( (p_TERR_TYPES_rec.START_DATE_ACTIVE IS NOT NULL) AND
940 (p_TERR_TYPES_rec.START_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
941
942 -- check if item value contains '%' wildcard
943 OPEN c_chk_str1 ( p_TERR_TYPES_rec.START_DATE_ACTIVE);
944 FETCH c_chk_str1 INTO str_csr1;
945 CLOSE c_chk_str1;
946
947 IF ( str_csr1 <> 0 ) THEN
948 l_operator := 'LIKE';
949 ELSE
950
951 -- check if item value contains '_' wildcard
952 OPEN c_chk_str2 ( p_TERR_TYPES_rec.START_DATE_ACTIVE);
953 FETCH c_chk_str2 INTO str_csr2;
954 CLOSE c_chk_str2;
955
956 IF ( str_csr2 <> 0 ) THEN
957 l_operator := 'LIKE';
958 ELSE
959 l_operator := '=';
960 END IF;
961
962 END IF;
963
964 x_use_flag := 'Y';
965 l_where_clause := l_where_clause || 'AND JTTA.START_DATE_ACTIVE ' ||
966 l_operator || ' :p_TERR_TYPES_11 ';
967
968
969 END IF;
970
971 IF ( (p_TERR_TYPES_rec.END_DATE_ACTIVE IS NOT NULL) AND
972 (p_TERR_TYPES_rec.END_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
973
974 -- check if item value contains '%' wildcard
975 OPEN c_chk_str1 ( p_TERR_TYPES_rec.END_DATE_ACTIVE);
976 FETCH c_chk_str1 INTO str_csr1;
977 CLOSE c_chk_str1;
978
979 IF ( str_csr1 <> 0 ) THEN
980 l_operator := 'LIKE';
981 ELSE
982
983 -- check if item value contains '_' wildcard
984 OPEN c_chk_str2 ( p_TERR_TYPES_rec.END_DATE_ACTIVE);
985 FETCH c_chk_str2 INTO str_csr2;
986 CLOSE c_chk_str2;
987
988 IF ( str_csr2 <> 0 ) THEN
989 l_operator := 'LIKE';
990 ELSE
991 l_operator := '=';
992 END IF;
993
994 END IF;
995
996 x_use_flag := 'Y';
997 l_where_clause := l_where_clause || 'AND JTTA.END_DATE_ACTIVE ' ||
998 l_operator || ' :p_TERR_TYPES_12 ';
999
1000 END IF;
1001
1002 x_where_clause := x_where_clause || l_where_clause;
1003
1004 /* Debug Message */
1005 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1006 THEN
1007 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
1008 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1009 FND_MSG_PUB.Add;
1010 END IF;
1011
1012 END gen_where_clause;
1013
1014
1015 PROCEDURE gen_bind (
1016 p_dsql_csr IN NUMBER,
1017 p_Terr_Types_Rec IN Terr_Type_Rec_Type
1018 )
1019 IS
1020 l_proc_name VARCHAR2(30) := 'Gen_Bind: Terr_Type';
1021
1022 BEGIN
1023
1024 /* Debug Message */
1025 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1026 THEN
1027 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
1028 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1029 FND_MSG_PUB.Add;
1030 END IF;
1031
1032 IF ( (p_TERR_TYPES_rec.TERR_TYPE_ID IS NOT NULL) AND
1033 (p_TERR_TYPES_rec.TERR_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
1034
1035 -- bind the input variables
1036 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_TYPES_1', p_TERR_TYPES_rec.TERR_TYPE_ID);
1037
1038 END IF;
1039
1040
1041 IF ( (p_TERR_TYPES_rec.NAME IS NOT NULL) AND
1042 (p_TERR_TYPES_rec.NAME <> FND_API.G_MISS_CHAR) ) THEN
1043
1044 -- bind the input variables
1045 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_TYPES_8', p_TERR_TYPES_rec.NAME);
1046
1047 END IF;
1048
1049
1050 IF ( (p_TERR_TYPES_rec.DESCRIPTION IS NOT NULL) AND
1051 (p_TERR_TYPES_rec.DESCRIPTION <> FND_API.G_MISS_CHAR) ) THEN
1052
1053 -- bind the input variables
1054 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_TYPES_10', p_TERR_TYPES_rec.DESCRIPTION);
1055
1056 END IF;
1057
1058 IF ( (p_TERR_TYPES_rec.START_DATE_ACTIVE IS NOT NULL) AND
1059 (p_TERR_TYPES_rec.START_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
1060
1061 -- bind the input variables
1062 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_TYPES_11', p_TERR_TYPES_rec.START_DATE_ACTIVE);
1063
1064 END IF;
1065
1066 IF ( (p_TERR_TYPES_rec.END_DATE_ACTIVE IS NOT NULL) AND
1067 (p_TERR_TYPES_rec.END_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
1068
1069 -- bind the input variables
1070 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_TYPES_12', p_TERR_TYPES_rec.END_DATE_ACTIVE);
1071
1072 END IF;
1073
1074 /* Debug Message */
1075 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1076 THEN
1077 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
1078 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1079 FND_MSG_PUB.Add;
1080 END IF;
1081
1082 END gen_bind;
1083
1084
1085 -----------------------------------------------------------------------
1086 -- Territory Qualifier Type Usages
1087 -----------------------------------------------------------------------
1088 PROCEDURE gen_where_clause (
1089 p_dsql_csr IN NUMBER,
1090 p_Terr_QType_Usgs_Rec IN Terr_QType_Usgs_Rec_Type,
1091 x_where_clause IN OUT NOCOPY VARCHAR2,
1092 x_use_flag IN OUT NOCOPY VARCHAR2
1093 )
1094 IS
1095
1096 l_proc_name VARCHAR2(30) := 'Gen_Where: Terr_QType_Usgs';
1097
1098 /* cursors to check if wildcard values '%' and '_' have been passed as item values */
1099 CURSOR c_chk_str1 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '%', 1, 1) FROM DUAL;
1100 CURSOR c_chk_str2 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '_', 1, 1) FROM DUAL;
1101
1102 /* return values from cursors */
1103 str_csr1 NUMBER;
1104 str_csr2 NUMBER;
1105
1106 l_operator VARCHAR2(10);
1107 l_where_clause VARCHAR2(2000);
1108
1109 BEGIN
1110
1111 /* Debug Message */
1112 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1113 THEN
1114 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
1115 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1116 FND_MSG_PUB.Add;
1117 END IF;
1118
1119 IF ( (p_TERR_QTYPE_USGS_REC.TERR_QTYPE_USG_ID IS NOT NULL) AND
1120 (p_TERR_QTYPE_USGS_REC.TERR_QTYPE_USG_ID <> FND_API.G_MISS_NUM) ) THEN
1121
1122 x_use_flag := 'Y';
1123 l_where_clause := l_where_clause || 'AND JTTV.TERR_QTYPE_USG_ID = :p_TERR_QTYPE_USGS_1 ';
1124
1125 END IF;
1126
1127 IF ( (p_TERR_QTYPE_USGS_REC.TERR_ID IS NOT NULL) AND
1128 (p_TERR_QTYPE_USGS_REC.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
1129
1130 x_use_flag := 'Y';
1131 l_where_clause := l_where_clause || 'AND JTTV.TERR_ID = :p_TERR_QTYPE_USGS_7 ';
1132
1133 END IF;
1134
1135 IF ( (p_TERR_QTYPE_USGS_REC.QUAL_TYPE_USG_ID IS NOT NULL) AND
1136 (p_TERR_QTYPE_USGS_REC.QUAL_TYPE_USG_ID <> FND_API.G_MISS_NUM) ) THEN
1137
1138 x_use_flag := 'Y';
1139 l_where_clause := l_where_clause || 'AND JTTV.TERR_ID = :p_TERR_QTYPE_USGS_8 ';
1140
1141 END IF;
1142
1143 IF ( (p_TERR_QTYPE_USGS_REC.SOURCE_ID IS NOT NULL) AND
1144 (p_TERR_QTYPE_USGS_REC.SOURCE_ID <> FND_API.G_MISS_NUM) ) THEN
1145
1146 x_use_flag := 'Y';
1147 l_where_clause := l_where_clause || 'AND JTTV.SOURCE_ID = :p_TERR_QTYPE_USGS_10 ';
1148
1149 END IF;
1150
1151 IF ( (p_TERR_QTYPE_USGS_REC.QUAL_TYPE_ID IS NOT NULL) AND
1152 (p_TERR_QTYPE_USGS_REC.QUAL_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
1153
1154 x_use_flag := 'Y';
1155 l_where_clause := l_where_clause || 'AND JTTV.QUAL_TYPE_ID = :p_TERR_QTYPE_USGS_11 ';
1156
1157 END IF;
1158
1159 IF ( (p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_NAME IS NOT NULL) AND
1160 (p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_NAME <> FND_API.G_MISS_CHAR) ) THEN
1161
1162 -- check if item value contains '%' wildcard
1163 OPEN c_chk_str1 ( p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_NAME);
1164 FETCH c_chk_str1 INTO str_csr1;
1165 CLOSE c_chk_str1;
1166
1167 IF ( str_csr1 <> 0 ) THEN
1168 l_operator := 'LIKE';
1169 ELSE
1170
1171 -- check if item value contains '_' wildcard
1172 OPEN c_chk_str2 ( p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_NAME);
1173 FETCH c_chk_str2 INTO str_csr2;
1174 CLOSE c_chk_str2;
1175
1176 IF ( str_csr2 <> 0 ) THEN
1177 l_operator := 'LIKE';
1178 ELSE
1179 l_operator := '=';
1180 END IF;
1181
1182 END IF;
1183
1184 x_use_flag := 'Y';
1185 l_where_clause := l_where_clause ||
1186 'AND JTTV.QUALIFIER_TYPE_NAME = :p_TERR_QTYPE_USGS_12 ';
1187
1188 END IF;
1189
1190 IF ( (p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_DESCRIPTION IS NOT NULL) AND
1191 (p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_DESCRIPTION <> FND_API.G_MISS_CHAR) ) THEN
1192
1193 -- check if item value contains '%' wildcard
1194 OPEN c_chk_str1 ( p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_DESCRIPTION);
1195 FETCH c_chk_str1 INTO str_csr1;
1196 CLOSE c_chk_str1;
1197
1198 IF ( str_csr1 <> 0 ) THEN
1199 l_operator := 'LIKE';
1200 ELSE
1201
1202 -- check if item value contains '_' wildcard
1203 OPEN c_chk_str2 ( p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_DESCRIPTION);
1204 FETCH c_chk_str2 INTO str_csr2;
1205 CLOSE c_chk_str2;
1206
1207 IF ( str_csr2 <> 0 ) THEN
1208 l_operator := 'LIKE';
1209 ELSE
1210 l_operator := '=';
1211 END IF;
1212 END IF;
1213
1214 x_use_flag := 'Y';
1215 l_where_clause := l_where_clause ||
1216 'AND JTTV.QUALIFIER_TYPE_DESCRIPTION = :p_TERR_QTYPE_USGS_13 ';
1217
1218 END IF;
1219
1220 x_where_clause := x_where_clause || l_where_clause;
1221
1222 /* Debug Message */
1223 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1224 THEN
1225 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
1226 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1227 FND_MSG_PUB.Add;
1228 END IF;
1229
1230 END gen_where_clause;
1231
1232
1233 PROCEDURE gen_bind (
1234 p_dsql_csr IN NUMBER,
1235 p_Terr_QType_Usgs_Rec IN Terr_QType_Usgs_Rec_Type
1236 )
1237 IS
1238
1239 l_proc_name VARCHAR2(30) := 'Gen_Bind: Terr_QType_Usgs';
1240
1241 BEGIN
1242
1243 /* Debug Message */
1244 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1245 THEN
1246 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
1247 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1248 FND_MSG_PUB.Add;
1249 END IF;
1250
1251
1252 IF ( (p_TERR_QTYPE_USGS_REC.TERR_QTYPE_USG_ID IS NOT NULL) AND
1253 (p_TERR_QTYPE_USGS_REC.TERR_QTYPE_USG_ID <> FND_API.G_MISS_NUM) ) THEN
1254
1255 -- bind the input variables
1256 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QTYPE_USGS_1', p_TERR_QTYPE_USGS_rec.TERR_QTYPE_USG_ID);
1257
1258 END IF;
1259
1260 IF ( (p_TERR_QTYPE_USGS_REC.TERR_ID IS NOT NULL) AND
1261 (p_TERR_QTYPE_USGS_REC.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
1262
1263 -- bind the input variables
1264 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QTYPE_USGS_7', p_TERR_QTYPE_USGS_rec.TERR_ID);
1265
1266 END IF;
1267
1268 IF ( (p_TERR_QTYPE_USGS_REC.QUAL_TYPE_USG_ID IS NOT NULL) AND
1269 (p_TERR_QTYPE_USGS_REC.QUAL_TYPE_USG_ID <> FND_API.G_MISS_NUM) ) THEN
1270
1271 -- bind the input variables
1272 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QTYPE_USGS_8', p_TERR_QTYPE_USGS_rec.QUAL_TYPE_USG_ID);
1273
1274 END IF;
1275
1276 IF ( (p_TERR_QTYPE_USGS_REC.SOURCE_ID IS NOT NULL) AND
1277 (p_TERR_QTYPE_USGS_REC.SOURCE_ID <> FND_API.G_MISS_NUM) ) THEN
1278
1279 -- bind the input variables
1280 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QTYPE_USGS_10', p_TERR_QTYPE_USGS_rec.SOURCE_ID);
1281
1282 END IF;
1283
1284 IF ( (p_TERR_QTYPE_USGS_REC.QUAL_TYPE_ID IS NOT NULL) AND
1285 (p_TERR_QTYPE_USGS_REC.QUAL_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
1286
1287 -- bind the input variables
1288 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QTYPE_USGS_11', p_TERR_QTYPE_USGS_rec.QUAL_TYPE_ID);
1289
1290 END IF;
1291
1292 IF ( (p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_NAME IS NOT NULL) AND
1293 (p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_NAME <> FND_API.G_MISS_CHAR) ) THEN
1294
1295 -- bind the input variables
1296 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QTYPE_USGS_12', p_TERR_QTYPE_USGS_rec.QUALIFIER_TYPE_NAME);
1297
1298 END IF;
1299
1300 IF ( (p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_DESCRIPTION IS NOT NULL) AND
1301 (p_TERR_QTYPE_USGS_REC.QUALIFIER_TYPE_DESCRIPTION <> FND_API.G_MISS_CHAR) ) THEN
1302
1303 -- bind the input variables
1304 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QTYPE_USGS_13', p_TERR_QTYPE_USGS_rec.QUALIFIER_TYPE_DESCRIPTION);
1305
1306 END IF;
1307
1308
1309 /* Debug Message */
1310 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1311 THEN
1312 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
1313 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1314 FND_MSG_PUB.Add;
1315 END IF;
1316
1317 END gen_bind;
1318
1319 -----------------------------------------------------------------------
1320 -- Territory Qualifiers
1321 -----------------------------------------------------------------------
1322 PROCEDURE gen_where_clause (
1323 p_dsql_csr IN NUMBER,
1324 p_Terr_Qual_Rec IN Terr_Qual_Rec_Type,
1325 x_where_clause IN OUT NOCOPY VARCHAR2,
1326 x_use_flag IN OUT NOCOPY VARCHAR2
1327 )
1328 IS
1329
1330 l_proc_name VARCHAR2(30) := 'Gen_Where: Terr_Qual';
1331
1332 /* cursors to check if wildcard values '%' and '_' have been passed as item values */
1333 CURSOR c_chk_str1 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '%', 1, 1) FROM DUAL;
1334 CURSOR c_chk_str2 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '_', 1, 1) FROM DUAL;
1335
1336 /* return values from cursors */
1337 str_csr1 NUMBER;
1338 str_csr2 NUMBER;
1339
1340 l_operator VARCHAR2(10);
1341 l_where_clause VARCHAR2(2000);
1342
1343 BEGIN
1344
1345 /* Debug Message */
1346 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1347 THEN
1348 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
1349 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1350 FND_MSG_PUB.Add;
1351 END IF;
1352
1353
1354 IF ( (p_TERR_QUAL_rec.TERR_QUAL_ID IS NOT NULL) AND
1355 (p_TERR_QUAL_rec.TERR_QUAL_ID <> FND_API.G_MISS_NUM) ) THEN
1356
1357 x_use_flag := 'Y';
1358 l_where_clause := l_where_clause || 'AND JTQV.TERR_QUAL_ID = :p_TERR_QUAL_1 ';
1359
1360 END IF;
1361
1362 IF ( (p_TERR_QUAL_rec.TERR_ID IS NOT NULL) AND
1363 (p_TERR_QUAL_rec.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
1364
1365 x_use_flag := 'Y';
1366 l_where_clause := l_where_clause || 'AND JTQV.TERR_ID = :p_TERR_QUAL_7 ';
1367
1368 END IF;
1369
1370 IF ( (p_TERR_QUAL_rec.QUAL_USG_ID IS NOT NULL) AND
1371 (p_TERR_QUAL_rec.QUAL_USG_ID <> FND_API.G_MISS_NUM) ) THEN
1372
1373 x_use_flag := 'Y';
1374 l_where_clause := l_where_clause || 'AND JTQV.QUAL_USG_ID = :p_TERR_QUAL_8 ';
1375
1376 END IF;
1377
1378
1379 IF ( (p_TERR_QUAL_rec.OVERLAP_ALLOWED_FLAG IS NOT NULL) AND
1380 (p_TERR_QUAL_rec.OVERLAP_ALLOWED_FLAG <> FND_API.G_MISS_CHAR) ) THEN
1381
1382 x_use_flag := 'Y';
1383 l_where_clause := l_where_clause || 'AND JTQV.OVERLAP_ALLOWED_FLAG ' ||
1384 l_operator || ' :p_TERR_QUAL_11 ';
1385
1386 END IF;
1387
1388 IF ( (p_TERR_QUAL_rec.QUALIFIER_MODE IS NOT NULL) AND
1389 (p_TERR_QUAL_rec.QUALIFIER_MODE <> FND_API.G_MISS_CHAR) ) THEN
1390
1391 -- check if item value contains '%' wildcard
1392 OPEN c_chk_str1 ( p_TERR_QUAL_rec.QUALIFIER_MODE);
1393 FETCH c_chk_str1 INTO str_csr1;
1394 CLOSE c_chk_str1;
1395
1396 IF ( str_csr1 <> 0 ) THEN
1397 l_operator := 'LIKE';
1398 ELSE
1399
1400 -- check if item value contains '_' wildcard
1401 OPEN c_chk_str2 ( p_TERR_QUAL_rec.QUALIFIER_MODE);
1402 FETCH c_chk_str2 INTO str_csr2;
1403 CLOSE c_chk_str2;
1404
1405 IF ( str_csr2 <> 0 ) THEN
1406 l_operator := 'LIKE';
1407 ELSE
1408 l_operator := '=';
1409 END IF;
1410
1411 END IF;
1412
1413 x_use_flag := 'Y';
1414 l_where_clause := l_where_clause || 'AND JTQV.QUALIFIER_MODE '
1415 || l_operator || ' :p_TERR_QUAL_13 ';
1416
1417 END IF;
1418
1419
1420 IF ( (p_TERR_QUAL_rec.DISPLAY_TYPE IS NOT NULL) AND
1421 (p_TERR_QUAL_rec.DISPLAY_TYPE <> FND_API.G_MISS_CHAR) ) THEN
1422
1423 -- check if item value contains '%' wildcard
1424 OPEN c_chk_str1 ( p_TERR_QUAL_rec.DISPLAY_TYPE);
1425 FETCH c_chk_str1 INTO str_csr1;
1426 CLOSE c_chk_str1;
1427
1428 IF ( str_csr1 <> 0 ) THEN
1429 l_operator := 'LIKE';
1430 ELSE
1431
1432 -- check if item value contains '_' wildcard
1433 OPEN c_chk_str2 ( p_TERR_QUAL_rec.DISPLAY_TYPE);
1434 FETCH c_chk_str2 INTO str_csr2;
1435 CLOSE c_chk_str2;
1436
1437 IF ( str_csr2 <> 0 ) THEN
1438 l_operator := 'LIKE';
1439 ELSE
1440 l_operator := '=';
1441 END IF;
1442
1443 END IF;
1444
1445 x_use_flag := 'Y';
1446 l_where_clause := l_where_clause || 'AND JTQV.DISPLAY_TYPE '
1447 || l_operator || ' :p_TERR_QUAL_14 ';
1448
1449 END IF;
1450
1451 IF ( (p_TERR_QUAL_rec.LOV_SQL IS NOT NULL) AND
1452 (p_TERR_QUAL_rec.LOV_SQL <> FND_API.G_MISS_CHAR) ) THEN
1453
1454 -- check if item value contains '%' wildcard
1455 OPEN c_chk_str1 ( p_TERR_QUAL_rec.LOV_SQL);
1456 FETCH c_chk_str1 INTO str_csr1;
1457 CLOSE c_chk_str1;
1458
1459 IF ( str_csr1 <> 0 ) THEN
1460 l_operator := 'LIKE';
1461 ELSE
1462
1463 -- check if item value contains '_' wildcard
1464 OPEN c_chk_str2 ( p_TERR_QUAL_rec.LOV_SQL);
1465 FETCH c_chk_str2 INTO str_csr2;
1466 CLOSE c_chk_str2;
1467
1468 IF ( str_csr2 <> 0 ) THEN
1469 l_operator := 'LIKE';
1470 ELSE
1471 l_operator := '=';
1472 END IF;
1473
1474 END IF;
1475
1476 x_use_flag := 'Y';
1477 l_where_clause := l_where_clause || 'AND JTQV.LOV_SQL '
1478 || l_operator || ' :p_TERR_QUAL_15 ';
1479
1480 END IF;
1481
1482
1483 IF ( (p_TERR_QUAL_rec.CONVERT_TO_ID_FLAG IS NOT NULL) AND
1484 (p_TERR_QUAL_rec.CONVERT_TO_ID_FLAG <> FND_API.G_MISS_CHAR) ) THEN
1485
1486 x_use_flag := 'Y';
1487 l_where_clause := l_where_clause || 'AND JTQV.CONVERT_TO_ID_FLAG = :p_TERR_QUAL_16 ';
1488
1489 END IF;
1490
1491 IF ( (p_TERR_QUAL_rec.QUAL_TYPE_ID IS NOT NULL) AND
1492 (p_TERR_QUAL_rec.QUAL_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
1493
1494 x_use_flag := 'Y';
1495 l_where_clause := l_where_clause || 'AND JTQV.QUAL_TYPE_ID = :p_TERR_QUAL_17 ';
1496
1497 END IF;
1498
1499 IF ( (p_TERR_QUAL_rec.QUALIFIER_TYPE_NAME IS NOT NULL) AND
1500 (p_TERR_QUAL_rec.QUALIFIER_TYPE_NAME <> FND_API.G_MISS_CHAR) ) THEN
1501
1502 -- check if item value contains '%' wildcard
1503 OPEN c_chk_str1 ( p_TERR_QUAL_rec.QUALIFIER_TYPE_NAME);
1504 FETCH c_chk_str1 INTO str_csr1;
1505 CLOSE c_chk_str1;
1506
1507 IF ( str_csr1 <> 0 ) THEN
1508 l_operator := 'LIKE';
1509 ELSE
1510
1511 -- check if item value contains '_' wildcard
1512 OPEN c_chk_str2 ( p_TERR_QUAL_rec.QUALIFIER_TYPE_NAME);
1513 FETCH c_chk_str2 INTO str_csr2;
1514 CLOSE c_chk_str2;
1515
1516 IF ( str_csr2 <> 0 ) THEN
1517 l_operator := 'LIKE';
1518 ELSE
1519 l_operator := '=';
1520 END IF;
1521
1522 END IF;
1523
1524 x_use_flag := 'Y';
1525 l_where_clause := l_where_clause || 'AND JTQV.QUALIFIER_TYPE_NAME '
1526 || l_operator || ' :p_TERR_QUAL_18 ';
1527
1528 END IF;
1529
1530 IF ( (p_Terr_Qual_Rec.QUALIFIER_TYPE_DESCRIPTION IS NOT NULL) AND
1531 (p_Terr_Qual_Rec.QUALIFIER_TYPE_DESCRIPTION <> FND_API.G_MISS_CHAR) ) THEN
1532
1533 -- check if item value contains '%' wildcard
1534 OPEN c_chk_str1 ( p_TERR_QUAL_rec.QUALIFIER_TYPE_DESCRIPTION);
1535 FETCH c_chk_str1 INTO str_csr1;
1536 CLOSE c_chk_str1;
1537
1538 IF ( str_csr1 <> 0 ) THEN
1539 l_operator := 'LIKE';
1540 ELSE
1541
1542 -- check if item value contains '_' wildcard
1543 OPEN c_chk_str2 ( p_TERR_QUAL_rec.QUALIFIER_TYPE_DESCRIPTION);
1544 FETCH c_chk_str2 INTO str_csr2;
1545 CLOSE c_chk_str2;
1546
1547 IF ( str_csr2 <> 0 ) THEN
1548 l_operator := 'LIKE';
1549 ELSE
1550 l_operator := '=';
1551 END IF;
1552
1553 END IF;
1554
1555 x_use_flag := 'Y';
1556 l_where_clause := l_where_clause || 'AND JTQV.QUALIFIER_TYPE_DESCRIPTION '
1557 || l_operator || ' :p_TERR_QUAL_19 ';
1558
1559 END IF;
1560
1561 IF ( (p_TERR_QUAL_rec.QUALIFIER_NAME IS NOT NULL) AND
1562 (p_TERR_QUAL_rec.QUALIFIER_NAME <> FND_API.G_MISS_CHAR) ) THEN
1563
1564 -- check if item value contains '%' wildcard
1565 OPEN c_chk_str1 ( p_TERR_QUAL_rec.QUALIFIER_NAME);
1566 FETCH c_chk_str1 INTO str_csr1;
1567 CLOSE c_chk_str1;
1568
1569 --dbms_output.put_line('Value of str_csr1='||TO_CHAR(str_csr1));
1570
1571 IF ( str_csr1 <> 0 ) THEN
1572 l_operator := 'LIKE';
1573 ELSE
1574
1575 -- check if item value contains '_' wildcard
1576 OPEN c_chk_str2 ( p_TERR_QUAL_rec.QUALIFIER_NAME);
1577 FETCH c_chk_str2 INTO str_csr2;
1578 CLOSE c_chk_str2;
1579
1580 IF ( str_csr2 <> 0 ) THEN
1581 l_operator := 'LIKE';
1582 ELSE
1583 l_operator := '=';
1584 END IF;
1585
1586 END IF;
1587
1588 x_use_flag := 'Y';
1589 l_where_clause := l_where_clause || 'AND JTQV.QUALIFIER_NAME '
1590 || l_operator || ' :p_TERR_QUAL_20 ';
1591
1592 END IF;
1593
1594 x_where_clause := x_where_clause || l_where_clause;
1595
1596 /* Debug Message */
1597 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1598 THEN
1599 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
1600 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1601 FND_MSG_PUB.Add;
1602 END IF;
1603
1604
1605 END gen_where_clause;
1606
1607
1608 PROCEDURE gen_bind (
1609 p_dsql_csr IN NUMBER,
1610 p_Terr_Qual_Rec IN Terr_Qual_Rec_Type
1611 )
1612 IS
1613 l_proc_name VARCHAR2(30) := 'Gen_Bind: Terr_Qual';
1614 BEGIN
1615
1616
1617 /* Debug Message */
1618 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1619 THEN
1620 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
1621 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1622 FND_MSG_PUB.Add;
1623 END IF;
1624
1625 IF ( (p_TERR_QUAL_rec.TERR_QUAL_ID IS NOT NULL) AND
1626 (p_TERR_QUAL_rec.TERR_QUAL_ID <> FND_API.G_MISS_NUM) ) THEN
1627
1628 -- bind the input variables
1629 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_1', p_TERR_QUAL_rec.TERR_QUAL_ID);
1630
1631 END IF;
1632
1633 IF ( (p_TERR_QUAL_rec.TERR_ID IS NOT NULL) AND
1634 (p_TERR_QUAL_rec.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
1635
1636 -- bind the input variables
1637 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_7', p_TERR_QUAL_rec.TERR_ID);
1638
1639 END IF;
1640
1641 IF ( (p_TERR_QUAL_rec.QUAL_USG_ID IS NOT NULL) AND
1642 (p_TERR_QUAL_rec.QUAL_USG_ID <> FND_API.G_MISS_NUM) ) THEN
1643
1644 -- bind the input variables
1645 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_8', p_TERR_QUAL_rec.QUAL_USG_ID);
1646
1647 END IF;
1648
1649 IF ( (p_TERR_QUAL_rec.OVERLAP_ALLOWED_FLAG IS NOT NULL) AND
1650 (p_TERR_QUAL_rec.OVERLAP_ALLOWED_FLAG <> FND_API.G_MISS_CHAR) ) THEN
1651
1652 -- bind the input variables
1653 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_11', p_TERR_QUAL_rec.OVERLAP_ALLOWED_FLAG);
1654
1655 END IF;
1656
1657 IF ( (p_TERR_QUAL_rec.QUALIFIER_MODE IS NOT NULL) AND
1658 (p_TERR_QUAL_rec.QUALIFIER_MODE <> FND_API.G_MISS_CHAR) ) THEN
1659
1660 -- bind the input variables
1661 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_13', p_TERR_QUAL_rec.QUALIFIER_MODE);
1662
1663 END IF;
1664
1665 IF ( (p_TERR_QUAL_rec.DISPLAY_TYPE IS NOT NULL) AND
1666 (p_TERR_QUAL_rec.DISPLAY_TYPE <> FND_API.G_MISS_CHAR) ) THEN
1667
1668 -- bind the input variables
1669 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_14', p_TERR_QUAL_rec.DISPLAY_TYPE);
1670
1671 END IF;
1672
1673 IF ( (p_TERR_QUAL_rec.LOV_SQL IS NOT NULL) AND
1674 (p_TERR_QUAL_rec.LOV_SQL <> FND_API.G_MISS_CHAR) ) THEN
1675
1676 -- bind the input variables
1677 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_15', p_TERR_QUAL_rec.LOV_SQL);
1678
1679 END IF;
1680
1681 IF ( (p_TERR_QUAL_rec.CONVERT_TO_ID_FLAG IS NOT NULL) AND
1682 (p_TERR_QUAL_rec.CONVERT_TO_ID_FLAG <> FND_API.G_MISS_CHAR) ) THEN
1683
1684
1685 -- bind the input variables
1686 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_16', p_TERR_QUAL_rec.CONVERT_TO_ID_FLAG);
1687
1688 END IF;
1689
1690 IF ( (p_TERR_QUAL_rec.QUAL_TYPE_ID IS NOT NULL) AND
1691 (p_TERR_QUAL_rec.QUAL_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
1692
1693 -- bind the input variables
1694 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_17', p_TERR_QUAL_rec.QUAL_TYPE_ID);
1695
1696 END IF;
1697
1698 IF ( (p_TERR_QUAL_rec.QUALIFIER_TYPE_NAME IS NOT NULL) AND
1699 (p_TERR_QUAL_rec.QUALIFIER_TYPE_NAME <> FND_API.G_MISS_CHAR) ) THEN
1700
1701 -- bind the input variables
1702 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_18', p_TERR_QUAL_rec.QUALIFIER_TYPE_NAME);
1703
1704 END IF;
1705
1706 IF ( (p_TERR_QUAL_rec.QUALIFIER_TYPE_DESCRIPTION IS NOT NULL) AND
1707 (p_TERR_QUAL_rec.QUALIFIER_TYPE_DESCRIPTION <> FND_API.G_MISS_CHAR) ) THEN
1708
1709 -- bind the input variables
1710 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_19', p_TERR_QUAL_rec.QUALIFIER_TYPE_DESCRIPTION);
1711
1712 END IF;
1713
1714 IF ( (p_TERR_QUAL_rec.QUALIFIER_NAME IS NOT NULL) AND
1715 (p_TERR_QUAL_rec.QUALIFIER_NAME <> FND_API.G_MISS_CHAR) ) THEN
1716
1717 -- bind the input variables
1718 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_QUAL_20', p_TERR_QUAL_rec.QUALIFIER_NAME);
1719
1720 END IF;
1721
1722 /* Debug Message */
1723 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1724 THEN
1725 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
1726 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1727 FND_MSG_PUB.Add;
1728 END IF;
1729
1730 END gen_bind;
1731
1732
1733 -----------------------------------------------------------------------
1734 -- Territory Values
1735 -----------------------------------------------------------------------
1736 PROCEDURE gen_where_clause (
1737 p_dsql_csr IN NUMBER,
1738 p_Terr_Values_Rec IN Terr_Values_Rec_Type,
1739 x_where_clause IN OUT NOCOPY VARCHAR2,
1740 x_use_flag IN OUT NOCOPY VARCHAR2
1741 )
1742 IS
1743
1744 l_proc_name VARCHAR2(30) := 'Gen_Where: Terr_Values';
1745
1746 /* cursors to check if wildcard values '%' and '_' have been passed as item values */
1747 CURSOR c_chk_str1 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '%', 1, 1) FROM DUAL;
1748 CURSOR c_chk_str2 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '_', 1, 1) FROM DUAL;
1749
1750 /* return values from cursors */
1751 str_csr1 NUMBER;
1752 str_csr2 NUMBER;
1753
1754 l_operator VARCHAR2(10);
1755
1756 l_where_clause VARCHAR(2000);
1757
1758 BEGIN
1759
1760 /* Debug Message */
1761 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1762 THEN
1763 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
1764 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1765 FND_MSG_PUB.Add;
1766 END IF;
1767
1768 IF ( (p_TERR_VALUES_rec.TERR_VALUE_ID IS NOT NULL) AND
1769 (p_TERR_VALUES_rec.TERR_VALUE_ID <> FND_API.G_MISS_NUM) ) THEN
1770
1771 x_use_flag := 'Y';
1772 l_where_clause := l_where_clause || 'AND JTV.TERR_VALUE_ID = :p_TERR_VALUES_1 ';
1773
1774 END IF;
1775
1776 IF ( (p_TERR_VALUES_rec.TERR_QUAL_ID IS NOT NULL) AND
1777 (p_TERR_VALUES_rec.TERR_QUAL_ID <> FND_API.G_MISS_NUM) ) THEN
1778
1779 x_use_flag := 'Y';
1780 l_where_clause := l_where_clause || 'AND JTV.TERR_QUAL_ID = :p_TERR_VALUES_7 ';
1781
1782 END IF;
1783
1784 IF ( (p_TERR_VALUES_rec.COMPARISON_OPERATOR IS NOT NULL) AND
1785 (p_TERR_VALUES_rec.COMPARISON_OPERATOR <> FND_API.G_MISS_CHAR) ) THEN
1786
1787 -- check if item value contains '%' wildcard
1788 OPEN c_chk_str1 ( p_TERR_VALUES_rec.COMPARISON_OPERATOR);
1789 FETCH c_chk_str1 INTO str_csr1;
1790 CLOSE c_chk_str1;
1791
1792 IF ( str_csr1 <> 0 ) THEN
1793 l_operator := 'LIKE';
1794 ELSE
1795
1796 -- check if item value contains '_' wildcard
1797 OPEN c_chk_str2 ( p_TERR_VALUES_rec.COMPARISON_OPERATOR);
1798 FETCH c_chk_str2 INTO str_csr2;
1799 CLOSE c_chk_str2;
1800
1801 IF ( str_csr2 <> 0 ) THEN
1802 l_operator := 'LIKE';
1803 ELSE
1804 l_operator := '=';
1805 END IF;
1806
1807 END IF;
1808
1809 x_use_flag := 'Y';
1810 l_where_clause := l_where_clause || 'AND JTV.COMPARISON_OPERATOR ' ||
1811 l_operator || ' :p_TERR_VALUES_9 ';
1812
1813 END IF;
1814
1815 IF ( (p_TERR_VALUES_rec.LOW_VALUE_CHAR IS NOT NULL) AND
1816 (p_TERR_VALUES_rec.LOW_VALUE_CHAR <> FND_API.G_MISS_CHAR) ) THEN
1817
1818 -- check if item value contains '%' wildcard
1819 OPEN c_chk_str1 ( p_TERR_VALUES_rec.LOW_VALUE_CHAR);
1820 FETCH c_chk_str1 INTO str_csr1;
1821 CLOSE c_chk_str1;
1822
1823 IF ( str_csr1 <> 0 ) THEN
1824 l_operator := 'LIKE';
1825 ELSE
1826
1827 -- check if item value contains '_' wildcard
1828 OPEN c_chk_str2 ( p_TERR_VALUES_rec.LOW_VALUE_CHAR);
1829 FETCH c_chk_str2 INTO str_csr2;
1830 CLOSE c_chk_str2;
1831
1832 IF ( str_csr2 <> 0 ) THEN
1833 l_operator := 'LIKE';
1834 ELSE
1835 l_operator := '=';
1836 END IF;
1837
1838 END IF;
1839
1840 x_use_flag := 'Y';
1841 l_where_clause := l_where_clause || 'AND JTV.LOW_VALUE_CHAR ' ||
1842 l_operator || ' :p_TERR_VALUES_10 ';
1843
1844 END IF;
1845
1846 IF ( (p_TERR_VALUES_rec.HIGH_VALUE_CHAR IS NOT NULL) AND
1847 (p_TERR_VALUES_rec.HIGH_VALUE_CHAR <> FND_API.G_MISS_CHAR) ) THEN
1848
1849 -- check if item value contains '%' wildcard
1850 OPEN c_chk_str1 ( p_TERR_VALUES_rec.HIGH_VALUE_CHAR);
1851 FETCH c_chk_str1 INTO str_csr1;
1852 CLOSE c_chk_str1;
1853
1854 IF ( str_csr1 <> 0 ) THEN
1855 l_operator := 'LIKE';
1856 ELSE
1857
1858 -- check if item value contains '_' wildcard
1859 OPEN c_chk_str2 ( p_TERR_VALUES_rec.HIGH_VALUE_CHAR);
1860 FETCH c_chk_str2 INTO str_csr2;
1861 CLOSE c_chk_str2;
1862
1863 IF ( str_csr2 <> 0 ) THEN
1864 l_operator := 'LIKE';
1865 ELSE
1866 l_operator := '=';
1867 END IF;
1868
1869 END IF;
1870
1871 x_use_flag := 'Y';
1872 l_where_clause := l_where_clause || 'AND JTV.HIGH_VALUE_CHAR ' ||
1873 l_operator || ' :p_TERR_VALUES_11 ';
1874
1875 END IF;
1876
1877 IF ( (p_TERR_VALUES_rec.LOW_VALUE_NUMBER IS NOT NULL) AND
1878 (p_TERR_VALUES_rec.LOW_VALUE_NUMBER <> FND_API.G_MISS_NUM) ) THEN
1879
1880 x_use_flag := 'Y';
1881 l_where_clause := l_where_clause || 'AND JTV.LOW_VALUE_NUMBER = :p_TERR_VALUES_12 ';
1882
1883 END IF;
1884
1885 IF ( (p_TERR_VALUES_rec.HIGH_VALUE_NUMBER IS NOT NULL) AND
1886 (p_TERR_VALUES_rec.HIGH_VALUE_NUMBER <> FND_API.G_MISS_NUM) ) THEN
1887
1888 x_use_flag := 'Y';
1889 l_where_clause := l_where_clause || 'AND JTV.HIGH_VALUE_NUMBER = :p_TERR_VALUES_13 ';
1890
1891 END IF;
1892
1893
1894 IF ( (p_TERR_VALUES_rec.INTEREST_TYPE_ID IS NOT NULL) AND
1895 (p_TERR_VALUES_rec.INTEREST_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
1896
1897 x_use_flag := 'Y';
1898 l_where_clause := l_where_clause || 'AND JTV.INTEREST_TYPE_ID = :p_TERR_VALUES_15 ';
1899
1900 END IF;
1901
1902 IF ( (p_TERR_VALUES_rec.PRIMARY_INTEREST_CODE_ID IS NOT NULL) AND
1903 (p_TERR_VALUES_rec.PRIMARY_INTEREST_CODE_ID <> FND_API.G_MISS_NUM) ) THEN
1904
1905 x_use_flag := 'Y';
1906 l_where_clause := l_where_clause || 'AND JTV.PRIMARY_INTEREST_CODE_ID = :p_TERR_VALUES_16 ';
1907
1908 END IF;
1909
1910 IF ( (p_TERR_VALUES_rec.SECONDARY_INTEREST_CODE_ID IS NOT NULL) AND
1911 (p_TERR_VALUES_rec.SECONDARY_INTEREST_CODE_ID <> FND_API.G_MISS_NUM) ) THEN
1912
1913 x_use_flag := 'Y';
1914 x_where_clause := x_where_clause ||
1915 'AND JTV.SECONDARY_INTEREST_CODE_ID = :p_TERR_VALUES_17 ';
1916
1917 END IF;
1918
1919 IF ( (p_TERR_VALUES_rec.CURRENCY_CODE IS NOT NULL) AND
1920 (p_TERR_VALUES_rec.CURRENCY_CODE <> FND_API.G_MISS_CHAR) ) THEN
1921
1922 -- check if item value contains '%' wildcard
1923 OPEN c_chk_str1 ( p_TERR_VALUES_rec.CURRENCY_CODE);
1924 FETCH c_chk_str1 INTO str_csr1;
1925 CLOSE c_chk_str1;
1926
1927 IF ( str_csr1 <> 0 ) THEN
1928 l_operator := 'LIKE';
1929 ELSE
1930
1931 -- check if item value contains '_' wildcard
1932 OPEN c_chk_str2 ( p_TERR_VALUES_rec.CURRENCY_CODE);
1933 FETCH c_chk_str2 INTO str_csr2;
1934 CLOSE c_chk_str2;
1935
1936 IF ( str_csr2 <> 0 ) THEN
1937 l_operator := 'LIKE';
1938 ELSE
1939 l_operator := '=';
1940 END IF;
1941
1942 END IF;
1943
1944 x_use_flag := 'Y';
1945 l_where_clause := l_where_clause || 'AND JTV.CURRENCY_CODE ' ||
1946 l_operator || ' :p_TERR_VALUES_18 ';
1947
1948 END IF;
1949
1950 IF ( (p_TERR_VALUES_rec.ID_USED_FLAG IS NOT NULL) AND
1951 (p_TERR_VALUES_rec.ID_USED_FLAG <> FND_API.G_MISS_CHAR) ) THEN
1952
1953 x_use_flag := 'Y';
1954 x_where_clause := x_where_clause || 'AND JTV.ID_USED_FLAG = :p_TERR_VALUES_19 ';
1955
1956 END IF;
1957
1958 IF ( (p_TERR_VALUES_rec.LOW_VALUE_CHAR_ID IS NOT NULL) AND
1959 (p_TERR_VALUES_rec.LOW_VALUE_CHAR_ID <> FND_API.G_MISS_NUM) ) THEN
1960
1961 x_use_flag := 'Y';
1962 x_where_clause := x_where_clause || 'AND JTV.LOW_VALUE_CHAR_ID = :p_TERR_VALUES_20 ';
1963
1964 END IF;
1965
1966 x_where_clause := x_where_clause || l_where_clause;
1967
1968 /* Debug Message */
1969 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1970 THEN
1971 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
1972 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1973 FND_MSG_PUB.Add;
1974 END IF;
1975
1976 END gen_where_clause;
1977
1978
1979 /* bind Territory Value record items */
1980 PROCEDURE gen_bind (
1981 p_dsql_csr IN NUMBER,
1982 p_Terr_Values_Rec IN Terr_Values_Rec_Type
1983 )
1984 IS
1985
1986 l_proc_name VARCHAR2(30) := 'Gen_Bind: Terr_Qual';
1987
1988 BEGIN
1989
1990 /* Debug Message */
1991 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
1992 THEN
1993 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
1994 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
1995 FND_MSG_PUB.Add;
1996 END IF;
1997
1998 IF ( (p_TERR_VALUES_rec.TERR_VALUE_ID IS NOT NULL) AND
1999 (p_TERR_VALUES_rec.TERR_VALUE_ID <> FND_API.G_MISS_NUM) ) THEN
2000
2001 -- bind the input variables
2002 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_1', p_TERR_VALUES_rec.TERR_VALUE_ID);
2003
2004 END IF;
2005
2006 IF ( (p_TERR_VALUES_rec.TERR_QUAL_ID IS NOT NULL) AND
2007 (p_TERR_VALUES_rec.TERR_QUAL_ID <> FND_API.G_MISS_NUM) ) THEN
2008
2009 -- bind the input variables
2010 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_7', p_TERR_VALUES_rec.TERR_QUAL_ID);
2011
2012 END IF;
2013
2014 IF ( (p_TERR_VALUES_rec.COMPARISON_OPERATOR IS NOT NULL) AND
2015 (p_TERR_VALUES_rec.COMPARISON_OPERATOR <> FND_API.G_MISS_CHAR) ) THEN
2016
2017 -- bind the input variables
2018 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_9', p_TERR_VALUES_rec.COMPARISON_OPERATOR);
2019
2020 END IF;
2021
2022 IF ( (p_TERR_VALUES_rec.LOW_VALUE_CHAR IS NOT NULL) AND
2023 (p_TERR_VALUES_rec.LOW_VALUE_CHAR <> FND_API.G_MISS_CHAR) ) THEN
2024
2025 --dbms_output.put_line( 'Value of p_TERR_VALUES_rec.LOW_VALUE_CHAR = ' ||
2026 -- p_TERR_VALUES_rec.LOW_VALUE_CHAR);
2027
2028 -- bind the input variables
2029 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_10', p_TERR_VALUES_rec.LOW_VALUE_CHAR);
2030
2031 END IF;
2032
2033 IF ( (p_TERR_VALUES_rec.HIGH_VALUE_CHAR IS NOT NULL) AND
2034 (p_TERR_VALUES_rec.HIGH_VALUE_CHAR <> FND_API.G_MISS_CHAR) ) THEN
2035
2036 -- bind the input variables
2037 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_11', p_TERR_VALUES_rec.HIGH_VALUE_CHAR);
2038
2039 END IF;
2040
2041 IF ( (p_TERR_VALUES_rec.LOW_VALUE_NUMBER IS NOT NULL) AND
2042 (p_TERR_VALUES_rec.LOW_VALUE_NUMBER <> FND_API.G_MISS_NUM) ) THEN
2043
2044 -- bind the input variables
2045 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_12', p_TERR_VALUES_rec.LOW_VALUE_NUMBER);
2046
2047 END IF;
2048
2049 IF ( (p_TERR_VALUES_rec.HIGH_VALUE_NUMBER IS NOT NULL) AND
2050 (p_TERR_VALUES_rec.HIGH_VALUE_NUMBER <> FND_API.G_MISS_NUM) ) THEN
2051
2052 -- bind the input variables
2053 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_13', p_TERR_VALUES_rec.HIGH_VALUE_NUMBER);
2054
2055 END IF;
2056
2057
2058 IF ( (p_TERR_VALUES_rec.INTEREST_TYPE_ID IS NOT NULL) AND
2059 (p_TERR_VALUES_rec.INTEREST_TYPE_ID <> FND_API.G_MISS_NUM) ) THEN
2060
2061 -- bind the input variables
2062 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_15', p_TERR_VALUES_rec.INTEREST_TYPE_ID);
2063
2064 END IF;
2065
2066 IF ( (p_TERR_VALUES_rec.PRIMARY_INTEREST_CODE_ID IS NOT NULL) AND
2067 (p_TERR_VALUES_rec.PRIMARY_INTEREST_CODE_ID <> FND_API.G_MISS_NUM) ) THEN
2068
2069 -- bind the input variables
2070 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_16', p_TERR_VALUES_rec.PRIMARY_INTEREST_CODE_ID);
2071
2072 END IF;
2073
2074 IF ( (p_TERR_VALUES_rec.SECONDARY_INTEREST_CODE_ID IS NOT NULL) AND
2075 (p_TERR_VALUES_rec.SECONDARY_INTEREST_CODE_ID <> FND_API.G_MISS_NUM) ) THEN
2076
2077 -- bind the input variables
2078 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_17', p_TERR_VALUES_rec.SECONDARY_INTEREST_CODE_ID);
2079
2080 END IF;
2081
2082 IF ( (p_TERR_VALUES_rec.CURRENCY_CODE IS NOT NULL) AND
2083 (p_TERR_VALUES_rec.CURRENCY_CODE <> FND_API.G_MISS_CHAR) ) THEN
2084
2085 -- bind the input variables
2086 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_18', p_TERR_VALUES_rec.CURRENCY_CODE);
2087
2088 END IF;
2089
2090 IF ( (p_TERR_VALUES_rec.ID_USED_FLAG IS NOT NULL) AND
2091 (p_TERR_VALUES_rec.ID_USED_FLAG <> FND_API.G_MISS_CHAR) ) THEN
2092
2093 -- bind the input variables
2094 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_19', p_TERR_VALUES_rec.ID_USED_FLAG);
2095
2096 END IF;
2097
2098 IF ( (p_TERR_VALUES_rec.LOW_VALUE_CHAR_ID IS NOT NULL) AND
2099 (p_TERR_VALUES_rec.LOW_VALUE_CHAR_ID <> FND_API.G_MISS_NUM) ) THEN
2100
2101 -- bind the input variables
2102 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_VALUES_20', p_TERR_VALUES_rec.LOW_VALUE_CHAR_ID);
2103
2104 END IF;
2105
2106 /* Debug Message */
2107 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2108 THEN
2109 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
2110 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
2111 FND_MSG_PUB.Add;
2112 END IF;
2113
2114 END gen_bind;
2115
2116
2117
2118 -----------------------------------------------------------------------
2119 -- Territory Resources
2120 -----------------------------------------------------------------------
2121 PROCEDURE gen_where_clause (
2122 p_dsql_csr IN NUMBER,
2123 p_Terr_Rsc_Rec IN Terr_Rsc_Rec_Type,
2124 x_where_clause IN OUT NOCOPY VARCHAR2,
2125 x_use_flag IN OUT NOCOPY VARCHAR2
2126 )
2127 IS
2128
2129 l_proc_name VARCHAR2(30) := 'Gen_Where: Terr_Rsc';
2130
2131 /* cursors to check if wildcard values '%' and '_' have been passed as item values */
2132 CURSOR c_chk_str1 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '%', 1, 1) FROM DUAL;
2133 CURSOR c_chk_str2 (p_rec_item VARCHAR2) IS SELECT INSTR(p_rec_item, '_', 1, 1) FROM DUAL;
2134
2135 /* return values from cursors */
2136 str_csr1 NUMBER;
2137 str_csr2 NUMBER;
2138
2139 l_operator VARCHAR2(10);
2140 l_where_clause VARCHAR2(2000);
2141
2142 BEGIN
2143
2144 /* Debug Message */
2145 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2146 THEN
2147 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
2148 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
2149 FND_MSG_PUB.Add;
2150 END IF;
2151
2152 IF ( (p_TERR_RSC_rec.TERR_RSC_ID IS NOT NULL) AND
2153 (p_TERR_RSC_rec.TERR_RSC_ID <> FND_API.G_MISS_NUM) ) THEN
2154
2155 x_use_flag := 'Y';
2156 l_where_clause := l_where_clause || 'AND JTRV.TERR_RSC_ID = :p_TERR_RSC_1 ';
2157
2158 END IF;
2159
2160 IF ( (p_TERR_RSC_rec.TERR_ID IS NOT NULL) AND
2161 (p_TERR_RSC_rec.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
2162
2163 x_use_flag := 'Y';
2164 l_where_clause := l_where_clause || 'AND JTRV.TERR_ID = :p_TERR_RSC_7 ';
2165
2166 END IF;
2167
2168 IF ( (p_TERR_RSC_rec.RESOURCE_ID IS NOT NULL) AND
2169 (p_TERR_RSC_rec.RESOURCE_ID <> FND_API.G_MISS_NUM) ) THEN
2170
2171 x_use_flag := 'Y';
2172 l_where_clause := l_where_clause || 'AND JTRV.RESOURCE_ID = :p_TERR_RSC_8 ';
2173
2174 END IF;
2175
2176 IF ( (p_TERR_RSC_rec.RESOURCE_TYPE IS NOT NULL) AND
2177 (p_TERR_RSC_rec.RESOURCE_TYPE <> FND_API.G_MISS_CHAR) ) THEN
2178
2179 -- check if item value contains '%' wildcard
2180 OPEN c_chk_str1 ( p_TERR_RSC_rec.RESOURCE_TYPE);
2181 FETCH c_chk_str1 INTO str_csr1;
2182 CLOSE c_chk_str1;
2183
2184 IF ( str_csr1 <> 0 ) THEN
2185 l_operator := 'LIKE';
2186 ELSE
2187
2188 -- check if item value contains '_' wildcard
2189 OPEN c_chk_str2 ( p_TERR_RSC_rec.RESOURCE_TYPE);
2190 FETCH c_chk_str2 INTO str_csr2;
2191 CLOSE c_chk_str2;
2192
2193 IF ( str_csr2 <> 0 ) THEN
2194 l_operator := 'LIKE';
2195 ELSE
2196 l_operator := '=';
2197 END IF;
2198
2199 END IF;
2200
2201 x_use_flag := 'Y';
2202 l_where_clause := l_where_clause || 'AND JTRV.RESOURCE_TYPE ' ||
2203 l_operator || ' :p_TERR_RSC_9 ';
2204
2205 END IF;
2206
2207 IF ( (p_TERR_RSC_rec.ROLE IS NOT NULL) AND
2208 (p_TERR_RSC_rec.ROLE <> FND_API.G_MISS_CHAR) ) THEN
2209
2210 -- check if item value contains '%' wildcard
2211 OPEN c_chk_str1 ( p_TERR_RSC_rec.ROLE);
2212 FETCH c_chk_str1 INTO str_csr1;
2213 CLOSE c_chk_str1;
2214
2215 IF ( str_csr1 <> 0 ) THEN
2216 l_operator := 'LIKE';
2217 ELSE
2218
2219 -- check if item value contains '_' wildcard
2220 OPEN c_chk_str2 ( p_TERR_RSC_rec.ROLE);
2221 FETCH c_chk_str2 INTO str_csr2;
2222 CLOSE c_chk_str2;
2223
2224 IF ( str_csr2 <> 0 ) THEN
2225 l_operator := 'LIKE';
2226 ELSE
2227 l_operator := '=';
2228 END IF;
2229
2230 END IF;
2231
2232 x_use_flag := 'Y';
2233 l_where_clause := l_where_clause || 'AND JTRV.ROLE ' ||
2234 l_operator || ' :p_TERR_RSC_10 ';
2235
2236
2237 END IF;
2238
2239 IF ( (p_TERR_RSC_rec.PRIMARY_CONTACT_FLAG IS NOT NULL) AND
2240 (p_TERR_RSC_rec.PRIMARY_CONTACT_FLAG <> FND_API.G_MISS_CHAR) ) THEN
2241
2242 x_use_flag := 'Y';
2243 l_where_clause := l_where_clause || 'AND JTRV.PRIMARY_CONTACT_FLAG = :p_TERR_RSC_11';
2244
2245 END IF;
2246
2247 IF ( (p_TERR_RSC_rec.START_DATE_ACTIVE IS NOT NULL) AND
2248 (p_TERR_RSC_rec.START_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
2249
2250 -- check if item value contains '%' wildcard
2251 OPEN c_chk_str1 ( p_TERR_RSC_rec.START_DATE_ACTIVE);
2252 FETCH c_chk_str1 INTO str_csr1;
2253 CLOSE c_chk_str1;
2254
2255 IF ( str_csr1 <> 0 ) THEN
2256 l_operator := 'LIKE';
2257 ELSE
2258
2259 -- check if item value contains '_' wildcard
2260 OPEN c_chk_str2 ( p_TERR_RSC_rec.START_DATE_ACTIVE);
2261 FETCH c_chk_str2 INTO str_csr2;
2262 CLOSE c_chk_str2;
2263
2264 IF ( str_csr2 <> 0 ) THEN
2265 l_operator := 'LIKE';
2266 ELSE
2267 l_operator := '=';
2268 END IF;
2269
2270 END IF;
2271
2272 x_use_flag := 'Y';
2273 l_where_clause := l_where_clause || 'AND JTRV.START_DATE_ACTIVE ' ||
2274 l_operator || ' :p_TERR_RSC_12 ';
2275
2276 END IF;
2277
2278 IF ( (p_TERR_RSC_rec.END_DATE_ACTIVE IS NOT NULL) AND
2279 (p_TERR_RSC_rec.END_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
2280
2281 -- check if item value contains '%' wildcard
2282 OPEN c_chk_str1 ( p_TERR_RSC_rec.END_DATE_ACTIVE);
2283 FETCH c_chk_str1 INTO str_csr1;
2284 CLOSE c_chk_str1;
2285
2286 IF ( str_csr1 <> 0 ) THEN
2287 l_operator := 'LIKE';
2288 ELSE
2289
2290 -- check if item value contains '_' wildcard
2291 OPEN c_chk_str2 ( p_TERR_RSC_rec.END_DATE_ACTIVE);
2292 FETCH c_chk_str2 INTO str_csr2;
2293 CLOSE c_chk_str2;
2294
2295 IF ( str_csr2 <> 0 ) THEN
2296 l_operator := 'LIKE';
2297 ELSE
2298 l_operator := '=';
2299 END IF;
2300
2301 END IF;
2302
2303 x_use_flag := 'Y';
2304 l_where_clause := l_where_clause || 'AND JTRV.END_DATE_ACTIVE ' ||
2305 l_operator || ' :p_TERR_RSC_13 ';
2306
2307 END IF;
2308
2309 IF ( (p_TERR_RSC_rec.FULL_ACCESS_FLAG IS NOT NULL) AND
2310 (p_TERR_RSC_rec.FULL_ACCESS_FLAG <> FND_API.G_MISS_CHAR) ) THEN
2311
2312 x_use_flag := 'Y';
2313 l_where_clause := l_where_clause || 'AND JTRV.FULL_ACCESS_FLAG = :p_TERR_RSC_14';
2314
2315 END IF;
2316
2317 x_where_clause := x_where_clause || l_where_clause;
2318
2319 /* Debug Message */
2320 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2321 THEN
2322 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
2323 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
2324 FND_MSG_PUB.Add;
2325 END IF;
2326
2327
2328 END gen_where_clause;
2329
2330
2331 PROCEDURE gen_bind (
2332 p_dsql_csr IN NUMBER,
2333 p_Terr_Rsc_Rec IN Terr_Rsc_Rec_Type
2334 )
2335 IS
2336 l_proc_name VARCHAR2(30) := 'Gen_Bind: Terr_Rsc';
2337
2338 BEGIN
2339
2340 /* Debug Message */
2341 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2342 THEN
2343 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
2344 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
2345 FND_MSG_PUB.Add;
2346 END IF;
2347
2348 IF ( (p_TERR_RSC_rec.TERR_RSC_ID IS NOT NULL) AND
2349 (p_TERR_RSC_rec.TERR_RSC_ID <> FND_API.G_MISS_NUM) ) THEN
2350
2351 -- bind the input variables
2352 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_RSC_1', p_TERR_RSC_rec.TERR_RSC_ID);
2353
2354 END IF;
2355
2356 IF ( (p_TERR_RSC_rec.TERR_ID IS NOT NULL) AND
2357 (p_TERR_RSC_rec.TERR_ID <> FND_API.G_MISS_NUM) ) THEN
2358
2359 -- bind the input variables
2360 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_RSC_7', p_TERR_RSC_rec.TERR_ID);
2361
2362 END IF;
2363
2364 IF ( (p_TERR_RSC_rec.RESOURCE_ID IS NOT NULL) AND
2365 (p_TERR_RSC_rec.RESOURCE_ID <> FND_API.G_MISS_NUM) ) THEN
2366
2367 -- bind the input variables
2368 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_RSC_8', p_TERR_RSC_rec.RESOURCE_ID);
2369
2370 END IF;
2371
2372 IF ( (p_TERR_RSC_rec.RESOURCE_TYPE IS NOT NULL) AND
2373 (p_TERR_RSC_rec.RESOURCE_TYPE <> FND_API.G_MISS_CHAR) ) THEN
2374
2375 -- bind the input variables
2376 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_RSC_9', p_TERR_RSC_rec.RESOURCE_TYPE);
2377
2378 END IF;
2379
2380 IF ( (p_TERR_RSC_rec.ROLE IS NOT NULL) AND
2381 (p_TERR_RSC_rec.ROLE <> FND_API.G_MISS_CHAR) ) THEN
2382
2383 -- bind the input variables
2384 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_RSC_10', p_TERR_RSC_rec.ROLE);
2385
2386 END IF;
2387
2388 IF ( (p_TERR_RSC_rec.PRIMARY_CONTACT_FLAG IS NOT NULL) AND
2389 (p_TERR_RSC_rec.PRIMARY_CONTACT_FLAG <> FND_API.G_MISS_CHAR) ) THEN
2390
2391 -- bind the input variables
2392 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_RSC_11', p_TERR_RSC_rec.PRIMARY_CONTACT_FLAG);
2393
2394 END IF;
2395
2396 IF ( (p_TERR_RSC_rec.START_DATE_ACTIVE IS NOT NULL) AND
2397 (p_TERR_RSC_rec.START_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
2398
2399 -- bind the input variables
2400 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_RSC_12', p_TERR_RSC_rec.START_DATE_ACTIVE);
2401
2402 END IF;
2403
2404 IF ( (p_TERR_RSC_rec.END_DATE_ACTIVE IS NOT NULL) AND
2405 (p_TERR_RSC_rec.END_DATE_ACTIVE <> FND_API.G_MISS_DATE) ) THEN
2406
2407 -- bind the input variables
2408 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_RSC_13', p_TERR_RSC_rec.END_DATE_ACTIVE);
2409
2410 END IF;
2411
2412 IF ( (p_TERR_RSC_rec.FULL_ACCESS_FLAG IS NOT NULL) AND
2413 (p_TERR_RSC_rec.FULL_ACCESS_FLAG <> FND_API.G_MISS_CHAR) ) THEN
2414
2415 -- bind the input variables
2416 DBMS_SQL.BIND_VARIABLE(p_dsql_csr, ':p_TERR_RSC_14', p_TERR_RSC_rec.FULL_ACCESS_FLAG);
2417
2418 END IF;
2419
2420 /* Debug Message */
2421 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2422 THEN
2423 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
2424 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
2425 FND_MSG_PUB.Add;
2426 END IF;
2427
2428 END gen_bind;
2429
2430
2431
2432 -----------------------------------------------------------------------
2433 -- ORDER BY CLAUSE
2434 -----------------------------------------------------------------------
2435 PROCEDURE gen_order_by_clause(
2436 x_return_status OUT NOCOPY VARCHAR2,
2437 x_msg_count OUT NOCOPY NUMBER,
2438 x_msg_data OUT NOCOPY VARCHAR2,
2439 p_order_by_rec IN order_by_rec_type,
2440 x_order_by_clause OUT NOCOPY VARCHAR2
2441 )
2442 IS
2443
2444 l_proc_name VARCHAR2(30) := 'Gen_Order_By_Clause';
2445
2446 l_order_by_clause VARCHAR2(1000) := FND_API.G_MISS_CHAR;
2447
2448 l_util_order_by_tbl JTF_CTM_UTILITY_PVT.Util_order_by_tbl_type;
2449
2450 BEGIN
2451
2452 /* Debug Message */
2453 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2454 THEN
2455 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
2456 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
2457 FND_MSG_PUB.Add;
2458 END IF;
2459
2460 -- Hint: Developer should add more statements according to sort_rec_type
2461 -- Ex:
2462 -- l_util_order_by_tbl(1).col_choice := p_order_by_rec.customer_name;
2463 -- l_util_order_by_tbl(1).col_name := 'Customer_Name';
2464
2465 /* Debug Message */
2466 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2467 THEN
2468 FND_MESSAGE.Set_Name('JTF', 'Invoke Translate_OrderBy');
2469 FND_MSG_PUB.Add;
2470 END IF;
2471
2472
2473 JTF_CTM_UTILITY_PVT.Translate_OrderBy (
2474 p_api_version => 1.0,
2475 p_init_msg_list => FND_API.G_FALSE,
2476 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2477 x_return_status => x_return_status,
2478 x_msg_count => x_msg_count,
2479 x_msg_data => x_msg_data,
2480 p_order_by_tbl => l_util_order_by_tbl,
2481 x_order_by_clause => l_order_by_clause );
2482
2483 IF (l_order_by_clause IS NOT NULL) THEN
2484 x_order_by_clause := 'ORDER BY ' || l_order_by_clause;
2485 ELSE
2486 x_order_by_clause := NULL;
2487 END IF;
2488
2489 /* Debug Message */
2490 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2491 THEN
2492 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
2493 FND_MESSAGE.Set_Token('PROC_NAME', l_proc_name);
2494 FND_MSG_PUB.Add;
2495 END IF;
2496
2497 END gen_order_by_clause;
2498
2499
2500
2501
2502 -- ***************************************************
2503 -- start of comments
2504 -- ***************************************************
2505 --
2506 -- API name : Get_Territory_Header
2507 -- Type : PUBLIC
2508 -- Function : To get a list of territory headers
2509 --
2510 --
2511 -- Pre-reqs :
2512 -- Parameters:
2513 -- IN :
2514 -- Required
2515 -- Parameter Name Data Type Default
2516 -- p_Api_Version_Number NUMBER
2517 --
2518 -- Optional
2519 -- Parameter Name Data Type Default
2520 -- p_Init_Msg_List VARCHAR2 FND_API.G_FALSE
2521 -- p_terr_rec Terr_Rec_Type G_MISS_TERR_REC
2522 -- p_terr_type_rec Terr_Type_Rec_Type G_MISS_TERR_TYPE_REC
2523 -- p_terr_usg_rec Terr_Usgs_Rec_Type G_MISS_TERR_USGS_REC
2524 -- p_terr_rsc_rec Terr_Rsc_Rec_Type G_MISS_TERR_RSC_REC
2525 -- p_terr_qual_tbl Terr_Qual_Tbl_Type G_MISS_TERR_QUAL_TBL
2526 -- p_terr_values_tbl Terr_Values_Tbl_Type G_MISS_TERR_VALUES_TBL
2527 -- p_order_by_rec order_by_rec_type G_MISS_ORDER_BY_REC
2528 -- p_return_all_rec VARCHAR2 FND_API.G_FALSE
2529 -- p_num_rec_requested NUMBER 30
2530 -- p_start_rec_num NUMBER 1
2531 --
2532 -- OUT :
2533 -- Parameter Name Data Type
2534 -- x_Return_Status VARCHAR2(1)
2535 -- x_Msg_Count NUMBER
2536 -- x_Msg_Data VARCHAR2(2000)
2537 -- x_terr_header_tbl Terr_Header_Tbl_Type
2538 -- x_num_rec_returned NUMBER
2539 -- x_next_rec_num NUMBER
2540 -- x_total_num_rec NUMBER
2541 --
2542 --
2543 -- Notes:
2544 --
2545 --
2546 -- End of Comments
2547 --
2548 PROCEDURE Get_Territory_Header (
2549 p_Api_Version IN NUMBER,
2550 p_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
2551 x_return_status OUT NOCOPY VARCHAR2,
2552 x_msg_count OUT NOCOPY NUMBER,
2553 x_msg_data OUT NOCOPY VARCHAR2,
2554 p_terr_rec IN Terr_Rec_Type := G_MISS_TERR_REC,
2555 p_terr_type_rec IN Terr_Type_Rec_Type := G_MISS_TERR_TYPE_REC,
2556 p_terr_usg_rec IN Terr_Usgs_Rec_Type := G_MISS_TERR_USGS_REC,
2557 -- p_terr_qtype_usgs_tbl IN Terr_QType_Usgs_Tbl_Type := G_MISS_TERR_QTYPE_USGS_TBL,
2558 p_terr_rsc_rec IN Terr_Rsc_Rec_Type := G_MISS_TERR_RSC_REC,
2559 p_terr_qual_tbl IN Terr_Qual_Tbl_Type := G_MISS_TERR_QUAL_TBL,
2560 p_terr_values_tbl IN Terr_Values_Tbl_Type := G_MISS_TERR_VALUES_TBL,
2561 p_order_by_rec IN order_by_rec_type := G_MISS_ORDER_BY_REC,
2562 p_return_all_rec IN VARCHAR2 := FND_API.G_FALSE,
2563 p_num_rec_requested IN NUMBER := 30,
2564 p_start_rec_num IN NUMBER := 1,
2565 x_terr_header_tbl OUT NOCOPY Terr_Header_Tbl_Type,
2566 x_num_rec_returned OUT NOCOPY NUMBER,
2567 x_next_rec_num OUT NOCOPY NUMBER,
2568 x_total_num_rec OUT NOCOPY NUMBER
2569 )
2570 IS
2571
2572 l_api_name CONSTANT VARCHAR2(30) := 'Get_Territory_Header';
2573 l_api_version CONSTANT NUMBER := 1.0;
2574
2575 /* Local record counters */
2576 l_qtype_usgs_counter NUMBER := 0;
2577 l_qual_counter NUMBER := 0;
2578 l_val_counter NUMBER := 0;
2579 l_num_rec_returned NUMBER := 0; /* number of records returned by this call to API */
2580 l_next_rec_num NUMBER := 1;
2581
2582 /* TOTAL number of records returned by API */
2583 l_total_num_rec_returned NUMBER := 0;
2584
2585 /* Status local variable */
2586 l_return_status VARCHAR2(1);
2587
2588 /* Dynamic SQL statement elements */
2589 l_dsql_csr NUMBER;
2590 l_dummy NUMBER;
2591 l_dsql_str VARCHAR2(32767);
2592 l_select_clause VARCHAR2(32767);
2593 l_from_clause VARCHAR2(32767);
2594 l_where_clause VARCHAR2(32767);
2595 l_order_by_clause VARCHAR2(32767);
2596
2597 /* Local scratch records */
2598 l_terr_header_rec Terr_Header_Rec_Type;
2599
2600 /* flag variables */
2601 l_use_terr_flag VARCHAR2(1) := 'N';
2602 l_use_terr_type_flag VARCHAR2(1) := 'N';
2603 l_use_terr_usg_flag VARCHAR2(1) := 'N';
2604 l_use_terr_qtype_usg_flag VARCHAR2(1) := 'N';
2605 l_use_terr_qual_flag VARCHAR2(1) := 'N';
2606 l_use_terr_values_flag VARCHAR2(1) := 'N';
2607 l_use_terr_rsc_flag VARCHAR2(1) := 'N';
2608
2609
2610 BEGIN
2611
2612 --dbms_output.put_line('at API BEGIN');
2613
2614
2615 /* Standard call to check for call compatibility */
2616 IF NOT FND_API.Compatible_API_Call ( l_api_version,
2617 p_api_version,
2618 l_api_name,
2619 G_PKG_NAME)
2620 THEN
2621 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2622 END IF;
2623
2624 /* Initialize message list if p_init_msg_list is set to TRUE */
2625 IF FND_API.to_Boolean( p_init_msg_list )
2626 THEN
2627 FND_MSG_PUB.initialize;
2628 END IF;
2629
2630 /* Debug Message */
2631 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2632 THEN
2633 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
2634 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
2635 FND_MSG_PUB.Add;
2636 END IF;
2637
2638 /**********************************************************************************************
2639 ** API BODY START
2640 ***********************************************************************************************/
2641
2642 /* Initialize API return status to SUCCESS */
2643 l_return_status := FND_API.G_RET_STS_SUCCESS;
2644
2645 --dbms_output.put_line('at API body start, l_return_status = '|| l_return_status);
2646
2647
2648 /* *************************************************
2649 ** Generate Dynamic SQL based on criteria passed in.
2650 ** Doing this for performance. Indexes are disabled
2651 ** when using NVL within static SQL statement.
2652 ** Ignore condition when criteria is NULL
2653 */
2654
2655 /* Debug Message */
2656 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2657 THEN
2658 FND_MESSAGE.Set_Name('JTF', 'Open Cursor for Dynamic SQL');
2659 FND_MSG_PUB.Add;
2660 END IF;
2661
2662 /******************************/
2663 /* OPEN CURSOR for processing */
2664 /******************************/
2665 l_dsql_csr := dbms_sql.open_cursor;
2666
2667 --dbms_output.put_line('after open dsql cursor');
2668
2669
2670 /* Generate initial SQL statement: SELECT, FROM, and WHERE clauses
2671 ** Hint: Developer should modify gen_init_sql procedure.
2672 */
2673 gen_init_sql( l_select_clause, l_from_clause, l_where_clause );
2674
2675 --dbms_output.put_line('[1] l_select_clause');
2676 --dbms_output.put_line('[1] l_from_clause');
2677 --dbms_output.put_line('[1] l_where_clause');
2678
2679 --dbms_output.put_line('Dynamic creation of WHERE clause Start');
2680
2681 /******************************************************/
2682 /* generate where clause using the following entities */
2683 /******************************************************/
2684
2685 /* Hint: Developer should modify and implement
2686 ** the gen_where_clause procedure.
2687 ** This is an overloaded procedure.
2688 */
2689
2690 /***********************/
2691 /* territory */
2692 /***********************/
2693 gen_where_clause(l_dsql_csr, p_terr_rec, l_where_clause, l_use_terr_flag);
2694 --dbms_output.put_line('[2] l_where_clause = '|| l_where_clause);
2695
2696 /* Hint: if master/detail relationship, generate Where clause for lines level criteria */
2697
2698 /***********************/
2699 /* territory usages */
2700 /***********************/
2701 gen_where_clause(l_dsql_csr, p_terr_usg_rec, l_where_clause, l_use_terr_usg_flag);
2702 --dbms_output.put_line('[3] l_where_clause = '|| l_where_clause);
2703 --dbms_output.put_line('[3] l_from_clause = '|| l_from_clause);
2704
2705 /***********************/
2706 /* territory type */
2707 /***********************/
2708 gen_where_clause(l_dsql_csr, p_terr_type_rec, l_where_clause, l_use_terr_type_flag);
2709 --dbms_output.put_line('[4] l_where_clause = '|| l_where_clause);
2710 --dbms_output.put_line('[4] l_from_clause = '|| l_from_clause);
2711
2712 IF ( l_use_terr_type_flag = 'Y' ) THEN
2713 l_from_clause := 'JTF_TERR_TYPES JTTA, ' || l_from_clause;
2714 l_where_clause := l_where_clause ||
2715 ' AND JTOV.TERRITORY_TYPE_ID = JTTA.TERR_TYPE_ID ';
2716 END IF;
2717
2718
2719 /*****************************************************************/
2720 /* territory qualifier type usages (transactions + resources) */
2721 /*****************************************************************/
2722
2723 --IF ( p_terr_qtype_usgs_tbl.COUNT <> 0 ) THEN
2724 -- FOR l_qtype_usgs_counter IN p_terr_qtype_usgs_tbl.FIRST .. p_terr_qual_tbl.LAST LOOP
2725 --
2726 -- /* for each record in table */
2727 -- gen_where_clause( l_dsql_csr, p_terr_qtype_usgs_tbl(l_qtype_usgs_counter), l_where_clause
2728 -- , l_use_terr_qtype_usg_flag);
2729 --
2730 -- END LOOP;
2731 --END IF;
2732 --
2733 --IF ( l_use_terr_qtype_usg_flag = 'Y' ) THEN
2734 -- l_from_clause := 'JTF_TERR_TRANSACTIONS_V JTTV, ' || l_from_clause;
2735 -- l_where_clause := l_where_clause || ' AND JTTV.TERR_ID = JTOV.TERR_ID ';
2736 --END IF;
2737
2738 --dbms_output.put_line('[5] l_where_clause = '|| l_where_clause);
2739 --dbms_output.put_line('[5] l_from_clause = '|| l_from_clause);
2740
2741 /***************************/
2742 /* territory qualifiers */
2743 /***************************/
2744
2745 IF ( p_terr_qual_tbl.COUNT > 0 ) THEN
2746 FOR l_qual_counter IN p_terr_qual_tbl.FIRST .. p_terr_qual_tbl.LAST LOOP
2747
2748 --dbms_output.put_line('[6] l_where_clause = '|| l_where_clause);
2749
2750 /* for each record in table */
2751 gen_where_clause(l_dsql_csr, p_terr_qual_tbl(l_qual_counter), l_where_clause, l_use_terr_qual_flag);
2752
2753 END LOOP;
2754 END IF;
2755
2756 IF ( l_use_terr_qual_flag = 'Y' ) THEN
2757 l_from_clause := 'JTF_TERR_QUALIFIERS_V JTQV, ' || l_from_clause;
2758 l_where_clause := l_where_clause || ' AND JTQV.TERR_ID = JTOV.TERR_ID ';
2759 END IF;
2760
2761
2762 --dbms_output.put_line('[6] l_from_clause = '|| l_from_clause);
2763
2764 /***************************/
2765 /* territory values */
2766 /***************************/
2767
2768 IF ( p_terr_values_tbl.COUNT > 0 ) THEN
2769 FOR l_val_counter IN p_terr_values_tbl.FIRST .. p_terr_values_tbl.LAST LOOP
2770
2771 /* for each record in table */
2772 gen_where_clause( l_dsql_csr, p_terr_values_tbl(l_val_counter),
2773 l_where_clause, l_use_terr_values_flag);
2774
2775 END LOOP;
2776 END IF;
2777
2778 IF ( l_use_terr_values_flag = 'Y' ) THEN
2779
2780 /* join jtf_terr_qualifiers with jtf_terr
2781 ** and then jtf_terr_values with jtf_terr_qualifiers
2782 */
2783 IF ( l_use_terr_qual_flag <> 'Y' ) THEN
2784 l_from_clause := 'JTF_TERR_QUALIFIERS_V JTQV, ' || l_from_clause;
2785 l_where_clause := l_where_clause || ' AND JTQV.TERR_ID = JTOV.TERR_ID ';
2786 END IF;
2787
2788 l_from_clause := 'JTF_TERR_VALUES JTV, ' || l_from_clause;
2789 l_where_clause := l_where_clause || ' AND JTV.TERR_QUAL_ID = JTQV.TERR_QUAL_ID ';
2790 END IF;
2791
2792 --dbms_output.put_line('[7] l_where_clause = '|| l_where_clause);
2793 --dbms_output.put_line('[7] l_from_clause = '|| l_from_clause);
2794
2795 /***************************/
2796 /* territory resources */
2797 /***************************/
2798
2799 gen_where_clause(l_dsql_csr, p_terr_rsc_rec, l_where_clause, l_use_terr_rsc_flag);
2800
2801 IF ( l_use_terr_rsc_flag = 'Y' ) THEN
2802 l_from_clause := 'JTF_TERR_RESOURCES_V JTRV, ' || l_from_clause;
2803 l_where_clause := l_where_clause || ' AND JTRV.TERR_ID = JTOV.TERR_ID ';
2804 END IF;
2805
2806
2807 /* the FROM clause has been built right to left
2808 ** to make the SQL statement more efficient
2809 */
2810 l_from_clause := ' FROM ' || l_from_clause;
2811
2812 --dbms_output.put_line('[8] l_select_clause = '|| l_select_clause);
2813 --dbms_output.put_line('[8] l_from_clause = '|| l_from_clause);
2814 --dbms_output.put_line('[8] l_where_clause = '|| l_where_clause);
2815
2816 /* Generate order by clause */
2817 gen_order_by_clause ( l_return_status,
2818 x_msg_count,
2819 x_msg_data,
2820 p_order_by_rec,
2821 l_order_by_clause );
2822
2823 /* build string that will be used by dynamic SQL */
2824 l_dsql_str := l_select_clause || l_from_clause || l_where_clause || l_order_by_clause;
2825
2826
2827 --dbms_output.put_line('[9] about to parse query');
2828 /************************/
2829 /* parse the query */
2830 /************************/
2831 DBMS_SQL.PARSE(l_dsql_csr, l_dsql_str, DBMS_SQL.V7);
2832
2833 /************************/
2834 /* bind input variables */
2835 /************************/
2836
2837 IF (l_use_terr_flag = 'Y') THEN
2838 --dbms_output.put_line('[10] binding terr_rec variables');
2839 /* this is an overloaded procedure */
2840 gen_bind(l_dsql_csr, p_terr_rec);
2841 END IF;
2842
2843 /* Hint: if master/detail relationship, generate binds for lines level criteria */
2844
2845 IF (l_use_terr_usg_flag = 'Y') THEN
2846 --dbms_output.put_line('[11] binding terr_usg_rec variables');
2847 gen_bind(l_dsql_csr, p_terr_usg_rec);
2848 END IF;
2849
2850 IF (l_use_terr_type_flag = 'Y') THEN
2851 --dbms_output.put_line('[12] binding terr_type_rec variables');
2852 gen_bind(l_dsql_csr, p_terr_type_rec);
2853 END IF;
2854
2855 --IF (l_use_terr_qtype_usg_flag = 'Y') THEN
2856 -- FOR l_qtype_usgs_counter IN p_terr_qtype_usgs_tbl.FIRST .. p_terr_qtype_usgs_tbl.LAST LOOP
2857 -- /* for each record in table */
2858 -- gen_bind(l_dsql_csr, p_terr_qtype_usgs_tbl(l_qtype_usgs_counter));
2859 -- END LOOP;
2860 --END IF;
2861
2862 IF (l_use_terr_qual_flag = 'Y') THEN
2863 --dbms_output.put_line('[14] binding terr_qual_rec variables');
2864 FOR l_qual_counter IN 1 .. p_terr_qual_tbl.COUNT LOOP
2865 /* for each record in table */
2866 gen_bind(l_dsql_csr, p_terr_qual_tbl(l_qual_counter));
2867 END LOOP;
2868 END IF;
2869
2870 IF (l_use_terr_values_flag = 'Y') THEN
2871 --dbms_output.put_line('[15] binding terr_value_rec variables');
2872 FOR l_val_counter IN p_terr_values_tbl.FIRST .. p_terr_values_tbl.LAST LOOP
2873 /* for each record in table */
2874 gen_bind(l_dsql_csr, p_terr_values_tbl(l_val_counter));
2875 END LOOP;
2876 END IF;
2877
2878 IF (l_use_terr_rsc_flag = 'Y') THEN
2879 --dbms_output.put_line('[16] binding terr_rsc_rec variables');
2880 gen_bind(l_dsql_csr, p_terr_rsc_rec);
2881 END IF;
2882
2883 --dbms_output.put_line('[17] defining SQL columns');
2884 /* define columns */
2885 define_dsql_columns ( l_dsql_csr, l_terr_header_rec );
2886
2887 --dbms_output.put_line('[18] executing query');
2888 /* execute query */
2889 l_dummy := DBMS_SQL.EXECUTE ( l_dsql_csr );
2890
2891 /* Fetch rows into buffer, and then put in PL/SQL table */
2892 LOOP
2893
2894 /* exit at last row in cursor */
2895 IF (DBMS_SQL.FETCH_ROWS (l_dsql_csr) = 0 ) THEN
2896 EXIT;
2897 END IF;
2898
2899 /* all records are to be returned OR number of records requested is null
2900 ** OR number of records returned less than number of records requested
2901 */
2902 IF ( p_return_all_rec = FND_API.G_TRUE OR
2903 p_num_rec_requested = FND_API.G_MISS_NUM OR
2904 l_num_rec_returned < p_num_rec_requested ) THEN
2905
2906 /* retrieve values into columns */
2907 get_dsql_column_values ( l_dsql_csr, l_terr_header_rec);
2908
2909 /* increment total number of records returned counter */
2910 l_total_num_rec_returned := l_total_num_rec_returned + 1;
2911
2912 --dbms_output.put_line('fetching row ' || TO_CHAR(l_total_num_rec_returned));
2913
2914 /* TOTAL number of records returned is >= record to start returning from
2915 ** AND number of records returned is < number of records requested
2916 */
2917 IF ( l_total_num_rec_returned >= p_start_rec_num ) THEN
2918
2919 l_num_rec_returned := l_num_rec_returned + 1;
2920
2921 --dbms_output.put_line('returning row ' || TO_CHAR(l_num_rec_returned));
2922
2923 x_terr_header_tbl ( l_num_rec_returned ) := l_terr_header_rec;
2924
2925 --dbms_output.put_line( 'fetched header ' ||
2926 -- x_terr_header_tbl(l_num_rec_returned).terr_name);
2927
2928 END IF;
2929
2930 l_next_rec_num := l_total_num_rec_returned + 1;
2931
2932 END IF;
2933
2934 END LOOP;
2935
2936 /* close cursor */
2937 DBMS_SQL.CLOSE_CURSOR(l_dsql_csr);
2938
2939 /* save return variables */
2940 x_num_rec_returned := l_num_rec_returned;
2941 x_next_rec_num := l_next_rec_num;
2942 x_total_num_rec := l_total_num_rec_returned;
2943
2944 /* save return status */
2945 x_return_status := l_return_status;
2946
2947 /**********************************************************************************************
2948 ** API BODY END
2949 ***********************************************************************************************/
2950
2951 /* Debug Message */
2952 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
2953 THEN
2954 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
2955 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
2956 FND_MSG_PUB.Add;
2957 END IF;
2958
2959 /* Standard call to get message count and if count is 1, get message info. */
2960 FND_MSG_PUB.Count_And_Get
2961 ( p_count => x_msg_count,
2962 p_data => x_msg_data
2963 );
2964
2965 EXCEPTION
2966 WHEN FND_API.G_EXC_ERROR THEN
2967 x_return_status := FND_API.G_RET_STS_ERROR ;
2968 --dbms_output.put_line( 'FND_API.G_EXC_ERROR: return_status = '|| l_return_status );
2969
2970 FND_MSG_PUB.Count_And_Get
2971 ( p_count => x_msg_count,
2972 p_data => x_msg_data
2973 );
2974
2975
2976 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2977 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2978 --dbms_output.put_line( 'FND_API.G_EXC_UNEXPECTED_ERROR: return_status = '|| l_return_status );
2979
2980 FND_MSG_PUB.Count_And_Get
2981 ( p_count => x_msg_count,
2982 p_data => x_msg_data
2983 );
2984
2985 WHEN OTHERS THEN
2986 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2987
2988 --dbms_output.put_line( 'OTHERS: return_status = '|| l_return_status );
2989
2990 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
2991 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
2992 END IF;
2993
2994 FND_MSG_PUB.Count_And_Get
2995 ( p_count => x_msg_count,
2996 p_data => x_msg_data
2997 );
2998
2999 End Get_Territory_Header;
3000
3001
3002 -- ***************************************************
3003 -- start of comments
3004 -- ***************************************************
3005 --
3006 -- API name : Get_Territory_Details
3007 -- Type : PUBLIC
3008 -- Function : To get a territory's details
3009 --
3010 --
3011 -- Pre-reqs :
3012 -- Parameters:
3013 -- IN :
3014 -- Required
3015 -- Parameter Name Data Type Default
3016 -- p_Api_Version_Number NUMBER
3017 -- p_terr_id NUMBER FND_API.G_MISS_NUM
3018 --
3019 -- Optional
3020 -- Parameter Name Data Type Default
3021 -- p_Init_Msg_List VARCHAR2 FND_API.G_FALSE
3022 --
3023 -- OUT :
3024 -- Parameter Name Data Type
3025 -- x_Return_Status VARCHAR2(1)
3026 -- x_Msg_Count NUMBER
3027 -- x_Msg_Data VARCHAR2(2000)
3028 -- x_terr_rec Terr_Rec_Type
3029 -- x_terr_type_rec Terr_Type_Rec_Type
3030 -- x_terr_sub_terr_tbl Terr_Tbl_Type
3031 -- x_terr_usgs_tbl Terr_Usgs_Tbl_Type
3032 -- x_terr_qtype_usgs_tbl Terr_QType_Usgs_Tbl_Type
3033 -- x_terr_qual_tbl Terr_Qual_Tbl_Type
3034 -- x_terr_values_tbl Terr_Values_Tbl_Type
3035 -- x_terr_rsc_tbl Terr_Rsc_Tbl_Type
3036 --
3037 --
3038 -- Notes:
3039 --
3040 --
3041 -- End of Comments
3042 --
3043 PROCEDURE Get_Territory_Details (
3044 p_Api_Version IN NUMBER,
3045 p_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
3046 x_return_status OUT NOCOPY VARCHAR2,
3047 x_msg_count OUT NOCOPY NUMBER,
3048 x_msg_data OUT NOCOPY VARCHAR2,
3049 p_terr_id IN NUMBER := FND_API.G_MISS_NUM,
3050 x_terr_rec OUT NOCOPY Terr_Rec_Type,
3051 x_terr_type_rec OUT NOCOPY Terr_Type_Rec_Type,
3052 x_terr_sub_terr_tbl OUT NOCOPY Terr_Tbl_Type,
3053 x_terr_usgs_tbl OUT NOCOPY Terr_Usgs_Tbl_Type,
3054 x_terr_qtype_usgs_tbl OUT NOCOPY Terr_QType_Usgs_Tbl_Type,
3055 x_terr_qual_tbl OUT NOCOPY Terr_Qual_Tbl_Type,
3056 x_terr_values_tbl OUT NOCOPY Terr_Values_Tbl_Type,
3057 x_terr_rsc_tbl OUT NOCOPY Terr_Rsc_Tbl_Type
3058 )
3059 IS
3060
3061 l_api_name CONSTANT VARCHAR2(30) := 'Get_Territory_Details';
3062 l_api_version CONSTANT NUMBER := 1.0;
3063
3064 /**********************/
3065 /* cursor definitions */
3066 /**********************/
3067
3068 /* return territory record */
3069 CURSOR get_terr ( p_terr_id NUMBER) IS
3070 SELECT
3071 jtov.TERR_ID
3072 , jtov.LAST_UPDATE_DATE
3073 , jtov.LAST_UPDATED_BY
3074 , jtov.CREATION_DATE
3075 , jtov.CREATED_BY
3076 , jtov.LAST_UPDATE_LOGIN
3077 , jtov.REQUEST_ID
3078 , jtov.PROGRAM_APPLICATION_ID
3079 , jtov.PROGRAM_ID
3080 , jtov.PROGRAM_UPDATE_DATE
3081 , jtov.APPLICATION_SHORT_NAME
3082 , jtov.NAME
3083 , jtov.ENABLED_FLAG
3084 , jtov.START_DATE_ACTIVE
3085 , jtov.END_DATE_ACTIVE
3086 , jtov.PLANNED_FLAG
3087 , jtov.PARENT_TERRITORY_ID
3088 , jtov.TERRITORY_TYPE_ID
3089 , jtov.TEMPLATE_TERRITORY_ID
3090 , jtov.TEMPLATE_FLAG
3091 , jtov.ESCALATION_TERRITORY_ID
3092 , jtov.ESCALATION_TERRITORY_FLAG
3093 , jtov.OVERLAP_ALLOWED_FLAG
3094 , jtov.RANK
3095 , jtov.DESCRIPTION
3096 , jtov.UPDATE_FLAG
3097 , jtov.AUTO_ASSIGN_RESOURCES_FLAG
3098 , jtov.ATTRIBUTE_CATEGORY
3099 , jtov.ATTRIBUTE1
3100 , jtov.ATTRIBUTE2
3101 , jtov.ATTRIBUTE3
3102 , jtov.ATTRIBUTE4
3103 , jtov.ATTRIBUTE5
3104 , jtov.ATTRIBUTE6
3105 , jtov.ATTRIBUTE7
3106 , jtov.ATTRIBUTE8
3107 , jtov.ATTRIBUTE9
3108 , jtov.ATTRIBUTE10
3109 , jtov.ATTRIBUTE11
3110 , jtov.ATTRIBUTE12
3111 , jtov.ATTRIBUTE13
3112 , jtov.ATTRIBUTE14
3113 , jtov.ATTRIBUTE15
3114 , jtov.ORG_ID
3115 , jtov.TERR_TYPE_NAME
3116 , jtov.PARENT_TERR_NAME
3117 , jtov.ESCALATION_TERR_NAME
3118 , jtov.TEMPLATE_TERR_NAME
3119 , jtov.TERR_USG_ID
3120 , jtov.SOURCE_ID
3121 , jtov.TERR_USAGE
3122 FROM JTF_TERR_OVERVIEW_V jtov
3123 WHERE jtov.TERR_ID = p_terr_id;
3124
3125 /* return territory type */
3126 CURSOR get_terr_type ( p_terr_type_id NUMBER ) IS
3127 SELECT
3128 jtta.TERR_TYPE_ID
3129 , jtta.LAST_UPDATED_BY
3130 , jtta.LAST_UPDATE_DATE
3131 , jtta.CREATED_BY
3132 , jtta.CREATION_DATE
3133 , jtta.LAST_UPDATE_LOGIN
3134 , jtta.APPLICATION_SHORT_NAME
3135 , jtta.NAME
3136 , jtta.ENABLED_FLAG
3137 , jtta.DESCRIPTION
3138 , jtta.START_DATE_ACTIVE
3139 , jtta.END_DATE_ACTIVE
3140 , jtta.ATTRIBUTE_CATEGORY
3141 , jtta.ATTRIBUTE1
3142 , jtta.ATTRIBUTE2
3143 , jtta.ATTRIBUTE3
3144 , jtta.ATTRIBUTE4
3145 , jtta.ATTRIBUTE5
3146 , jtta.ATTRIBUTE6
3147 , jtta.ATTRIBUTE7
3148 , jtta.ATTRIBUTE8
3149 , jtta.ATTRIBUTE9
3150 , jtta.ATTRIBUTE10
3151 , jtta.ATTRIBUTE11
3152 , jtta.ATTRIBUTE12
3153 , jtta.ATTRIBUTE13
3154 , jtta.ATTRIBUTE14
3155 , jtta.ATTRIBUTE15
3156 , jtta.ORG_ID
3157 FROM JTF_TERR_TYPES jtta
3158 WHERE terr_type_id = p_terr_type_id;
3159
3160 /* return territory's (child) sub-territories */
3161 CURSOR get_sub_terr ( p_terr_id NUMBER) IS
3162 SELECT
3163 jtov.TERR_ID
3164 , jtov.LAST_UPDATE_DATE
3165 , jtov.LAST_UPDATED_BY
3166 , jtov.CREATION_DATE
3167 , jtov.CREATED_BY
3168 , jtov.LAST_UPDATE_LOGIN
3169 , jtov.REQUEST_ID
3170 , jtov.PROGRAM_APPLICATION_ID
3171 , jtov.PROGRAM_ID
3172 , jtov.PROGRAM_UPDATE_DATE
3173 , jtov.APPLICATION_SHORT_NAME
3174 , jtov.NAME
3175 , jtov.ENABLED_FLAG
3176 , jtov.START_DATE_ACTIVE
3177 , jtov.END_DATE_ACTIVE
3178 , jtov.PLANNED_FLAG
3179 , jtov.PARENT_TERRITORY_ID
3180 , jtov.TERRITORY_TYPE_ID
3181 , jtov.TEMPLATE_TERRITORY_ID
3182 , jtov.TEMPLATE_FLAG
3183 , jtov.ESCALATION_TERRITORY_ID
3184 , jtov.ESCALATION_TERRITORY_FLAG
3185 , jtov.OVERLAP_ALLOWED_FLAG
3186 , jtov.RANK
3187 , jtov.DESCRIPTION
3188 , jtov.UPDATE_FLAG
3189 , jtov.AUTO_ASSIGN_RESOURCES_FLAG
3190 , jtov.ATTRIBUTE_CATEGORY
3191 , jtov.ATTRIBUTE1
3192 , jtov.ATTRIBUTE2
3193 , jtov.ATTRIBUTE3
3194 , jtov.ATTRIBUTE4
3195 , jtov.ATTRIBUTE5
3196 , jtov.ATTRIBUTE6
3197 , jtov.ATTRIBUTE7
3198 , jtov.ATTRIBUTE8
3199 , jtov.ATTRIBUTE9
3200 , jtov.ATTRIBUTE10
3201 , jtov.ATTRIBUTE11
3202 , jtov.ATTRIBUTE12
3203 , jtov.ATTRIBUTE13
3204 , jtov.ATTRIBUTE14
3205 , jtov.ATTRIBUTE15
3206 , jtov.ORG_ID
3207 , jtov.TERR_TYPE_NAME
3208 , jtov.PARENT_TERR_NAME
3209 , jtov.ESCALATION_TERR_NAME
3210 , jtov.TEMPLATE_TERR_NAME
3211 , jtov.TERR_USG_ID
3212 , jtov.SOURCE_ID
3213 , jtov.TERR_USAGE
3214 FROM JTF_TERR_OVERVIEW_V jtov
3215 WHERE jtov.parent_territory_id = p_terr_id;
3216
3217 /* return territory usages */
3218 CURSOR get_terr_usgs ( p_terr_id NUMBER) IS
3219 SELECT
3220 jtua.TERR_USG_ID
3221 , jtua.LAST_UPDATE_DATE
3222 , jtua.LAST_UPDATED_BY
3223 , jtua.CREATION_DATE
3224 , jtua.CREATED_BY
3225 , jtua.LAST_UPDATE_LOGIN
3226 , jtua.TERR_ID
3227 , jtua.SOURCE_ID
3228 , jtua.ORG_ID
3229 , jse.MEANING USAGE
3230 FROM JTF_TERR_USGS jtua, JTF_SOURCES jse
3231 WHERE jtua.terr_id = p_terr_id
3232 AND jtua.SOURCE_ID = jse.SOURCE_ID;
3233
3234 /* return territory qualifier type usages and descriptions */
3235 CURSOR get_terr_qtype_usgs ( p_terr_id NUMBER) IS
3236 SELECT
3237 jttv.TERR_QTYPE_USG_ID
3238 , jttv.LAST_UPDATED_BY
3239 , jttv.LAST_UPDATE_DATE
3240 , jttv.CREATED_BY
3241 , jttv.CREATION_DATE
3242 , jttv.LAST_UPDATE_LOGIN
3243 , jttv.TERR_ID
3244 , jttv.QUAL_TYPE_USG_ID
3245 , jttv.ORG_ID
3246 , jttv.SOURCE_ID
3247 , jttv.QUAL_TYPE_ID
3248 , jttv.QUALIFIER_TYPE_NAME
3249 , jttv.QUALIFIER_TYPE_DESCRIPTION
3250 FROM JTF_TERR_TRANSACTIONS_V jttv
3251 WHERE jttv.terr_id = p_terr_id;
3252
3253
3254 /* return territory qualifiers and descriptions */
3255 CURSOR get_terr_qual ( p_terr_id NUMBER) IS
3256 SELECT
3257 jtqv.TERR_QUAL_ID
3258 , jtqv.LAST_UPDATE_DATE
3259 , jtqv.LAST_UPDATED_BY
3260 , jtqv.CREATION_DATE
3261 , jtqv.CREATED_BY
3262 , jtqv.LAST_UPDATE_LOGIN
3263 , jtqv.TERR_ID
3264 , jtqv.QUAL_USG_ID
3265 , jtqv.USE_TO_NAME_FLAG
3266 , jtqv.GENERATE_FLAG
3267 , jtqv.OVERLAP_ALLOWED_FLAG
3268 , jtqv.QUALIFIER_MODE
3269 , jtqv.ORG_ID
3270 , jtqv.DISPLAY_TYPE
3271 , jtqv.LOV_SQL
3272 , jtqv.CONVERT_TO_ID_FLAG
3273 , jtqv.QUAL_TYPE_ID
3274 , jtqv.QUALIFIER_TYPE_NAME
3275 , jtqv.QUALIFIER_TYPE_DESCRIPTION
3276 , jtqv.QUALIFIER_NAME
3277 FROM JTF_TERR_QUALIFIERS_V jtqv
3278 WHERE jtqv.terr_id = p_terr_id;
3279
3280 /* return territory qualifier values */
3281 CURSOR get_terr_values ( p_terr_id NUMBER) IS
3282 SELECT
3283 j1.TERR_VALUE_ID
3284 , j1.LAST_UPDATED_BY
3285 , j1.LAST_UPDATE_DATE
3286 , j1.CREATED_BY
3287 , j1.CREATION_DATE
3288 , j1.LAST_UPDATE_LOGIN
3289 , j1.TERR_QUAL_ID
3290 , j1.INCLUDE_FLAG
3291 , j1.COMPARISON_OPERATOR
3292 , j3.CONVERT_TO_ID_FLAG ID_USED_FLAG -- modified for bug # 4691184
3293 , j1.LOW_VALUE_CHAR_ID
3294 , j1.LOW_VALUE_CHAR
3295 , j1.HIGH_VALUE_CHAR
3296 , j1.LOW_VALUE_NUMBER
3297 , j1.HIGH_VALUE_NUMBER
3298 , j1.VALUE_SET
3299 , j1.INTEREST_TYPE_ID
3300 , j1.PRIMARY_INTEREST_CODE_ID
3301 , j1.SECONDARY_INTEREST_CODE_ID
3302 , j1.CURRENCY_CODE
3303 , j1.ORG_ID
3304 FROM JTF_TERR_VALUES j1, JTF_TERR_QUAL j2, JTF_QUAL_USGS j3
3305 WHERE j1.terr_qual_id = j2.terr_qual_id
3306 AND j2.terr_id = p_terr_id
3307 AND j3.qual_usg_id = j2.qual_usg_id;
3308
3309
3310 /* return territory resources */
3311 CURSOR get_terr_rsc ( p_terr_id NUMBER) IS
3312 SELECT
3313 JTRV.TERR_RSC_ID
3314 , JTRV.LAST_UPDATE_DATE
3315 , JTRV.LAST_UPDATED_BY
3316 , JTRV.CREATION_DATE
3317 , JTRV.CREATED_BY
3318 , JTRV.LAST_UPDATE_LOGIN
3319 , JTRV.TERR_ID
3320 , JTRV.RESOURCE_ID
3321 , JTRV.RESOURCE_TYPE
3322 , JTRV.ROLE
3323 , JTRV.PRIMARY_CONTACT_FLAG
3324 , JTRV.START_DATE_ACTIVE
3325 , JTRV.END_DATE_ACTIVE
3326 , JTRV.FULL_ACCESS_FLAG
3327 , JTRV.ORG_ID
3328 , JTRV.RESOURCE_NAME
3329 FROM JTF_TERR_RESOURCES_V JTRV
3330 WHERE terr_id = p_terr_id;
3331
3332
3333 /* Status local variable */
3334 l_return_status VARCHAR2(1);
3335
3336 /* Local scratch records */
3337 l_terr_rec Terr_Rec_Type;
3338 l_terr_type_rec Terr_Type_Rec_Type;
3339 l_terr_sub_terr_tbl Terr_Tbl_Type;
3340 l_terr_usgs_tbl Terr_Usgs_Tbl_Type;
3341 l_terr_qtype_usgs_tbl Terr_QType_Usgs_Tbl_Type;
3342 l_terr_qual_tbl Terr_Qual_Tbl_Type;
3343 l_terr_values_tbl Terr_Values_Tbl_Type;
3344 l_terr_rsc_tbl Terr_Rsc_Tbl_Type;
3345
3346 /* table counter */
3347 counter NUMBER := 0;
3348
3349 BEGIN
3350
3351 /* Standard call to check for call compatibility */
3352 IF NOT FND_API.Compatible_API_Call ( l_api_version,
3353 p_api_version,
3354 l_api_name,
3355 G_PKG_NAME)
3356 THEN
3357 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3358 END IF;
3359
3360 /* Initialize message list if p_init_msg_list is set to TRUE */
3361 IF FND_API.to_Boolean( p_init_msg_list )
3362 THEN
3363 FND_MSG_PUB.initialize;
3364 END IF;
3365
3366 /* Debug Message */
3367 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
3368 THEN
3369 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
3370 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
3371 FND_MSG_PUB.Add;
3372 END IF;
3373
3374
3375 /**********************************************************************************************
3376 ** API BODY START
3377 ***********************************************************************************************/
3378
3379
3380 /* Initialize API return status to SUCCESS */
3381 l_return_status := FND_API.G_RET_STS_SUCCESS;
3382
3383 /****************************/
3384 /* get the territory record */
3385 /****************************/
3386 OPEN get_terr ( p_terr_id );
3387 FETCH get_terr INTO
3388 l_terr_rec.TERR_ID
3389 , l_terr_rec.LAST_UPDATE_DATE
3390 , l_terr_rec.LAST_UPDATED_BY
3391 , l_terr_rec.CREATION_DATE
3392 , l_terr_rec.CREATED_BY
3393 , l_terr_rec.LAST_UPDATE_LOGIN
3394 , l_terr_rec.REQUEST_ID
3395 , l_terr_rec.PROGRAM_APPLICATION_ID
3396 , l_terr_rec.PROGRAM_ID
3397 , l_terr_rec.PROGRAM_UPDATE_DATE
3398 , l_terr_rec.APPLICATION_SHORT_NAME
3399 , l_terr_rec.NAME
3400 , l_terr_rec.ENABLED_FLAG
3401 , l_terr_rec.START_DATE_ACTIVE
3402 , l_terr_rec.END_DATE_ACTIVE
3403 , l_terr_rec.PLANNED_FLAG
3404 , l_terr_rec.PARENT_TERRITORY_ID
3405 , l_terr_rec.TERRITORY_TYPE_ID
3406 , l_terr_rec.TEMPLATE_TERRITORY_ID
3407 , l_terr_rec.TEMPLATE_FLAG
3408 , l_terr_rec.ESCALATION_TERRITORY_ID
3409 , l_terr_rec.ESCALATION_TERRITORY_FLAG
3410 , l_terr_rec.OVERLAP_ALLOWED_FLAG
3411 , l_terr_rec.RANK
3412 , l_terr_rec.DESCRIPTION
3413 , l_terr_rec.UPDATE_FLAG
3414 , l_terr_rec.AUTO_ASSIGN_RESOURCES_FLAG
3415 , l_terr_rec.ATTRIBUTE_CATEGORY
3416 , l_terr_rec.ATTRIBUTE1
3417 , l_terr_rec.ATTRIBUTE2
3418 , l_terr_rec.ATTRIBUTE3
3419 , l_terr_rec.ATTRIBUTE4
3420 , l_terr_rec.ATTRIBUTE5
3421 , l_terr_rec.ATTRIBUTE6
3422 , l_terr_rec.ATTRIBUTE7
3423 , l_terr_rec.ATTRIBUTE8
3424 , l_terr_rec.ATTRIBUTE9
3425 , l_terr_rec.ATTRIBUTE10
3426 , l_terr_rec.ATTRIBUTE11
3427 , l_terr_rec.ATTRIBUTE12
3428 , l_terr_rec.ATTRIBUTE13
3429 , l_terr_rec.ATTRIBUTE14
3430 , l_terr_rec.ATTRIBUTE15
3431 , l_terr_rec.ORG_ID
3432 , l_terr_rec.TERR_TYPE_NAME
3433 , l_terr_rec.PARENT_TERR_NAME
3434 , l_terr_rec.ESCALATION_TERR_NAME
3435 , l_terr_rec.TEMPLATE_TERR_NAME
3436 , l_terr_rec.TERR_USG_ID
3437 , l_terr_rec.SOURCE_ID
3438 , l_terr_rec.TERR_USAGE;
3439
3440 IF get_terr%NOTFOUND THEN
3441
3442 l_return_status := FND_API.G_RET_STS_ERROR;
3443
3444 /* Debug message */
3445 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
3446 FND_MESSAGE.Set_Name ('JTF', G_PKG_NAME || ': Territory record not found');
3447 FND_MSG_PUB.ADD;
3448 END IF;
3449 END IF;
3450
3451 CLOSE get_terr;
3452
3453 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3454 RAISE FND_API.G_EXC_ERROR;
3455 END IF;
3456
3457 --dbms_output.put_line( 'get_terr: return_status = '|| l_return_status ||
3458 -- ' terr_name = ' || l_terr_rec.name);
3459
3460 /*************************************************************************/
3461 /* if this territory has a territory type, get the territory type record */
3462 /*************************************************************************/
3463 IF (l_terr_rec.territory_type_id IS NOT NULL) THEN
3464
3465 OPEN get_terr_type ( l_terr_rec.territory_type_id );
3466 FETCH get_terr_type INTO
3467 l_terr_type_rec.TERR_TYPE_ID
3468 , l_terr_type_rec.LAST_UPDATED_BY
3469 , l_terr_type_rec.LAST_UPDATE_DATE
3470 , l_terr_type_rec.CREATED_BY
3471 , l_terr_type_rec.CREATION_DATE
3472 , l_terr_type_rec.LAST_UPDATE_LOGIN
3473 , l_terr_type_rec.APPLICATION_SHORT_NAME
3474 , l_terr_type_rec.NAME
3475 , l_terr_type_rec.ENABLED_FLAG
3476 , l_terr_type_rec.DESCRIPTION
3477 , l_terr_type_rec.START_DATE_ACTIVE
3478 , l_terr_type_rec.END_DATE_ACTIVE
3479 , l_terr_type_rec.ATTRIBUTE_CATEGORY
3480 , l_terr_type_rec.ATTRIBUTE1
3481 , l_terr_type_rec.ATTRIBUTE2
3482 , l_terr_type_rec.ATTRIBUTE3
3483 , l_terr_type_rec.ATTRIBUTE4
3484 , l_terr_type_rec.ATTRIBUTE5
3485 , l_terr_type_rec.ATTRIBUTE6
3486 , l_terr_type_rec.ATTRIBUTE7
3487 , l_terr_type_rec.ATTRIBUTE8
3488 , l_terr_type_rec.ATTRIBUTE9
3489 , l_terr_type_rec.ATTRIBUTE10
3490 , l_terr_type_rec.ATTRIBUTE11
3491 , l_terr_type_rec.ATTRIBUTE12
3492 , l_terr_type_rec.ATTRIBUTE13
3493 , l_terr_type_rec.ATTRIBUTE14
3494 , l_terr_type_rec.ATTRIBUTE15
3495 , l_terr_type_rec.ORG_ID;
3496
3497 IF get_terr_type%NOTFOUND THEN
3498
3499 /* Debug message */
3500 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
3501 FND_MESSAGE.Set_Name ('JTF', G_PKG_NAME || ': Terr Type record not found');
3502 FND_MSG_PUB.ADD;
3503 END IF;
3504 END IF;
3505
3506 CLOSE get_terr_type;
3507 END IF;
3508
3509 --dbms_output.put_line( 'get_terr_type: return_status = '|| l_return_status ||
3510 -- ' terr_type_name = ' || l_terr_type_rec.name);
3511
3512 /***********************/
3513 /* get sub territories */
3514 /***********************/
3515 counter := 0;
3516
3517 OPEN get_sub_terr ( p_terr_id );
3518 LOOP
3519 FETCH get_sub_terr INTO
3520 l_terr_sub_terr_tbl(counter).TERR_ID
3521 , l_terr_sub_terr_tbl(counter).LAST_UPDATE_DATE
3522 , l_terr_sub_terr_tbl(counter).LAST_UPDATED_BY
3523 , l_terr_sub_terr_tbl(counter).CREATION_DATE
3524 , l_terr_sub_terr_tbl(counter).CREATED_BY
3525 , l_terr_sub_terr_tbl(counter).LAST_UPDATE_LOGIN
3526 , l_terr_sub_terr_tbl(counter).REQUEST_ID
3527 , l_terr_sub_terr_tbl(counter).PROGRAM_APPLICATION_ID
3528 , l_terr_sub_terr_tbl(counter).PROGRAM_ID
3529 , l_terr_sub_terr_tbl(counter).PROGRAM_UPDATE_DATE
3530 , l_terr_sub_terr_tbl(counter).APPLICATION_SHORT_NAME
3531 , l_terr_sub_terr_tbl(counter).NAME
3532 , l_terr_sub_terr_tbl(counter).ENABLED_FLAG
3533 , l_terr_sub_terr_tbl(counter).START_DATE_ACTIVE
3534 , l_terr_sub_terr_tbl(counter).END_DATE_ACTIVE
3535 , l_terr_sub_terr_tbl(counter).PLANNED_FLAG
3536 , l_terr_sub_terr_tbl(counter).PARENT_TERRITORY_ID
3537 , l_terr_sub_terr_tbl(counter).TERRITORY_TYPE_ID
3538 , l_terr_sub_terr_tbl(counter).TEMPLATE_TERRITORY_ID
3539 , l_terr_sub_terr_tbl(counter).TEMPLATE_FLAG
3540 , l_terr_sub_terr_tbl(counter).ESCALATION_TERRITORY_ID
3541 , l_terr_sub_terr_tbl(counter).ESCALATION_TERRITORY_FLAG
3542 , l_terr_sub_terr_tbl(counter).OVERLAP_ALLOWED_FLAG
3543 , l_terr_sub_terr_tbl(counter).RANK
3544 , l_terr_sub_terr_tbl(counter).DESCRIPTION
3545 , l_terr_sub_terr_tbl(counter).UPDATE_FLAG
3546 , l_terr_sub_terr_tbl(counter).AUTO_ASSIGN_RESOURCES_FLAG
3547 , l_terr_sub_terr_tbl(counter).ATTRIBUTE_CATEGORY
3548 , l_terr_sub_terr_tbl(counter).ATTRIBUTE1
3549 , l_terr_sub_terr_tbl(counter).ATTRIBUTE2
3550 , l_terr_sub_terr_tbl(counter).ATTRIBUTE3
3551 , l_terr_sub_terr_tbl(counter).ATTRIBUTE4
3552 , l_terr_sub_terr_tbl(counter).ATTRIBUTE5
3553 , l_terr_sub_terr_tbl(counter).ATTRIBUTE6
3554 , l_terr_sub_terr_tbl(counter).ATTRIBUTE7
3555 , l_terr_sub_terr_tbl(counter).ATTRIBUTE8
3556 , l_terr_sub_terr_tbl(counter).ATTRIBUTE9
3557 , l_terr_sub_terr_tbl(counter).ATTRIBUTE10
3558 , l_terr_sub_terr_tbl(counter).ATTRIBUTE11
3559 , l_terr_sub_terr_tbl(counter).ATTRIBUTE12
3560 , l_terr_sub_terr_tbl(counter).ATTRIBUTE13
3561 , l_terr_sub_terr_tbl(counter).ATTRIBUTE14
3562 , l_terr_sub_terr_tbl(counter).ATTRIBUTE15
3563 , l_terr_sub_terr_tbl(counter).ORG_ID
3564 , l_terr_sub_terr_tbl(counter).TERR_TYPE_NAME
3565 , l_terr_sub_terr_tbl(counter).PARENT_TERR_NAME
3566 , l_terr_sub_terr_tbl(counter).ESCALATION_TERR_NAME
3567 , l_terr_sub_terr_tbl(counter).TEMPLATE_TERR_NAME
3568 , l_terr_sub_terr_tbl(counter).TERR_USG_ID
3569 , l_terr_sub_terr_tbl(counter).SOURCE_ID
3570 , l_terr_sub_terr_tbl(counter).TERR_USAGE;
3571
3572 EXIT WHEN get_sub_terr%NOTFOUND;
3573
3574 --dbms_output.put_line( 'get_sub_terr: counter = '|| counter ||
3575 -- ' terr_name = ' || l_terr_sub_terr_tbl(counter).name);
3576
3577 counter := counter + 1;
3578
3579 END LOOP;
3580 CLOSE get_sub_terr;
3581
3582 --dbms_output.put_line( 'AFTER get_sub_terr: counter = '|| counter );
3583
3584 /************************/
3585 /* get territory usages */
3586 /************************/
3587 counter := 0;
3588
3589 OPEN get_terr_usgs ( p_terr_id );
3590 LOOP
3591 FETCH get_terr_usgs INTO
3592 l_terr_usgs_tbl(counter).TERR_USG_ID
3593 , l_terr_usgs_tbl(counter).LAST_UPDATE_DATE
3594 , l_terr_usgs_tbl(counter).LAST_UPDATED_BY
3595 , l_terr_usgs_tbl(counter).CREATION_DATE
3596 , l_terr_usgs_tbl(counter).CREATED_BY
3597 , l_terr_usgs_tbl(counter).LAST_UPDATE_LOGIN
3598 , l_terr_usgs_tbl(counter).TERR_ID
3599 , l_terr_usgs_tbl(counter).SOURCE_ID
3600 , l_terr_usgs_tbl(counter).ORG_ID
3601 , l_terr_usgs_tbl(counter).USAGE;
3602
3603 EXIT WHEN get_terr_usgs%NOTFOUND;
3604
3605 --dbms_output.put_line( 'get_terr_usgs: counter = '|| counter ||
3606 -- ' terr_usage = ' || l_terr_usgs_tbl(counter).source_id ||
3607 -- ' usage = ' || l_terr_usgs_tbl(counter).usage);
3608
3609 counter := counter + 1;
3610
3611 END LOOP;
3612 CLOSE get_terr_usgs;
3613
3614 --dbms_output.put_line( 'AFTER get_terr_usgs: counter = '|| counter );
3615
3616 /***************************************/
3617 /* get territory qualifier type usages */
3618 /***************************************/
3619 counter := 0;
3620
3621 OPEN get_terr_qtype_usgs ( p_terr_id );
3622 LOOP
3623 FETCH get_terr_qtype_usgs INTO
3624 l_terr_qtype_usgs_tbl(counter).TERR_QTYPE_USG_ID
3625 , l_terr_qtype_usgs_tbl(counter).LAST_UPDATED_BY
3626 , l_terr_qtype_usgs_tbl(counter).LAST_UPDATE_DATE
3627 , l_terr_qtype_usgs_tbl(counter).CREATED_BY
3628 , l_terr_qtype_usgs_tbl(counter).CREATION_DATE
3629 , l_terr_qtype_usgs_tbl(counter).LAST_UPDATE_LOGIN
3630 , l_terr_qtype_usgs_tbl(counter).TERR_ID
3631 , l_terr_qtype_usgs_tbl(counter).QUAL_TYPE_USG_ID
3632 , l_terr_qtype_usgs_tbl(counter).ORG_ID
3633 , l_terr_qtype_usgs_tbl(counter).SOURCE_ID
3634 , l_terr_qtype_usgs_tbl(counter).QUAL_TYPE_ID
3635 , l_terr_qtype_usgs_tbl(counter).QUALIFIER_TYPE_NAME
3636 , l_terr_qtype_usgs_tbl(counter).QUALIFIER_TYPE_DESCRIPTION;
3637
3638 EXIT WHEN get_terr_qtype_usgs%NOTFOUND;
3639
3640 --dbms_output.put_line( 'get_terr_qtype_usgs: counter = '|| counter ||
3641 -- ' terr_qtype_usg = ' ||
3642 -- l_terr_qtype_usgs_tbl(counter).qual_type_usg_id ||
3643 -- ' transaction = ' ||
3644 -- l_terr_qtype_usgs_tbl(counter).qualifier_type_description);
3645
3646 counter := counter + 1;
3647
3648 END LOOP;
3649 CLOSE get_terr_qtype_usgs;
3650
3651 --dbms_output.put_line( 'AFTER get_terr_qtype_usgs: counter = '|| counter );
3652
3653 /****************************/
3654 /* get territory qualifiers */
3655 /****************************/
3656 counter := 0;
3657
3658 OPEN get_terr_qual(p_terr_id);
3659 LOOP
3660 FETCH get_terr_qual INTO
3661 l_terr_qual_tbl(counter).TERR_QUAL_ID
3662 , l_terr_qual_tbl(counter).LAST_UPDATE_DATE
3663 , l_terr_qual_tbl(counter).LAST_UPDATED_BY
3664 , l_terr_qual_tbl(counter).CREATION_DATE
3665 , l_terr_qual_tbl(counter).CREATED_BY
3666 , l_terr_qual_tbl(counter).LAST_UPDATE_LOGIN
3667 , l_terr_qual_tbl(counter).TERR_ID
3668 , l_terr_qual_tbl(counter).QUAL_USG_ID
3669 , l_terr_qual_tbl(counter).USE_TO_NAME_FLAG
3670 , l_terr_qual_tbl(counter).GENERATE_FLAG
3671 , l_terr_qual_tbl(counter).OVERLAP_ALLOWED_FLAG
3672 , l_terr_qual_tbl(counter).QUALIFIER_MODE
3673 , l_terr_qual_tbl(counter).ORG_ID
3674 , l_terr_qual_tbl(counter).DISPLAY_TYPE
3675 , l_terr_qual_tbl(counter).LOV_SQL
3676 , l_terr_qual_tbl(counter).CONVERT_TO_ID_FLAG
3677 , l_terr_qual_tbl(counter).QUAL_TYPE_ID
3678 , l_terr_qual_tbl(counter).QUALIFIER_TYPE_NAME
3679 , l_terr_qual_tbl(counter).QUALIFIER_TYPE_DESCRIPTION
3680 , l_terr_qual_tbl(counter).QUALIFIER_NAME;
3681
3682 EXIT WHEN get_terr_qual%NOTFOUND;
3683
3684 --dbms_output.put_line( 'get_terr_qual: counter = '|| counter ||
3685 -- ' terr_qual = ' || l_terr_qual_tbl(counter).qual_usg_id ||
3686 -- ' qualifier_name = ' || l_terr_qual_tbl(counter).qualifier_name);
3687
3688 counter := counter + 1;
3689
3690 END LOOP;
3691 CLOSE get_terr_qual;
3692
3693 --dbms_output.put_line( 'AFTER get_terr_qual: counter = '|| counter );
3694
3695 /**********************************/
3696 /* get territory qualifier values */
3697 /**********************************/
3698 counter := 0;
3699
3700 OPEN get_terr_values ( p_terr_id );
3701 LOOP
3702 FETCH get_terr_values INTO
3703 l_terr_values_tbl(counter).TERR_VALUE_ID
3704 , l_terr_values_tbl(counter).LAST_UPDATED_BY
3705 , l_terr_values_tbl(counter).LAST_UPDATE_DATE
3706 , l_terr_values_tbl(counter).CREATED_BY
3707 , l_terr_values_tbl(counter).CREATION_DATE
3708 , l_terr_values_tbl(counter).LAST_UPDATE_LOGIN
3709 , l_terr_values_tbl(counter).TERR_QUAL_ID
3710 , l_terr_values_tbl(counter).INCLUDE_FLAG
3711 , l_terr_values_tbl(counter).COMPARISON_OPERATOR
3712 , l_terr_values_tbl(counter).ID_USED_FLAG
3713 , l_terr_values_tbl(counter).LOW_VALUE_CHAR_ID
3714 , l_terr_values_tbl(counter).LOW_VALUE_CHAR
3715 , l_terr_values_tbl(counter).HIGH_VALUE_CHAR
3716 , l_terr_values_tbl(counter).LOW_VALUE_NUMBER
3717 , l_terr_values_tbl(counter).HIGH_VALUE_NUMBER
3718 , l_terr_values_tbl(counter).VALUE_SET
3719 , l_terr_values_tbl(counter).INTEREST_TYPE_ID
3720 , l_terr_values_tbl(counter).PRIMARY_INTEREST_CODE_ID
3721 , l_terr_values_tbl(counter).SECONDARY_INTEREST_CODE_ID
3722 , l_terr_values_tbl(counter).CURRENCY_CODE
3723 , l_terr_values_tbl(counter).ORG_ID;
3724
3725 EXIT WHEN get_terr_values%NOTFOUND;
3726
3727 --dbms_output.put_line( 'get_terr_values: counter = '|| counter ||
3728 -- ' terr_value = ' || l_terr_values_tbl(counter).terr_value_id);
3729
3730 counter := counter + 1;
3731
3732 END LOOP;
3733 CLOSE get_terr_values;
3734
3735 --dbms_output.put_line( 'AFTER get_terr_values: counter = '|| counter );
3736
3737 /***************************/
3738 /* get territory resources */
3739 /***************************/
3740 counter := 0;
3741
3742 OPEN get_terr_rsc ( p_terr_id );
3743 LOOP
3744 FETCH get_terr_rsc INTO
3745 l_terr_rsc_tbl(counter).TERR_RSC_ID
3746 , l_terr_rsc_tbl(counter).LAST_UPDATE_DATE
3747 , l_terr_rsc_tbl(counter).LAST_UPDATED_BY
3748 , l_terr_rsc_tbl(counter).CREATION_DATE
3749 , l_terr_rsc_tbl(counter).CREATED_BY
3750 , l_terr_rsc_tbl(counter).LAST_UPDATE_LOGIN
3751 , l_terr_rsc_tbl(counter).TERR_ID
3752 , l_terr_rsc_tbl(counter).RESOURCE_ID
3753 , l_terr_rsc_tbl(counter).RESOURCE_TYPE
3754 , l_terr_rsc_tbl(counter).ROLE
3755 , l_terr_rsc_tbl(counter).PRIMARY_CONTACT_FLAG
3756 , l_terr_rsc_tbl(counter).START_DATE_ACTIVE
3757 , l_terr_rsc_tbl(counter).END_DATE_ACTIVE
3758 , l_terr_rsc_tbl(counter).FULL_ACCESS_FLAG
3759 , l_terr_rsc_tbl(counter).ORG_ID
3760 , l_terr_rsc_tbl(counter).RESOURCE_NAME;
3761
3762 EXIT WHEN get_terr_rsc%NOTFOUND;
3763
3764 --dbms_output.put_line( 'get_terr_rsc: counter = '|| counter ||
3765 -- ' terr_rsc = ' || l_terr_rsc_tbl(counter).terr_rsc_id ||
3766 -- ' resource_name = ' || l_terr_rsc_tbl(counter).resource_name);
3767
3768 counter := counter + 1;
3769
3770 END LOOP;
3771 CLOSE get_terr_rsc;
3772
3773 --dbms_output.put_line( 'AFTER get_terr_rsc: counter = '|| counter );
3774
3775 /* save return variables */
3776 x_terr_rec := l_terr_rec;
3777 x_terr_type_rec := l_terr_type_rec;
3778 x_terr_sub_terr_tbl := l_terr_sub_terr_tbl;
3779 x_terr_usgs_tbl := l_terr_usgs_tbl;
3780 x_terr_qtype_usgs_tbl := l_terr_qtype_usgs_tbl;
3781 x_terr_qual_tbl := l_terr_qual_tbl;
3782 x_terr_values_tbl := l_terr_values_tbl;
3783 x_terr_rsc_tbl := l_terr_rsc_tbl;
3784
3785 /* save return status */
3786 x_return_status := l_return_status;
3787
3788 --dbms_output.put_line( 'get_terr: END return_status = '|| l_return_status );
3789
3790 /**********************************************************************************************
3791 ** API BODY END
3792 ***********************************************************************************************/
3793
3794 /* Debug Message */
3795 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
3796 THEN
3797 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
3798 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
3799 FND_MSG_PUB.Add;
3800 END IF;
3801
3802 /* Standard call to get message count and if count is 1, get message info. */
3803 FND_MSG_PUB.Count_And_Get
3804 ( p_count => x_msg_count,
3805 p_data => x_msg_data
3806 );
3807
3808 EXCEPTION
3809 WHEN FND_API.G_EXC_ERROR THEN
3810 x_return_status := FND_API.G_RET_STS_ERROR ;
3811 --dbms_output.put_line( 'FND_API.G_EXC_ERROR: return_status = '|| x_return_status );
3812
3813 FND_MSG_PUB.Count_And_Get
3814 ( p_count => x_msg_count,
3815 p_data => x_msg_data
3816 );
3817
3818
3819 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3820 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3821 --dbms_output.put_line( 'FND_API.G_RET_STS_UNEXP_ERROR: return_status = '|| x_return_status );
3822
3823 FND_MSG_PUB.Count_And_Get
3824 ( p_count => x_msg_count,
3825 p_data => x_msg_data
3826 );
3827
3828 WHEN OTHERS THEN
3829 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3830 --dbms_output.put_line( 'OTHERS: return_status = '|| x_return_status );
3831 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
3832 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
3833 END IF;
3834
3835 FND_MSG_PUB.Count_And_Get
3836 ( p_count => x_msg_count,
3837 p_data => x_msg_data
3838 );
3839
3840 END Get_Territory_Details;
3841
3842
3843 -- ***************************************************
3844 -- start of comments
3845 -- ***************************************************
3846 --
3847 -- API name : Get_Escalation_Territory
3848 -- Type : PUBLIC
3849 -- Function : To get a territory's escalation territory
3850 --
3851 --
3852 -- Pre-reqs :
3853 -- Parameters:
3854 -- IN :
3855 -- Required
3856 -- Parameter Name Data Type Default
3857 -- p_Api_Version_Number NUMBER
3858 -- p_Escalation_Terr_Id NUMBER
3859 --
3860 -- Optional
3861 -- Parameter Name Data Type Default
3862 -- p_Init_Msg_List VARCHAR2 FND_API.G_FALSE
3863 -- p_Commit VARCHAR2 FND_API.G_FALSE
3864 --
3865 -- OUT :
3866 -- Parameter Name Data Type
3867 -- x_Return_Status VARCHAR2(1)
3868 -- x_Msg_Count NUMBER
3869 -- x_Msg_Data VARCHAR2(2000)
3870 --
3871 --
3872 -- Notes:
3873 --
3874 --
3875 -- End of Comments
3876 --
3877 PROCEDURE Get_Escalation_Territory (
3878 p_Api_Version IN NUMBER,
3879 p_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
3880 x_return_status OUT NOCOPY VARCHAR2,
3881 x_msg_count OUT NOCOPY NUMBER,
3882 x_msg_data OUT NOCOPY VARCHAR2,
3883 p_terr_id IN NUMBER := FND_API.G_MISS_NUM,
3884 x_escalation_terr_id OUT NOCOPY NUMBER
3885 )
3886 IS
3887
3888 l_api_name CONSTANT VARCHAR2(30) := 'Get_Escalation_Territory';
3889 l_api_version CONSTANT NUMBER := 1.0;
3890
3891 /* cursor to return escalation terr id */
3892 CURSOR c_esc_terr_id ( p_terr_id NUMBER )
3893 IS
3894 /* modified for R12 as there is no concept of escalation territory for R12 , instead */
3895 /* resources will be assigned to the territory as escalation owner */
3896 /* SELECT jt.escalation_territory_id */
3897 SELECT jt.terr_id
3898 FROM jtf_terr_all jt
3899 WHERE jt.terr_id = p_terr_id
3900 AND NVL(jt.end_date_active, sysdate+1) > sysdate
3901 AND NVL(jt.start_date_active, sysdate-1) < sysdate;
3902
3903 /* cursor return variable */
3904 esc_csr NUMBER;
3905
3906 /* Status local variable */
3907 l_return_status VARCHAR2(1);
3908
3909 /* local scratch variable */
3910 l_escalation_terr_id NUMBER;
3911
3912 BEGIN
3913 /* Standard call to check for call compatibility */
3914 IF NOT FND_API.Compatible_API_Call ( l_api_version,
3915 p_api_version,
3916 l_api_name,
3917 G_PKG_NAME)
3918 THEN
3919 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3920 END IF;
3921
3922 /* Initialize message list if p_init_msg_list is set to TRUE */
3923 IF FND_API.to_Boolean( p_init_msg_list )
3924 THEN
3925 FND_MSG_PUB.initialize;
3926 END IF;
3927
3928 /* Debug Message */
3929 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
3930 THEN
3931 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
3932 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
3933 FND_MSG_PUB.Add;
3934 END IF;
3935
3936
3937 /**********************************************************************************************
3938 ** API BODY START
3939 ***********************************************************************************************/
3940
3941 /* Initialize API return status to SUCCESS */
3942 l_return_status := FND_API.G_RET_STS_SUCCESS;
3943
3944 OPEN c_esc_terr_id (p_terr_id);
3945 FETCH c_esc_terr_id INTO esc_csr;
3946 IF c_esc_terr_id%NOTFOUND THEN
3947
3948 l_return_status := FND_API.G_RET_STS_ERROR;
3949
3950 -- Debug message
3951 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
3952 FND_MESSAGE.Set_Name ('JTF', 'JTF_TERR_ESC_TERR_NOT_FOUND');
3953 FND_MSG_PUB.ADD;
3954 END IF;
3955
3956 ELSE
3957
3958 l_escalation_terr_id := esc_csr;
3959
3960 END IF;
3961
3962 CLOSE c_esc_terr_id;
3963
3964 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3965 RAISE FND_API.G_EXC_ERROR;
3966 END IF;
3967
3968 /* save return variable */
3969 x_escalation_terr_id := l_escalation_terr_id;
3970
3971 /* save return status */
3972 x_return_status := l_return_status;
3973
3974 /**********************************************************************************************
3975 ** API BODY END
3976 ***********************************************************************************************/
3977
3978 /* Debug Message */
3979 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
3980 THEN
3981 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
3982 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
3983 FND_MSG_PUB.Add;
3984 END IF;
3985
3986 /* Standard call to get message count and if count is 1, get message info. */
3987 FND_MSG_PUB.Count_And_Get
3988 ( p_count => x_msg_count,
3989 p_data => x_msg_data
3990 );
3991
3992 EXCEPTION
3993 WHEN FND_API.G_EXC_ERROR THEN
3994 x_return_status := FND_API.G_RET_STS_ERROR ;
3995
3996 FND_MSG_PUB.Count_And_Get
3997 ( p_count => x_msg_count,
3998 p_data => x_msg_data
3999 );
4000
4001
4002 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4003 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4004
4005 FND_MSG_PUB.Count_And_Get
4006 ( p_count => x_msg_count,
4007 p_data => x_msg_data
4008 );
4009
4010 WHEN OTHERS THEN
4011 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4012
4013 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
4014 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
4015 END IF;
4016
4017 FND_MSG_PUB.Count_And_Get
4018 ( p_count => x_msg_count,
4019 p_data => x_msg_data
4020 );
4021
4022 END Get_Escalation_Territory;
4023
4024
4025 -- ***************************************************
4026 -- start of comments
4027 -- ***************************************************
4028 --
4029 -- API name : Get_Parent_Territory
4030 -- Type : PUBLIC
4031 -- Function : To get a territory's parent territory
4032 --
4033 --
4034 -- Pre-reqs :
4035 -- Parameters:
4036 -- IN :
4037 -- Required
4038 -- Parameter Name Data Type Default
4039 -- p_Api_Version_Number NUMBER
4040 -- p_Parent_Terr_Id NUMBER
4041 --
4042 -- Optional
4043 -- Parameter Name Data Type Default
4044 -- p_Init_Msg_List VARCHAR2 FND_API.G_FALSE
4045 -- p_Commit VARCHAR2 FND_API.G_FALSE
4046 --
4047 -- OUT :
4048 -- Parameter Name Data Type
4049 -- x_Return_Status VARCHAR2(1)
4050 -- x_Msg_Count NUMBER
4051 -- x_Msg_Data VARCHAR2(2000)
4052 --
4053 --
4054 -- Notes:
4055 --
4056 --
4057 -- End of Comments
4058 --
4059 PROCEDURE Get_Parent_Territory (
4060 p_Api_Version IN NUMBER,
4061 p_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
4062 x_return_status OUT NOCOPY VARCHAR2,
4063 x_msg_count OUT NOCOPY NUMBER,
4064 x_msg_data OUT NOCOPY VARCHAR2,
4065 p_terr_id IN NUMBER := FND_API.G_MISS_NUM,
4066 x_parent_terr_id OUT NOCOPY NUMBER
4067 )
4068 IS
4069
4070 l_api_name CONSTANT VARCHAR2(30) := 'Get_Parent_Territory';
4071 l_api_version CONSTANT NUMBER := 1.0;
4072
4073 /* cursor to return escalation terr id */
4074 CURSOR c_parent_terr_id ( p_terr_id NUMBER )
4075 IS
4076 SELECT jt.parent_territory_id
4077 FROM jtf_terr_all jt
4078 WHERE jt.terr_id = p_terr_id;
4079
4080 /* cursor return vraiable */
4081 par_csr NUMBER;
4082
4083 /* Status local variable */
4084 l_return_status VARCHAR2(1);
4085
4086 /* local scratch variable */
4087 l_parent_terr_id NUMBER;
4088
4089
4090 BEGIN
4091 /* Standard call to check for call compatibility */
4092 IF NOT FND_API.Compatible_API_Call ( l_api_version,
4093 p_api_version,
4094 l_api_name,
4095 G_PKG_NAME)
4096 THEN
4097 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4098 END IF;
4099
4100 /* Initialize message list if p_init_msg_list is set to TRUE */
4101 IF FND_API.to_Boolean( p_init_msg_list )
4102 THEN
4103 FND_MSG_PUB.initialize;
4104 END IF;
4105
4106 /* Debug Message */
4107 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
4108 THEN
4109 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
4110 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
4111 FND_MSG_PUB.Add;
4112 END IF;
4113
4114 /**********************************************************************************************
4115 ** API BODY START
4116 ***********************************************************************************************/
4117
4118 /* Initialize API return status to SUCCESS */
4119 l_return_status := FND_API.G_RET_STS_SUCCESS;
4120
4121 OPEN c_parent_terr_id (p_terr_id);
4122 FETCH c_parent_terr_id INTO par_csr;
4123 IF c_parent_terr_id%NOTFOUND THEN
4124
4125 l_return_status := FND_API.G_RET_STS_ERROR;
4126
4127 -- Debug message
4128 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW) THEN
4129 FND_MESSAGE.Set_Name ('JTF', 'JTF_TERR_PARENT_NOT_FOUND');
4130 FND_MSG_PUB.ADD;
4131 END IF;
4132
4133 ELSE
4134
4135 l_parent_terr_id := par_csr;
4136
4137 END IF;
4138
4139 CLOSE c_parent_terr_id;
4140
4141 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4142 RAISE FND_API.G_EXC_ERROR;
4143 END IF;
4144
4145 /* save return variable */
4146 x_parent_terr_id := l_parent_terr_id;
4147
4148 /* save return status */
4149 x_return_status := l_return_status;
4150
4151 /**********************************************************************************************
4152 ** API BODY END
4153 ***********************************************************************************************/
4154
4155 /* Debug Message */
4156 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
4157 THEN
4158 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
4159 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
4160 FND_MSG_PUB.Add;
4161 END IF;
4162
4163 /* Standard call to get message count and if count is 1, get message info. */
4164 FND_MSG_PUB.Count_And_Get
4165 ( p_count => x_msg_count,
4166 p_data => x_msg_data
4167 );
4168
4169 EXCEPTION
4170 WHEN FND_API.G_EXC_ERROR THEN
4171 x_return_status := FND_API.G_RET_STS_ERROR ;
4172
4173 FND_MSG_PUB.Count_And_Get
4174 ( p_count => x_msg_count,
4175 p_data => x_msg_data
4176 );
4177
4178
4179 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4180 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4181
4182 FND_MSG_PUB.Count_And_Get
4183 ( p_count => x_msg_count,
4184 p_data => x_msg_data
4185 );
4186
4187 WHEN OTHERS THEN
4188 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4189
4190 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
4191 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
4192 END IF;
4193
4194 FND_MSG_PUB.Count_And_Get
4195 ( p_count => x_msg_count,
4196 p_data => x_msg_data
4197 );
4198
4199 END Get_Parent_Territory;
4200
4201
4202 -- ***************************************************
4203 -- start of comments
4204 -- ***************************************************
4205 --
4206 -- API name : Get_Escalation_TerrMembers
4207 -- Type : PUBLIC
4208 -- Function : To get reosurces attached with a escalation
4209 -- territory
4210 --
4211 --
4212 -- Pre-reqs :
4213 -- Parameters:
4214 -- IN :
4215 -- Required
4216 -- Parameter Name Data Type Default
4217 -- p_Api_Version_Number NUMBER
4218 -- p_Terr_Id NUMBER
4219 --
4220 -- Optional
4221 -- Parameter Name Data Type Default
4222 -- p_Init_Msg_List VARCHAR2 FND_API.G_FALSE
4223 -- p_Commit VARCHAR2 FND_API.G_FALSE
4224 --
4225 -- OUT :
4226 -- Parameter Name Data Type
4227 -- x_Return_Status VARCHAR2(1)
4228 -- x_Msg_Count NUMBER
4229 -- x_Msg_Data VARCHAR2(2000)
4230 --
4231 --
4232 -- Notes:
4233 --
4234 --
4235 -- End of Comments
4236 --
4237 PROCEDURE Get_Escalation_TerrMembers
4238 (p_api_version_number IN NUMBER,
4239 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
4240 p_commit IN VARCHAR2 := FND_API.G_FALSE,
4241 x_return_status OUT NOCOPY VARCHAR2,
4242 x_msg_count OUT NOCOPY NUMBER,
4243 x_msg_data OUT NOCOPY VARCHAR2,
4244 p_terr_id IN NUMBER,
4245 x_QualifyingRsc_out_tbl OUT NOCOPY QualifyingRsc_out_tbl_type,
4246 p_access_type IN VARCHAR2 DEFAULT NULL)
4247 AS
4248 l_api_name CONSTANT VARCHAR2(30) := 'Get_Escalation_TerrMembers';
4249 l_api_version_number CONSTANT NUMBER := 1.0;
4250 l_return_status VARCHAR2(1);
4251
4252 l_QualifyingRsc_out_rec QualifyingRsc_out_rec_type;
4253
4254 --Declare cursor to get resource accesses
4255 Cursor C_GetTerrRsc IS
4256 Select JTR.TERR_RSC_ID,
4257 JTR.TERR_ID,
4258 JT.NAME,
4259 JTR.RESOURCE_ID,
4260 --JTRA.ACCESS_TYPE,
4261 JTR.RESOURCE_TYPE,
4262 JTR.ROLE,
4263 decode(JTRA.trans_access_code, 'ESC_OWNER', 'Y', 'ESCALATION', 'N', 'N') PRIMARY_CONTACT_FLAG
4264 --JTR.PRIMARY_CONTACT_FLAG
4265 From JTF_TERR_RSC_ALL JTR,
4266 JTF_TERR_RSC_ACCESS_ALL JTRA,
4267 JTF_TERR_ALL JT
4268 Where JT.TERR_ID = p_Terr_id
4269 AND JTR.TERR_ID = JT.TERR_ID
4270 AND JTR.TERR_RSC_ID = JTRA.TERR_RSC_ID
4271 AND NVL(jtr.end_date_active, sysdate+1) > sysdate
4272 AND NVL(jtr.start_date_active, sysdate-1) < sysdate
4273 AND NVL(jt.end_date_active, sysdate+1) > sysdate
4274 AND NVL(jt.start_date_active, sysdate-1) < sysdate
4275 AND JTRA.trans_access_code IN ('ESC_OWNER', 'ESCALATION')
4276 AND (jtra.access_type = p_access_type OR p_access_type IS NULL);
4277 /*
4278 AND EXISTS (
4279 SELECT 1
4280 FROM JTF_TERR_RSC_ACCESS_ALL JTRA
4281 WHERE JTRA.terr_rsc_id = JTR.terr_rsc_id
4282 AND JTRA.trans_access_code IN ('ESC_OWNER', 'ESCALATION'));
4283 */
4284
4285
4286 l_Counter NUMBER := 1;
4287
4288 BEGIN
4289 --dbms_output.put_line('Get_Escalation_TerrMembers: Entering the API');
4290
4291 -- Standard call to check for call compatibility.
4292 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
4293 p_api_version_number,
4294 l_api_name,
4295 G_PKG_NAME)
4296 THEN
4297 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4298 END IF;
4299
4300
4301 -- Initialize message list if p_init_msg_list is set to TRUE.
4302 IF FND_API.to_Boolean( p_init_msg_list )
4303 THEN
4304 FND_MSG_PUB.initialize;
4305 END IF;
4306
4307 /* Debug Message */
4308 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
4309 THEN
4310 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_START_MSG');
4311 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
4312 FND_MSG_PUB.Add;
4313 END IF;
4314 --
4315 -- API body
4316 --
4317 x_return_status := FND_API.G_RET_STS_SUCCESS;
4318
4319 for res_rec in C_GetTerrRsc
4320 loop
4321
4322 x_QualifyingRsc_out_tbl(l_Counter).terr_rsc_id := res_rec.terr_rsc_id;
4323 x_QualifyingRsc_out_tbl(l_Counter).terr_id := res_rec.terr_id;
4324 x_QualifyingRsc_out_tbl(l_Counter).terr_name := res_rec.name;
4325 x_QualifyingRsc_out_tbl(l_Counter).resource_id := res_rec.resource_id;
4326 x_QualifyingRsc_out_tbl(l_Counter).resource_type := res_rec.resource_type;
4327 x_QualifyingRsc_out_tbl(l_Counter).role := res_rec.role;
4328 x_QualifyingRsc_out_tbl(l_Counter).primary_contact_flag := res_rec.primary_contact_flag;
4329
4330 l_Counter := l_Counter + 1;
4331
4332 end loop;
4333 --
4334 If l_Counter = 1 Then
4335 null;
4336 --dbms_output.put_line('No records returned');
4337 End If;
4338 --
4339 /* Debug Message */
4340 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW)
4341 THEN
4342 FND_MESSAGE.Set_Name('JTF', 'JTF_TERR_END_MSG');
4343 FND_MESSAGE.Set_Token('PROC_NAME', l_api_name);
4344 FND_MSG_PUB.Add;
4345 END IF;
4346
4347 -- Standard call to get message count and if count is 1, get message info.
4348 FND_MSG_PUB.Count_And_Get
4349 ( p_count => x_msg_count,
4350 p_data => x_msg_data
4351 );
4352 --dbms_output.put_line('Get_Escalation_TerrMembers: Exiting the API');
4353 EXCEPTION
4354 --
4355 WHEN OTHERS THEN
4356 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4357 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
4358 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
4359 END IF;
4360 FND_MSG_PUB.Count_And_Get
4361 ( p_count => x_msg_count,
4362 p_data => x_msg_data
4363 );
4364 --
4365 END Get_Escalation_TerrMembers;
4366
4367 End JTF_TERRITORY_GET_PUB; /* End of Package Body */