DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_TTY_NA_GEO_TERR_PVT

Source


1 PACKAGE BODY JTF_TTY_NA_GEO_TERR_PVT AS
2 /* $Header: jtfvnatb.pls 120.0 2005/06/02 18:22:11 appldev ship $ */
3 --    Start of Comments
4 --    ---------------------------------------------------
5 --    OLD PACKAGE NAME:   JTF_TERR_ENGINE_GEN_PVT
6 --    PACKAGE NAME:   JTF_TTY_NA_GEO_TERR_PVT
7 --    ---------------------------------------------------
8 --    PURPOSE
9 --      This Package will create the physical territories for the
10 --      self-service named accounts and geography territories
11 --
12 --      Procedures:
13 --         (see below for specification)
14 --
15 --    NOTES
16 --      This package is not publicly available for use
17 --
18 --    HISTORY
19 --      08/09/03    JRADHAKR         Created by Moving the named account
20 --                                   procedure from JTF_TERR_ENGINE_GEN_PVT
21 --
22 --    End of Comments
23 --
24 --------------------------------------------------
25 ---     GLOBAL Declarations Starts here      -----
26 --------------------------------------------------
27 
28 -- Stores the org_id for use in package Names
29    g_cached_org_append           VARCHAR2(15);
30 --
31 -- Identifies the Package associated a
32 -- a territory with child nodes
33    g_terr_pkgspec                terr_pkgspec_tbl_type;
34 
35 -- Stores the position with the table spec
36    g_stack_pointer               NUMBER := 0;
37 
38 -- Store the information passed as
39 -- Concurrent program parameters
40 -- Module that uses Territories
41    g_source_id                   NUMBER := 0;
42 
43    g_abs_source_id               NUMBER := 0;
44 
45 -- Type of transaction for which the
46 -- the package is being generated
47    g_qualifier_type              VARCHAR2(60);
48 
49 -- Id of the corresponding transaction type
50    g_qual_type_id                NUMBER := 0;
51 
52    TYPE t_pkgname IS TABLE OF VARCHAR2(256)
53    INDEX BY BINARY_INTEGER;
54 
55    g_pkgname_tbl                 t_pkgname;
56    g_Pointer                     NUMBER   := 0;
57    G_Debug                       BOOLEAN  := FALSE;
58    g_ProgramStatus               NUMBER   := 0;
59 
60    /* Global System Variables */
61    G_APPL_ID         NUMBER       := FND_GLOBAL.Prog_Appl_Id;
62    G_LOGIN_ID        NUMBER       := FND_GLOBAL.Conc_Login_Id;
63    G_PROGRAM_ID      NUMBER       := FND_GLOBAL.Conc_Program_Id;
64    G_USER_ID         NUMBER       := FND_GLOBAL.User_Id;
65    G_REQUEST_ID      NUMBER       := FND_GLOBAL.Conc_Request_Id;
66    G_APP_SHORT_NAME  VARCHAR2(15) := FND_GLOBAL.Application_Short_Name;
67    G_SYSDATE         DATE         := SYSDATE;
68 
69  PROCEDURE  create_geography_territory
70   ( p_terr_group_rec  IN  TERR_GRP_REC_TYPE
71   , p_org_id          IN  NUMBER
72   , x_return_status    OUT NOCOPY  VARCHAR2
73   , x_error_message    OUT NOCOPY  VARCHAR2
74   );
75 
76 
77    --------------------------------------------------------------------
78    --                  Logging PROCEDURE
79    --
80    --     which = 1. write to log
81    --     which = 2, write to output
82    --------------------------------------------------------------------
83    --
84    PROCEDURE Write_Log(which number, mssg  varchar2 )   IS
85 
86         l_mssg            VARCHAR2(4000);
87 		l_sub_mssg        VARCHAR2(255);
88 		l_begin           NUMBER := 1;
89 		l_mssg_length     NUMBER := 0;
90 		l_time            VARCHAR2(60) := TO_CHAR(SYSDATE, 'mm/dd/yyyy hh24:mi:ss');
91 
92    BEGIN
93    --
94        l_mssg := mssg;
95 
96        /* If the output message and if debug flag is set then also write
97        ** to the log file
98 							*/
99        If Which = 2 Then
100              FND_FILE.PUT(1, mssg);
101              FND_FILE.NEW_LINE(1, 1);
102        End IF;
103 
104        l_sub_mssg := 'Time = ' || l_time;
105        --FND_FILE.PUT_LINE(FND_FILE.LOG, l_sub_mssg);
106       -- dbms_output.put_line('LOG: ' || l_sub_mssg);
107 
108        l_mssg := l_sub_mssg || ' => ' || l_mssg;
109 
110 		/* get total message length */
111         l_mssg_length := LENGTH(l_mssg);
112 
113         /* Output message in 250 maximum character lines */
114         WHILE ( l_mssg_length > 250 ) LOOP
115 
116 			/* get message substring */
117             l_sub_mssg := SUBSTR(l_mssg, l_begin, 250);
118 
119 			/* write message to log file */
120             FND_FILE.PUT_LINE(FND_FILE.LOG, l_sub_mssg);
121     	   --dbms_output.put_line('LOG: ' || l_mssg );
122 
123 			/* Increment message start position to output from */
124             l_begin := l_begin + 250;
125 
126 			/* Decrement message length to be output */
127             l_mssg_length := l_mssg_length - 250;
128 
129         END LOOP;
130 
131 	    /* get last remaining part of message, i.e, when
132 		** there is less than 250 characters left to be output	*/
133         l_sub_mssg := SUBSTR(l_mssg, l_begin);
134         FND_FILE.PUT_LINE(FND_FILE.LOG, l_sub_mssg);
135 	    --dbms_output.put_line('LOG: ' || l_mssg );
136    --
137    END Write_Log;
138 
139 
140   /* (1) START: ENABLE/DISABLE TERRITORY TRIGGERS */
141    PROCEDURE alter_triggers(p_status VARCHAR2)
142    IS
143    BEGIN
144 
145       IF (p_status = 'DISABLE') THEN
146 
147          BEGIN
148             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_TERRITORIES_BIUD DISABLE';
149          EXCEPTION
150             WHEN OTHERS THEN
151                NULL;
152          END;
153 
154          BEGIN
155             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_TERRITORY_RSC_BIUD DISABLE';
156          EXCEPTION
157             WHEN OTHERS THEN
158                NULL;
159          END;
160 
161          BEGIN
162             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_TERRITORY_VALUES_BIUD DISABLE';
163          EXCEPTION
164             WHEN OTHERS THEN
165                NULL;
166          END;
167 
168          BEGIN
169             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_QTYPE_USGS_BIUD DISABLE';
170          EXCEPTION
171             WHEN OTHERS THEN
172                NULL;
173          END;
174 
175          BEGIN
176             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_TERR_RSC_ACCESS_BIUD DISABLE';
177          EXCEPTION
178             WHEN OTHERS THEN
179                NULL;
180          END;
181 
182 	  ELSIF (p_status = 'ENABLE') THEN
183 
184          BEGIN
185             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_TERRITORIES_BIUD ENABLE';
186          EXCEPTION
187             WHEN OTHERS THEN
188                NULL;
189          END;
190 
191          BEGIN
192             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_TERRITORY_RSC_BIUD ENABLE';
193          EXCEPTION
194             WHEN OTHERS THEN
195                NULL;
196          END;
197 
198          BEGIN
199             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_TERRITORY_VALUES_BIUD ENABLE';
200          EXCEPTION
201             WHEN OTHERS THEN
202                NULL;
203          END;
204 
205          BEGIN
206             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_QTYPE_USGS_BIUD ENABLE';
207          EXCEPTION
208             WHEN OTHERS THEN
209                NULL;
210          END;
211 
212          BEGIN
213             EXECUTE IMMEDIATE 'ALTER TRIGGER JTF_TERR_RSC_ACCESS_BIUD ENABLE';
214          EXCEPTION
215             WHEN OTHERS THEN
216                NULL;
217          END;
218 
219 	  END IF;
220 
221    END alter_triggers;
222 
223 
224  /* (1) START: DELETE ALL EXISTING NAMED ACCOUNT TERRITORIES */
225  PROCEDURE cleanup_na_territories ( p_mode VARCHAR2 )
226  IS
227 
228     /* get all the Territories to DELETE */
229     CURSOR delterr IS
230     SELECT terr_id
231     from jtf_terr_all
232     where terr_group_flag = 'Y';
233 
234  BEGIN
235 
236    /* TOTAL mode => re-generate all NA territories */
237    IF (p_mode = 'TOTAL') THEN
238 
239           --DELETE territory value records
240           DELETE FROM jtf_terr_values_all jtv
241 		  WHERE jtv.terr_qual_id IN
242           ( SELECT jtq.terr_qual_id
243 		    FROM jtf_terr_qual_all jtq, jtf_terr_all jt
244 			WHERE jtq.terr_id = jt.terr_id
245 			  AND jt.terr_group_flag = 'Y' );
246 
247 		   COMMIT;
248 
249           --Delete Territory Qualifer records
250           DELETE from JTF_TERR_QUAL_ALL jtq
251 		  WHERE jtq.terr_id IN
252           ( SELECT jt.terr_id
253 		    FROM jtf_terr_all jt
254 			WHERE jt.terr_group_flag = 'Y' );
255 
256 		   COMMIT;
257 
258           --Delete Territory qual type usgs
259           DELETE from JTF_TERR_QTYPE_USGS_ALL jtqu
260 		  WHERE jtqu.terr_id IN
261           ( SELECT jt.terr_id
262 		    FROM jtf_terr_all jt
263 			WHERE jt.terr_group_flag = 'Y' );
264 
265 		   COMMIT;
266 
267           --Delete Territory usgs
268           DELETE from JTF_TERR_USGS_ALL	jtu
269 		  WHERE jtu.terr_id IN
270           ( SELECT jt.terr_id
271 		    FROM jtf_terr_all jt
272 			WHERE jt.terr_group_flag = 'Y' );
273 
274 		   COMMIT;
275 
276           --Delete Territory Resource Access
277           DELETE from JTF_TERR_RSC_ACCESS_ALL jtra
278           WHERE jtra.terr_rsc_id IN
279           ( SELECT jtr.terr_rsc_id
280 		    FROM jtf_terr_rsc_all jtr, jtf_terr_all jt
281 			WHERE jtr.terr_id = jt.terr_id
282 			  AND jt.terr_group_flag = 'Y' );
283 
284 		   COMMIT;
285 
286           -- Delete the Territory Resource records
287           DELETE from JTF_TERR_RSC_ALL	jtr
288 		  WHERE jtr.terr_id IN
289           ( SELECT jt.terr_id
290 		    FROM jtf_terr_all jt
291 			WHERE jt.terr_group_flag = 'Y' );
292 
293 		   COMMIT;
294 
295           --Delete Territory record
296           DELETE from JTF_TERR_ALL jt
297 		  WHERE jt.terr_id IN
298           ( SELECT jt.terr_id
299 		    FROM jtf_terr_all jt
300 			WHERE jt.terr_group_flag = 'Y' );
301 
302 		   COMMIT;
303 
304    END IF;
305    /* (1) END: DELETE ALL EXISTING NAMED ACCOUNT TERRITORIES */
306 
307    EXCEPTION
308       WHEN NO_DATA_FOUND THEN
309 	     NULL;
310 
311  END cleanup_na_territories;
312 
313 
314 /*----------------------------------------------------------
315 This procedure will create Named account and Overlay Territory
316 from the Named accounts.
317 ----------------------------------------------------------*/
318 
319 PROCEDURE generate_named_overlay_terr(p_mode VARCHAR2)
320 IS
321 
322 
323     TYPE terrqual_type IS RECORD(
324     	terr_qual_id		NUMBER:=FND_API.G_MISS_NUM
325     );
326 
327     TYPE terrqual_tbl_type IS TABLE OF terrqual_type
328     	INDEX BY BINARY_INTEGER;
329 
330 
331     TYPE seeded_qual_type IS RECORD(
332     	seeded_qualifier_id	NUMBER:=FND_API.G_MISS_NUM
333     );
334 
335     TYPE seeded_qual_tbl_type IS TABLE OF seeded_qual_type
336     	INDEX BY BINARY_INTEGER;
337 
338     TYPE role_typ IS RECORD(
339     	grp_role_id	NUMBER:=FND_API.G_MISS_NUM
340     );
341 
342     TYPE grp_role_tbl_type IS TABLE OF role_typ
343     	INDEX BY BINARY_INTEGER;
344 
345     l_terrqual_tbl		terrqual_tbl_type;
346     l_terrqual_empty_tbl	terrqual_tbl_type;
347 
348     l_terr_group_rec		JTF_TTY_NA_GEO_TERR_PVT.TERR_GRP_REC_TYPE;
349 
350     l_overnon_role_tbl		grp_role_tbl_type;
351     l_overnon_role_empty_tbl    grp_role_tbl_type;
352 
353     l_terr_qual_id		NUMBER;
354     l_id_used_flag		VARCHAR2(1);
355     l_low_value_char_id	NUMBER;
356     l_qual_usgs_id 	NUMBER;
357     l_terr_usg_id	NUMBER;
358     l_qual_type_usg_id 	NUMBER;
359     l_terr_qtype_usg_id	NUMBER;
360     l_terr_type_usg_id  NUMBER;
361     l_type_qtype_usg_id	NUMBER;
362     l_terr_rsc_id		NUMBER;
363     l_terr_rsc_access_id	NUMBER;
364     l_access_type		VARCHAR2(30);
365 
366     l_api_version_number    CONSTANT NUMBER := 1.0;
367     l_init_msg_list         varchar2(1);
368     l_commit                varchar2(1);
369     x_return_status         varchar2(1);
370     x_msg_count             number;
371     x_msg_data              varchar2(2000);
372 
373     l_return_status         varchar2(30);
374     l_error_message         varchar2(255);
375 
376     i	NUMBER;
377     j	NUMBER;
378     k	NUMBER;
379     l	NUMBER;
380     a	NUMBER;
381 
382     l_prev_seedqual		number;
383     l_prev_terr_id		number;
384 
385     l_qualifier		    NUMBER;
386 
387     x_terr_id           NUMBER;
388 
389     l_terr_all_rec		          JTF_TERRITORY_PVT.terr_all_rec_type;
390     l_terr_usgs_tbl               JTF_TERRITORY_PVT.terr_usgs_tbl_type;
391     l_terr_qualtypeusgs_tbl       JTF_TERRITORY_PVT.terr_qualtypeusgs_tbl_type;
392     l_terr_qual_tbl               JTF_TERRITORY_PVT.terr_qual_tbl_type;
393     l_terr_values_tbl             JTF_TERRITORY_PVT.terr_values_tbl_type;
394 
395 	/* Customer Name Range + Postal Code Qualifier Support */
396     l_terr_qual_tbl_mc1           JTF_TERRITORY_PVT.terr_qual_tbl_type;
397     l_terr_values_tbl_mc1         JTF_TERRITORY_PVT.terr_values_tbl_type;
398 	/* DUNS# Qualifier Support */
399     l_terr_qual_tbl_mc2           JTF_TERRITORY_PVT.terr_qual_tbl_type;
400     l_terr_values_tbl_mc2         JTF_TERRITORY_PVT.terr_values_tbl_type;
401 
402     l_terr_usgs_empty_tbl         JTF_TERRITORY_PVT.terr_usgs_tbl_type;
403     l_terr_qualtypeusgs_empty_tbl JTF_TERRITORY_PVT.terr_qualtypeusgs_tbl_type;
404     l_terr_qual_empty_tbl         JTF_TERRITORY_PVT.terr_qual_tbl_type;
405     l_terr_values_empty_tbl       JTF_TERRITORY_PVT.terr_values_tbl_type;
406 
407     x_terr_usgs_out_tbl	  	      JTF_TERRITORY_PVT.terr_usgs_out_tbl_type;
408     x_terr_qualtypeusgs_out_tbl	  JTF_TERRITORY_PVT.terr_qualtypeusgs_out_tbl_type;
409     x_terr_qual_out_tbl       	  JTF_TERRITORY_PVT.terr_qual_out_tbl_type;
410     x_terr_values_out_tbl		  JTF_TERRITORY_PVT.terr_values_out_tbl_type;
411 
412     l_TerrRsc_Tbl                 JTF_TERRITORY_RESOURCE_PVT.TerrResource_tbl_type;
413     l_TerrRsc_Access_Tbl          JTF_TERRITORY_RESOURCE_PVT.TerrRsc_Access_tbl_type ;
414     l_TerrRsc_empty_Tbl           JTF_TERRITORY_RESOURCE_PVT.TerrResource_tbl_type;
415     l_TerrRsc_Access_empty_Tbl    JTF_TERRITORY_RESOURCE_PVT.TerrRsc_Access_tbl_type ;
416     x_TerrRsc_Out_Tbl             JTF_TERRITORY_RESOURCE_PVT.TerrResource_out_tbl_type;
417     x_TerrRsc_Access_Out_Tbl      JTF_TERRITORY_RESOURCE_PVT.TerrRsc_Access_out_tbl_type;
418 
419     l_commitcount                 NUMBER := 1000;
420     l_row_inserted                NUMBER := 0;
421     l_pi_count                    NUMBER := 0;
422     l_prev_qual_usg_id            NUMBER;
423     l_na_catchall_flag            VARCHAR2(1);
424     l_overlap_catchall_flag       VARCHAR2(1);
425 
426 	l_role_counter                NUMBER := 0;
427 
428 
429     /* Active Territory Groups with
430     ** Active Top-Level Territories */
431     /* bug#2933116: JDOCHERT: 05/27/03: support for DUNS# Qualifier */
432 
433     CURSOR grp IS
434     SELECT   A.TERR_GROUP_ID
435            , A.TERR_GROUP_NAME
436            , A.RANK
437            , A.ACTIVE_FROM_DATE
438            , A.ACTIVE_TO_DATE
439            , A.PARENT_TERR_ID
440            , A.MATCHING_RULE_CODE
441            , A.CREATED_BY
442            , A.CREATION_DATE
443            , A.LAST_UPDATED_BY
444            , A.LAST_UPDATE_DATE
445            , A.LAST_UPDATE_LOGIN
446            , A.Catch_all_resource_id
447            , A.catch_all_resource_type
448            , A.generate_catchall_flag
449 	   , A.NUM_WINNERS  /* JDOCHERT: 07/29/03: BUG#3072230 */
450            , A.SELF_SERVICE_TYPE
451            , B.ORG_ID
452     FROM    JTF_TTY_TERR_GROUPS A
453           , JTF_TERR_ALL B
454     WHERE A.parent_terr_id      = b.terr_id
455       AND ( a.active_to_date >= SYSDATE OR a.active_to_date IS NULL )
456       AND a.active_from_date <= SYSDATE;
457 
458         /* JDOCHERT: /05/29/03:
459 	** Transaction Types for a NON-OVERLAY territory are
460 	** determined by all salesteam members on this Named Account
461 	** having Roles without Product Interests defined
462 	** so there is no Overlay Territories to assign
463 	** Leads and Opportunities. If all Roles have Product Interests
464 	** then only ACCOUNT transaction type should
465 	** be used in Non-Overlay Named Account definition
466 	*/
467     CURSOR get_NON_OVLY_na_trans(LP_terr_group_account_id NUMBER) IS
468        SELECT ra.access_type
469        FROM
470          jtf_tty_named_acct_rsc nar
471        , jtf_tty_terr_grp_accts tga
472        , jtf_tty_terr_grp_roles tgr
473        , jtf_tty_role_access ra
474        WHERE tga.terr_group_account_id = nar.terr_group_account_id
475          AND nar.terr_group_account_id = LP_terr_group_account_id
476          AND nar.rsc_role_code = tgr.role_code
477          AND ra.terr_group_role_id = tgr.terr_group_role_id
478          AND ra.access_type IN ('ACCOUNT')
479        UNION
480        SELECT ra.access_type
481        FROM
482          jtf_tty_named_acct_rsc nar
483        , jtf_tty_terr_grp_accts tga
484        , jtf_tty_terr_grp_roles tgr
485        , jtf_tty_role_access ra
486        WHERE tga.terr_group_account_id = nar.terr_group_account_id
487          AND nar.terr_group_account_id = LP_terr_group_account_id
488          AND nar.rsc_role_code = tgr.role_code
489          AND ra.terr_group_role_id = tgr.terr_group_role_id
490          AND NOT EXISTS (
491             SELECT NULL
492             FROM jtf_tty_role_prod_int rpi
493             WHERE rpi.terr_group_role_id = tgr.terr_group_role_id );
494 
495 
496     /* Access Types for a Territory Group */
497     CURSOR na_access(l_terr_group_id number) IS
498     SELECT distinct a.access_type
499     from jtf_tty_role_access a
500        , jtf_tty_terr_grp_roles b
501     where a.terr_group_role_id = b.terr_group_role_id
502       and b.terr_group_id      = l_terr_group_id;
503 
504     /* Access Types for a particular Role within a Territory Group */
505     CURSOR NON_OVLY_role_access( lp_terr_group_id number
506 	                           , lp_role varchar2) IS
507     SELECT distinct a.access_type
508     from jtf_tty_role_access a
509        , jtf_tty_terr_grp_roles b
510     where a.terr_group_role_id = b.terr_group_role_id
511       and b.terr_group_id      = lp_terr_group_id
512       and b.role_code          = lp_role
513 	  AND NOT EXISTS (
514 	       /* Product Interest does not exist for this role */
515 	       SELECT NULL
516 		   FROM jtf_tty_role_prod_int rpi
517 		   WHERE rpi.terr_group_role_id = B.TERR_GROUP_ROLE_ID )
518     order by a.access_type  ;
519 
520 
521     /* Access Types for a particular Role within a Territory Group */
522     CURSOR role_access(l_terr_group_id number,l_role varchar2) IS
523     SELECT distinct a.access_type
524     from jtf_tty_role_access a
525        , jtf_tty_terr_grp_roles b
526     where a.terr_group_role_id = b.terr_group_role_id
527       and b.terr_group_id      = l_terr_group_id
528       and b.role_code          = l_role
529     order by a.access_type  ;
530 
531     /* Roles WITHOUT a Product Iterest defined */
532     CURSOR role_interest_nonpi(l_terr_group_id number) IS
533     SELECT  b.role_code role_code
534            --,a.interest_type_id
535            ,b.terr_group_id
536     from jtf_tty_role_prod_int a
537        , jtf_tty_terr_grp_roles b
538     where a.terr_group_role_id(+) = b.terr_group_role_id
539       and b.terr_group_id         = l_terr_group_id
540       and a.terr_group_role_id is  null
541     order by b.role_code;
542 
543     /* Roles WITH a Product Iterest defined */
544     CURSOR role_pi( lp_terr_group_id         NUMBER
545 	              , lp_terr_group_account_id NUMBER) IS
546     SELECT distinct
547 	       b.role_code role_code
548 	     , r.role_name role_name
549     from jtf_rs_roles_vl r
550        , jtf_tty_role_prod_int a
551        , jtf_tty_terr_grp_roles b
552     where r.role_code = b.role_code
553       and a.terr_group_role_id = b.terr_group_role_id
554       and b.terr_group_id      = lp_terr_group_id
555 	  AND EXISTS (
556 	         /* Named Account exists with Salesperson with this role */
557 	         SELECT NULL
558 			 FROM jtf_tty_named_acct_rsc nar, jtf_tty_terr_grp_accts tga
559 			 WHERE tga.terr_group_account_id = nar.terr_group_account_id
560 			   AND nar.terr_group_account_id = lp_terr_group_account_id
561 			   AND tga.terr_group_id = b.terr_group_id
562 			   AND nar.rsc_role_code = b.role_code );
563 
564     /* Product Interest for a Role */
565     CURSOR role_pi_interest(l_terr_group_id number,l_role varchar2) IS
566     SELECT  a.interest_type_id
567     from jtf_tty_role_prod_int a
568        , jtf_tty_terr_grp_roles b
569     where a.terr_group_role_id = b.terr_group_role_id
570       and b.terr_group_id      = l_terr_group_id
571       and b.role_code          = l_role;
572 
573     /* Named Account Catch-All Customer Keyname values */
574     CURSOR catchall_cust(l_terr_group_id number) IS
575     SELECT distinct b.comparison_operator
576           ,b.value1_char
577     from jtf_tty_terr_grp_accts a
578        , jtf_tty_acct_qual_maps b
579     where a.named_account_id = b.named_account_id
580       and a.terr_group_id    = l_terr_group_id
581       and b.qual_usg_id      = -1012
582     order by b.comparison_operator,b.value1_char;
583 
584    /* JRADHAKR changed the parameter from l_terr_group_id to l_terr_group_acct_id
585    since the resource is specific for a terr_group_account */
586     CURSOR resource_grp(l_terr_group_acct_id number,l_role varchar2) IS
587     SELECT distinct b.resource_id
588          , b.rsc_group_id
589          , b.rsc_resource_type
590     from jtf_tty_terr_grp_accts a
591        , jtf_tty_named_acct_rsc b
592     where a.terr_group_account_id = l_terr_group_acct_id
593       and a.terr_group_account_id = b.terr_group_account_id
594       and b.rsc_role_code = l_role;
595 
596     /* Should Unassigned NAs go to Sales Manager or NA Catch-All? */
597     -- WHERE c.dn_jnr_assigned_flag = 'Y';
598 
599 
600     /* get the DUNS# for the Named Account:
601     ** used for NAMED ACCOUNT territory creation */
602     CURSOR get_party_duns(LP_terr_group_id number) IS
603     SELECT substr(a.party_name, 1, 45) || ': ' || a.postal_code name
604          , b.named_account_id
605          , c.terr_group_account_id
606 		 , a.duns_number_c
607     from hz_parties a
608 	   , jtf_tty_named_accts b
609 	   , jtf_tty_terr_grp_accts c
610     where c.terr_group_id = LP_terr_group_id
611       and b.named_account_id = c.named_account_id
612       and a.party_id = b.party_id
613       and a.status = 'A'
614 	  AND a.DUNS_NUMBER_C IS NOT NULL
615 	  AND EXISTS (
616 	        /* Salesperson exists for this Named Account */
617 	        SELECT NULL
618 			FROM jtf_tty_named_acct_rsc nar
619 			WHERE nar.terr_group_account_id = C.TERR_GROUP_ACCOUNT_ID );
620 
621 
622     /* get the PARTY_NAME + POSTAL_CODE for the Named Account:
623     ** used for NAMED ACCOUNT territory creation */
624     CURSOR get_party_name(LP_terr_group_id number) IS
625     SELECT substr(a.party_name, 1, 45) || ': ' || a.postal_code name
626          , b.named_account_id
627          , c.terr_group_account_id
628 		 , a.duns_number_c
629     from hz_parties a
630 	   , jtf_tty_named_accts b
631 	   , jtf_tty_terr_grp_accts c
632     where c.terr_group_id = LP_terr_group_id
633       and b.named_account_id = c.named_account_id
634       and a.party_id = b.party_id
635       and a.status = 'A'
636       and exists (
637 	         /* Named Account has at least 1 Mapping Rule */
638 	         SELECT 1
639              from jtf_tty_acct_qual_maps d
640              where d.named_account_id = c.named_account_id )
641 	  AND EXISTS (
642 	        /* Salesperson exists for this Named Account */
643 	        SELECT NULL
644 			FROM jtf_tty_named_acct_rsc nar
645 			WHERE nar.terr_group_account_id = C.TERR_GROUP_ACCOUNT_ID );
646 
647 
648     /* get the DUNS# for the Named Account:
649     ** used for OVERLAY territory creation */
650     CURSOR get_OVLY_party_duns(LP_terr_group_id number) IS
651     SELECT substr(a.party_name, 1, 45) || ': ' || a.postal_code name
652          , b.named_account_id
653          , c.terr_group_account_id
654 		 , a.duns_number_c
655     from hz_parties a
656 	   , jtf_tty_named_accts b
657 	   , jtf_tty_terr_grp_accts c
658     where c.terr_group_id = LP_terr_group_id
659       and b.named_account_id = c.named_account_id
660       and a.party_id = b.party_id
661       and a.status = 'A'
662 	  AND a.DUNS_NUMBER_C IS NOT NULL
663 	  AND EXISTS (
664 	        /* Salesperson, with Role that has a Product
665 			** Interest defined, exists for this Named Account */
666 	        SELECT NULL
667 			FROM jtf_tty_named_acct_rsc nar
668 			   , jtf_tty_role_prod_int rpi
669 			   , jtf_tty_terr_grp_roles tgr
670 			WHERE rpi.terr_group_role_id = tgr.terr_group_role_id
671 			  AND tgr.terr_group_id = C.TERR_GROUP_ID
672 			  AND tgr.role_code = nar.rsc_role_code
673 			  AND nar.terr_group_account_id = C.TERR_GROUP_ACCOUNT_ID );
674 
675 
676     /* get the PARTY_NAME + POSTAL_CODE for the Named Account
677     ** used for OVERLAY territory creation */
678     CURSOR get_OVLY_party_name(LP_terr_group_id number) IS
679     SELECT substr(a.party_name, 1, 45) || ': ' || a.postal_code name
680          , b.named_account_id
681          , c.terr_group_account_id
682 		 , a.duns_number_c
683     from hz_parties a
684 	   , jtf_tty_named_accts b
685 	   , jtf_tty_terr_grp_accts c
686     where c.terr_group_id = LP_terr_group_id
687       and b.named_account_id = c.named_account_id
688       and a.party_id = b.party_id
689       and a.status = 'A'
690       and exists (
691 	         /* Named Account has at least 1 Mapping Rule */
692 	         SELECT 1
693              from jtf_tty_acct_qual_maps d
694              where d.named_account_id = c.named_account_id )
695 	  AND EXISTS (
696 	        /* Salesperson, with Role that has a Product
697 			** Interest defined, exists for this Named Account */
698 	        SELECT NULL
699 			FROM jtf_tty_named_acct_rsc nar
700 			   , jtf_tty_role_prod_int rpi
701 			   , jtf_tty_terr_grp_roles tgr
702 			WHERE rpi.terr_group_role_id = tgr.terr_group_role_id
703 			  AND tgr.terr_group_id = C.TERR_GROUP_ID
704 			  AND tgr.role_code = nar.rsc_role_code
705 			  AND nar.terr_group_account_id = C.TERR_GROUP_ACCOUNT_ID );
706 
707 
708     /* Should Unassigned NAs go to Sales Manager or NA Catch-All? */
709     -- WHERE c.dn_jnr_assigned_flag = 'Y';
710 
711     /* get Customer Keynames and Postal Code mappings
712     ** for the Named Account  */
713     /* bug#2925153: JRADHAKR: Added value2_char */
714     CURSOR match_rule1( l_na_id number) IS
715     SELECT b.qual_usg_id
716          , b.comparison_operator
717          , b.value1_char
718          , b.value2_char
719     FROM jtf_tty_acct_qual_maps b
720     WHERE b.qual_usg_id IN (-1007, -1012)
721 	  AND b.named_account_id = l_na_id
722     ORDER BY b.qual_usg_id;
723 
724 
725 	/* get DUNS# for the Named Account  */
726 	/* bug#2933116: JDOCHERT: 05/27/03: support for DUNS# Qualifier */
727     CURSOR match_rule3(l_na_id number) IS
728     SELECT -1120 qual_usg_id
729          , '=' comparison_operator
730          , hzp.duns_number_c value1_char
731     FROM hz_parties hzp, jtf_tty_named_accts na
732     where hzp.status = 'A'
733 	  AND hzp.party_id = na.party_id
734 	  AND na.named_account_id = l_na_id;
735 
736 
737     /* Get Top-Level Parent Territory details */
738     CURSOR topterr(l_terr number) IS
739     SELECT name
740          , description
741          , rank
742          , parent_territory_id
743 	 , terr_id
744     from jtf_terr_all
745     where terr_id = l_terr;
746 
747     /* get Qualifiers used in a territory */
748     CURSOR csr_get_qual( lp_terr_id NUMBER) IS
749       SELECT jtq.terr_qual_id
750 	       , jtq.qual_usg_id
751       FROM jtf_terr_qual_all jtq
752       WHERE jtq.terr_id = lp_terr_id;
753 
754     /* get Values used in a territory qualifier */
755     CURSOR csr_get_qual_val ( lp_terr_qual_id NUMBER ) IS
756       SELECT jtv.TERR_VALUE_ID
757 	       , jtv.INCLUDE_FLAG
758  		   , jtv.COMPARISON_OPERATOR
759  		   , jtv.LOW_VALUE_CHAR
760  		   , jtv.HIGH_VALUE_CHAR
761  		   , jtv.LOW_VALUE_NUMBER
762  		   , jtv.HIGH_VALUE_NUMBER
763  		   , jtv.VALUE_SET
764  		   , jtv.INTEREST_TYPE_ID
765  		   , jtv.PRIMARY_INTEREST_CODE_ID
766  		   , jtv.SECONDARY_INTEREST_CODE_ID
767  		   , jtv.CURRENCY_CODE
768  		   , jtv.ORG_ID
769  		   , jtv.ID_USED_FLAG
770  		   , jtv.LOW_VALUE_CHAR_ID
771       FROM jtf_terr_values_all jtv
772       WHERE jtv.terr_qual_id = lp_terr_qual_id;
773 
774 
775     /* get those roles for a territory Group that
776     ** do not have Product Interest defined */
777     CURSOR role_no_pi(l_terr_group_id number) IS
778     SELECT distinct b.role_code
779     from jtf_tty_role_access a
780        , jtf_tty_terr_grp_roles b
781        , jtf_tty_role_prod_int c
782     where a.terr_group_role_id = b.terr_group_role_id
783       and b.terr_group_id      = l_terr_group_id
784       and a.access_type        = 'ACCOUNT'
785       and c.terr_group_role_id = b.terr_group_role_id
786       and not exists ( SELECT  1
787                      from jtf_tty_role_prod_int e
788                         , jtf_tty_terr_grp_roles d
789                      where e.terr_group_role_id (+) = d.terr_group_role_id
790                        and d.terr_group_id          = b.terr_group_id
791                        and d.role_code              = b.role_code
792                        and e.interest_type_id is  null);
793 
794 
795 
796     l_overlay_top  number;
797     l_overlay      number;
798     l_nacat        number;
799     l_id           number;
800     l_ovnon_flag   varchar2(1):='N';
801 
802     l_na_count     number;
803 
804 	l_terr_exists NUMBER;
805 
806 BEGIN
807 
808    /* JDOCHERT: 07/09/03:
809    ** START: Disable triggers in
810    ** TOTAL mode */
811    IF (p_mode = 'TOTAL') THEN
812       alter_triggers(p_status => 'DISABLE');
813    END IF;
814 
815    /* (1) JDOCHERT: 07/01/03:
816    ** START: DELETE ALL EXISTING NAMED ACCOUNT TERRITORIES
817    ** INCREMENTAL or TOTAL mode */
818    cleanup_na_territories(p_mode => p_mode);
819 
820   /* Set Global Application Short Name */
821   IF G_APP_SHORT_NAME IS NULL THEN
822     G_APP_SHORT_NAME := 'JTF';
823   END IF;
824 
825   /* (2) START: CREATE NAMED ACCOUNT TERRITORY CREATION
826   ** FOR EACH TERRITORY GROUP */
827   for terr_group in grp LOOP
828 
829      write_log(2, '');
830      write_log(2, '----------------------------------------------------------');
831      write_log(2, 'BEGIN: Territory Creation for Territory Group: ' ||
832                   terr_group.terr_group_id || ' : ' ||
833                   terr_group.terr_group_name );
834 
835      /* reset these processing values for the Territory Group */
836      l_na_catchall_flag      := 'N';
837      l_overlap_catchall_flag := 'N';
838      l_ovnon_flag            := 'N';
839      l_overnon_role_tbl      := l_overnon_role_empty_tbl;
840 
841 
842 	 /** Roles with No Product Interest */
843      i:=0;
844      for overlayandnon in role_no_pi(terr_group.terr_group_id) loop
845 
846         l_ovnon_flag:='Y';
847         i :=i +1;
848 
849         SELECT  JTF_TTY_TERR_GRP_ROLES_S.nextval
850         	into l_id
851         FROM DUAL;
852 
853         l_overnon_role_tbl(i).grp_role_id:= l_id;
854         --
855 
856         INSERT into JTF_TTY_TERR_GRP_ROLES(
857              TERR_GROUP_ROLE_ID
858            , OBJECT_VERSION_NUMBER
859            , TERR_GROUP_ID
860            , ROLE_CODE
861            , CREATED_BY
862            , CREATION_DATE
863            , LAST_UPDATED_BY
864            , LAST_UPDATE_DATE
865            , LAST_UPDATE_LOGIN)
866          VALUES(
867                 l_overnon_role_tbl(i).grp_role_id
868               , 1
869               , terr_group.terr_group_id
870               , overlayandnon.role_code
871               , G_USER_ID
872               , sysdate
873               , G_USER_ID
874               , sysdate
875               , G_LOGIN_ID);
876           INSERT into JTF_TTY_ROLE_ACCESS(
877                   TERR_GROUP_ROLE_ACCESS_ID
878                 , OBJECT_VERSION_NUMBER
879                 , TERR_GROUP_ROLE_ID
880                 , ACCESS_TYPE
881                 , CREATED_BY
882                 , CREATION_DATE
883                 , LAST_UPDATED_BY
884                 , LAST_UPDATE_DATE
885                 , LAST_UPDATE_LOGIN)
886            VALUES(
887                 JTF_TTY_ROLE_ACCESS_S.nextval
888                 , 1
889                 , l_overnon_role_tbl(i).grp_role_id
890                 , 'ACCOUNT'
891                 , G_USER_ID
892                 , sysdate
893                 , G_USER_ID
894                 , sysdate
895                 , G_LOGIN_ID);
896 
897       end loop; /* for overlayandnon in role_no_pi */
898 
899 
900 
901         if TERR_GROUP.self_service_type = 'NAMED_ACCOUNT' then
902             /* does Territory Group have at least 1 Named Account ? */
903             SELECT COUNT(*)
904               INTO l_na_count
905             from jtf_tty_terr_groups g
906                , jtf_tty_terr_grp_accts ga
907                , jtf_tty_named_accts a
908             where g.terr_group_id     = ga.terr_group_id
909               AND ga.named_account_id = a.named_account_id
910               AND g.terr_group_id     = TERR_GROUP.TERR_GROUP_ID
911               AND ROWNUM < 2;
912          else
913             /* Fix for the bug 3135657. Added jtf_tty_geo_grp_values */
914 
915             /* does Territory Group have at least 1 Geo Territory ? */
916             SELECT COUNT(*)
917               INTO l_na_count
918             from jtf_tty_terr_groups tgrp
919                , jtf_tty_geo_grp_values gterr
920             where tgrp.terr_group_id     = gterr.terr_group_id
921               AND ROWNUM < 2;
922 
923          end if;
924 
925 	  /*********************************************************************/
926 	  /*********************************************************************/
927 	  /************** NON-OVERLAY TERRITORY CREATION ***********************/
928 	  /*********************************************************************/
929 	  /*********************************************************************/
930 
931       /* BEGIN: if Territory Group exists with Named Accounts
932       ** then auto-create territory definitions */
933 
934       IF (l_na_count > 0) THEN
935 
936           /***************************************************************/
937           /* (3) START: CREATE PLACEHOLDER TERRITORY FOR TERRITORY GROUP */
938           /***************************************************************/
939           L_TERR_USGS_TBL         := L_TERR_USGS_EMPTY_TBL;
940 	  L_TERR_QUALTYPEUSGS_TBL := L_TERR_QUALTYPEUSGS_EMPTY_TBL;
941 	  L_TERR_QUAL_TBL         := L_TERR_QUAL_EMPTY_TBL;
942           L_TERR_VALUES_TBL       := L_TERR_VALUES_EMPTY_TBL;
943           L_TERRRSC_TBL           := L_TERRRSC_EMPTY_TBL;
944           L_TERRRSC_ACCESS_TBL    := L_TERRRSC_ACCESS_EMPTY_TBL;
945 
946           /* TERRITORY HEADER */
947     	  L_TERR_ALL_REC.TERR_ID           := terr_group.terr_group_id;
948     	  L_TERR_ALL_REC.LAST_UPDATE_DATE  := TERR_GROUP.LAST_UPDATE_DATE;
949      	  L_TERR_ALL_REC.LAST_UPDATED_BY   := G_USER_ID;
950      	  L_TERR_ALL_REC.CREATION_DATE     := TERR_GROUP.CREATION_DATE;
951      	  L_TERR_ALL_REC.CREATED_BY        := G_USER_ID ;
952      	  L_TERR_ALL_REC.LAST_UPDATE_LOGIN     := G_LOGIN_ID;
953      	  L_TERR_ALL_REC.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
954      	  L_TERR_ALL_REC.NAME                  := TERR_GROUP.TERR_GROUP_NAME;
955      	  L_TERR_ALL_REC.START_DATE_ACTIVE     := TERR_GROUP.ACTIVE_FROM_DATE ;
956      	  L_TERR_ALL_REC.END_DATE_ACTIVE       := TERR_GROUP.ACTIVE_TO_DATE;
957      	  L_TERR_ALL_REC.PARENT_TERRITORY_ID   := TERR_GROUP.PARENT_TERR_ID;
958      	  L_TERR_ALL_REC.RANK                  := TERR_GROUP.RANK;
959      	  L_TERR_ALL_REC.TEMPLATE_TERRITORY_ID := NULL;
960      	  L_TERR_ALL_REC.TEMPLATE_FLAG         := 'N';
961      	  L_TERR_ALL_REC.ESCALATION_TERRITORY_ID   := NULL;
962      	  L_TERR_ALL_REC.ESCALATION_TERRITORY_FLAG := 'N';
963      	  L_TERR_ALL_REC.OVERLAP_ALLOWED_FLAG      := NULL;
964      	  L_TERR_ALL_REC.DESCRIPTION               := TERR_GROUP.TERR_GROUP_NAME;
965      	  L_TERR_ALL_REC.UPDATE_FLAG               := 'N';
966      	  L_TERR_ALL_REC.AUTO_ASSIGN_RESOURCES_FLAG:= NULL;
967      	  L_TERR_ALL_REC.NUM_WINNERS               := NULL ;
968 
969           /* ORG_ID IS SET TO SAME VALUE AS TERRITORY
970           ** GROUP's Top-Level Parent Territory */
971           l_terr_all_rec.ORG_ID := terr_group.ORG_ID;
972 
973 
974           /* ORACLE SALES AND TELESALES USAGE */
975           SELECT JTF_TERR_USGS_S.nextval
976     	  INTO l_terr_usg_id
977     	  FROM DUAL;
978 
979           l_terr_usgs_tbl(1).SOURCE_ID        := -1001;
980     	  l_terr_usgs_tbl(1).TERR_USG_ID      := l_terr_usg_id;
981           l_terr_usgs_tbl(1).LAST_UPDATE_DATE := terr_group.LAST_UPDATE_DATE;
982       	  l_terr_usgs_tbl(1).LAST_UPDATED_BY  := G_USER_ID;
983       	  l_terr_usgs_tbl(1).CREATION_DATE    := terr_group.CREATION_DATE;
984 	  l_terr_usgs_tbl(1).CREATED_BY       := G_USER_ID;
985 	  l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:= G_LOGIN_ID;
986 	  l_terr_usgs_tbl(1).TERR_ID          := null;
987 	  l_terr_usgs_tbl(1).ORG_ID           := terr_group.ORG_ID;
988 
989 
990           /* ACCOUNT TRANSACTION TYPE */
991           SELECT JTF_TERR_QTYPE_USGS_S.nextval
992             into l_terr_qtype_usg_id
993           FROM DUAL;
994 
995           l_terr_qualtypeusgs_tbl(1).QUAL_TYPE_USG_ID      := -1001;
996 	  l_terr_qualtypeusgs_tbl(1).TERR_QUAL_TYPE_USG_ID := l_terr_qtype_usg_id;
997        	  l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_DATE      := terr_group.LAST_UPDATE_DATE;
998        	  l_terr_qualtypeusgs_tbl(1).LAST_UPDATED_BY       := G_USER_ID;
999        	  l_terr_qualtypeusgs_tbl(1).CREATION_DATE         := terr_group.CREATION_DATE;
1000 	  l_terr_qualtypeusgs_tbl(1).CREATED_BY            := G_USER_ID;
1001 	  l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_LOGIN     := G_LOGIN_ID;
1002 	  l_terr_qualtypeusgs_tbl(1).TERR_ID               := null;
1003 	  l_terr_qualtypeusgs_tbl(1).ORG_ID                := terr_group.ORG_ID;
1004 
1005           /* LEAD TRANSACTION TYPE */
1006           SELECT JTF_TERR_QTYPE_USGS_S.nextval
1007        	  into l_terr_qtype_usg_id
1008           FROM DUAL;
1009 
1010 	  l_terr_qualtypeusgs_tbl(2).QUAL_TYPE_USG_ID      := -1002;
1011      	  l_terr_qualtypeusgs_tbl(2).TERR_QUAL_TYPE_USG_ID := l_terr_qtype_usg_id;
1012      	  l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_DATE      := terr_group.LAST_UPDATE_DATE;
1013      	  l_terr_qualtypeusgs_tbl(2).LAST_UPDATED_BY       := G_USER_ID;
1014      	  l_terr_qualtypeusgs_tbl(2).CREATION_DATE         := terr_group.CREATION_DATE;
1015 	  l_terr_qualtypeusgs_tbl(2).CREATED_BY            := G_USER_ID;
1016 	  l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_LOGIN     := G_LOGIN_ID;
1017 	  l_terr_qualtypeusgs_tbl(2).TERR_ID               := null;
1018 	  l_terr_qualtypeusgs_tbl(2).ORG_ID                := terr_group.ORG_ID;
1019 
1020           /* OPPORTUNITY TRANSACTION TYPE */
1021           SELECT JTF_TERR_QTYPE_USGS_S.nextval
1022        	  into l_terr_qtype_usg_id
1023           FROM DUAL;
1024 
1025 	  l_terr_qualtypeusgs_tbl(3).QUAL_TYPE_USG_ID      := -1003;
1026      	  l_terr_qualtypeusgs_tbl(3).TERR_QUAL_TYPE_USG_ID := l_terr_qtype_usg_id;
1027           l_terr_qualtypeusgs_tbl(3).LAST_UPDATE_DATE      := terr_group.LAST_UPDATE_DATE;
1028      	  l_terr_qualtypeusgs_tbl(3).LAST_UPDATED_BY       := G_USER_ID;
1029      	  l_terr_qualtypeusgs_tbl(3).CREATION_DATE         := terr_group.CREATION_DATE;
1030 	  l_terr_qualtypeusgs_tbl(3).CREATED_BY            := G_USER_ID;
1031 	  l_terr_qualtypeusgs_tbl(3).LAST_UPDATE_LOGIN     := G_LOGIN_ID;
1032 	  l_terr_qualtypeusgs_tbl(3).TERR_ID               := null;
1033 	  l_terr_qualtypeusgs_tbl(3).ORG_ID                := terr_group.ORG_ID;
1034 
1035           l_init_msg_list  := FND_API.G_TRUE;
1036 
1037 
1038           /* set org context using ORG_ID of Territory
1039           ** Group'S TOP-LEVEL PARENT TERRITORY */
1040 		  -- 07/08/03: JDOCHERT: bug#3023653
1041 		  --
1042           --MO_GLOBAL.SET_ORG_CONTEXT(TERR_GROUP.ORG_ID, NULL);
1043 		  --
1044 
1045           /* CALL CREATE TERRITORY API */
1046            jtf_territory_pvt.create_territory (
1047               p_api_version_number         => l_api_version_number,
1048               p_init_msg_list              => l_init_msg_list,
1049               p_commit                     => l_commit,
1050               p_validation_level           => fnd_api.g_valid_level_NONE,
1051               x_return_status              => x_return_status,
1052               x_msg_count                  => x_msg_count,
1053               x_msg_data                   => x_msg_data,
1054               p_terr_all_rec               => l_terr_all_rec,
1055               p_terr_usgs_tbl              => l_terr_usgs_tbl,
1056               p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
1057               p_terr_qual_tbl              => l_terr_qual_tbl,
1058               p_terr_values_tbl            => l_terr_values_tbl,
1059               x_terr_id                    => x_terr_id,
1060               x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
1061               x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
1062               x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
1063               x_terr_values_out_tbl        => x_terr_values_out_tbl
1064             );
1065 
1066 
1067           /* BEGIN: SUCCESSFUL TERRITORY CREATION? */
1068      	  IF X_RETURN_STATUS = 'S'  THEN
1069 
1070               /* JDOCHERT: 01/08/03: ADDED TERR_GROUP_ID */
1071               UPDATE JTF_TERR_ALL
1072               SET TERR_GROUP_FLAG = 'Y'
1073 				, CATCH_ALL_FLAG = 'N'
1074                 , TERR_GROUP_ID = TERR_GROUP.TERR_GROUP_ID
1075 				, NUM_WINNERS = TERR_GROUP.NUM_WINNERS
1076               WHERE TERR_ID = X_TERR_ID;
1077 
1078               L_NACAT := X_TERR_ID;
1079 
1080               WRITE_LOG(2,' Top level Named Account territory created: TERR_ID# '||X_TERR_ID);
1081 
1082           ELSE
1083                WRITE_LOG(2,'ERROR: PLACEHOLDER TERRITORY CREATION FAILED ' ||
1084 			               'FOR TERRITORY_GROUP_ID# ' ||TERR_GROUP.TERR_GROUP_ID);
1085                X_MSG_DATA :=  FND_MSG_PUB.GET(1, FND_API.G_FALSE);
1086                WRITE_LOG(2,X_MSG_DATA);
1087 
1088           END IF;
1089 		  /* END: SUCCESSFUL TERRITORY CREATION? */
1090           /*************************************************************/
1091           /* (3) END: CREATE PLACEHOLDER TERRITORY FOR TERRITORY GROUP */
1092           /*************************************************************/
1093 
1094         if TERR_GROUP.self_service_type = 'NAMED_ACCOUNT' then
1095 
1096           /****************************************************************/
1097           /* (4) START: CREATE NA CATCH-ALL TERRITORY FOR TERRITORY GROUP */
1098           /****************************************************************/
1099 
1100 	  IF ( terr_group.matching_rule_code IN ('1', '2') AND
1101 		       terr_group.generate_catchall_flag = 'Y' ) THEN
1102 
1103 	     /* RESET TABLES */
1104              L_TERR_USGS_TBL         := L_TERR_USGS_EMPTY_TBL;
1105 	     L_TERR_QUALTYPEUSGS_TBL := L_TERR_QUALTYPEUSGS_EMPTY_TBL;
1106 	     L_TERR_QUAL_TBL         := L_TERR_QUAL_EMPTY_TBL;
1107              L_TERR_VALUES_TBL       := L_TERR_VALUES_EMPTY_TBL;
1108              L_TERRRSC_TBL           := L_TERRRSC_EMPTY_TBL;
1109              L_TERRRSC_ACCESS_TBL    := L_TERRRSC_ACCESS_EMPTY_TBL;
1110 
1111 
1112 	     /* TERRITORY HEADER */
1113 	     /* Ensure static TERR_ID to benefit TAP Performance */
1114              L_TERR_ALL_REC.TERR_ID                := terr_group.terr_group_id * -1;
1115              L_TERR_ALL_REC.LAST_UPDATE_DATE       := TERR_GROUP.LAST_UPDATE_DATE;
1116 	     L_TERR_ALL_REC.LAST_UPDATED_BY        := G_USER_ID;
1117 	     L_TERR_ALL_REC.CREATION_DATE          := TERR_GROUP.CREATION_DATE;
1118 	     L_TERR_ALL_REC.CREATED_BY             := G_USER_ID;
1119 	     L_TERR_ALL_REC.LAST_UPDATE_LOGIN      := G_LOGIN_ID;
1120 	     L_TERR_ALL_REC.APPLICATION_SHORT_NAME := G_APP_SHORT_NAME;
1121 	     L_TERR_ALL_REC.NAME                   := TERR_GROUP.TERR_GROUP_NAME ||' (CATCH-ALL)';
1122 	     L_TERR_ALL_REC.START_DATE_ACTIVE      := TERR_GROUP.ACTIVE_FROM_DATE ;
1123 	     L_TERR_ALL_REC.END_DATE_ACTIVE        := TERR_GROUP.ACTIVE_TO_DATE;
1124 	     L_TERR_ALL_REC.PARENT_TERRITORY_ID    :=  X_TERR_ID;
1125 
1126              --
1127              -- 01/20/03: JDOCHERT: CHANGE RANK OF CATCH-ALL
1128              -- TO BE LESS THAT NAMED ACCOUNT TERRITORIES
1129              --
1130              L_TERR_ALL_REC.RANK := TERR_GROUP.RANK + 100;
1131              --
1132 
1133              L_TERR_ALL_REC.TEMPLATE_TERRITORY_ID      := NULL;
1134 	     L_TERR_ALL_REC.TEMPLATE_FLAG              := 'N';
1135 	     L_TERR_ALL_REC.ESCALATION_TERRITORY_ID    := NULL;
1136 	     L_TERR_ALL_REC.ESCALATION_TERRITORY_FLAG  := 'N';
1137 	     L_TERR_ALL_REC.OVERLAP_ALLOWED_FLAG       := NULL;
1138 	     L_TERR_ALL_REC.DESCRIPTION                := TERR_GROUP.TERR_GROUP_NAME||' (CATCH-ALL)';
1139 	     L_TERR_ALL_REC.UPDATE_FLAG                := 'N';
1140 	     L_TERR_ALL_REC.AUTO_ASSIGN_RESOURCES_FLAG := NULL;
1141 
1142 	     /* ORG_ID IS SET TO SAME VALUE AS TERRITORY
1143              ** GROUP's Top-Level Parent Territory */
1144              l_terr_all_rec.ORG_ID                     := terr_group.ORG_ID;
1145 	     l_terr_all_rec.NUM_WINNERS                := null ;
1146 
1147 
1148 	     /* Oracle Sales and Telesales Usage */
1149              SELECT   JTF_TERR_USGS_S.nextval
1150    	         into l_terr_usg_id
1151       	     FROM DUAL;
1152 
1153     	    l_terr_usgs_tbl(1).TERR_USG_ID       := l_terr_usg_id;
1154      	    l_terr_usgs_tbl(1).LAST_UPDATE_DATE  := terr_group.LAST_UPDATE_DATE;
1155             l_terr_usgs_tbl(1).LAST_UPDATED_BY   := G_USER_ID;
1156             l_terr_usgs_tbl(1).CREATION_DATE     := terr_group.CREATION_DATE;
1157 	    l_terr_usgs_tbl(1).CREATED_BY        := G_USER_ID;
1158 	    l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN := G_LOGIN_ID;
1159 	    l_terr_usgs_tbl(1).TERR_ID           := null;
1160 	    l_terr_usgs_tbl(1).SOURCE_ID         := -1001;
1161 	    l_terr_usgs_tbl(1).ORG_ID            := terr_group.ORG_ID;
1162 
1163 
1164             i:=0;
1165             FOR actype in na_access(terr_group.terr_group_id) LOOP
1166 
1167              i:=i+1;
1168              if actype.access_type='ACCOUNT' then
1169 
1170                /* ACCOUNT TRANSACTION TYPE */
1171                 SELECT JTF_TERR_QTYPE_USGS_S.nextval
1172       	        into l_terr_qtype_usg_id
1173                 FROM DUAL;
1174 
1175          	l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID := l_terr_qtype_usg_id;
1176       		l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE      := terr_group.LAST_UPDATE_DATE;
1177       		l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY       := G_USER_ID;
1178       		l_terr_qualtypeusgs_tbl(i).CREATION_DATE         := terr_group.CREATION_DATE;
1179 		l_terr_qualtypeusgs_tbl(i).CREATED_BY            := G_USER_ID;
1180 		l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN     := G_LOGIN_ID;
1181 		l_terr_qualtypeusgs_tbl(i).TERR_ID               := null;
1182 		l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID      := -1001;
1183 		l_terr_qualtypeusgs_tbl(i).ORG_ID                := terr_group.ORG_ID;
1184 
1185              elsif actype.access_type='LEAD' then
1186 
1187 		/* LEAD TRANSACTION TYPE */
1188                 SELECT JTF_TERR_QTYPE_USGS_S.nextval
1189          	    INTO l_terr_qtype_usg_id
1190                 FROM   DUAL;
1191 
1192         	l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
1193       	        l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1194       		l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1195       		l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
1196 		l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
1197 		l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1198 		l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
1199 		l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1002;
1200 		l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
1201 
1202              elsif actype.access_type='OPPORTUNITY' then
1203 
1204                 /* OPPORTUNITY TRANSACTION TYPE */
1205                 SELECT   JTF_TERR_QTYPE_USGS_S.nextval
1206       	        into l_terr_qtype_usg_id
1207                 FROM DUAL;
1208 
1209        		l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
1210       		l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1211       		l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1212       		l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
1213 		l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
1214 		l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1215 		l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
1216 		l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1003;
1217 		l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
1218 
1219              end if;
1220            end loop;
1221 
1222 
1223 
1224 	  /*
1225 	  ** Customer Name Range Qualifier -1012 */
1226           SELECT JTF_TERR_QUAL_S.nextval
1227    	      into l_terr_qual_id
1228       	  FROM DUAL;
1229 
1230       	  l_terr_qual_tbl(1).TERR_QUAL_ID :=l_terr_qual_id;
1231       	  l_terr_qual_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
1232 	  l_terr_qual_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1233 	  l_terr_qual_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
1234 	  l_terr_qual_tbl(1).CREATED_BY := terr_group.CREATED_BY;
1235 	  l_terr_qual_tbl(1).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1236 	  l_terr_qual_tbl(1).TERR_ID:=null;
1237 	  l_terr_qual_tbl(1).QUAL_USG_ID :=-1012;
1238 	  l_terr_qual_tbl(1).QUALIFIER_MODE:=NULL;
1239 	  l_terr_qual_tbl(1).OVERLAP_ALLOWED_FLAG:='N';
1240 	  l_terr_qual_tbl(1).USE_TO_NAME_FLAG:=NULL;
1241 	  l_terr_qual_tbl(1).GENERATE_FLAG:=NULL;
1242 	  l_terr_qual_tbl(1).ORG_ID:=terr_group.ORG_ID;
1243 
1244 	  /*
1245 	  ** VARCHAR2 data value */
1246           l_id_used_flag :='N' ;
1247 
1248 	  /*
1249 	  ** get all the Customer Name Range Values for all the Named Accounts
1250 	  ** that belong to this Territory Group */
1251           k:=0;
1252 
1253 	  FOR cust_value in catchall_cust(terr_group.TERR_GROUP_ID) LOOP
1254 
1255 	     k:=k+1;
1256 
1257              l_terr_values_tbl(k).TERR_VALUE_ID:=null;
1258 
1259 	     l_terr_values_tbl(k).LAST_UPDATED_BY := terr_group.last_UPDATED_BY;
1260 	     l_terr_values_tbl(k).LAST_UPDATE_DATE:= terr_group.last_UPDATE_DATE;
1261 	     l_terr_values_tbl(k).CREATED_BY  := terr_group.CREATED_BY;
1262 	     l_terr_values_tbl(k).CREATION_DATE:= terr_group.CREATION_DATE;
1263 	     l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= terr_group.last_UPDATE_LOGIN;
1264 	     l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
1265 	     l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
1266 	     l_terr_values_tbl(k).COMPARISON_OPERATOR := cust_value.COMPARISON_OPERATOR;
1267 	     l_terr_values_tbl(k).LOW_VALUE_CHAR:= cust_value.value1_char;
1268 
1269 	     l_terr_values_tbl(k).HIGH_VALUE_CHAR:=null;
1270 	     l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
1271 	     l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
1272 	     l_terr_values_tbl(k).VALUE_SET :=NULL;
1273 	     l_terr_values_tbl(k).INTEREST_TYPE_ID :=null;
1274 	     l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
1275 	     l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
1276 	     l_terr_values_tbl(k).CURRENCY_CODE :=null;
1277 	     l_terr_values_tbl(k).ORG_ID :=terr_group.ORG_ID;
1278 	     l_terr_values_tbl(k).ID_USED_FLAG :=l_id_used_flag;
1279 	     l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
1280 
1281 	     l_terr_values_tbl(k).qualifier_tbl_index := 1;
1282 
1283 	  end loop;
1284 
1285 	  l_init_msg_list := FND_API.G_TRUE;
1286 
1287 	  -- 07/08/03: JDOCHERT: bug#3023653
1288 	  -- mo_global.set_org_context(terr_group.ORG_ID,null);
1289 	  --
1290           jtf_territory_pvt.create_territory (
1291               p_api_version_number         => l_api_version_number,
1292               p_init_msg_list              => l_init_msg_list,
1293               p_commit                     => l_commit,
1294               p_validation_level           => fnd_api.g_valid_level_NONE,
1295               x_return_status              => x_return_status,
1296               x_msg_count                  => x_msg_count,
1297               x_msg_data                   => x_msg_data,
1298               p_terr_all_rec               => l_terr_all_rec,
1299               p_terr_usgs_tbl              => l_terr_usgs_tbl,
1300               p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
1301               p_terr_qual_tbl              => l_terr_qual_tbl,
1302               p_terr_values_tbl            => l_terr_values_tbl,
1303               x_terr_id                    => x_terr_id,
1304               x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
1305               x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
1306               x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
1307               x_terr_values_out_tbl        => x_terr_values_out_tbl
1308             );
1309 
1310 
1311 	  /* BEGIN: Successful Territory creation? */
1312     	   IF x_return_status = 'S' THEN
1313 
1314               /* JDOCHERT: 01/08/03: Added TERR_GROUP_ID and CATCH_ALL_FLAG */
1315               UPDATE JTF_TERR_ALL
1316               set TERR_GROUP_FLAG = 'Y'
1317                 , TERR_GROUP_ID = terr_group.TERR_GROUP_ID
1318                 , CATCH_ALL_FLAG = 'Y'
1319               where terr_id = x_terr_id;
1320 
1321               l_init_msg_list :=FND_API.G_TRUE;
1322 
1323               SELECT   JTF_TERR_RSC_S.nextval
1324          	  into l_terr_rsc_id
1325               FROM DUAL;
1326 
1327               l_TerrRsc_Tbl(1).terr_id := x_terr_id;
1328               l_TerrRsc_Tbl(1).TERR_RSC_ID :=l_terr_rsc_id;
1329               l_TerrRsc_Tbl(1).LAST_UPDATE_DATE:=terr_group.LAST_UPDATE_DATE;
1330       	      l_TerrRsc_Tbl(1).LAST_UPDATED_BY:=terr_group.LAST_UPDATED_BY;
1331       	      l_TerrRsc_Tbl(1).CREATION_DATE:=terr_group.CREATION_DATE;
1332 	      l_TerrRsc_Tbl(1).CREATED_BY:=terr_group.CREATED_BY;
1333 	      l_TerrRsc_Tbl(1).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
1334 	      l_TerrRsc_Tbl(1).RESOURCE_ID:=terr_group.catch_all_resource_id;
1335 	      l_TerrRsc_Tbl(1).RESOURCE_TYPE:=terr_group.catch_all_resource_type;
1336 
1337 	      --l_TerrRsc_Tbl(1).ROLE:=tran_type.role_code;
1338               l_TerrRsc_Tbl(1).ROLE:='SALES_ADMIN';
1339 	      l_TerrRsc_Tbl(1).PRIMARY_CONTACT_FLAG:='N';
1340 	      l_TerrRsc_Tbl(1).START_DATE_ACTIVE:=terr_group.active_from_date ;
1341 	      l_TerrRsc_Tbl(1).END_DATE_ACTIVE:=terr_group.active_to_date ;
1342 	      l_TerrRsc_Tbl(1).ORG_ID:=terr_group.ORG_ID;
1343 	      l_TerrRsc_Tbl(1).FULL_ACCESS_FLAG:='Y';
1344 	      l_TerrRsc_Tbl(1).GROUP_ID:=-999;
1345 
1346               a:=0;
1347               --
1348               FOR rsc_acc in na_access(terr_group.terr_group_id) LOOP
1349 
1350                  a := a+1;
1351 
1352 		 /* ACCOUNT ACCESS TYPE */
1353                  IF rsc_acc.access_type= 'ACCOUNT' then
1354 
1355                     SELECT   JTF_TERR_RSC_ACCESS_S.nextval
1356       	            INTO l_terr_rsc_access_id
1357                     FROM DUAL;
1358 
1359                     l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
1360       		    l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
1361       		    l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1362       		    l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
1363 		    l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
1364 		    l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1365 		    l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
1366 		    l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'ACCOUNT';
1367 		    l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
1368 		    l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= 1;
1369 
1370 		 /* OPPORTUNITY ACCESS TYPE */
1371                  ELSIF rsc_acc.access_type= 'OPPORTUNITY' then
1372 
1373                     SELECT   JTF_TERR_RSC_ACCESS_S.nextval
1374       	            into l_terr_rsc_access_id
1375                     FROM DUAL;
1376 
1377       		    l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
1378       		    l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
1379       		    l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1380       		    l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
1381 		    l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
1382 		    l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1383 		    l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
1384 		    l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'OPPOR';
1385 		    l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
1386 		    l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= 1;
1387 
1388 		 /* LEAD ACCESS TYPE */
1389                  elsif rsc_acc.access_type= 'LEAD' then
1390 
1391                        SELECT   JTF_TERR_RSC_ACCESS_S.nextval
1392       	               into l_terr_rsc_access_id
1393                        FROM DUAL;
1394 
1395          	       l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
1396       		       l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
1397       		       l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1398       		       l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
1399 		       l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
1400 		       l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1401 		       l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
1402 		       l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'LEAD';
1403 		       l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
1404    		       l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:=1;
1405 
1406                  end if;
1407                end loop;   /* End of rsc_acc */
1408 
1409                l_init_msg_list := FND_API.G_TRUE;
1410 
1411    	   		    -- 07/08/03: JDOCHERT: bug#3023653
1412                 jtf_territory_resource_pvt.create_terrresource (
1413                    p_api_version_number      => l_Api_Version_Number,
1414                    p_init_msg_list           => l_Init_Msg_List,
1415                    p_commit                  => l_Commit,
1416                    p_validation_level        => fnd_api.g_valid_level_NONE,
1417                    x_return_status           => x_Return_Status,
1418                    x_msg_count               => x_Msg_Count,
1419                    x_msg_data                => x_msg_data,
1420                    p_terrrsc_tbl             => l_TerrRsc_tbl,
1421                    p_terrrsc_access_tbl      => l_terrRsc_access_tbl,
1422                    x_terrrsc_out_tbl         => x_TerrRsc_Out_Tbl,
1423                    x_terrrsc_access_out_tbl  => x_TerrRsc_Access_Out_Tbl
1424                 );
1425 
1426                if x_Return_Status='S' then
1427                      write_log( 2,'     RESOURCE CREATED FOR NAMED ACCOUNT CATCH ALL TERRITORY ' ||
1428    				           x_terr_id);
1429                else
1430                      write_log( 2,'     FAILED IN RESOURCE CREATION FOR NAMED ACCOUNT CATCH ALL TERRITORY' ||
1431 		   			           x_terr_id);
1432                    x_msg_data :=  fnd_msg_pub.get(1, fnd_api.g_false);
1433                end if;
1434 
1435              /* else of -if the catch all territory creation failed */
1436              else
1437                   x_msg_data :=  fnd_msg_pub.get(1, fnd_api.g_false);
1438                   write_log(2,x_msg_data);
1439                   WRITE_LOG(2,'ERROR: NA CATCH-ALL TERRITORY CREATION FAILED ' ||
1440 			                  'FOR TERRITORY_GROUP_ID# ' ||TERR_GROUP.TERR_GROUP_ID);
1441 	      end if;
1442 
1443 	  END IF; /* ( terr_group.matching_rule_code IN ('1', '2') AND
1444 		               terr_group.generate_catchall_flag = 'Y' ) THEN */
1445 
1446 	  /* END: Successful Territory creation? */
1447           /**************************************************************/
1448           /* (4) END: CREATE NA CATCH-ALL TERRITORY FOR TERRITORY GROUP */
1449           /**************************************************************/
1450 
1451 
1452          /***************************************************************/
1453          /* (5) START: CREATE NA TERRITORIES FOR NAs IN TERRITORY GROUP */
1454          /*     USING DUNS# QUALIFIER                                   */
1455          /***************************************************************/
1456 	 IF ( terr_group.matching_rule_code IN ('2', '3') ) THEN
1457 
1458            FOR naterr in get_party_duns(terr_group.terr_group_id) LOOP
1459 
1460                 --write_log(2,'na '||naterr.named_account_id);
1461 
1462    	        l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
1463 
1464 	        l_terr_qual_tbl := l_terr_qual_empty_tbl;
1465                 l_terr_values_tbl := l_terr_values_empty_tbl;
1466 
1467 		l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
1468                 l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
1469 
1470                 /* TERRITORY HEADER */
1471  	        /* Ensure static TERR_ID to benefit TAP Performance */
1472 	        BEGIN
1473 
1474 		     l_terr_exists := 0;
1475 
1476 		     SELECT COUNT(*)
1477 			 INTO l_terr_exists
1478 	         	 FROM jtf_terr_all jt
1479 			 WHERE jt.terr_id = naterr.terr_group_account_id * -100;
1480 
1481 			 IF (l_terr_exists = 0) THEN
1482 			    l_terr_all_rec.TERR_ID := naterr.terr_group_account_id * -100;
1483 			 ELSE
1484 			    l_terr_all_rec.TERR_ID := NULL;
1485 			 END IF;
1486 
1487 			  EXCEPTION
1488 			     WHEN NO_DATA_FOUND THEN
1489 				    l_terr_all_rec.TERR_ID := naterr.terr_group_account_id * -100;
1490 		 END;
1491 
1492 
1493                   l_terr_all_rec.LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1494                       l_terr_all_rec.LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1495                       l_terr_all_rec.CREATION_DATE:= terr_group.CREATION_DATE;
1496                       l_terr_all_rec.CREATED_BY := terr_group.CREATED_BY ;
1497                       l_terr_all_rec.LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1498 
1499                       l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
1500                       l_terr_all_rec.NAME:= naterr.name || ' (DUNS#)';
1501                       l_terr_all_rec.start_date_active := terr_group.active_from_date ;
1502                       l_terr_all_rec.end_date_active   := terr_group.active_to_date;
1503                       l_terr_all_rec.PARENT_TERRITORY_ID:=  l_nacat;
1504                       l_terr_all_rec.RANK := terr_group.RANK + 10;
1505                       l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
1506                       l_terr_all_rec.TEMPLATE_FLAG := 'N';
1507                       l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
1508                       l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
1509                       l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
1510                       l_terr_all_rec.DESCRIPTION:= naterr.name || ' (DUNS#)';
1511                       l_terr_all_rec.UPDATE_FLAG :='N';
1512                       l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
1513 
1514                       l_terr_all_rec.ORG_ID :=terr_group.ORG_ID ;
1515                       l_terr_all_rec.NUM_WINNERS :=null ;
1516 
1517 
1518                           /* Oracle Sales and Telesales Usage */
1519                       SELECT   JTF_TERR_USGS_S.nextval
1520                 into l_terr_usg_id
1521                   FROM DUAL;
1522 
1523                   l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
1524                   l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1525                   l_terr_usgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1526                   l_terr_usgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
1527                       l_terr_usgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
1528                       l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
1529                       l_terr_usgs_tbl(1).TERR_ID:= null;
1530                       l_terr_usgs_tbl(1).SOURCE_ID:=-1001;
1531                       l_terr_usgs_tbl(1).ORG_ID:= terr_group.ORG_ID;
1532 
1533                  i:=0;
1534 
1535 		  /* BEGIN: For each Access Type defined for the Territory Group */
1536 
1537               for acctype in get_NON_OVLY_na_trans(naterr.terr_group_account_id) LOOP
1538 
1539                  i:=i+1;
1540 
1541 				 /* ACCOUNT TRANSACTION TYPE */
1542                  if acctype.access_type='ACCOUNT' then
1543 
1544                     SELECT JTF_TERR_QTYPE_USGS_S.nextval
1545         	          into l_terr_qtype_usg_id
1546                     FROM DUAL;
1547            		    l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
1548         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1549         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1550         		    l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
1551  		            l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
1552  		            l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1553  		            l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
1554  		            l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1001;
1555  		            l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
1556 
1557 				 /* LEAD TRANSACTION TYPE */
1558                  elsif acctype.access_type='LEAD' then
1559 
1560                     SELECT JTF_TERR_QTYPE_USGS_S.nextval
1561         	          into l_terr_qtype_usg_id
1562                     FROM DUAL;
1563            		    l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
1564         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1565         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1566         		    l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
1567  		            l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
1568  		            l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1569  		            l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
1570  		            l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1002;
1571  		            l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
1572 
1573 				 /* OPPORTUNITY TRANSACTION TYPE */
1574                  elsif acctype.access_type='OPPORTUNITY' then
1575 
1576                     SELECT JTF_TERR_QTYPE_USGS_S.nextval
1577         	          into l_terr_qtype_usg_id
1578                     FROM DUAL;
1579            		    l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
1580         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1581         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1582         		    l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
1583  		            l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
1584  		            l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1585  		            l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
1586  		            l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1003;
1587  		            l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
1588 
1589                  end if;
1590 
1591               end loop;
1592 			  /* END: For each Access Type defined for the Territory Group */
1593 
1594 
1595 			  /*
1596 			  ** get Named Account Customer Keyname and Postal Code Mapping
1597 			  ** rules, to use as territory definition qualifier values
1598 			  */
1599               j:=0;
1600 		      K:=0;
1601               l_prev_qual_usg_id:=1;
1602               FOR qval IN match_rule3( naterr.named_account_id ) LOOP
1603 
1604 			     /* new qualifier, i.e., if there is a qualifier in
1605 				 ** Addition to DUNS# */
1606 		         IF l_prev_qual_usg_id <> qval.qual_usg_id THEN
1607 
1608                     j:=j+1;
1609 
1610         	        SELECT JTF_TERR_QUAL_S.nextval
1611         	          into l_terr_qual_id
1612         	        FROM DUAL;
1613 
1614                     l_terr_qual_tbl(j).TERR_QUAL_ID :=l_terr_qual_id;
1615         	        l_terr_qual_tbl(j).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
1616  		            l_terr_qual_tbl(j).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1617  		            l_terr_qual_tbl(j).CREATION_DATE:= terr_group.CREATION_DATE;
1618  		            l_terr_qual_tbl(j).CREATED_BY := terr_group.CREATED_BY;
1619  		            l_terr_qual_tbl(j).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1620  		            l_terr_qual_tbl(j).TERR_ID:=null;
1621  		            l_terr_qual_tbl(j).QUAL_USG_ID :=qval.qual_usg_id;
1622  		            l_terr_qual_tbl(j).QUALIFIER_MODE:=NULL;
1623  		            l_terr_qual_tbl(j).OVERLAP_ALLOWED_FLAG:='N';
1624  		            l_terr_qual_tbl(j).USE_TO_NAME_FLAG:=NULL;
1625  		            l_terr_qual_tbl(j).GENERATE_FLAG:=NULL;
1626  		            l_terr_qual_tbl(j).ORG_ID:=terr_group.ORG_ID;
1627 		            l_prev_qual_usg_id:= qval.qual_usg_id;
1628 
1629 	  	         END IF;
1630 
1631    	     	     k:=k+1;
1632 
1633        		     l_terr_values_tbl(k).TERR_VALUE_ID:=null;
1634  		         l_terr_values_tbl(k).LAST_UPDATED_BY := terr_group.last_UPDATED_BY;
1635  		         l_terr_values_tbl(k).LAST_UPDATE_DATE:= terr_group.last_UPDATE_DATE;
1636  		         l_terr_values_tbl(k).CREATED_BY  := terr_group.CREATED_BY;
1637  		         l_terr_values_tbl(k).CREATION_DATE:= terr_group.CREATION_DATE;
1638  		         l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= terr_group.last_UPDATE_LOGIN;
1639  		         l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
1640  		         l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
1641  		         l_terr_values_tbl(k).COMPARISON_OPERATOR := qval.COMPARISON_OPERATOR;
1642  		         l_terr_values_tbl(k).LOW_VALUE_CHAR:= qval.value1_char;
1643  		         l_terr_values_tbl(k).HIGH_VALUE_CHAR:= NULL;
1644  		         l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
1645  		         l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
1646  		         l_terr_values_tbl(k).VALUE_SET :=NULL;
1647  		         l_terr_values_tbl(k).INTEREST_TYPE_ID :=null;
1648  		         l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
1649  		         l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
1650  		         l_terr_values_tbl(k).CURRENCY_CODE :=null;
1651  		         l_terr_values_tbl(k).ORG_ID :=terr_group.ORG_ID;
1652  		         l_terr_values_tbl(k).ID_USED_FLAG :='N';
1653  		         l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
1654 
1655          		 l_terr_values_tbl(k).qualifier_tbl_index := j;
1656 
1657   		      end loop; /* qval IN pqual */
1658 
1659 
1660 		      l_init_msg_list :=FND_API.G_TRUE;
1661 
1662  		      -- 07/08/03: JDOCHERT: bug#3023653
1663 			  --mo_global.set_org_context(terr_group.ORG_ID,null);
1664 			  --
1665 
1666               jtf_territory_pvt.create_territory (
1667                 p_api_version_number         => l_api_version_number,
1668                 p_init_msg_list              => l_init_msg_list,
1669                 p_commit                     => l_commit,
1670                 p_validation_level           => fnd_api.g_valid_level_NONE,
1671                 x_return_status              => x_return_status,
1672                 x_msg_count                  => x_msg_count,
1673                 x_msg_data                   => x_msg_data,
1674                 p_terr_all_rec               => l_terr_all_rec,
1675                 p_terr_usgs_tbl              => l_terr_usgs_tbl,
1676                 p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
1677                 p_terr_qual_tbl              => l_terr_qual_tbl,
1678                 p_terr_values_tbl            => l_terr_values_tbl,
1679                 x_terr_id                    => x_terr_id,
1680                 x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
1681                 x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
1682                 x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
1683                 x_terr_values_out_tbl        => x_terr_values_out_tbl
1684               );
1685 
1686 
1687 
1688 			  /* BEGIN: Successful Territory creation? */
1689 	          if x_return_status = 'S' then
1690 
1691                  -- JDOCHERT: 01/08/03: Added TERR_GROUP_ID and CATCH_ALL_FLAG
1692                  -- and NAMED_ACCOUNT_FLAG and TERR_GROUP_ACCOUNT_ID
1693                  UPDATE JTF_TERR_ALL
1694                  set TERR_GROUP_FLAG = 'Y'
1695                    , TERR_GROUP_ID = terr_group.TERR_GROUP_ID
1696                    , CATCH_ALL_FLAG = 'N'
1697                    , NAMED_ACCOUNT_FLAG = 'Y'
1698                    , TERR_GROUP_ACCOUNT_ID = naterr.terr_group_account_id
1699                  where terr_id = x_terr_id;
1700 
1701                  l_init_msg_list :=FND_API.G_TRUE;
1702                  i := 0;
1703                  a := 0;
1704 
1705                  FOR tran_type in role_interest_nonpi(terr_group.Terr_gROUP_ID)
1706                  LOOP
1707                     --dbms_output.put_line('tran_type.role_code   '||tran_type.role_code);
1708 
1709                     /* JRADHAKR changed the parameter from l_terr_group_id to l_terr_group_acct_id */
1710              	    FOR rsc in resource_grp(naterr.terr_group_account_id,tran_type.role_code)
1711                     loop
1712                        i:=i+1;
1713 
1714                        SELECT JTF_TERR_RSC_S.nextval
1715         	             into l_terr_rsc_id
1716         	           FROM DUAL;
1717 
1718                        l_TerrRsc_Tbl(i).terr_id := x_terr_id;
1719                        l_TerrRsc_Tbl(i).TERR_RSC_ID :=l_terr_rsc_id;
1720                        l_TerrRsc_Tbl(i).LAST_UPDATE_DATE:=terr_group.LAST_UPDATE_DATE;
1721                        l_TerrRsc_Tbl(i).LAST_UPDATED_BY:=terr_group.LAST_UPDATED_BY;
1722                        l_TerrRsc_Tbl(i).CREATION_DATE:=terr_group.CREATION_DATE;
1723  	                   l_TerrRsc_Tbl(i).CREATED_BY:=terr_group.CREATED_BY;
1724  	                   l_TerrRsc_Tbl(i).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
1725  	                   --l_TerrRsc_Tbl(i).TERR_ID:=terr_group.TERRITORY_ID;
1726  	                   l_TerrRsc_Tbl(i).RESOURCE_ID:=rsc.resource_id;
1727  	                   l_TerrRsc_Tbl(i).RESOURCE_TYPE:=rsc.rsc_resource_type;
1728  	                   l_TerrRsc_Tbl(i).ROLE:=tran_type.role_code;
1729                        --l_TerrRsc_Tbl(i).ROLE:=l_role;
1730  	                   l_TerrRsc_Tbl(i).PRIMARY_CONTACT_FLAG:='N';
1731  	                   l_TerrRsc_Tbl(i).START_DATE_ACTIVE:=terr_group.active_from_date ;
1732  	                   l_TerrRsc_Tbl(i).END_DATE_ACTIVE:=terr_group.active_to_date ;
1733  	                   l_TerrRsc_Tbl(i).ORG_ID:=terr_group.ORG_ID;
1734  	                   l_TerrRsc_Tbl(i).FULL_ACCESS_FLAG:='Y';
1735  	                   l_TerrRsc_Tbl(i).GROUP_ID:=rsc.rsc_group_id;
1736                        --dbms_output.put_line('rsc.resource_id   '||rsc.resource_id);
1737 
1738 
1739                        FOR rsc_acc in NON_OVLY_role_access(terr_group.terr_group_id,tran_type.role_code) LOOP
1740                           --dbms_output.put_line('rsc_acc.access_type   '||rsc_acc.access_type);
1741                           a := a+1;
1742 
1743 		                  /* ACCOUNT ACCESS TYPE */
1744                           IF (rsc_acc.access_type= 'ACCOUNT') THEN
1745 
1746                              SELECT JTF_TERR_RSC_ACCESS_S.nextval
1747         	                   into l_terr_rsc_access_id
1748                              FROM DUAL;
1749             		         l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
1750         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
1751         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1752         		             l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
1753  		                     l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
1754  		                     l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1755  		                     l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
1756  		                     l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'ACCOUNT';
1757  		                     l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
1758  		                     l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
1759 
1760 						  /* OPPORTUNITY ACCESS TYPE */
1761 						  elsif rsc_acc.access_type= 'OPPORTUNITY' then
1762 
1763                              SELECT JTF_TERR_RSC_ACCESS_S.nextval
1764         	                 into l_terr_rsc_access_id
1765                              FROM DUAL;
1766         		             l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
1767         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
1768         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1769         		             l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
1770  		                     l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
1771  		                     l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1772  		                     l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
1773  		                     l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'OPPOR';
1774  		                     l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
1775  		                     l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
1776 
1777 
1778 						  /* LEAD ACCESS TYPE */
1779                           elsif rsc_acc.access_type= 'LEAD' then
1780 
1781                              SELECT   JTF_TERR_RSC_ACCESS_S.nextval
1782         	                 into l_terr_rsc_access_id
1783                              FROM DUAL;
1784         		             l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
1785         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
1786         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1787         		             l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
1788  		                     l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
1789  		                     l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1790  		                     l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
1791  		                     l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'LEAD';
1792  		                     l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
1793  		                     l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
1794                           end if;
1795                        end loop; /* FOR rsc_acc in NON_OVLY_role_access */
1796 
1797                     end loop; /* FOR rsc in resource_grp */
1798 
1799                  end loop;/* FOR tran_type in role_interest_nonpi */
1800 
1801                  l_init_msg_list :=FND_API.G_TRUE;
1802 
1803 			     -- 07/08/03: JDOCHERT: bug#3023653
1804                  jtf_territory_resource_pvt.create_terrresource (
1805                     p_api_version_number      => l_Api_Version_Number,
1806                     p_init_msg_list           => l_Init_Msg_List,
1807                     p_commit                  => l_Commit,
1808                     p_validation_level        => fnd_api.g_valid_level_NONE,
1809                     x_return_status           => x_Return_Status,
1810                     x_msg_count               => x_Msg_Count,
1811                     x_msg_data                => x_msg_data,
1812                     p_terrrsc_tbl             => l_TerrRsc_tbl,
1813                     p_terrrsc_access_tbl      => l_terrRsc_access_tbl,
1814                     x_terrrsc_out_tbl         => x_TerrRsc_Out_Tbl,
1815                     x_terrrsc_access_out_tbl  => x_TerrRsc_Access_Out_Tbl
1816                  );
1817 
1818                  if x_Return_Status='S' then
1819       	         	write_log(2,'     Resource created for NA territory # ' ||x_terr_id);
1820                  else
1821                     x_msg_data := substr(fnd_msg_pub.get(1, fnd_api.g_false),1,254);
1822                     write_log(2,x_msg_data);
1823                     write_log(2, '     Failed in resource creation for NA territory # ' ||
1824 					             x_terr_id);
1825                  end if;
1826 
1827               else
1828                  x_msg_data :=  substr(fnd_msg_pub.get(1, fnd_api.g_false),1,254);
1829                  write_log(2,substr(x_msg_data,1,254));
1830                WRITE_LOG(2,'ERROR: NA TERRITORY CREATION FAILED ' ||
1831 			               'FOR NAMED_ACCOUNT_ID# ' || naterr.named_account_id );
1832    	          end if; /* END: Successful Territory creation? */
1833 
1834            end loop; /* naterr in get_party_duns */
1835 		 END IF; /* ( terr_group.matching_rule_code IN ('3') THEN */
1836          /*************************************************************/
1837          /* (5) END: CREATE NA TERRITORIES FOR NAs IN TERRITORY GROUP */
1838          /*     USING DUNS# QUALIFIER                                 */
1839          /*************************************************************/
1840 
1841          /* dbms_output.put_line('terr_group.terr_group_name='||
1842 		                          terr_group.terr_group_name);
1843             dbms_output.put_line('terr_group.matching_rule_code='||
1844 			                     terr_group.matching_rule_code);*/
1845 
1846          /***************************************************************/
1847          /* (6) START: CREATE NA TERRITORIES FOR NAs IN TERRITORY GROUP */
1848 		 /*     USING CUSTOMER NAME RANGE AND POSTAL CODE QUALIFIERS    */
1849          /***************************************************************/
1850 	     IF ( terr_group.matching_rule_code IN ('1', '2') ) THEN
1851            FOR naterr in get_party_name(terr_group.terr_group_id) LOOP
1852 
1853                 l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
1854    	            l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
1855 
1856 	            l_terr_qual_tbl := l_terr_qual_empty_tbl;
1857                 l_terr_values_tbl := l_terr_values_empty_tbl;
1858 
1859 
1860 			  l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
1861               l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
1862 
1863               /* TERRITORY HEADER */
1864 		      /* Ensure static TERR_ID to benefit TAP Performance */
1865 			  BEGIN
1866 
1867 			     l_terr_exists := 0;
1868 
1869 			     SELECT COUNT(*)
1870 				 INTO l_terr_exists
1871 				 FROM jtf_terr_all jt
1872 				 WHERE jt.terr_id = naterr.terr_group_account_id * -10000;
1873 
1874 				 IF (l_terr_exists = 0) THEN
1875 				    l_terr_all_rec.TERR_ID := naterr.terr_group_account_id * -10000;
1876 				 ELSE
1877 				    l_terr_all_rec.TERR_ID := NULL;
1878 				 END IF;
1879 
1880 			  EXCEPTION
1881 			     WHEN NO_DATA_FOUND THEN
1882 				    l_terr_all_rec.TERR_ID := naterr.terr_group_account_id * -10000;
1883 			  END;
1884 
1885  	      	  l_terr_all_rec.LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1886  	  	      l_terr_all_rec.LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1887  		      l_terr_all_rec.CREATION_DATE:= terr_group.CREATION_DATE;
1888  		      l_terr_all_rec.CREATED_BY := terr_group.CREATED_BY ;
1889  		      l_terr_all_rec.LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1890 
1891  		      l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
1892  		      l_terr_all_rec.NAME:= naterr.name;
1893  		      l_terr_all_rec.start_date_active := terr_group.active_from_date ;
1894  		      l_terr_all_rec.end_date_active   := terr_group.active_to_date;
1895  		      l_terr_all_rec.PARENT_TERRITORY_ID:=  l_nacat;
1896  		      l_terr_all_rec.RANK := terr_group.RANK + 20;
1897  		      l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
1898  		      l_terr_all_rec.TEMPLATE_FLAG := 'N';
1899  		      l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
1900  		      l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
1901  		      l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
1902  		      l_terr_all_rec.DESCRIPTION:= naterr.name;
1903  		      l_terr_all_rec.UPDATE_FLAG :='N';
1904  		      l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
1905 
1906  		      l_terr_all_rec.ORG_ID :=terr_group.ORG_ID ;
1907  		      l_terr_all_rec.NUM_WINNERS :=null ;
1908 
1909 
1910 			  /* Oracle Sales and Telesales Usage */
1911  		      SELECT   JTF_TERR_USGS_S.nextval
1912             	into l_terr_usg_id
1913         	  FROM DUAL;
1914 
1915          	  l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
1916         	  l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1917         	  l_terr_usgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1918         	  l_terr_usgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
1919  		      l_terr_usgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
1920  		      l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
1921  		      l_terr_usgs_tbl(1).TERR_ID:= null;
1922  		      l_terr_usgs_tbl(1).SOURCE_ID:=-1001;
1923  		      l_terr_usgs_tbl(1).ORG_ID:= terr_group.ORG_ID;
1924               i:=0;
1925 
1926 			  /* BEGIN: For each Access Type defined for the Territory Group */
1927               for acctype in get_NON_OVLY_na_trans(naterr.terr_group_account_id) LOOP
1928 
1929                  i:=i+1;
1930 
1931 				 /* ACCOUNT TRANSACTION TYPE */
1932                  if acctype.access_type='ACCOUNT' then
1933 
1934                     SELECT JTF_TERR_QTYPE_USGS_S.nextval
1935         	          into l_terr_qtype_usg_id
1936                     FROM DUAL;
1937            		    l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
1938         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1939         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1940         		    l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
1941  		            l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
1942  		            l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1943  		            l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
1944  		            l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1001;
1945  		            l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
1946 
1947 				 /* LEAD TRANSACTION TYPE */
1948                  elsif acctype.access_type='LEAD' then
1949 
1950                     SELECT JTF_TERR_QTYPE_USGS_S.nextval
1951         	          into l_terr_qtype_usg_id
1952                     FROM DUAL;
1953            		    l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
1954         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1955         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1956         		    l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
1957  		            l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
1958  		            l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1959  		            l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
1960  		            l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1002;
1961  		            l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
1962 
1963 				 /* OPPORTUNITY TRANSACTION TYPE */
1964                  elsif acctype.access_type='OPPORTUNITY' then
1965 
1966                     SELECT JTF_TERR_QTYPE_USGS_S.nextval
1967         	          into l_terr_qtype_usg_id
1968                     FROM DUAL;
1969            		    l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
1970         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
1971         		    l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
1972         		    l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
1973  		            l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
1974  		            l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
1975  		            l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
1976  		            l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1003;
1977  		            l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
1978 
1979                  end if;
1980 
1981               end loop;
1982 			  /* END: For each Access Type defined for the Territory Group */
1983 
1984 
1985 			  /*
1986 			  ** get Named Account Customer Keyname and Postal Code Mapping
1987 			  ** rules, to use as territory definition qualifier values
1988 			  */
1989               j:=0;
1990 		      K:=0;
1991               l_prev_qual_usg_id:=1;
1992               FOR qval IN match_rule1( naterr.named_account_id ) LOOP
1993 
1994 			     /* new qualifier, i.e., Customer Name Range or Postal Code:
1995 				 ** driven by ORDER BY on p_qual */
1996 		         IF l_prev_qual_usg_id <> qval.qual_usg_id THEN
1997 
1998                     j:=j+1;
1999 
2000         	        SELECT JTF_TERR_QUAL_S.nextval
2001         	          into l_terr_qual_id
2002         	        FROM DUAL;
2003 
2004                     l_terr_qual_tbl(j).TERR_QUAL_ID :=l_terr_qual_id;
2005         	        l_terr_qual_tbl(j).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
2006  		            l_terr_qual_tbl(j).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2007  		            l_terr_qual_tbl(j).CREATION_DATE:= terr_group.CREATION_DATE;
2008  		            l_terr_qual_tbl(j).CREATED_BY := terr_group.CREATED_BY;
2009  		            l_terr_qual_tbl(j).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2010  		            l_terr_qual_tbl(j).TERR_ID:=null;
2011  		            l_terr_qual_tbl(j).QUAL_USG_ID :=qval.qual_usg_id;
2012  		            l_terr_qual_tbl(j).QUALIFIER_MODE:=NULL;
2013  		            l_terr_qual_tbl(j).OVERLAP_ALLOWED_FLAG:='N';
2014  		            l_terr_qual_tbl(j).USE_TO_NAME_FLAG:=NULL;
2015  		            l_terr_qual_tbl(j).GENERATE_FLAG:=NULL;
2016  		            l_terr_qual_tbl(j).ORG_ID:=terr_group.ORG_ID;
2017 		            l_prev_qual_usg_id:= qval.qual_usg_id;
2018 
2019 	  	         END IF;
2020 
2021    	     	     k:=k+1;
2022 
2023        		     l_terr_values_tbl(k).TERR_VALUE_ID:=null;
2024  		         l_terr_values_tbl(k).LAST_UPDATED_BY := terr_group.last_UPDATED_BY;
2025  		         l_terr_values_tbl(k).LAST_UPDATE_DATE:= terr_group.last_UPDATE_DATE;
2026  		         l_terr_values_tbl(k).CREATED_BY  := terr_group.CREATED_BY;
2027  		         l_terr_values_tbl(k).CREATION_DATE:= terr_group.CREATION_DATE;
2028  		         l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= terr_group.last_UPDATE_LOGIN;
2029  		         l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
2030  		         l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
2031  		         l_terr_values_tbl(k).COMPARISON_OPERATOR := qval.COMPARISON_OPERATOR;
2032  		         l_terr_values_tbl(k).LOW_VALUE_CHAR:= qval.value1_char;
2033  		         l_terr_values_tbl(k).HIGH_VALUE_CHAR:=qval.value2_char;
2034  		         l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
2035  		         l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
2036  		         l_terr_values_tbl(k).VALUE_SET :=NULL;
2037  		         l_terr_values_tbl(k).INTEREST_TYPE_ID :=null;
2038  		         l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
2039  		         l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
2040  		         l_terr_values_tbl(k).CURRENCY_CODE :=null;
2041  		         l_terr_values_tbl(k).ORG_ID :=terr_group.ORG_ID;
2042  		         l_terr_values_tbl(k).ID_USED_FLAG :='N';
2043  		         l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
2044 
2045          		 l_terr_values_tbl(k).qualifier_tbl_index := j;
2046 
2047   		      end loop; /* qval IN pqual */
2048 
2049 
2050 		      l_init_msg_list :=FND_API.G_TRUE;
2051 
2052  		      -- 07/08/03: JDOCHERT: bug#3023653
2053 			  --mo_global.set_org_context(terr_group.ORG_ID,null);
2054 			  --
2055 
2056               jtf_territory_pvt.create_territory (
2057                 p_api_version_number         => l_api_version_number,
2058                 p_init_msg_list              => l_init_msg_list,
2059                 p_commit                     => l_commit,
2060                 p_validation_level           => fnd_api.g_valid_level_NONE,
2061                 x_return_status              => x_return_status,
2062                 x_msg_count                  => x_msg_count,
2063                 x_msg_data                   => x_msg_data,
2064                 p_terr_all_rec               => l_terr_all_rec,
2065                 p_terr_usgs_tbl              => l_terr_usgs_tbl,
2066                 p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
2067                 p_terr_qual_tbl              => l_terr_qual_tbl,
2068                 p_terr_values_tbl            => l_terr_values_tbl,
2069                 x_terr_id                    => x_terr_id,
2070                 x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
2071                 x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
2072                 x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
2073                 x_terr_values_out_tbl        => x_terr_values_out_tbl
2074               );
2075 
2076 
2077 
2078 			  /* BEGIN: Successful Territory creation? */
2079 	          if x_return_status = 'S' then
2080 
2081                  -- JDOCHERT: 01/08/03: Added TERR_GROUP_ID and CATCH_ALL_FLAG
2082                  -- and NAMED_ACCOUNT_FLAG and TERR_GROUP_ACCOUNT_ID
2083                  UPDATE JTF_TERR_ALL
2084                  set TERR_GROUP_FLAG = 'Y'
2085                    , TERR_GROUP_ID = terr_group.TERR_GROUP_ID
2086                    , CATCH_ALL_FLAG = 'N'
2087                    , NAMED_ACCOUNT_FLAG = 'Y'
2088                    , TERR_GROUP_ACCOUNT_ID = naterr.terr_group_account_id
2089                  where terr_id = x_terr_id;
2090 
2091                  --write_log(2,terr_group.terr_group_id);
2092                  --write_log(2,tran_type.role_code);
2093                  l_init_msg_list :=FND_API.G_TRUE;
2094                  i := 0;
2095                  a := 0;
2096 
2097                  FOR tran_type in role_interest_nonpi(terr_group.Terr_gROUP_ID)
2098                  LOOP
2099                     --dbms_output.put_line('tran_type.role_code   '||tran_type.role_code);
2100 
2101                     /* JRADHAKR changed the parameter from l_terr_group_id to l_terr_group_acct_id */
2102              	    FOR rsc in resource_grp(naterr.terr_group_account_id,tran_type.role_code)
2103                     loop
2104                        i:=i+1;
2105 
2106                        SELECT JTF_TERR_RSC_S.nextval
2107         	             into l_terr_rsc_id
2108         	           FROM DUAL;
2109 
2110                        l_TerrRsc_Tbl(i).terr_id := x_terr_id;
2111                        l_TerrRsc_Tbl(i).TERR_RSC_ID :=l_terr_rsc_id;
2112                        l_TerrRsc_Tbl(i).LAST_UPDATE_DATE:=terr_group.LAST_UPDATE_DATE;
2113                        l_TerrRsc_Tbl(i).LAST_UPDATED_BY:=terr_group.LAST_UPDATED_BY;
2114                        l_TerrRsc_Tbl(i).CREATION_DATE:=terr_group.CREATION_DATE;
2115  	                   l_TerrRsc_Tbl(i).CREATED_BY:=terr_group.CREATED_BY;
2116  	                   l_TerrRsc_Tbl(i).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
2117  	                   --l_TerrRsc_Tbl(i).TERR_ID:=terr_group.TERRITORY_ID;
2118  	                   l_TerrRsc_Tbl(i).RESOURCE_ID:=rsc.resource_id;
2119  	                   l_TerrRsc_Tbl(i).RESOURCE_TYPE:=rsc.rsc_resource_type;
2120  	                   l_TerrRsc_Tbl(i).ROLE:=tran_type.role_code;
2121                        --l_TerrRsc_Tbl(i).ROLE:=l_role;
2122  	                   l_TerrRsc_Tbl(i).PRIMARY_CONTACT_FLAG:='N';
2123  	                   l_TerrRsc_Tbl(i).START_DATE_ACTIVE:=terr_group.active_from_date ;
2124  	                   l_TerrRsc_Tbl(i).END_DATE_ACTIVE:=terr_group.active_to_date ;
2125  	                   l_TerrRsc_Tbl(i).ORG_ID:=terr_group.ORG_ID;
2126  	                   l_TerrRsc_Tbl(i).FULL_ACCESS_FLAG:='Y';
2127  	                   l_TerrRsc_Tbl(i).GROUP_ID:=rsc.rsc_group_id;
2128                        --dbms_output.put_line('rsc.resource_id   '||rsc.resource_id);
2129 
2130 
2131                        FOR rsc_acc in NON_OVLY_role_access(terr_group.terr_group_id,tran_type.role_code) LOOP
2132                           --dbms_output.put_line('rsc_acc.access_type   '||rsc_acc.access_type);
2133                           a := a+1;
2134 
2135 		                  /* ACCOUNT ACCESS TYPE */
2136                           IF (rsc_acc.access_type= 'ACCOUNT') THEN
2137 
2138                              SELECT JTF_TERR_RSC_ACCESS_S.nextval
2139         	                   into l_terr_rsc_access_id
2140                              FROM DUAL;
2141             		         l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
2142         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
2143         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2144         		             l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
2145  		                     l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
2146  		                     l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2147  		                     l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
2148  		                     l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'ACCOUNT';
2149  		                     l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
2150  		                     l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
2151 
2152 						  /* OPPORTUNITY ACCESS TYPE */
2153 						  elsif rsc_acc.access_type= 'OPPORTUNITY' then
2154 
2155                              SELECT JTF_TERR_RSC_ACCESS_S.nextval
2156         	                 into l_terr_rsc_access_id
2157                              FROM DUAL;
2158         		             l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
2159         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
2160         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2161         		             l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
2162  		                     l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
2163  		                     l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2164  		                     l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
2165  		                     l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'OPPOR';
2166  		                     l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
2167  		                     l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
2168 
2169 
2170 						  /* LEAD ACCESS TYPE */
2171                           elsif rsc_acc.access_type= 'LEAD' then
2172 
2173                              SELECT   JTF_TERR_RSC_ACCESS_S.nextval
2174         	                 into l_terr_rsc_access_id
2175                              FROM DUAL;
2176         		             l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
2177         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
2178         		             l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2179         		             l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
2180  		                     l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
2181  		                     l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2182  		                     l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
2183  		                     l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'LEAD';
2184  		                     l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
2185  		                     l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
2186                           end if;
2187                        end loop; /* FOR rsc_acc in NON_OVLY_role_access */
2188 
2189                     end loop; /* FOR rsc in resource_grp */
2190 
2191                  end loop;/* FOR tran_type in role_interest_nonpi */
2192 
2193                  l_init_msg_list :=FND_API.G_TRUE;
2194 
2195 			     -- 07/08/03: JDOCHERT: bug#3023653
2196                  jtf_territory_resource_pvt.create_terrresource (
2197                     p_api_version_number      => l_Api_Version_Number,
2198                     p_init_msg_list           => l_Init_Msg_List,
2199                     p_commit                  => l_Commit,
2200                     p_validation_level        => fnd_api.g_valid_level_NONE,
2201                     x_return_status           => x_Return_Status,
2202                     x_msg_count               => x_Msg_Count,
2203                     x_msg_data                => x_msg_data,
2204                     p_terrrsc_tbl             => l_TerrRsc_tbl,
2205                     p_terrrsc_access_tbl      => l_terrRsc_access_tbl,
2206                     x_terrrsc_out_tbl         => x_TerrRsc_Out_Tbl,
2207                     x_terrrsc_access_out_tbl  => x_TerrRsc_Access_Out_Tbl
2208                  );
2209 
2210                  if x_Return_Status='S' then
2211       	         	write_log(2,'     Resource created for NA territory # ' ||x_terr_id);
2212                  else
2213                     x_msg_data := substr(fnd_msg_pub.get(1, fnd_api.g_false),1,254);
2214                     write_log(2,x_msg_data);
2215                     write_log(2, '     Failed in resource creation for NA territory # ' ||
2216 					             x_terr_id);
2217                  end if;
2218 
2219               else
2220                  x_msg_data :=  substr(fnd_msg_pub.get(1, fnd_api.g_false),1,254);
2221                  write_log(2,substr(x_msg_data,1,254));
2222                WRITE_LOG(2,'ERROR: NA TERRITORY CREATION FAILED ' ||
2223 			               'FOR NAMED_ACCOUNT_ID# ' || naterr.named_account_id );
2224    	          end if; /* END: Successful Territory creation? */
2225 
2226            end loop; /* naterr in get_party_name */
2227 		 END IF; /* terr_group.matching_rule_code IN ('1', '2') THEN */
2228          /*************************************************************/
2229          /* (6) END: CREATE NA TERRITORIES FOR NAs IN TERRITORY GROUP */
2230          /*     USING CUSTOMER NAME RANGE AND POSTAL CODE QUALIFIERS  */
2231          /*************************************************************/
2232 
2233            /********************************************************/
2234            /* delete the role and access */
2235            /********************************************************/
2236 		   if l_ovnon_flag = 'Y' then
2237 
2238               for i in l_overnon_role_tbl.first.. l_overnon_role_tbl.last
2239               loop
2240                  delete from jtf_tty_terr_grp_roles
2241                  where TERR_GROUP_ROLE_ID=l_overnon_role_tbl(i).grp_role_id;
2242                  --dbms_output.put_line('deleted');
2243                  delete from jtf_tty_role_access
2244                  where TERR_GROUP_ROLE_ID=l_overnon_role_tbl(i).grp_role_id;
2245               end loop;
2246            end if;
2247 
2248 
2249 --        end if;
2250 		/* END: if Territory Group exists with Named Accounts
2251         ** then auto-create territory definitions */
2252 
2253 
2254 
2255 	/*********************************************************************/
2256 	/*********************************************************************/
2257         /************** OVERLAY TERRITORY CREATION ***************************/
2258 	/*********************************************************************/
2259 	/*********************************************************************/
2260 
2261         /* if any role with PI and Account access and no non pi role exist */
2262         /* we need to create a new branch with Named Account */
2263         /* OVERLAY BRANCH */
2264 
2265 	BEGIN
2266 
2267            SELECT COUNT( DISTINCT b.role_code )
2268 	       into l_pi_count
2269            from jtf_rs_roles_vl r
2270               , jtf_tty_role_prod_int a
2271               , jtf_tty_terr_grp_roles b
2272            where r.role_code = b.role_code
2273              and a.terr_group_role_id = b.terr_group_role_id
2274              and b.terr_group_id      = TERR_GROUP.TERR_GROUP_ID
2275         	 AND EXISTS (
2276 			       /* Named Account exists with Salesperson with this role */
2277 	               SELECT NULL
2278 			       FROM jtf_tty_named_acct_rsc nar, jtf_tty_terr_grp_accts tga
2279 			       WHERE tga.terr_group_account_id = nar.terr_group_account_id
2280 			         AND tga.terr_group_id = b.terr_group_id
2281 			         AND nar.rsc_role_code = b.role_code )
2282 			 AND ROWNUM < 2;
2283 
2284 	    EXCEPTION
2285 		   WHEN OTHERS THEN
2286 		      NUll;
2287 	END;
2288 
2289 
2290 		/* are there overlay roles, i.e., are there roles with Product
2291 		** Interests defined for this Territory Group */
2292         if l_pi_count > 0 then
2293 
2294           /***************************************************************/
2295           /* (7) START: CREATE TOP-LEVEL TERRITORY FOR OVERLAY BRANCH OF */
2296 		  /*    TERRITORY GROUP                                          */
2297           /***************************************************************/
2298            FOR topt in topterr(terr_group.PARENT_TERR_ID) LOOP
2299 
2300               l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
2301 	          l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
2302 	          l_terr_qual_tbl:=l_terr_qual_empty_tbl;
2303               l_terr_values_tbl:=l_terr_values_empty_tbl;
2304               l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
2305               l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
2306 
2307               l_terr_all_rec.TERR_ID := null;
2308  	     	  l_terr_all_rec.LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2309  		      l_terr_all_rec.LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2310  		      l_terr_all_rec.CREATION_DATE:= terr_group.CREATION_DATE;
2311  		      l_terr_all_rec.CREATED_BY := terr_group.CREATED_BY ;
2312  		      l_terr_all_rec.LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2313 
2314  		      l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
2315               l_terr_all_rec.NAME:= terr_group.terr_group_name || ' (OVERLAY)';
2316  		      l_terr_all_rec.start_date_active := terr_group.active_from_date ;
2317  		      l_terr_all_rec.end_date_active   := terr_group.active_to_date;
2318  		      l_terr_all_rec.PARENT_TERRITORY_ID:=  topt.PARENT_TERRITORY_ID;
2319  		      l_terr_all_rec.RANK := topt.RANK;
2320  		      l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
2321  		      l_terr_all_rec.TEMPLATE_FLAG := 'N';
2322  		      l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
2323  		      l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
2324  		      l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
2325  		      l_terr_all_rec.DESCRIPTION:= topt.DESCRIPTION;
2326  		      l_terr_all_rec.UPDATE_FLAG :='N';
2327  		      l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
2328 
2329  		      l_terr_all_rec.ORG_ID :=terr_group.ORG_ID ;
2330  		      l_terr_all_rec.NUM_WINNERS :=l_pi_count ;
2331 
2332 			  /* ORACLE SALES AND TELESALES USAGE */
2333     		  SELECT JTF_TERR_USGS_S.nextval
2334                 into l_terr_usg_id
2335               FROM DUAL;
2336 
2337               l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
2338               l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2339               l_terr_usgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2340               l_terr_usgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
2341  		      l_terr_usgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
2342               l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
2343               l_terr_usgs_tbl(1).TERR_ID:= null;
2344               l_terr_usgs_tbl(1).SOURCE_ID:=-1001;
2345               l_terr_usgs_tbl(1).ORG_ID:= terr_group.ORG_ID;
2346 
2347 
2348 			  /* LEAD TRANSACTION TYPE */
2349               SELECT JTF_TERR_QTYPE_USGS_S.nextval
2350                 into l_terr_qtype_usg_id
2351               FROM DUAL;
2352 
2353       		  l_terr_qualtypeusgs_tbl(1).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
2354    		      l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2355    		      l_terr_qualtypeusgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2356    		      l_terr_qualtypeusgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
2357               l_terr_qualtypeusgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
2358               l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2359               l_terr_qualtypeusgs_tbl(1).TERR_ID:= null;
2360               l_terr_qualtypeusgs_tbl(1).QUAL_TYPE_USG_ID:=-1002;
2361               l_terr_qualtypeusgs_tbl(1).ORG_ID:=terr_group.ORG_ID;
2362 
2363 			  /* OPPORTUNITY TRANSACTION TYPE */
2364 			  SELECT JTF_TERR_QTYPE_USGS_S.nextval
2365        	        into l_terr_qtype_usg_id
2366               FROM DUAL;
2367 
2368         	  l_terr_qualtypeusgs_tbl(2).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
2369    		      l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2370    		      l_terr_qualtypeusgs_tbl(2).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2371    		      l_terr_qualtypeusgs_tbl(2).CREATION_DATE:= terr_group.CREATION_DATE;
2372               l_terr_qualtypeusgs_tbl(2).CREATED_BY := terr_group.CREATED_BY;
2373               l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2374               l_terr_qualtypeusgs_tbl(2).TERR_ID:= null;
2375               l_terr_qualtypeusgs_tbl(2).QUAL_TYPE_USG_ID:=-1003;
2376  		      l_terr_qualtypeusgs_tbl(2).ORG_ID:=terr_group.ORG_ID;
2377 
2378 
2379 			  /*
2380 			  ** get Top-Level Parent's Qualifier and values and
2381 			  ** aad them to Overlay branch top-level territory
2382 			  */
2383               j:=0;
2384 		      k:=0;
2385               l_prev_qual_usg_id:=1;
2386               FOR csr_qual IN csr_get_qual ( topt.terr_id ) LOOP
2387 
2388                  j:=j+1;
2389 
2390         	     SELECT JTF_TERR_QUAL_S.nextval
2391         	     INTO l_terr_qual_id
2392         	     FROM DUAL;
2393 
2394                  l_terr_qual_tbl(j).TERR_QUAL_ID := l_terr_qual_id;
2395         	     l_terr_qual_tbl(j).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
2396  		         l_terr_qual_tbl(j).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2397  		         l_terr_qual_tbl(j).CREATION_DATE:= terr_group.CREATION_DATE;
2398  		         l_terr_qual_tbl(j).CREATED_BY := terr_group.CREATED_BY;
2399  		         l_terr_qual_tbl(j).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2400  		         l_terr_qual_tbl(j).TERR_ID:= null;
2401 
2402 				 /* Top_level Parent's Qualifier */
2403  		         l_terr_qual_tbl(j).QUAL_USG_ID := csr_qual.qual_usg_id;
2404 
2405  		         l_terr_qual_tbl(j).QUALIFIER_MODE:= NULL;
2406  		         l_terr_qual_tbl(j).OVERLAP_ALLOWED_FLAG:='Y';
2407  		         l_terr_qual_tbl(j).USE_TO_NAME_FLAG:=NULL;
2408  		         l_terr_qual_tbl(j).GENERATE_FLAG:=NULL;
2409  		         l_terr_qual_tbl(j).ORG_ID:=terr_group.ORG_ID;
2410 
2411 
2412 				 FOR csr_qual_val IN csr_get_qual_val (csr_qual.terr_qual_id) LOOP
2413 
2414 				    k:=k+1;
2415 
2416 				    l_terr_values_tbl(k).TERR_VALUE_ID := NULL;
2417  		            l_terr_values_tbl(k).LAST_UPDATED_BY := G_USER_ID;
2418  		            l_terr_values_tbl(k).LAST_UPDATE_DATE:= G_SYSDATE;
2419  		            l_terr_values_tbl(k).CREATED_BY  := G_USER_ID;
2420  		            l_terr_values_tbl(k).CREATION_DATE:= G_SYSDATE;
2421  		            l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= G_LOGIN_ID;
2422 
2423  		            l_terr_values_tbl(k).TERR_QUAL_ID := l_terr_qual_id ;
2424 
2425  		            l_terr_values_tbl(k).INCLUDE_FLAG         := csr_qual_val.INCLUDE_FLAG;
2426  		            l_terr_values_tbl(k).COMPARISON_OPERATOR  := csr_qual_val.COMPARISON_OPERATOR;
2427  		            l_terr_values_tbl(k).LOW_VALUE_CHAR       := csr_qual_val.LOW_VALUE_CHAR;
2428  		            l_terr_values_tbl(k).HIGH_VALUE_CHAR      := csr_qual_val.HIGH_VALUE_CHAR;
2429  		            l_terr_values_tbl(k).LOW_VALUE_NUMBER     := csr_qual_val.LOW_VALUE_NUMBER;
2430  		            l_terr_values_tbl(k).HIGH_VALUE_NUMBER    := csr_qual_val.HIGH_VALUE_NUMBER;
2431  		            l_terr_values_tbl(k).VALUE_SET            := csr_qual_val.VALUE_SET;
2432  		            l_terr_values_tbl(k).INTEREST_TYPE_ID     := csr_qual_val.INTEREST_TYPE_ID;
2433  		            l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID   := csr_qual_val.PRIMARY_INTEREST_CODE_ID;
2434  		            l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID := csr_qual_val.SECONDARY_INTEREST_CODE_ID;
2435  		            l_terr_values_tbl(k).CURRENCY_CODE        := csr_qual_val.CURRENCY_CODE;
2436  		            l_terr_values_tbl(k).ID_USED_FLAG         := csr_qual_val.ID_USED_FLAG;
2437  		            l_terr_values_tbl(k).LOW_VALUE_CHAR_ID    := csr_qual_val.LOW_VALUE_CHAR_ID;
2438 
2439  		            l_terr_values_tbl(k).ORG_ID               := terr_group.org_id;
2440 
2441 					/* What Qualifier Values relate to Qualifier */
2442 					l_terr_values_tbl(k).qualifier_tbl_index := j;
2443 
2444 
2445 				 END LOOP;	/* csr_qual_val IN csr_get_qual_val */
2446   		      end loop; /* csr_qual IN csr_get_qual */
2447 
2448 
2449               l_init_msg_list :=FND_API.G_TRUE;
2450 
2451  	     	  -- 07/08/03: JDOCHERT: bug#3023653
2452 			  --mo_global.set_org_context(terr_group.ORG_ID,null);
2453 			  --
2454               jtf_territory_pvt.create_territory (
2455                 p_api_version_number         => l_api_version_number,
2456                 p_init_msg_list              => l_init_msg_list,
2457                 p_commit                     => l_commit,
2458                 p_validation_level           => fnd_api.g_valid_level_NONE,
2459                 x_return_status              => x_return_status,
2460                 x_msg_count                  => x_msg_count,
2461                 x_msg_data                   => x_msg_data,
2462                 p_terr_all_rec               => l_terr_all_rec,
2463                 p_terr_usgs_tbl              => l_terr_usgs_tbl,
2464                 p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
2465                 p_terr_qual_tbl              => l_terr_qual_tbl,
2466                 p_terr_values_tbl            => l_terr_values_tbl,
2467                 x_terr_id                    => x_terr_id,
2468                 x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
2469                 x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
2470                 x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
2471                 x_terr_values_out_tbl        => x_terr_values_out_tbl
2472               );
2473 
2474 
2475               if x_return_status = 'S' then
2476 
2477                  -- JDOCHERT: 01/08/03: Added TERR_GROUP_ID
2478                  UPDATE JTF_TERR_ALL
2479                     set TERR_GROUP_FLAG = 'Y'
2480                       , TERR_GROUP_ID = terr_group.TERR_GROUP_ID
2481                   where terr_id = x_terr_id;
2482 
2483               end if;
2484 
2485               l_overlay_top :=x_terr_id;
2486 
2487            end loop;/* top level territory */
2488           /***************************************************************/
2489           /* (7) END: CREATE TOP-LEVEL TERRITORY FOR OVERLAY BRANCH OF   */
2490 		  /*    TERRITORY GROUP                                          */
2491           /***************************************************************/
2492 
2493 
2494          /***************************************************************/
2495           /* (8) START: CREATE OVERLAY TERRITORIES FOR TERRITORY GROUP   */
2496          /*     USING DUNS# QUALIFIER                                   */
2497          /***************************************************************/
2498 	     IF ( terr_group.matching_rule_code IN ('2', '3') ) THEN
2499 
2500            FOR overlayterr in get_OVLY_party_duns(terr_group.terr_group_id) LOOP
2501 
2502               l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
2503 	          l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
2504      	      l_terr_qual_tbl:=l_terr_qual_empty_tbl;
2505               l_terr_values_tbl:=l_terr_values_empty_tbl;
2506               l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
2507               l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
2508 
2509               l_terr_all_rec.TERR_ID := null;
2510  		      l_terr_all_rec.LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2511  		      l_terr_all_rec.LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2512  		      l_terr_all_rec.CREATION_DATE:= terr_group.CREATION_DATE;
2513  		      l_terr_all_rec.CREATED_BY := terr_group.CREATED_BY ;
2514  		      l_terr_all_rec.LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2515 
2516  		      l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
2517  		      l_terr_all_rec.NAME:= overlayterr.name || ' (OVERLAY DUNS#)';
2518  		      l_terr_all_rec.start_date_active := terr_group.active_from_date ;
2519  		      l_terr_all_rec.end_date_active   := terr_group.active_to_date;
2520  		      l_terr_all_rec.PARENT_TERRITORY_ID:=  l_overlay_top;
2521  		      l_terr_all_rec.RANK := terr_group.RANK + 10;
2522  		      l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
2523  		      l_terr_all_rec.TEMPLATE_FLAG := 'N';
2524  		      l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
2525  		      l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
2526  		      l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
2527  		      l_terr_all_rec.DESCRIPTION:= overlayterr.name || ' (OVERLAY_DUNS#)';
2528  		      l_terr_all_rec.UPDATE_FLAG :='N';
2529  		      l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
2530 
2531      		  l_terr_all_rec.ORG_ID :=terr_group.ORG_ID ;
2532  		      l_terr_all_rec.NUM_WINNERS :=null ;
2533 
2534 
2535  		      SELECT JTF_TERR_USGS_S.nextval
2536                 into l_terr_usg_id
2537               FROM DUAL;
2538 
2539               l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
2540               l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2541               l_terr_usgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2542               l_terr_usgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
2543  		      l_terr_usgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
2544               l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
2545               l_terr_usgs_tbl(1).TERR_ID:= null;
2546               l_terr_usgs_tbl(1).SOURCE_ID := -1001;
2547               l_terr_usgs_tbl(1).ORG_ID:= terr_group.ORG_ID;
2548 
2549               SELECT   JTF_TERR_QTYPE_USGS_S.nextval
2550                 into l_terr_qtype_usg_id
2551               FROM DUAL;
2552 
2553       		  l_terr_qualtypeusgs_tbl(1).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
2554    		      l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2555    		      l_terr_qualtypeusgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2556    		      l_terr_qualtypeusgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
2557               l_terr_qualtypeusgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
2558               l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2559               l_terr_qualtypeusgs_tbl(1).TERR_ID:= null;
2560               l_terr_qualtypeusgs_tbl(1).QUAL_TYPE_USG_ID:=-1002;
2561               l_terr_qualtypeusgs_tbl(1).ORG_ID:=terr_group.ORG_ID;
2562 
2563               SELECT   JTF_TERR_QTYPE_USGS_S.nextval
2564        	        into l_terr_qtype_usg_id
2565               FROM DUAL;
2566 
2567    		      l_terr_qualtypeusgs_tbl(2).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
2568    		      l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2569    		      l_terr_qualtypeusgs_tbl(2).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2570    		      l_terr_qualtypeusgs_tbl(2).CREATION_DATE:= terr_group.CREATION_DATE;
2571               l_terr_qualtypeusgs_tbl(2).CREATED_BY := terr_group.CREATED_BY;
2572               l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2573               l_terr_qualtypeusgs_tbl(2).TERR_ID:= null;
2574               l_terr_qualtypeusgs_tbl(2).QUAL_TYPE_USG_ID:=-1003;
2575  		      l_terr_qualtypeusgs_tbl(2).ORG_ID:=terr_group.ORG_ID;
2576 
2577               SELECT JTF_TERR_QUAL_S.nextval
2578       	        into l_terr_qual_id
2579        	      FROM DUAL;
2580 
2581 	          j:=0;
2582 		      K:=0;
2583               l_prev_qual_usg_id:=1;
2584 
2585 		      for qval in match_rule3(overlayterr.named_account_id)
2586               loop
2587 
2588       		     if l_prev_qual_usg_id <> qval.qual_usg_id then
2589 
2590                     j:=j+1;
2591         	        SELECT   JTF_TERR_QUAL_S.nextval
2592         	          into l_terr_qual_id
2593         	        FROM DUAL;
2594 
2595         	        l_terr_qual_tbl(j).TERR_QUAL_ID :=l_terr_qual_id;
2596         	        l_terr_qual_tbl(j).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
2597  		            l_terr_qual_tbl(j).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2598  		            l_terr_qual_tbl(j).CREATION_DATE:= terr_group.CREATION_DATE;
2599  		            l_terr_qual_tbl(j).CREATED_BY := terr_group.CREATED_BY;
2600  		            l_terr_qual_tbl(j).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2601  		            l_terr_qual_tbl(j).TERR_ID:=null;
2602  		            l_terr_qual_tbl(j).QUAL_USG_ID :=qval.qual_usg_id;
2603  		            l_terr_qual_tbl(j).QUALIFIER_MODE:=NULL;
2604  		            l_terr_qual_tbl(j).OVERLAP_ALLOWED_FLAG:='N';
2605  		            l_terr_qual_tbl(j).USE_TO_NAME_FLAG:=NULL;
2606  		            l_terr_qual_tbl(j).GENERATE_FLAG:=NULL;
2607  		            l_terr_qual_tbl(j).ORG_ID:=terr_group.ORG_ID;
2608 		            l_prev_qual_usg_id:= qval.qual_usg_id;
2609 	  	        end if;
2610 
2611    	     	    k:=k+1;
2612 
2613 	           	l_terr_values_tbl(k).TERR_VALUE_ID:=null;
2614 
2615            		l_terr_values_tbl(k).LAST_UPDATED_BY := terr_group.last_UPDATED_BY;
2616         		l_terr_values_tbl(k).LAST_UPDATE_DATE:= terr_group.last_UPDATE_DATE;
2617  	         	l_terr_values_tbl(k).CREATED_BY  := terr_group.CREATED_BY;
2618  	          	l_terr_values_tbl(k).CREATION_DATE:= terr_group.CREATION_DATE;
2619         		l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= terr_group.last_UPDATE_LOGIN;
2620  	          	l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
2621         		l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
2622  		        l_terr_values_tbl(k).COMPARISON_OPERATOR := qval.COMPARISON_OPERATOR;
2623          		l_terr_values_tbl(k).LOW_VALUE_CHAR:= qval.value1_char;
2624  	           	l_terr_values_tbl(k).HIGH_VALUE_CHAR:= NULL;
2625            		l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
2626  	          	l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
2627            		l_terr_values_tbl(k).VALUE_SET :=NULL;
2628         		l_terr_values_tbl(k).INTEREST_TYPE_ID :=null;
2629  	          	l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
2630  		        l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
2631  	          	l_terr_values_tbl(k).CURRENCY_CODE :=null;
2632  	          	l_terr_values_tbl(k).ORG_ID :=terr_group.ORG_ID;
2633          		l_terr_values_tbl(k).ID_USED_FLAG :='N';
2634         		l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
2635 
2636 
2637          		l_terr_values_tbl(k).qualifier_tbl_index := j;
2638 
2639      		 end loop;
2640 
2641              l_init_msg_list :=FND_API.G_TRUE;
2642 
2643              -- 07/08/03: JDOCHERT: bug#3023653
2644  		     --mo_global.set_org_context(terr_group.ORG_ID,null);
2645 			 --
2646 
2647              jtf_territory_pvt.create_territory (
2648                 p_api_version_number         => l_api_version_number,
2649                 p_init_msg_list              => l_init_msg_list,
2650                 p_commit                     => l_commit,
2651                 p_validation_level           => fnd_api.g_valid_level_NONE,
2652                 x_return_status              => x_return_status,
2653                 x_msg_count                  => x_msg_count,
2654                 x_msg_data                   => x_msg_data,
2655                 p_terr_all_rec               => l_terr_all_rec,
2656                 p_terr_usgs_tbl              => l_terr_usgs_tbl,
2657                 p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
2658                 p_terr_qual_tbl              => l_terr_qual_tbl,
2659                 p_terr_values_tbl            => l_terr_values_tbl,
2660                 x_terr_id                    => x_terr_id,
2661                 x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
2662                 x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
2663                 x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
2664                 x_terr_values_out_tbl        => x_terr_values_out_tbl
2665              );
2666 
2667 
2668               if x_return_status = 'S' then
2669 
2670                  -- JDOCHERT: 01/08/03: Added TERR_GROUP_ID
2671                  -- and NAMED_ACCOUNT_FLAG and TERR_GROUP_ACCOUNT_ID
2672                  UPDATE JTF_TERR_ALL
2673                     set TERR_GROUP_FLAG = 'Y'
2674                       , TERR_GROUP_ID = terr_group.TERR_GROUP_ID
2675                       , NAMED_ACCOUNT_FLAG = 'Y'
2676                       , TERR_GROUP_ACCOUNT_ID = overlayterr.terr_group_account_id
2677                  where terr_id = x_terr_id;
2678 
2679                  l_overlay:=x_terr_id;
2680 
2681                  for pit in role_pi(terr_group.terr_group_id, overlayterr.terr_group_account_id) loop
2682 
2683 
2684                     l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
2685 	                l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
2686 	                l_terr_qual_tbl:=l_terr_qual_empty_tbl;
2687                     l_terr_values_tbl:=l_terr_values_empty_tbl;
2688                     l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
2689                     l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
2690 
2691 				    l_role_counter := l_role_counter + 1;
2692 
2693                     l_terr_all_rec.TERR_ID := overlayterr.terr_group_account_id * -30 * l_role_counter;
2694  		            l_terr_all_rec.LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2695  		            l_terr_all_rec.LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2696  		            l_terr_all_rec.CREATION_DATE:= terr_group.CREATION_DATE;
2697  		            l_terr_all_rec.CREATED_BY := terr_group.CREATED_BY ;
2698  		            l_terr_all_rec.LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2699 
2700  	  	            l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
2701 
2702  		            l_terr_all_rec.NAME:= overlayterr.name || ': ' ||
2703 					                      pit.role_name || ' (OVERLAY DUNS#)';
2704 
2705  		            l_terr_all_rec.start_date_active := terr_group.active_from_date ;
2706  		            l_terr_all_rec.end_date_active   := terr_group.active_to_date;
2707  		            l_terr_all_rec.PARENT_TERRITORY_ID:= l_overlay;
2708  		            l_terr_all_rec.RANK := terr_group.RANK+10;
2709  		            l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
2710  		            l_terr_all_rec.TEMPLATE_FLAG := 'N';
2711  		            l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
2712  		            l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
2713  		            l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
2714 
2715  		            l_terr_all_rec.DESCRIPTION:= overlayterr.name || ': ' ||
2716 					                             pit.role_name || ' (OVERLAY DUNS#)';
2717 
2718  		            l_terr_all_rec.UPDATE_FLAG :='N';
2719  		            l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
2720 
2721  		            l_terr_all_rec.ORG_ID :=terr_group.ORG_ID ;
2722  		            l_terr_all_rec.NUM_WINNERS :=null ;
2723 
2724  		            SELECT   JTF_TERR_USGS_S.nextval
2725                       into l_terr_usg_id
2726                     FROM DUAL;
2727 
2728     	            l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
2729                     l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2730                     l_terr_usgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2731                     l_terr_usgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
2732  		            l_terr_usgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
2733                     l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
2734                     l_terr_usgs_tbl(1).TERR_ID:= null;
2735                     l_terr_usgs_tbl(1).SOURCE_ID:=-1001;
2736                     l_terr_usgs_tbl(1).ORG_ID:= terr_group.ORG_ID;
2737 
2738                     i := 0;
2739                     K:= 0;
2740                     for acc_type in role_access(terr_group.terr_group_id,pit.role_code) loop
2741                     --i:=i+1;
2742                     --dbms_output.put_line('acc type  '||acc_type.access_type);
2743                     if acc_type.access_type= 'OPPORTUNITY' then
2744                        i:=i+1;
2745                        SELECT   JTF_TERR_QTYPE_USGS_S.nextval
2746        	                 into l_terr_qtype_usg_id
2747                        FROM DUAL;
2748 
2749       		           l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
2750    		               l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2751    		               l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2752    		               l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
2753                        l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
2754                        l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2755                        l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
2756                        l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1003;
2757  		               l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
2758 
2759                        SELECT JTF_TERR_QUAL_S.nextval
2760       	                 into l_terr_qual_id
2761        	               FROM DUAL;
2762                        /* opp expected purchase */
2763 
2764            	           l_terr_qual_tbl(i).TERR_QUAL_ID :=l_terr_qual_id;
2765             	       l_terr_qual_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
2766  	          	       l_terr_qual_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2767  	          	       l_terr_qual_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
2768  		               l_terr_qual_tbl(i).CREATED_BY := terr_group.CREATED_BY;
2769  		               l_terr_qual_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2770  		               l_terr_qual_tbl(i).TERR_ID:=null;
2771  		               l_terr_qual_tbl(i).QUAL_USG_ID :=-1023;
2772  		               l_terr_qual_tbl(i).QUALIFIER_MODE:=NULL;
2773  		               l_terr_qual_tbl(i).OVERLAP_ALLOWED_FLAG:='N';
2774  		               l_terr_qual_tbl(i).USE_TO_NAME_FLAG:=NULL;
2775  		               l_terr_qual_tbl(i).GENERATE_FLAG:=NULL;
2776  		               l_terr_qual_tbl(i).ORG_ID:=terr_group.ORG_ID;
2777 
2778                        for qval in role_pi_interest(terr_group.terr_group_id,pit.role_code) loop
2779 		                  k:=k+1;
2780 
2781   		                  l_terr_values_tbl(k).TERR_VALUE_ID:=null;
2782 
2783  		                  l_terr_values_tbl(k).LAST_UPDATED_BY := terr_group.last_UPDATED_BY;
2784  		                  l_terr_values_tbl(k).LAST_UPDATE_DATE:= terr_group.last_UPDATE_DATE;
2785  		                  l_terr_values_tbl(k).CREATED_BY  := terr_group.CREATED_BY;
2786  		                  l_terr_values_tbl(k).CREATION_DATE:= terr_group.CREATION_DATE;
2787  		                  l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= terr_group.last_UPDATE_LOGIN;
2788  		                  l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
2789  		                  l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
2790  		                  l_terr_values_tbl(k).COMPARISON_OPERATOR :='=';
2791  		                  l_terr_values_tbl(k).LOW_VALUE_CHAR:= null;
2792  		                  l_terr_values_tbl(k).HIGH_VALUE_CHAR:=null;
2793  		                  l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
2794  		                  l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
2795  		                  l_terr_values_tbl(k).VALUE_SET :=NULL;
2796  		                  l_terr_values_tbl(k).INTEREST_TYPE_ID :=qval.interest_type_id;
2797  		                  l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
2798  		                  l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
2799  		                  l_terr_values_tbl(k).CURRENCY_CODE :=null;
2800  		                  l_terr_values_tbl(k).ORG_ID :=terr_group.ORG_ID;
2801  		                  l_terr_values_tbl(k).ID_USED_FLAG :='N';
2802  		                  l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
2803 
2804  		                  l_terr_values_tbl(k).qualifier_tbl_index := i;
2805 
2806   		               end loop;
2807 
2808                     elsif acc_type.access_type= 'LEAD' then
2809 
2810                        i:=i+1;
2811                        SELECT   JTF_TERR_QTYPE_USGS_S.nextval
2812                          into l_terr_qtype_usg_id
2813                        FROM DUAL;
2814 
2815         		       l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
2816    		               l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
2817    		               l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2818    		               l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
2819                        l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
2820                        l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2821                        l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
2822                        l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1002;
2823                        l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
2824 
2825                        SELECT   JTF_TERR_QUAL_S.nextval
2826       	                 into l_terr_qual_id
2827        	               FROM DUAL;
2828 
2829                        /* lead expected purchase */
2830        	               l_terr_qual_tbl(i).TERR_QUAL_ID :=l_terr_qual_id;
2831        	               l_terr_qual_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
2832  		               l_terr_qual_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2833  		               l_terr_qual_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
2834  		               l_terr_qual_tbl(i).CREATED_BY := terr_group.CREATED_BY;
2835  		               l_terr_qual_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2836  		               l_terr_qual_tbl(i).TERR_ID:=null;
2837  		               l_terr_qual_tbl(i).QUAL_USG_ID :=-1018;
2838  		               l_terr_qual_tbl(i).QUALIFIER_MODE:=NULL;
2839  		               l_terr_qual_tbl(i).OVERLAP_ALLOWED_FLAG:='N';
2840  		               l_terr_qual_tbl(i).USE_TO_NAME_FLAG:=NULL;
2841  		               l_terr_qual_tbl(i).GENERATE_FLAG:=NULL;
2842  		               l_terr_qual_tbl(i).ORG_ID:=terr_group.ORG_ID;
2843 
2844                        for qval in role_pi_interest(terr_group.terr_group_id,pit.role_code) loop
2845 
2846                           k:=k+1;
2847 
2848             		      l_terr_values_tbl(k).TERR_VALUE_ID:=null;
2849 
2850                   	      l_terr_values_tbl(k).LAST_UPDATED_BY := terr_group.last_UPDATED_BY;
2851               		      l_terr_values_tbl(k).LAST_UPDATE_DATE:= terr_group.last_UPDATE_DATE;
2852              		      l_terr_values_tbl(k).CREATED_BY  := terr_group.CREATED_BY;
2853              		      l_terr_values_tbl(k).CREATION_DATE:= terr_group.CREATION_DATE;
2854              		      l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= terr_group.last_UPDATE_LOGIN;
2855              		      l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
2856              		      l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
2857              		      l_terr_values_tbl(k).COMPARISON_OPERATOR :='=';
2858              		      l_terr_values_tbl(k).LOW_VALUE_CHAR:= null;
2859              		      l_terr_values_tbl(k).HIGH_VALUE_CHAR:=null;
2860              		      l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
2861              		      l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
2862              		      l_terr_values_tbl(k).VALUE_SET :=NULL;
2863              		      l_terr_values_tbl(k).INTEREST_TYPE_ID := qval.interest_type_id;
2864              		      l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
2865              		      l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
2866              		      l_terr_values_tbl(k).CURRENCY_CODE :=null;
2867              		      l_terr_values_tbl(k).ORG_ID :=terr_group.ORG_ID;
2868              		      l_terr_values_tbl(k).ID_USED_FLAG :='N';
2869              		      l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
2870 
2871 
2872              		      l_terr_values_tbl(k).qualifier_tbl_index := i;
2873 
2874 		               end loop;
2875 
2876                     else
2877                        write_log(2,' OVERLAY and NON_OVERLAY role exist for '||terr_group.terr_group_id);
2878                        --l_terr_qualtypeusgs_tbl(1).ORG_ID:=terr_group.ORG_ID;
2879                     end if;
2880 
2881                  end loop;
2882 
2883                  l_init_msg_list :=FND_API.G_TRUE;
2884 
2885           	     -- 07/08/03: JDOCHERT: bug#3023653
2886 				 --mo_global.set_org_context(terr_group.ORG_ID,null);
2887 				 --
2888 
2889                  jtf_territory_pvt.create_territory (
2890                    p_api_version_number         => l_api_version_number,
2891                    p_init_msg_list              => l_init_msg_list,
2892                    p_commit                     => l_commit,
2893                    p_validation_level           => fnd_api.g_valid_level_NONE,
2894                    x_return_status              => x_return_status,
2895                    x_msg_count                  => x_msg_count,
2896                    x_msg_data                   => x_msg_data,
2897                    p_terr_all_rec               => l_terr_all_rec,
2898                    p_terr_usgs_tbl              => l_terr_usgs_tbl,
2899                    p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
2900                    p_terr_qual_tbl              => l_terr_qual_tbl,
2901                    p_terr_values_tbl            => l_terr_values_tbl,
2902                    x_terr_id                    => x_terr_id,
2903                    x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
2904                    x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
2905                    x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
2906                    x_terr_values_out_tbl        => x_terr_values_out_tbl
2907                  );
2908 
2909                  if (x_return_status = 'S')  then
2910 
2911                      -- JDOCHERT: 01/08/03: Added TERR_GROUP_ID
2912                      -- and NAMED_ACCOUNT_FLAG and TERR_GROUP_ACCOUNT_ID
2913                      UPDATE JTF_TERR_ALL
2914                      set TERR_GROUP_FLAG = 'Y'
2915                        , TERR_GROUP_ID = terr_group.TERR_GROUP_ID
2916                        , NAMED_ACCOUNT_FLAG = 'Y'
2917                        , TERR_GROUP_ACCOUNT_ID = overlayterr.terr_group_account_id
2918                      where terr_id = x_terr_id;
2919 
2920 
2921                      write_log(2,' OVERLAY PI Territory Created = '||l_terr_all_rec.NAME);
2922 
2923                  else
2924                      x_msg_data :=  fnd_msg_pub.get(1, fnd_api.g_false);
2925                      write_log(2,x_msg_data);
2926                      write_log(2, 'Failed in OVERLAY PI Territory Creation for TERR_GROUP_ACCOUNT_ID#'||
2927 					              overlayterr.terr_group_account_id);
2928 
2929     	         end if;
2930 
2931 
2932                  --dbms_output.put_line('pit.role '||pit.role_code);
2933                  i:=0;
2934 
2935                  /* JRADHAKR changed the parameter from l_terr_group_id to l_terr_group_acct_id */
2936            	     for rsc in resource_grp(overlayterr.terr_group_account_id,pit.role_code) loop
2937 
2938                     i:=i+1;
2939 
2940                     SELECT   JTF_TERR_RSC_S.nextval
2941                 	into l_terr_rsc_id
2942                 	FROM DUAL;
2943 
2944                     l_TerrRsc_Tbl(i).terr_id := x_terr_id;
2945                     l_TerrRsc_Tbl(i).TERR_RSC_ID :=l_terr_rsc_id;
2946                 	l_TerrRsc_Tbl(i).LAST_UPDATE_DATE:=terr_group.LAST_UPDATE_DATE;
2947                 	l_TerrRsc_Tbl(i).LAST_UPDATED_BY:=terr_group.LAST_UPDATED_BY;
2948                 	l_TerrRsc_Tbl(i).CREATION_DATE:=terr_group.CREATION_DATE;
2949          		    l_TerrRsc_Tbl(i).CREATED_BY:=terr_group.CREATED_BY;
2950          		    l_TerrRsc_Tbl(i).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
2951          		    --l_TerrRsc_Tbl(i).TERR_ID:=terr_group.TERRITORY_ID;
2952          		    l_TerrRsc_Tbl(i).RESOURCE_ID:=rsc.resource_id;
2953          		    l_TerrRsc_Tbl(i).RESOURCE_TYPE:=rsc.rsc_resource_type;
2954          		    l_TerrRsc_Tbl(i).ROLE:=pit.role_code;
2955                     --l_TerrRsc_Tbl(i).ROLE:=l_role;
2956          		    l_TerrRsc_Tbl(i).PRIMARY_CONTACT_FLAG:='N';
2957          		    l_TerrRsc_Tbl(i).START_DATE_ACTIVE:=terr_group.active_from_date ;
2958          		    l_TerrRsc_Tbl(i).END_DATE_ACTIVE:=terr_group.active_to_date ;
2959          		    l_TerrRsc_Tbl(i).ORG_ID:=terr_group.ORG_ID;
2960          		    l_TerrRsc_Tbl(i).FULL_ACCESS_FLAG:='Y';
2961          		    l_TerrRsc_Tbl(i).GROUP_ID:=rsc.rsc_group_id;
2962 
2963 
2964                     a := 0;
2965 
2966                     for rsc_acc in role_access(terr_group.terr_group_id,pit.role_code) loop
2967 
2968 						/**
2969 						 a := a+1; -- JDOCHERT: 05/28/03: put a := a+1; inside 2*IF statements
2970 						           -- that follow: ACCOUNT access should not be given for
2971 								   -- Product Overlay territories
2972 								   --
2973                         if rsc_acc.access_type= 'ACCOUNT' then
2974 
2975                             SELECT   JTF_TERR_RSC_ACCESS_S.nextval
2976                     	       into l_terr_rsc_access_id
2977                             FROM DUAL;
2978                     		l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
2979                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
2980                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
2981                     		l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
2982              		        l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
2983              		        l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
2984              		        l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
2985              		        l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'ACCOUNT';
2986              		        l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
2987              		        l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
2988 
2989                         els
2990 						**/
2991 
2992 						if rsc_acc.access_type= 'OPPORTUNITY' then
2993 
2994 						    a := a+1;
2995 
2996                             SELECT   JTF_TERR_RSC_ACCESS_S.nextval
2997                     	       into l_terr_rsc_access_id
2998                             FROM DUAL;
2999 
3000                     		l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
3001                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
3002                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3003                     		l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
3004              		        l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
3005              		        l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3006              		        l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
3007              		        l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'OPPOR';
3008              		        l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
3009              		        l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
3010 
3011                         elsif rsc_acc.access_type= 'LEAD' then
3012 
3013 						     a := a+1;
3014 
3015                             SELECT   JTF_TERR_RSC_ACCESS_S.nextval
3016                     	       into l_terr_rsc_access_id
3017                             FROM DUAL;
3018 
3019                     		l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
3020                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
3021                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3022                     		l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
3023              		        l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
3024              		        l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3025              		        l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
3026              		        l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'LEAD';
3027              		        l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
3028              		        l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
3029                         end if;
3030                     end loop; /* rsc_acc in role_access */
3031 
3032                     l_init_msg_list :=FND_API.G_TRUE;
3033 
3034 			        -- 07/08/03: JDOCHERT: bug#3023653
3035                     jtf_territory_resource_pvt.create_terrresource (
3036                        p_api_version_number      => l_Api_Version_Number,
3037                        p_init_msg_list           => l_Init_Msg_List,
3038                        p_commit                  => l_Commit,
3039                        p_validation_level        => fnd_api.g_valid_level_NONE,
3040                        x_return_status           => x_Return_Status,
3041                        x_msg_count               => x_Msg_Count,
3042                        x_msg_data                => x_msg_data,
3043                        p_terrrsc_tbl             => l_TerrRsc_tbl,
3044                        p_terrrsc_access_tbl      => l_terrRsc_access_tbl,
3045                        x_terrrsc_out_tbl         => x_TerrRsc_Out_Tbl,
3046                        x_terrrsc_access_out_tbl  => x_TerrRsc_Access_Out_Tbl
3047                     );
3048 
3049                     if x_Return_Status='S' then
3050           	           write_log(2,'Resource created for Product Interest OVERLAY Territory '||l_terr_all_rec.NAME);
3051                     else
3052                        write_log(2,'Failed in Resource creation for Product Interest OVERLAY Territory# '||
3053 					               x_terr_id);
3054                     end if;
3055 
3056                  end loop; /* rsc in resource_grp */
3057 
3058               end loop;
3059 
3060            else
3061               x_msg_data :=  fnd_msg_pub.get(1, fnd_api.g_false);
3062               write_log(2,x_msg_data);
3063               write_log(2,'Failed in OVERLAY Territory Creation for Territory Group: ' ||
3064                   terr_group.terr_group_id || ' : ' ||
3065                   terr_group.terr_group_name );
3066   	       end if; /* if (x_return_status = 'S' */
3067          end loop; /* overlayterr in get_OVLY_party_duns */
3068 	     END IF; /* ( terr_group.matching_rule_code IN ('2','3') THEN */
3069 		 /***************************************************************/
3070          /* (8) END: CREATE OVERLAY TERRITORIES FOR TERRITORY GROUP     */
3071 		 /*     USING DUNS# QUALIFIER                                   */
3072          /***************************************************************/
3073 
3074 
3075           /***************************************************************/
3076           /* (9) START: CREATE OVERLAY TERRITORIES FOR TERRITORY GROUP   */
3077 		  /*     USING CUSTOMER NAME RANGE AND POSTAL CODE QUALIFIERS    */
3078           /***************************************************************/
3079 	     IF ( terr_group.matching_rule_code IN ('1', '2') ) THEN
3080 
3081 	       for overlayterr in get_OVLY_party_name(terr_group.terr_group_id) loop
3082 
3083               l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
3084 	          l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
3085      	      l_terr_qual_tbl:=l_terr_qual_empty_tbl;
3086               l_terr_values_tbl:=l_terr_values_empty_tbl;
3087               l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
3088               l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
3089 
3090               l_terr_all_rec.TERR_ID := null;
3091  		      l_terr_all_rec.LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
3092  		      l_terr_all_rec.LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3093  		      l_terr_all_rec.CREATION_DATE:= terr_group.CREATION_DATE;
3094  		      l_terr_all_rec.CREATED_BY := terr_group.CREATED_BY ;
3095  		      l_terr_all_rec.LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3096 
3097  		      l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
3098  		      l_terr_all_rec.NAME:= overlayterr.name || ' (OVERLAY)';
3099  		      l_terr_all_rec.start_date_active := terr_group.active_from_date ;
3100  		      l_terr_all_rec.end_date_active   := terr_group.active_to_date;
3101  		      l_terr_all_rec.PARENT_TERRITORY_ID:=  l_overlay_top;
3102  		      l_terr_all_rec.RANK := terr_group.RANK + 20;
3103  		      l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
3104  		      l_terr_all_rec.TEMPLATE_FLAG := 'N';
3105  		      l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
3106  		      l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
3107  		      l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
3108  		      l_terr_all_rec.DESCRIPTION:= overlayterr.name || ' (OVERLAY)';
3109  		      l_terr_all_rec.UPDATE_FLAG :='N';
3110  		      l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
3111 
3112      		  l_terr_all_rec.ORG_ID :=terr_group.ORG_ID ;
3113  		      l_terr_all_rec.NUM_WINNERS :=null ;
3114 
3115 
3116  		      SELECT JTF_TERR_USGS_S.nextval
3117                 into l_terr_usg_id
3118               FROM DUAL;
3119 
3120               l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
3121               l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
3122               l_terr_usgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3123               l_terr_usgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
3124  		      l_terr_usgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
3125               l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
3126               l_terr_usgs_tbl(1).TERR_ID:= null;
3127               l_terr_usgs_tbl(1).SOURCE_ID := -1001;
3128               l_terr_usgs_tbl(1).ORG_ID:= terr_group.ORG_ID;
3129 
3130               SELECT   JTF_TERR_QTYPE_USGS_S.nextval
3131                 into l_terr_qtype_usg_id
3132               FROM DUAL;
3133 
3134       		  l_terr_qualtypeusgs_tbl(1).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
3135    		      l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
3136    		      l_terr_qualtypeusgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3137    		      l_terr_qualtypeusgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
3138               l_terr_qualtypeusgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
3139               l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3140               l_terr_qualtypeusgs_tbl(1).TERR_ID:= null;
3141               l_terr_qualtypeusgs_tbl(1).QUAL_TYPE_USG_ID:=-1002;
3142               l_terr_qualtypeusgs_tbl(1).ORG_ID:=terr_group.ORG_ID;
3143 
3144               SELECT   JTF_TERR_QTYPE_USGS_S.nextval
3145        	        into l_terr_qtype_usg_id
3146               FROM DUAL;
3147 
3148    		      l_terr_qualtypeusgs_tbl(2).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
3149    		      l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
3150    		      l_terr_qualtypeusgs_tbl(2).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3151    		      l_terr_qualtypeusgs_tbl(2).CREATION_DATE:= terr_group.CREATION_DATE;
3152               l_terr_qualtypeusgs_tbl(2).CREATED_BY := terr_group.CREATED_BY;
3153               l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3154               l_terr_qualtypeusgs_tbl(2).TERR_ID:= null;
3155               l_terr_qualtypeusgs_tbl(2).QUAL_TYPE_USG_ID:=-1003;
3156  		      l_terr_qualtypeusgs_tbl(2).ORG_ID:=terr_group.ORG_ID;
3157 
3158               SELECT JTF_TERR_QUAL_S.nextval
3159       	        into l_terr_qual_id
3160        	      FROM DUAL;
3161 
3162 	          j:=0;
3163 		      K:=0;
3164               l_prev_qual_usg_id:=1;
3165 
3166 		      for qval in match_rule1(overlayterr.named_account_id)
3167               loop
3168 
3169       		     if l_prev_qual_usg_id <> qval.qual_usg_id then
3170 
3171                     j:=j+1;
3172         	        SELECT   JTF_TERR_QUAL_S.nextval
3173         	          into l_terr_qual_id
3174         	        FROM DUAL;
3175 
3176         	        l_terr_qual_tbl(j).TERR_QUAL_ID :=l_terr_qual_id;
3177         	        l_terr_qual_tbl(j).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
3178  		            l_terr_qual_tbl(j).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3179  		            l_terr_qual_tbl(j).CREATION_DATE:= terr_group.CREATION_DATE;
3180  		            l_terr_qual_tbl(j).CREATED_BY := terr_group.CREATED_BY;
3181  		            l_terr_qual_tbl(j).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3182  		            l_terr_qual_tbl(j).TERR_ID:=null;
3183  		            l_terr_qual_tbl(j).QUAL_USG_ID :=qval.qual_usg_id;
3184  		            l_terr_qual_tbl(j).QUALIFIER_MODE:=NULL;
3185  		            l_terr_qual_tbl(j).OVERLAP_ALLOWED_FLAG:='N';
3186  		            l_terr_qual_tbl(j).USE_TO_NAME_FLAG:=NULL;
3187  		            l_terr_qual_tbl(j).GENERATE_FLAG:=NULL;
3188  		            l_terr_qual_tbl(j).ORG_ID:=terr_group.ORG_ID;
3189 		            l_prev_qual_usg_id:= qval.qual_usg_id;
3190 	  	        end if;
3191 
3192    	     	    k:=k+1;
3193 
3194 	           	l_terr_values_tbl(k).TERR_VALUE_ID:=null;
3195 
3196            		l_terr_values_tbl(k).LAST_UPDATED_BY := terr_group.last_UPDATED_BY;
3197         		l_terr_values_tbl(k).LAST_UPDATE_DATE:= terr_group.last_UPDATE_DATE;
3198  	         	l_terr_values_tbl(k).CREATED_BY  := terr_group.CREATED_BY;
3199  	          	l_terr_values_tbl(k).CREATION_DATE:= terr_group.CREATION_DATE;
3200         		l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= terr_group.last_UPDATE_LOGIN;
3201  	          	l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
3202         		l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
3203  		        l_terr_values_tbl(k).COMPARISON_OPERATOR := qval.COMPARISON_OPERATOR;
3204          		l_terr_values_tbl(k).LOW_VALUE_CHAR:= qval.value1_char;
3205  	           	l_terr_values_tbl(k).HIGH_VALUE_CHAR:= qval.value2_char;
3206            		l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
3207  	          	l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
3208            		l_terr_values_tbl(k).VALUE_SET :=NULL;
3209         		l_terr_values_tbl(k).INTEREST_TYPE_ID :=null;
3210  	          	l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
3211  		        l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
3212  	          	l_terr_values_tbl(k).CURRENCY_CODE :=null;
3213  	          	l_terr_values_tbl(k).ORG_ID :=terr_group.ORG_ID;
3214          		l_terr_values_tbl(k).ID_USED_FLAG :='N';
3215         		l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
3216 
3217 
3218          		l_terr_values_tbl(k).qualifier_tbl_index := j;
3219 
3220      		 end loop;
3221 
3222              l_init_msg_list :=FND_API.G_TRUE;
3223 
3224  		     -- 07/08/03: JDOCHERT: bug#3023653
3225 			 --mo_global.set_org_context(terr_group.ORG_ID,null);
3226 			 --
3227 
3228              jtf_territory_pvt.create_territory (
3229                    p_api_version_number         => l_api_version_number,
3230                    p_init_msg_list              => l_init_msg_list,
3231                    p_commit                     => l_commit,
3232                    p_validation_level           => fnd_api.g_valid_level_NONE,
3233                    x_return_status              => x_return_status,
3234                    x_msg_count                  => x_msg_count,
3235                    x_msg_data                   => x_msg_data,
3236                    p_terr_all_rec               => l_terr_all_rec,
3237                    p_terr_usgs_tbl              => l_terr_usgs_tbl,
3238                    p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
3239                    p_terr_qual_tbl              => l_terr_qual_tbl,
3240                    p_terr_values_tbl            => l_terr_values_tbl,
3241                    x_terr_id                    => x_terr_id,
3242                    x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
3243                    x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
3244                    x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
3245                    x_terr_values_out_tbl        => x_terr_values_out_tbl
3246                  );
3247 
3248               write_log(2,' OVERLAY Territory Created,territory_id# '||x_terr_id);
3249 
3250 
3251               if x_return_status = 'S' then
3252 
3253                  -- JDOCHERT: 01/08/03: Added TERR_GROUP_ID
3254                  -- and NAMED_ACCOUNT_FLAG and TERR_GROUP_ACCOUNT_ID
3255                  UPDATE JTF_TERR_ALL
3256                     set TERR_GROUP_FLAG = 'Y'
3257                       , TERR_GROUP_ID = terr_group.TERR_GROUP_ID
3258                       , NAMED_ACCOUNT_FLAG = 'Y'
3259                       , TERR_GROUP_ACCOUNT_ID = overlayterr.terr_group_account_id
3260                  where terr_id = x_terr_id;
3261 
3262                  l_overlay:=x_terr_id;
3263 
3264                  for pit in role_pi( terr_group.terr_group_id
3265 				                   , overlayterr.terr_group_account_id) LOOP
3266 
3267                     l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
3268 	                l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
3269 	                l_terr_qual_tbl:=l_terr_qual_empty_tbl;
3270                     l_terr_values_tbl:=l_terr_values_empty_tbl;
3271                     l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
3272                     l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
3273 
3274 					l_role_counter := l_role_counter + 1;
3275 
3276                     l_terr_all_rec.TERR_ID := overlayterr.terr_group_account_id * -40 * l_role_counter;
3277  		            l_terr_all_rec.LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
3278  		            l_terr_all_rec.LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3279  		            l_terr_all_rec.CREATION_DATE:= terr_group.CREATION_DATE;
3280  		            l_terr_all_rec.CREATED_BY := terr_group.CREATED_BY ;
3281  		            l_terr_all_rec.LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3282 
3283  	  	            l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
3284 
3285  		            l_terr_all_rec.NAME:= overlayterr.name || ' ' || pit.role_name || ' (OVERLAY)';
3286 
3287  		            l_terr_all_rec.start_date_active := terr_group.active_from_date ;
3288  		            l_terr_all_rec.end_date_active   := terr_group.active_to_date;
3289  		            l_terr_all_rec.PARENT_TERRITORY_ID:= l_overlay;
3290  		            l_terr_all_rec.RANK := terr_group.RANK+10;
3291  		            l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
3292  		            l_terr_all_rec.TEMPLATE_FLAG := 'N';
3293  		            l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
3294  		            l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
3295  		            l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
3296  		            l_terr_all_rec.DESCRIPTION:= pit.role_code||' '||overlayterr.name||' (OVERLAY)';
3297  		            l_terr_all_rec.UPDATE_FLAG :='N';
3298  		            l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
3299 
3300  		            l_terr_all_rec.ORG_ID :=terr_group.ORG_ID ;
3301  		            l_terr_all_rec.NUM_WINNERS :=null ;
3302 
3303  		            SELECT   JTF_TERR_USGS_S.nextval
3304                       into l_terr_usg_id
3305                     FROM DUAL;
3306 
3307     	            l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
3308                     l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
3309                     l_terr_usgs_tbl(1).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3310                     l_terr_usgs_tbl(1).CREATION_DATE:= terr_group.CREATION_DATE;
3311  		            l_terr_usgs_tbl(1).CREATED_BY := terr_group.CREATED_BY;
3312                     l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
3313                     l_terr_usgs_tbl(1).TERR_ID:= null;
3314                     l_terr_usgs_tbl(1).SOURCE_ID:=-1001;
3315                     l_terr_usgs_tbl(1).ORG_ID:= terr_group.ORG_ID;
3316 
3317                     i := 0;
3318                     K:= 0;
3319                     for acc_type in role_access(terr_group.terr_group_id,pit.role_code) loop
3320                     --i:=i+1;
3321                     --dbms_output.put_line('acc type  '||acc_type.access_type);
3322                     if acc_type.access_type= 'OPPORTUNITY' then
3323                        i:=i+1;
3324                        SELECT   JTF_TERR_QTYPE_USGS_S.nextval
3325        	                 into l_terr_qtype_usg_id
3326                        FROM DUAL;
3327 
3328       		           l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
3329    		               l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
3330    		               l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3331    		               l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
3332                        l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
3333                        l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3334                        l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
3335                        l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1003;
3336  		               l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
3337 
3338                        SELECT JTF_TERR_QUAL_S.nextval
3339       	                 into l_terr_qual_id
3340        	               FROM DUAL;
3341                        /* opp expected purchase */
3342 
3343            	           l_terr_qual_tbl(i).TERR_QUAL_ID :=l_terr_qual_id;
3344             	       l_terr_qual_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
3345  	          	       l_terr_qual_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3346  	          	       l_terr_qual_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
3347  		               l_terr_qual_tbl(i).CREATED_BY := terr_group.CREATED_BY;
3348  		               l_terr_qual_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3349  		               l_terr_qual_tbl(i).TERR_ID:=null;
3350  		               l_terr_qual_tbl(i).QUAL_USG_ID :=-1023;
3351  		               l_terr_qual_tbl(i).QUALIFIER_MODE:=NULL;
3352  		               l_terr_qual_tbl(i).OVERLAP_ALLOWED_FLAG:='N';
3353  		               l_terr_qual_tbl(i).USE_TO_NAME_FLAG:=NULL;
3354  		               l_terr_qual_tbl(i).GENERATE_FLAG:=NULL;
3355  		               l_terr_qual_tbl(i).ORG_ID:=terr_group.ORG_ID;
3356 
3357                        for qval in role_pi_interest(terr_group.terr_group_id,pit.role_code) loop
3358 		                  k:=k+1;
3359 
3360   		                  l_terr_values_tbl(k).TERR_VALUE_ID:=null;
3361 
3362  		                  l_terr_values_tbl(k).LAST_UPDATED_BY := terr_group.last_UPDATED_BY;
3363  		                  l_terr_values_tbl(k).LAST_UPDATE_DATE:= terr_group.last_UPDATE_DATE;
3364  		                  l_terr_values_tbl(k).CREATED_BY  := terr_group.CREATED_BY;
3365  		                  l_terr_values_tbl(k).CREATION_DATE:= terr_group.CREATION_DATE;
3366  		                  l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= terr_group.last_UPDATE_LOGIN;
3367  		                  l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
3368  		                  l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
3369  		                  l_terr_values_tbl(k).COMPARISON_OPERATOR :='=';
3370  		                  l_terr_values_tbl(k).LOW_VALUE_CHAR:= null;
3371  		                  l_terr_values_tbl(k).HIGH_VALUE_CHAR:=null;
3372  		                  l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
3373  		                  l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
3374  		                  l_terr_values_tbl(k).VALUE_SET :=NULL;
3375  		                  l_terr_values_tbl(k).INTEREST_TYPE_ID :=qval.interest_type_id;
3376  		                  l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
3377  		                  l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
3378  		                  l_terr_values_tbl(k).CURRENCY_CODE :=null;
3379  		                  l_terr_values_tbl(k).ORG_ID :=terr_group.ORG_ID;
3380  		                  l_terr_values_tbl(k).ID_USED_FLAG :='N';
3381  		                  l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
3382 
3383  		                  l_terr_values_tbl(k).qualifier_tbl_index := i;
3384 
3385   		               end loop;
3386 
3387                     elsif acc_type.access_type= 'LEAD' then
3388 
3389                        i:=i+1;
3390                        SELECT   JTF_TERR_QTYPE_USGS_S.nextval
3391                          into l_terr_qtype_usg_id
3392                        FROM DUAL;
3393 
3394         		       l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
3395    		               l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE;
3396    		               l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3397    		               l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
3398                        l_terr_qualtypeusgs_tbl(i).CREATED_BY := terr_group.CREATED_BY;
3399                        l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3400                        l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
3401                        l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1002;
3402                        l_terr_qualtypeusgs_tbl(i).ORG_ID:=terr_group.ORG_ID;
3403 
3404                        SELECT   JTF_TERR_QUAL_S.nextval
3405       	                 into l_terr_qual_id
3406        	               FROM DUAL;
3407 
3408                        /* lead expected purchase */
3409        	               l_terr_qual_tbl(i).TERR_QUAL_ID :=l_terr_qual_id;
3410        	               l_terr_qual_tbl(i).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
3411  		               l_terr_qual_tbl(i).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3412  		               l_terr_qual_tbl(i).CREATION_DATE:= terr_group.CREATION_DATE;
3413  		               l_terr_qual_tbl(i).CREATED_BY := terr_group.CREATED_BY;
3414  		               l_terr_qual_tbl(i).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3415  		               l_terr_qual_tbl(i).TERR_ID:=null;
3416  		               l_terr_qual_tbl(i).QUAL_USG_ID :=-1018;
3417  		               l_terr_qual_tbl(i).QUALIFIER_MODE:=NULL;
3418  		               l_terr_qual_tbl(i).OVERLAP_ALLOWED_FLAG:='N';
3419  		               l_terr_qual_tbl(i).USE_TO_NAME_FLAG:=NULL;
3420  		               l_terr_qual_tbl(i).GENERATE_FLAG:=NULL;
3421  		               l_terr_qual_tbl(i).ORG_ID:=terr_group.ORG_ID;
3422 
3423                        for qval in role_pi_interest(terr_group.terr_group_id,pit.role_code) loop
3424 
3425                           k:=k+1;
3426 
3427             		      l_terr_values_tbl(k).TERR_VALUE_ID:=null;
3428 
3429                   	      l_terr_values_tbl(k).LAST_UPDATED_BY := terr_group.last_UPDATED_BY;
3430               		      l_terr_values_tbl(k).LAST_UPDATE_DATE:= terr_group.last_UPDATE_DATE;
3431              		      l_terr_values_tbl(k).CREATED_BY  := terr_group.CREATED_BY;
3432              		      l_terr_values_tbl(k).CREATION_DATE:= terr_group.CREATION_DATE;
3433              		      l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= terr_group.last_UPDATE_LOGIN;
3434              		      l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
3435              		      l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
3436              		      l_terr_values_tbl(k).COMPARISON_OPERATOR :='=';
3437              		      l_terr_values_tbl(k).LOW_VALUE_CHAR:= null;
3438              		      l_terr_values_tbl(k).HIGH_VALUE_CHAR:=null;
3439              		      l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
3440              		      l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
3441              		      l_terr_values_tbl(k).VALUE_SET :=NULL;
3442              		      l_terr_values_tbl(k).INTEREST_TYPE_ID := qval.interest_type_id;
3443              		      l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
3444              		      l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
3445              		      l_terr_values_tbl(k).CURRENCY_CODE :=null;
3446              		      l_terr_values_tbl(k).ORG_ID :=terr_group.ORG_ID;
3447              		      l_terr_values_tbl(k).ID_USED_FLAG :='N';
3448              		      l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
3449 
3450 
3451              		      l_terr_values_tbl(k).qualifier_tbl_index := i;
3452 
3453 		               end loop;
3454 
3455                     else
3456                        write_log(2,' OVERLAY and NON_OVERLAY role exist for '||terr_group.terr_group_id);
3457                        --l_terr_qualtypeusgs_tbl(1).ORG_ID:=terr_group.ORG_ID;
3458                     end if;
3459 
3460                  end loop;
3461 
3462                  l_init_msg_list :=FND_API.G_TRUE;
3463 
3464           	     -- 07/08/03: JDOCHERT: bug#3023653
3465 				 --mo_global.set_org_context(terr_group.ORG_ID,null);
3466 				 --
3467 
3468                     --mo_global.set_org_context(204,null);
3469          		 --AS_UTILITY_PVT.file_debug(' winners # '||terr_group.NUM_WINNERS);
3470          		 --AS_UTILITY_PVT.file_debug(' migration of territory_group # '||terr_group.TERRITORY_GROUP_ID);
3471                  jtf_territory_pvt.create_territory (
3472                    p_api_version_number         => l_api_version_number,
3473                    p_init_msg_list              => l_init_msg_list,
3474                    p_commit                     => l_commit,
3475                    p_validation_level           => fnd_api.g_valid_level_NONE,
3476                    x_return_status              => x_return_status,
3477                    x_msg_count                  => x_msg_count,
3478                    x_msg_data                   => x_msg_data,
3479                    p_terr_all_rec               => l_terr_all_rec,
3480                    p_terr_usgs_tbl              => l_terr_usgs_tbl,
3481                    p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
3482                    p_terr_qual_tbl              => l_terr_qual_tbl,
3483                    p_terr_values_tbl            => l_terr_values_tbl,
3484                    x_terr_id                    => x_terr_id,
3485                    x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
3486                    x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
3487                    x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
3488                    x_terr_values_out_tbl        => x_terr_values_out_tbl
3489                  );
3490 
3491                  IF (x_return_status = 'S') THEN
3492 
3493                      -- JDOCHERT: 01/08/03: Added TERR_GROUP_ID
3494                      -- and NAMED_ACCOUNT_FLAG and TERR_GROUP_ACCOUNT_ID
3495                      UPDATE JTF_TERR_ALL
3496                      set TERR_GROUP_FLAG = 'Y'
3497                        , TERR_GROUP_ID = terr_group.TERR_GROUP_ID
3498                        , NAMED_ACCOUNT_FLAG = 'Y'
3499                        , TERR_GROUP_ACCOUNT_ID = overlayterr.terr_group_account_id
3500                      where terr_id = x_terr_id;
3501 
3502 
3503                      write_log(2,' OVERLAY CNR territory created:' || l_terr_all_rec.NAME);
3504 
3505                  else
3506                      x_msg_data :=  fnd_msg_pub.get(1, fnd_api.g_false);
3507                      write_log(2,x_msg_data);
3508                      write_log(2,'Failed in OVERLAY CNR territory treation for ' ||
3509 					             'TERR_GROUP_ACCOUNT_ID = ' ||
3510 								 overlayterr.terr_group_account_id );
3511 
3512     	         end if; /* IF (x_return_status = 'S') */
3513 
3514 
3515                  --dbms_output.put_line('pit.role '||pit.role_code);
3516                  i:=0;
3517 
3518                  /* JRADHAKR changed the parameter from l_terr_group_id to l_terr_group_acct_id */
3519            	     for rsc in resource_grp( overlayterr.terr_group_account_id
3520 				                        , pit.role_code) loop
3521 
3522                     i:=i+1;
3523 
3524                     SELECT   JTF_TERR_RSC_S.nextval
3525                 	into l_terr_rsc_id
3526                 	FROM DUAL;
3527 
3528                     l_TerrRsc_Tbl(i).terr_id := x_terr_id;
3529                     l_TerrRsc_Tbl(i).TERR_RSC_ID :=l_terr_rsc_id;
3530                 	l_TerrRsc_Tbl(i).LAST_UPDATE_DATE:=terr_group.LAST_UPDATE_DATE;
3531                 	l_TerrRsc_Tbl(i).LAST_UPDATED_BY:=terr_group.LAST_UPDATED_BY;
3532                 	l_TerrRsc_Tbl(i).CREATION_DATE:=terr_group.CREATION_DATE;
3533          		    l_TerrRsc_Tbl(i).CREATED_BY:=terr_group.CREATED_BY;
3534          		    l_TerrRsc_Tbl(i).LAST_UPDATE_LOGIN:=terr_group.LAST_UPDATE_LOGIN;
3535          		    --l_TerrRsc_Tbl(i).TERR_ID:=terr_group.TERRITORY_ID;
3536          		    l_TerrRsc_Tbl(i).RESOURCE_ID:=rsc.resource_id;
3537          		    l_TerrRsc_Tbl(i).RESOURCE_TYPE:=rsc.rsc_resource_type;
3538          		    l_TerrRsc_Tbl(i).ROLE:=pit.role_code;
3539                     --l_TerrRsc_Tbl(i).ROLE:=l_role;
3540          		    l_TerrRsc_Tbl(i).PRIMARY_CONTACT_FLAG:='N';
3541          		    l_TerrRsc_Tbl(i).START_DATE_ACTIVE:=terr_group.active_from_date ;
3542          		    l_TerrRsc_Tbl(i).END_DATE_ACTIVE:=terr_group.active_to_date ;
3543          		    l_TerrRsc_Tbl(i).ORG_ID:=terr_group.ORG_ID;
3544          		    l_TerrRsc_Tbl(i).FULL_ACCESS_FLAG:='Y';
3545          		    l_TerrRsc_Tbl(i).GROUP_ID:=rsc.rsc_group_id;
3546 
3547 
3548                     a := 0;
3549 
3550                     for rsc_acc in role_access(terr_group.terr_group_id,pit.role_code) loop
3551 
3552                         /**
3553 						 a := a+1; -- JDOCHERT: 05/28/03: put a := a+1; inside 2*IF statements
3554 						           -- that follow: ACCOUNT access should not be given for
3555 								   -- Product Overlay territories
3556 								   --
3557 						if rsc_acc.access_type= 'ACCOUNT' then
3558 
3559                             SELECT   JTF_TERR_RSC_ACCESS_S.nextval
3560                     	       into l_terr_rsc_access_id
3561                             FROM DUAL;
3562                     		l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
3563                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
3564                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3565                     		l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
3566              		        l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
3567              		        l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3568              		        l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
3569              		        l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'ACCOUNT';
3570              		        l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
3571              		        l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
3572 
3573                         els
3574 						**/
3575 
3576 						if rsc_acc.access_type= 'OPPORTUNITY' then
3577 
3578 						    a := a+1;
3579 
3580                             SELECT   JTF_TERR_RSC_ACCESS_S.nextval
3581                     	       into l_terr_rsc_access_id
3582                             FROM DUAL;
3583 
3584                     		l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
3585                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
3586                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3587                     		l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
3588              		        l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
3589              		        l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3590              		        l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
3591              		        l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'OPPOR';
3592              		        l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
3593              		        l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
3594 
3595                         elsif rsc_acc.access_type= 'LEAD' then
3596 
3597 						    a := a+1;
3598 
3599                             SELECT   JTF_TERR_RSC_ACCESS_S.nextval
3600                     	       into l_terr_rsc_access_id
3601                             FROM DUAL;
3602 
3603                     		l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
3604                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= terr_group.LAST_UPDATE_DATE ;
3605                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= terr_group.LAST_UPDATED_BY;
3606                     		l_TerrRsc_Access_Tbl(a).CREATION_DATE:= terr_group.CREATION_DATE;
3607              		        l_TerrRsc_Access_Tbl(a).CREATED_BY := terr_group.CREATED_BY;
3608              		        l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= terr_group.LAST_UPDATE_LOGIN;
3609              		        l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
3610              		        l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'LEAD';
3611              		        l_TerrRsc_Access_Tbl(a).ORG_ID:= terr_group.ORG_ID;
3612              		        l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
3613                         end if;
3614                     end loop; /* rsc_acc in role_access */
3615 
3616                     l_init_msg_list :=FND_API.G_TRUE;
3617 
3618 			        -- 07/08/03: JDOCHERT: bug#3023653
3619                     jtf_territory_resource_pvt.create_terrresource (
3620                        p_api_version_number      => l_Api_Version_Number,
3621                        p_init_msg_list           => l_Init_Msg_List,
3622                        p_commit                  => l_Commit,
3623                        p_validation_level        => fnd_api.g_valid_level_NONE,
3624                        x_return_status           => x_Return_Status,
3625                        x_msg_count               => x_Msg_Count,
3626                        x_msg_data                => x_msg_data,
3627                        p_terrrsc_tbl             => l_TerrRsc_tbl,
3628                        p_terrrsc_access_tbl      => l_terrRsc_access_tbl,
3629                        x_terrrsc_out_tbl         => x_TerrRsc_Out_Tbl,
3630                        x_terrrsc_access_out_tbl  => x_TerrRsc_Access_Out_Tbl
3631                     );
3632 
3633                     if x_Return_Status='S' then
3634           	           write_log(2,'Resource created for Product Interest OVERLAY Territory# '||
3635 					               x_terr_id);
3636                     else
3637                        write_log(2,'Failed in Resource creation for Product Interest OVERLAY Territory# '||
3638 					               x_terr_id);
3639                     end if;
3640 
3641                  end loop; /* rsc in resource_grp */
3642 
3643               end loop;
3644 
3645            else
3646               x_msg_data :=  fnd_msg_pub.get(1, fnd_api.g_false);
3647               write_log(2,x_msg_data);
3648               write_log(2,'Failed in OVERLAY Territory Creation for Territory Group: ' ||
3649                   terr_group.terr_group_id || ' : ' ||
3650                   terr_group.terr_group_name );
3651   	       end if;
3652 
3653         end loop;  /* for overlayterr in get_OVLY_party_name */
3654 		END IF;    /* IF ( terr_group.matching_rule_code IN ('1', '2') ) THEN */
3655 		/***************************************************************/
3656         /* (9) END: CREATE OVERLAY TERRITORIES FOR TERRITORY GROUP     */
3657 		/*     USING CUSTOMER NAME RANGE AND POSTAL CODE QUALIFIERS    */
3658         /***************************************************************/
3659 
3660 
3661 
3662 
3663      end if; /* l_pi_count*/
3664 
3665    else              ---if TERR_GROUP.self_service_type = 'GEOGRAPHY' then
3666 
3667         l_terr_group_rec.TERR_GROUP_ID           :=  terr_group.TERR_GROUP_ID;
3668         l_terr_group_rec.TERR_GROUP_NAME         :=  terr_group.TERR_GROUP_NAME;
3669         l_terr_group_rec.RANK                    :=  terr_group.RANK;
3670         l_terr_group_rec.ACTIVE_FROM_DATE        :=  terr_group.ACTIVE_FROM_DATE;
3671         l_terr_group_rec.ACTIVE_TO_DATE          :=  terr_group.ACTIVE_TO_DATE;
3672         l_terr_group_rec.PARENT_TERR_ID          :=  L_NACAT;
3673         l_terr_group_rec.MATCHING_RULE_CODE      :=  terr_group.MATCHING_RULE_CODE;
3674         l_terr_group_rec.CREATED_BY              :=  terr_group.CREATED_BY;
3675         l_terr_group_rec.CREATION_DATE           :=  terr_group.CREATION_DATE;
3676         l_terr_group_rec.LAST_UPDATED_BY         :=  terr_group.LAST_UPDATED_BY;
3677         l_terr_group_rec.LAST_UPDATE_DATE        :=  terr_group.LAST_UPDATE_DATE;
3678         l_terr_group_rec.LAST_UPDATE_LOGIN       :=  terr_group.LAST_UPDATE_LOGIN;
3679 --        l_terr_group_rec.Catch_all_resource_id   :=  terr_group.Catch_all_resource_id;
3680 --        l_terr_group_rec.catch_all_resource_type :=  terr_group.catch_all_resource_type;
3681         l_terr_group_rec.generate_catchall_flag  :=  terr_group.generate_catchall_flag;
3682         l_terr_group_rec.NUM_WINNERS             :=  terr_group.NUM_WINNERS;
3683 
3684         create_geography_territory
3685           ( p_terr_group_rec        => l_terr_group_rec
3686           , p_org_id                => terr_group.org_id
3687           , x_return_status         => l_return_status
3688           , x_error_message         => l_error_message
3689           );
3690 
3691    end if; /* self_service_type */
3692   end if;
3693 
3694      commit;
3695 
3696      write_log(2, '');
3697      write_log(2,'END: Territory Creation for Territory Group: ' ||
3698                     terr_group.terr_group_id || ' : ' ||
3699                     terr_group.terr_group_name );
3700      write_log(2, '');
3701      write_log(2, '----------------------------------------------------------');
3702 
3703   END LOOP;
3704   /****************************************************
3705   ** (2) END: CREATE NAMED ACCOUNT TERRITORY CREATION
3706   ** FOR EACH TERRITORY GROUP
3707   *****************************************************/
3708 
3709      /* JDOCHERT: 07/09/03:
3710    ** START: Disable triggers in
3711    ** TOTAL mode */
3712    IF (p_mode = 'TOTAL') THEN
3713       alter_triggers(p_status => 'ENABLE');
3714    END IF;
3715 
3716 END generate_named_overlay_terr;
3717 
3718 
3719 PROCEDURE  create_geography_territory
3720   ( p_terr_group_rec  IN  TERR_GRP_REC_TYPE
3721   , p_org_id          IN  NUMBER
3722   , x_return_status    OUT NOCOPY  VARCHAR2
3723   , x_error_message    OUT NOCOPY  VARCHAR2
3724   ) IS
3725 
3726     l_terr_all_rec                JTF_TERRITORY_PVT.terr_all_rec_type;
3727     l_terr_usgs_tbl               JTF_TERRITORY_PVT.terr_usgs_tbl_type;
3728     l_terr_qualtypeusgs_tbl       JTF_TERRITORY_PVT.terr_qualtypeusgs_tbl_type;
3729     l_terr_qual_tbl               JTF_TERRITORY_PVT.terr_qual_tbl_type;
3730     l_terr_values_tbl             JTF_TERRITORY_PVT.terr_values_tbl_type;
3731 
3732     l_TerrRsc_Tbl                 JTF_TERRITORY_RESOURCE_PVT.TerrResource_tbl_type;
3733     l_TerrRsc_Access_Tbl          JTF_TERRITORY_RESOURCE_PVT.TerrRsc_Access_tbl_type ;
3734     l_TerrRsc_empty_Tbl           JTF_TERRITORY_RESOURCE_PVT.TerrResource_tbl_type;
3735     l_TerrRsc_Access_empty_Tbl    JTF_TERRITORY_RESOURCE_PVT.TerrRsc_Access_tbl_type ;
3736 
3737     l_terr_usgs_empty_tbl         JTF_TERRITORY_PVT.terr_usgs_tbl_type;
3738     l_terr_qualtypeusgs_empty_tbl JTF_TERRITORY_PVT.terr_qualtypeusgs_tbl_type;
3739     l_terr_qual_empty_tbl         JTF_TERRITORY_PVT.terr_qual_tbl_type;
3740     l_terr_values_empty_tbl       JTF_TERRITORY_PVT.terr_values_tbl_type;
3741 
3742 
3743     i   NUMBER;
3744     j   NUMBER;
3745     k   NUMBER;
3746     a   NUMBER;
3747 
3748     l_terr_qual_id              NUMBER;
3749     l_id_used_flag              VARCHAR2(1);
3750     l_low_value_char_id NUMBER;
3751     l_qual_usgs_id      NUMBER;
3752     l_terr_usg_id       NUMBER;
3753     l_qual_type_usg_id  NUMBER;
3754     l_terr_qtype_usg_id NUMBER;
3755     l_terr_type_usg_id  NUMBER;
3756     l_type_qtype_usg_id NUMBER;
3757     l_terr_rsc_id               NUMBER;
3758     l_terr_rsc_access_id        NUMBER;
3759     l_access_type               VARCHAR2(30);
3760     l_api_version_number    CONSTANT NUMBER := 1.0;
3761     l_init_msg_list         varchar2(1);
3762     l_commit                varchar2(1);
3763 
3764     l_overlay_top  number;
3765     l_overlay      number;
3766     l_role_counter                NUMBER := 0;
3767 
3768     l_pi_count                    NUMBER := 0;
3769     l_prev_qual_usg_id            NUMBER;
3770 
3771     x_terr_usgs_out_tbl           JTF_TERRITORY_PVT.terr_usgs_out_tbl_type;
3772     x_terr_qualtypeusgs_out_tbl   JTF_TERRITORY_PVT.terr_qualtypeusgs_out_tbl_type;
3773     x_terr_qual_out_tbl           JTF_TERRITORY_PVT.terr_qual_out_tbl_type;
3774     x_terr_values_out_tbl         JTF_TERRITORY_PVT.terr_values_out_tbl_type;
3775     x_TerrRsc_Out_Tbl             JTF_TERRITORY_RESOURCE_PVT.TerrResource_out_tbl_type;
3776     x_TerrRsc_Access_Out_Tbl      JTF_TERRITORY_RESOURCE_PVT.TerrRsc_Access_out_tbl_type;
3777 
3778     x_terr_id           NUMBER;
3779     x_msg_count         number;
3780     x_msg_data          varchar2(2000);
3781 
3782 
3783     /* get all the geographies for a given territory group id
3784     */
3785 
3786     CURSOR geo_territories( l_terr_group_id number) IS
3787     SELECT gterr.geo_territory_id
3788          , gterr.geo_terr_name
3789     FROM jtf_tty_geo_terr gterr
3790     WHERE gterr.terr_group_id = l_terr_group_id;
3791 
3792 	/** Transaction Types for a NON-OVERLAY territory are
3793 	** determined by all salesteam members on this geography territories
3794 	** having Roles without Product Interests defined
3795 	** so there is no Overlay Territories to assign
3796 	** Leads and Opportunities. If all Roles have Product Interests
3797 	** then only ACCOUNT transaction type should
3798 	** be used in Non-Overlay Named Account definition
3799 	*/
3800     CURSOR get_NON_OVLY_geo_trans(l_geo_territory_id NUMBER) IS
3801        SELECT ra.access_type
3802        FROM
3803          JTF_TTY_GEO_TERR_RSC grsc
3804        , jtf_tty_terr_grp_roles tgr
3805        , jtf_tty_role_access ra
3806        WHERE grsc.GEO_TERRITORY_ID = l_geo_territory_id
3807          AND grsc.rsc_role_code = tgr.role_code
3808          AND ra.terr_group_role_id = tgr.terr_group_role_id
3809          AND ra.access_type IN ('ACCOUNT')
3810        UNION
3811        SELECT ra.access_type
3812        FROM
3813          JTF_TTY_GEO_TERR_RSC grsc
3814        , jtf_tty_terr_grp_roles tgr
3815        , jtf_tty_role_access ra
3816        WHERE grsc.GEO_TERRITORY_ID = l_geo_territory_id
3817          AND grsc.rsc_role_code = tgr.role_code
3818          AND ra.terr_group_role_id = tgr.terr_group_role_id
3819          AND NOT EXISTS (
3820             SELECT NULL
3821             FROM jtf_tty_role_prod_int rpi
3822             WHERE rpi.terr_group_role_id = tgr.terr_group_role_id );
3823 
3824     /* same sql used in geography download to Excel
3825        This query will find out all the postal codes
3826        for a given geography territoy.
3827        Also if the geography territory is for a territory
3828        group it will find out the postal codes
3829        looking at country, state, city or posta code
3830        associated with the territory group */
3831 
3832     CURSOR geo_values(l_geo_territory_id number) IS
3833            SELECT -1007 qual_usg_id
3834                  , '=' comparison_operator
3835                  , main.postal_code value1_char
3836                  , main.geo_territory_id
3837      from(
3838     /* postal code */
3839     select g.postal_code       postal_code,
3840            g.geo_id            geo_id
3841           , terr.geo_territory_id
3842       from   jtf_tty_geo_grp_values  grpv,
3843            jtf_tty_terr_groups     tg,
3844            jtf_tty_geo_terr        terr,
3845            jtf_tty_geographies     g   --postal_code level
3846     where  terr.terr_group_id      = tg.terr_group_id
3847            and terr.terr_group_id      = grpv.terr_group_id
3848            and terr.owner_resource_id  < 0
3849            and terr.parent_geo_terr_id < 0 -- default terr
3850            and ( (
3851                     grpv.geo_type = 'POSTAL_CODE'
3852                     and grpv.comparison_operator = '='
3853                     and g.geo_id = grpv.geo_id_from
3854                     and g.geo_type = 'POSTAL_CODE'
3855                   )
3856                   or
3857                   (
3858                     grpv.geo_type = 'POSTAL_CODE'
3859                     and grpv.comparison_operator = 'BETWEEN'
3860                     and g.geo_type = 'POSTAL_CODE'
3861                     and g.geo_id between grpv.geo_id_from and grpv.geo_id_to
3862                   )
3863                )
3864     union
3865     select  g.postal_code       postal_code,
3866             g.geo_id            geo_id
3867           , terr.geo_territory_id
3868     from   jtf_tty_geo_grp_values  grpv,
3869            jtf_tty_terr_groups     tg,
3870            jtf_tty_geo_terr        terr,
3871            jtf_tty_geographies     g,
3872            jtf_tty_geographies     g1
3873     where  terr.terr_group_id      = tg.terr_group_id
3874            and terr.terr_group_id      = grpv.terr_group_id
3875            and terr.owner_resource_id  < 0
3876            and terr.parent_geo_terr_id < 0 -- default terr
3877            and (
3878                   (
3879                     grpv.geo_type = 'STATE'
3880                     and g1.geo_id = grpv.geo_id_from
3881                     and g.STATE_CODE = g1.state_Code
3882                     and g.country_code = g1.country_Code
3883                     and g.geo_type = 'POSTAL_CODE'
3884                   )
3885                   or
3886                   ( grpv.geo_type = 'CITY'
3887                     AND  g.geo_type = 'POSTAL_CODE'
3888                     AND  g.country_code = g1.country_code
3889                     AND (
3890                            (g.state_code = g1.state_code AND g1.province_code is null)
3891                             or
3892                            (g1.province_code = g.province_code AND g1.state_code is null)
3893                          )
3894                     AND    (g1.county_code is null or g.county_code = g1.county_code)
3895                     AND    g.city_code = g1.city_code
3896                     AND    grpv.geo_id_from = g1.geo_id
3897                   )
3898                   or
3899                   (
3900                            grpv.geo_type = 'COUNTRY'
3901                     AND    grpv.geo_id_from = g1.geo_id
3902                     AND    g.geo_type = 'POSTAL_CODE'
3903                     AND    g.country_code = g1.country_code
3904                   )
3905                   or
3906                   (
3907                            grpv.geo_type = 'PROVINCE'
3908                     AND    grpv.geo_id_from = g1.geo_id
3909                     AND    g.geo_type = 'POSTAL_CODE'
3910                     AND    g.country_code = g1.country_code
3911                     AND    g.province_code = g1.province_code
3912                   )
3913                 )
3914     union
3915     select g.postal_code    postal_code,
3916            g.geo_id         geo_id
3917           , terr.geo_territory_id
3918     from   jtf_tty_terr_groups     tg,
3919            jtf_tty_geo_terr        terr,
3920            jtf_tty_geographies     g,
3921            jtf_tty_geo_terr_values tv
3922     where  terr.terr_group_id      = tg.terr_group_id
3923            and terr.owner_resource_id  >= 0
3924            and terr.parent_geo_terr_id >= 0 -- not default terr
3925            and tv.geo_territory_id     = terr.geo_territory_id
3926            and g.geo_id                = tv.geo_id
3927  ) main
3928  where  main.geo_id not in -- the terr the user owners
3929  (
3930     select tv.geo_id geo_id
3931     from   jtf_tty_geo_terr    terr,
3932            jtf_tty_geo_terr_values tv
3933     where
3934            tv.geo_territory_id = terr.geo_territory_id
3935          and main.geo_territory_id = terr.parent_geo_terr_id
3936   )
3937   and geo_territory_id = l_geo_territory_id;
3938 
3939     /* Access Types for a particular Role within a Territory Group */
3940     CURSOR NON_OVLY_role_access( lp_terr_group_id number
3941                                    , lp_role varchar2) IS
3942     SELECT distinct a.access_type
3943     from jtf_tty_role_access a
3944        , jtf_tty_terr_grp_roles b
3945     where a.terr_group_role_id = b.terr_group_role_id
3946       and b.terr_group_id      = lp_terr_group_id
3947       and b.role_code          = lp_role
3948           AND NOT EXISTS (
3949                /* Product Interest does not exist for this role */
3950                SELECT NULL
3951                    FROM jtf_tty_role_prod_int rpi
3952                    WHERE rpi.terr_group_role_id = B.TERR_GROUP_ROLE_ID )
3953     order by a.access_type  ;
3954 
3955     /* Roles WITHOUT a Product Iterest defined */
3956     CURSOR role_interest_nonpi(l_terr_group_id number) IS
3957     SELECT  b.role_code role_code
3958            --,a.interest_type_id
3959            ,b.terr_group_id
3960     from jtf_tty_role_prod_int a
3961        , jtf_tty_terr_grp_roles b
3962     where a.terr_group_role_id(+) = b.terr_group_role_id
3963       and b.terr_group_id         = l_terr_group_id
3964       and a.terr_group_role_id is  null
3965     order by b.role_code;
3966 
3967     CURSOR terr_resource (l_geo_territory_id number,l_role varchar2) IS
3968     SELECT distinct a.resource_id
3969          , a.rsc_group_id
3970          , nvl(a.rsc_resource_type,'RS_EMPLOYEE') rsc_resource_type
3971     from jtf_tty_geo_terr_rsc a
3972        , jtf_tty_geo_terr b
3973     where a.geo_territory_id = b.geo_territory_id
3974       and b.geo_territory_id = l_geo_territory_id
3975       and a.rsc_role_code = l_role;
3976 
3977     /* Get Top-Level Parent Territory details */
3978     CURSOR topterr(l_terr number) IS
3979     SELECT name
3980          , description
3981          , rank
3982          , parent_territory_id
3983          , terr_id
3984     from jtf_terr_all
3985     where terr_id = l_terr;
3986 
3987     /* get Qualifiers used in a territory */
3988     CURSOR csr_get_qual( lp_terr_id NUMBER) IS
3989       SELECT jtq.terr_qual_id
3990                , jtq.qual_usg_id
3991       FROM jtf_terr_qual_all jtq
3992       WHERE jtq.terr_id = lp_terr_id;
3993 
3994     /* get Values used in a territory qualifier */
3995     CURSOR csr_get_qual_val ( lp_terr_qual_id NUMBER ) IS
3996       SELECT jtv.TERR_VALUE_ID
3997                , jtv.INCLUDE_FLAG
3998                    , jtv.COMPARISON_OPERATOR
3999                    , jtv.LOW_VALUE_CHAR
4000                    , jtv.HIGH_VALUE_CHAR
4001                    , jtv.LOW_VALUE_NUMBER
4002                    , jtv.HIGH_VALUE_NUMBER
4003                    , jtv.VALUE_SET
4004                    , jtv.INTEREST_TYPE_ID
4005                    , jtv.PRIMARY_INTEREST_CODE_ID
4006                    , jtv.SECONDARY_INTEREST_CODE_ID
4007                    , jtv.CURRENCY_CODE
4008                    , jtv.ORG_ID
4009                    , jtv.ID_USED_FLAG
4010                    , jtv.LOW_VALUE_CHAR_ID
4011       FROM jtf_terr_values_all jtv
4012       WHERE jtv.terr_qual_id = lp_terr_qual_id;
4013 
4014     /* get the geographies
4015     ** used for OVERLAY territory creation */
4016 
4017     CURSOR get_OVLY_geographies(LP_terr_group_id number) IS
4018     SELECT gterr.geo_territory_id
4019          , gterr.geo_terr_name
4020     FROM jtf_tty_geo_terr gterr
4021     WHERE gterr.terr_group_id = lp_terr_group_id
4022       AND EXISTS (
4023 	        /* Salesperson, with Role that has a Product
4024 			** Interest defined, exists for this Named Account */
4025 	        SELECT NULL
4026 			FROM jtf_tty_geo_terr_rsc grsc
4027 			   , jtf_tty_role_prod_int rpi
4028 			   , jtf_tty_terr_grp_roles tgr
4029 			WHERE rpi.terr_group_role_id = tgr.terr_group_role_id
4030 			  AND tgr.terr_group_id = gterr.TERR_GROUP_ID
4031 			  AND tgr.role_code = grsc.rsc_role_code
4032 			  AND grsc.geo_territory_id = gterr.geo_territory_id );
4033 
4034 
4035     /* Roles WITH a Product Iterest defined */
4036     CURSOR role_pi( lp_terr_group_id         NUMBER
4037 	              , lp_geo_territory_id NUMBER) IS
4038     SELECT distinct
4039            b.role_code role_code
4040 	 , r.role_name role_name
4041     from jtf_rs_roles_vl r
4042        , jtf_tty_role_prod_int a
4043        , jtf_tty_terr_grp_roles b
4044     where r.role_code = b.role_code
4045       and a.terr_group_role_id = b.terr_group_role_id
4046       and b.terr_group_id      = lp_terr_group_id
4047 	  AND EXISTS (
4048 	         /* Named Account exists with Salesperson with this role */
4049 	         SELECT NULL
4050 			 FROM jtf_tty_geo_terr_rsc grsc, jtf_tty_geo_terr gterr
4051 			 WHERE gterr.geo_territory_id = grsc.geo_territory_id
4052 			   AND grsc.geo_territory_id = lp_geo_territory_id
4053 			   AND gterr.terr_group_id = b.terr_group_id
4054 			   AND grsc.rsc_role_code = b.role_code );
4055 
4056 
4057    /* Access Types for a particular Role within a Territory Group */
4058     CURSOR role_access(l_terr_group_id number,l_role varchar2) IS
4059     SELECT distinct a.access_type
4060     from jtf_tty_role_access a
4061        , jtf_tty_terr_grp_roles b
4062     where a.terr_group_role_id = b.terr_group_role_id
4063       and b.terr_group_id      = l_terr_group_id
4064       and b.role_code          = l_role
4065     order by a.access_type  ;
4066 
4067     /* Product Interest for a Role */
4068     CURSOR role_pi_interest(l_terr_group_id number,l_role varchar2) IS
4069     SELECT  a.interest_type_id
4070     from jtf_tty_role_prod_int a
4071        , jtf_tty_terr_grp_roles b
4072     where a.terr_group_role_id = b.terr_group_role_id
4073       and b.terr_group_id      = l_terr_group_id
4074       and b.role_code          = l_role;
4075 
4076 
4077 Begin
4078 
4079    for geo_terr in geo_territories(p_terr_group_rec.terr_group_id) loop
4080 
4081 
4082        l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
4083        l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
4084        l_terr_qual_tbl:=l_terr_qual_empty_tbl;
4085        l_terr_values_tbl:=l_terr_values_empty_tbl;
4086        l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
4087        l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
4088 
4089 
4090        l_terr_all_rec.LAST_UPDATE_DATE  := p_terr_group_rec.LAST_UPDATE_DATE;
4091        l_terr_all_rec.LAST_UPDATED_BY   := p_terr_group_rec.LAST_UPDATED_BY;
4092        l_terr_all_rec.CREATION_DATE     := p_terr_group_rec.CREATION_DATE;
4093        l_terr_all_rec.CREATED_BY        := p_terr_group_rec.CREATED_BY ;
4094        l_terr_all_rec.LAST_UPDATE_LOGIN := p_terr_group_rec.LAST_UPDATE_LOGIN;
4095 
4096        l_terr_all_rec.APPLICATION_SHORT_NAME := G_APP_SHORT_NAME;
4097 
4098        l_terr_all_rec.NAME              := geo_terr.geo_terr_name || ' ' || geo_terr.geo_territory_id;
4099        l_terr_all_rec.start_date_active := p_terr_group_rec.active_from_date ;
4100        l_terr_all_rec.end_date_active   := p_terr_group_rec.active_to_date;
4101        l_terr_all_rec.PARENT_TERRITORY_ID    :=  p_terr_group_rec.parent_terr_id;
4102        l_terr_all_rec.RANK                   := p_terr_group_rec.RANK + 10;
4103        l_terr_all_rec.TEMPLATE_TERRITORY_ID  := NULL;
4104        l_terr_all_rec.TEMPLATE_FLAG          := 'N';
4105        l_terr_all_rec.ESCALATION_TERRITORY_ID:= NULL;
4106        l_terr_all_rec.ESCALATION_TERRITORY_FLAG  := 'N';
4107        l_terr_all_rec.OVERLAP_ALLOWED_FLAG       := NULL;
4108        l_terr_all_rec.DESCRIPTION                := geo_terr.geo_terr_name;
4109        l_terr_all_rec.UPDATE_FLAG                := 'N';
4110        l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG := NULL;
4111 
4112        l_terr_all_rec.ORG_ID                     := p_org_id;
4113        l_terr_all_rec.NUM_WINNERS                := null ;
4114 
4115        /* Oracle Sales and Telesales Usage */
4116 
4117        SELECT   JTF_TERR_USGS_S.nextval
4118          into l_terr_usg_id
4119        FROM DUAL;
4120 
4121        l_terr_usgs_tbl(1).TERR_USG_ID        := l_terr_usg_id;
4122        l_terr_usgs_tbl(1).LAST_UPDATE_DATE   := p_terr_group_rec.LAST_UPDATE_DATE;
4123        l_terr_usgs_tbl(1).LAST_UPDATED_BY    := p_terr_group_rec.LAST_UPDATED_BY;
4124        l_terr_usgs_tbl(1).CREATION_DATE      := p_terr_group_rec.CREATION_DATE;
4125        l_terr_usgs_tbl(1).CREATED_BY         := p_terr_group_rec.CREATED_BY;
4126        l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN  := p_terr_group_rec.LAST_UPDATE_LOGIN;
4127        l_terr_usgs_tbl(1).TERR_ID            := null;
4128        l_terr_usgs_tbl(1).SOURCE_ID          := -1001;
4129        l_terr_usgs_tbl(1).ORG_ID             := p_org_id;
4130 
4131        i:=0;
4132 
4133        /* BEGIN: For each Access Type defined for the Territory Group */
4134 
4135        for acctype in get_NON_OVLY_geo_trans( geo_terr.geo_territory_id ) LOOP
4136 
4137           i:=i+1;
4138 
4139           /* ACCOUNT TRANSACTION TYPE */
4140 
4141           if acctype.access_type='ACCOUNT' then
4142 
4143              SELECT JTF_TERR_QTYPE_USGS_S.nextval
4144                into l_terr_qtype_usg_id
4145                FROM DUAL;
4146 
4147              l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID   := l_terr_qtype_usg_id;
4148              l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE        := p_terr_group_rec.LAST_UPDATE_DATE;
4149              l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY         := p_terr_group_rec.LAST_UPDATED_BY;
4150              l_terr_qualtypeusgs_tbl(i).CREATION_DATE           := p_terr_group_rec.CREATION_DATE;
4151              l_terr_qualtypeusgs_tbl(i).CREATED_BY              := p_terr_group_rec.CREATED_BY;
4152              l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN       := p_terr_group_rec.LAST_UPDATE_LOGIN;
4153              l_terr_qualtypeusgs_tbl(i).TERR_ID                 := null;
4154              l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID        := -1001;
4155              l_terr_qualtypeusgs_tbl(i).ORG_ID                  := p_org_id;
4156 
4157           /* LEAD TRANSACTION TYPE */
4158           elsif acctype.access_type='LEAD' then
4159 
4160              SELECT JTF_TERR_QTYPE_USGS_S.nextval
4161                into l_terr_qtype_usg_id
4162                FROM DUAL;
4163              l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID   := l_terr_qtype_usg_id;
4164              l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE        := p_terr_group_rec.LAST_UPDATE_DATE;
4165              l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY         := p_terr_group_rec.LAST_UPDATED_BY;
4166              l_terr_qualtypeusgs_tbl(i).CREATION_DATE           := p_terr_group_rec.CREATION_DATE;
4167              l_terr_qualtypeusgs_tbl(i).CREATED_BY              := p_terr_group_rec.CREATED_BY;
4168              l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN       := p_terr_group_rec.LAST_UPDATE_LOGIN;
4169              l_terr_qualtypeusgs_tbl(i).TERR_ID                 := null;
4170              l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID        := -1002;
4171              l_terr_qualtypeusgs_tbl(i).ORG_ID                  := p_org_id;
4172 
4173           /* OPPORTUNITY TRANSACTION TYPE */
4174           elsif acctype.access_type='OPPORTUNITY' then
4175 
4176              SELECT JTF_TERR_QTYPE_USGS_S.nextval
4177                into l_terr_qtype_usg_id
4178              FROM DUAL;
4179              l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
4180              l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4181              l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4182              l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4183              l_terr_qualtypeusgs_tbl(i).CREATED_BY := p_terr_group_rec.CREATED_BY;
4184              l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4185              l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
4186              l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1003;
4187              l_terr_qualtypeusgs_tbl(i).ORG_ID:=p_org_id;
4188 
4189           end if;
4190 
4191        end loop;
4192 
4193 
4194        /*
4195        ** get Named Account Customer Keyname and Postal Code Mapping
4196        ** rules, to use as territory definition qualifier values
4197        */
4198 
4199        j := 0;
4200        K := 0;
4201 
4202        l_prev_qual_usg_id:=1;
4203 
4204 
4205        FOR gval IN geo_values( geo_terr.geo_territory_id ) LOOP
4206 
4207           /* new qualifier, i.e., if there is a qualifier in
4208           ** Addition to DUNS# */
4209 
4210           IF l_prev_qual_usg_id <> gval.qual_usg_id THEN
4211 
4212              j:=j+1;
4213 
4214              SELECT JTF_TERR_QUAL_S.nextval
4215               into l_terr_qual_id
4216               FROM DUAL;
4217 
4218              l_terr_qual_tbl(j).TERR_QUAL_ID :=l_terr_qual_id;
4219              l_terr_qual_tbl(j).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
4220              l_terr_qual_tbl(j).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4221              l_terr_qual_tbl(j).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4222              l_terr_qual_tbl(j).CREATED_BY := p_terr_group_rec.CREATED_BY;
4223              l_terr_qual_tbl(j).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4224              l_terr_qual_tbl(j).TERR_ID:=null;
4225              l_terr_qual_tbl(j).QUAL_USG_ID :=gval.qual_usg_id;
4226              l_terr_qual_tbl(j).QUALIFIER_MODE:=NULL;
4227              l_terr_qual_tbl(j).OVERLAP_ALLOWED_FLAG:='N';
4228              l_terr_qual_tbl(j).USE_TO_NAME_FLAG:=NULL;
4229              l_terr_qual_tbl(j).GENERATE_FLAG:=NULL;
4230              l_terr_qual_tbl(j).ORG_ID:=p_org_id;
4231              l_prev_qual_usg_id:= gval.qual_usg_id;
4232 
4233          END IF;
4234 
4235          k:=k+1;
4236 
4237          l_terr_values_tbl(k).TERR_VALUE_ID:=null;
4238          l_terr_values_tbl(k).LAST_UPDATED_BY := p_terr_group_rec.last_UPDATED_BY;
4239          l_terr_values_tbl(k).LAST_UPDATE_DATE:= p_terr_group_rec.last_UPDATE_DATE;
4240          l_terr_values_tbl(k).CREATED_BY  := p_terr_group_rec.CREATED_BY;
4241          l_terr_values_tbl(k).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4242          l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= p_terr_group_rec.last_UPDATE_LOGIN;
4243          l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
4244          l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
4245          l_terr_values_tbl(k).COMPARISON_OPERATOR := gval.COMPARISON_OPERATOR;
4246          l_terr_values_tbl(k).LOW_VALUE_CHAR:= gval.value1_char;
4247          l_terr_values_tbl(k).HIGH_VALUE_CHAR:= NULL;
4248          l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
4249          l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
4250          l_terr_values_tbl(k).VALUE_SET :=NULL;
4251          l_terr_values_tbl(k).INTEREST_TYPE_ID :=null;
4252          l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
4253          l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
4254          l_terr_values_tbl(k).CURRENCY_CODE :=null;
4255          l_terr_values_tbl(k).ORG_ID :=p_org_id;
4256          l_terr_values_tbl(k).ID_USED_FLAG :='N';
4257          l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
4258          l_terr_values_tbl(k).qualifier_tbl_index := j;
4259 
4260       end loop; /* qval IN pqual */
4261 
4262       l_init_msg_list :=FND_API.G_TRUE;
4263 
4264       if l_prev_qual_usg_id <> 1 then    --  geography territory values are there if this condition is true
4265       jtf_territory_pvt.create_territory (
4266          p_api_version_number         => l_api_version_number,
4267          p_init_msg_list              => l_init_msg_list,
4268          p_commit=> l_commit,
4269          p_validation_level           => fnd_api.g_valid_level_NONE,
4270          x_return_status              => x_return_status,
4271          x_msg_count                  => x_msg_count,
4272          x_msg_data                   => x_msg_data,
4273          p_terr_all_rec               => l_terr_all_rec,
4274          p_terr_usgs_tbl              => l_terr_usgs_tbl,
4275          p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
4276          p_terr_qual_tbl              => l_terr_qual_tbl,
4277          p_terr_values_tbl            => l_terr_values_tbl,
4278          x_terr_id                    => x_terr_id,
4279          x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
4280          x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
4281          x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
4282          x_terr_values_out_tbl        => x_terr_values_out_tbl
4283        );
4284 
4285 
4286        /* BEGIN: Successful Territory creation? */
4287 
4288        if x_return_status = 'S' then
4289 
4290           -- JDOCHERT: 01/08/03: Added p_terr_group_rec_ID and CATCH_ALL_FLAG
4291           -- and NAMED_ACCOUNT_FLAG and p_terr_group_rec_ACCOUNT_ID
4292 
4293           UPDATE JTF_TERR_ALL
4294              set TERR_GROUP_FLAG = 'Y'
4295                , TERR_GROUP_ID = p_terr_group_rec.TERR_GROUP_ID
4296            where terr_id = x_terr_id;
4297 
4298           --write_log(2,p_terr_group_rec.terr_group_id);
4299           --write_log(2,tran_type.role_code);
4300 
4301           l_init_msg_list :=FND_API.G_TRUE;
4302           i := 0;
4303           a := 0;
4304 
4305           FOR tran_type in role_interest_nonpi(p_terr_group_rec.Terr_gROUP_ID)
4306           LOOP
4307 
4308 
4309              FOR rsc in terr_resource(geo_terr.geo_territory_id,tran_type.role_code)
4310              loop
4311 
4312                 i := i+1;
4313 
4314                 SELECT JTF_TERR_RSC_S.nextval
4315                   into l_terr_rsc_id
4316                   FROM DUAL;
4317 
4318                 l_TerrRsc_Tbl(i).terr_id := x_terr_id;
4319                 l_TerrRsc_Tbl(i).TERR_RSC_ID :=l_terr_rsc_id;
4320                 l_TerrRsc_Tbl(i).LAST_UPDATE_DATE:=p_terr_group_rec.LAST_UPDATE_DATE;
4321                 l_TerrRsc_Tbl(i).LAST_UPDATED_BY:=p_terr_group_rec.LAST_UPDATED_BY;
4322                 l_TerrRsc_Tbl(i).CREATION_DATE:=p_terr_group_rec.CREATION_DATE;
4323                 l_TerrRsc_Tbl(i).CREATED_BY:=p_terr_group_rec.CREATED_BY;
4324                 l_TerrRsc_Tbl(i).LAST_UPDATE_LOGIN:=p_terr_group_rec.LAST_UPDATE_LOGIN;
4325                 l_TerrRsc_Tbl(i).RESOURCE_ID:=rsc.resource_id;
4326                 l_TerrRsc_Tbl(i).RESOURCE_TYPE:=rsc.rsc_resource_type;
4327                 l_TerrRsc_Tbl(i).ROLE:=tran_type.role_code;
4328                 l_TerrRsc_Tbl(i).PRIMARY_CONTACT_FLAG:='N';
4329                 l_TerrRsc_Tbl(i).START_DATE_ACTIVE:=p_terr_group_rec.active_from_date ;
4330                 l_TerrRsc_Tbl(i).END_DATE_ACTIVE:=p_terr_group_rec.active_to_date ;
4331                 l_TerrRsc_Tbl(i).ORG_ID:=p_org_id;
4332                 l_TerrRsc_Tbl(i).FULL_ACCESS_FLAG:='Y';
4333                 l_TerrRsc_Tbl(i).GROUP_ID:=rsc.rsc_group_id;
4334 
4335                 FOR rsc_acc in NON_OVLY_role_access(p_terr_group_rec.terr_group_id,tran_type.role_code) LOOP
4336                    --dbms_output.put_line('rsc_acc.access_type   '||rsc_acc.access_type);
4337                    a := a+1;
4338 
4339                    /* ACCOUNT ACCESS TYPE */
4340                    IF (rsc_acc.access_type= 'ACCOUNT') THEN
4341 
4342                      SELECT JTF_TERR_RSC_ACCESS_S.nextval
4343                          into l_terr_rsc_access_id
4344                      FROM DUAL;
4345                      l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
4346                      l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
4347                      l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4348                      l_TerrRsc_Access_Tbl(a).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4349                      l_TerrRsc_Access_Tbl(a).CREATED_BY := p_terr_group_rec.CREATED_BY;
4350                      l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4351                      l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
4352                      l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'ACCOUNT';
4353                      l_TerrRsc_Access_Tbl(a).ORG_ID:= p_org_id;
4354                      l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
4355 
4356                    /* OPPORTUNITY ACCESS TYPE */
4357                    elsif rsc_acc.access_type= 'OPPORTUNITY' then
4358 
4359                      SELECT JTF_TERR_RSC_ACCESS_S.nextval
4360                      into l_terr_rsc_access_id
4361                      FROM DUAL;
4362 
4363                      l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
4364                      l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
4365                      l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4366                      l_TerrRsc_Access_Tbl(a).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4367                      l_TerrRsc_Access_Tbl(a).CREATED_BY := p_terr_group_rec.CREATED_BY;
4368                      l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4369                      l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
4370                      l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'OPPOR';
4371                      l_TerrRsc_Access_Tbl(a).ORG_ID:= p_org_id;
4372                      l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
4373 
4374                    /* LEAD ACCESS TYPE */
4375                    elsif rsc_acc.access_type= 'LEAD' then
4376 
4377                      SELECT   JTF_TERR_RSC_ACCESS_S.nextval
4378                         into l_terr_rsc_access_id
4379                      FROM DUAL;
4380                      l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
4381                      l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
4382                      l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4383                      l_TerrRsc_Access_Tbl(a).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4384                      l_TerrRsc_Access_Tbl(a).CREATED_BY := p_terr_group_rec.CREATED_BY;
4385                      l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4386                      l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
4387                      l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'LEAD';
4388                      l_TerrRsc_Access_Tbl(a).ORG_ID:= p_org_id;
4389                      l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
4390                    end if;
4391                 end loop; /* FOR rsc_acc in NON_OVLY_role_access */
4392 
4393              end loop; /* FOR rsc in resource_grp */
4394 
4395           end loop;/* FOR tran_type in role_interest_nonpi */
4396 
4397           l_init_msg_list :=FND_API.G_TRUE;
4398 
4399           jtf_territory_resource_pvt.create_terrresource (
4400              p_api_version_number      => l_Api_Version_Number,
4401              p_init_msg_list           => l_Init_Msg_List,
4402              p_commit                  => l_Commit,
4403              p_validation_level        => fnd_api.g_valid_level_NONE,
4404              x_return_status           => x_Return_Status,
4405              x_msg_count               => x_Msg_Count,
4406              x_msg_data                => x_msg_data,
4407              p_terrrsc_tbl             => l_TerrRsc_tbl,
4408              p_terrrsc_access_tbl      => l_terrRsc_access_tbl,
4409              x_terrrsc_out_tbl         => x_TerrRsc_Out_Tbl,
4410              x_terrrsc_access_out_tbl  => x_TerrRsc_Access_Out_Tbl
4411           );
4412 
4413           if x_Return_Status='S' then
4414              write_log(2,'Resource created for Geo territory # ' ||x_terr_id);
4415           else
4416              x_msg_data := substr(fnd_msg_pub.get(1, fnd_api.g_false),1,254);
4417              write_log(2,x_msg_data);
4418              write_log(2, '     Failed in resource creation for Geo territory # ' ||
4419                          x_terr_id);
4420           end if;
4421 
4422        else
4423           x_msg_data :=  substr(fnd_msg_pub.get(1, fnd_api.g_false),1,254);
4424           write_log(2,substr(x_msg_data,1,254));
4425           WRITE_LOG(2,'ERROR: NA TERRITORY CREATION FAILED ' ||
4426                 'FOR NAMED_ACCOUNT_ID# ' );
4427        end if; /* END: Successful Territory creation? */
4428        end if;
4429      end loop;
4430 	/*********************************************************************/
4431 	/*********************************************************************/
4432         /************** OVERLAY TERRITORY CREATION ***************************/
4433 	/*********************************************************************/
4434 	/*********************************************************************/
4435 
4436         /* if any role with PI and Account access and no non pi role exist */
4437         /* we need to create a new branch with Named Account */
4438         /* OVERLAY BRANCH */
4439 
4440 	BEGIN
4441 
4442            SELECT COUNT( DISTINCT b.role_code )
4443                into l_pi_count
4444            from jtf_rs_roles_vl r
4445               , jtf_tty_role_prod_int a
4446               , jtf_tty_terr_grp_roles b
4447            where r.role_code = b.role_code
4448              and a.terr_group_role_id = b.terr_group_role_id
4449              and b.terr_group_id      = p_terr_group_rec.TERR_GROUP_ID
4450                  AND EXISTS (
4451                                /* Named Account exists with Salesperson with this role */
4452                        SELECT NULL
4453                                FROM jtf_tty_geo_terr_rsc grsc, jtf_tty_geo_terr gterr
4454                                WHERE grsc.geo_territory_id = gterr.geo_territory_id
4455                                  AND gterr.terr_group_id = b.terr_group_id
4456                                  AND grsc.rsc_role_code = b.role_code )
4457                          AND ROWNUM < 2;
4458 
4459 	  EXCEPTION
4460 	   WHEN OTHERS THEN
4461 	      NUll;
4462 	END;
4463 
4464 
4465 	/* are there overlay roles, i.e., are there roles with Product
4466 	** Interests defined for this Territory Group */
4467 
4468         if l_pi_count > 0 then
4469 
4470            /***************************************************************/
4471            /* (7) START: CREATE TOP-LEVEL TERRITORY FOR OVERLAY BRANCH OF */
4472 	   /*    TERRITORY GROUP                                          */
4473            /***************************************************************/
4474            FOR topt in topterr(p_terr_group_rec.PARENT_TERR_ID) LOOP
4475 
4476               l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
4477 	      l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
4478 	      l_terr_qual_tbl:=l_terr_qual_empty_tbl;
4479               l_terr_values_tbl:=l_terr_values_empty_tbl;
4480               l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
4481               l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
4482 
4483               l_terr_all_rec.TERR_ID := null;
4484  	      l_terr_all_rec.LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4485  	      l_terr_all_rec.LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4486  	      l_terr_all_rec.CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4487  	      l_terr_all_rec.CREATED_BY := p_terr_group_rec.CREATED_BY ;
4488  	      l_terr_all_rec.LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4489 
4490  	      l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
4491               l_terr_all_rec.NAME:= p_terr_group_rec.terr_group_name || ' (OVERLAY)';
4492  	      l_terr_all_rec.start_date_active := p_terr_group_rec.active_from_date ;
4493  	      l_terr_all_rec.end_date_active   := p_terr_group_rec.active_to_date;
4494  	      l_terr_all_rec.PARENT_TERRITORY_ID:=  topt.PARENT_TERRITORY_ID;
4495  	      l_terr_all_rec.RANK := topt.RANK;
4496  	      l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
4497  	      l_terr_all_rec.TEMPLATE_FLAG := 'N';
4498  	      l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
4499  	      l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
4500  	      l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
4501  	      l_terr_all_rec.DESCRIPTION:= topt.DESCRIPTION;
4502  	      l_terr_all_rec.UPDATE_FLAG :='N';
4503  	      l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
4504 
4505  	      l_terr_all_rec.ORG_ID :=p_ORG_ID ;
4506  	      l_terr_all_rec.NUM_WINNERS :=l_pi_count ;
4507 
4508 	      /* ORACLE SALES AND TELESALES USAGE */
4509 
4510     	      SELECT JTF_TERR_USGS_S.nextval
4511                 into l_terr_usg_id
4512               FROM DUAL;
4513 
4514               l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
4515               l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4516               l_terr_usgs_tbl(1).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4517               l_terr_usgs_tbl(1).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4518  	      l_terr_usgs_tbl(1).CREATED_BY := p_terr_group_rec.CREATED_BY;
4519               l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=p_terr_group_rec.LAST_UPDATE_LOGIN;
4520               l_terr_usgs_tbl(1).TERR_ID:= null;
4521               l_terr_usgs_tbl(1).SOURCE_ID:=-1001;
4522               l_terr_usgs_tbl(1).ORG_ID:= p_ORG_ID;
4523 
4524 
4525 	      /* LEAD TRANSACTION TYPE */
4526               SELECT JTF_TERR_QTYPE_USGS_S.nextval
4527                 into l_terr_qtype_usg_id
4528               FROM DUAL;
4529 
4530       	      l_terr_qualtypeusgs_tbl(1).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
4531    	      l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4532    	      l_terr_qualtypeusgs_tbl(1).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4533    	      l_terr_qualtypeusgs_tbl(1).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4534               l_terr_qualtypeusgs_tbl(1).CREATED_BY := p_terr_group_rec.CREATED_BY;
4535               l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4536               l_terr_qualtypeusgs_tbl(1).TERR_ID:= null;
4537               l_terr_qualtypeusgs_tbl(1).QUAL_TYPE_USG_ID:=-1002;
4538               l_terr_qualtypeusgs_tbl(1).ORG_ID:=p_ORG_ID;
4539 
4540 	      /* OPPORTUNITY TRANSACTION TYPE */
4541 	      SELECT JTF_TERR_QTYPE_USGS_S.nextval
4542        	        into l_terr_qtype_usg_id
4543               FROM DUAL;
4544 
4545               l_terr_qualtypeusgs_tbl(2).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
4546    	      l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4547    	      l_terr_qualtypeusgs_tbl(2).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4548    	      l_terr_qualtypeusgs_tbl(2).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4549               l_terr_qualtypeusgs_tbl(2).CREATED_BY := p_terr_group_rec.CREATED_BY;
4550               l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4551               l_terr_qualtypeusgs_tbl(2).TERR_ID:= null;
4552               l_terr_qualtypeusgs_tbl(2).QUAL_TYPE_USG_ID:=-1003;
4553  	      l_terr_qualtypeusgs_tbl(2).ORG_ID:=p_ORG_ID;
4554 
4555 
4556 	      /*
4557 	      ** get Top-Level Parent's Qualifier and values and
4558 	      ** aad them to Overlay branch top-level territory
4559 	      */
4560 
4561               j:=0;
4562 	      k:=0;
4563 
4564               l_prev_qual_usg_id:=1;
4565 
4566               FOR csr_qual IN csr_get_qual ( topt.terr_id ) LOOP
4567 
4568                  j:=j+1;
4569 
4570         	 SELECT JTF_TERR_QUAL_S.nextval
4571         	   INTO l_terr_qual_id
4572         	 FROM DUAL;
4573 
4574                  l_terr_qual_tbl(j).TERR_QUAL_ID := l_terr_qual_id;
4575         	 l_terr_qual_tbl(j).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
4576  		 l_terr_qual_tbl(j).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4577  		 l_terr_qual_tbl(j).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4578  		 l_terr_qual_tbl(j).CREATED_BY := p_terr_group_rec.CREATED_BY;
4579  		 l_terr_qual_tbl(j).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4580  		 l_terr_qual_tbl(j).TERR_ID:= null;
4581 
4582 		 /* Top_level Parent's Qualifier */
4583 
4584 	         l_terr_qual_tbl(j).QUAL_USG_ID := csr_qual.qual_usg_id;
4585 
4586  	         l_terr_qual_tbl(j).QUALIFIER_MODE:= NULL;
4587  	         l_terr_qual_tbl(j).OVERLAP_ALLOWED_FLAG:='Y';
4588  	         l_terr_qual_tbl(j).USE_TO_NAME_FLAG:=NULL;
4589  	         l_terr_qual_tbl(j).GENERATE_FLAG:=NULL;
4590  	         l_terr_qual_tbl(j).ORG_ID:=p_ORG_ID;
4591 
4592 
4593 		 FOR csr_qual_val IN csr_get_qual_val (csr_qual.terr_qual_id) LOOP
4594 
4595 		    k:=k+1;
4596 
4597 		    l_terr_values_tbl(k).TERR_VALUE_ID := NULL;
4598  	            l_terr_values_tbl(k).LAST_UPDATED_BY := G_USER_ID;
4599  	            l_terr_values_tbl(k).LAST_UPDATE_DATE:= G_SYSDATE;
4600  	            l_terr_values_tbl(k).CREATED_BY  := G_USER_ID;
4601  	            l_terr_values_tbl(k).CREATION_DATE:= G_SYSDATE;
4602  	            l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= G_LOGIN_ID;
4603 
4604  	            l_terr_values_tbl(k).TERR_QUAL_ID := l_terr_qual_id ;
4605 
4606  	            l_terr_values_tbl(k).INCLUDE_FLAG         := csr_qual_val.INCLUDE_FLAG;
4607  	            l_terr_values_tbl(k).COMPARISON_OPERATOR  := csr_qual_val.COMPARISON_OPERATOR;
4608  	            l_terr_values_tbl(k).LOW_VALUE_CHAR       := csr_qual_val.LOW_VALUE_CHAR;
4609  	            l_terr_values_tbl(k).HIGH_VALUE_CHAR      := csr_qual_val.HIGH_VALUE_CHAR;
4610  	            l_terr_values_tbl(k).LOW_VALUE_NUMBER     := csr_qual_val.LOW_VALUE_NUMBER;
4611  	            l_terr_values_tbl(k).HIGH_VALUE_NUMBER    := csr_qual_val.HIGH_VALUE_NUMBER;
4612  	            l_terr_values_tbl(k).VALUE_SET            := csr_qual_val.VALUE_SET;
4613  	            l_terr_values_tbl(k).INTEREST_TYPE_ID     := csr_qual_val.INTEREST_TYPE_ID;
4614  	            l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID   := csr_qual_val.PRIMARY_INTEREST_CODE_ID;
4615  	            l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID := csr_qual_val.SECONDARY_INTEREST_CODE_ID;
4616  	            l_terr_values_tbl(k).CURRENCY_CODE        := csr_qual_val.CURRENCY_CODE;
4617  	            l_terr_values_tbl(k).ID_USED_FLAG         := csr_qual_val.ID_USED_FLAG;
4618  	            l_terr_values_tbl(k).LOW_VALUE_CHAR_ID    := csr_qual_val.LOW_VALUE_CHAR_ID;
4619 
4620  	            l_terr_values_tbl(k).ORG_ID               := p_org_id;
4621 
4622    		    /* What Qualifier Values relate to Qualifier */
4623 		    l_terr_values_tbl(k).qualifier_tbl_index := j;
4624 
4625 
4626 		 END LOOP;	/* csr_qual_val IN csr_get_qual_val */
4627 
4628   	     end loop; /* csr_qual IN csr_get_qual */
4629 
4630 
4631              l_init_msg_list :=FND_API.G_TRUE;
4632 
4633              -- 07/08/03: JDOCHERT: bug#3023653
4634 	     --mo_global.set_org_context(p_terr_group_rec.ORG_ID,null);
4635 	     --
4636 
4637              jtf_territory_pvt.create_territory (
4638                 p_api_version_number         => l_api_version_number,
4639                 p_init_msg_list              => l_init_msg_list,
4640                 p_commit                     => l_commit,
4641                 p_validation_level           => fnd_api.g_valid_level_NONE,
4642                 x_return_status              => x_return_status,
4643                 x_msg_count                  => x_msg_count,
4644                 x_msg_data                   => x_msg_data,
4645                 p_terr_all_rec               => l_terr_all_rec,
4646                 p_terr_usgs_tbl              => l_terr_usgs_tbl,
4647                 p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
4648                 p_terr_qual_tbl              => l_terr_qual_tbl,
4649                 p_terr_values_tbl            => l_terr_values_tbl,
4650                 x_terr_id                    => x_terr_id,
4651                 x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
4652                 x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
4653                 x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
4654                 x_terr_values_out_tbl        => x_terr_values_out_tbl
4655               );
4656 
4657 
4658               if x_return_status = 'S' then
4659 
4660                  -- JDOCHERT: 01/08/03: Added p_terr_group_rec.ID
4661                  UPDATE JTF_TERR_ALL
4662                     set terr_group_FLAG = 'Y'
4663                       , terr_group_ID = p_terr_group_rec.TERR_GROUP_ID
4664                   where terr_id = x_terr_id;
4665 
4666               end if;
4667 
4668               l_overlay_top :=x_terr_id;
4669 
4670            end loop;/*  topt top level territory */
4671 
4672           /***************************************************************/
4673           /* (7) END: CREATE TOP-LEVEL TERRITORY FOR OVERLAY BRANCH OF   */
4674 	  /*    TERRITORY GROUP                                          */
4675           /***************************************************************/
4676 
4677 
4678          /***************************************************************/
4679          /* (8) START: CREATE OVERLAY TERRITORIES FOR TERRITORY GROUP   */
4680          /*     USING DUNS# QUALIFIER                                   */
4681          /***************************************************************/
4682 
4683            FOR overlayterr in get_OVLY_geographies(p_terr_group_rec.terr_group_id) LOOP
4684 
4685               l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
4686 	      l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
4687      	      l_terr_qual_tbl:=l_terr_qual_empty_tbl;
4688               l_terr_values_tbl:=l_terr_values_empty_tbl;
4689               l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
4690               l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
4691 
4692               l_terr_all_rec.TERR_ID := null;
4693  	      l_terr_all_rec.LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4694  	      l_terr_all_rec.LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4695  	      l_terr_all_rec.CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4696  	      l_terr_all_rec.CREATED_BY := p_terr_group_rec.CREATED_BY ;
4697  	      l_terr_all_rec.LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4698 
4699  	      l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
4700  	      l_terr_all_rec.NAME:= overlayterr.geo_terr_name || ' (OVERLAY)';
4701  	      l_terr_all_rec.start_date_active := p_terr_group_rec.active_from_date ;
4702  	      l_terr_all_rec.end_date_active   := p_terr_group_rec.active_to_date;
4703  	      l_terr_all_rec.PARENT_TERRITORY_ID:=  l_overlay_top;
4704  	      l_terr_all_rec.RANK := p_terr_group_rec.RANK + 10;
4705  	      l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
4706  	      l_terr_all_rec.TEMPLATE_FLAG := 'N';
4707  	      l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
4708  	      l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
4709  	      l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
4710  	      l_terr_all_rec.DESCRIPTION:= overlayterr.geo_terr_name || ' (OVERLAY_DUNS#)';
4711  	      l_terr_all_rec.UPDATE_FLAG :='N';
4712  	      l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
4713 
4714      	      l_terr_all_rec.ORG_ID :=p_ORG_ID ;
4715  	      l_terr_all_rec.NUM_WINNERS :=null ;
4716 
4717 
4718  	      SELECT JTF_TERR_USGS_S.nextval
4719                 into l_terr_usg_id
4720               FROM DUAL;
4721 
4722               l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
4723               l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4724               l_terr_usgs_tbl(1).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4725               l_terr_usgs_tbl(1).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4726  	      l_terr_usgs_tbl(1).CREATED_BY := p_terr_group_rec.CREATED_BY;
4727               l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=p_terr_group_rec.LAST_UPDATE_LOGIN;
4728               l_terr_usgs_tbl(1).TERR_ID:= null;
4729               l_terr_usgs_tbl(1).SOURCE_ID := -1001;
4730               l_terr_usgs_tbl(1).ORG_ID:= p_ORG_ID;
4731 
4732               SELECT   JTF_TERR_QTYPE_USGS_S.nextval
4733                 into l_terr_qtype_usg_id
4734               FROM DUAL;
4735 
4736       	      l_terr_qualtypeusgs_tbl(1).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
4737    	      l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4738    	      l_terr_qualtypeusgs_tbl(1).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4739    	      l_terr_qualtypeusgs_tbl(1).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4740               l_terr_qualtypeusgs_tbl(1).CREATED_BY := p_terr_group_rec.CREATED_BY;
4741               l_terr_qualtypeusgs_tbl(1).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4742               l_terr_qualtypeusgs_tbl(1).TERR_ID:= null;
4743               l_terr_qualtypeusgs_tbl(1).QUAL_TYPE_USG_ID:=-1002;
4744               l_terr_qualtypeusgs_tbl(1).ORG_ID:=p_ORG_ID;
4745 
4746               SELECT   JTF_TERR_QTYPE_USGS_S.nextval
4747        	        into l_terr_qtype_usg_id
4748               FROM DUAL;
4749 
4750    	      l_terr_qualtypeusgs_tbl(2).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
4751    	      l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4752    	      l_terr_qualtypeusgs_tbl(2).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4753    	      l_terr_qualtypeusgs_tbl(2).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4754               l_terr_qualtypeusgs_tbl(2).CREATED_BY := p_terr_group_rec.CREATED_BY;
4755               l_terr_qualtypeusgs_tbl(2).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4756               l_terr_qualtypeusgs_tbl(2).TERR_ID:= null;
4757               l_terr_qualtypeusgs_tbl(2).QUAL_TYPE_USG_ID:=-1003;
4758  	      l_terr_qualtypeusgs_tbl(2).ORG_ID:=p_ORG_ID;
4759 
4760               SELECT JTF_TERR_QUAL_S.nextval
4761       	        into l_terr_qual_id
4762        	      FROM DUAL;
4763 
4764 	      j:=0;
4765 	      K:=0;
4766               l_prev_qual_usg_id:=1;
4767 
4768               FOR gval IN geo_values(overlayterr.geo_territory_id ) LOOP
4769 
4770       	         if l_prev_qual_usg_id <> gval.qual_usg_id then
4771 
4772                     j:=j+1;
4773         	    SELECT   JTF_TERR_QUAL_S.nextval
4774         	      into l_terr_qual_id
4775         	    FROM DUAL;
4776 
4777         	    l_terr_qual_tbl(j).TERR_QUAL_ID :=l_terr_qual_id;
4778         	    l_terr_qual_tbl(j).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
4779  		    l_terr_qual_tbl(j).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4780  		    l_terr_qual_tbl(j).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4781  		    l_terr_qual_tbl(j).CREATED_BY := p_terr_group_rec.CREATED_BY;
4782  		    l_terr_qual_tbl(j).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4783  		    l_terr_qual_tbl(j).TERR_ID:=null;
4784  		    l_terr_qual_tbl(j).QUAL_USG_ID :=gval.qual_usg_id;
4785  		    l_terr_qual_tbl(j).QUALIFIER_MODE:=NULL;
4786  		    l_terr_qual_tbl(j).OVERLAP_ALLOWED_FLAG:='N';
4787  		    l_terr_qual_tbl(j).USE_TO_NAME_FLAG:=NULL;
4788  		    l_terr_qual_tbl(j).GENERATE_FLAG:=NULL;
4789  		    l_terr_qual_tbl(j).ORG_ID:=p_ORG_ID;
4790 		    l_prev_qual_usg_id:= gval.qual_usg_id;
4791 	  	  end if;  /* l_prev_qual_usg_id */
4792 
4793    	     	  k:=k+1;
4794 
4795 	          l_terr_values_tbl(k).TERR_VALUE_ID:=null;
4796 
4797            	  l_terr_values_tbl(k).LAST_UPDATED_BY := p_terr_group_rec.last_UPDATED_BY;
4798         	  l_terr_values_tbl(k).LAST_UPDATE_DATE:= p_terr_group_rec.last_UPDATE_DATE;
4799  	       	  l_terr_values_tbl(k).CREATED_BY  := p_terr_group_rec.CREATED_BY;
4800  	          l_terr_values_tbl(k).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4801         	  l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= p_terr_group_rec.last_UPDATE_LOGIN;
4802  	          l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
4803         	  l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
4804  		  l_terr_values_tbl(k).COMPARISON_OPERATOR := gval.COMPARISON_OPERATOR;
4805          	  l_terr_values_tbl(k).LOW_VALUE_CHAR:= gval.value1_char;
4806  	          l_terr_values_tbl(k).HIGH_VALUE_CHAR:= NULL;
4807            	  l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
4808  	          l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
4809            	  l_terr_values_tbl(k).VALUE_SET :=NULL;
4810         	  l_terr_values_tbl(k).INTEREST_TYPE_ID :=null;
4811  	          l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
4812  		  l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
4813  	          l_terr_values_tbl(k).CURRENCY_CODE :=null;
4814  	          l_terr_values_tbl(k).ORG_ID :=p_ORG_ID;
4815          	  l_terr_values_tbl(k).ID_USED_FLAG :='N';
4816         	  l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
4817 
4818          	  l_terr_values_tbl(k).qualifier_tbl_index := j;
4819 
4820      	     end loop; /* gval */
4821 
4822              l_init_msg_list :=FND_API.G_TRUE;
4823 
4824 
4825              jtf_territory_pvt.create_territory (
4826                 p_api_version_number         => l_api_version_number,
4827                 p_init_msg_list              => l_init_msg_list,
4828                 p_commit                     => l_commit,
4829                 p_validation_level           => fnd_api.g_valid_level_NONE,
4830                 x_return_status              => x_return_status,
4831                 x_msg_count                  => x_msg_count,
4832                 x_msg_data                   => x_msg_data,
4833                 p_terr_all_rec               => l_terr_all_rec,
4834                 p_terr_usgs_tbl              => l_terr_usgs_tbl,
4835                 p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
4836                 p_terr_qual_tbl              => l_terr_qual_tbl,
4837                 p_terr_values_tbl            => l_terr_values_tbl,
4838                 x_terr_id                    => x_terr_id,
4839                 x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
4840                 x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
4841                 x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
4842                 x_terr_values_out_tbl        => x_terr_values_out_tbl
4843               );
4844 
4845 
4846               if x_return_status = 'S' then
4847 
4848 
4849                  UPDATE JTF_TERR_ALL
4850                   set TERR_GROUP_FLAG = 'Y'
4851                     , TERR_GROUP_ID = p_terr_group_rec.TERR_GROUP_ID
4852                  where terr_id = x_terr_id;
4853 
4854                  l_overlay:=x_terr_id;
4855 
4856                  for pit in role_pi(p_terr_group_rec.terr_group_id, overlayterr.geo_territory_id) loop
4857 
4858 
4859                     l_terr_usgs_tbl:=l_terr_usgs_empty_tbl;
4860 	            l_terr_qualtypeusgs_tbl:=l_terr_qualtypeusgs_empty_tbl;
4861 	            l_terr_qual_tbl:=l_terr_qual_empty_tbl;
4862                     l_terr_values_tbl:=l_terr_values_empty_tbl;
4863                     l_TerrRsc_Tbl := l_TerrRsc_empty_Tbl;
4864                     l_TerrRsc_Access_Tbl := l_TerrRsc_Access_empty_Tbl;
4865 
4866 		    l_role_counter := l_role_counter + 1;
4867 
4868                     l_terr_all_rec.TERR_ID := overlayterr.geo_territory_id * -30 * l_role_counter;
4869  		    l_terr_all_rec.LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4870  		    l_terr_all_rec.LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4871  		    l_terr_all_rec.CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4872  		    l_terr_all_rec.CREATED_BY := p_terr_group_rec.CREATED_BY ;
4873  		    l_terr_all_rec.LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4874 
4875  	  	    l_terr_all_rec.APPLICATION_SHORT_NAME:= G_APP_SHORT_NAME;
4876 
4877  		    l_terr_all_rec.NAME:= overlayterr.geo_terr_name || ': ' ||
4878 			                      pit.role_name || ' (OVERLAY)';
4879 
4880  		    l_terr_all_rec.start_date_active := p_terr_group_rec.active_from_date ;
4881  		    l_terr_all_rec.end_date_active   := p_terr_group_rec.active_to_date;
4882  		    l_terr_all_rec.PARENT_TERRITORY_ID:= l_overlay;
4883  		    l_terr_all_rec.RANK := p_terr_group_rec.RANK+10;
4884  		    l_terr_all_rec.TEMPLATE_TERRITORY_ID:= NULL;
4885  		    l_terr_all_rec.TEMPLATE_FLAG := 'N';
4886  		    l_terr_all_rec.ESCALATION_TERRITORY_ID := NULL;
4887  		    l_terr_all_rec.ESCALATION_TERRITORY_FLAG := 'N';
4888  		    l_terr_all_rec.OVERLAP_ALLOWED_FLAG := NULL;
4889 
4890  		    l_terr_all_rec.DESCRIPTION:= overlayterr.geo_terr_name || ': ' ||
4891 			                             pit.role_name || ' (OVERLAY DUNS#)';
4892 
4893  		    l_terr_all_rec.UPDATE_FLAG :='N';
4894  		    l_terr_all_rec.AUTO_ASSIGN_RESOURCES_FLAG :=NULL;
4895 
4896  		    l_terr_all_rec.ORG_ID :=p_ORG_ID ;
4897  		    l_terr_all_rec.NUM_WINNERS :=null ;
4898 
4899  		    SELECT   JTF_TERR_USGS_S.nextval
4900                       into l_terr_usg_id
4901                     FROM DUAL;
4902 
4903     	            l_terr_usgs_tbl(1).TERR_USG_ID := l_terr_usg_id;
4904                     l_terr_usgs_tbl(1).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4905                     l_terr_usgs_tbl(1).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4906                     l_terr_usgs_tbl(1).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4907  		    l_terr_usgs_tbl(1).CREATED_BY := p_terr_group_rec.CREATED_BY;
4908                     l_terr_usgs_tbl(1).LAST_UPDATE_LOGIN:=p_terr_group_rec.LAST_UPDATE_LOGIN;
4909                     l_terr_usgs_tbl(1).TERR_ID:= null;
4910                     l_terr_usgs_tbl(1).SOURCE_ID:=-1001;
4911                     l_terr_usgs_tbl(1).ORG_ID:= p_ORG_ID;
4912 
4913                     i := 0;
4914                     K:= 0;
4915 
4916                     for acc_type in role_access(p_terr_group_rec.terr_group_id,pit.role_code) loop
4917                        --i:=i+1;
4918                        --dbms_output.put_line('acc type  '||acc_type.access_type);
4919                        if acc_type.access_type= 'OPPORTUNITY' then
4920                           i:=i+1;
4921                           SELECT   JTF_TERR_QTYPE_USGS_S.nextval
4922        	                    into l_terr_qtype_usg_id
4923                           FROM DUAL;
4924 
4925       		          l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
4926    		          l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4927    		          l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4928    		          l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4929                           l_terr_qualtypeusgs_tbl(i).CREATED_BY := p_terr_group_rec.CREATED_BY;
4930                           l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4931                           l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
4932                           l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1003;
4933  		          l_terr_qualtypeusgs_tbl(i).ORG_ID:=p_ORG_ID;
4934 
4935                           SELECT JTF_TERR_QUAL_S.nextval
4936       	                    into l_terr_qual_id
4937        	                  FROM DUAL;
4938                           /* opp expected purchase */
4939 
4940            	          l_terr_qual_tbl(i).TERR_QUAL_ID :=l_terr_qual_id;
4941             	          l_terr_qual_tbl(i).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
4942  	          	  l_terr_qual_tbl(i).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4943  	          	  l_terr_qual_tbl(i).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4944  		          l_terr_qual_tbl(i).CREATED_BY := p_terr_group_rec.CREATED_BY;
4945  		          l_terr_qual_tbl(i).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4946  		          l_terr_qual_tbl(i).TERR_ID:=null;
4947  		          l_terr_qual_tbl(i).QUAL_USG_ID :=-1023;
4948  		          l_terr_qual_tbl(i).QUALIFIER_MODE:=NULL;
4949  		          l_terr_qual_tbl(i).OVERLAP_ALLOWED_FLAG:='N';
4950  		          l_terr_qual_tbl(i).USE_TO_NAME_FLAG:=NULL;
4951  		          l_terr_qual_tbl(i).GENERATE_FLAG:=NULL;
4952  		          l_terr_qual_tbl(i).ORG_ID:=p_ORG_ID;
4953 
4954                           for qval in role_pi_interest(p_terr_group_rec.terr_group_id,pit.role_code) loop
4955 
4956 		              k:=k+1;
4957   		              l_terr_values_tbl(k).TERR_VALUE_ID:=null;
4958 
4959  		              l_terr_values_tbl(k).LAST_UPDATED_BY := p_terr_group_rec.last_UPDATED_BY;
4960  		              l_terr_values_tbl(k).LAST_UPDATE_DATE:= p_terr_group_rec.last_UPDATE_DATE;
4961  		              l_terr_values_tbl(k).CREATED_BY  := p_terr_group_rec.CREATED_BY;
4962  		              l_terr_values_tbl(k).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4963  		              l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= p_terr_group_rec.last_UPDATE_LOGIN;
4964  		              l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
4965  		              l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
4966  		              l_terr_values_tbl(k).COMPARISON_OPERATOR :='=';
4967  		              l_terr_values_tbl(k).LOW_VALUE_CHAR:= null;
4968  		              l_terr_values_tbl(k).HIGH_VALUE_CHAR:=null;
4969  		              l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
4970  		              l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
4971  		              l_terr_values_tbl(k).VALUE_SET :=NULL;
4972  		              l_terr_values_tbl(k).INTEREST_TYPE_ID :=qval.interest_type_id;
4973  		              l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
4974  		              l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
4975  		              l_terr_values_tbl(k).CURRENCY_CODE :=null;
4976  		              l_terr_values_tbl(k).ORG_ID :=p_ORG_ID;
4977  		              l_terr_values_tbl(k).ID_USED_FLAG :='N';
4978  		              l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
4979 
4980  		              l_terr_values_tbl(k).qualifier_tbl_index := i;
4981 
4982   		           end loop;   /* qval */
4983 
4984                         elsif acc_type.access_type= 'LEAD' then
4985 
4986                            i:=i+1;
4987                            SELECT   JTF_TERR_QTYPE_USGS_S.nextval
4988                              into l_terr_qtype_usg_id
4989                              FROM DUAL;
4990 
4991         		   l_terr_qualtypeusgs_tbl(i).TERR_QUAL_TYPE_USG_ID:= l_terr_qtype_usg_id;
4992    		           l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE;
4993    		           l_terr_qualtypeusgs_tbl(i).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
4994    		           l_terr_qualtypeusgs_tbl(i).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
4995                            l_terr_qualtypeusgs_tbl(i).CREATED_BY := p_terr_group_rec.CREATED_BY;
4996                            l_terr_qualtypeusgs_tbl(i).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
4997                            l_terr_qualtypeusgs_tbl(i).TERR_ID:= null;
4998                            l_terr_qualtypeusgs_tbl(i).QUAL_TYPE_USG_ID:=-1002;
4999                            l_terr_qualtypeusgs_tbl(i).ORG_ID:=p_ORG_ID;
5000 
5001                            SELECT   JTF_TERR_QUAL_S.nextval
5002       	                     into l_terr_qual_id
5003        	                   FROM DUAL;
5004 
5005                            /* lead expected purchase */
5006        	                   l_terr_qual_tbl(i).TERR_QUAL_ID :=l_terr_qual_id;
5007        	                   l_terr_qual_tbl(i).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
5008  		           l_terr_qual_tbl(i).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
5009  		           l_terr_qual_tbl(i).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
5010  		           l_terr_qual_tbl(i).CREATED_BY := p_terr_group_rec.CREATED_BY;
5011  		           l_terr_qual_tbl(i).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
5012  		           l_terr_qual_tbl(i).TERR_ID:=null;
5013  		           l_terr_qual_tbl(i).QUAL_USG_ID :=-1018;
5014  		           l_terr_qual_tbl(i).QUALIFIER_MODE:=NULL;
5015  		           l_terr_qual_tbl(i).OVERLAP_ALLOWED_FLAG:='N';
5016  		           l_terr_qual_tbl(i).USE_TO_NAME_FLAG:=NULL;
5017  		           l_terr_qual_tbl(i).GENERATE_FLAG:=NULL;
5018  		           l_terr_qual_tbl(i).ORG_ID:=p_ORG_ID;
5019 
5020                            for qval in role_pi_interest(p_terr_group_rec.terr_group_id,pit.role_code) loop
5021 
5022                               k:=k+1;
5023 
5024             		      l_terr_values_tbl(k).TERR_VALUE_ID:=null;
5025 
5026                   	      l_terr_values_tbl(k).LAST_UPDATED_BY := p_terr_group_rec.last_UPDATED_BY;
5027               		      l_terr_values_tbl(k).LAST_UPDATE_DATE:= p_terr_group_rec.last_UPDATE_DATE;
5028              		      l_terr_values_tbl(k).CREATED_BY  := p_terr_group_rec.CREATED_BY;
5029              		      l_terr_values_tbl(k).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
5030              		      l_terr_values_tbl(k).LAST_UPDATE_LOGIN:= p_terr_group_rec.last_UPDATE_LOGIN;
5031              		      l_terr_values_tbl(k).TERR_QUAL_ID :=l_terr_qual_id ;
5032              		      l_terr_values_tbl(k).INCLUDE_FLAG :=NULL;
5033              		      l_terr_values_tbl(k).COMPARISON_OPERATOR :='=';
5034              		      l_terr_values_tbl(k).LOW_VALUE_CHAR:= null;
5035              		      l_terr_values_tbl(k).HIGH_VALUE_CHAR:=null;
5036              		      l_terr_values_tbl(k).LOW_VALUE_NUMBER :=null;
5037              		      l_terr_values_tbl(k).HIGH_VALUE_NUMBER :=null;
5038              		      l_terr_values_tbl(k).VALUE_SET :=NULL;
5039              		      l_terr_values_tbl(k).INTEREST_TYPE_ID := qval.interest_type_id;
5040              		      l_terr_values_tbl(k).PRIMARY_INTEREST_CODE_ID:=null;
5041              		      l_terr_values_tbl(k).SECONDARY_INTEREST_CODE_ID:=null;
5042              		      l_terr_values_tbl(k).CURRENCY_CODE :=null;
5043              		      l_terr_values_tbl(k).ORG_ID :=p_ORG_ID;
5044              		      l_terr_values_tbl(k).ID_USED_FLAG :='N';
5045              		      l_terr_values_tbl(k).LOW_VALUE_CHAR_ID  :=null;
5046 
5047 
5048              		      l_terr_values_tbl(k).qualifier_tbl_index := i;
5049 
5050 		           end loop; /* qval */
5051 
5052                         else
5053                            write_log(2,' OVERLAY and NON_OVERLAY role exist for '||p_terr_group_rec.terr_group_id);
5054                            --l_terr_qualtypeusgs_tbl(1).ORG_ID:=p_ORG_ID;
5055                         end if;
5056 
5057                  end loop; /* acc_type */
5058 
5059                  l_init_msg_list :=FND_API.G_TRUE;
5060 
5061                  jtf_territory_pvt.create_territory (
5062                    p_api_version_number         => l_api_version_number,
5063                    p_init_msg_list              => l_init_msg_list,
5064                    p_commit                     => l_commit,
5065                    p_validation_level           => fnd_api.g_valid_level_NONE,
5066                    x_return_status              => x_return_status,
5067                    x_msg_count                  => x_msg_count,
5068                    x_msg_data                   => x_msg_data,
5069                    p_terr_all_rec               => l_terr_all_rec,
5070                    p_terr_usgs_tbl              => l_terr_usgs_tbl,
5071                    p_terr_qualtypeusgs_tbl      => l_terr_qualtypeusgs_tbl,
5072                    p_terr_qual_tbl              => l_terr_qual_tbl,
5073                    p_terr_values_tbl            => l_terr_values_tbl,
5074                    x_terr_id                    => x_terr_id,
5075                    x_terr_usgs_out_tbl          => x_terr_usgs_out_tbl,
5076                    x_terr_qualtypeusgs_out_tbl  => x_terr_qualtypeusgs_out_tbl,
5077                    x_terr_qual_out_tbl          => x_terr_qual_out_tbl,
5078                    x_terr_values_out_tbl        => x_terr_values_out_tbl
5079                  );
5080 
5081                  if (x_return_status = 'S')  then
5082 
5083                  UPDATE JTF_TERR_ALL
5084                   set TERR_GROUP_FLAG = 'Y'
5085                     , TERR_GROUP_ID = p_terr_group_rec.TERR_GROUP_ID
5086                      where terr_id = x_terr_id;
5087 
5088 
5089                      write_log(2,' OVERLAY PI Territory Created = '||l_terr_all_rec.NAME);
5090 
5091                  else
5092                      x_msg_data :=  fnd_msg_pub.get(1, fnd_api.g_false);
5093                      write_log(2,x_msg_data);
5094                      write_log(2, 'Failed in OVERLAY PI Territory Creation for p_terr_group_rec.ACCOUNT_ID#');
5095 
5096     	         end if;  /* x_return_status */
5097 
5098 
5099                  --dbms_output.put_line('pit.role '||pit.role_code);
5100                  i:=0;
5101 
5102              FOR rsc in terr_resource(overlayterr.geo_territory_id, pit.role_code)
5103              loop
5104 
5105                  i:=i+1;
5106 
5107                  SELECT JTF_TERR_RSC_S.nextval
5108                    into l_terr_rsc_id
5109                	   FROM DUAL;
5110 
5111                  l_TerrRsc_Tbl(i).terr_id := x_terr_id;
5112                  l_TerrRsc_Tbl(i).TERR_RSC_ID :=l_terr_rsc_id;
5113                  l_TerrRsc_Tbl(i).LAST_UPDATE_DATE:=p_terr_group_rec.LAST_UPDATE_DATE;
5114                  l_TerrRsc_Tbl(i).LAST_UPDATED_BY:=p_terr_group_rec.LAST_UPDATED_BY;
5115                  l_TerrRsc_Tbl(i).CREATION_DATE:=p_terr_group_rec.CREATION_DATE;
5116          	 l_TerrRsc_Tbl(i).CREATED_BY:=p_terr_group_rec.CREATED_BY;
5117          	 l_TerrRsc_Tbl(i).LAST_UPDATE_LOGIN:=p_terr_group_rec.LAST_UPDATE_LOGIN;
5118          	 --l_TerrRsc_Tbl(i).TERR_ID:=p_terr_group_rec.TERRITORY_ID;
5119          	 l_TerrRsc_Tbl(i).RESOURCE_ID:=rsc.resource_id;
5120          	 l_TerrRsc_Tbl(i).RESOURCE_TYPE:=rsc.rsc_resource_type;
5121          	 l_TerrRsc_Tbl(i).ROLE:=pit.role_code;
5122                  --l_TerrRsc_Tbl(i).ROLE:=l_role;
5123          	 l_TerrRsc_Tbl(i).PRIMARY_CONTACT_FLAG:='N';
5124          	 l_TerrRsc_Tbl(i).START_DATE_ACTIVE:=p_terr_group_rec.active_from_date ;
5125          	 l_TerrRsc_Tbl(i).END_DATE_ACTIVE:=p_terr_group_rec.active_to_date ;
5126          	 l_TerrRsc_Tbl(i).ORG_ID:=p_ORG_ID;
5127          	 l_TerrRsc_Tbl(i).FULL_ACCESS_FLAG:='Y';
5128          	 l_TerrRsc_Tbl(i).GROUP_ID:=rsc.rsc_group_id;
5129 
5130 
5131 
5132                  a := 0;
5133 
5134                  for rsc_acc in role_access(p_terr_group_rec.terr_group_id,pit.role_code) loop
5135 
5136 		     if rsc_acc.access_type= 'OPPORTUNITY' then
5137 
5138 			        a := a+1;
5139 
5140                                 SELECT   JTF_TERR_RSC_ACCESS_S.nextval
5141                     	           into l_terr_rsc_access_id
5142                                 FROM DUAL;
5143 
5144                     	        l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
5145                             	l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
5146                             	l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
5147                             	l_TerrRsc_Access_Tbl(a).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
5148              	        	l_TerrRsc_Access_Tbl(a).CREATED_BY := p_terr_group_rec.CREATED_BY;
5149              	        	l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
5150              		        l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
5151              		        l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'OPPOR';
5152              		        l_TerrRsc_Access_Tbl(a).ORG_ID:= p_ORG_ID;
5153              		        l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
5154 
5155                         elsif rsc_acc.access_type= 'LEAD' then
5156 
5157 			        a := a+1;
5158 
5159                                 SELECT   JTF_TERR_RSC_ACCESS_S.nextval
5160                     	           into l_terr_rsc_access_id
5161                                 FROM DUAL;
5162 
5163                     		l_TerrRsc_Access_Tbl(a).TERR_RSC_ACCESS_ID:= l_terr_rsc_access_id;
5164                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATE_DATE:= p_terr_group_rec.LAST_UPDATE_DATE ;
5165                     		l_TerrRsc_Access_Tbl(a).LAST_UPDATED_BY:= p_terr_group_rec.LAST_UPDATED_BY;
5166                     		l_TerrRsc_Access_Tbl(a).CREATION_DATE:= p_terr_group_rec.CREATION_DATE;
5167              		        l_TerrRsc_Access_Tbl(a).CREATED_BY := p_terr_group_rec.CREATED_BY;
5168              		        l_TerrRsc_Access_Tbl(a).LAST_UPDATE_LOGIN:= p_terr_group_rec.LAST_UPDATE_LOGIN;
5169              		        l_TerrRsc_Access_Tbl(a).TERR_RSC_ID:= l_terr_rsc_id ;
5170              		        l_TerrRsc_Access_Tbl(a).ACCESS_TYPE:= 'LEAD';
5171              		        l_TerrRsc_Access_Tbl(a).ORG_ID:= p_ORG_ID;
5172              		        l_TerrRsc_Access_Tbl(a).qualifier_tbl_index:= i;
5173                      end if;
5174 
5175                     end loop; /* rsc_acc in role_access */
5176 
5177                  end loop; /* rsc in resource_grp */
5178 
5179                     l_init_msg_list :=FND_API.G_TRUE;
5180 
5181                     jtf_territory_resource_pvt.create_terrresource (
5182                        p_api_version_number      => l_Api_Version_Number,
5183                        p_init_msg_list           => l_Init_Msg_List,
5184                        p_commit                  => l_Commit,
5185                        p_validation_level        => fnd_api.g_valid_level_NONE,
5186                        x_return_status           => x_Return_Status,
5187                        x_msg_count               => x_Msg_Count,
5188                        x_msg_data                => x_msg_data,
5189                        p_terrrsc_tbl             => l_TerrRsc_tbl,
5190                        p_terrrsc_access_tbl      => l_terrRsc_access_tbl,
5191                        x_terrrsc_out_tbl         => x_TerrRsc_Out_Tbl,
5192                        x_terrrsc_access_out_tbl  => x_TerrRsc_Access_Out_Tbl
5193                     );
5194 
5195                     if x_Return_Status='S' then
5196                        write_log(2,'Resource created for Product Interest OVERLAY Territory '||
5197                                                        l_terr_all_rec.NAME);
5198                     else
5199                        write_log(2,'Failed in Resource creation for Product Interest OVERLAY Territory# '||
5200 					               x_terr_id);
5201                        write_log(2,'Message_data '|| x_msg_data);
5202                     end if;
5203 
5204 
5205 
5206               end loop;  /* pit */
5207 
5208            else
5209               x_msg_data :=  fnd_msg_pub.get(1, fnd_api.g_false);
5210               write_log(2,x_msg_data);
5211               write_log(2,'Failed in OVERLAY Territory Creation for Territory Group: ' ||
5212                   p_terr_group_rec.terr_group_id || ' : ' ||
5213                   p_terr_group_rec.terr_group_name );
5214            end if; /* if (x_return_status = 'S' */
5215 
5216          end loop; /* overlayterr in get_OVLY_geographies */
5217 	 /***************************************************************/
5218          /* (8) END: CREATE OVERLAY TERRITORIES FOR TERRITORY GROUP     */
5219 	 /*     USING DUNS# QUALIFIER                                   */
5220          /***************************************************************/
5221 
5222 
5223      end if; /* l_pi_count*/
5224 
5225 
5226   EXCEPTION
5227    when FND_API.G_EXC_ERROR then
5228      -- JTF_TTY_WORKFLOW_POP_BIN_PVT.print_log (' Error in Synchronizing the SUMM table' || SQLERRM );
5229      RETURN;
5230    when FND_API.G_EXC_UNEXPECTED_ERROR then
5231      -- JTF_TTY_WORKFLOW_POP_BIN_PVT.print_log (' Error in Synchronizing the SUMM table' || SQLERRM );
5232      RETURN;
5233    when others then
5234     -- JTF_TTY_WORKFLOW_POP_BIN_PVT.print_log (' Error in Synchronizing the SUMM table' || SQLERRM );
5235      RETURN;
5236 
5237 END create_geography_territory;
5238 
5239 
5240 END JTF_TTY_NA_GEO_TERR_PVT;