1 PACKAGE PV_TERR_ASSIGN_PUB AUTHID CURRENT_USER as
2 /* $Header: pvxpptas.pls 120.2 2005/08/11 00:18:42 appldev ship $ */
3
4 g_partner_name CONSTANT NUMBER := -1702 ;
5 g_city CONSTANT NUMBER := -1066 ;
6 g_county CONSTANT NUMBER := -1069 ;
7 g_state CONSTANT NUMBER := -1068 ;
8 g_province CONSTANT NUMBER := -1071 ;
9 g_postal_code CONSTANT NUMBER := -1067 ;
10 g_country CONSTANT NUMBER := -1065 ;
11 g_area_code CONSTANT NUMBER := -1009 ;
12 g_cust_catgy_code CONSTANT NUMBER := -1081 ;
13 g_partner_type CONSTANT NUMBER := -1703 ;
14 g_partner_level CONSTANT NUMBER := -1704 ;
15 g_number_of_employee CONSTANT NUMBER := -1016 ;
16 g_Annual_Revenue CONSTANT NUMBER := -1101 ;
17
18 --===================================================================
19 -- Start of Comments
20 -- -------------------------------------------------------
21 -- Record name
22 -- partner_qualifiers_rec_type
23 -- -------------------------------------------------------
24 -- Parameters:
25 -- partner_name
26 -- area_code
27 -- city
28 -- country
29 -- county
30 -- postal_code
31 -- province
32 -- state
33 -- Annual_Revenue
34 -- number_of_employee
35 -- customer_category_code
36 -- partner_type
37 -- partner_level
38 --
39 -- Required
40 --
41 -- Defaults
42 --
43 -- End of Comments
44
45 --===================================================================
46 TYPE partner_qualifiers_rec_type IS RECORD
47 (
48 partner_name VARCHAR2(360),
49 party_site_id NUMBER,
50 party_id NUMBER,
51 area_code VARCHAR2(10),
52 city VARCHAR2(60),
53 country VARCHAR2(60),
54 county VARCHAR2(60),
55 postal_code VARCHAR2(60),
56 province VARCHAR2(60),
57 state VARCHAR2(60),
58 Annual_Revenue NUMBER,
59 number_of_employee NUMBER,
60 customer_category_code VARCHAR2(30),
61 partner_type VARCHAR2(500),
62 partner_level VARCHAR2(30)
63 );
64
65 g_miss_partner_qualifiers_rec partner_qualifiers_rec_type := NULL;
66 TYPE partner_qualifiers_tbl_type IS TABLE OF partner_qualifiers_rec_type INDEX BY BINARY_INTEGER;
67 g_miss_partner_qualifiers_tbl partner_qualifiers_tbl_type;
68
69 --===================================================================
70 -- Start of Comments
71 -- -------------------------------------------------------
72 -- Record name
73 -- prtnr_qflr_flg_rec_type
74 -- -------------------------------------------------------
75 -- Parameters:
76 -- partner_name_flg
77 -- party_site_id_flg
78 -- area_code_flg
79 -- city_flg
80 -- country_flg
81 -- county_flg
82 -- postal_code_flg
83 -- province_flg
84 -- state_flg
85 -- Annual_Revenue_flg
86 -- number_of_employee_flg
87 -- cust_catgy_code_flg
88 -- partner_type_flg
89 -- partner_level_flg
90 --
91 -- Required
92 --
93 -- Defaults
94 --
95 -- End of Comments
96
97 --===================================================================
98 TYPE prtnr_qflr_flg_rec_type IS RECORD
99 (
100 partner_name_flg VARCHAR2(1),
101 party_site_id_flg VARCHAR2(1),
102 area_code_flg VARCHAR2(1),
103 city_flg VARCHAR2(1),
104 country_flg VARCHAR2(1),
105 county_flg VARCHAR2(1),
106 postal_code_flg VARCHAR2(1),
107 province_flg VARCHAR2(1),
108 state_flg VARCHAR2(1),
109 Annual_Revenue_flg VARCHAR2(1),
110 number_of_employee_flg VARCHAR2(1),
111 cust_catgy_code_flg VARCHAR2(1),
112 partner_type_flg VARCHAR2(1),
113 partner_level_flg VARCHAR2(1)
114 );
115
116 g_miss_prtnr_qflr_flg_rec prtnr_qflr_flg_rec_type := NULL;
117 TYPE prtnr_qflr_flg_tbl_type IS TABLE OF prtnr_qflr_flg_rec_type INDEX BY BINARY_INTEGER;
118 g_miss_prtnr_qflr_flg_tbl prtnr_qflr_flg_tbl_type;
119
120 -- Start of Comments
121 --
122 -- Funtion name : chk_prtnr_qflr_enabled
123 -- Type : Public
124 -- Function : The purpose of this function is to find out, whether
125 -- the supplied partner qualifiers is enabled or not.
126 --
127 -- Pre-reqs :
128 --
129 -- Paramaeters :
130 -- IN :
131 -- p_prtnr_qualifier IN NUMBER
132 -- OUT :
133 --
134 -- Version :
135 -- Initial version 1.0
136 --
137 -- Notes: Procedure to find out, whther the supplied partner qualifier
138 -- is enabled in the Qualifier Setup.
139 --
140 --
141 -- End of Comments
142 FUNCTION chk_prtnr_qflr_enabled (p_prtnr_qualifier IN NUMBER )
143 RETURN VARCHAR2 ;
144
145 TYPE ResourceList is TABLE OF NUMBER(15);
146 TYPE PersonList is TABLE OF NUMBER(15);
147 TYPE ResourceCategoryList is TABLE OF VARCHAR2(30);
148 TYPE GroupList is TABLE OF NUMBER(15);
149
150 TYPE ResourceRec is RECORD (
151 resource_id ResourceList ,
152 person_id PersonList ,
153 resource_category ResourceCategoryList ,
154 group_id GroupList );
155
156 PROCEDURE GET_RES_FROM_TEAM_GROUP(
157 P_RESOURCE_ID IN NUMBER,
158 P_RESOURCE_TYPE IN VARCHAR2,
159 X_RESOURCE_REC OUT NOCOPY PV_TERR_ASSIGN_PUB.ResourceRec
160 );
161
162 TYPE prtnr_aces_rec_type IS RECORD(
163 partner_access_id NUMBER );
164
165 g_miss_prtnr_aces_rec_type prtnr_aces_rec_type := NULL;
166 TYPE prtnr_aces_tbl_type IS TABLE OF prtnr_aces_rec_type INDEX BY BINARY_INTEGER;
167 g_miss_prtnr_aces_tbl prtnr_aces_tbl_type;
168
169
170
171 -- Start of Comments
172 --
173 -- API name : Get_Partner_Details
174 -- Type : Public
175 -- Function : The purpose of this procedure is to build a partner qualifiers
176 -- table for a given party_id
177 --
178 -- Pre-reqs :
179 --
180 -- Paramaeters :
181 -- IN :
182 -- p_party_id IN NUMBER
183 -- OUT :
184 -- x_return_status OUT VARCHAR2(1)
185 -- x_msg_count OUT NUMBER
186 -- x_msg_data OUT VARCHAR2(2000)
187 -- x_partner_qualifiers_tbl OUT partner_qualifiers_tbl_type
188 --
189 -- Version :
190 -- Initial version 1.0
191 --
192 -- Notes: API for creating a Channel Team for a Partner Organization.
193 --
194 --
195 -- End of Comments
196
197 PROCEDURE get_partner_details (
198 p_party_id IN NUMBER,
199 x_return_status OUT NOCOPY VARCHAR2,
200 x_msg_count OUT NOCOPY NUMBER,
201 x_msg_data OUT NOCOPY VARCHAR2,
202 x_partner_qualifiers_tbl OUT NOCOPY partner_qualifiers_tbl_type );
203
204 -- Start of Comments
205 --
206 -- NAME
207 -- PV_TERR_ASSIGN_PUB
208 --
209 -- PURPOSE
210 -- This package is a public API to create the channel team based on the user as well
211 -- as the pre defined qualifiers for the partner. This API will call the Do_Create_channel_team
212 -- which does all the required processing.This is more of an overloaded method for Do_Create_channel_team
213 --
214 -- Procedures:
215 -- Do_Create_Channel_Team
216 --
217 -- NOTES
218 -- This package is for private use only
219 --
220 -- Pre-reqs : Existing resource should have a "Channel Manager" or
221 -- "Channel Rep" role at group level.
222 --
223 -- Paramaeters :
224 -- IN :
225 -- p_api_version_number IN NUMBER,
226 -- p_init_msg_list IN VARCHAR2
227 -- p_commit IN VARCHAR2
228 -- p_validation_level IN NUMBER
229 -- p_partner_id IN NUMBER
230 -- p_vad_partner_id IN NUMBER
231 -- p_mode IN VARCHAR2
232 -- p_login_user IN NUMBER ,
233 --
234 --
235 -- OUT :
236 -- x_return_status OUT VARCHAR2(1)
237 -- x_msg_count OUT NUMBER
238 -- x_msg_data OUT VARCHAR2(2000)
239 -- x_prtnr_access_id_tbl OUT PV_TERR_ASSIGN_PUB.PartnerAccessRec
240 --
241 -- Version :
242 -- Initial version 1.0
243 --
244 -- HISTORY
245 -- 07/27/05 pinagara Created
246 --
247 -- End of Comments
248
249 PROCEDURE Create_Channel_Team
250 ( p_api_version_number IN NUMBER ,
251 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
252 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
253 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
254 p_partner_id IN NUMBER ,
255 p_vad_partner_id IN NUMBER ,
256 p_mode IN VARCHAR2 ,
257 p_login_user IN NUMBER ,
258 x_return_status OUT NOCOPY VARCHAR2,
259 x_msg_count OUT NOCOPY NUMBER,
260 x_msg_data OUT NOCOPY VARCHAR2,
261 x_prtnr_access_id_tbl OUT NOCOPY prtnr_aces_tbl_type
262 );
263
264 -- Start of Comments
265 --
266 -- NAME
267 -- PV_TERR_ASSIGN_PUB
268 --
269 -- PURPOSE
270 -- This package is a public API to create the channel team based on the user as well
271 -- as the pre defined qualifiers for the partner. This API inturn calls apis to create
272 -- the channel team based on territory as well as the logged in user.
273 --
274 -- Procedures:
275 -- Do_Create_Channel_Team
276 --
277 -- NOTES
278 -- This package is for private use only
279 --
280 -- Pre-reqs : Existing resource should have a "Channel Manager" or
281 -- "Channel Rep" role at group level.
282 --
283 -- Paramaeters :
284 -- IN :
285 -- p_api_version_number IN NUMBER,
286 -- p_init_msg_list IN VARCHAR2
287 -- p_commit IN VARCHAR2
288 -- p_validation_level IN NUMBER
289 -- p_partner_id IN NUMBER
290 -- p_vad_partner_id IN NUMBER
291 -- p_mode IN VARCHAR2
292 -- p_login_user IN NUMBER ,
293 -- p_partner_qualifiers_tbl IN partner_qualifiers_tbl_type,
294 --
295 --
296 -- OUT :
297 -- x_return_status OUT VARCHAR2(1)
298 -- x_msg_count OUT NUMBER
299 -- x_msg_data OUT VARCHAR2(2000)
300 -- x_prtnr_access_id_tbl OUT PV_TERR_ASSIGN_PUB.PartnerAccessRec
301 --
302 -- Version :
303 -- Initial version 1.0
304 --
305 -- HISTORY
306 -- 07/27/05 pinagara Created
307 --
308 -- End of Comments
309
310 PROCEDURE Do_Create_Channel_Team
311 ( p_api_version_number IN NUMBER ,
312 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
313 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
314 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
315 p_partner_id IN NUMBER ,
316 p_vad_partner_id IN NUMBER ,
317 p_mode IN VARCHAR2 ,
318 p_login_user IN NUMBER ,
319 p_partner_qualifiers_tbl IN partner_qualifiers_tbl_type,
320 x_return_status OUT NOCOPY VARCHAR2,
321 x_msg_count OUT NOCOPY NUMBER,
322 x_msg_data OUT NOCOPY VARCHAR2,
323 x_prtnr_access_id_tbl OUT NOCOPY prtnr_aces_tbl_type
324 );
325
326
327 -- Start of Comments
328 --
329 -- API name : Create_Online_Channel_Team
330 -- Type : Public
331 -- Function : The purpose of this procedure is to create a Channel
332 -- team for a given Partner_id in the PV_PARTNER_ACCESSES
333 -- table.
334 --
335 -- Pre-reqs : Existing resource should be a "Channel Manager" or
336 -- "Channel Rep" role at group level.
337 --
338 -- Paramaeters :
339 -- IN :
340 -- p_api_version_number IN NUMBER,
341 -- p_init_msg_list IN VARCHAR2
342 -- p_commit IN VARCHAR2
343 -- p_validation_level IN NUMBER
344 --
345 -- p_partner_id IN NUMBER
346 -- p_vad_partner_id IN NUMBER
347 -- p_login_user IN NUMBER
348 -- p_mode IN VARCHAR2
349 -- OUT :
350 -- x_return_status OUT VARCHAR2(1)
351 -- x_msg_count OUT NUMBER
352 -- x_msg_data OUT VARCHAR2(2000)
353 -- x_prtnr_access_id_tbl OUT JTF_NUMBER_TABLE
354 --
355 -- Version :
356 -- Initial version 1.0
357 --
358 -- Notes: API for creating a Channel Team for a Partner Organization.
359 --
360 --
361 -- End of Comments
362
363 PROCEDURE Create_Online_Channel_Team
364 ( p_api_version_number IN NUMBER ,
365 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
366 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
367 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
368 x_return_status OUT NOCOPY VARCHAR2,
369 x_msg_count OUT NOCOPY NUMBER,
370 x_msg_data OUT NOCOPY VARCHAR2,
371 p_partner_id IN NUMBER ,
372 p_vad_partner_id IN NUMBER ,
373 p_mode IN VARCHAR2 ,
374 p_login_user IN NUMBER ,
375 x_prtnr_access_id_tbl OUT NOCOPY prtnr_aces_tbl_type
376 );
377
378 --Obsoleted
379 PROCEDURE Do_Cr_Online_Chnl_Team
380 ( p_api_version_number IN NUMBER ,
381 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
382 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
383 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
384 x_return_status OUT NOCOPY VARCHAR2,
385 x_msg_count OUT NOCOPY NUMBER,
386 x_msg_data OUT NOCOPY VARCHAR2,
387 p_partner_id IN NUMBER ,
388 p_vad_partner_id IN NUMBER ,
389 p_mode IN VARCHAR2 ,
390 p_login_user IN NUMBER ,
391 p_partner_qualifiers_tbl IN partner_qualifiers_tbl_type,
392 x_prtnr_access_id_tbl OUT NOCOPY prtnr_aces_tbl_type
393 );
394
395 -- Start of Comments
396 --
397 -- API name : Create_VAD_Channel_Team
398 -- Type : Public
399 -- Function : The purpose of this procedure is to create a Channel
400 -- team of all VAD employees for a given VAD_Partner_id in
401 -- the PV_PARTNER_ACCESSES table.
402 --
403 -- Pre-reqs : Existing resource should be a "Channel Manager" or
404 -- "Channel Rep" role at group level.
405 --
406 -- Paramaeters :
407 -- IN :
408 -- p_api_version_number IN NUMBER,
409 -- p_init_msg_list IN VARCHAR2
410 -- p_commit IN VARCHAR2
411 -- p_validation_level IN NUMBER
412 --
413 -- p_partner_id IN NUMBER
414 -- p_vad_partner_id IN NUMBER
415 -- OUT :
416 -- x_return_status OUT VARCHAR2(1)
417 -- x_msg_count OUT NUMBER
418 -- x_msg_data OUT VARCHAR2(2000)
419 --
420 -- x_prtnr_access_id_tbl OUT JTF_NUMBER_TABLE
421 --
422 -- Version :
423 -- Initial version 1.0
424 --
425 -- Notes: API for creating a Channel Team of VAD employees for a
426 -- Partner Organization.
427 --
428 --
429 -- End of Comments
430
431 PROCEDURE Create_VAD_Channel_Team
432 ( p_api_version_number IN NUMBER ,
433 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
434 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
435 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
436 x_return_status OUT NOCOPY VARCHAR2,
437 x_msg_count OUT NOCOPY NUMBER,
438 x_msg_data OUT NOCOPY VARCHAR2,
439 p_partner_id IN NUMBER,
440 p_vad_partner_id IN NUMBER,
441 x_prtnr_access_id_tbl OUT NOCOPY prtnr_aces_tbl_type
442 );
443
444 -- Start of Comments
445 --
446 -- API name : Update_Channel_Team
447 -- Type : Public
448 -- Function : The purpose of this procedure is to Update a Channel
449 -- team of a given partner_id, whenever there is an update
450 -- in any of the partner qualifiers.
451 --
452 -- Pre-reqs :
453 --
454 -- Paramaeters :
455 -- IN :
456 -- p_api_version_number IN NUMBER,
457 -- p_init_msg_list IN VARCHAR2
458 -- p_commit IN VARCHAR2
459 -- p_validation_level IN NUMBER
460 --
461 -- p_partner_id IN NUMBER
462 -- p_vad_partner_id IN NUMBER
463 -- p_mode IN VARCHAR2
464 -- p_prtnr_qualifier_rec IN partner_qualifiers_rec_type
465 -- OUT :
466 -- x_return_status OUT VARCHAR2(1)
467 -- x_msg_count OUT NUMBER
468 -- x_msg_data OUT VARCHAR2(2000)
469 -- x_prtnr_access_id_tbl OUT JTF_NUMBER_TABLE
470 --
471 -- Version :
472 -- Initial version 1.0
473 --
474 -- Notes: API for creating a Channel Team for a Partner Organization.
475 --
476 --
477 -- End of Comments
478
479 PROCEDURE Update_Channel_Team
480 ( p_api_version_number IN NUMBER ,
481 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
482 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
483 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
484 p_partner_id IN NUMBER ,
485 p_vad_partner_id IN NUMBER ,
486 p_mode IN VARCHAR2 := 'UPDATE',
487 p_login_user IN NUMBER ,
488 p_upd_prtnr_qflr_flg_rec IN prtnr_qflr_flg_rec_type,
489 x_return_status OUT NOCOPY VARCHAR2,
490 x_msg_count OUT NOCOPY NUMBER,
491 x_msg_data OUT NOCOPY VARCHAR2,
492 x_prtnr_access_id_tbl OUT NOCOPY prtnr_aces_tbl_type
493 );
497 -- API name : Assign_Channel_Team
494
495 -- Start of Comments
496 --
498 -- Type : Public
499 -- Function : The purpose of this procedure is to Update the Channel
500 -- team for all partner_id by running in TOTAL_MODE. This procedure attached to
501 -- 'Territory assignment for partners in TOTAL mode' concurrent request program.
502 -- It reads all the partner_id from PV_PARTNER_PROFILES table and re-assign the
503 -- channel team.
504 --
505 -- Pre-reqs :
506 --
507 -- Paramaeters :
508 -- IN :
509 --
510 -- OUT :
511 -- ERRBUF OUT NOCOPY VARCHAR2,
512 -- RETCODE OUT NOCOPY VARCHAR2
513 --
514 -- Version :
515 -- Initial version 1.0
516 --
517 -- Notes: Concurrent request program for re-assignment of Channel Team
518 -- for all the Partner Organizations stored in PV_PARTNER_PROFILES
519 -- table.
520 --
521 --
522 -- End of Comments
523
524 PROCEDURE Assign_Channel_Team(
525 ERRBUF OUT NOCOPY VARCHAR2,
526 RETCODE OUT NOCOPY VARCHAR2,
527 p_mode IN VARCHAR2,
528 p_first_partner_id IN NUMBER,
529 p_last_partner_id IN NUMBER
530 ) ;
531
532 --
533 -- API name : Process_Sub_Territories
534 -- Type : Public
535 -- Function : The purpose of this procedure is to Update the Channel team for
536 -- all those Partner's, who get affected by the change in territory
537 -- definition. This procedure attached to 'Re-define Channel team for
538 -- specific territories' concurrent request program. It reads all the
539 -- partner_id from PV_PARTNER_ACCESSES table and re-assign the channel
540 -- team.
541 --
542 -- Pre-reqs :
543 --
544 -- Paramaeters :
545 -- IN :
546 --
547 -- OUT :
548 -- ERRBUF OUT NOCOPY VARCHAR2,
549 -- RETCODE OUT NOCOPY VARCHAR2
550 --
551 -- Version :
552 -- Initial version 1.0
553 --
554 -- Notes: Concurrent request program for re-assignment of Channel Team
555 -- for all the Partner Organizations stored in PV_PARTNER_PROFILES
556 -- table.
557 --
558 --
559 -- End of Comments
560
561 PROCEDURE Process_Sub_Territories(
562 ERRBUF OUT NOCOPY VARCHAR2,
563 RETCODE OUT NOCOPY VARCHAR2,
564 p_terr_id1 IN NUMBER,
565 p_terr_id2 IN NUMBER,
566 p_terr_id3 IN NUMBER,
567 p_terr_id4 IN NUMBER,
568 p_terr_id5 IN NUMBER,
569 p_terr_id6 IN NUMBER,
570 p_terr_id7 IN NUMBER,
571 p_terr_id8 IN NUMBER,
572 p_terr_id9 IN NUMBER,
573 p_terr_id10 IN NUMBER,
574 p_terr_id11 IN NUMBER,
575 p_terr_id12 IN NUMBER,
576 p_terr_id13 IN NUMBER,
577 p_terr_id14 IN NUMBER,
578 p_terr_id15 IN NUMBER,
579 p_terr_id16 IN NUMBER,
580 p_terr_id17 IN NUMBER,
581 p_terr_id18 IN NUMBER,
582 p_terr_id19 IN NUMBER,
583 p_terr_id20 IN NUMBER ) ;
584
585
586 END PV_TERR_ASSIGN_PUB;
587