[Home] [Help]
PACKAGE BODY: APPS.HZ_CUST_ACCT_SITE_BO_PUB
Source
1 PACKAGE BODY hz_cust_acct_site_bo_pub AS
2 /*$Header: ARHBCSBB.pls 120.15.12010000.2 2008/10/16 22:27:31 awu ship $ */
3
4 -- PRIVATE PROCEDURE assign_cust_acct_site_rec
5 --
6 -- DESCRIPTION
7 -- Assign attribute value from customer account site object to plsql record.
8 --
9 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
10 --
11 -- ARGUMENTS
12 -- IN:
13 -- p_cust_acct_site_obj Customer account site object.
14 -- p_party_site_id Party site Id.
15 -- p_cust_acct_id Customer account Id.
16 -- p_cust_acct_site_id Customer account site Id.
17 -- p_cust_acct_site_os Customer account site original system.
18 -- p_cust_acct_site_osr Customer account site original system reference.
19 -- p_create_or_update Create or update flag.
20 -- IN/OUT:
21 -- px_cust_acct_site_rec Customer Account Site plsql record.
22 --
23 -- NOTES
24 --
25 -- MODIFICATION HISTORY
26 --
27 -- 14-DEC-2004 Arnold Ng Created.
28 --
29
30 PROCEDURE assign_cust_acct_site_rec(
31 p_cust_acct_site_obj IN HZ_CUST_ACCT_SITE_BO,
32 p_party_site_id IN NUMBER,
33 p_cust_acct_id IN NUMBER,
34 p_cust_acct_site_id IN NUMBER,
35 p_cust_acct_site_os IN VARCHAR2,
36 p_cust_acct_site_osr IN VARCHAR2,
37 p_create_or_update IN VARCHAR2 := 'C',
38 px_cust_acct_site_rec IN OUT NOCOPY HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE
39 );
40
41 -- PRIVATE PROCEDURE assign_cust_acct_site_rec
42 --
43 -- DESCRIPTION
44 -- Assign attribute value from customer account site object to plsql record.
45 --
46 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
47 --
48 -- ARGUMENTS
49 -- IN:
50 -- p_cust_acct_site_obj Customer account site object.
51 -- p_party_site_id Party site Id.
52 -- p_cust_acct_id Customer account Id.
53 -- p_cust_acct_site_id Customer account site Id.
54 -- p_cust_acct_site_os Customer account site original system.
55 -- p_cust_acct_site_osr Customer account site original system reference.
56 -- p_create_or_update Create or update flag.
57 -- IN/OUT:
58 -- px_cust_acct_site_rec Customer Account Site plsql record.
59 --
60 -- NOTES
61 --
62 -- MODIFICATION HISTORY
63 --
64 -- 14-DEC-2004 Arnold Ng Created.
65 --
66
67 PROCEDURE assign_cust_acct_site_rec(
68 p_cust_acct_site_obj IN HZ_CUST_ACCT_SITE_BO,
69 p_party_site_id IN NUMBER,
70 p_cust_acct_id IN NUMBER,
71 p_cust_acct_site_id IN NUMBER,
72 p_cust_acct_site_os IN VARCHAR2,
73 p_cust_acct_site_osr IN VARCHAR2,
74 p_create_or_update IN VARCHAR2 := 'C',
75 px_cust_acct_site_rec IN OUT NOCOPY HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE
76 ) IS
77 BEGIN
78 px_cust_acct_site_rec.cust_acct_site_id := p_cust_acct_site_id;
79 px_cust_acct_site_rec.party_site_id := p_party_site_id;
80 px_cust_acct_site_rec.cust_account_id := p_cust_acct_id;
81 px_cust_acct_site_rec.attribute_category := p_cust_acct_site_obj.attribute_category;
82 px_cust_acct_site_rec.attribute1 := p_cust_acct_site_obj.attribute1;
83 px_cust_acct_site_rec.attribute2 := p_cust_acct_site_obj.attribute2;
84 px_cust_acct_site_rec.attribute3 := p_cust_acct_site_obj.attribute3;
85 px_cust_acct_site_rec.attribute4 := p_cust_acct_site_obj.attribute4;
86 px_cust_acct_site_rec.attribute5 := p_cust_acct_site_obj.attribute5;
87 px_cust_acct_site_rec.attribute6 := p_cust_acct_site_obj.attribute6;
88 px_cust_acct_site_rec.attribute7 := p_cust_acct_site_obj.attribute7;
89 px_cust_acct_site_rec.attribute8 := p_cust_acct_site_obj.attribute8;
90 px_cust_acct_site_rec.attribute9 := p_cust_acct_site_obj.attribute9;
91 px_cust_acct_site_rec.attribute10 := p_cust_acct_site_obj.attribute10;
92 px_cust_acct_site_rec.attribute11 := p_cust_acct_site_obj.attribute11;
93 px_cust_acct_site_rec.attribute12 := p_cust_acct_site_obj.attribute12;
94 px_cust_acct_site_rec.attribute13 := p_cust_acct_site_obj.attribute13;
95 px_cust_acct_site_rec.attribute14 := p_cust_acct_site_obj.attribute14;
96 px_cust_acct_site_rec.attribute15 := p_cust_acct_site_obj.attribute15;
97 px_cust_acct_site_rec.attribute16 := p_cust_acct_site_obj.attribute16;
98 px_cust_acct_site_rec.attribute17 := p_cust_acct_site_obj.attribute17;
99 px_cust_acct_site_rec.attribute18 := p_cust_acct_site_obj.attribute18;
100 px_cust_acct_site_rec.attribute19 := p_cust_acct_site_obj.attribute19;
101 px_cust_acct_site_rec.attribute20 := p_cust_acct_site_obj.attribute20;
102 px_cust_acct_site_rec.global_attribute_category := p_cust_acct_site_obj.global_attribute_category;
103 px_cust_acct_site_rec.global_attribute1 := p_cust_acct_site_obj.global_attribute1;
104 px_cust_acct_site_rec.global_attribute2 := p_cust_acct_site_obj.global_attribute2;
105 px_cust_acct_site_rec.global_attribute3 := p_cust_acct_site_obj.global_attribute3;
106 px_cust_acct_site_rec.global_attribute4 := p_cust_acct_site_obj.global_attribute4;
107 px_cust_acct_site_rec.global_attribute5 := p_cust_acct_site_obj.global_attribute5;
108 px_cust_acct_site_rec.global_attribute6 := p_cust_acct_site_obj.global_attribute6;
109 px_cust_acct_site_rec.global_attribute7 := p_cust_acct_site_obj.global_attribute7;
110 px_cust_acct_site_rec.global_attribute8 := p_cust_acct_site_obj.global_attribute8;
111 px_cust_acct_site_rec.global_attribute9 := p_cust_acct_site_obj.global_attribute9;
112 px_cust_acct_site_rec.global_attribute10 := p_cust_acct_site_obj.global_attribute10;
113 px_cust_acct_site_rec.global_attribute11 := p_cust_acct_site_obj.global_attribute11;
114 px_cust_acct_site_rec.global_attribute12 := p_cust_acct_site_obj.global_attribute12;
115 px_cust_acct_site_rec.global_attribute13 := p_cust_acct_site_obj.global_attribute13;
116 px_cust_acct_site_rec.global_attribute14 := p_cust_acct_site_obj.global_attribute14;
117 px_cust_acct_site_rec.global_attribute15 := p_cust_acct_site_obj.global_attribute15;
118 px_cust_acct_site_rec.global_attribute16 := p_cust_acct_site_obj.global_attribute16;
119 px_cust_acct_site_rec.global_attribute17 := p_cust_acct_site_obj.global_attribute17;
120 px_cust_acct_site_rec.global_attribute18 := p_cust_acct_site_obj.global_attribute18;
121 px_cust_acct_site_rec.global_attribute19 := p_cust_acct_site_obj.global_attribute19;
122 px_cust_acct_site_rec.global_attribute20 := p_cust_acct_site_obj.global_attribute20;
123 IF(p_cust_acct_site_obj.status in ('A','I')) THEN
124 px_cust_acct_site_rec.status := p_cust_acct_site_obj.status;
125 END IF;
126 px_cust_acct_site_rec.customer_category_code := p_cust_acct_site_obj.customer_category_code;
127 px_cust_acct_site_rec.language := p_cust_acct_site_obj.language;
128 px_cust_acct_site_rec.key_account_flag := p_cust_acct_site_obj.key_account_flag;
129 px_cust_acct_site_rec.tp_header_id := p_cust_acct_site_obj.tp_header_id;
130 px_cust_acct_site_rec.ece_tp_location_code := p_cust_acct_site_obj.ece_tp_location_code;
131 px_cust_acct_site_rec.primary_specialist_id := p_cust_acct_site_obj.primary_specialist_id;
132 px_cust_acct_site_rec.secondary_specialist_id := p_cust_acct_site_obj.secondary_specialist_id;
133 px_cust_acct_site_rec.territory_id := p_cust_acct_site_obj.territory_id;
134 px_cust_acct_site_rec.territory := p_cust_acct_site_obj.territory;
135 px_cust_acct_site_rec.translated_customer_name := p_cust_acct_site_obj.translated_customer_name;
136 IF(p_create_or_update = 'C') THEN
137 px_cust_acct_site_rec.orig_system := p_cust_acct_site_os;
138 px_cust_acct_site_rec.orig_system_reference := p_cust_acct_site_osr;
139 px_cust_acct_site_rec.created_by_module := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
140 END IF;
141 px_cust_acct_site_rec.org_id := p_cust_acct_site_obj.org_id;
142 END assign_cust_acct_site_rec;
143
144 -- PROCEDURE do_create_cust_acct_site_bo
145 --
146 -- DESCRIPTION
147 -- Create customer account site business object.
148 PROCEDURE do_create_cust_acct_site_bo(
149 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
150 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
151 p_cust_acct_site_obj IN OUT NOCOPY HZ_CUST_ACCT_SITE_BO,
152 p_created_by_module IN VARCHAR2,
153 p_obj_source IN VARCHAR2 := null,
154 x_return_status OUT NOCOPY VARCHAR2,
155 x_msg_count OUT NOCOPY NUMBER,
156 x_msg_data OUT NOCOPY VARCHAR2,
157 x_cust_acct_site_id OUT NOCOPY NUMBER,
158 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
159 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
160 px_parent_acct_id IN OUT NOCOPY NUMBER,
161 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
162 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
163 ) IS
164 l_debug_prefix VARCHAR2(30) := '';
165 l_cust_acct_site_rec HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE;
166
167 l_ps_id NUMBER;
168 l_ps_os VARCHAR2(30);
169 l_ps_osr VARCHAR2(255);
170
171 l_acct_party_id NUMBER;
172 l_acct_party_type VARCHAR2(30);
173 l_acct_party_os VARCHAR2(30);
174 l_acct_party_osr VARCHAR2(255);
175
176 l_valid_obj BOOLEAN;
177 l_bus_object HZ_REGISTRY_VALIDATE_BO_PVT.COMPLETENESS_REC_TYPE;
178 l_cbm VARCHAR2(30);
179
180 CURSOR get_acct_party(l_acct_id NUMBER) IS
181 SELECT p.party_id, decode(p.party_type, 'ORGANIZATION', 'ORG', 'PERSON', 'PERSON')
182 FROM HZ_PARTIES p, HZ_CUST_ACCOUNTS a
183 WHERE p.party_id = a.party_id
184 AND a.cust_account_id = l_acct_id;
185
186 CURSOR get_ps_id(l_os VARCHAR2, l_osr VARCHAR2) IS
187 SELECT ps.party_site_id
188 FROM HZ_PARTY_SITES ps, HZ_ORIG_SYS_REFERENCES ref
189 WHERE ref.owner_table_id = ps.party_site_id
190 AND ref.owner_table_name = 'HZ_PARTY_SITES'
191 AND ref.orig_system = l_os
192 AND ref.orig_system_reference = l_osr
193 AND ref.status = 'A'
194 AND rownum = 1;
195
196 BEGIN
197 -- Standard start of API savepoint
198 SAVEPOINT do_create_cas_bo_pub;
199
200 -- initialize API return status to success.
201 x_return_status := FND_API.G_RET_STS_SUCCESS;
202
203 -- Initialize message list if p_init_msg_list is set to TRUE.
204 IF FND_API.to_Boolean(p_init_msg_list) THEN
205 FND_MSG_PUB.initialize;
206 END IF;
207
208 -- Debug info.
209 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
210 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_bo(+)',
211 p_prefix=>l_debug_prefix,
212 p_msg_level=>fnd_log.level_procedure);
213 END IF;
214
215 -- initialize Global variable
216 HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
217 IF(p_created_by_module IS NULL) THEN
218 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
219 ELSE
220 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
221 END IF;
222
223 -- Base on p_validate_bo_flag, check the completeness of business objects
224 IF(p_validate_bo_flag = FND_API.G_TRUE) THEN
225 HZ_REGISTRY_VALIDATE_BO_PVT.get_bus_obj_struct(
226 p_bus_object_code => 'CUST_ACCT_SITE',
227 x_bus_object => l_bus_object
228 );
229 l_valid_obj := HZ_REGISTRY_VALIDATE_BO_PVT.is_cas_bo_comp(
230 p_cas_objs => HZ_CUST_ACCT_SITE_BO_TBL(p_cust_acct_site_obj),
231 p_bus_object => l_bus_object
232 );
233 IF NOT(l_valid_obj) THEN
234 RAISE fnd_api.g_exc_error;
235 END IF;
236 END IF;
237
238 -- check pass in parent_id and parent_os+osr
239 hz_registry_validate_bo_pvt.validate_parent_id(
240 px_parent_id => px_parent_acct_id,
241 px_parent_os => px_parent_acct_os,
242 px_parent_osr => px_parent_acct_osr,
243 p_parent_obj_type => 'CUST_ACCT',
244 x_return_status => x_return_status,
245 x_msg_count => x_msg_count,
246 x_msg_data => x_msg_data);
247
248 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
249 RAISE FND_API.G_EXC_ERROR;
250 END IF;
251
252 -- check pass in party_site_id and party_site_os+osr
253 l_ps_id := p_cust_acct_site_obj.party_site_id;
254 l_ps_os := p_cust_acct_site_obj.party_site_os;
255 l_ps_osr := p_cust_acct_site_obj.party_site_osr;
256
257 hz_registry_validate_bo_pvt.validate_parent_id(
258 px_parent_id => l_ps_id,
259 px_parent_os => l_ps_os,
260 px_parent_osr => l_ps_osr,
261 p_parent_obj_type => 'PARTY_SITE',
262 x_return_status => x_return_status,
263 x_msg_count => x_msg_count,
264 x_msg_data => x_msg_data);
265
266 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
267 RAISE FND_API.G_EXC_ERROR;
268 END IF;
269
270 x_cust_acct_site_id := p_cust_acct_site_obj.cust_acct_site_id;
271 x_cust_acct_site_os := p_cust_acct_site_obj.orig_system;
272 x_cust_acct_site_osr := p_cust_acct_site_obj.orig_system_reference;
273
274 -- check if pass in cust_account_site_id and os+osr
275 hz_registry_validate_bo_pvt.validate_ssm_id(
276 px_id => x_cust_acct_site_id,
277 px_os => x_cust_acct_site_os,
278 px_osr => x_cust_acct_site_osr,
279 p_org_id => p_cust_acct_site_obj.org_id,
280 p_obj_type => 'HZ_CUST_ACCT_SITES_ALL',
281 p_create_or_update => 'C',
282 x_return_status => x_return_status,
283 x_msg_count => x_msg_count,
284 x_msg_data => x_msg_data);
285
286 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
287 RAISE FND_API.G_EXC_ERROR;
288 END IF;
289
290 -- from p_parent_acct_id, get parent party_id of the account, then
291 -- use this party_id as px_parent_id of party site
292 OPEN get_acct_party(px_parent_acct_id);
293 FETCH get_acct_party INTO l_acct_party_id, l_acct_party_type;
294 CLOSE get_acct_party;
295
296 IF l_acct_party_id IS NULL THEN
297 RAISE FND_API.G_EXC_ERROR;
298 END IF;
299
300 ----------------------------------
301 -- Assign cust account site record
302 ----------------------------------
303 assign_cust_acct_site_rec(
304 p_cust_acct_site_obj => p_cust_acct_site_obj,
305 p_party_site_id => l_ps_id,
306 p_cust_acct_id => px_parent_acct_id,
307 p_cust_acct_site_id => x_cust_acct_site_id,
308 p_cust_acct_site_os => x_cust_acct_site_os,
309 p_cust_acct_site_osr => x_cust_acct_site_osr,
310 px_cust_acct_site_rec => l_cust_acct_site_rec
311 );
312
313 HZ_CUST_ACCOUNT_SITE_V2PUB.create_cust_acct_site (
314 p_cust_acct_site_rec => l_cust_acct_site_rec,
315 x_cust_acct_site_id => x_cust_acct_site_id,
316 x_return_status => x_return_status,
317 x_msg_count => x_msg_count,
318 x_msg_data => x_msg_data
319 );
320
321 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
322 RAISE FND_API.G_EXC_ERROR;
323 END IF;
324
325 -- assign cust_acct_site_id
326 p_cust_acct_site_obj.cust_acct_site_id := x_cust_acct_site_id;
327 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
328
329 -------------------------------------
330 -- Call cust account contact v2pub api
331 -------------------------------------
332 -- Parent of cust account contact is cust account site
333 -- so pass x_cust_acct_site_id, x_cust_acct_site_os and x_cust_acct_site_osr
334 IF((p_cust_acct_site_obj.cust_acct_contact_objs IS NOT NULL) AND
335 (p_cust_acct_site_obj.cust_acct_contact_objs.COUNT > 0)) THEN
336 HZ_CUST_ACCT_CONTACT_BO_PVT.save_cust_acct_contacts(
337 p_cac_objs => p_cust_acct_site_obj.cust_acct_contact_objs,
338 p_create_update_flag => 'C',
339 p_obj_source => p_obj_source,
340 x_return_status => x_return_status,
341 x_msg_count => x_msg_count,
342 x_msg_data => x_msg_data,
343 p_parent_id => x_cust_acct_site_id,
344 p_parent_os => x_cust_acct_site_os,
345 p_parent_osr => x_cust_acct_site_osr,
346 p_parent_obj_type => 'CUST_ACCT_SITE'
347 );
348
349 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
350 RAISE FND_API.G_EXC_ERROR;
351 END IF;
352 END IF;
353
354 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
355
356 -------------------------------------
357 -- Call cust account site use v2pub api
358 -------------------------------------
359 -- create cust account site uses will include cust acct site use plus site use profile
360 -- need to put customer account id and customer account site id
361 IF((p_cust_acct_site_obj.cust_acct_site_use_objs IS NOT NULL) AND
362 (p_cust_acct_site_obj.cust_acct_site_use_objs.COUNT > 0)) THEN
363 HZ_CUST_ACCT_SITE_BO_PVT.create_cust_site_uses(
364 p_casu_objs => p_cust_acct_site_obj.cust_acct_site_use_objs,
365 p_ca_id => px_parent_acct_id,
366 p_cas_id => x_cust_acct_site_id,
367 p_parent_os => x_cust_acct_site_os,
368 x_return_status => x_return_status,
369 x_msg_count => x_msg_count,
370 x_msg_data => x_msg_data
371 );
372
373 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
374 RAISE FND_API.G_EXC_ERROR;
375 END IF;
376 END IF;
377
378 -- reset Global variable
379 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
380 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
381
382 -- Debug info.
383 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
384 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
385 p_msg_data=>x_msg_data,
386 p_msg_type=>'WARNING',
387 p_msg_level=>fnd_log.level_exception);
388 END IF;
389 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
390 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_bo(-)',
391 p_prefix=>l_debug_prefix,
392 p_msg_level=>fnd_log.level_procedure);
393 END IF;
394
395 EXCEPTION
396 WHEN fnd_api.g_exc_error THEN
397 ROLLBACK TO do_create_cas_bo_pub;
398
399 -- reset Global variable
400 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
401 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
402
403 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
404 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
405 FND_MSG_PUB.ADD;
406
407 x_return_status := fnd_api.g_ret_sts_error;
408
409 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
410 p_count => x_msg_count,
411 p_data => x_msg_data);
412
413 -- Debug info.
414 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
415 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
416 p_msg_data=>x_msg_data,
417 p_msg_type=>'ERROR',
418 p_msg_level=>fnd_log.level_error);
419 END IF;
420 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
421 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_bo(-)',
422 p_prefix=>l_debug_prefix,
423 p_msg_level=>fnd_log.level_procedure);
424 END IF;
425
426 WHEN fnd_api.g_exc_unexpected_error THEN
427 ROLLBACK TO do_create_cas_bo_pub;
428
429 -- reset Global variable
430 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
431 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
432
433 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
434 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
435 FND_MSG_PUB.ADD;
436
437 x_return_status := fnd_api.g_ret_sts_unexp_error;
438
439 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
440 p_count => x_msg_count,
441 p_data => x_msg_data);
442
443 -- Debug info.
444 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
445 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
446 p_msg_data=>x_msg_data,
447 p_msg_type=>'UNEXPECTED ERROR',
448 p_msg_level=>fnd_log.level_error);
449 END IF;
450 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
451 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_bo(-)',
452 p_prefix=>l_debug_prefix,
453 p_msg_level=>fnd_log.level_procedure);
454 END IF;
455
456 WHEN OTHERS THEN
457 ROLLBACK TO do_create_cas_bo_pub;
458
459 -- reset Global variable
460 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
461 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
462
463 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
464 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
465 FND_MSG_PUB.ADD;
466
467 x_return_status := fnd_api.g_ret_sts_unexp_error;
468
469 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
470 fnd_message.set_token('ERROR' ,SQLERRM);
471 fnd_msg_pub.add;
472
473 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
474 p_count => x_msg_count,
475 p_data => x_msg_data);
476
477 -- Debug info.
478 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
479 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
480 p_msg_data=>x_msg_data,
481 p_msg_type=>'SQL ERROR',
482 p_msg_level=>fnd_log.level_error);
483 END IF;
484 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
485 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_bo(-)',
486 p_prefix=>l_debug_prefix,
487 p_msg_level=>fnd_log.level_procedure);
488 END IF;
489 END do_create_cust_acct_site_bo;
490
491 PROCEDURE create_cust_acct_site_bo(
492 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
493 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
494 p_cust_acct_site_obj IN HZ_CUST_ACCT_SITE_BO,
495 p_created_by_module IN VARCHAR2,
496 x_return_status OUT NOCOPY VARCHAR2,
497 x_msg_count OUT NOCOPY NUMBER,
498 x_msg_data OUT NOCOPY VARCHAR2,
499 x_cust_acct_site_id OUT NOCOPY NUMBER,
500 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
501 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
502 px_parent_acct_id IN OUT NOCOPY NUMBER,
503 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
504 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
505 ) IS
506 l_cas_obj HZ_CUST_ACCT_SITE_BO;
507 BEGIN
508 l_cas_obj := p_cust_acct_site_obj;
509 do_create_cust_acct_site_bo(
510 p_init_msg_list => p_init_msg_list,
511 p_validate_bo_flag => p_validate_bo_flag,
512 p_cust_acct_site_obj => l_cas_obj,
513 p_created_by_module => p_created_by_module,
514 p_obj_source => null,
515 x_return_status => x_return_status,
516 x_msg_count => x_msg_count,
517 x_msg_data => x_msg_data,
518 x_cust_acct_site_id => x_cust_acct_site_id,
519 x_cust_acct_site_os => x_cust_acct_site_os,
520 x_cust_acct_site_osr => x_cust_acct_site_osr,
521 px_parent_acct_id => px_parent_acct_id,
522 px_parent_acct_os => px_parent_acct_os,
523 px_parent_acct_osr => px_parent_acct_osr
524 );
525 END create_cust_acct_site_bo;
526
527 PROCEDURE create_cust_acct_site_bo(
528 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
529 p_cust_acct_site_obj IN HZ_CUST_ACCT_SITE_BO,
530 p_created_by_module IN VARCHAR2,
531 p_obj_source IN VARCHAR2 := null,
532 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
533 x_return_status OUT NOCOPY VARCHAR2,
534 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
535 x_return_obj OUT NOCOPY HZ_CUST_ACCT_SITE_BO,
536 x_cust_acct_site_id OUT NOCOPY NUMBER,
537 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
538 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
539 px_parent_acct_id IN OUT NOCOPY NUMBER,
540 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
541 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
542 ) IS
543 l_msg_data VARCHAR2(2000);
544 l_msg_count NUMBER;
545 l_cas_obj HZ_CUST_ACCT_SITE_BO;
546 BEGIN
547 l_cas_obj := p_cust_acct_site_obj;
548 do_create_cust_acct_site_bo(
549 p_init_msg_list => fnd_api.g_true,
550 p_validate_bo_flag => p_validate_bo_flag,
551 p_cust_acct_site_obj => l_cas_obj,
552 p_created_by_module => p_created_by_module,
553 p_obj_source => p_obj_source,
554 x_return_status => x_return_status,
555 x_msg_count => l_msg_count,
556 x_msg_data => l_msg_data,
557 x_cust_acct_site_id => x_cust_acct_site_id,
558 x_cust_acct_site_os => x_cust_acct_site_os,
559 x_cust_acct_site_osr => x_cust_acct_site_osr,
560 px_parent_acct_id => px_parent_acct_id,
561 px_parent_acct_os => px_parent_acct_os,
562 px_parent_acct_osr => px_parent_acct_osr
563 );
564 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
565 x_return_status => x_return_status,
566 x_msg_count => l_msg_count,
567 x_msg_data => l_msg_data);
568 IF FND_API.to_Boolean(p_return_obj_flag) THEN
569 x_return_obj := l_cas_obj;
570 END IF;
571 END create_cust_acct_site_bo;
572
573 -- PROCEDURE update_cust_acct_site_bo
574 --
575 -- DESCRIPTION
576 -- Update customer account site business object.
577 PROCEDURE update_cust_acct_site_bo(
578 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
579 p_cust_acct_site_obj IN HZ_CUST_ACCT_SITE_BO,
580 p_created_by_module IN VARCHAR2,
581 x_return_status OUT NOCOPY VARCHAR2,
582 x_msg_count OUT NOCOPY NUMBER,
583 x_msg_data OUT NOCOPY VARCHAR2,
584 x_cust_acct_site_id OUT NOCOPY NUMBER,
585 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
586 x_cust_acct_site_osr OUT NOCOPY VARCHAR2
587 )IS
588 l_cas_obj HZ_CUST_ACCT_SITE_BO;
589 BEGIN
590 l_cas_obj := p_cust_acct_site_obj;
591 do_update_cust_acct_site_bo(
592 p_init_msg_list => p_init_msg_list,
593 p_cust_acct_site_obj => l_cas_obj,
594 p_created_by_module => p_created_by_module,
595 p_obj_source => null,
596 x_return_status => x_return_status,
597 x_msg_count => x_msg_count,
598 x_msg_data => x_msg_data,
599 x_cust_acct_site_id => x_cust_acct_site_id,
600 x_cust_acct_site_os => x_cust_acct_site_os,
601 x_cust_acct_site_osr => x_cust_acct_site_osr,
602 p_parent_os => NULL
603 );
604 END update_cust_acct_site_bo;
605
606 PROCEDURE update_cust_acct_site_bo(
607 p_cust_acct_site_obj IN HZ_CUST_ACCT_SITE_BO,
608 p_created_by_module IN VARCHAR2,
609 p_obj_source IN VARCHAR2 := null,
610 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
611 x_return_status OUT NOCOPY VARCHAR2,
612 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
613 x_return_obj OUT NOCOPY HZ_CUST_ACCT_SITE_BO,
614 x_cust_acct_site_id OUT NOCOPY NUMBER,
615 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
616 x_cust_acct_site_osr OUT NOCOPY VARCHAR2
617 )IS
618 l_msg_data VARCHAR2(2000);
619 l_msg_count NUMBER;
620 l_cas_obj HZ_CUST_ACCT_SITE_BO;
621 BEGIN
622 l_cas_obj := p_cust_acct_site_obj;
623 do_update_cust_acct_site_bo(
624 p_init_msg_list => fnd_api.g_true,
625 p_cust_acct_site_obj => l_cas_obj,
626 p_created_by_module => p_created_by_module,
627 p_obj_source => p_obj_source,
628 x_return_status => x_return_status,
629 x_msg_count => l_msg_count,
630 x_msg_data => l_msg_data,
631 x_cust_acct_site_id => x_cust_acct_site_id,
632 x_cust_acct_site_os => x_cust_acct_site_os,
633 x_cust_acct_site_osr => x_cust_acct_site_osr,
634 p_parent_os => NULL
635 );
636 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
637 x_return_status => x_return_status,
638 x_msg_count => l_msg_count,
639 x_msg_data => l_msg_data);
640 IF FND_API.to_Boolean(p_return_obj_flag) THEN
641 x_return_obj := l_cas_obj;
642 END IF;
643 END update_cust_acct_site_bo;
644
645 -- PRIVATE PROCEDURE do_update_cust_acct_site_bo
646 --
647 -- DESCRIPTION
648 -- Update customer account site business object.
649 PROCEDURE do_update_cust_acct_site_bo(
650 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
651 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
652 p_cust_acct_site_obj IN OUT NOCOPY HZ_CUST_ACCT_SITE_BO,
653 p_created_by_module IN VARCHAR2,
654 p_obj_source IN VARCHAR2 := null,
655 x_return_status OUT NOCOPY VARCHAR2,
656 x_msg_count OUT NOCOPY NUMBER,
657 x_msg_data OUT NOCOPY VARCHAR2,
658 x_cust_acct_site_id OUT NOCOPY NUMBER,
659 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
660 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
661 p_parent_os IN VARCHAR2
662 )IS
663 l_debug_prefix VARCHAR2(30) := '';
664 l_cust_acct_site_rec HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE;
665 l_cas_ovn NUMBER;
666 l_create_update_flag VARCHAR2(1);
667 l_parent_os VARCHAR2(30);
668 l_party_site_id NUMBER;
669 l_ca_id NUMBER;
670 l_ca_os VARCHAR2(30);
671 l_ca_osr VARCHAR2(255);
672 l_cbm VARCHAR2(30);
673
674 CURSOR get_ovn(l_cas_id NUMBER) IS
675 SELECT s.object_version_number, s.cust_account_id, s.party_site_id
676 FROM HZ_CUST_ACCT_SITES s
677 WHERE s.cust_acct_site_id = l_cas_id;
678
679 BEGIN
680 -- Standard start of API savepoint
681 SAVEPOINT do_update_cas_bo_pub;
682
683 -- initialize API return status to success.
684 x_return_status := FND_API.G_RET_STS_SUCCESS;
685
686 -- Initialize message list if p_init_msg_list is set to TRUE.
687 IF FND_API.to_Boolean(p_init_msg_list) THEN
688 FND_MSG_PUB.initialize;
689 END IF;
690
691 -- Debug info.
692 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
693 hz_utility_v2pub.debug(p_message=>'do_update_cas_bo(+)',
694 p_prefix=>l_debug_prefix,
695 p_msg_level=>fnd_log.level_procedure);
696 END IF;
697
698 -- initialize Global variable
699 HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
700 IF(p_created_by_module IS NULL) THEN
701 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
702 ELSE
703 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
704 END IF;
705
706 -------------------------------
707 -- For Update cust acct site
708 -------------------------------
709 x_cust_acct_site_id := p_cust_acct_site_obj.cust_acct_site_id;
710 x_cust_acct_site_os := p_cust_acct_site_obj.orig_system;
711 x_cust_acct_site_osr := p_cust_acct_site_obj.orig_system_reference;
712
713 -- validate ssm of cust account site
714 hz_registry_validate_bo_pvt.validate_ssm_id(
715 px_id => x_cust_acct_site_id,
716 px_os => x_cust_acct_site_os,
717 px_osr => x_cust_acct_site_osr,
718 p_org_id => p_cust_acct_site_obj.org_id,
719 p_obj_type => 'HZ_CUST_ACCT_SITES_ALL',
720 p_create_or_update => 'U',
721 x_return_status => x_return_status,
722 x_msg_count => x_msg_count,
723 x_msg_data => x_msg_data);
724
725 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
726 RAISE FND_API.G_EXC_ERROR;
727 END IF;
728
729 -- get object version number of customer acct site
730 OPEN get_ovn(x_cust_acct_site_id);
731 FETCH get_ovn INTO l_cas_ovn, l_ca_id, l_party_site_id;
732 CLOSE get_ovn;
733
734 assign_cust_acct_site_rec(
735 p_cust_acct_site_obj => p_cust_acct_site_obj,
736 p_party_site_id => l_party_site_id,
737 p_cust_acct_id => l_ca_id,
738 p_cust_acct_site_id => x_cust_acct_site_id,
739 p_cust_acct_site_os => x_cust_acct_site_os,
740 p_cust_acct_site_osr => x_cust_acct_site_osr,
741 p_create_or_update => 'U',
742 px_cust_acct_site_rec => l_cust_acct_site_rec
743 );
744
745 HZ_CUST_ACCOUNT_SITE_V2PUB.update_cust_acct_site(
746 p_cust_acct_site_rec => l_cust_acct_site_rec,
747 p_object_version_number => l_cas_ovn,
748 x_return_status => x_return_status,
749 x_msg_count => x_msg_count,
750 x_msg_data => x_msg_data
751 );
752
753 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
754 RAISE FND_API.G_EXC_ERROR;
755 END IF;
756
757 -- assign cust_acct_site_id
758 p_cust_acct_site_obj.cust_acct_site_id := x_cust_acct_site_id;
759 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
760
761 -----------------------------------
762 -- For cust account contact
763 -----------------------------------
764 IF((p_cust_acct_site_obj.cust_acct_contact_objs IS NOT NULL) AND
765 (p_cust_acct_site_obj.cust_acct_contact_objs.COUNT > 0)) THEN
766 HZ_CUST_ACCT_CONTACT_BO_PVT.save_cust_acct_contacts(
767 p_cac_objs => p_cust_acct_site_obj.cust_acct_contact_objs,
768 p_create_update_flag => 'U',
769 p_obj_source => p_obj_source,
770 x_return_status => x_return_status,
771 x_msg_count => x_msg_count,
772 x_msg_data => x_msg_data,
773 p_parent_id => x_cust_acct_site_id,
774 p_parent_os => x_cust_acct_site_os,
775 p_parent_osr => x_cust_acct_site_osr,
776 p_parent_obj_type => 'CUST_ACCT_SITE'
777 );
778
779 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
780 RAISE FND_API.G_EXC_ERROR;
781 END IF;
782 END IF;
783
784 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
785
786 ----------------------------
787 -- For cust account site use
788 ----------------------------
789 IF((p_cust_acct_site_obj.cust_acct_site_use_objs IS NOT NULL) AND
790 (p_cust_acct_site_obj.cust_acct_site_use_objs.COUNT > 0)) THEN
791 HZ_CUST_ACCT_SITE_BO_PVT.save_cust_site_uses(
792 p_casu_objs => p_cust_acct_site_obj.cust_acct_site_use_objs,
793 p_ca_id => l_ca_id,
794 p_cas_id => x_cust_acct_site_id,
795 p_parent_os => x_cust_acct_site_os,
796 x_return_status => x_return_status,
797 x_msg_count => x_msg_count,
798 x_msg_data => x_msg_data
799 );
800
801 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
802 RAISE FND_API.G_EXC_ERROR;
803 END IF;
804 END IF;
805
806 -- reset Global variable
807 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
808 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
809
810 -- Debug info.
811 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
812 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
813 p_msg_data=>x_msg_data,
814 p_msg_type=>'WARNING',
815 p_msg_level=>fnd_log.level_exception);
816 END IF;
817 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
818 hz_utility_v2pub.debug(p_message=>'do_update_cust_acct_site_bo(-)',
819 p_prefix=>l_debug_prefix,
820 p_msg_level=>fnd_log.level_procedure);
821 END IF;
822 EXCEPTION
823 WHEN fnd_api.g_exc_error THEN
824 ROLLBACK TO do_update_cas_bo_pub;
825
826 -- reset Global variable
827 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
828 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
829
830 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
831 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
832 FND_MSG_PUB.ADD;
833
834 x_return_status := fnd_api.g_ret_sts_error;
835
836 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
837 p_count => x_msg_count,
838 p_data => x_msg_data);
839
840 -- Debug info.
841 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
842 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
843 p_msg_data=>x_msg_data,
844 p_msg_type=>'ERROR',
845 p_msg_level=>fnd_log.level_error);
846 END IF;
847 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
848 hz_utility_v2pub.debug(p_message=>'do_update_cust_acct_site_bo(-)',
849 p_prefix=>l_debug_prefix,
850 p_msg_level=>fnd_log.level_procedure);
851 END IF;
852
853 WHEN fnd_api.g_exc_unexpected_error THEN
854 ROLLBACK TO do_update_cas_bo_pub;
855
856 -- reset Global variable
857 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
858 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
859
860 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
861 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
862 FND_MSG_PUB.ADD;
863
864 x_return_status := fnd_api.g_ret_sts_unexp_error;
865
866 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
867 p_count => x_msg_count,
868 p_data => x_msg_data);
869
870 -- Debug info.
871 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
872 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
873 p_msg_data=>x_msg_data,
874 p_msg_type=>'UNEXPECTED ERROR',
875 p_msg_level=>fnd_log.level_error);
876 END IF;
877 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
878 hz_utility_v2pub.debug(p_message=>'do_update_cust_acct_site_bo(-)',
879 p_prefix=>l_debug_prefix,
880 p_msg_level=>fnd_log.level_procedure);
881 END IF;
882
883 WHEN OTHERS THEN
884 ROLLBACK TO do_update_cas_bo_pub;
885
886 -- reset Global variable
887 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
888 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
889
890 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
891 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
892 FND_MSG_PUB.ADD;
893
894 x_return_status := fnd_api.g_ret_sts_unexp_error;
895
896 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
897 fnd_message.set_token('ERROR' ,SQLERRM);
898 fnd_msg_pub.add;
899
900 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
901 p_count => x_msg_count,
902 p_data => x_msg_data);
903
904 -- Debug info.
905 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
906 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
907 p_msg_data=>x_msg_data,
908 p_msg_type=>'SQL ERROR',
909 p_msg_level=>fnd_log.level_error);
910 END IF;
911 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
912 hz_utility_v2pub.debug(p_message=>'do_update_cust_acct_site_bo(-)',
913 p_prefix=>l_debug_prefix,
914 p_msg_level=>fnd_log.level_procedure);
915 END IF;
916 END do_update_cust_acct_site_bo;
917
918 -- PROCEDURE do_save_cust_acct_site_bo
919 --
920 -- DESCRIPTION
921 -- Create or update customer account site business object.
922 PROCEDURE do_save_cust_acct_site_bo(
923 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
924 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
925 p_cust_acct_site_obj IN OUT NOCOPY HZ_CUST_ACCT_SITE_BO,
926 p_created_by_module IN VARCHAR2,
927 p_obj_source IN VARCHAR2 := null,
928 x_return_status OUT NOCOPY VARCHAR2,
929 x_msg_count OUT NOCOPY NUMBER,
930 x_msg_data OUT NOCOPY VARCHAR2,
931 x_cust_acct_site_id OUT NOCOPY NUMBER,
932 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
933 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
934 px_parent_acct_id IN OUT NOCOPY NUMBER,
935 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
936 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
937 ) IS
938 l_return_status VARCHAR2(30);
939 l_msg_count NUMBER;
940 l_msg_data VARCHAR2(2000);
941 l_create_update_flag VARCHAR2(1);
942 l_debug_prefix VARCHAR2(30) := '';
943
944 CURSOR get_cas_id(l_ps_id NUMBER, l_ca_id NUMBER, l_org_id NUMBER) IS
945 SELECT cust_acct_site_id
946 FROM HZ_CUST_ACCT_SITES_ALL
947 WHERE cust_account_id = l_ca_id
948 AND party_site_id = l_ps_id
949 AND org_id = l_org_id
950 AND rownum = 1;
951
952 BEGIN
953 -- initialize API return status to success.
954 x_return_status := FND_API.G_RET_STS_SUCCESS;
955
956 -- Initialize message list if p_init_msg_list is set to TRUE.
957 IF FND_API.to_Boolean(p_init_msg_list) THEN
958 FND_MSG_PUB.initialize;
959 END IF;
960
961 -- Debug info.
962 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
963 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_bo(+)',
964 p_prefix=>l_debug_prefix,
965 p_msg_level=>fnd_log.level_procedure);
966 END IF;
967
968 x_cust_acct_site_id := p_cust_acct_site_obj.cust_acct_site_id;
969 x_cust_acct_site_os := p_cust_acct_site_obj.orig_system;
970 x_cust_acct_site_osr := p_cust_acct_site_obj.orig_system_reference;
971
972 -- AIA enh 7209179
973 if p_cust_acct_site_obj.cust_acct_site_id is null and p_cust_acct_site_obj.orig_system = 'ORACLE_AIA'
974 then
975 open get_cas_id(p_cust_acct_site_obj.party_site_id,p_cust_acct_site_obj.cust_acct_id,p_cust_acct_site_obj.org_id);
976 fetch get_cas_id into x_cust_acct_site_id;
977 close get_cas_id;
978 if x_cust_acct_site_id is not null
979 then
980 x_cust_acct_site_os := null;
981 x_cust_acct_site_osr := null;
982 p_cust_acct_site_obj.cust_acct_site_id := x_cust_acct_site_id;
983 p_cust_acct_site_obj.orig_system := null;
984 p_cust_acct_site_obj.orig_system_reference := null;
985 end if;
986 end if;
987
988 -- check root business object to determine that it should be
989 -- create or update, call HZ_REGISTRY_VALIDATE_BO_PVT
990 l_create_update_flag := HZ_REGISTRY_VALIDATE_BO_PVT.check_bo_op(
991 p_entity_id => x_cust_acct_site_id,
992 p_entity_os => x_cust_acct_site_os,
993 p_entity_osr => x_cust_acct_site_osr,
994 p_entity_type => 'HZ_CUST_ACCT_SITES_ALL',
995 p_parent_id => px_parent_acct_id,
996 p_parent_obj_type => 'CUST_ACCT'
997 );
998 IF(l_create_update_flag = 'E') THEN
999 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1000 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
1001 FND_MSG_PUB.ADD;
1002 RAISE FND_API.G_EXC_ERROR;
1003 END IF;
1004
1005 IF(l_create_update_flag = 'C') THEN
1006 do_create_cust_acct_site_bo(
1007 p_init_msg_list => fnd_api.g_false,
1008 p_validate_bo_flag => p_validate_bo_flag,
1009 p_cust_acct_site_obj => p_cust_acct_site_obj,
1010 p_created_by_module => p_created_by_module,
1011 p_obj_source => p_obj_source,
1012 x_return_status => x_return_status,
1013 x_msg_count => x_msg_count,
1014 x_msg_data => x_msg_data,
1015 x_cust_acct_site_id => x_cust_acct_site_id,
1016 x_cust_acct_site_os => x_cust_acct_site_os,
1017 x_cust_acct_site_osr => x_cust_acct_site_osr,
1018 px_parent_acct_id => px_parent_acct_id,
1019 px_parent_acct_os => px_parent_acct_os,
1020 px_parent_acct_osr => px_parent_acct_osr
1021 );
1022 ELSIF(l_create_update_flag = 'U') THEN
1023 do_update_cust_acct_site_bo(
1024 p_init_msg_list => fnd_api.g_false,
1025 p_cust_acct_site_obj => p_cust_acct_site_obj,
1026 p_created_by_module => p_created_by_module,
1027 p_obj_source => p_obj_source,
1028 x_return_status => x_return_status,
1029 x_msg_count => x_msg_count,
1030 x_msg_data => x_msg_data,
1031 x_cust_acct_site_id => x_cust_acct_site_id,
1032 x_cust_acct_site_os => x_cust_acct_site_os,
1033 x_cust_acct_site_osr => x_cust_acct_site_osr,
1034 p_parent_os => px_parent_acct_os
1035 );
1036 ELSE
1037 RAISE FND_API.G_EXC_ERROR;
1038 END IF;
1039
1040 -- Debug info.
1041 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1042 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1043 p_msg_data=>x_msg_data,
1044 p_msg_type=>'WARNING',
1045 p_msg_level=>fnd_log.level_exception);
1046 END IF;
1047 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1048 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_bo(-)',
1049 p_prefix=>l_debug_prefix,
1050 p_msg_level=>fnd_log.level_procedure);
1051 END IF;
1052
1053 EXCEPTION
1054 WHEN fnd_api.g_exc_error THEN
1055 x_return_status := fnd_api.g_ret_sts_error;
1056
1057 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1058 p_count => x_msg_count,
1059 p_data => x_msg_data);
1060
1061 -- Debug info.
1062 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1063 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1064 p_msg_data=>x_msg_data,
1065 p_msg_type=>'ERROR',
1066 p_msg_level=>fnd_log.level_error);
1067 END IF;
1068 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1069 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_bo(-)',
1070 p_prefix=>l_debug_prefix,
1071 p_msg_level=>fnd_log.level_procedure);
1072 END IF;
1073 WHEN fnd_api.g_exc_unexpected_error THEN
1074 x_return_status := fnd_api.g_ret_sts_unexp_error;
1075
1076 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1077 p_count => x_msg_count,
1078 p_data => x_msg_data);
1079
1080 -- Debug info.
1081 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1082 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1083 p_msg_data=>x_msg_data,
1084 p_msg_type=>'UNEXPECTED ERROR',
1085 p_msg_level=>fnd_log.level_error);
1086 END IF;
1087 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1088 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_bo(-)',
1089 p_prefix=>l_debug_prefix,
1090 p_msg_level=>fnd_log.level_procedure);
1091 END IF;
1092 WHEN OTHERS THEN
1093 x_return_status := fnd_api.g_ret_sts_unexp_error;
1094
1095 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1096 fnd_message.set_token('ERROR' ,SQLERRM);
1097 fnd_msg_pub.add;
1098
1099 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1100 p_count => x_msg_count,
1101 p_data => x_msg_data);
1102
1103 -- Debug info.
1104 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1105 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1106 p_msg_data=>x_msg_data,
1107 p_msg_type=>'SQL ERROR',
1108 p_msg_level=>fnd_log.level_error);
1109 END IF;
1110 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1111 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_bo(-)',
1112 p_prefix=>l_debug_prefix,
1113 p_msg_level=>fnd_log.level_procedure);
1114 END IF;
1115 END do_save_cust_acct_site_bo;
1116
1117 PROCEDURE save_cust_acct_site_bo(
1118 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1119 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
1120 p_cust_acct_site_obj IN HZ_CUST_ACCT_SITE_BO,
1121 p_created_by_module IN VARCHAR2,
1122 x_return_status OUT NOCOPY VARCHAR2,
1123 x_msg_count OUT NOCOPY NUMBER,
1124 x_msg_data OUT NOCOPY VARCHAR2,
1125 x_cust_acct_site_id OUT NOCOPY NUMBER,
1126 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
1127 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
1128 px_parent_acct_id IN OUT NOCOPY NUMBER,
1129 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
1130 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
1131 ) IS
1132 l_cas_obj HZ_CUST_ACCT_SITE_BO;
1133 BEGIN
1134 l_cas_obj := p_cust_acct_site_obj;
1135 do_save_cust_acct_site_bo(
1136 p_init_msg_list => p_init_msg_list,
1137 p_validate_bo_flag => p_validate_bo_flag,
1138 p_cust_acct_site_obj => l_cas_obj,
1139 p_created_by_module => p_created_by_module,
1140 p_obj_source => null,
1141 x_return_status => x_return_status,
1142 x_msg_count => x_msg_count,
1143 x_msg_data => x_msg_data,
1144 x_cust_acct_site_id => x_cust_acct_site_id,
1145 x_cust_acct_site_os => x_cust_acct_site_os,
1146 x_cust_acct_site_osr => x_cust_acct_site_osr,
1147 px_parent_acct_id => px_parent_acct_id,
1148 px_parent_acct_os => px_parent_acct_os,
1149 px_parent_acct_osr => px_parent_acct_osr
1150 );
1151 END save_cust_acct_site_bo;
1152
1153 PROCEDURE save_cust_acct_site_bo(
1154 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
1155 p_cust_acct_site_obj IN HZ_CUST_ACCT_SITE_BO,
1156 p_created_by_module IN VARCHAR2,
1157 p_obj_source IN VARCHAR2 := null,
1158 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
1159 x_return_status OUT NOCOPY VARCHAR2,
1160 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
1161 x_return_obj OUT NOCOPY HZ_CUST_ACCT_SITE_BO,
1162 x_cust_acct_site_id OUT NOCOPY NUMBER,
1163 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
1164 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
1165 px_parent_acct_id IN OUT NOCOPY NUMBER,
1166 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
1167 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
1168 ) IS
1169 l_msg_data VARCHAR2(2000);
1170 l_msg_count NUMBER;
1171 l_cas_obj HZ_CUST_ACCT_SITE_BO;
1172 BEGIN
1173 l_cas_obj := p_cust_acct_site_obj;
1174 do_save_cust_acct_site_bo(
1175 p_init_msg_list => fnd_api.g_true,
1176 p_validate_bo_flag => p_validate_bo_flag,
1177 p_cust_acct_site_obj => l_cas_obj,
1178 p_created_by_module => p_created_by_module,
1179 p_obj_source => p_obj_source,
1180 x_return_status => x_return_status,
1181 x_msg_count => l_msg_count,
1182 x_msg_data => l_msg_data,
1183 x_cust_acct_site_id => x_cust_acct_site_id,
1184 x_cust_acct_site_os => x_cust_acct_site_os,
1185 x_cust_acct_site_osr => x_cust_acct_site_osr,
1186 px_parent_acct_id => px_parent_acct_id,
1187 px_parent_acct_os => px_parent_acct_os,
1188 px_parent_acct_osr => px_parent_acct_osr
1189 );
1190 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1191 x_return_status => x_return_status,
1192 x_msg_count => l_msg_count,
1193 x_msg_data => l_msg_data);
1194 IF FND_API.to_Boolean(p_return_obj_flag) THEN
1195 x_return_obj := l_cas_obj;
1196 END IF;
1197 END save_cust_acct_site_bo;
1198
1199 --------------------------------------
1200 --
1201 -- PROCEDURE get_cust_acct_site_bo
1202 --
1203 -- DESCRIPTION
1204 -- Get logical customer account site.
1205 --
1206 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1207 --
1208 -- ARGUMENTS
1209 -- IN:
1210 -- p_init_msg_list Initialize message stack if it is set to
1211 -- p_parent_id parent id.
1212 -- p_cust_acct_site_id customer account site ID.
1213 -- FND_API.G_TRUE. Default is FND_API.G_FALSE.
1214 -- OUT:
1215 -- x_cust_acct_site_obj Logical customer account site record.
1216 -- x_return_status Return status after the call. The status can
1217 -- be fnd_api.g_ret_sts_success (success),
1218 -- fnd_api.g_ret_sts_error (error),
1219 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1220 -- x_msg_count Number of messages in message stack.
1221 -- x_msg_data Message text if x_msg_count is 1.
1222 --
1223 -- NOTES
1224 --
1225 -- MODIFICATION HISTORY
1226 --
1227 --
1228 -- 8-JUN-2005 AWU Created.
1229 --
1230
1231 /*
1232
1233 The Get customer account site API Procedure is a retrieval service that returns a full customer account site business object.
1234 The user identifies a particular Organization Contact business object using the TCA identifier and/or the object's Source System
1235 information. Upon proper validation of the object, the full Organization Contact business object is returned.
1236 The object consists of all data included within the Organization Contact business object, at all embedded levels. This includes the
1237 set of all data stored in the TCA tables for each embedded entity.
1238
1239
1240 Embedded BO Mandatory Multiple Logical API Procedure Comments
1241
1242 Party Site Y N get_party_site_bo
1243 Customer Account Site Contact N Y get_cust_acct_contact_bo
1244 Customer Account Site Use N Y Business Structure. Included entities and
1245 structures:HZ_CUST_SITE_USES_ALL,Customer
1246 Profile (Business Structure)
1247
1248
1249 To retrieve the appropriate embedded entities within the 'Organization Contact' business object, the Get procedure returns all records
1250 for the particular contact from these TCA entity tables.
1251
1252 Embedded TCA Entity Mandatory Multiple TCA Table Entities
1253
1254 Customer account site Y N HZ_CUST_ACCOUNTS
1255 Bank account site Use N Y Owned by Payments team
1256 Payment Method N N Owned by AR team
1257
1258 */
1259
1260
1261 PROCEDURE get_cust_acct_site_bo (
1262 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1263 p_cust_acct_site_id IN NUMBER,
1264 p_cust_acct_site_os IN VARCHAR2,
1265 p_cust_acct_site_osr IN VARCHAR2,
1266 x_cust_acct_site_obj OUT NOCOPY HZ_CUST_ACCT_SITE_BO,
1267 x_return_status OUT NOCOPY VARCHAR2,
1268 x_msg_count OUT NOCOPY NUMBER,
1269 x_msg_data OUT NOCOPY VARCHAR2
1270 ) is
1271 l_debug_prefix VARCHAR2(30) := '';
1272
1273 l_cust_acct_site_id number;
1274 l_cust_acct_site_os varchar2(30);
1275 l_cust_acct_site_osr varchar2(255);
1276 l_cust_acct_site_objs HZ_CUST_ACCT_SITE_BO_TBL;
1277 BEGIN
1278
1279 -- initialize API return status to success.
1280 x_return_status := FND_API.G_RET_STS_SUCCESS;
1281
1282 -- Initialize message list if p_init_msg_list is set to TRUE
1283 IF FND_API.to_Boolean(p_init_msg_list) THEN
1284 FND_MSG_PUB.initialize;
1285 END IF;
1286
1287
1288 -- Debug info.
1289 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1290 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_bo(+)',
1291 p_prefix=>l_debug_prefix,
1292 p_msg_level=>fnd_log.level_procedure);
1293 END IF;
1294
1295 -- check if pass in contact_point_id and/or os+osr
1296 -- extraction validation logic is same as update
1297
1298 l_cust_acct_site_id := p_cust_acct_site_id;
1299 l_cust_acct_site_os := p_cust_acct_site_os;
1300 l_cust_acct_site_osr := p_cust_acct_site_osr;
1301
1302 HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
1303 px_id => l_cust_acct_site_id,
1304 px_os => l_cust_acct_site_os,
1305 px_osr => l_cust_acct_site_osr,
1306 p_obj_type => 'HZ_CUST_ACCT_SITES_ALL',
1307 x_return_status => x_return_status,
1308 x_msg_count => x_msg_count,
1309 x_msg_data => x_msg_data);
1310
1311 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1312 RAISE fnd_api.g_exc_error;
1313 END IF;
1314
1315 HZ_EXTRACT_ACCT_SITE_BO_PVT.get_cust_acct_site_bos
1316 (p_init_msg_list => fnd_api.g_false,
1317 p_parent_id => NULL,
1318 p_cust_acct_site_id => l_cust_acct_site_id,
1319 p_action_type => NULL,
1320 x_cust_acct_site_objs => l_cust_acct_site_objs,
1321 x_return_status => x_return_status,
1322 x_msg_count => x_msg_count,
1323 x_msg_data => x_msg_data);
1324
1325 x_cust_acct_site_obj := l_cust_acct_site_objs(1);
1326
1327 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1328 RAISE FND_API.G_EXC_ERROR;
1329 END IF;
1330
1331
1332 -- Debug info.
1333 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1334 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1335 p_msg_data=>x_msg_data,
1336 p_msg_type=>'WARNING',
1337 p_msg_level=>fnd_log.level_exception);
1338 END IF;
1339
1340 -- Debug info.
1341 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1342 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_bo (-)',
1343 p_prefix=>l_debug_prefix,
1344 p_msg_level=>fnd_log.level_procedure);
1345 END IF;
1346
1347
1348 EXCEPTION
1349
1350 WHEN fnd_api.g_exc_error THEN
1351 x_return_status := fnd_api.g_ret_sts_error;
1352
1353 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1354 p_count => x_msg_count,
1355 p_data => x_msg_data);
1356
1357 -- Debug info.
1358 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1359 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1360 p_msg_data=>x_msg_data,
1361 p_msg_type=>'ERROR',
1362 p_msg_level=>fnd_log.level_error);
1363 END IF;
1364 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1365 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_bo (-)',
1366 p_prefix=>l_debug_prefix,
1367 p_msg_level=>fnd_log.level_procedure);
1368 END IF;
1369 WHEN fnd_api.g_exc_unexpected_error THEN
1370 x_return_status := fnd_api.g_ret_sts_unexp_error;
1371
1372 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1373 p_count => x_msg_count,
1374 p_data => x_msg_data);
1375
1376 -- Debug info.
1377 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1378 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1379 p_msg_data=>x_msg_data,
1380 p_msg_type=>'UNEXPECTED ERROR',
1381 p_msg_level=>fnd_log.level_error);
1382 END IF;
1383 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1384 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_bo (-)',
1385 p_prefix=>l_debug_prefix,
1386 p_msg_level=>fnd_log.level_procedure);
1387 END IF;
1388 WHEN OTHERS THEN
1389 x_return_status := fnd_api.g_ret_sts_unexp_error;
1390
1391 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1392 fnd_message.set_token('ERROR' ,SQLERRM);
1393 fnd_msg_pub.add;
1394
1395 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1396 p_count => x_msg_count,
1397 p_data => x_msg_data);
1398
1399 -- Debug info.
1400 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1401 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1402 p_msg_data=>x_msg_data,
1403 p_msg_type=>'SQL ERROR',
1404 p_msg_level=>fnd_log.level_error);
1405 END IF;
1406 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1407 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_bo (-)',
1408 p_prefix=>l_debug_prefix,
1409 p_msg_level=>fnd_log.level_procedure);
1410 END IF;
1411
1412 end;
1413
1414 PROCEDURE get_cust_acct_site_bo (
1415 p_cust_acct_site_id IN NUMBER,
1416 p_cust_acct_site_os IN VARCHAR2,
1417 p_cust_acct_site_osr IN VARCHAR2,
1418 x_cust_acct_site_obj OUT NOCOPY HZ_CUST_ACCT_SITE_BO,
1419 x_return_status OUT NOCOPY VARCHAR2,
1420 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
1421 ) IS
1422 l_msg_data VARCHAR2(2000);
1423 l_msg_count NUMBER;
1424 BEGIN
1425 get_cust_acct_site_bo (
1426 p_init_msg_list => FND_API.G_TRUE,
1427 p_cust_acct_site_id => p_cust_acct_site_id,
1428 p_cust_acct_site_os => p_cust_acct_site_os,
1429 p_cust_acct_site_osr => p_cust_acct_site_osr,
1430 x_cust_acct_site_obj => x_cust_acct_site_obj,
1431 x_return_status => x_return_status,
1432 x_msg_count => l_msg_count,
1433 x_msg_data => l_msg_data
1434 );
1435 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1436 x_return_status => x_return_status,
1437 x_msg_count => l_msg_count,
1438 x_msg_data => l_msg_data);
1439 END get_cust_acct_site_bo;
1440
1441 -- PRIVATE PROCEDURE assign_cust_acct_site_v2_rec
1442 --
1443 -- DESCRIPTION
1444 -- Assign attribute value from customer account site object to plsql record.
1445 --
1446 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1447 --
1448 -- ARGUMENTS
1449 -- IN:
1450 -- p_cust_acct_site_v2_obj Customer account site object.
1451 -- p_party_site_id Party site Id.
1452 -- p_cust_acct_id Customer account Id.
1453 -- p_cust_acct_site_id Customer account site Id.
1454 -- p_cust_acct_site_os Customer account site original system.
1455 -- p_cust_acct_site_osr Customer account site original system reference.
1456 -- p_create_or_update Create or update flag.
1457 -- IN/OUT:
1458 -- px_cust_acct_site_rec Customer Account Site plsql record.
1459 --
1460 -- NOTES
1461 --
1462 -- MODIFICATION HISTORY
1463 --
1464 -- 31-JAN-2008 vsegu Created.
1465 --
1466
1467 PROCEDURE assign_cust_acct_site_v2_rec(
1468 p_cust_acct_site_v2_obj IN HZ_CUST_ACCT_SITE_V2_BO,
1469 p_party_site_id IN NUMBER,
1470 p_cust_acct_id IN NUMBER,
1471 p_cust_acct_site_id IN NUMBER,
1472 p_cust_acct_site_os IN VARCHAR2,
1473 p_cust_acct_site_osr IN VARCHAR2,
1474 p_create_or_update IN VARCHAR2 := 'C',
1475 px_cust_acct_site_rec IN OUT NOCOPY HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE
1476 );
1477
1478 -- PRIVATE PROCEDURE assign_cust_acct_site_v2_rec
1479 --
1480 -- DESCRIPTION
1481 -- Assign attribute value from customer account site object to plsql record.
1482 --
1483 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
1484 --
1485 -- ARGUMENTS
1486 -- IN:
1487 -- p_cust_acct_site_v2_obj Customer account site object.
1488 -- p_party_site_id Party site Id.
1489 -- p_cust_acct_id Customer account Id.
1490 -- p_cust_acct_site_id Customer account site Id.
1491 -- p_cust_acct_site_os Customer account site original system.
1492 -- p_cust_acct_site_osr Customer account site original system reference.
1493 -- p_create_or_update Create or update flag.
1494 -- IN/OUT:
1495 -- px_cust_acct_site_rec Customer Account Site plsql record.
1496 --
1497 -- NOTES
1498 --
1499 -- MODIFICATION HISTORY
1500 --
1501 -- 31-JAN-2008 vsegu Created.
1502 --
1503
1504 PROCEDURE assign_cust_acct_site_v2_rec(
1505 p_cust_acct_site_v2_obj IN HZ_CUST_ACCT_SITE_V2_BO,
1506 p_party_site_id IN NUMBER,
1507 p_cust_acct_id IN NUMBER,
1508 p_cust_acct_site_id IN NUMBER,
1509 p_cust_acct_site_os IN VARCHAR2,
1510 p_cust_acct_site_osr IN VARCHAR2,
1511 p_create_or_update IN VARCHAR2 := 'C',
1512 px_cust_acct_site_rec IN OUT NOCOPY HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE
1513 ) IS
1514 BEGIN
1515 px_cust_acct_site_rec.cust_acct_site_id := p_cust_acct_site_id;
1516 px_cust_acct_site_rec.party_site_id := p_party_site_id;
1517 px_cust_acct_site_rec.cust_account_id := p_cust_acct_id;
1518 px_cust_acct_site_rec.attribute_category := p_cust_acct_site_v2_obj.attribute_category;
1519 px_cust_acct_site_rec.attribute1 := p_cust_acct_site_v2_obj.attribute1;
1520 px_cust_acct_site_rec.attribute2 := p_cust_acct_site_v2_obj.attribute2;
1521 px_cust_acct_site_rec.attribute3 := p_cust_acct_site_v2_obj.attribute3;
1522 px_cust_acct_site_rec.attribute4 := p_cust_acct_site_v2_obj.attribute4;
1523 px_cust_acct_site_rec.attribute5 := p_cust_acct_site_v2_obj.attribute5;
1524 px_cust_acct_site_rec.attribute6 := p_cust_acct_site_v2_obj.attribute6;
1525 px_cust_acct_site_rec.attribute7 := p_cust_acct_site_v2_obj.attribute7;
1526 px_cust_acct_site_rec.attribute8 := p_cust_acct_site_v2_obj.attribute8;
1527 px_cust_acct_site_rec.attribute9 := p_cust_acct_site_v2_obj.attribute9;
1528 px_cust_acct_site_rec.attribute10 := p_cust_acct_site_v2_obj.attribute10;
1529 px_cust_acct_site_rec.attribute11 := p_cust_acct_site_v2_obj.attribute11;
1530 px_cust_acct_site_rec.attribute12 := p_cust_acct_site_v2_obj.attribute12;
1531 px_cust_acct_site_rec.attribute13 := p_cust_acct_site_v2_obj.attribute13;
1532 px_cust_acct_site_rec.attribute14 := p_cust_acct_site_v2_obj.attribute14;
1533 px_cust_acct_site_rec.attribute15 := p_cust_acct_site_v2_obj.attribute15;
1534 px_cust_acct_site_rec.attribute16 := p_cust_acct_site_v2_obj.attribute16;
1535 px_cust_acct_site_rec.attribute17 := p_cust_acct_site_v2_obj.attribute17;
1536 px_cust_acct_site_rec.attribute18 := p_cust_acct_site_v2_obj.attribute18;
1537 px_cust_acct_site_rec.attribute19 := p_cust_acct_site_v2_obj.attribute19;
1538 px_cust_acct_site_rec.attribute20 := p_cust_acct_site_v2_obj.attribute20;
1539 px_cust_acct_site_rec.global_attribute_category := p_cust_acct_site_v2_obj.global_attribute_category;
1540 px_cust_acct_site_rec.global_attribute1 := p_cust_acct_site_v2_obj.global_attribute1;
1541 px_cust_acct_site_rec.global_attribute2 := p_cust_acct_site_v2_obj.global_attribute2;
1542 px_cust_acct_site_rec.global_attribute3 := p_cust_acct_site_v2_obj.global_attribute3;
1543 px_cust_acct_site_rec.global_attribute4 := p_cust_acct_site_v2_obj.global_attribute4;
1544 px_cust_acct_site_rec.global_attribute5 := p_cust_acct_site_v2_obj.global_attribute5;
1545 px_cust_acct_site_rec.global_attribute6 := p_cust_acct_site_v2_obj.global_attribute6;
1546 px_cust_acct_site_rec.global_attribute7 := p_cust_acct_site_v2_obj.global_attribute7;
1547 px_cust_acct_site_rec.global_attribute8 := p_cust_acct_site_v2_obj.global_attribute8;
1548 px_cust_acct_site_rec.global_attribute9 := p_cust_acct_site_v2_obj.global_attribute9;
1549 px_cust_acct_site_rec.global_attribute10 := p_cust_acct_site_v2_obj.global_attribute10;
1550 px_cust_acct_site_rec.global_attribute11 := p_cust_acct_site_v2_obj.global_attribute11;
1551 px_cust_acct_site_rec.global_attribute12 := p_cust_acct_site_v2_obj.global_attribute12;
1552 px_cust_acct_site_rec.global_attribute13 := p_cust_acct_site_v2_obj.global_attribute13;
1553 px_cust_acct_site_rec.global_attribute14 := p_cust_acct_site_v2_obj.global_attribute14;
1554 px_cust_acct_site_rec.global_attribute15 := p_cust_acct_site_v2_obj.global_attribute15;
1555 px_cust_acct_site_rec.global_attribute16 := p_cust_acct_site_v2_obj.global_attribute16;
1556 px_cust_acct_site_rec.global_attribute17 := p_cust_acct_site_v2_obj.global_attribute17;
1557 px_cust_acct_site_rec.global_attribute18 := p_cust_acct_site_v2_obj.global_attribute18;
1558 px_cust_acct_site_rec.global_attribute19 := p_cust_acct_site_v2_obj.global_attribute19;
1559 px_cust_acct_site_rec.global_attribute20 := p_cust_acct_site_v2_obj.global_attribute20;
1560 IF(p_cust_acct_site_v2_obj.status in ('A','I')) THEN
1561 px_cust_acct_site_rec.status := p_cust_acct_site_v2_obj.status;
1562 END IF;
1563 px_cust_acct_site_rec.customer_category_code := p_cust_acct_site_v2_obj.customer_category_code;
1564 px_cust_acct_site_rec.language := p_cust_acct_site_v2_obj.language;
1565 px_cust_acct_site_rec.key_account_flag := p_cust_acct_site_v2_obj.key_account_flag;
1566 px_cust_acct_site_rec.tp_header_id := p_cust_acct_site_v2_obj.tp_header_id;
1567 px_cust_acct_site_rec.ece_tp_location_code := p_cust_acct_site_v2_obj.ece_tp_location_code;
1568 px_cust_acct_site_rec.primary_specialist_id := p_cust_acct_site_v2_obj.primary_specialist_id;
1569 px_cust_acct_site_rec.secondary_specialist_id := p_cust_acct_site_v2_obj.secondary_specialist_id;
1570 px_cust_acct_site_rec.territory_id := p_cust_acct_site_v2_obj.territory_id;
1571 px_cust_acct_site_rec.territory := p_cust_acct_site_v2_obj.territory;
1572 px_cust_acct_site_rec.translated_customer_name := p_cust_acct_site_v2_obj.translated_customer_name;
1573 IF(p_create_or_update = 'C') THEN
1574 px_cust_acct_site_rec.orig_system := p_cust_acct_site_os;
1575 px_cust_acct_site_rec.orig_system_reference := p_cust_acct_site_osr;
1576 px_cust_acct_site_rec.created_by_module := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1577 END IF;
1578 px_cust_acct_site_rec.org_id := p_cust_acct_site_v2_obj.org_id;
1579 END assign_cust_acct_site_v2_rec;
1580
1581 -- PROCEDURE do_create_cust_acct_site_v2_bo
1582 --
1583 -- DESCRIPTION
1584 -- Create customer account site business object.
1585 PROCEDURE do_create_cust_acct_site_v2_bo(
1586 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1587 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
1588 p_cust_acct_site_v2_obj IN OUT NOCOPY HZ_CUST_ACCT_SITE_V2_BO,
1589 p_created_by_module IN VARCHAR2,
1590 p_obj_source IN VARCHAR2 := null,
1591 x_return_status OUT NOCOPY VARCHAR2,
1592 x_msg_count OUT NOCOPY NUMBER,
1593 x_msg_data OUT NOCOPY VARCHAR2,
1594 x_cust_acct_site_id OUT NOCOPY NUMBER,
1595 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
1596 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
1597 px_parent_acct_id IN OUT NOCOPY NUMBER,
1598 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
1599 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
1600 ) IS
1601 l_debug_prefix VARCHAR2(30) := '';
1602 l_cust_acct_site_rec HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE;
1603
1604 l_ps_id NUMBER;
1605 l_ps_os VARCHAR2(30);
1606 l_ps_osr VARCHAR2(255);
1607
1608 l_acct_party_id NUMBER;
1609 l_acct_party_type VARCHAR2(30);
1610 l_acct_party_os VARCHAR2(30);
1611 l_acct_party_osr VARCHAR2(255);
1612
1613 l_valid_obj BOOLEAN;
1614 l_bus_object HZ_REGISTRY_VALIDATE_BO_PVT.COMPLETENESS_REC_TYPE;
1615 l_cbm VARCHAR2(30);
1616
1617 CURSOR get_acct_party(l_acct_id NUMBER) IS
1618 SELECT p.party_id, decode(p.party_type, 'ORGANIZATION', 'ORG', 'PERSON', 'PERSON')
1619 FROM HZ_PARTIES p, HZ_CUST_ACCOUNTS a
1620 WHERE p.party_id = a.party_id
1621 AND a.cust_account_id = l_acct_id;
1622
1623 CURSOR get_ps_id(l_os VARCHAR2, l_osr VARCHAR2) IS
1624 SELECT ps.party_site_id
1625 FROM HZ_PARTY_SITES ps, HZ_ORIG_SYS_REFERENCES ref
1626 WHERE ref.owner_table_id = ps.party_site_id
1627 AND ref.owner_table_name = 'HZ_PARTY_SITES'
1628 AND ref.orig_system = l_os
1629 AND ref.orig_system_reference = l_osr
1630 AND ref.status = 'A'
1631 AND rownum = 1;
1632
1633 BEGIN
1634 -- Standard start of API savepoint
1635 SAVEPOINT do_create_cas_v2_bo_pub;
1636
1637 -- initialize API return status to success.
1638 x_return_status := FND_API.G_RET_STS_SUCCESS;
1639
1640 -- Initialize message list if p_init_msg_list is set to TRUE.
1641 IF FND_API.to_Boolean(p_init_msg_list) THEN
1642 FND_MSG_PUB.initialize;
1643 END IF;
1644
1645 -- Debug info.
1646 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1647 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_v2_bo(+)',
1648 p_prefix=>l_debug_prefix,
1649 p_msg_level=>fnd_log.level_procedure);
1650 END IF;
1651
1652 -- initialize Global variable
1653 HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
1654 IF(p_created_by_module IS NULL) THEN
1655 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
1656 ELSE
1657 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
1658 END IF;
1659
1660 -- Base on p_validate_bo_flag, check the completeness of business objects
1661 IF(p_validate_bo_flag = FND_API.G_TRUE) THEN
1662 HZ_REGISTRY_VALIDATE_BO_PVT.get_bus_obj_struct(
1663 p_bus_object_code => 'CUST_ACCT_SITE',
1664 x_bus_object => l_bus_object
1665 );
1666 l_valid_obj := HZ_REGISTRY_VALIDATE_BO_PVT.is_cas_v2_bo_comp(
1667 p_cas_v2_objs => HZ_CUST_ACCT_SITE_V2_BO_TBL(p_cust_acct_site_v2_obj),
1668 p_bus_object => l_bus_object
1669 );
1670 IF NOT(l_valid_obj) THEN
1671 RAISE fnd_api.g_exc_error;
1672 END IF;
1673 END IF;
1674
1675 -- check pass in parent_id and parent_os+osr
1676 hz_registry_validate_bo_pvt.validate_parent_id(
1677 px_parent_id => px_parent_acct_id,
1678 px_parent_os => px_parent_acct_os,
1679 px_parent_osr => px_parent_acct_osr,
1680 p_parent_obj_type => 'CUST_ACCT',
1681 x_return_status => x_return_status,
1682 x_msg_count => x_msg_count,
1683 x_msg_data => x_msg_data);
1684
1685 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1686 RAISE FND_API.G_EXC_ERROR;
1687 END IF;
1688
1689 -- check pass in party_site_id and party_site_os+osr
1690 l_ps_id := p_cust_acct_site_v2_obj.party_site_id;
1691 l_ps_os := p_cust_acct_site_v2_obj.party_site_os;
1692 l_ps_osr := p_cust_acct_site_v2_obj.party_site_osr;
1693
1694 hz_registry_validate_bo_pvt.validate_parent_id(
1695 px_parent_id => l_ps_id,
1696 px_parent_os => l_ps_os,
1697 px_parent_osr => l_ps_osr,
1698 p_parent_obj_type => 'PARTY_SITE',
1699 x_return_status => x_return_status,
1700 x_msg_count => x_msg_count,
1701 x_msg_data => x_msg_data);
1702
1703 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1704 RAISE FND_API.G_EXC_ERROR;
1705 END IF;
1706
1707 x_cust_acct_site_id := p_cust_acct_site_v2_obj.cust_acct_site_id;
1708 x_cust_acct_site_os := p_cust_acct_site_v2_obj.orig_system;
1709 x_cust_acct_site_osr := p_cust_acct_site_v2_obj.orig_system_reference;
1710
1711 -- check if pass in cust_account_site_id and os+osr
1712 hz_registry_validate_bo_pvt.validate_ssm_id(
1713 px_id => x_cust_acct_site_id,
1714 px_os => x_cust_acct_site_os,
1715 px_osr => x_cust_acct_site_osr,
1716 p_org_id => p_cust_acct_site_v2_obj.org_id,
1717 p_obj_type => 'HZ_CUST_ACCT_SITES_ALL',
1718 p_create_or_update => 'C',
1719 x_return_status => x_return_status,
1720 x_msg_count => x_msg_count,
1721 x_msg_data => x_msg_data);
1722
1723 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1724 RAISE FND_API.G_EXC_ERROR;
1725 END IF;
1726
1727 -- from p_parent_acct_id, get parent party_id of the account, then
1728 -- use this party_id as px_parent_id of party site
1729 OPEN get_acct_party(px_parent_acct_id);
1730 FETCH get_acct_party INTO l_acct_party_id, l_acct_party_type;
1731 CLOSE get_acct_party;
1732
1733 IF l_acct_party_id IS NULL THEN
1734 RAISE FND_API.G_EXC_ERROR;
1735 END IF;
1736
1737 ----------------------------------
1738 -- Assign cust account site record
1739 ----------------------------------
1740 assign_cust_acct_site_v2_rec(
1741 p_cust_acct_site_v2_obj => p_cust_acct_site_v2_obj,
1742 p_party_site_id => l_ps_id,
1743 p_cust_acct_id => px_parent_acct_id,
1744 p_cust_acct_site_id => x_cust_acct_site_id,
1745 p_cust_acct_site_os => x_cust_acct_site_os,
1746 p_cust_acct_site_osr => x_cust_acct_site_osr,
1747 px_cust_acct_site_rec => l_cust_acct_site_rec
1748 );
1749
1750 HZ_CUST_ACCOUNT_SITE_V2PUB.create_cust_acct_site (
1751 p_cust_acct_site_rec => l_cust_acct_site_rec,
1752 x_cust_acct_site_id => x_cust_acct_site_id,
1753 x_return_status => x_return_status,
1754 x_msg_count => x_msg_count,
1755 x_msg_data => x_msg_data
1756 );
1757
1758 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1759 RAISE FND_API.G_EXC_ERROR;
1760 END IF;
1761
1762 -- assign cust_acct_site_id
1763 p_cust_acct_site_v2_obj.cust_acct_site_id := x_cust_acct_site_id;
1764 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
1765
1766 -------------------------------------
1767 -- Call cust account contact v2pub api
1768 -------------------------------------
1769 -- Parent of cust account contact is cust account site
1770 -- so pass x_cust_acct_site_id, x_cust_acct_site_os and x_cust_acct_site_osr
1771 IF((p_cust_acct_site_v2_obj.cust_acct_contact_objs IS NOT NULL) AND
1772 (p_cust_acct_site_v2_obj.cust_acct_contact_objs.COUNT > 0)) THEN
1773 HZ_CUST_ACCT_CONTACT_BO_PVT.save_cust_acct_contacts(
1774 p_cac_objs => p_cust_acct_site_v2_obj.cust_acct_contact_objs,
1775 p_create_update_flag => 'C',
1776 p_obj_source => p_obj_source,
1777 x_return_status => x_return_status,
1778 x_msg_count => x_msg_count,
1779 x_msg_data => x_msg_data,
1780 p_parent_id => x_cust_acct_site_id,
1781 p_parent_os => x_cust_acct_site_os,
1782 p_parent_osr => x_cust_acct_site_osr,
1783 p_parent_obj_type => 'CUST_ACCT_SITE'
1784 );
1785
1786 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1787 RAISE FND_API.G_EXC_ERROR;
1788 END IF;
1789 END IF;
1790
1791 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
1792
1793 -------------------------------------
1794 -- Call cust account site use v2pub api
1795 -------------------------------------
1796 -- create cust account site uses will include cust acct site use plus site use profile
1797 -- need to put customer account id and customer account site id
1798 IF((p_cust_acct_site_v2_obj.cust_acct_site_use_objs IS NOT NULL) AND
1799 (p_cust_acct_site_v2_obj.cust_acct_site_use_objs.COUNT > 0)) THEN
1800 HZ_CUST_ACCT_SITE_BO_PVT.create_cust_site_v2_uses(
1801 p_casu_v2_objs => p_cust_acct_site_v2_obj.cust_acct_site_use_objs,
1802 p_ca_id => px_parent_acct_id,
1803 p_cas_id => x_cust_acct_site_id,
1804 p_parent_os => x_cust_acct_site_os,
1805 x_return_status => x_return_status,
1806 x_msg_count => x_msg_count,
1807 x_msg_data => x_msg_data
1808 );
1809
1810 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1811 RAISE FND_API.G_EXC_ERROR;
1812 END IF;
1813 END IF;
1814
1815 -- reset Global variable
1816 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1817 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1818
1819 -- Debug info.
1820 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
1821 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1822 p_msg_data=>x_msg_data,
1823 p_msg_type=>'WARNING',
1824 p_msg_level=>fnd_log.level_exception);
1825 END IF;
1826 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1827 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_v2_bo(-)',
1828 p_prefix=>l_debug_prefix,
1829 p_msg_level=>fnd_log.level_procedure);
1830 END IF;
1831
1832 EXCEPTION
1833 WHEN fnd_api.g_exc_error THEN
1834 ROLLBACK TO do_create_cas_v2_bo_pub;
1835
1836 -- reset Global variable
1837 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1838 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1839
1840 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1841 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
1842 FND_MSG_PUB.ADD;
1843
1844 x_return_status := fnd_api.g_ret_sts_error;
1845
1846 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1847 p_count => x_msg_count,
1848 p_data => x_msg_data);
1849
1850 -- Debug info.
1851 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1852 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1853 p_msg_data=>x_msg_data,
1854 p_msg_type=>'ERROR',
1855 p_msg_level=>fnd_log.level_error);
1856 END IF;
1857 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1858 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_v2_bo(-)',
1859 p_prefix=>l_debug_prefix,
1860 p_msg_level=>fnd_log.level_procedure);
1861 END IF;
1862
1863 WHEN fnd_api.g_exc_unexpected_error THEN
1864 ROLLBACK TO do_create_cas_v2_bo_pub;
1865
1866 -- reset Global variable
1867 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1868 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1869
1870 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1871 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
1872 FND_MSG_PUB.ADD;
1873
1874 x_return_status := fnd_api.g_ret_sts_unexp_error;
1875
1876 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1877 p_count => x_msg_count,
1878 p_data => x_msg_data);
1879
1880 -- Debug info.
1881 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1882 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1883 p_msg_data=>x_msg_data,
1884 p_msg_type=>'UNEXPECTED ERROR',
1885 p_msg_level=>fnd_log.level_error);
1886 END IF;
1887 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1888 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_v2_bo(-)',
1889 p_prefix=>l_debug_prefix,
1890 p_msg_level=>fnd_log.level_procedure);
1891 END IF;
1892
1893 WHEN OTHERS THEN
1894 ROLLBACK TO do_create_cas_v2_bo_pub;
1895
1896 -- reset Global variable
1897 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
1898 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
1899
1900 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
1901 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
1902 FND_MSG_PUB.ADD;
1903
1904 x_return_status := fnd_api.g_ret_sts_unexp_error;
1905
1906 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
1907 fnd_message.set_token('ERROR' ,SQLERRM);
1908 fnd_msg_pub.add;
1909
1910 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
1911 p_count => x_msg_count,
1912 p_data => x_msg_data);
1913
1914 -- Debug info.
1915 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
1916 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
1917 p_msg_data=>x_msg_data,
1918 p_msg_type=>'SQL ERROR',
1919 p_msg_level=>fnd_log.level_error);
1920 END IF;
1921 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
1922 hz_utility_v2pub.debug(p_message=>'do_create_cust_acct_site_v2_bo(-)',
1923 p_prefix=>l_debug_prefix,
1924 p_msg_level=>fnd_log.level_procedure);
1925 END IF;
1926 END do_create_cust_acct_site_v2_bo;
1927
1928
1929 PROCEDURE create_cust_acct_site_v2_bo(
1930 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
1931 p_cust_acct_site_v2_obj IN HZ_CUST_ACCT_SITE_V2_BO,
1932 p_created_by_module IN VARCHAR2,
1933 p_obj_source IN VARCHAR2 := null,
1934 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
1935 x_return_status OUT NOCOPY VARCHAR2,
1936 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
1937 x_return_obj OUT NOCOPY HZ_CUST_ACCT_SITE_V2_BO,
1938 x_cust_acct_site_id OUT NOCOPY NUMBER,
1939 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
1940 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
1941 px_parent_acct_id IN OUT NOCOPY NUMBER,
1942 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
1943 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
1944 ) IS
1945 l_msg_data VARCHAR2(2000);
1946 l_msg_count NUMBER;
1947 l_cas_obj HZ_CUST_ACCT_SITE_V2_BO;
1948 BEGIN
1949 l_cas_obj := p_cust_acct_site_v2_obj;
1950 do_create_cust_acct_site_v2_bo(
1951 p_init_msg_list => fnd_api.g_true,
1952 p_validate_bo_flag => p_validate_bo_flag,
1953 p_cust_acct_site_v2_obj => l_cas_obj,
1954 p_created_by_module => p_created_by_module,
1955 p_obj_source => p_obj_source,
1956 x_return_status => x_return_status,
1957 x_msg_count => l_msg_count,
1958 x_msg_data => l_msg_data,
1959 x_cust_acct_site_id => x_cust_acct_site_id,
1960 x_cust_acct_site_os => x_cust_acct_site_os,
1961 x_cust_acct_site_osr => x_cust_acct_site_osr,
1962 px_parent_acct_id => px_parent_acct_id,
1963 px_parent_acct_os => px_parent_acct_os,
1964 px_parent_acct_osr => px_parent_acct_osr
1965 );
1966 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
1967 x_return_status => x_return_status,
1968 x_msg_count => l_msg_count,
1969 x_msg_data => l_msg_data);
1970 IF FND_API.to_Boolean(p_return_obj_flag) THEN
1971 x_return_obj := l_cas_obj;
1972 END IF;
1973 END create_cust_acct_site_v2_bo;
1974
1975 -- PRIVATE PROCEDURE do_update_cust_acct_site_v2_bo
1976 --
1977 -- DESCRIPTION
1978 -- Update customer account site business object.
1979 PROCEDURE do_update_cust_acct_site_v2_bo(
1980 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
1981 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
1982 p_cust_acct_site_v2_obj IN OUT NOCOPY HZ_CUST_ACCT_SITE_V2_BO,
1983 p_created_by_module IN VARCHAR2,
1984 p_obj_source IN VARCHAR2 := null,
1985 x_return_status OUT NOCOPY VARCHAR2,
1986 x_msg_count OUT NOCOPY NUMBER,
1987 x_msg_data OUT NOCOPY VARCHAR2,
1988 x_cust_acct_site_id OUT NOCOPY NUMBER,
1989 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
1990 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
1991 p_parent_os IN VARCHAR2
1992 )IS
1993 l_debug_prefix VARCHAR2(30) := '';
1994 l_cust_acct_site_rec HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_ACCT_SITE_REC_TYPE;
1995 l_cas_ovn NUMBER;
1996 l_create_update_flag VARCHAR2(1);
1997 l_parent_os VARCHAR2(30);
1998 l_party_site_id NUMBER;
1999 l_ca_id NUMBER;
2000 l_ca_os VARCHAR2(30);
2001 l_ca_osr VARCHAR2(255);
2002 l_cbm VARCHAR2(30);
2003
2004 CURSOR get_ovn(l_cas_id NUMBER) IS
2005 SELECT s.object_version_number, s.cust_account_id, s.party_site_id
2006 FROM HZ_CUST_ACCT_SITES s
2007 WHERE s.cust_acct_site_id = l_cas_id;
2008
2009 BEGIN
2010 -- Standard start of API savepoint
2011 SAVEPOINT do_update_cas_v2_bo_pub;
2012
2013 -- initialize API return status to success.
2014 x_return_status := FND_API.G_RET_STS_SUCCESS;
2015
2016 -- Initialize message list if p_init_msg_list is set to TRUE.
2017 IF FND_API.to_Boolean(p_init_msg_list) THEN
2018 FND_MSG_PUB.initialize;
2019 END IF;
2020
2021 -- Debug info.
2022 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2023 hz_utility_v2pub.debug(p_message=>'do_update_cas_bo(+)',
2024 p_prefix=>l_debug_prefix,
2025 p_msg_level=>fnd_log.level_procedure);
2026 END IF;
2027
2028 -- initialize Global variable
2029 HZ_UTILITY_V2PUB.G_CALLING_API := 'BO_API';
2030 IF(p_created_by_module IS NULL) THEN
2031 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := 'BO_API';
2032 ELSE
2033 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := p_created_by_module;
2034 END IF;
2035
2036 -------------------------------
2037 -- For Update cust acct site
2038 -------------------------------
2039 x_cust_acct_site_id := p_cust_acct_site_v2_obj.cust_acct_site_id;
2040 x_cust_acct_site_os := p_cust_acct_site_v2_obj.orig_system;
2041 x_cust_acct_site_osr := p_cust_acct_site_v2_obj.orig_system_reference;
2042
2043 -- validate ssm of cust account site
2044 hz_registry_validate_bo_pvt.validate_ssm_id(
2045 px_id => x_cust_acct_site_id,
2046 px_os => x_cust_acct_site_os,
2047 px_osr => x_cust_acct_site_osr,
2048 p_org_id => p_cust_acct_site_v2_obj.org_id,
2049 p_obj_type => 'HZ_CUST_ACCT_SITES_ALL',
2050 p_create_or_update => 'U',
2051 x_return_status => x_return_status,
2052 x_msg_count => x_msg_count,
2053 x_msg_data => x_msg_data);
2054
2055 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2056 RAISE FND_API.G_EXC_ERROR;
2057 END IF;
2058
2059 -- get object version number of customer acct site
2060 OPEN get_ovn(x_cust_acct_site_id);
2061 FETCH get_ovn INTO l_cas_ovn, l_ca_id, l_party_site_id;
2062 CLOSE get_ovn;
2063
2064 assign_cust_acct_site_v2_rec(
2065 p_cust_acct_site_v2_obj => p_cust_acct_site_v2_obj,
2066 p_party_site_id => l_party_site_id,
2067 p_cust_acct_id => l_ca_id,
2068 p_cust_acct_site_id => x_cust_acct_site_id,
2069 p_cust_acct_site_os => x_cust_acct_site_os,
2070 p_cust_acct_site_osr => x_cust_acct_site_osr,
2071 p_create_or_update => 'U',
2072 px_cust_acct_site_rec => l_cust_acct_site_rec
2073 );
2074
2075 HZ_CUST_ACCOUNT_SITE_V2PUB.update_cust_acct_site(
2076 p_cust_acct_site_rec => l_cust_acct_site_rec,
2077 p_object_version_number => l_cas_ovn,
2078 x_return_status => x_return_status,
2079 x_msg_count => x_msg_count,
2080 x_msg_data => x_msg_data
2081 );
2082
2083 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2084 RAISE FND_API.G_EXC_ERROR;
2085 END IF;
2086
2087 -- assign cust_acct_site_id
2088 p_cust_acct_site_v2_obj.cust_acct_site_id := x_cust_acct_site_id;
2089 l_cbm := HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE;
2090
2091 -----------------------------------
2092 -- For cust account contact
2093 -----------------------------------
2094 IF((p_cust_acct_site_v2_obj.cust_acct_contact_objs IS NOT NULL) AND
2095 (p_cust_acct_site_v2_obj.cust_acct_contact_objs.COUNT > 0)) THEN
2096 HZ_CUST_ACCT_CONTACT_BO_PVT.save_cust_acct_contacts(
2097 p_cac_objs => p_cust_acct_site_v2_obj.cust_acct_contact_objs,
2098 p_create_update_flag => 'U',
2099 p_obj_source => p_obj_source,
2100 x_return_status => x_return_status,
2101 x_msg_count => x_msg_count,
2102 x_msg_data => x_msg_data,
2103 p_parent_id => x_cust_acct_site_id,
2104 p_parent_os => x_cust_acct_site_os,
2105 p_parent_osr => x_cust_acct_site_osr,
2106 p_parent_obj_type => 'CUST_ACCT_SITE'
2107 );
2108
2109 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2110 RAISE FND_API.G_EXC_ERROR;
2111 END IF;
2112 END IF;
2113
2114 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := l_cbm;
2115
2116 ----------------------------
2117 -- For cust account site use
2118 ----------------------------
2119 IF((p_cust_acct_site_v2_obj.cust_acct_site_use_objs IS NOT NULL) AND
2120 (p_cust_acct_site_v2_obj.cust_acct_site_use_objs.COUNT > 0)) THEN
2121 HZ_CUST_ACCT_SITE_BO_PVT.save_cust_site_v2_uses(
2122 p_casu_v2_objs => p_cust_acct_site_v2_obj.cust_acct_site_use_objs,
2123 p_ca_id => l_ca_id,
2124 p_cas_id => x_cust_acct_site_id,
2125 p_parent_os => x_cust_acct_site_os,
2126 x_return_status => x_return_status,
2127 x_msg_count => x_msg_count,
2128 x_msg_data => x_msg_data
2129 );
2130
2131 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2132 RAISE FND_API.G_EXC_ERROR;
2133 END IF;
2134 END IF;
2135
2136 -- reset Global variable
2137 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2138 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2139
2140 -- Debug info.
2141 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2142 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2143 p_msg_data=>x_msg_data,
2144 p_msg_type=>'WARNING',
2145 p_msg_level=>fnd_log.level_exception);
2146 END IF;
2147 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2148 hz_utility_v2pub.debug(p_message=>'do_update_cust_acct_site_v2_bo(-)',
2149 p_prefix=>l_debug_prefix,
2150 p_msg_level=>fnd_log.level_procedure);
2151 END IF;
2152 EXCEPTION
2153 WHEN fnd_api.g_exc_error THEN
2154 ROLLBACK TO do_update_cas_v2_bo_pub;
2155
2156 -- reset Global variable
2157 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2158 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2159
2160 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2161 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
2162 FND_MSG_PUB.ADD;
2163
2164 x_return_status := fnd_api.g_ret_sts_error;
2165
2166 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2167 p_count => x_msg_count,
2168 p_data => x_msg_data);
2169
2170 -- Debug info.
2171 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2172 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2173 p_msg_data=>x_msg_data,
2174 p_msg_type=>'ERROR',
2175 p_msg_level=>fnd_log.level_error);
2176 END IF;
2177 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2178 hz_utility_v2pub.debug(p_message=>'do_update_cust_acct_site_v2_bo(-)',
2179 p_prefix=>l_debug_prefix,
2180 p_msg_level=>fnd_log.level_procedure);
2181 END IF;
2182
2183 WHEN fnd_api.g_exc_unexpected_error THEN
2184 ROLLBACK TO do_update_cas_v2_bo_pub;
2185
2186 -- reset Global variable
2187 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2188 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2189
2190 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2191 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
2192 FND_MSG_PUB.ADD;
2193
2194 x_return_status := fnd_api.g_ret_sts_unexp_error;
2195
2196 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2197 p_count => x_msg_count,
2198 p_data => x_msg_data);
2199
2200 -- Debug info.
2201 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2202 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2203 p_msg_data=>x_msg_data,
2204 p_msg_type=>'UNEXPECTED ERROR',
2205 p_msg_level=>fnd_log.level_error);
2206 END IF;
2207 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2208 hz_utility_v2pub.debug(p_message=>'do_update_cust_acct_site_v2_bo(-)',
2209 p_prefix=>l_debug_prefix,
2210 p_msg_level=>fnd_log.level_procedure);
2211 END IF;
2212
2213 WHEN OTHERS THEN
2214 ROLLBACK TO do_update_cas_v2_bo_pub;
2215
2216 -- reset Global variable
2217 HZ_UTILITY_V2PUB.G_CALLING_API := NULL;
2218 HZ_UTILITY_V2PUB.G_CREATED_BY_MODULE := NULL;
2219
2220 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2221 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
2222 FND_MSG_PUB.ADD;
2223
2224 x_return_status := fnd_api.g_ret_sts_unexp_error;
2225
2226 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2227 fnd_message.set_token('ERROR' ,SQLERRM);
2228 fnd_msg_pub.add;
2229
2230 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2231 p_count => x_msg_count,
2232 p_data => x_msg_data);
2233
2234 -- Debug info.
2235 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2236 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2237 p_msg_data=>x_msg_data,
2238 p_msg_type=>'SQL ERROR',
2239 p_msg_level=>fnd_log.level_error);
2240 END IF;
2241 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2242 hz_utility_v2pub.debug(p_message=>'do_update_cust_acct_site_v2_bo(-)',
2243 p_prefix=>l_debug_prefix,
2244 p_msg_level=>fnd_log.level_procedure);
2245 END IF;
2246 END do_update_cust_acct_site_v2_bo;
2247
2248 PROCEDURE update_cust_acct_site_v2_bo(
2249 p_cust_acct_site_v2_obj IN HZ_CUST_ACCT_SITE_V2_BO,
2250 p_created_by_module IN VARCHAR2,
2251 p_obj_source IN VARCHAR2 := null,
2252 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
2253 x_return_status OUT NOCOPY VARCHAR2,
2254 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
2255 x_return_obj OUT NOCOPY HZ_CUST_ACCT_SITE_V2_BO,
2256 x_cust_acct_site_id OUT NOCOPY NUMBER,
2257 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
2258 x_cust_acct_site_osr OUT NOCOPY VARCHAR2
2259 )IS
2260 l_msg_data VARCHAR2(2000);
2261 l_msg_count NUMBER;
2262 l_cas_obj HZ_CUST_ACCT_SITE_V2_BO;
2263 BEGIN
2264 l_cas_obj := p_cust_acct_site_v2_obj;
2265 do_update_cust_acct_site_v2_bo(
2266 p_init_msg_list => fnd_api.g_true,
2267 p_cust_acct_site_v2_obj => l_cas_obj,
2268 p_created_by_module => p_created_by_module,
2269 p_obj_source => p_obj_source,
2270 x_return_status => x_return_status,
2271 x_msg_count => l_msg_count,
2272 x_msg_data => l_msg_data,
2273 x_cust_acct_site_id => x_cust_acct_site_id,
2274 x_cust_acct_site_os => x_cust_acct_site_os,
2275 x_cust_acct_site_osr => x_cust_acct_site_osr,
2276 p_parent_os => NULL
2277 );
2278 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2279 x_return_status => x_return_status,
2280 x_msg_count => l_msg_count,
2281 x_msg_data => l_msg_data);
2282 IF FND_API.to_Boolean(p_return_obj_flag) THEN
2283 x_return_obj := l_cas_obj;
2284 END IF;
2285 END update_cust_acct_site_v2_bo;
2286
2287 -- PROCEDURE do_save_cust_acct_site_v2_bo
2288 --
2289 -- DESCRIPTION
2290 -- Create or update customer account site business object.
2291 PROCEDURE do_save_cust_acct_site_v2_bo(
2292 p_init_msg_list IN VARCHAR2 := fnd_api.g_false,
2293 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
2294 p_cust_acct_site_v2_obj IN OUT NOCOPY HZ_CUST_ACCT_SITE_V2_BO,
2295 p_created_by_module IN VARCHAR2,
2296 p_obj_source IN VARCHAR2 := null,
2297 x_return_status OUT NOCOPY VARCHAR2,
2298 x_msg_count OUT NOCOPY NUMBER,
2299 x_msg_data OUT NOCOPY VARCHAR2,
2300 x_cust_acct_site_id OUT NOCOPY NUMBER,
2301 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
2302 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
2303 px_parent_acct_id IN OUT NOCOPY NUMBER,
2304 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
2305 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
2306 ) IS
2307 l_return_status VARCHAR2(30);
2308 l_msg_count NUMBER;
2309 l_msg_data VARCHAR2(2000);
2310 l_create_update_flag VARCHAR2(1);
2311 l_debug_prefix VARCHAR2(30) := '';
2312 BEGIN
2313 -- initialize API return status to success.
2314 x_return_status := FND_API.G_RET_STS_SUCCESS;
2315
2316 -- Initialize message list if p_init_msg_list is set to TRUE.
2317 IF FND_API.to_Boolean(p_init_msg_list) THEN
2318 FND_MSG_PUB.initialize;
2319 END IF;
2320
2321 -- Debug info.
2322 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2323 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_v2_bo(+)',
2324 p_prefix=>l_debug_prefix,
2325 p_msg_level=>fnd_log.level_procedure);
2326 END IF;
2327
2328 x_cust_acct_site_id := p_cust_acct_site_v2_obj.cust_acct_site_id;
2329 x_cust_acct_site_os := p_cust_acct_site_v2_obj.orig_system;
2330 x_cust_acct_site_osr := p_cust_acct_site_v2_obj.orig_system_reference;
2331
2332 -- check root business object to determine that it should be
2333 -- create or update, call HZ_REGISTRY_VALIDATE_BO_PVT
2334 l_create_update_flag := HZ_REGISTRY_VALIDATE_BO_PVT.check_bo_op(
2335 p_entity_id => x_cust_acct_site_id,
2336 p_entity_os => x_cust_acct_site_os,
2337 p_entity_osr => x_cust_acct_site_osr,
2338 p_entity_type => 'HZ_CUST_ACCT_SITES_ALL',
2339 p_parent_id => px_parent_acct_id,
2340 p_parent_obj_type => 'CUST_ACCT'
2341 );
2342 IF(l_create_update_flag = 'E') THEN
2343 FND_MESSAGE.SET_NAME('AR', 'HZ_API_PROPAGATE_OBJECT_ERROR');
2344 FND_MESSAGE.SET_TOKEN('OBJECT', 'CUST_ACCT_SITE');
2345 FND_MSG_PUB.ADD;
2346 RAISE FND_API.G_EXC_ERROR;
2347 END IF;
2348
2349 IF(l_create_update_flag = 'C') THEN
2350 do_create_cust_acct_site_v2_bo(
2351 p_init_msg_list => fnd_api.g_false,
2352 p_validate_bo_flag => p_validate_bo_flag,
2353 p_cust_acct_site_v2_obj => p_cust_acct_site_v2_obj,
2354 p_created_by_module => p_created_by_module,
2355 p_obj_source => p_obj_source,
2356 x_return_status => x_return_status,
2357 x_msg_count => x_msg_count,
2358 x_msg_data => x_msg_data,
2359 x_cust_acct_site_id => x_cust_acct_site_id,
2360 x_cust_acct_site_os => x_cust_acct_site_os,
2361 x_cust_acct_site_osr => x_cust_acct_site_osr,
2362 px_parent_acct_id => px_parent_acct_id,
2363 px_parent_acct_os => px_parent_acct_os,
2364 px_parent_acct_osr => px_parent_acct_osr
2365 );
2366 ELSIF(l_create_update_flag = 'U') THEN
2367 do_update_cust_acct_site_v2_bo(
2368 p_init_msg_list => fnd_api.g_false,
2369 p_cust_acct_site_v2_obj => p_cust_acct_site_v2_obj,
2370 p_created_by_module => p_created_by_module,
2371 p_obj_source => p_obj_source,
2372 x_return_status => x_return_status,
2373 x_msg_count => x_msg_count,
2374 x_msg_data => x_msg_data,
2375 x_cust_acct_site_id => x_cust_acct_site_id,
2376 x_cust_acct_site_os => x_cust_acct_site_os,
2377 x_cust_acct_site_osr => x_cust_acct_site_osr,
2378 p_parent_os => px_parent_acct_os
2379 );
2380 ELSE
2381 RAISE FND_API.G_EXC_ERROR;
2382 END IF;
2383
2384 -- Debug info.
2385 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2386 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2387 p_msg_data=>x_msg_data,
2388 p_msg_type=>'WARNING',
2389 p_msg_level=>fnd_log.level_exception);
2390 END IF;
2391 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2392 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_v2_bo(-)',
2393 p_prefix=>l_debug_prefix,
2394 p_msg_level=>fnd_log.level_procedure);
2395 END IF;
2396
2397 EXCEPTION
2398 WHEN fnd_api.g_exc_error THEN
2399 x_return_status := fnd_api.g_ret_sts_error;
2400
2401 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2402 p_count => x_msg_count,
2403 p_data => x_msg_data);
2404
2405 -- Debug info.
2406 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2407 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2408 p_msg_data=>x_msg_data,
2409 p_msg_type=>'ERROR',
2410 p_msg_level=>fnd_log.level_error);
2411 END IF;
2412 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2413 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_v2_bo(-)',
2414 p_prefix=>l_debug_prefix,
2415 p_msg_level=>fnd_log.level_procedure);
2416 END IF;
2417 WHEN fnd_api.g_exc_unexpected_error THEN
2418 x_return_status := fnd_api.g_ret_sts_unexp_error;
2419
2420 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2421 p_count => x_msg_count,
2422 p_data => x_msg_data);
2423
2424 -- Debug info.
2425 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2426 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2427 p_msg_data=>x_msg_data,
2428 p_msg_type=>'UNEXPECTED ERROR',
2429 p_msg_level=>fnd_log.level_error);
2430 END IF;
2431 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2432 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_v2_bo(-)',
2433 p_prefix=>l_debug_prefix,
2434 p_msg_level=>fnd_log.level_procedure);
2435 END IF;
2436 WHEN OTHERS THEN
2437 x_return_status := fnd_api.g_ret_sts_unexp_error;
2438
2439 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2440 fnd_message.set_token('ERROR' ,SQLERRM);
2441 fnd_msg_pub.add;
2442
2443 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2444 p_count => x_msg_count,
2445 p_data => x_msg_data);
2446
2447 -- Debug info.
2448 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2449 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2450 p_msg_data=>x_msg_data,
2451 p_msg_type=>'SQL ERROR',
2452 p_msg_level=>fnd_log.level_error);
2453 END IF;
2454 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2455 hz_utility_v2pub.debug(p_message=>'do_save_cust_acct_site_v2_bo(-)',
2456 p_prefix=>l_debug_prefix,
2457 p_msg_level=>fnd_log.level_procedure);
2458 END IF;
2459 END do_save_cust_acct_site_v2_bo;
2460
2461 PROCEDURE save_cust_acct_site_v2_bo(
2462 p_validate_bo_flag IN VARCHAR2 := fnd_api.g_true,
2463 p_cust_acct_site_v2_obj IN HZ_CUST_ACCT_SITE_V2_BO,
2464 p_created_by_module IN VARCHAR2,
2465 p_obj_source IN VARCHAR2 := null,
2466 p_return_obj_flag IN VARCHAR2 := fnd_api.g_true,
2467 x_return_status OUT NOCOPY VARCHAR2,
2468 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL,
2469 x_return_obj OUT NOCOPY HZ_CUST_ACCT_SITE_V2_BO,
2470 x_cust_acct_site_id OUT NOCOPY NUMBER,
2471 x_cust_acct_site_os OUT NOCOPY VARCHAR2,
2472 x_cust_acct_site_osr OUT NOCOPY VARCHAR2,
2473 px_parent_acct_id IN OUT NOCOPY NUMBER,
2474 px_parent_acct_os IN OUT NOCOPY VARCHAR2,
2475 px_parent_acct_osr IN OUT NOCOPY VARCHAR2
2476 ) IS
2477 l_msg_data VARCHAR2(2000);
2478 l_msg_count NUMBER;
2479 l_cas_obj HZ_CUST_ACCT_SITE_V2_BO;
2480 BEGIN
2481 l_cas_obj := p_cust_acct_site_v2_obj;
2482 do_save_cust_acct_site_v2_bo(
2483 p_init_msg_list => fnd_api.g_true,
2484 p_validate_bo_flag => p_validate_bo_flag,
2485 p_cust_acct_site_v2_obj => l_cas_obj,
2486 p_created_by_module => p_created_by_module,
2487 p_obj_source => p_obj_source,
2488 x_return_status => x_return_status,
2489 x_msg_count => l_msg_count,
2490 x_msg_data => l_msg_data,
2491 x_cust_acct_site_id => x_cust_acct_site_id,
2492 x_cust_acct_site_os => x_cust_acct_site_os,
2493 x_cust_acct_site_osr => x_cust_acct_site_osr,
2494 px_parent_acct_id => px_parent_acct_id,
2495 px_parent_acct_os => px_parent_acct_os,
2496 px_parent_acct_osr => px_parent_acct_osr
2497 );
2498 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2499 x_return_status => x_return_status,
2500 x_msg_count => l_msg_count,
2501 x_msg_data => l_msg_data);
2502 IF FND_API.to_Boolean(p_return_obj_flag) THEN
2503 x_return_obj := l_cas_obj;
2504 END IF;
2505 END save_cust_acct_site_v2_bo;
2506
2507 --------------------------------------
2508 --
2509 -- PROCEDURE get_cust_acct_site_v2_bo
2510 --
2511 -- DESCRIPTION
2512 -- Get logical customer account site.
2513 --
2514 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
2515 --
2516 -- ARGUMENTS
2517 -- IN:
2518 -- p_init_msg_list Initialize message stack if it is set to
2519 -- p_parent_id parent id.
2520 -- p_cust_acct_site_id customer account site ID.
2521 -- FND_API.G_TRUE. Default is FND_API.G_FALSE.
2522 -- OUT:
2523 -- x_cust_acct_site_v2_obj Logical customer account site record.
2524 -- x_return_status Return status after the call. The status can
2525 -- be fnd_api.g_ret_sts_success (success),
2526 -- fnd_api.g_ret_sts_error (error),
2527 -- FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
2528 -- x_msg_count Number of messages in message stack.
2529 -- x_msg_data Message text if x_msg_count is 1.
2530 --
2531 -- NOTES
2532 --
2533 -- MODIFICATION HISTORY
2534 --
2535 --
2536 -- 31-JUN-2008 vsegu Created.
2537 --
2538
2539 /*
2540
2541 The Get customer account site API Procedure is a retrieval service that returns a full customer account site business object.
2542 The user identifies a particular Organization Contact business object using the TCA identifier and/or the object's Source System
2543 information. Upon proper validation of the object, the full Organization Contact business object is returned.
2544 The object consists of all data included within the Organization Contact business object, at all embedded levels. This includes the
2545 set of all data stored in the TCA tables for each embedded entity.
2546
2547
2548 Embedded BO Mandatory Multiple Logical API Procedure Comments
2549
2550 Party Site Y N get_party_site_bo
2551 Customer Account Site Contact N Y get_cust_acct_contact_bo
2552 Customer Account Site Use N Y Business Structure. Included entities and
2553 structures:HZ_CUST_SITE_USES_ALL,Customer
2554 Profile (Business Structure)
2555
2556
2557 To retrieve the appropriate embedded entities within the 'Organization Contact' business object, the Get procedure returns all records
2558 for the particular contact from these TCA entity tables.
2559
2560 Embedded TCA Entity Mandatory Multiple TCA Table Entities
2561
2562 Customer account site Y N HZ_CUST_ACCOUNTS
2563 Bank account site Use N Y Owned by Payments team
2564 Payment Method N N Owned by AR team
2565
2566 */
2567
2568
2569 PROCEDURE get_cust_acct_site_v2_bo (
2570 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2571 p_cust_acct_site_id IN NUMBER,
2572 p_cust_acct_site_os IN VARCHAR2,
2573 p_cust_acct_site_osr IN VARCHAR2,
2574 x_cust_acct_site_v2_obj OUT NOCOPY HZ_CUST_ACCT_SITE_V2_BO,
2575 x_return_status OUT NOCOPY VARCHAR2,
2576 x_msg_count OUT NOCOPY NUMBER,
2577 x_msg_data OUT NOCOPY VARCHAR2
2578 ) is
2579 l_debug_prefix VARCHAR2(30) := '';
2580
2581 l_cust_acct_site_id number;
2582 l_cust_acct_site_os varchar2(30);
2583 l_cust_acct_site_osr varchar2(255);
2584 l_cust_acct_site_v2_objs HZ_CUST_ACCT_SITE_V2_BO_TBL;
2585 BEGIN
2586
2587 -- initialize API return status to success.
2588 x_return_status := FND_API.G_RET_STS_SUCCESS;
2589
2590 -- Initialize message list if p_init_msg_list is set to TRUE
2591 IF FND_API.to_Boolean(p_init_msg_list) THEN
2592 FND_MSG_PUB.initialize;
2593 END IF;
2594
2595
2596 -- Debug info.
2597 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2598 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_bo(+)',
2599 p_prefix=>l_debug_prefix,
2600 p_msg_level=>fnd_log.level_procedure);
2601 END IF;
2602
2603 -- check if pass in contact_point_id and/or os+osr
2604 -- extraction validation logic is same as update
2605
2606 l_cust_acct_site_id := p_cust_acct_site_id;
2607 l_cust_acct_site_os := p_cust_acct_site_os;
2608 l_cust_acct_site_osr := p_cust_acct_site_osr;
2609
2610 HZ_EXTRACT_BO_UTIL_PVT.validate_ssm_id(
2611 px_id => l_cust_acct_site_id,
2612 px_os => l_cust_acct_site_os,
2613 px_osr => l_cust_acct_site_osr,
2614 p_obj_type => 'HZ_CUST_ACCT_SITES_ALL',
2615 x_return_status => x_return_status,
2616 x_msg_count => x_msg_count,
2617 x_msg_data => x_msg_data);
2618
2619 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2620 RAISE fnd_api.g_exc_error;
2621 END IF;
2622
2623 HZ_EXTRACT_ACCT_SITE_BO_PVT.get_cust_acct_site_v2_bos
2624 (p_init_msg_list => fnd_api.g_false,
2625 p_parent_id => NULL,
2626 p_cust_acct_site_id => l_cust_acct_site_id,
2627 p_action_type => NULL,
2628 x_cust_acct_site_v2_objs => l_cust_acct_site_v2_objs,
2629 x_return_status => x_return_status,
2630 x_msg_count => x_msg_count,
2631 x_msg_data => x_msg_data);
2632
2633 x_cust_acct_site_v2_obj := l_cust_acct_site_v2_objs(1);
2634
2635 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2636 RAISE FND_API.G_EXC_ERROR;
2637 END IF;
2638
2639
2640 -- Debug info.
2641 IF fnd_log.level_exception>=fnd_log.g_current_runtime_level THEN
2642 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2643 p_msg_data=>x_msg_data,
2644 p_msg_type=>'WARNING',
2645 p_msg_level=>fnd_log.level_exception);
2646 END IF;
2647
2648 -- Debug info.
2649 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2650 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_v2_bo (-)',
2651 p_prefix=>l_debug_prefix,
2652 p_msg_level=>fnd_log.level_procedure);
2653 END IF;
2654
2655
2656 EXCEPTION
2657
2658 WHEN fnd_api.g_exc_error THEN
2659 x_return_status := fnd_api.g_ret_sts_error;
2660
2661 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2662 p_count => x_msg_count,
2663 p_data => x_msg_data);
2664
2665 -- Debug info.
2666 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2667 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2668 p_msg_data=>x_msg_data,
2669 p_msg_type=>'ERROR',
2670 p_msg_level=>fnd_log.level_error);
2671 END IF;
2672 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2673 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_v2_bo (-)',
2674 p_prefix=>l_debug_prefix,
2675 p_msg_level=>fnd_log.level_procedure);
2676 END IF;
2677 WHEN fnd_api.g_exc_unexpected_error THEN
2678 x_return_status := fnd_api.g_ret_sts_unexp_error;
2679
2680 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2681 p_count => x_msg_count,
2682 p_data => x_msg_data);
2683
2684 -- Debug info.
2685 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2686 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2687 p_msg_data=>x_msg_data,
2688 p_msg_type=>'UNEXPECTED ERROR',
2689 p_msg_level=>fnd_log.level_error);
2690 END IF;
2691 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2692 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_v2_bo (-)',
2693 p_prefix=>l_debug_prefix,
2694 p_msg_level=>fnd_log.level_procedure);
2695 END IF;
2696 WHEN OTHERS THEN
2697 x_return_status := fnd_api.g_ret_sts_unexp_error;
2698
2699 fnd_message.set_name('AR', 'HZ_API_OTHERS_EXCEP');
2700 fnd_message.set_token('ERROR' ,SQLERRM);
2701 fnd_msg_pub.add;
2702
2703 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2704 p_count => x_msg_count,
2705 p_data => x_msg_data);
2706
2707 -- Debug info.
2708 IF fnd_log.level_error>=fnd_log.g_current_runtime_level THEN
2709 hz_utility_v2pub.debug_return_messages(p_msg_count=>x_msg_count,
2710 p_msg_data=>x_msg_data,
2711 p_msg_type=>'SQL ERROR',
2712 p_msg_level=>fnd_log.level_error);
2713 END IF;
2714 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2715 hz_utility_v2pub.debug(p_message=>'hz_cust_acct_site_bo_pub.get_cust_acct_site_v2_bo (-)',
2716 p_prefix=>l_debug_prefix,
2717 p_msg_level=>fnd_log.level_procedure);
2718 END IF;
2719
2720 end;
2721
2722 PROCEDURE get_cust_acct_site_v2_bo (
2723 p_cust_acct_site_id IN NUMBER,
2724 p_cust_acct_site_os IN VARCHAR2,
2725 p_cust_acct_site_osr IN VARCHAR2,
2726 x_cust_acct_site_v2_obj OUT NOCOPY HZ_CUST_ACCT_SITE_V2_BO,
2727 x_return_status OUT NOCOPY VARCHAR2,
2728 x_messages OUT NOCOPY HZ_MESSAGE_OBJ_TBL
2729 ) IS
2730 l_msg_data VARCHAR2(2000);
2731 l_msg_count NUMBER;
2732 BEGIN
2733 get_cust_acct_site_v2_bo (
2734 p_init_msg_list => FND_API.G_TRUE,
2735 p_cust_acct_site_id => p_cust_acct_site_id,
2736 p_cust_acct_site_os => p_cust_acct_site_os,
2737 p_cust_acct_site_osr => p_cust_acct_site_osr,
2738 x_cust_acct_site_v2_obj => x_cust_acct_site_v2_obj,
2739 x_return_status => x_return_status,
2740 x_msg_count => l_msg_count,
2741 x_msg_data => l_msg_data
2742 );
2743 x_messages := HZ_PARTY_BO_PVT.return_all_messages(
2744 x_return_status => x_return_status,
2745 x_msg_count => l_msg_count,
2746 x_msg_data => l_msg_data);
2747 END get_cust_acct_site_v2_bo;
2748
2749 END hz_cust_acct_site_bo_pub;