[Home] [Help]
PACKAGE BODY: APPS.PV_PARTNER_ACCNT_MGMT_PVT
Source
1 PACKAGE BODY PV_PARTNER_ACCNT_MGMT_PVT as
2 /* $Header: pvxvpamb.pls 120.4 2005/11/28 13:32:17 dgottlie ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'PV_PARTNER_ACCNT_MGMT_PVT';
5 G_FILE_NAME CONSTANT VARCHAR2(12) := 'pvxvpamb.pls';
6
7 PV_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
8 PV_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
9 PV_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
10
11 PROCEDURE Create_Customer_Account(
12 p_api_version IN NUMBER
13 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
14 ,p_commit IN VARCHAR2 := FND_API.g_false
15 ,P_partner_party_id IN NUMBER
16 ,x_return_status OUT NOCOPY VARCHAR2
17 ,x_msg_count OUT NOCOPY NUMBER
18 ,x_msg_data OUT NOCOPY VARCHAR2
19 ,x_acct_id OUT NOCOPY NUMBER
20 )
21 IS
22 l_api_version CONSTANT NUMBER := 1.0;
23 l_api_name CONSTANT VARCHAR2(45) := 'Create_Customer_Account';
24 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
25
26
27 CURSOR C_party_info (l_party_id NUMBER) IS
28 SELECT party_name, party_number
29 FROM hz_parties
30 WHERE party_id = l_party_id
31 AND party_type = 'ORGANIZATION';
32
33 account_rec HZ_CUST_ACCOUNT_V2PUB.cust_account_rec_type;
34 organization_rec HZ_PARTY_V2PUB.organization_rec_type;
35 cust_profile_rec HZ_CUSTOMER_PROFILE_V2PUB.customer_profile_rec_type;
36 p_party_rec HZ_PARTY_V2PUB.party_rec_type;
37
38
39 l_party_number VARCHAR2(30);
40 l_party_name VARCHAR2(240);
41 l_gen_cust_num VARCHAR2(3);
42 l_account_number VARCHAR2(30);
43 l_party_id NUMBER;
44 l_profile_id NUMBER;
45
46 BEGIN
47 ---- Initialize---------------------
48
49 SAVEPOINT CREATE_CUSTOMER_ACCOUNT;
50
51 x_return_status := FND_API.g_ret_sts_success;
52
53 IF FND_API.to_boolean(p_init_msg_list) THEN
54 FND_MSG_PUB.initialize;
55 END IF;
56
57 IF NOT FND_API.compatible_api_call(
58 l_api_version,
59 p_api_version,
60 l_api_name,
61 g_pkg_name
62 ) THEN
63 RAISE FND_API.g_exc_unexpected_error;
64 END IF;
65
66 -- figure out if the party type and party_name. party_type has to be an organization
67 OPEN C_party_info(p_partner_party_id);
68 FETCH C_party_info INTO l_party_name, l_party_number;
69 IF (C_party_info%NOTFOUND) THEN
70 FND_MESSAGE.Set_Name('PV', 'PV_INVALID_PARTNER_PARTY_ID');
71 FND_MESSAGE.Set_Token('COLUMN', 'PARTY ID', FALSE);
72 FND_MSG_PUB.ADD;
73 raise FND_API.G_EXC_ERROR;
74 END IF;
75 CLOSE C_party_info;
76
77
78 account_rec.Created_by_Module := 'PV';
79 organization_rec.Created_by_Module := 'PV';
80 cust_profile_rec.Created_by_Module := 'PV';
81
82 -- if needed generate account_number.
83 SELECT generate_customer_number INTO l_gen_cust_num FROM ar_system_parameters;
84
85 -- typically should be set to 'Y' if no we will try to create a new one.
86 -- however, this could error out
87 -- Is this needed????
88
89 IF l_gen_cust_num = 'N' THEN
90 account_rec.account_number := 'PV'|| l_party_number;
91 END IF;
92
93 account_rec.account_name := l_party_name;
94 organization_rec.party_rec := p_party_rec;
95 organization_rec.party_rec.party_id := p_partner_party_id;
96
97 HZ_CUST_ACCOUNT_V2PUB.create_cust_account (
98 p_init_msg_list => FND_API.G_FALSE,
99 p_cust_account_rec => account_rec,
100 p_organization_rec => organization_rec,
101 p_customer_profile_rec => cust_profile_rec,
102 p_create_profile_amt => 'Y',
103 x_cust_account_id => x_acct_id,
104 x_account_number => l_account_number,
105 x_party_id => l_party_id ,
106 x_party_number => l_party_number,
107 x_profile_id => l_profile_id,
108 x_return_status => x_return_status,
109 x_msg_count => x_msg_count,
110 x_msg_data => x_msg_data );
111
112 IF (PV_DEBUG_HIGH_ON) THEN
113
114 PVX_UTILITY_PVT.debug_message('create cust_acct: l_acct_id '||x_acct_id);
115 PVX_UTILITY_PVT.debug_message('create cust_acct: x_return_status '||x_return_status);
116
117 END IF;
118
119
120 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
121 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
122 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
123 RAISE FND_API.G_EXC_ERROR;
124 END IF;
125
126
127 FND_MSG_PUB.Count_And_Get
128 ( p_encoded => FND_API.G_FALSE,
129 p_count => x_msg_count,
130 p_data => x_msg_data
131 );
132
133 IF FND_API.to_Boolean( p_commit ) THEN
134 COMMIT WORK;
135 END IF;
136
137
138 EXCEPTION
139 WHEN FND_API.G_EXC_ERROR THEN
140 ROLLBACK TO CREATE_CUSTOMER_ACCOUNT;
141 x_return_status := FND_API.G_RET_STS_ERROR;
142 -- Standard call to get message count and if count=1, get the message
143 FND_MSG_PUB.Count_And_Get (
144 p_encoded => FND_API.G_FALSE
145 ,p_count => x_msg_count
146 ,p_data => x_msg_data
147 );
148
149 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
150 ROLLBACK TO CREATE_CUSTOMER_ACCOUNT;
151 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
152 -- Standard call to get message count and if count=1, get the message
153 FND_MSG_PUB.Count_And_Get (
154 p_encoded => FND_API.G_FALSE
155 ,p_count => x_msg_count
156 ,p_data => x_msg_data
157 );
158
159 WHEN OTHERS THEN
160 ROLLBACK TO CREATE_CUSTOMER_ACCOUNT;
161 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
162 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
163 THEN
164 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
165 END IF;
166 -- Standard call to get message count and if count=1, get the message
167 FND_MSG_PUB.Count_And_Get (
168 p_encoded => FND_API.G_FALSE
169 ,p_count => x_msg_count
170 ,p_data => x_msg_data
171 );
172
173 END Create_Customer_Account;
174
175
176 PROCEDURE Create_ACCT_SITE (
177 p_api_version IN NUMBER
178 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
179 ,p_commit IN VARCHAR2 := FND_API.g_false
180 ,p_Cust_Account_Id NUMBER
181 ,p_Party_Site_Id NUMBER
182 ,x_return_status OUT NOCOPY VARCHAR2
183 ,x_msg_count OUT NOCOPY NUMBER
184 ,x_msg_data OUT NOCOPY VARCHAR2
185 ,x_customer_site_id OUT NOCOPY NUMBER
186 )
187 IS
188
189 l_api_version CONSTANT NUMBER := 1.0;
190 l_api_name CONSTANT VARCHAR2(45) := 'Create_ACCT_SITE';
191
192 -- acct site need not be verified
193 CURSOR C_acct_site (l_account_id NUMBER, l_site_id NUMBER) IS
194 SELECT cust_acct_site_id
195 FROM hz_cust_acct_sites
196 WHERE cust_account_id = l_Account_Id
197 AND party_site_id = l_Site_Id;
198
199 p_acct_site_Rec HZ_CUST_ACCOUNT_SITE_V2PUB.cust_acct_site_rec_type;
200
201 BEGIN
202 ---- Initialize---------------------
203 SAVEPOINT CREATE_ACCT_SITE;
204
205 x_return_status := FND_API.g_ret_sts_success;
206
207
208 IF FND_API.to_boolean(p_init_msg_list) THEN
209 FND_MSG_PUB.initialize;
210 END IF;
211
212 IF NOT FND_API.compatible_api_call(
213 l_api_version,
214 p_api_version,
215 l_api_name,
216 g_pkg_name
217 ) THEN
218 RAISE FND_API.g_exc_unexpected_error;
219 END IF;
220
221
222 Open C_acct_site (p_cust_account_id, p_party_site_id);
223 Fetch C_acct_site into x_customer_site_id;
224 IF (C_acct_site%NOTFOUND) THEN
225 p_acct_site_rec.cust_account_id := P_cust_account_id;
226 p_acct_site_rec.party_site_id := P_party_site_id;
227 --p_acct_site_rec.status := 'A';
228 p_acct_site_Rec.created_by_module := 'PV';
229 p_acct_site_Rec.org_id := mo_global.get_current_org_id;
230
231
232 HZ_CUST_ACCOUNT_SITE_V2PUB.create_cust_acct_site (
233 p_init_msg_list => FND_API.G_FALSE,
234 p_cust_acct_site_rec => p_acct_site_rec,
235 x_cust_acct_site_id => x_customer_site_id,
236 x_return_status => x_return_status,
237 x_msg_count => x_msg_count,
238 x_msg_data => x_msg_data );
239
240 IF (PV_DEBUG_HIGH_ON) THEN
241 PVX_UTILITY_PVT.debug_message('create acct_site: x_return_status '||x_return_status);
242 END IF;
243
244 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
245 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
246 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
247 RAISE FND_API.G_EXC_ERROR;
248 END IF;
249 END IF;
250
251 Close C_acct_site;
252 PVX_UTILITY_PVT.debug_message('create acct_site:after create_site:x_customer_site_id '||x_customer_site_id);
253
254 FND_MSG_PUB.Count_And_Get
255 ( p_encoded => FND_API.G_FALSE,
256 p_count => x_msg_count,
257 p_data => x_msg_data
258 );
259
260 IF FND_API.to_Boolean( p_commit ) THEN
261 COMMIT WORK;
262 END IF;
263
264
265 EXCEPTION
266 WHEN FND_API.G_EXC_ERROR THEN
267 ROLLBACK TO CREATE_ACCT_SITE;
268 x_return_status := FND_API.G_RET_STS_ERROR;
269 -- Standard call to get message count and if count=1, get the message
270 FND_MSG_PUB.Count_And_Get (
271 p_encoded => FND_API.G_FALSE
272 ,p_count => x_msg_count
273 ,p_data => x_msg_data
274 );
275
276 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
277 ROLLBACK TO CREATE_ACCT_SITE;
278 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
279 -- Standard call to get message count and if count=1, get the message
280 FND_MSG_PUB.Count_And_Get (
281 p_encoded => FND_API.G_FALSE
282 ,p_count => x_msg_count
283 ,p_data => x_msg_data
284 );
285
286 WHEN OTHERS THEN
287 ROLLBACK TO CREATE_ACCT_SITE;
288 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
289 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
290 THEN
291 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
292 END IF;
293 -- Standard call to get message count and if count=1, get the message
294 FND_MSG_PUB.Count_And_Get (
295 p_encoded => FND_API.G_FALSE
296 ,p_count => x_msg_count
297 ,p_data => x_msg_data
298 );
299
300 END Create_acct_site;
301
302
303
304 PROCEDURE Create_Party_Site_Use(
305 p_api_version IN NUMBER,
306 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
307 p_commit IN VARCHAR2 := FND_API.g_false,
308 p_party_site_id IN NUMBER,
309 p_party_site_use_type IN VARCHAR2,
310 x_party_site_use_id OUT NOCOPY NUMBER,
311 x_return_status OUT NOCOPY VARCHAR2,
312 x_msg_count OUT NOCOPY NUMBER,
313 x_msg_data OUT NOCOPY VARCHAR2)
314 IS
315
316 l_api_name CONSTANT VARCHAR2(45) := 'Create_Party_Site_Use';
317 l_api_version CONSTANT NUMBER := 1.0;
318 l_party_site_use_rec HZ_PARTY_SITE_V2PUB.Party_Site_Use_Rec_Type;
319
320 BEGIN
321 SAVEPOINT CREATE_PARTY_SITE_USE;
322
323 -- Initialize API return status to SUCCESS
324 x_return_status := FND_API.G_RET_STS_SUCCESS;
325
326 IF FND_API.to_boolean(p_init_msg_list) THEN
327 FND_MSG_PUB.initialize;
328 END IF;
329
330 IF NOT FND_API.compatible_api_call(
331 l_api_version,
332 p_api_version,
333 l_api_name,
334 g_pkg_name
335 ) THEN
336 RAISE FND_API.g_exc_unexpected_error;
337 END IF;
338
339
340 IF (PV_DEBUG_HIGH_ON) THEN
341
342 PVX_UTILITY_PVT.debug_message('create_pty_site_use: p_party_site_id ' || p_party_site_id);
343 PVX_UTILITY_PVT.debug_message('create_pty_site_use: p_party_site_use_type ' || p_party_site_use_type);
344 END IF;
345
346 l_party_site_use_rec.party_site_id := p_party_site_id;
347 l_party_site_use_rec.site_use_type := p_party_site_use_type;
348 l_party_site_use_rec.Created_by_Module := 'PV';
349
350 HZ_PARTY_SITE_V2PUB.create_party_site_use (
351 p_init_msg_list => FND_API.G_FALSE,
352 p_party_site_use_rec => l_party_site_use_rec,
353 x_party_site_use_id => x_party_site_use_id,
354 x_return_status => x_return_status,
355 x_msg_count => x_msg_count,
356 x_msg_data => x_msg_data );
357
358
359
360 IF (PV_DEBUG_HIGH_ON) THEN
361
362 PVX_UTILITY_PVT.debug_message('create_pty_site_use: x_party_site_use_id ' || x_party_site_use_id);
363 PVX_UTILITY_PVT.debug_message('create_pty_site_use: x_return_status ' || x_return_status);
364 END IF;
365
366 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
367 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
368 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
369 RAISE FND_API.G_EXC_ERROR;
370 END IF;
371
372 FND_MSG_PUB.Count_And_Get
373 ( p_encoded => FND_API.G_FALSE,
374 p_count => x_msg_count,
375 p_data => x_msg_data
376 );
377
378
379 IF FND_API.to_Boolean( p_commit ) THEN
380 COMMIT WORK;
381 END IF;
382
383
384 EXCEPTION
385 WHEN FND_API.G_EXC_ERROR THEN
386 ROLLBACK TO CREATE_PARTY_SITE_USE;
387 x_return_status := FND_API.G_RET_STS_ERROR;
388 -- Standard call to get message count and if count=1, get the message
389 FND_MSG_PUB.Count_And_Get (
390 p_encoded => FND_API.G_FALSE
391 ,p_count => x_msg_count
392 ,p_data => x_msg_data
393 );
394
395 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
396 ROLLBACK TO CREATE_PARTY_SITE_USE;
397 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
398 -- Standard call to get message count and if count=1, get the message
399 FND_MSG_PUB.Count_And_Get (
400 p_encoded => FND_API.G_FALSE
401 ,p_count => x_msg_count
402 ,p_data => x_msg_data
403 );
404
405 WHEN OTHERS THEN
406 ROLLBACK TO CREATE_PARTY_SITE_USE;
407 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
408 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
409 THEN
410 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
411 END IF;
412 -- Standard call to get message count and if count=1, get the message
413 FND_MSG_PUB.Count_And_Get (
414 p_encoded => FND_API.G_FALSE
415 ,p_count => x_msg_count
416 ,p_data => x_msg_data
417 );
418
419
420 END Create_Party_Site_Use;
421
422 /* R12 Changes
423 * Added out parameter x_cust_acct_site_id since we plan
424 * on passing this value around
425 */
426 PROCEDURE Create_ACCT_SITE_USES (
427 p_api_version IN NUMBER
428 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
429 ,p_commit IN VARCHAR2 := FND_API.g_false
430 ,P_Cust_Account_Id IN NUMBER
431 ,P_Party_Site_Id IN NUMBER
432 ,P_Acct_Site_type IN VARCHAR2
433 ,x_return_status OUT NOCOPY VARCHAR2
434 ,x_msg_count OUT NOCOPY NUMBER
435 ,x_msg_data OUT NOCOPY VARCHAR2
436 ,x_site_use_id OUT NOCOPY NUMBER
437 ,x_cust_acct_site_id OUT NOCOPY NUMBER
438 )
439 IS
440 CURSOR C_site_use(l_acct_site_id NUMBER, l_site_type VARCHAR2) IS
441 SELECT site_use_id
442 FROM hz_cust_site_uses
443 WHERE cust_acct_site_id = l_acct_site_id
444 AND site_use_code = l_site_type;
445
446 CURSOR party_site_use(l_party_site_id NUMBER, l_site_type VARCHAR2) IS
447 SELECT party_site_use_id
448 FROM hz_party_site_uses
449 WHERE party_site_id = l_party_site_id
450 AND site_use_type = l_Site_type;
451
452 CURSOR C_location(l_party_site_id NUMBER) IS
453 Select hzl.city
454 From hz_locations hzl,hz_party_sites hps
455 Where hps.party_site_id = l_party_site_id
456 And hzl.location_id = hps.location_id;
457
458
459 l_api_version CONSTANT NUMBER := 1.0;
460 l_api_name CONSTANT VARCHAR2(45) := 'Create_ACCT_SITE_USES';
461
462 l_location VARCHAR2(60);
463 l_profile varchar2(1);
464 l_party_site_use_id number;
465
466 p_acct_site_uses_Rec HZ_CUST_ACCOUNT_SITE_V2PUB.cust_site_use_rec_type;
467 p_cust_profile_rec HZ_CUSTOMER_PROFILE_V2PUB.customer_profile_rec_type;
468
469
470
471 BEGIN
472
473 ---- Initialize---------------------
474
475 SAVEPOINT CREATE_ACCT_SITE_USES;
476
477 x_return_status := FND_API.g_ret_sts_success;
478
479 IF FND_API.to_boolean(p_init_msg_list) THEN
480 FND_MSG_PUB.initialize;
481 END IF;
482
483 IF NOT FND_API.compatible_api_call(
484 l_api_version,
485 p_api_version,
486 l_api_name,
487 g_pkg_name
488 ) THEN
489 RAISE FND_API.g_exc_unexpected_error;
490 END IF;
491
492
493 -- Intializing created_by_module as required in version 2 api for the record structure
494
495 IF (PV_DEBUG_HIGH_ON) THEN
496
497 PVX_UTILITY_PVT.debug_message('create acct_site_use:l_cust_account_id '||p_cust_account_id);
498
499 END IF;
500
501
502 Create_ACCT_SITE(p_api_version => 1.0
503 ,p_Cust_Account_Id => p_cust_account_id
504 ,p_Party_Site_Id => p_party_site_id
505 ,x_return_status => x_return_status
506 ,x_msg_count => x_msg_count
507 ,x_msg_data => x_msg_data
508 ,x_customer_site_id => x_cust_acct_site_id
509 );
510
511
512 IF (PV_DEBUG_HIGH_ON) THEN
513
514 PVX_UTILITY_PVT.debug_message('create acct_site_use:after create_site:x_return_status '||x_return_status);
515 PVX_UTILITY_PVT.debug_message('create acct_site_use:after create_site:x_cust_acct_site_id '||x_cust_acct_site_id);
516
517
518 END IF;
519
520 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
521 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
522 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
523 RAISE FND_API.G_EXC_ERROR;
524 END IF;
525
526
527 Open C_site_use(x_cust_acct_site_id, p_acct_site_type);
528 Fetch C_site_use into x_site_use_id;
529 IF (C_site_use%NOTFOUND) THEN
530
531 OPEN C_location(p_party_site_id);
532 FETCH C_location into l_location;
533 IF (C_location%NOTFOUND) THEN
534 l_location := 'NO_LOCATION';
535 END IF;
536 CLOSE C_location;
537
538 IF (PV_DEBUG_HIGH_ON) THEN
539
540 PVX_UTILITY_PVT.debug_message('create acct_site_use:l_location '||l_location);
541
542 END IF;
543
544 SELECT AUTO_SITE_NUMBERING INTO l_profile FROM AR_SYSTEM_PARAMETERS;
545
546 IF l_profile = 'N' then
547 p_acct_site_uses_Rec.location := substr(p_acct_Site_type ||' ' ||
548 l_location ||' ' ||
549 to_char(x_cust_acct_site_id), 1, 40) ;
550 END IF;
551
552 p_acct_site_uses_Rec.cust_acct_site_id := x_cust_acct_site_id;
553 p_acct_site_uses_Rec.site_use_code := p_acct_site_type ;
554 p_acct_site_uses_Rec.org_id := mo_global.get_current_org_id;
555 p_acct_site_uses_Rec.created_by_module := 'PV';
556 p_cust_profile_rec.created_by_module := 'PV';
557
558 HZ_CUST_ACCOUNT_SITE_V2PUB.create_cust_site_use (
559 p_init_msg_list => FND_API.G_FALSE,
560 p_cust_site_use_rec => p_acct_site_uses_rec,
561 p_customer_profile_rec => p_cust_profile_rec,
562 p_create_profile => FND_API.G_TRUE,
563 p_create_profile_amt => FND_API.G_TRUE,
564 x_site_use_id => x_site_use_id,
565 x_return_status => x_return_status,
566 x_msg_count => x_msg_count,
567 x_msg_data => x_msg_data );
568
569 IF (PV_DEBUG_HIGH_ON) THEN
570
571 PVX_UTILITY_PVT.debug_message('create acct_site_use:create_acct_site_use:x_return_status '||x_return_status );
572
573 PVX_UTILITY_PVT.debug_message('create acct_site_use:create_acct_site_use:x_site_use_id '||x_site_use_id);
574 END IF;
575
576 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
577 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
578 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
579 RAISE FND_API.G_EXC_ERROR;
580 END IF;
581
582 END IF; -- x_site_use not null
583
584
585 Close C_site_use;
586
587 IF (PV_DEBUG_HIGH_ON) THEN
588 PVX_UTILITY_PVT.debug_message('create acct_site_use:x_site_use_id '||x_site_use_id);
589 END IF;
590
591
592
593 IF (p_party_site_id IS NOT NULL AND p_party_site_id <> FND_API.G_MISS_NUM) AND
594 (p_acct_site_type IS NOT NULL AND p_acct_site_type <> FND_API.G_MISS_CHAR) THEN
595
596 OPEN party_site_use(p_party_site_id,p_acct_site_type);
597 FETCH party_site_use into l_party_site_use_id;
598 CLOSE party_site_use;
599
600 IF (PV_DEBUG_HIGH_ON) THEN
601 PVX_UTILITY_PVT.debug_message('create acct_site_use:create_party_site_use:l_party_site_use_id '||l_party_site_use_id);
602 END IF;
603
604 IF l_party_site_use_id = NULL then
605 Create_Party_Site_Use(
606 p_api_version => 1.0,
607 p_party_site_id => p_party_site_id,
608 p_party_site_use_type => p_acct_site_type,
609 x_party_site_use_id => l_party_site_use_id,
610 x_return_status => x_return_status,
611 x_msg_count => x_msg_count,
612 x_msg_data => x_msg_data);
613
614 IF (PV_DEBUG_HIGH_ON) THEN
615
616 PVX_UTILITY_PVT.debug_message('create acct_site_use: create_party_site_use: x_return_status '|| x_return_status);
617 END IF;
618 END IF;
619
620 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
621 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
622 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
623 RAISE FND_API.G_EXC_ERROR;
624 END IF;
625
626 END IF;---End of Party Site conditions
627
628
629
630 FND_MSG_PUB.Count_And_Get
631 ( p_encoded => FND_API.G_FALSE,
632 p_count => x_msg_count,
633 p_data => x_msg_data
634 );
635
636 IF FND_API.to_Boolean( p_commit ) THEN
637 COMMIT WORK;
638 END IF;
639
640 EXCEPTION
641 WHEN FND_API.G_EXC_ERROR THEN
642 ROLLBACK TO CREATE_ACCT_SITE_USES;
643 x_return_status := FND_API.G_RET_STS_ERROR;
644 -- Standard call to get message count and if count=1, get the message
645 FND_MSG_PUB.Count_And_Get (
646 p_encoded => FND_API.G_FALSE
647 ,p_count => x_msg_count
648 ,p_data => x_msg_data
649 );
650
651 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
652 ROLLBACK TO CREATE_ACCT_SITE_USES;
653 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
654 -- Standard call to get message count and if count=1, get the message
655 FND_MSG_PUB.Count_And_Get (
656 p_encoded => FND_API.G_FALSE
657 ,p_count => x_msg_count
658 ,p_data => x_msg_data
659 );
660
661 WHEN OTHERS THEN
662 ROLLBACK TO CREATE_ACCT_SITE_USES;
663 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
664 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
665 THEN
666 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
667 END IF;
668 -- Standard call to get message count and if count=1, get the message
669 FND_MSG_PUB.Count_And_Get (
673 );
670 p_encoded => FND_API.G_FALSE
671 ,p_count => x_msg_count
672 ,p_data => x_msg_data
674
675 END Create_acct_site_uses;
676
677
678
679 PROCEDURE Create_Contact_Role ( p_api_version IN NUMBER
680 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
681 ,p_commit IN VARCHAR2 := FND_API.g_false
682 ,p_party_id IN NUMBER := FND_API.G_MISS_NUM
683 ,p_Cust_account_id IN NUMBER
684 ,p_cust_account_site_id IN NUMBER := FND_API.G_MISS_NUM
685 ,p_Role_type IN VARCHAR2 := 'CONTACT'
686 ,p_responsibility_type IN VARCHAR2 := FND_API.G_MISS_CHAR
687 ,x_return_status OUT NOCOPY VARCHAR2
688 ,x_msg_count OUT NOCOPY NUMBER
689 ,x_msg_data OUT NOCOPY VARCHAR2
690 ,x_cust_account_role_id OUT NOCOPY NUMBER
691 )
692 IS
693 l_api_version CONSTANT NUMBER := 1.0;
694 l_api_name CONSTANT VARCHAR2(45) := 'Create_Contact_Role';
695
696 p_cust_acct_roles_rec HZ_CUST_ACCOUNT_ROLE_V2PUB.cust_account_role_rec_type;
697 p_role_resp_rec HZ_CUST_ACCOUNT_ROLE_V2PUB.role_responsibility_rec_type;
698 l_responsibility_id NUMBER;
699
700 CURSOR C_Get_Resp(role_id NUMBER, resp_type VARCHAR2) IS
701 SELECT responsibility_id
702 FROM hz_role_responsibility
703 WHERE cust_account_role_id = role_id
704 AND responsibility_type = resp_type;
705
706 BEGIN
707 SAVEPOINT CREATE_CONTACT_ROLE;
708
709 x_return_status := FND_API.g_ret_sts_success;
710
711 IF FND_API.to_boolean(p_init_msg_list) THEN
712 FND_MSG_PUB.initialize;
713 END IF;
714
715 IF NOT FND_API.compatible_api_call(
716 l_api_version,
717 p_api_version,
718 l_api_name,
719 g_pkg_name
720 ) THEN
721 RAISE FND_API.g_exc_unexpected_error;
722 END IF;
723
724
725
726 IF (PV_DEBUG_HIGH_ON) THEN
727 PVX_UTILITY_PVT.debug_message('create_contact_role: p_party_id: '||p_party_id);
728 PVX_UTILITY_PVT.debug_message('create_contact_role: p_cust_account_id: '||p_cust_account_id);
729 PVX_UTILITY_PVT.debug_message('create_contact_role: p_cust_account_site_id: '||p_cust_account_site_id);
730 PVX_UTILITY_PVT.debug_message('create_contact_role: p_role_type: '||p_role_type);
731 END IF;
732
733 p_cust_acct_roles_rec.party_id := p_party_id;
734 p_cust_acct_roles_rec.cust_account_id := p_cust_account_id;
735 p_cust_acct_roles_rec.role_type := p_role_type;
736 p_cust_acct_roles_rec.cust_acct_site_id := p_cust_account_site_id;
737 p_cust_acct_roles_rec.Created_by_Module := 'PV';
738 p_role_resp_rec.Created_by_Module := 'PV';
739
740
741 IF (PV_DEBUG_HIGH_ON) THEN
742 PVX_UTILITY_PVT.debug_message('before create cust acct roles');
743 END IF;
744
745 HZ_CUST_ACCOUNT_ROLE_V2PUB.create_cust_account_role (
746 p_init_msg_list => FND_API.G_FALSE,
747 p_cust_account_role_rec => p_cust_acct_roles_rec,
748 x_cust_account_role_id => x_cust_account_role_id,
749 x_return_status => x_return_status,
750 x_msg_count => x_msg_count,
751 x_msg_data => x_msg_data );
752
753 IF (PV_DEBUG_HIGH_ON) THEN
754
755 PVX_UTILITY_PVT.debug_message('create_contact_role:after create_cust_acct_role: x_return_status: '||x_return_status);
756
757 END IF;
758
759 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
760 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
761 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
762 RAISE FND_API.G_EXC_ERROR;
763 END IF;
764
765 IF(p_responsibility_type IS NOT NULL and p_responsibility_type <> FND_API.G_MISS_CHAR) THEN
766 OPEN C_Get_Resp(x_cust_account_role_id, p_responsibility_type);
767 FETCH C_Get_Resp INTO l_responsibility_id;
768
769 IF C_Get_Resp%NOTFOUND THEN
770
771 IF p_cust_account_site_id is not NULL AND
772 p_cust_account_site_id <> FND_API.G_MISS_NUM THEN
773 p_role_resp_rec.cust_account_role_id := x_cust_account_role_id;
774 p_role_resp_rec.responsibility_type := p_responsibility_type;
775
776 HZ_CUST_ACCOUNT_ROLE_V2PUB.create_role_responsibility (
777 p_init_msg_list => FND_API.G_FALSE,
778 p_role_responsibility_rec => p_role_resp_rec,
779 x_responsibility_id => l_responsibility_id,
780 x_return_status => x_return_status,
781 x_msg_count => x_msg_count,
782 x_msg_data => x_msg_data );
783
784
785 IF (PV_DEBUG_HIGH_ON) THEN
786 PVX_UTILITY_PVT.debug_message('create_contact_role:after create_role_resp: x_return_status: '||x_return_status);
787 END IF;
788
789 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
790 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
791 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
792 RAISE FND_API.G_EXC_ERROR;
793 END IF;
794
795 END IF; --Cust_account_site_id is not null
796 END IF;--C_Get_Resp%NOTFOUND
797 CLOSE C_Get_Resp;
798 END IF; --p_responsibility_type is not null
799
800 FND_MSG_PUB.Count_And_Get
801 ( p_encoded => FND_API.G_FALSE ,
802 p_count => x_msg_count,
803 p_data => x_msg_data
804 );
805
806 IF FND_API.to_Boolean( p_commit ) THEN
807 COMMIT WORK;
808 END IF;
809
810 EXCEPTION
811 WHEN FND_API.G_EXC_ERROR THEN
812 ROLLBACK TO CREATE_CONTACT_ROLE;
813 x_return_status := FND_API.G_RET_STS_ERROR;
814 -- Standard call to get message count and if count=1, get the message
815 FND_MSG_PUB.Count_And_Get (
816 p_encoded => FND_API.G_FALSE
817 ,p_count => x_msg_count
818 ,p_data => x_msg_data
819 );
820
821 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
822 ROLLBACK TO CREATE_CONTACT_ROLE;
823 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
824 -- Standard call to get message count and if count=1, get the message
825 FND_MSG_PUB.Count_And_Get (
826 p_encoded => FND_API.G_FALSE
827 ,p_count => x_msg_count
828 ,p_data => x_msg_data
829 );
830
831 WHEN OTHERS THEN
832 ROLLBACK TO CREATE_CONTACT_ROLE;
833 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
834 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
835 THEN
836 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
837 END IF;
838 -- Standard call to get message count and if count=1, get the message
839 FND_MSG_PUB.Count_And_Get (
840 p_encoded => FND_API.G_FALSE
841 ,p_count => x_msg_count
842 ,p_data => x_msg_data
843 );
844
845 END Create_Contact_Role;
846
847
848
849
850 PROCEDURE Get_Partner_Accnt_Id(
851 p_Partner_Party_Id IN NUMBER,
852 x_return_status OUT NOCOPY VARCHAR2,
853 x_Cust_Acct_Id OUT NOCOPY NUMBER
854 )
855 IS
856
857 CURSOR C_get_partner_accnt_id(l_Party_Id NUMBER) IS
858 SELECT cust_account_id
859 FROM hz_cust_accounts
860 WHERE party_id = l_Party_Id
861 and status = 'A';
862
863 l_msg_count number;
864 l_msg_data varchar2(200);
865
866 BEGIN
867
868 x_return_status := FND_API.G_RET_STS_SUCCESS;
869
870
871 IF (p_partner_party_id = FND_API.G_MISS_NUM or p_partner_party_id IS NULL) THEN
872 FND_MESSAGE.set_name('PV', 'PV_API_NO_PARTNER_PARTY_ID');
873 FND_MSG_PUB.add;
874 RAISE FND_API.G_EXC_ERROR;
875 END IF;
876
877
878 OPEN C_get_partner_accnt_id(p_partner_Party_Id);
879 LOOP
880 FETCH C_get_partner_accnt_id INTO x_Cust_Acct_Id;
881 IF x_Cust_Acct_Id IS NOT NULL and x_Cust_Acct_Id <> FND_API.G_MISS_NUM THEN
882 exit;
883 END IF;
884 EXIT WHEN C_get_partner_accnt_id%NOTFOUND;
885 END LOOP;
886 CLOSE C_get_partner_accnt_id;
887
888 IF x_Cust_Acct_Id IS NULL OR x_Cust_Acct_Id = FND_API.G_MISS_NUM THEN
889 Create_Customer_Account(
890 p_api_version => 1.0
891 ,P_partner_party_id => p_partner_party_id
892 ,x_return_status => x_return_status
893 ,x_msg_count => l_msg_count
894 ,x_msg_data => l_msg_data
895 ,x_acct_id => x_Cust_Acct_Id
896 );
897
898 IF (PV_DEBUG_HIGH_ON) THEN
899 PVX_UTILITY_PVT.debug_message('x_return_status from Create_customer_account : ' || x_return_status);
900 END IF;
901
902 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
903 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
904 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
905 RAISE FND_API.G_EXC_ERROR;
906 END IF;
907 END IF;
908
909 END Get_Partner_Accnt_Id;
910
911
912 /* R12 Changes
913 * Added out parameter x_cust_acct_site_id which
914 * will be passed to calls to get_cust_acct_roles
915 * throughout procedeure, any reference to
916 * l_cust_acct_site_id is a result of this R12 change
917 * Removed references to cursor party_cur since the same
918 * functionality will be taken care of before this procedure
919 * is ever called
920 * parameter p_partner_party_id changed to p_partner_id since
921 * in R12, this procedure can be called using either an organization
922 * or contact address
923 */
924 PROCEDURE get_acct_site_uses(
925 p_party_site_id IN NUMBER,
926 p_acct_site_type IN VARCHAR2,
927 p_cust_account_id IN NUMBER,
928 p_party_id IN NUMBER,
929 x_return_status OUT NOCOPY VARCHAR2,
930 x_site_use_id OUT NOCOPY number,
931 x_cust_acct_site_id OUT NOCOPY NUMBER
932 )
933 IS
934
935 CURSOR site_use_cur IS
936 select a.site_use_id, a.cust_acct_site_id
937 from hz_cust_site_uses a, hz_cust_acct_sites b
938 where b.cust_account_id = p_cust_account_id
939 and b.party_site_id = p_party_site_id
940 and a.cust_acct_site_id = b.cust_acct_site_id
941 and a.site_use_code = p_acct_site_type
942 and a.status = 'A'
943 and b.status = 'A';
944
945 l_msg_count number;
946 l_msg_data varchar2(200);
947
948 begin
949 x_return_status := FND_API.G_RET_STS_SUCCESS;
950
951 IF (PV_DEBUG_HIGH_ON) THEN
952
953 PVX_UTILITY_PVT.debug_message('site use in get_acct_site_uses = ' || p_acct_site_type);
954
955 END IF;
956
957 OPEN site_use_cur;
958 FETCH site_use_cur INTO x_site_use_id, x_cust_acct_site_id;
959
960 IF (site_use_cur%NOTFOUND) THEN
961
962 Create_ACCT_SITE_USES(
963 p_api_version => 1.0
964 ,P_Cust_Account_Id => p_cust_account_id
965 ,P_Party_Site_Id => p_party_site_id
966 ,P_Acct_Site_type => p_acct_site_type
967 ,x_return_status => x_return_status
968 ,x_msg_count => l_msg_count
969 ,x_msg_data => l_msg_data
970 ,x_site_use_id => x_site_use_id
971 ,x_cust_acct_site_id => x_cust_acct_site_id
972 );
973
974 IF (PV_DEBUG_HIGH_ON) THEN
975 PVX_UTILITY_PVT.debug_message('x_return_status from Create_ACCT_SITE_USES : ' || x_return_status);
976 END IF;
977
978 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
979 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
980 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
981 RAISE FND_API.G_EXC_ERROR;
982 END IF;
983
984 END IF;
985 close site_use_cur;
986
987 IF (PV_DEBUG_HIGH_ON) THEN
988 PVX_UTILITY_PVT.debug_message('site_use_id in get_acct_site_uses = ' || x_site_use_id);
989 END IF;
990
991 END get_acct_site_uses;
992
993 /* R12 Changes
994 * p_cust_account_site_id is no longer null as we will start passing
995 * this value in as per OM
996 * Removed paramter p_acct_site_type and any references to it in the procedure
997 * Removed reference to hz_role_responsibility from cursor cust_role
998 * Removed reference to cursor cust_role_wo_party_site
999 */
1000 PROCEDURE get_cust_acct_roles(
1001 p_contact_party_id IN NUMBER,
1002 p_cust_account_site_id IN NUMBER,
1003 p_cust_account_id IN NUMBER,
1004 x_return_status OUT NOCOPY VARCHAR2,
1005 x_cust_account_role_id OUT NOCOPY number
1006 )
1007 IS
1008
1009
1010 CURSOR cust_role IS
1011 select a.cust_account_role_id
1012 from hz_cust_account_roles a, hz_cust_acct_sites c
1013 where a.role_type = 'CONTACT'
1014 and a.party_id = p_contact_party_id
1015 and a.cust_account_id = p_cust_account_id
1016 and a.cust_acct_site_id = c.cust_acct_site_id
1017 and c.cust_acct_site_id = p_cust_account_site_id
1018 and a.cust_account_id = c.cust_account_id
1019 and c.status = 'A'
1020 and a.status = 'A';
1021
1022 l_msg_count number;
1023 l_msg_data varchar2(200);
1024
1025
1026 begin
1027
1028 x_return_status := FND_API.G_RET_STS_SUCCESS;
1029
1030 IF (PV_DEBUG_HIGH_ON) THEN
1031
1032 PVX_UTILITY_PVT.debug_message('p_contact_party_id = ' || p_contact_party_id);
1033 END IF;
1034
1035
1036 IF (p_cust_account_site_id IS NULL and p_cust_account_site_id <> FND_API.G_MISS_NUM) THEN
1037 FND_MESSAGE.Set_Name('PV', 'PV_CUST_ACCOUNT_ROLE_ERROR');
1038 FND_MESSAGE.Set_Token('ID', to_char( p_contact_party_id), FALSE);
1039 FND_MSG_PUB.ADD;
1040 RAISE FND_API.G_EXC_ERROR;
1041 END IF;
1042
1043 OPEN cust_role;
1044 FETCH cust_role INTO x_cust_account_role_id;
1045
1046 IF (cust_role%NOTFOUND) THEN
1047
1048 Create_Contact_Role (
1049 p_api_version => 1.0
1050 ,p_party_id => p_contact_party_id
1051 ,p_Cust_account_id => p_cust_account_id
1052 ,p_cust_account_site_id => p_cust_account_site_id
1053 ,p_Role_type => 'CONTACT'
1054 ,p_responsibility_type => NULL
1055 ,x_return_status => x_return_status
1056 ,x_msg_count => l_msg_count
1057 ,x_msg_data => l_msg_data
1058 ,x_cust_account_role_id => x_cust_account_role_id
1059 );
1060
1061 IF (PV_DEBUG_HIGH_ON) THEN
1062
1063 PVX_UTILITY_PVT.debug_message('x_return_status from get_cust_acct_roles = '|| x_return_status);
1064
1065 END IF;
1066
1067 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1068 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1069 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
1070 RAISE FND_API.G_EXC_ERROR;
1071 END IF;
1072
1073 END IF;
1074 CLOSE cust_role;
1075 IF (PV_DEBUG_HIGH_ON) THEN
1076
1077 PVX_UTILITY_PVT.debug_message('x_cust_account_role_id in get_cust_acct_roles = '|| x_cust_account_role_id);
1078
1079 END IF;
1080
1081
1082 END get_cust_acct_roles;
1083
1084
1085 PROCEDURE Create_Party_Site(
1086 p_api_version IN NUMBER,
1087 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1088 p_commit IN VARCHAR2 := FND_API.g_false,
1089 p_party_site_rec IN PARTY_SITE_REC_TYPE,
1093 x_msg_data OUT NOCOPY VARCHAR2
1090 x_return_status OUT NOCOPY VARCHAR2,
1091 x_party_site_id OUT NOCOPY NUMBER,
1092 x_msg_count OUT NOCOPY NUMBER,
1094 )
1095 IS
1096
1097 /* CURSOR c_site_use_type(p_type_name VARCHAR2) IS
1098 SELECT site_use_type_id FROM HZ_SITE_USE_TYPES
1099 WHERE name = p_type_name;*/
1100
1101 l_api_version CONSTANT NUMBER := 1.0;
1102 l_api_name VARCHAR2(40) := 'Create_Party_Site';
1103 l_site_use_type_id NUMBER;
1104 l_location_rec HZ_LOCATION_V2PUB.Location_Rec_Type;
1105 l_location_id NUMBER;
1106 l_party_site_rec HZ_PARTY_SITE_V2PUB.Party_Site_Rec_Type;
1107 l_party_site_use_rec HZ_PARTY_SITE_V2PUB.Party_Site_Use_Rec_Type;
1108 l_party_site_use_id NUMBER;
1109 l_party_site_number NUMBER;
1110
1111 BEGIN
1112 SAVEPOINT CREATE_PARTY_SITE;
1113
1114 IF FND_API.to_boolean(p_init_msg_list) THEN
1115 FND_MSG_PUB.initialize;
1116 END IF;
1117
1118 IF NOT FND_API.compatible_api_call(
1119 l_api_version,
1120 p_api_version,
1121 l_api_name,
1122 g_pkg_name
1123 ) THEN
1124 RAISE FND_API.g_exc_unexpected_error;
1125 END IF;
1126
1127 -- Initialize API return status to SUCCESS
1128 x_return_status := FND_API.G_RET_STS_SUCCESS;
1129
1130
1131 l_party_site_rec.Created_by_Module := 'PV';
1132 l_party_site_use_rec.Created_by_Module := 'PV';
1133 l_location_rec.Created_by_Module := 'PV';
1134
1135
1136 l_location_rec.address1 := p_party_site_rec.location.address1;
1137 l_location_rec.address2 := p_party_site_rec.location.address2;
1138 l_location_rec.address3 := p_party_site_rec.location.address3;
1139 l_location_rec.address4 := p_party_site_rec.location.address4;
1140 l_location_rec.country := p_party_site_rec.location.country;
1141 l_location_rec.city := p_party_site_rec.location.city;
1142 l_location_rec.postal_code := p_party_site_rec.location.postal_code;
1143 l_location_rec.state := p_party_site_rec.location.state;
1144 l_location_rec.province := p_party_site_rec.location.province;
1145 l_location_rec.county := p_party_site_rec.location.county;
1146
1147
1148 l_location_rec.ORIG_SYSTEM_REFERENCE := -1;
1149 l_location_rec.CONTENT_SOURCE_TYPE := 'USER_ENTERED';
1150
1151 HZ_LOCATION_V2PUB.create_location (
1152 p_init_msg_list => FND_API.G_FALSE,
1153 p_location_rec => l_location_rec,
1154 x_location_id => l_location_id,
1155 x_return_status => x_return_status,
1156 x_msg_count => x_msg_count ,
1157 x_msg_data => x_msg_data );
1158
1159
1160 IF (PV_DEBUG_HIGH_ON) THEN
1161 PVX_UTILITY_PVT.debug_message('create_party_site:after create_loc:l_location_id '||l_location_id);
1162 PVX_UTILITY_PVT.debug_message('create_party_site:after create_loc:x_return_status '||x_return_status);
1163 END IF;
1164
1165 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1166 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1167 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
1168 RAISE FND_API.G_EXC_ERROR;
1169 END IF;
1170
1171 l_party_site_rec.party_id := p_party_site_rec.party_id;
1172 l_party_site_rec.location_id := l_location_id;
1173 l_party_site_rec.identifying_address_flag := p_party_site_rec.primary_flag;
1174
1175 HZ_PARTY_SITE_V2PUB.create_party_site (
1176 p_init_msg_list => FND_API.G_FALSE,
1177 p_party_site_rec => l_party_site_rec,
1178 x_party_site_id => x_party_site_id,
1179 x_party_site_number => l_party_site_number,
1180 x_return_status => x_return_status,
1181 x_msg_count => x_msg_count,
1182 x_msg_data => x_msg_data );
1183
1184
1185 IF (PV_DEBUG_HIGH_ON) THEN
1186 PVX_UTILITY_PVT.debug_message('create_party_site:after create_site:x_party_site_id '||x_party_site_id);
1187
1188 PVX_UTILITY_PVT.debug_message('create_party_site:after create_site:x_return_status '||x_return_status);
1189 END IF;
1190
1191 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1192 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1193 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
1194 RAISE FND_API.G_EXC_ERROR;
1195 END IF;
1196
1197 l_party_site_use_rec.party_site_id := x_party_site_id;
1198 l_party_site_use_rec.site_use_type := p_party_site_rec.party_site_use_type;
1199
1200
1201 HZ_PARTY_SITE_V2PUB.create_party_site_use (
1202 p_init_msg_list => FND_API.G_FALSE,
1203 p_party_site_use_rec => l_party_site_use_rec,
1204 x_party_site_use_id => l_party_site_use_id,
1205 x_return_status => x_return_status,
1206 x_msg_count => x_msg_count,
1207 x_msg_data => x_msg_data );
1208
1209
1210
1211 IF (PV_DEBUG_HIGH_ON) THEN
1212
1213 PVX_UTILITY_PVT.debug_message('create_party_site:after create_site_use:x_return_status '||x_return_status);
1214
1215 PVX_UTILITY_PVT.debug_message('create_party_site:after create_site_use:l_party_site_use_id '||l_party_site_use_id);
1216 END IF;
1217
1218 IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1219 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1220 ELSIF x_return_status = FND_API.G_RET_STS_ERROR THEN
1221 RAISE FND_API.G_EXC_ERROR;
1222 END IF;
1223
1224 FND_MSG_PUB.Count_And_Get
1225 ( p_encoded => FND_API.G_FALSE,
1226 p_count => x_msg_count,
1227 p_data => x_msg_data
1228 );
1229
1230 IF FND_API.to_Boolean( p_commit ) THEN
1231 COMMIT WORK;
1232 END IF;
1233
1234 EXCEPTION
1235 WHEN FND_API.G_EXC_ERROR THEN
1236 ROLLBACK TO CREATE_PARTY_SITE;
1237 x_return_status := FND_API.G_RET_STS_ERROR;
1238 -- Standard call to get message count and if count=1, get the message
1239 FND_MSG_PUB.Count_And_Get (
1240 p_encoded => FND_API.G_FALSE
1241 ,p_count => x_msg_count
1242 ,p_data => x_msg_data
1243 );
1244
1245 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1246 ROLLBACK TO CREATE_PARTY_SITE;
1247 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1248 -- Standard call to get message count and if count=1, get the message
1249 FND_MSG_PUB.Count_And_Get (
1250 p_encoded => FND_API.G_FALSE
1251 ,p_count => x_msg_count
1252 ,p_data => x_msg_data
1253 );
1254
1255 WHEN OTHERS THEN
1256 ROLLBACK TO CREATE_PARTY_SITE;
1257 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1258 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1259 THEN
1260 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1261 END IF;
1262 -- Standard call to get message count and if count=1, get the message
1263 FND_MSG_PUB.Count_And_Get (
1264 p_encoded => FND_API.G_FALSE
1265 ,p_count => x_msg_count
1266 ,p_data => x_msg_data
1267 );
1268
1269 END Create_Party_Site;
1270
1271
1272 END PV_PARTNER_ACCNT_MGMT_PVT;