[Home] [Help]
PACKAGE BODY: APPS.JTF_TTY_WEBADI_NADOC_PKG
Source
1 PACKAGE BODY Jtf_Tty_Webadi_Nadoc_Pkg AS
2 /* $Header: jtfintfb.pls 120.6.12000000.2 2007/06/27 08:32:56 sseshaiy ship $ */
3 -- ===========================================================================+
4 -- | Copyright (c) 2003 Oracle Corporation |
5 -- | Redwood Shores, California, USA |
6 -- | All rights reserved. |
7 -- +===========================================================================
8 -- Start of Comments
9 -- ---------------------------------------------------
10 -- PURPOSE
11 --
12 -- This package is used to return a list of column in order of selectivity.
13 -- And create indices on columns in order of input
14 --
15 --
16 -- Procedures:
17 -- (see below for specification)
18 --
19 -- This package is publicly available for use
20 --
21 -- HISTORY
22 -- 05/02/2002 SHLI Created
23 -- 14/03/2004 SP Modified for bug 3334142.
24 --
25 -- End of Comments
26 --
27 -- *******************************************************
28 -- Start of Comments
29 -- *******************************************************
30
31 PROCEDURE POPULATE_INTERFACE( P_CALLFROM IN VARCHAR2,
32 P_SEARCHTYPE IN VARCHAR2,
33 P_SEARCHVALUE IN VARCHAR2,
34 P_USERID IN INTEGER,
35 P_GRPID IN NUMBER,
36 P_GRPNAME IN VARCHAR2,
37 P_SITE_TYPE IN VARCHAR2,
38 P_SICCODE IN VARCHAR2,
39 P_SITE_DUNS IN VARCHAR2,
40 P_NAMED_ACCOUNT IN VARCHAR2,
41 P_CITY IN VARCHAR2,
42 P_STATE IN VARCHAR2,
43 P_PROVINCE IN VARCHAR2,
44 P_POSTAL_CODE_FROM IN VARCHAR2,
45 P_POSTAL_CODE_TO IN VARCHAR2,
46 P_COUNTRY IN VARCHAR2,
47 P_DU_DUNS IN VARCHAR2,
48 P_DU_NAME IN VARCHAR2,
49 P_GU_DUNS IN VARCHAR2,
50 P_GU_NAME IN VARCHAR2,
51 P_SALESPERSON IN NUMBER,
52 P_SALES_GROUP IN NUMBER,
53 P_SALES_ROLE IN VARCHAR2,
54 P_ASSIGNED_STATUS IN VARCHAR2,
55 P_IDENTADDRFLAG IN VARCHAR2,
56 P_ISADMINFLAG IN VARCHAR2,
57 X_SEQ OUT NOCOPY VARCHAR2) IS
58
59 PARAM_ARRAY VARRAY_TYPE:=VARRAY_TYPE(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
60
61 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
62
63 /*
64 RESOURCE_NAME VARRAY_TYPE:=VARRAY_TYPE(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
65
66 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
67 GROUP_NAME VARRAY_TYPE:=VARRAY_TYPE(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
68
69 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
70 ROLE_NAME VARRAY_TYPE:=VARRAY_TYPE(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
71
72 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
73 COL_ROLE VARRAY_TYPE:=VARRAY_TYPE(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
74
75 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
76 RESOURCE_ID NARRAY_TYPE:=NARRAY_TYPE(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
77 L_GROUP_ID NARRAY_TYPE:=NARRAY_TYPE(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
78 ROLE_CODE VARRAY_TYPE:=VARRAY_TYPE(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,
79
80 null,null,null,null,null,null,null,null,null,null,null,null,null,null,null);
81 COL_RSC NARRAY_TYPE:=NARRAY_TYPE(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
82 COL_USED NARRAY_TYPE:=NARRAY_TYPE(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
83 */
84
85 RESOURCE_NAME VARRAY_TYPE:=VARRAY_TYPE(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
86 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
87 GROUP_NAME VARRAY_TYPE:=VARRAY_TYPE(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
88 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
89 ROLE_NAME VARRAY_TYPE:=VARRAY_TYPE(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
90 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
91 COL_ROLE VARRAY_TYPE:=VARRAY_TYPE(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
92 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
93 COL_USED NARRAY_TYPE:=NARRAY_TYPE(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
94
95 salesMgr NUMBER;
96 SEQ NUMBER;
97 ID NUMBER;
98 NAMED_ACCOUNT VARCHAR2(360);
99 L_PARTY_ID VARCHAR2(30);
100 SITE_TYPE VARCHAR2(80);
101 DUNS VARCHAR2(30);
102 TRADE_NAME VARCHAR2(240);
103 GU_DUNS VARCHAR2(360);
104 GU_NAME VARCHAR2(360);
105 --DOME_ULTIMATE_DUNS VARCHAR2(360);
106 --DOME_ULTIMATE_NAME VARCHAR2(360);
107 CITY VARCHAR2(60);
108 STATE VARCHAR2(60);
109 POSTAL_CODE VARCHAR2(60);
110 TERRITORY_GROUP VARCHAR2(150);
111 NA_ID NUMBER;
112 TERR_GRP_ACCT_ID NUMBER;
113 CREATED_BY NUMBER(15);
114 CREATION_DATE DATE;
115 LAST_UPDATED_BY NUMBER(15);
116 LAST_UPDATE_DATE DATE;
117 LAST_UPDATE_LOGIN NUMBER(15);
118 l_na_rsc_stat VARCHAR2(6000);
119 l_na_query VARCHAR2(6000);
120 l_var1 VARCHAR2(200);
121 l_var2 VARCHAR2(200);
122 curr_date VARCHAR2(100);
123 i NUMBER;
124 j NUMBER;
125 k NUMBER;
126 numParam NUMBER;
127 m NUMBER;
128 num NUMBER;
129 nastat INTEGER;
130 na INTEGER;
131 ignore INTEGER;
132 namedacct INTEGER;
133 useExistsClause VARCHAR2(10);
134 l_identAddrFlag VARCHAR2(5);
135
136 P_NAMED_ACCOUNT_STR VARCHAR2(361);
137 P_CITY_STR VARCHAR2(61);
138 P_POSTAL_CODE_FROM_STR VARCHAR2(61);
139 P_POSTAL_CODE_TO_STR VARCHAR2(61);
140 P_DU_NAME_STR VARCHAR2(361);
141 P_GU_NAME_STR VARCHAR2(361);
142 l_sql VARCHAR2(5000);
143
144 TYPE csr_type IS REF CURSOR;
145 l_get_statistic_csr csr_type;
146 TYPE get_stat_rec_type IS RECORD
147 (role_code varchar(30),
148 num number);
149 TYPE get_stat_tbl_type is table of get_stat_rec_type index by binary_integer;
150
151 l_get_stat_tbl get_stat_tbl_type;
152
153 CURSOR getSalesperson( P_NAID IN NUMBER ) IS
154 SELECT rsc.resource_name resource_name
155 , rol.role_name role_name
156 , grp.group_name group_name
157 , rsc.resource_id resource_id
158 , grp.group_id group_id
159 , rol.role_code role_code
160 FROM jtf_rs_resource_extns_vl rsc
161 , jtf_rs_groups_vl grp
162 , jtf_rs_roles_vl rol
163 , jtf_tty_named_acct_rsc narsc
164 , jtf_tty_terr_grp_accts ga
165 -- , jtf_tty_named_accts na
166 WHERE rsc.resource_id = narsc.resource_id
167 AND grp.group_id = narsc.rsc_group_id
168 AND rol.role_code = narsc.rsc_role_code
169 AND narsc.terr_group_account_id = ga.terr_group_account_id
170 AND narsc.rsc_resource_type = 'RS_EMPLOYEE'
171 -- AND ga.named_account_id = na.named_account_id
172 AND ga.named_account_id = P_NAID;
173 -- ??? ORDER BY UPPER(rol.role_name), rsc.resource_name;
174
175
176 CURSOR getNAFromInterface IS
177 SELECT jtf_tty_webadi_int_id, terr_grp_acct_id
178 FROM jtf_tty_webadi_interface--JTF_TTY_WEBADI_INT_GT --
179 WHERE user_id=p_userid;
180
181
182 BEGIN
183 ---delete from tmp;
184 ---insert into tmp values ( to_char(sysdate,'HH,MI:SS'), '1. start'); commit;
185
186 P_NAMED_ACCOUNT_STR := NULL;
187 P_CITY_STR := NULL;
188 P_DU_NAME_STR := NULL;
189 P_GU_NAME_STR := NULL;
190
191 BEGIN
192
193
194
195
196 --l_t1 := TO_CHAR(SYSDATE, 'mm/dd/yyyy hh24:mi:ss');
197 --dbms_output.put_line('PREVIOUS DOWNLOAD CLEANUP = '|| l_t1 );
198
199 SELECT jtf_tty_interface_s.NEXTVAL INTO SEQ
200 FROM dual;
201
202 --delete from JTF_TTY_WEBADI_INT_GT ;
203 -- remove existing old data for this userid
204 DELETE /*+ INDEX(jtf_tty_webadi_intf_n1) */
205 FROM JTF_TTY_WEBADI_INTERFACE tty
206 WHERE tty.user_id = TO_NUMBER(p_userid);
207 -- AND tty.user_sequence <> seq;
208
209 --dbms_output.put_line('CLEANUP ROW COUNT = '|| TO_CHAR(SQL%ROWCOUNT) );
210
211 -- JDOCHERT: 11/01/03
212 -- Very important commit as it will
213 -- prevent locking of JTF_TTY_WEBADI_INTERFACE
214 -- table should the download fail
215 --
216 COMMIT;
217
218 EXCEPTION
219 WHEN OTHERS THEN
220 NULL;
221
222 END;
223
224 -- and sysdate - creation_date >2;
225 --select count(*) into id from JTF_TTY_WEBADI_INTERFACE;
226 --if id=0 then id:=1;
227 --else select max(id)+1 into id from JTF_TTY_WEBADI_INTERFACE;
228 --end if;
229
230 BEGIN
231
232 SELECT resource_id INTO salesMgr FROM jtf_rs_resource_extns
233 WHERE user_id = TO_NUMBER(p_userid);
234
235 EXCEPTION
236 WHEN NO_DATA_FOUND THEN
237 x_seq := '-100';
238 RETURN;
239 END;
240
241 /* search by
242
243 2 Unmapped Named Account
244 3 Named Account
245 4 Site Type
246 5 Salesperson
247 6 City
248 7 State
249 8 Postal Code
250 9 Country
251 91 Territory Group
252 */
253 --l_t1 := TO_CHAR(SYSDATE, 'mm/dd/yyyy hh24:mi:ss');
254 --dbms_output.put_line('QUERY BUILD = '|| l_t1 );
255 curr_date := TO_CHAR(SYSDATE);
256
257 IF p_callfrom = 'S' /* simple search */ THEN
258
259 --DBMS_OUTPUT.PUT_LINE ('p_userid: '||P_USERID ||', SEQ: ' ||SEQ||', CURR_DATE: '||CURR_DATE);
260 l_na_query :=
261 'INSERT into JTF_TTY_WEBADI_INTERFACE ' || --JTF_TTY_WEBADI_INT_GT
262 ' ( USER_SEQUENCE,USER_ID,TERR_GRP_ACCT_ID,JTF_TTY_WEBADI_INT_ID,NAMED_ACCOUNT,SITE_TYPE,TRADE_NAME,DUNS, '||
263 ' GU_DUNS,GU_NAME,CITY,STATE,POSTAL_CODE,TERRITORY_GROUP, ' ||
264 ' CREATED_BY,CREATION_DATE,LAST_UPDATED_BY,LAST_UPDATE_DATE ' ||
265 ' ) ' ||
266 ' SELECT ' ||
267 ' :SEQ USER_SEQUENCE,'||
268 ' :P_USERID USER_ID,'|| ' GAID, NAID, NAMED_ACCOUNT,SITE_TYPE,TRADE_NAME, SITE_DUNS, '||
269 ' GU_DUNS,GU_NAME,CITY,STATE,POSTAL_CODE, GRPNAME, ' ||
270 ' :P_USERID CREATED_BY, :curr_date CREATION_DATE,' ||
271 ' :P_USERID LAST_UPDATED_BY, :curr_date LAST_UPDATE_DATE '||
272 ' FROM (';
273
274 /* main select */
275 IF P_SEARCHTYPE = '91' --Territory Group
276 AND P_SEARCHVALUE IS NOT NULL AND trim(P_SEARCHVALUE) IS NOT NULL AND SUBSTR(trim(P_SEARCHVALUE),1,1)<> '%' THEN
277
278 l_var1 := UPPER(trim(P_SEARCHVALUE)) || '%';
279 l_na_query :=l_na_query ||
280 ' select /*+ ORDERED */ ' ||
281 ' hzp.party_name named_account, ' ||
282 ' lkp.meaning site_type, ' ||
283 ' hzp.known_as trade_name, ' ||
284 ' hzp.duns_number_c site_duns, ' ||
285 ' GU.GU_NAME gu_name, ' ||
286 ' GU.GU_DUNS gu_duns, ' ||
287 ' hzl.city city, ' ||
288 ' hzl.state state, ' ||
289 ' hzl.postal_code postal_code, ' ||
290 ' ttygrp.terr_group_name grpname, ' ||
291 ' ga.terr_group_account_id gaid, '||
292 ' ga.terr_group_id tgid, ' ||
293 ' na.named_account_id naid ' ||
294 ' from jtf_tty_terr_grp_accts ga ' ||
295 ' ,jtf_tty_terr_groups ttygrp ' ||
296 ' ,jtf_tty_named_accts na ' ||
297 ' ,fnd_lookups lkp ' ||
298 ' ,hz_parties hzp ' ||
299 ' ,hz_party_sites hzps ' ||
300 ' ,hz_locations hzl ' ||
301 ' , ( /* Global Ultimate */ ' ||
302 ' SELECT min(gup.party_name) GU_NAME ' ||
303 ' , min(gup.duns_number_c) GU_DUNS ' ||
304 ' , hzr.object_id GU_OBJECT_ID ' ||
305 ' FROM hz_parties gup ' ||
306 ' , hz_relationships hzr ' ||
307 ' WHERE hzr.subject_table_name = ''HZ_PARTIES'' ' ||
308 ' AND hzr.object_table_name = ''HZ_PARTIES'' ' ||
309 ' AND hzr.relationship_type = ''GLOBAL_ULTIMATE'' ' ||
310 ' AND hzr.relationship_code = ''GLOBAL_ULTIMATE_OF'' ' ||
311 ' AND hzr.status = ''A'' ' ||
312 ' AND hzr.subject_id = gup.party_id ' ||
313 ' AND gup.status = ''A'' ' ||
314 ' group by hzr.object_id ) GU ' ||
315 ' where ' ||
316 ' ga.terr_group_account_id IN ' ||
317 ' ( ' ||
321 ' where current_user_id = :P_USERID ' ||
318 ' select /*+ NO_MERGE */ narsc.terr_group_account_id ' ||
319 ' from jtf_tty_named_acct_rsc narsc, ' ||
320 ' jtf_tty_srch_my_resources_v repdn ' ||
322 ' and narsc.rsc_group_id = repdn.group_id ' ||
323 ' and narsc.resource_id = repdn.resource_id ' ||
324 ' ) ' ||
325 ' and ttygrp.terr_group_id = ga.terr_group_id ' ||
326 ' and ttygrp.active_from_date <= sysdate ' ||
327 ' and ( ttygrp.active_to_date is null or ' ||
328 ' ttygrp.active_to_date >= sysdate) ' ||
329 ' and upper(ttygrp.terr_group_name) like :P_SEARCHSTR ' ||
330 ' and na.named_account_id = ga.named_account_id ' ||
331 ' AND na.site_type_code = lkp.lookup_code ' ||
332 ' and lkp.lookup_type = ''JTF_TTY_SITE_TYPE_CODE'' ' ||
333 ' and hzp.party_id = na.party_id ' ||
334 ' and hzps.party_id = na.party_id ' ||
335 ' and hzps.party_site_id = na.party_site_id ' ||
336 ' and hzps.location_id = hzl.location_id ' ||
337 ' AND GU.GU_OBJECT_ID (+) = hzp.party_id ' ||
338 ' ) '; -- done
339
340 m :=2; -- 2 bind variable
341
342 ELSE /* search by null or search by other(than TG) */
343 l_na_query := l_na_query ||
344 ' select * from ( ' ||
345 ' select hzp.party_name named_account, ' ||
346 ' lkp.meaning site_type, ' ||
347 ' hzp.known_as trade_name, ' ||
348 ' hzp.duns_number_c site_duns, ' ||
349 ' GU.GU_NAME gu_name, ' ||
350 ' GU.GU_DUNS gu_duns, ' ||
351 ' hzl.city city, ' ||
352 ' hzl.state state, ' ||
353 ' hzl.postal_code postal_code, ' ||
354 ' hzl.country country, ' ||
355 ' ttygrp.terr_group_name grpname, ' ||
356 ' ga.terr_group_account_id gaid, ' ||
357 ' ga.terr_group_id tgid, ' ||
358 ' lkp.lookup_code sitetypecode, ' ||
359 ' hzp.province, ' ||
360 ' na.named_account_id naid ' ||
361 ' from hz_parties hzp, ' ||
362 ' hz_party_sites hzps, ' ||
363 ' hz_locations hzl, ' ||
364 ' jtf_tty_named_accts na, ' ||
365 ' jtf_tty_terr_grp_accts ga, ' ||
366 ' fnd_lookups lkp, ' ||
367 ' jtf_tty_terr_groups ttygrp ' ||
368 ' , ( /* Global Ultimate */ ' ||
369 ' SELECT min(gup.party_name) GU_NAME ' ||
370 ' , min(gup.duns_number_c) GU_DUNS ' ||
371 ' , hzr.object_id GU_OBJECT_ID ' ||
372 ' FROM hz_parties gup ' ||
373 ' , hz_relationships hzr ' ||
374 ' WHERE hzr.subject_table_name = ''HZ_PARTIES'' ' ||
375 ' AND hzr.object_table_name = ''HZ_PARTIES'' ' ||
376 ' AND hzr.relationship_type = ''GLOBAL_ULTIMATE'' ' ||
377 ' AND hzr.relationship_code = ''GLOBAL_ULTIMATE_OF'' ' ||
378 ' AND hzr.status = ''A'' ' ||
379 ' AND hzr.subject_id = gup.party_id ' ||
380 ' AND gup.status = ''A'' ' ||
381 ' group by hzr.object_id ) GU ' ||
382 ' where hzp.party_id = na.party_id ' ||
383 ' and hzps.party_id = na.party_id ' ||
384 ' and hzps.party_site_id = na.party_site_id ' ||
385 ' and hzps.location_id = hzl.location_id ' ||
386 ' and na.site_type_code = lkp.lookup_code ' ||
387 ' and lkp.lookup_type = ''JTF_TTY_SITE_TYPE_CODE'' ' ||
388 ' and na.named_account_id = ga.named_account_id ' ||
389 ' and ttygrp.terr_group_id = ga.terr_group_id ' ||
390 ' and ttygrp.active_from_date <= sysdate ' ||
391 ' and ( ttygrp.active_to_date is null ' ||
392 ' or ' ||
393 ' ttygrp.active_to_date >= sysdate ' ||
394 ' ) ' ||
395 ' AND GU.GU_OBJECT_ID (+) = hzp.party_id ' ||
396 ' ) '; -- not done
397
398
399 IF P_SEARCHVALUE IS NULL OR trim(P_SEARCHVALUE) IS NULL OR SUBSTR(trim(P_SEARCHVALUE),1,1) = '%' THEN
400
401 l_na_query := l_na_query ||
402 ' where gaid IN ( select /*+ NO_MERGE */ narsc.terr_group_account_id ' ||
403 ' from jtf_tty_named_acct_rsc narsc, '||
404 ' jtf_tty_srch_my_resources_v repdn '||
405 ' where narsc.resource_id = repdn.resource_id '||
406 ' and narsc.rsc_group_id = repdn.group_id '||
407 ' and repdn.current_user_id = :P_USERID ) ' ||
408 ' )';
409 m:=1; -- one bind variable so far
410
411 ELSE
412 l_na_query := l_na_query ||
413 ' where EXISTS ( select narsc.terr_group_account_id '||
414 ' from jtf_tty_named_acct_rsc narsc, '||
415 ' jtf_tty_srch_my_resources_v repdn '||
419 ' and repdn.current_user_id = :P_USERID ) ' ||
416 ' where narsc.resource_id = repdn.resource_id '||
417 ' and narsc.rsc_group_id = repdn.group_id '||
418 ' and narsc.terr_group_account_id = gaid '||
420 ' and ';
421
422 IF P_SEARCHTYPE = '8' THEN l_var1 := trim(P_SEARCHVALUE) || '%'; -- no index
423 ELSE l_var1 := UPPER(trim(P_SEARCHVALUE)) || '%';
424 END IF;
425
426 IF P_SEARCHTYPE = '1' THEN NULL;
427 ELSIF P_SEARCHTYPE = '3' --named account
428 THEN l_na_query := l_na_query || ' upper(named_account) like :P_SEARCHSTR';
429 ELSIF P_SEARCHTYPE = '4' --site type
430 THEN l_na_query := l_na_query || ' upper(site_type) like :P_SEARCHSTR';
431 ELSIF P_SEARCHTYPE = '6' --city
432 THEN l_na_query := l_na_query || ' upper(city) like :P_SEARCHSTR';
433 ELSIF P_SEARCHTYPE = '7' --state
434 THEN l_na_query := l_na_query || ' upper(state) like :P_SEARCHSTR';
435 ELSIF P_SEARCHTYPE = '8' --postal_code
436 -- then l_na_query := l_na_query || ' upper(postal_code) like :P_SEARCHSTR';
437 -- no index
438 THEN l_na_query := l_na_query || ' postal_code like :P_SEARCHSTR';
439 END IF;
440 l_na_query := l_na_query || ')'; -- close
441 m:=2; -- 2 bind variable
442 END IF; -- P_SEARCHVALUE is null or ...
443
444 END IF; -- for P_SEARCHTYPE = '91'
445
446
447 ELSE /* advanced search */
448
449 l_na_query:='DECLARE ' ||
450 ' P_USERID INTEGER := :P_USERID; '||
451 ' P_GRPID NUMBER := :P_GRPID ; '||
452 ' P_SITE_TYPE VARCHAR2(100) := :P_SITE_TYPE; '||
453 ' P_SICCODE VARCHAR2(100) := :P_SICCODE; '||
454 ' P_SITE_DUNS VARCHAR2(100) := :P_SITE_DUNS; '||
455 ' P_NAMED_ACCOUNT VARCHAR2(360) := :P_NAMED_ACCOUNT; '||
456 ' P_CITY VARCHAR2(100) := :P_CITY; '||
457 ' P_STATE VARCHAR2(100) := :P_STATE; '||
458 ' P_PROVINCE VARCHAR2(100) := :P_PROVINCE; '||
459 ' P_POSTAL_CODE_FROM VARCHAR2(100) := :P_POSTAL_CODE_FROM; '||
460 ' P_POSTAL_CODE_TO VARCHAR2(100) := :P_POSTAL_CODE_TO; '||
461 ' P_COUNTRY VARCHAR2(100) := :P_COUNTRY; '||
462 ' P_DU_DUNS VARCHAR2(100) := :P_DU_DUNS; '||
463 ' P_DU_NAME VARCHAR2(360) := :P_DU_NAME; '||
464 ' P_GU_DUNS VARCHAR2(100) := :P_GU_DUNS; '||
465 ' P_GU_NAME VARCHAR2(360) := :P_GU_NAME; '||
466 ' P_SALESPERSON NUMBER := :P_SALESPERSON; '||
467 ' P_SALES_GROUP NUMBER := :P_SALES_GROUP; '||
468 ' P_SALES_ROLE VARCHAR2(100) := :P_SALES_ROLE; '||
469 ' P_ASSIGNED_STATUS VARCHAR2(100) := :P_ASSIGNED_STATUS; ' ||
470 ' L_SEQ NUMBER := :SEQ; ' ||
471 ' L_CURR_DATE DATE := :CURR_DATE; '||
472
473 ' BEGIN '||
474
475 ' INSERT into JTF_TTY_WEBADI_INTERFACE ' || --JTF_TTY_WEBADI_INTERFACE '||
476 ' ( USER_SEQUENCE,USER_ID,TERR_GRP_ACCT_ID,JTF_TTY_WEBADI_INT_ID,NAMED_ACCOUNT,SITE_TYPE,TRADE_NAME,DUNS, '||
477 ' GU_DUNS,GU_NAME,CITY,STATE,POSTAL_CODE,TERRITORY_GROUP, ' ||
478 ' CREATED_BY,CREATION_DATE,LAST_UPDATED_BY,LAST_UPDATE_DATE ' ||
479 ' ) ' ||
480 ' SELECT ' ||
481 ' L_SEQ USER_SEQUENCE,'||
482 ' P_USERID USER_ID,'|| ' GAID, NAID, NAMED_ACCOUNT,SITE_TYPE,TRADE_NAME, SITE_DUNS, '||
483 ' GU_DUNS,GU_NAME,CITY,STATE,POSTAL_CODE, GRPNAME, ' ||
484 ' P_USERID CREATED_BY, L_CURR_DATE CREATION_DATE,' ||
485 ' P_USERID LAST_UPDATED_BY, L_CURR_DATE LAST_UPDATE_DATE '||
486 ' FROM ( ' ||
487 ' select '||
488 ' ga.terr_group_id tgid, ' ||
489 ' na.named_account_id naid, ' ||
490 ' hzp.party_name named_account, ' ||
491 ' hzp.party_id party_id,'||
492 ' lkp.meaning site_type, ' ||
493 ' hzp.known_as trade_name, ' ||
494 ' hzp.duns_number_c site_duns, ' ||
495 ' GU.GU_DUNS gu_duns, ' ||
496 ' GU.GU_NAME gu_name, ' ||
497 ' hzl.city city, ' ||
498 ' hzl.state state, ' ||
499 ' hzl.postal_code postal_code, ' ||
500 ' hzl.country country, ' ||
501 ' ttygrp.terr_group_name grpname, ' ||
502 ' ga.terr_group_account_id gaid,' ||
503 ' lkp.lookup_code sitetypecode, '||
504 ' hzp.sic_code siccode, ' ||
505 ' hzp.province privince, '||
506 ' decode(hzps.identifying_address_flag, ''Y'', ''Y'', ''N'' ) identifying_addr_flag ' ||
507 ' from hz_parties hzp, ' ||
508 ' hz_locations hzl, ' ||
509 ' hz_party_sites hzps, ' ||
510 ' jtf_tty_named_accts na, ' ||
511 ' jtf_tty_terr_grp_accts ga, ' ||
512 ' fnd_lookups lkp, ' ||
513 ' jtf_tty_terr_groups ttygrp ' ||
514 ' , ( /* Global Ultimate */ ' ||
515 ' SELECT min(gup.party_name) GU_NAME ' ||
516 ' , min(gup.duns_number_c) GU_DUNS ' ||
517 ' , hzr.object_id GU_OBJECT_ID ' ||
518 ' FROM hz_parties gup ' ||
519 ' , hz_relationships hzr ' ||
520 ' WHERE hzr.subject_table_name = ''HZ_PARTIES'' ' ||
521 ' AND hzr.object_table_name = ''HZ_PARTIES'' ' ||
522 ' AND hzr.relationship_type = ''GLOBAL_ULTIMATE'' ' ||
523 ' AND hzr.relationship_code = ''GLOBAL_ULTIMATE_OF'' ' ||
524 ' AND hzr.status = ''A'' ' ||
525 ' AND hzr.subject_id = gup.party_id ' ||
526 ' AND gup.status = ''A'' ' ||
527 ' group by hzr.object_id ) GU ' ||
528 ' where hzp.party_id = na.party_id ' ||
529 ' AND hzps.party_site_id = na.party_site_id ' ||
530 ' AND hzp.party_id = hzps.party_id ' ||
531 ' AND hzps.party_id = na.party_id ' ||
532 ' AND hzps.location_id = hzl.location_id ' ||
533 ' and na.site_type_code = lkp.lookup_code ' ||
534 ' and lkp.lookup_type = ''JTF_TTY_SITE_TYPE_CODE'' ' ||
535 ' and na.named_account_id = ga.named_account_id ' ||
536 ' AND ttygrp.terr_group_id = ga.terr_group_id ' ||
537 ' AND GU.GU_OBJECT_ID (+) = hzp.party_id ' ;
538 /*******************************/
539
540
541 useExistsClause := 'N' ;
542
543 IF P_GRPID IS NOT NULL AND trim(P_GRPID) IS NOT NULL THEN
544 -- if (terrGrpID!=null !"".equals(terrGrpID.trim()))
545 l_na_query := l_na_query || ' and ga.terr_group_id = :P_GRPID ';
546 END IF;
547
548 IF P_CITY IS NOT NULL AND trim(P_CITY) IS NOT NULL THEN
549 -- if (city!=null !"".equals(city.trim()))
550 l_na_query := l_na_query || 'AND upper(hzl.city) like :P_CITY ';
551 useExistsClause := 'Y';
552 P_CITY_STR := UPPER(P_CITY) || '%';
553 END IF;
554
555 IF P_STATE IS NOT NULL AND trim(P_STATE) IS NOT NULL THEN
556 -- if (state!=null !"".equals(state.trim()))
557 l_na_query := l_na_query || 'AND hzl.state = :P_STATE ';
558 END IF;
559
560 IF P_COUNTRY IS NOT NULL AND trim(P_COUNTRY) IS NOT NULL THEN
561 -- if (country!=null !"".equals(country.trim()))
562 l_na_query := l_na_query || 'AND hzl.country = :P_COUNTRY ';
563 END IF;
564
565 IF P_POSTAL_CODE_FROM IS NOT NULL AND trim(P_POSTAL_CODE_FROM) IS NOT NULL
566 AND P_POSTAL_CODE_TO IS NOT NULL AND trim(P_POSTAL_CODE_TO) IS NOT NULL
567 AND P_POSTAL_CODE_FROM = P_POSTAL_CODE_TO THEN
568 --if (postCodeFrom!=null !"".equals(postCodeFrom.trim())
569 -- postCodeTo!=null !"".equals(postCodeTo.trim())
570 -- postCodeFrom.equals(postCodeTo) )
571 l_na_query := l_na_query || 'AND hzl.postal_code = :P_POSTAL_CODE_FROM ';
572 useExistsClause := 'Y' ;
573 ELSIF P_POSTAL_CODE_FROM IS NOT NULL AND trim(P_POSTAL_CODE_FROM) IS NOT NULL
574 AND P_POSTAL_CODE_TO IS NOT NULL AND trim(P_POSTAL_CODE_TO) IS NOT NULL
575 AND P_POSTAL_CODE_FROM <> P_POSTAL_CODE_TO THEN
576 -- (postCodeFrom!=null !"".equals(postCodeFrom.trim())
577 -- postCodeTo!=null !"".equals(postCodeTo.trim())
578 -- !postCodeFrom.equals(postCodeTo))
579 l_na_query := l_na_query || 'AND hzl.postal_code between :P_POSTAL_CODE_FROM and :P_POSTAL_CODE_TO ';
580 useExistsClause := 'N' ;
581 END IF;
582
583 IF P_POSTAL_CODE_FROM IS NOT NULL AND trim(P_POSTAL_CODE_FROM) IS NOT NULL
584 AND (P_POSTAL_CODE_TO IS NULL OR trim(P_POSTAL_CODE_TO) IS NULL) THEN
585 --if (postCodeFrom!=null !"".equals(postCodeFrom.trim())
586 -- (postCodeTo==null || "".equals(postCodeTo.trim())) )
587 l_na_query := l_na_query || 'AND hzl.postal_code = :P_POSTAL_CODE_FROM ';
588 useExistsClause := 'Y';
589 END IF;
590
591 IF (P_POSTAL_CODE_FROM IS NULL OR trim(P_POSTAL_CODE_FROM) IS NULL)
592 AND P_POSTAL_CODE_TO IS NOT NULL AND trim(P_POSTAL_CODE_TO) IS NOT NULL THEN
593 --if ( (postCodeFrom==null || "".equals(postCodeFrom.trim()))
594 -- postCodeTo!=null !"".equals(postCodeTo.trim()) )
595 l_na_query := l_na_query || 'AND hzl.postal_code = :P_POSTAL_CODE_TO ' ;
596 useExistsClause := 'Y' ;
597 END IF;
598
599 IF P_SITE_TYPE IS NOT NULL AND trim(P_SITE_TYPE) IS NOT NULL AND P_SITE_TYPE <> 'ALL' THEN
600 --if (siteType!=null !"".equals(siteType.trim()) !"ALL".equals(siteType))
601 l_na_query := l_na_query || 'AND lkp.lookup_code = :P_SITE_TYPE ';
602 END IF;
603
604 IF P_SICCODE IS NOT NULL AND trim(P_SICCODE) IS NOT NULL THEN
605 -- if (SICCode!=null !"".equals(SICCode.trim()) )
609
606 l_na_query := l_na_query || 'AND hzp.sic_code = :P_SICCODE ' ;
607 useExistsClause := 'Y' ;
608 END IF;
610 IF P_SITE_DUNS IS NOT NULL AND trim(P_SITE_DUNS) IS NOT NULL THEN
611 -- if (siteDUNS!=null !"".equals(siteDUNS.trim()) )
612 l_na_query := l_na_query || 'AND hzp.duns_number_c = :P_SITE_DUNS ' ;
613 useExistsClause := 'Y';
614 END IF;
615
616 IF P_NAMED_ACCOUNT IS NOT NULL AND trim(P_NAMED_ACCOUNT) IS NOT NULL THEN
617 --if (siteBN!=null !"".equals(siteBN.trim()) )
618 l_na_query := l_na_query || 'AND upper(hzp.party_name) like :P_NAMED_ACCOUNT ' ;
619 useExistsClause := 'Y';
620 P_NAMED_ACCOUNT_STR := UPPER(P_NAMED_ACCOUNT) || '%';
621 END IF;
622
623 IF P_PROVINCE IS NOT NULL AND trim(P_PROVINCE) IS NOT NULL THEN
624 -- if (province!=null !"".equals(province.trim()) )
625 l_na_query := l_na_query || 'AND hzp.province = :P_PROVINCE ' ;
626 useExistsClause := 'Y' ;
627 END IF;
628
629 IF (P_DU_DUNS IS NOT NULL AND trim(P_DU_DUNS) IS NOT NULL) OR
630 (P_DU_NAME IS NOT NULL AND trim(P_DU_NAME) IS NOT NULL) THEN
631 -- if (DUBN!=null !"".equals(DUBN.trim()) )
632 -- if (DUDUNS!=null !"".equals(DUDUNS.trim()) )
633 l_na_query := l_na_query ||
634 ' AND hzp.PARTY_ID in ( select hzr.object_id '||
635 ' from hz_parties hzp1, ' ||
636 ' hz_relationships hzr '||
637 ' where hzp1.party_id = hzr.subject_id '||
638 ' and hzr.subject_table_name = ''HZ_PARTIES'' '||
639 ' and hzr.object_table_name = ''HZ_PARTIES'' '||
640 ' and hzr.relationship_type = ''DOMESTIC_ULTIMATE'' '||
641 ' and hzr.relationship_code = ''DOMESTIC_ULTIMATE_OF'' '||
642 ' and hzr.status = ''A'' ';
643 IF P_DU_DUNS IS NOT NULL AND trim(P_DU_DUNS) IS NOT NULL THEN
644 l_na_query := l_na_query || ' and hzp1.duns_number_c = :P_DU_DUNS ';
645 END IF;
646 IF P_DU_NAME IS NOT NULL AND trim(P_DU_NAME) IS NOT NULL THEN
647 l_na_query := l_na_query || ' and upper(hzp1.party_name) like :P_DU_NAME ';
648 P_DU_NAME_STR := UPPER(P_DU_NAME)||'%';
649 END IF;
650 l_na_query := l_na_query || ')';
651 useExistsClause := 'Y';
652 END IF;
653
654 IF P_GU_DUNS IS NOT NULL AND trim(P_GU_DUNS) IS NOT NULL THEN
655 --if (GUDUNS!=null !"".equals(GUDUNS.trim()) )
656 l_na_query := l_na_query || ' and GU.gu_duns = :P_GU_DUNS ';
657 useExistsClause := 'Y' ;
658 END IF;
659
660 IF P_GU_NAME IS NOT NULL AND trim(P_GU_NAME) IS NOT NULL THEN
661 --if (GUBN!=null !"".equals(GUBN.trim()) )
662 l_na_query := l_na_query || ' and upper(GU.gu_name) like :P_GU_NAME ';
663 useExistsClause := 'Y' ;
664 P_GU_NAME_STR := UPPER(P_GU_NAME)||'%';
665 END IF;
666
667 ----BBB
668 IF (P_SALESPERSON IS NOT NULL AND trim(P_SALESPERSON) IS NOT NULL) OR
669 (P_SALES_GROUP IS NOT NULL AND trim(P_SALES_GROUP) IS NOT NULL) OR
670 (P_SALES_ROLE IS NOT NULL AND trim(P_SALES_ROLE ) IS NOT NULL) THEN
671 --if ( (salesperson!=null !"".equals(salesperson.trim())) ||
672 -- (salesGrp !=null !"".equals(salesGrp.trim()) ) ||
673 -- (salesRole !=null !"".equals(salesRole.trim()) ) )
674
675 l_na_query := l_na_query || ' and ';
676 IF trim(P_ASSIGNED_STATUS)='2' THEN
677 l_na_query := l_na_query || ' ga.terr_group_account_id = -9999555 '; --???
678 ELSE ---AAA
679 l_na_query := l_na_query || ' ga.terr_group_account_id in ( ';
680
681 IF P_SALESPERSON IS NOT NULL AND trim(P_SALESPERSON) IS NOT NULL AND
682 P_SALES_GROUP IS NULL AND trim(P_SALES_GROUP) IS NULL AND
683 P_SALES_ROLE IS NULL AND trim(P_SALES_ROLE ) IS NULL THEN
684
685 l_na_query := l_na_query ||
686 ' select /*+ NO_MERGE */ narsc1.terr_group_account_id '||
687 ' from jtf_tty_named_acct_rsc narsc1, '||
688 '( SELECT dir.resource_id, ' ||
689 ' MY_GRPS.group_id , ' ||
690 ' MY_GRPS.CURRENT_USER_ID ' ||
691 ' FROM jtf_rs_group_members grpmemo , ' ||
692 ' jtf_rs_resource_extns dir , ' ||
693 ' ( SELECT /*+ NO_MERGE */ dv.group_id , ' ||
694 ' mrsc.user_id CURRENT_USER_ID ' ||
695 ' FROM jtf_rs_group_usages usg , ' ||
696 'jtf_rs_groups_denorm dv , ' ||
697 'jtf_rs_rep_managers sgh , '||
698 'jtf_rs_resource_extns mrsc , ' ||
699 'jtf_rs_roles_b rol , ' ||
700 'jtf_rs_role_relations rlt ' ||
701 ' WHERE usg.usage = ''SALES'' ' ||
702 ' AND usg.group_id = dv.group_id ' ||
703 ' AND rlt.role_id = rol.role_id ' ||
704 ' AND rlt.role_relate_id = sgh.par_role_relate_id '||
705 ' AND dv.parent_group_id = sgh.group_id ' ||
706 ' AND sgh.resource_id = sgh.parent_resource_id ' ||
710 ' ) MY_GRPS ' ||
707 ' AND (sgh.hierarchy_type IN (''MGR_TO_MGR'') ' ||
708 ' OR rol.role_code = FND_PROFILE.VALUE(''JTF_TTY_NA_PROXY_USER_ROLE'')) ' ||
709 ' AND mrsc.resource_id = sgh.resource_id ' ||
711 ' WHERE grpmemo.resource_id = dir.resource_id ' ||
712 ' AND grpmemo.group_id = MY_GRPS.group_id ' ||
713 ' UNION ALL ' ||
714 ' SELECT dir.resource_id , '||
715 ' grpmemo.group_id , ' ||
716 ' dir.user_id CURRENT_USER_ID ' ||
717 ' FROM jtf_rs_group_members grpmemo , ' ||
718 ' jtf_rs_resource_extns dir , ' ||
719 ' jtf_rs_group_usages usg ' ||
720 ' WHERE usg.usage = ''SALES'' ' ||
721 ' AND grpmemo.resource_id = dir.resource_id ' ||
722 ' AND grpmemo.group_id = usg.group_id ' ||
723 ' ) repdn1 ' ||
724 ' where narsc1.resource_id = repdn1.resource_id '||
725 ' and narsc1.rsc_group_id = repdn1.group_id '||
726 ' and repdn1.current_user_id = :P_SALESPERSON ';
727 END IF;
728
729 IF P_SALES_GROUP IS NOT NULL AND trim(P_SALES_GROUP) IS NOT NULL AND
730 (P_SALESPERSON IS NULL OR trim(P_SALESPERSON) IS NULL) AND
731 (P_SALES_ROLE IS NULL OR trim(P_SALES_ROLE ) IS NULL) THEN
732
733 l_na_query := l_na_query ||
734 ' select narsc1.terr_group_account_id '||
735 ' from jtf_tty_named_acct_rsc narsc1, '||
736 ' jtf_rs_group_members mem1, '||
737 ' jtf_rs_groups_denorm grpdn1 '||
738 ' where narsc1.resource_id = mem1.resource_id '||
739 ' and narsc1.rsc_group_id = mem1.group_id '||
740 ' and mem1.delete_flag = ''N'' '||
741 ' and mem1.group_id = grpdn1.group_id '||
742 ' and SYSDATE BETWEEN NVL(grpdn1.start_date_active, SYSDATE-1) '||
743 ' AND NVL(grpdn1.end_date_active, SYSDATE+1) '||
744 ' and grpdn1.parent_group_id = :P_SALES_GROUP ';
745 END IF;
746
747 IF P_SALES_ROLE IS NOT NULL AND trim(P_SALES_ROLE) IS NOT NULL AND
748 (P_SALESPERSON IS NULL OR trim(P_SALESPERSON) IS NULL) AND
749 (P_SALES_GROUP IS NULL OR trim(P_SALES_GROUP) IS NULL) THEN
750 l_na_query := l_na_query ||
751 ' select narsc1.terr_group_account_id'||
752 ' from jtf_tty_named_acct_rsc narsc1,'||
753 ' jtf_tty_my_resources_v repdn1,'||
754 ' jtf_rs_rep_managers repmgr1,'||
755 ' jtf_rs_groups_denorm grpdn1 '||
756 ' where narsc1.resource_id = repmgr1.resource_id'||
757 ' and narsc1.rsc_group_id = repmgr1.group_id'||
758 ' and repmgr1.group_id = grpdn1.group_id'||
759 ' and repdn1.resource_id = repmgr1.parent_resource_id'||
760 ' and repdn1.parent_group_id = grpdn1.parent_group_id'||
761 ' and repdn1.current_user_id = :P_USERID '||
762 ' and repdn1.role_code = :P_SALES_ROLE ';
763 END IF;
764
765 IF (P_SALESPERSON IS NOT NULL AND trim(P_SALESPERSON) IS NOT NULL) AND
766 (P_SALES_GROUP IS NOT NULL AND trim(P_SALES_GROUP) IS NOT NULL) AND
767 (P_SALES_ROLE IS NULL OR trim(P_SALES_ROLE) IS NULL) THEN
768 l_na_query := l_na_query ||
769 ' select narsc1.terr_group_account_id '||
770 ' from jtf_tty_named_acct_rsc narsc1, '||
771 ' jtf_tty_my_resources_v repdn1 '||
772 ' where narsc1.resource_id = repdn1.resource_id '||
773 ' and narsc1.rsc_group_id = repdn1.group_id '||
774 ' and repdn1.current_user_id = :P_SALESPERSON '||
775 ' and repdn1.parent_group_id = :P_SALES_GROUP ';
776 END IF;
777
778 IF (P_SALESPERSON IS NOT NULL AND trim(P_SALESPERSON) IS NOT NULL) AND
779 (P_SALES_GROUP IS NULL OR trim(P_SALES_GROUP) IS NULL) AND
780 (P_SALES_ROLE IS NOT NULL AND trim(P_SALES_ROLE) IS NOT NULL) THEN
781 l_na_query := l_na_query ||
782 ' select narsc1.terr_group_account_id '||
783 ' from jtf_tty_named_acct_rsc narsc1, '||
784 ' jtf_tty_my_resources_v repdn1 '||
785 ' where narsc1.resource_id = repdn1.resource_id '||
786 ' and narsc1.rsc_group_id = repdn1.group_id '||
787 ' and repdn1.current_user_id = :P_SALESPERSON '||
788 ' and repdn1.current_user_role_code = :P_SALES_ROLE ';
789 END IF;
790
791 IF (P_SALESPERSON IS NULL OR trim(P_SALESPERSON) IS NULL) AND
792 (P_SALES_GROUP IS NOT NULL AND trim(P_SALES_GROUP) IS NOT NULL) AND
793 (P_SALES_ROLE IS NOT NULL AND trim(P_SALES_ROLE) IS NOT NULL) THEN
794 l_na_query := l_na_query ||
795 ' select narsc1.terr_group_account_id '||
796 ' from jtf_tty_named_acct_rsc narsc1, '||
797 ' jtf_tty_my_resources_v repdn1, '||
801 ' and narsc1.rsc_group_id = repmgr1.group_id '||
798 ' jtf_rs_rep_managers repmgr1, '||
799 ' jtf_rs_groups_denorm grpdn1 '||
800 ' where narsc1.resource_id = repmgr1.resource_id '||
802 ' and repmgr1.group_id = grpdn1.group_id '||
803 ' and repdn1.resource_id = repmgr1.parent_resource_id '||
804 ' and repdn1.current_user_id = :P_USERID '||
805 ' and repdn1.role_code = :P_SALES_ROLE '||
806 ' and grpdn1.parent_group_id = :P_SALES_GROUP ';
807 END IF;
808
809 IF (P_SALESPERSON IS NOT NULL AND trim(P_SALESPERSON) IS NOT NULL) AND
810 (P_SALES_GROUP IS NOT NULL AND trim(P_SALES_GROUP) IS NOT NULL) AND
811 (P_SALES_ROLE IS NOT NULL AND trim(P_SALES_ROLE) IS NOT NULL) THEN
812 l_na_query := l_na_query ||
813 ' select narsc1.terr_group_account_id '||
814 ' from jtf_tty_named_acct_rsc narsc1, '||
815 ' jtf_tty_my_resources_v repdn1 '||
816 ' where narsc1.resource_id = repdn1.resource_id '||
817 ' and narsc1.rsc_group_id = repdn1.group_id '||
818 ' and repdn1.current_user_id = :P_SALESPERSON ' ||
819 ' and repdn1.parent_group_id = :P_SALES_GROUP '||
820 ' and repdn1.current_user_role_code = :P_SALES_ROLE ';
821 END IF;
822 l_na_query := l_na_query || ')';
823 END IF; -- end of AAA : salesperson/grp/role and not unassigned
824 ---- end if salesperson/grp/role
825 -- elseif of BBB
826 ELSIF P_ASSIGNED_STATUS IS NOT NULL AND trim(P_ASSIGNED_STATUS) IS NOT NULL
827 AND P_ASSIGNED_STATUS<>'1' THEN
828
829 l_na_query := l_na_query || ' AND ';
830
831 IF useExistsClause = 'Y' THEN
832 l_na_query := l_na_query || ' EXISTS ' ;
833 ELSE
834 l_na_query := l_na_query || ' ga.terr_group_account_id IN ' ;
835 END IF;
836
837 IF P_ASSIGNED_STATUS='2' THEN
838 IF P_ISADMINFLAG = 'Y' THEN
839 l_na_query := l_na_query ||
840 ' ( select narsc1.terr_group_account_id '||
841 ' from jtf_tty_named_acct_rsc narsc1, '||
842 ' jtf_tty_my_directs_v dir '||
843 ' where narsc1.resource_id = dir.resource_id '||
844 ' and narsc1.rsc_group_id = dir.group_id '||
845 ' and dir.group_id = dir.parent_group_id '||
846 ' and narsc1.assigned_flag = ''N'' '||
847 ' and dir.current_user_id = :P_USERID ';
848 ELSE
849 l_na_query := l_na_query ||
850 '( select narsc1.terr_group_account_id '||
851 ' from jtf_tty_named_acct_rsc narsc1, '||
852 ' jtf_rs_resource_extns rsc1 '||
853 ' where narsc1.resource_id = rsc1.resource_id '||
854 ' and narsc1.assigned_flag = ''N'' '||
855 ' and rsc1.user_id = :P_USERID ';
856 END IF; -- end of isAdmin
857
858 IF useExistsClause = 'Y' THEN
859 l_na_query := l_na_query || ' and narsc1.terr_group_account_id = ga.terr_group_account_id ';
860 END IF;
861 ---- end of AssignedStatus equals 2
862
863 ELSE -- P_ASSIGNED_STATUS<>'2'
864 l_na_query := l_na_query ||
865 ' ( select narsc.terr_group_account_id '||
866 ' from jtf_tty_named_acct_rsc narsc, '||
867 ' jtf_tty_srch_my_resources_v repdn '||
868 ' where narsc.resource_id = repdn.resource_id '||
869 ' and narsc.rsc_group_id = repdn.group_id '||
870 ' and repdn.current_user_id = :P_USERID ';
871
872 IF useExistsClause='Y' THEN
873 l_na_query := l_na_query || ' and narsc.terr_group_account_id = ga.terr_group_account_id ';
874 END IF;
875
876 IF P_ISADMINFLAG = 'Y' THEN
877 l_na_query := l_na_query ||
878 ' and not exists ( select ''Y'' '||
879 ' from jtf_tty_named_acct_rsc narsc1, '||
880 ' jtf_tty_my_directs_v dir '||
881 ' where narsc1.resource_id = dir.resource_id '||
882 ' and narsc1.rsc_group_id = dir.group_id '||
883 ' and dir.group_id = dir.parent_group_id '||
884 ' and narsc1.terr_group_account_id = narsc.terr_group_account_id '||
885 ' and narsc1.assigned_flag = ''N'' '||
886 ' and dir.current_user_id = :P_USERID ';
887 ELSE
888 l_na_query := l_na_query ||
889 ' and not exists ( select ''Y'' '||
890 ' from jtf_tty_named_acct_rsc narsc1, '||
891 ' jtf_rs_resource_extns rsc1 '||
892 ' where narsc1.resource_id = rsc1.resource_id '||
893 ' and narsc1.terr_group_account_id = narsc.terr_group_account_id '||
894 ' and narsc1.assigned_flag = ''N'' '||
895 ' and rsc1.user_id = :P_USERID ';
896 END IF;
897
898 l_na_query := l_na_query || ')';
902
899 END IF; -- of P_ASSIGNED_STATUS<>'2'
900
901 l_na_query := l_na_query || ')';
903 --- end of assigned status
904 ELSE -- of BBB: i.e no rep/group/role/assigned parameters
905 l_na_query := l_na_query || ' AND ';
906
907 IF useExistsClause='Y' THEN
908 l_na_query := l_na_query || ' EXISTS (select narsc1.terr_group_account_id ';
909 ELSE
910 l_na_query := l_na_query ||
911 ' ga.terr_group_account_id IN (select /*+ NO_MERGE */ narsc1.terr_group_account_id ';
912 END IF;
913
914 l_na_query := l_na_query ||
915 ' from jtf_tty_named_acct_rsc narsc1, '||
916 ' jtf_tty_srch_my_resources_v repdn '||
917 ' where narsc1.resource_id = repdn.resource_id '||
918 ' and narsc1.rsc_group_id = repdn.group_id '||
919 ' and repdn.current_user_id = :P_USERID ';
920
921
922 IF useExistsClause='Y' THEN
923 l_na_query := l_na_query || ' and narsc1.terr_group_account_id = ga.terr_group_account_id ';
924 END IF;
925
926 l_na_query := l_na_query || ')';
927
928 END IF; -- of BBB;
929
930 /* identifying_addr **/
931
932 IF P_IDENTADDRFLAG IS NOT NULL THEN
933 l_na_query := l_na_query || ' and hzps.identifying_address_flag = ''Y'' ';
934 END IF;
935
936 l_na_query := l_na_query || ');';
937 l_na_query := l_na_query || ' end; ';
938
939 END IF; -- advance search
940
941 /*
942 insert into tmp values(p_ExtraWhereClause, 'p_ExtraWhereClause'); commit;
943 insert into tmp values(p_paranum,'p_paranum');
944 insert into tmp values(p_1, 'p_1');
945 insert into tmp values(p_2, 'p_2');
946 insert into tmp values(p_3, 'p_3');
947 insert into tmp values(p_4, 'p_4');
948 insert into tmp values(p_5, 'p_5'); commit;
949 */
950
951 IF p_callfrom = 'S' /* simple search */ THEN
952 /* simple search param = 1 or 2, first one is user_id */
953
954 IF m=1 THEN
955
956 EXECUTE IMMEDIATE l_na_query USING SEQ,P_USERID,P_USERID,CURR_DATE,P_USERID,CURR_DATE,P_USERID;
957 ELSE
958 EXECUTE IMMEDIATE l_na_query USING SEQ,P_USERID,P_USERID,CURR_DATE,P_USERID,CURR_DATE,P_USERID,l_var1;
959 END IF;
960
961 ELSE /* adv search */
962 EXECUTE IMMEDIATE l_na_query USING P_USERID,P_GRPID,P_SITE_TYPE,P_SICCODE,P_SITE_DUNS,
963 P_NAMED_ACCOUNT_STR,P_CITY_STR,P_STATE,P_PROVINCE,P_POSTAL_CODE_FROM,
964 P_POSTAL_CODE_TO,P_COUNTRY,P_DU_DUNS,P_DU_NAME_STR,P_GU_DUNS,
965 P_GU_NAME_STR,P_SALESPERSON,P_SALES_GROUP,P_SALES_ROLE,P_ASSIGNED_STATUS,
966 SEQ, CURR_DATE;
967 END IF;
968 COMMIT;
969
970
971 ---insert into tmp values ( to_char(sysdate,'HH,MI:SS'), '3. finish na, before stat, userid='||p_userid);commit;
972
973
974 /* Nas are populated, now start collect sales*/
975
976 /* populate slots */
977 i:=1;
978 l_sql := 'SELECT role_code, MAX(num) num '
979 || 'FROM ( '
980 || 'SELECT rol.role_code role_code, COUNT(rol.role_code) num '
981 || 'FROM '
982 || ' ( SELECT /*+ DYNAMIC_SAMPLING(jtw,5) */ '
983 || ' jtw.jtf_tty_webadi_int_id '
984 || ' FROM jtf_tty_webadi_interface jtw ' --JTF_TTY_WEBADI_INT_GT
985 || ' WHERE jtw.user_id = ' ||p_userid
986 || ' ) sub, '
987 || ' jtf_rs_roles_vl rol, '
988 || ' jtf_tty_named_acct_rsc narsc, '
989 || ' jtf_tty_terr_grp_accts ga '
990 || ' WHERE rol.role_code = narsc.rsc_role_code '
991 || ' AND narsc.terr_group_account_id = ga.terr_group_account_id '
992 || ' AND ga.named_account_id = sub.jtf_tty_webadi_int_id '
993 || ' GROUP BY ga.named_account_id, rol.role_code '
994 || ' ORDER BY MAX(rol.role_name) '
995 || ' ) '
996 || ' GROUP BY role_code ';
997
998 open l_get_statistic_csr for l_sql;
999 fetch l_get_statistic_csr bulk collect into l_get_stat_tbl;
1000 close l_get_statistic_csr;
1001
1002 if l_get_stat_tbl.count > 0 then
1003 FOR stat IN l_get_stat_tbl.first..l_get_stat_tbl.last
1004 LOOP
1005 IF i+l_get_stat_tbl(stat).num-1 <=30 THEN
1006 FOR k IN i..i+l_get_stat_tbl(stat).num-1
1007 LOOP
1008 COL_ROLE(k) := l_get_stat_tbl(stat).role_code;
1009 END LOOP;
1010 ELSE x_seq := '-1';
1011 RETURN;
1012 END IF;
1013
1014 i:=i+l_get_stat_tbl(stat).num;
1015 END LOOP;
1016 end if;
1017
1018 /* for each NA_ID */
1019 --- insert into tmp values ( to_char(sysdate,'HH,MI:SS'), '4. finish analysis '); commit;
1020
1021 FOR m IN getNAFromInterface
1022 -- FOR m IN 1 .. NAST_tbl.TERR_GRP_ACCT_ID.count
1023 LOOP
1024
1025
1026 /* clear col_used flags */
1030 GROUP_NAME :=VARRAY_TYPE(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
1027 COL_USED :=NARRAY_TYPE(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
1028 RESOURCE_NAME :=VARRAY_TYPE(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
1029 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
1031 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
1032 ROLE_NAME :=VARRAY_TYPE(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
1033 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
1034
1035 /*FOR k in 1..30 loop COL_USED(k):=0;
1036 RESOURCE_NAME(k):=null;
1037 GROUP_NAME(k):=null;
1038 ROLE_NAME(k):=null;
1039 end loop;
1040 */
1041 /* get all sales for this NA */
1042 --FOR SALES IN getSalesperson(NAST_tbl.JTF_TTY_WEBADI_INT_ID(m)/*NA_ID*/, NAST_tbl.TERR_GRP_ACCT_ID(m) )
1043 FOR SALES IN getSalesperson(m.JTF_TTY_WEBADI_INT_ID )
1044 LOOP
1045
1046 --k:=0; -- not yet sloted
1047 FOR j IN 1..30
1048 LOOP -- look into 30 slots
1049 IF /*k=0 and*/ SALES.role_code = COL_ROLE(j) AND COL_USED(j)=0 THEN
1050 COL_USED(j) :=1;
1051 --k:=1;
1052 -- write into pl/sql table row
1053 RESOURCE_NAME(j):=SALES.resource_name;
1054 GROUP_NAME(j) :=SALES.group_name;
1055 ROLE_NAME(j) :=SALES.role_name;
1056 EXIT;
1057 END IF;
1058 END LOOP; -- of slotting
1059 END LOOP; -- of SALES
1060
1061
1062 UPDATE JTF_TTY_WEBADI_INTERFACE -- /*+ INDEX JTF_TTY_WEBADI_INTF_N2 */
1063 SET RESOURCE1_NAME=RESOURCE_NAME(1),GROUP1_NAME=GROUP_NAME(1),ROLE1_NAME=ROLE_NAME(1),
1064 RESOURCE2_NAME=RESOURCE_NAME(2),GROUP2_NAME=GROUP_NAME(2),ROLE2_NAME=ROLE_NAME(2),
1065 RESOURCE3_NAME=RESOURCE_NAME(3),GROUP3_NAME=GROUP_NAME(3),ROLE3_NAME=ROLE_NAME(3),
1066 RESOURCE4_NAME=RESOURCE_NAME(4),GROUP4_NAME=GROUP_NAME(4),ROLE4_NAME=ROLE_NAME(4),
1067 RESOURCE5_NAME=RESOURCE_NAME(5),GROUP5_NAME=GROUP_NAME(5),ROLE5_NAME=ROLE_NAME(5),
1068 RESOURCE6_NAME=RESOURCE_NAME(6),GROUP6_NAME=GROUP_NAME(6),ROLE6_NAME=ROLE_NAME(6),
1069 RESOURCE7_NAME=RESOURCE_NAME(7),GROUP7_NAME=GROUP_NAME(7),ROLE7_NAME=ROLE_NAME(7),
1070 RESOURCE8_NAME=RESOURCE_NAME(8),GROUP8_NAME=GROUP_NAME(8),ROLE8_NAME=ROLE_NAME(8),
1071 RESOURCE9_NAME=RESOURCE_NAME(9),GROUP9_NAME=GROUP_NAME(9),ROLE9_NAME=ROLE_NAME(9),
1072 RESOURCE10_NAME=RESOURCE_NAME(10),GROUP10_NAME=GROUP_NAME(10),ROLE10_NAME=ROLE_NAME(10),
1073 RESOURCE11_NAME=RESOURCE_NAME(11),GROUP11_NAME=GROUP_NAME(11),ROLE11_NAME=ROLE_NAME(11),
1074 RESOURCE12_NAME=RESOURCE_NAME(12),GROUP12_NAME=GROUP_NAME(12),ROLE12_NAME=ROLE_NAME(12),
1075 RESOURCE13_NAME=RESOURCE_NAME(13),GROUP13_NAME=GROUP_NAME(13),ROLE13_NAME=ROLE_NAME(13),
1076 RESOURCE14_NAME=RESOURCE_NAME(14),GROUP14_NAME=GROUP_NAME(14),ROLE14_NAME=ROLE_NAME(14),
1077 RESOURCE15_NAME=RESOURCE_NAME(15),GROUP15_NAME=GROUP_NAME(15),ROLE15_NAME=ROLE_NAME(15),
1078 RESOURCE16_NAME=RESOURCE_NAME(16),GROUP16_NAME=GROUP_NAME(16),ROLE16_NAME=ROLE_NAME(16),
1079 RESOURCE17_NAME=RESOURCE_NAME(17),GROUP17_NAME=GROUP_NAME(17),ROLE17_NAME=ROLE_NAME(17),
1080 RESOURCE18_NAME=RESOURCE_NAME(18),GROUP18_NAME=GROUP_NAME(18),ROLE18_NAME=ROLE_NAME(18),
1081 RESOURCE19_NAME=RESOURCE_NAME(19),GROUP19_NAME=GROUP_NAME(19),ROLE19_NAME=ROLE_NAME(19),
1082 RESOURCE20_NAME=RESOURCE_NAME(20),GROUP20_NAME=GROUP_NAME(20),ROLE20_NAME=ROLE_NAME(20),
1083 RESOURCE21_NAME=RESOURCE_NAME(21),GROUP21_NAME=GROUP_NAME(21),ROLE21_NAME=ROLE_NAME(21),
1084 RESOURCE22_NAME=RESOURCE_NAME(22),GROUP22_NAME=GROUP_NAME(22),ROLE22_NAME=ROLE_NAME(22),
1085 RESOURCE23_NAME=RESOURCE_NAME(23),GROUP23_NAME=GROUP_NAME(23),ROLE23_NAME=ROLE_NAME(23),
1086 RESOURCE24_NAME=RESOURCE_NAME(24),GROUP24_NAME=GROUP_NAME(24),ROLE24_NAME=ROLE_NAME(24),
1087 RESOURCE25_NAME=RESOURCE_NAME(25),GROUP25_NAME=GROUP_NAME(25),ROLE25_NAME=ROLE_NAME(25),
1088 RESOURCE26_NAME=RESOURCE_NAME(26),GROUP26_NAME=GROUP_NAME(26),ROLE26_NAME=ROLE_NAME(26),
1089 RESOURCE27_NAME=RESOURCE_NAME(27),GROUP27_NAME=GROUP_NAME(27),ROLE27_NAME=ROLE_NAME(27),
1090 RESOURCE28_NAME=RESOURCE_NAME(28),GROUP28_NAME=GROUP_NAME(28),ROLE28_NAME=ROLE_NAME(28),
1091 RESOURCE29_NAME=RESOURCE_NAME(29),GROUP29_NAME=GROUP_NAME(29),ROLE29_NAME=ROLE_NAME(29),
1092 RESOURCE30_NAME=RESOURCE_NAME(30),GROUP30_NAME=GROUP_NAME(30),ROLE30_NAME=ROLE_NAME(30)
1093 WHERE user_id = p_userid
1094 --and TERR_GRP_ACCT_ID = NAST_tbl.TERR_GRP_ACCT_ID(m);
1095 AND TERR_GRP_ACCT_ID =m.TERR_GRP_ACCT_ID;
1096
1097
1098 -- if mod(i, 300)=0 then insert into tmp values ( to_char(sysdate,'HH,MI:SS'), 'finish update with ' || i); commit; end if;
1099
1100 END LOOP; -- of NA
1101 x_seq := TO_CHAR(seq);
1102 ---insert into tmp values ( to_char(sysdate,'HH,MI:SS'), '5. done with update, seq=' || x_seq); commit;
1103 COMMIT;
1104 -- clear all fields
1105
1106 END;
1107
1108
1109 END Jtf_Tty_Webadi_Nadoc_Pkg;