[Home] [Help]
PACKAGE BODY: APPS.HZ_TAX_ASSIGNMENT_PUB
Source
1 package body HZ_TAX_ASSIGNMENT_PUB as
2 /* $Header: ARHTLASB.pls 115.14 2003/09/30 23:50:41 acng ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'HZ_TAX_ASSIGNMENT_PUB' ;
5
6 procedure do_create_update_loc_assign(
7 p_location_id IN NUMBER,
8 p_create_update_flag IN VARCHAR2,
9 x_loc_id OUT NOCOPY NUMBER,
10 x_return_status IN OUT NOCOPY VARCHAR2, /* Changed from OUT to IN OUT*/
11 p_lock_flag IN VARCHAR2 := FND_API.G_FALSE
12 ) IS
13
14 l_org_id NUMBER;
15 l_count NUMBER;
16 l_rowid ROWID := NULL;
17
18 l_city VARCHAR2(60);
19 l_state VARCHAR2(60);
20 l_country VARCHAR2(60);
21 l_county VARCHAR2(60);
22 l_province VARCHAR2(60);
23 l_postal_code VARCHAR2(60);
24 l_attribute1 VARCHAR2(150);
25 l_attribute2 VARCHAR2(150);
26 l_attribute3 VARCHAR2(150);
27 l_attribute4 VARCHAR2(150);
28 l_attribute5 VARCHAR2(150);
29 l_attribute6 VARCHAR2(150);
30 l_attribute7 VARCHAR2(150);
31 l_attribute8 VARCHAR2(150);
32 l_attribute9 VARCHAR2(150);
33 l_attribute10 VARCHAR2(150);
34 l_wh_update_date DATE;
35
36 l_is_remit_to_location VARCHAR2(1) := 'N'; /* New local param for remit to addr*/
37
38 db_city VARCHAR2(60);
39 db_state VARCHAR2(60);
40 db_country VARCHAR2(60);
41 db_county VARCHAR2(60);
42 db_province VARCHAR2(60);
43 db_postal_code VARCHAR2(60);
44 db_attribute1 VARCHAR2(150);
45 db_attribute2 VARCHAR2(150);
46 db_attribute3 VARCHAR2(150);
47 db_attribute4 VARCHAR2(150);
48 db_attribute5 VARCHAR2(150);
49 db_attribute6 VARCHAR2(150);
50 db_attribute7 VARCHAR2(150);
51 db_attribute8 VARCHAR2(150);
52 db_attribute9 VARCHAR2(150);
53 db_attribute10 VARCHAR2(150);
54 db_wh_update_date DATE;
55
56 -- ACNG add call to location profile: BEGIN
57 l_location_profile_rec hz_location_profile_pvt.location_profile_rec_type;
58 l_actual_content_source VARCHAR2(30);
59 l_return_status VARCHAR2(30);
60 l_msg_count NUMBER;
61 l_msg_data VARCHAR2(2000);
62 l_allow_update_std VARCHAR2(1);
63 l_date_validated DATE;
64 l_validation_status_code VARCHAR2(30);
65 -- ACNG add call to location profile: END
66
67 BEGIN
68
69 select * /* Bug Fix 2020712 */
70 into arp_standard.sysparm
71 from ar_system_parameters;
72
73 -- check org context
74 -- if org context is not available then no record will be created in
75 -- hz_loc_assignments table.
76
77 SELECT
78 NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1,1), ' ', NULL,
79 SUBSTRB(USERENV('CLIENT_INFO'),1,10))),-99)
80 INTO l_org_id
81 FROM dual;
82
83 /*
84 IF l_org_id is NULL or l_org_id = -99 THEN
85
86 FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
87 FND_MESSAGE.SET_TOKEN('COLUMN', 'org_id');
88 FND_MSG_PUB.ADD;
89 RAISE FND_API.G_EXC_ERROR;
90 END IF;
91 */
92
93 -- check the required fields:
94 IF p_location_id IS NULL OR
95 p_location_id = FND_API.G_MISS_NUM THEN
96
97 FND_MESSAGE.SET_NAME('AR', 'HZ_API_MISSING_COLUMN');
98 FND_MESSAGE.SET_TOKEN('COLUMN', 'p_location_id');
99 FND_MSG_PUB.ADD;
100 RAISE FND_API.G_EXC_ERROR;
101 END IF;
102
103 -- IF p_lock_flag is true then
104 -- Check whether location record has been updated by another user. If not, lock it.
105 -- IF p_loc_flag is not true then the location has been locked already.
106
107 IF p_lock_flag = 'T' OR p_lock_flag = FND_API.G_TRUE THEN
108
109 -- get location components
110 BEGIN
111 SELECT country, city, state, county, province, postal_code,
112 attribute1, attribute2, attribute3, attribute4, attribute5,
113 attribute6, attribute7, attribute8, attribute9, attribute10,
114 wh_update_date
115 , actual_content_source
116 , date_validated
117 , validation_status_code
118 INTO l_country, l_city, l_state, l_county, l_province, l_postal_code,
119 l_attribute1,l_attribute2,l_attribute3,l_attribute4,l_attribute5,
120 l_attribute6,l_attribute7,l_attribute8,l_attribute9,l_attribute10,
121 l_wh_update_date
122 , l_actual_content_source
123 , l_date_validated
124 , l_validation_status_code
125 FROM HZ_LOCATIONS
126 WHERE location_id = p_location_id
127 FOR UPDATE OF location_id NOWAIT;
128
129 EXCEPTION WHEN NO_DATA_FOUND THEN
130 FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
131 FND_MESSAGE.SET_TOKEN('RECORD', 'hz_locations');
132 FND_MESSAGE.SET_TOKEN('VALUE', to_char(p_location_id));
133 FND_MSG_PUB.ADD;
134 x_return_status := FND_API.G_RET_STS_ERROR;
135
136 END; -- end of SELECT
137
138 ELSE -- do not lock the location record
139 -- get location components
140
141 BEGIN
142 SELECT country, city, state, county, province, postal_code,
143 attribute1, attribute2, attribute3, attribute4, attribute5,
144 attribute6, attribute7, attribute8, attribute9, attribute10,
145 wh_update_date
146 , actual_content_source
147 INTO l_country, l_city, l_state, l_county, l_province, l_postal_code,
148 l_attribute1,l_attribute2,l_attribute3,l_attribute4,l_attribute5,
149 l_attribute6,l_attribute7,l_attribute8,l_attribute9,l_attribute10,
150 l_wh_update_date
151 , l_actual_content_source
152 FROM HZ_LOCATIONS
153 WHERE location_id = p_location_id;
154
155 EXCEPTION WHEN NO_DATA_FOUND THEN
156 FND_MESSAGE.SET_NAME('AR', 'HZ_API_NO_RECORD');
157 FND_MESSAGE.SET_TOKEN('RECORD', 'hz_locations');
158 FND_MESSAGE.SET_TOKEN('VALUE', to_char(p_location_id));
159 FND_MSG_PUB.ADD;
160 x_return_status := FND_API.G_RET_STS_ERROR;
161
162 END; -- end of SELECT ;
163
164 END IF ;
165
166 -- ACNG
167 -- raise error if the update location profile option is turned off and
168 -- the address has been validated before
169 l_allow_update_std := nvl(fnd_profile.value('HZ_UPDATE_STD_ADDRESS'), 'Y');
170 IF(l_allow_update_std = 'N' AND
171 l_date_validated IS NOT NULL AND
172 l_validation_status_code IS NOT NULL) THEN
173 FND_MESSAGE.SET_NAME('AR', 'HZ_LOC_NO_UPDATE');
174 FND_MSG_PUB.ADD;
175 RAISE fnd_api.g_exc_error;
176 END IF;
177 -- ACNG
178
179 db_country := l_country;
180 db_city := l_city ;
181 db_state := l_state ;
182 db_county := l_county ;
183 db_province := l_province;
184 db_postal_code := l_postal_code;
185 db_attribute1 := l_attribute1;
186 db_attribute2 := l_attribute2;
187 db_attribute3 := l_attribute3;
188 db_attribute4 := l_attribute4;
189 db_attribute5 := l_attribute5;
190 db_attribute6 := l_attribute6;
191 db_attribute7 := l_attribute7;
192 db_attribute8 := l_attribute8;
193 db_attribute9 := l_attribute9;
194 db_attribute10 := l_attribute10;
195 db_wh_update_date:= l_wh_update_date;
196
197 --
198 -- Chevking whether this location is for Remit-To Address or not
199 --
200 BEGIN
201 SELECT 'Y'
202 INTO l_is_remit_to_location
203 FROM DUAL
204 WHERE EXISTS ( SELECT 1
205 FROM hz_party_sites ps
206 WHERE ps.location_id = p_location_id
207 AND ps.party_id = -1);
208 EXCEPTION
209 WHEN NO_DATA_FOUND THEN
210 NULL;
211 END;
212
213 -- call tax package to populate loc_id for a location
214
215 -- run validation for default country.
216 -- Added additional condition to check whether
217 -- this is for Remit-To Address or not.
218 IF l_country = arp_standard.sysparm.default_country AND
219 l_is_remit_to_location <> 'Y' THEN
220
221 arp_adds.Set_Location_CCID(l_country,
222 l_city,
223 l_state,
224 l_county,
225 l_province,
226 l_postal_code,
227 l_attribute1,
228 l_attribute2,
229 l_attribute3,
230 l_attribute4,
231 l_attribute5,
232 l_attribute6,
233 l_attribute7,
234 l_attribute8,
235 l_attribute9,
236 l_attribute10,
237 x_loc_id,
238 p_location_id );
239
240 --Update location attributes if the values in the database do not match
241 --with the values returned by the above procedure.
242
243 IF db_country = l_country
244 AND db_city = l_city
245 AND db_state = l_state
246 AND db_county = l_county
247 AND db_province = l_province
248 AND db_postal_code = l_postal_code
249 AND db_attribute1 = l_attribute1
250 AND db_attribute2 = l_attribute2
251 AND db_attribute3 = l_attribute3
252 AND db_attribute4 = l_attribute4
253 AND db_attribute5 = l_attribute5
254 AND db_attribute6 = l_attribute6
255 AND db_attribute7 = l_attribute7
256 AND db_attribute8 = l_attribute8
257 AND db_attribute9 = l_attribute9
258 AND db_attribute10 = l_attribute10 THEN
259
260 NULL;
261 ELSE
262 UPDATE hz_locations SET
263 country = l_country,
264 city = l_city ,
265 state = l_state ,
266 county = l_county ,
267 province = l_province,
268 postal_code = l_postal_code,
269 attribute1 = l_attribute1,
270 attribute2 = l_attribute2,
271 attribute3 = l_attribute3,
272 attribute4 = l_attribute4,
273 attribute5 = l_attribute5,
274 attribute6 = l_attribute6,
275 attribute7 = l_attribute7,
276 attribute8 = l_attribute8,
277 attribute9 = l_attribute9,
278 attribute10 = l_attribute10
279 WHERE location_id = p_location_id;
280
281 -- ACNG add call to location profile: BEGIN
282
283 IF(NOT( db_country = l_country
284 AND db_city = l_city
285 AND db_state = l_state
286 AND db_county = l_county
287 AND db_province = l_province
288 AND db_postal_code = l_postal_code)) THEN
289
290 l_location_profile_rec.location_profile_id := NULL;
291 l_location_profile_rec.location_id := p_location_id;
292 l_location_profile_rec.actual_content_source := l_actual_content_source;
293 l_location_profile_rec.effective_start_date := NULL;
294 l_location_profile_rec.effective_end_date := NULL;
295 l_location_profile_rec.date_validated := NULL;
296 l_location_profile_rec.city := l_city;
297 l_location_profile_rec.postal_code := l_postal_code;
298 l_location_profile_rec.county := l_county;
299 l_location_profile_rec.country := l_country;
300 l_location_profile_rec.address1 := NULL;
301 l_location_profile_rec.address2 := NULL;
302 l_location_profile_rec.address3 := NULL;
303 l_location_profile_rec.address4 := NULL;
304
305 IF(l_state IS NOT NULL) THEN
306 l_location_profile_rec.prov_state_admin_code := l_state;
307 ELSIF(l_province IS NOT NULL) THEN
308 l_location_profile_rec.prov_state_admin_code := l_province;
309 ELSE
310 l_location_profile_rec.prov_state_admin_code := NULL;
311 END IF;
312
313 l_return_status := FND_API.G_RET_STS_SUCCESS;
314
315 hz_location_profile_pvt.update_location_profile (
316 p_location_profile_rec => l_location_profile_rec
317 ,x_return_status => l_return_status
318 ,x_msg_count => l_msg_count
319 ,x_msg_data => l_msg_data );
320
321 IF(l_return_status = FND_API.G_RET_STS_ERROR) THEN
322 RAISE fnd_api.g_exc_error;
323 ELSIF(l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
324 RAISE fnd_api.g_exc_unexpected_error;
325 END IF;
326
327 END IF;
328
329 -- ACNG add call to location profile: END
330
331 END IF;
332
333
334
335 ELSE -- not default country
336 x_loc_id := NULL;
337
338 END IF; -- default country
339
340
341 /******** commented out as control does not come here, it goes thru V2 API
342 IF p_create_update_flag = 'C' THEN
343
344 -- check if the combination of location_id and org_id exists in database,
345 -- if it exists, then tax group has created a record for a party without
346 -- any customer account site. we just update the loc_id accordingly for
347 -- that record.
348
349 BEGIN
350 l_count := 0;
351
352 SELECT count(*)
353 INTO l_count
354 FROM hz_loc_assignments
355 WHERE location_id = p_location_id
356 AND nvl(org_id, l_org_id) = l_org_id;
357
358 if l_count = 0 then
359
360 -- insert loc_id for a new location:
361 HZ_LOC_ASSIGNMENTS_PKG.INSERT_ROW(
362 X_Rowid => l_rowid,
363 X_LOCATION_ID => p_location_id,
364 X_LOC_ID => x_loc_id,
365 X_ORG_ID => l_org_id,
366 X_CREATED_BY => hz_utility_pub.CREATED_BY,
367 X_CREATION_DATE => hz_utility_pub.CREATION_DATE,
368 X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
369 X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
370 X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
371 X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
372 X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
373 X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
374 X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
375 X_WH_UPDATE_DATE => l_wh_update_date
376 );
377
378 else -- update loc_id for an existing location.
379
380 --Select rowid.
381 select rowid INTO l_rowid FROM hz_loc_assignments
382 WHERE location_id = p_location_id
383 AND nvl(org_id, l_org_id) = l_org_id;
384
385 HZ_LOC_ASSIGNMENTS_PKG.UPDATE_ROW(
386 X_Rowid => l_rowid,
387 X_LOCATION_ID => p_location_id,
388 X_LOC_ID => x_loc_id,
389 X_ORG_ID => l_org_id,
390 X_CREATED_BY => FND_API.G_MISS_NUM,
391 X_CREATION_DATE => FND_API.G_MISS_DATE,
392 X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
393 X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
394 X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
395 X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
396 X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
397 X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
398 X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
399 X_WH_UPDATE_DATE => l_wh_update_date
400 );
401 end if;
402 END; -- end of p_create_update_flag = 'C'
403
404
405 ELSIF p_create_update_flag = 'U' THEN
406
407 --Select rowid.
408 select rowid INTO l_rowid FROM hz_loc_assignments
409 WHERE location_id = p_location_id
410 AND nvl(org_id, l_org_id) = l_org_id;
411
412 -- update loc_id for modified location
413
414 HZ_LOC_ASSIGNMENTS_PKG.UPDATE_ROW(
415 X_Rowid => l_rowid,
416 X_LOCATION_ID => p_location_id,
417 X_LOC_ID => x_loc_id,
418 X_ORG_ID => l_org_id,
419 X_CREATED_BY => FND_API.G_MISS_NUM,
420 X_CREATION_DATE => FND_API.G_MISS_DATE,
421 X_LAST_UPDATE_LOGIN => hz_utility_pub.LAST_UPDATE_LOGIN,
422 X_LAST_UPDATE_DATE => hz_utility_pub.LAST_UPDATE_DATE,
423 X_LAST_UPDATED_BY => hz_utility_pub.LAST_UPDATED_BY,
424 X_REQUEST_ID => hz_utility_pub.REQUEST_ID,
425 X_PROGRAM_APPLICATION_ID => hz_utility_pub.PROGRAM_APPLICATION_ID,
426 X_PROGRAM_ID => hz_utility_pub.PROGRAM_ID,
427 X_PROGRAM_UPDATE_DATE => hz_utility_pub.PROGRAM_UPDATE_DATE,
428 X_WH_UPDATE_DATE => l_wh_update_date
429 );
430
431 END IF;
432 ********************* commented out till here *******************/
433
434 end do_create_update_loc_assign;
435
436 procedure create_loc_assignment(
437 p_api_version IN NUMBER,
438 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
439 p_commit IN VARCHAR2:= FND_API.G_FALSE,
440 p_location_id IN NUMBER,
441 x_return_status IN OUT NOCOPY VARCHAR2, /* Changed from OUT to IN OUT*/
442 x_msg_count OUT NOCOPY NUMBER,
443 x_msg_data OUT NOCOPY VARCHAR2,
444 x_loc_id OUT NOCOPY NUMBER,
445 p_lock_flag IN VARCHAR2 :=FND_API.G_FALSE
446 ) IS
447
448 l_api_name CONSTANT VARCHAR2(30) := 'create loc assignment';
449 l_api_version CONSTANT NUMBER := 1.0;
450 l_location_id NUMBER := p_location_id;
451 APP_EXCEPTION EXCEPTION;
452 PRAGMA EXCEPTION_INIT(APP_EXCEPTION, -20000);
453 BEGIN
454 --Standard start of API savepoint
455 SAVEPOINT create_loc_assignment_pub;
456 --Standard call to check for call compatibility.
457 IF NOT FND_API.Compatible_API_Call(
458 l_api_version,
459 p_api_version,
460 l_api_name,
461 G_PKG_NAME)
462 THEN
463 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
464 END IF;
465
466 --Initialize message list if p_init_msg_list is set to TRUE.
467 IF FND_API.to_Boolean(p_init_msg_list) THEN
468 FND_MSG_PUB.initialize;
469 END IF;
470
471 --Initialize API return status to success.
472 x_return_status := FND_API.G_RET_STS_SUCCESS;
473
474
475 -- Call to business logic.
476
477 /********* following code is remarked as everything is done through V2 API now
478 -- populate loc_id by calling tax package.
479 do_create_update_loc_assign( p_location_id,
480 'C',
481 x_loc_id,
482 x_return_status,
483 p_lock_flag);
484 ****************/
485
486 -- code for doing everything thru V2 API
487 HZ_TAX_ASSIGNMENT_V2PUB.create_loc_assignment(
488 p_location_id => p_location_id,
489 p_lock_flag => p_lock_flag,
490 p_created_by_module => 'TCA_V1_API',
491 p_application_id => -222,
492 x_return_status => x_return_status,
493 x_msg_count => x_msg_count,
494 x_msg_data => x_msg_data,
495 x_loc_id => x_loc_id
496 );
497
498
499 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
500 RAISE FND_API.G_EXC_ERROR;
501 END IF;
502
503 --Standard check of p_commit.
504 IF FND_API.to_Boolean(p_commit) THEN
505 Commit;
506 END IF;
507
508 --Standard call to get message count and if count is 1, get message info.
509 FND_MSG_PUB.Count_And_Get(
510 p_encoded => FND_API.G_FALSE,
511 p_count => x_msg_count,
512 p_data => x_msg_data);
513 EXCEPTION
514 WHEN FND_API.G_EXC_ERROR THEN
515 ROLLBACK TO create_loc_assignment_pub;
516 x_return_status := FND_API.G_RET_STS_ERROR;
517 FND_MSG_PUB.Count_And_Get(
518 p_encoded => FND_API.G_FALSE,
519 p_count => x_msg_count,
520 p_data => x_msg_data);
521
522 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
523 ROLLBACK TO create_loc_assignment_pub;
524 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
525 FND_MSG_PUB.Count_And_Get(
526 p_encoded => FND_API.G_FALSE,
527 p_count => x_msg_count,
528 p_data => x_msg_data);
529
530 WHEN APP_EXCEPTION THEN
531 ROLLBACK TO create_loc_assignment_pub;
532 x_return_status := FND_API.G_RET_STS_ERROR;
533 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
534 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
535 FND_MSG_PUB.ADD;
536 FND_MSG_PUB.Count_And_Get(
537 p_encoded => FND_API.G_FALSE,
538 p_count => x_msg_count,
539 p_data => x_msg_data);
540 WHEN OTHERS THEN
541 ROLLBACK TO create_loc_assignment_pub;
542 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
543
544 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
545 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
546 FND_MSG_PUB.ADD;
547
548 FND_MSG_PUB.Count_And_Get(
549 p_encoded => FND_API.G_FALSE,
550 p_count => x_msg_count,
551 p_data => x_msg_data);
552
553 END create_loc_assignment;
554
555 procedure update_loc_assignment(
556 p_api_version IN NUMBER,
557 p_init_msg_list IN VARCHAR2:= FND_API.G_FALSE,
558 p_commit IN VARCHAR2:= FND_API.G_FALSE,
559 p_location_id IN NUMBER,
560 x_return_status IN OUT NOCOPY VARCHAR2, /* Changed from OUT to IN OUT*/
561 x_msg_count OUT NOCOPY NUMBER,
562 x_msg_data OUT NOCOPY VARCHAR2,
563 x_loc_id OUT NOCOPY NUMBER,
564 p_lock_flag IN VARCHAR2 :=FND_API.G_TRUE
565 ) IS
566
567 l_api_name CONSTANT VARCHAR2(30) := 'update loc assignment';
568 l_api_version CONSTANT NUMBER := 1.0;
569 l_location_id NUMBER := p_location_id;
570 APP_EXCEPTION EXCEPTION;
571 PRAGMA EXCEPTION_INIT(APP_EXCEPTION, -20000);
572
573 BEGIN
574 --Standard start of API savepoint
575 SAVEPOINT update_loc_assignment_pub;
576 --Standard call to check for call compatibility.
577 IF NOT FND_API.Compatible_API_Call(
578 l_api_version,
579 p_api_version,
580 l_api_name,
581 G_PKG_NAME)
582 THEN
583 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
584 END IF;
585
586 --Initialize message list if p_init_msg_list is set to TRUE.
587 IF FND_API.to_Boolean(p_init_msg_list) THEN
588 FND_MSG_PUB.initialize;
589 END IF;
590
591 --Initialize API return status to success.
592 x_return_status := FND_API.G_RET_STS_SUCCESS;
593
594
595 -- Call to business logic.
596
597 /******** following code is remarked as everything is now done thru V2 API
598 -- populate loc_id by calling tax package.
599 do_create_update_loc_assign( l_location_id,
600 'U',
601 x_loc_id,
602 x_return_status,
603 p_lock_flag );
604 *****************/
605
606 -- code for doing everything by V2 API
607 HZ_TAX_ASSIGNMENT_V2PUB.update_loc_assignment(
608 p_location_id => l_location_id,
609 p_lock_flag => p_lock_flag,
610 p_created_by_module => 'TCA_V1_API',
611 p_application_id => -222,
612 x_return_status => x_return_status,
613 x_msg_count => x_msg_count,
614 x_msg_data => x_msg_data,
615 x_loc_id => x_loc_id
616 );
617
618 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
619 RAISE FND_API.G_EXC_ERROR;
620 END IF;
621
622 --Standard check of p_commit.
623 IF FND_API.to_Boolean(p_commit) THEN
624 Commit;
625 END IF;
626
627 --Standard call to get message count and if count is 1, get message info.
628 FND_MSG_PUB.Count_And_Get(
629 p_encoded => FND_API.G_FALSE,
630 p_count => x_msg_count,
631 p_data => x_msg_data);
632 EXCEPTION
633 WHEN FND_API.G_EXC_ERROR THEN
634 ROLLBACK TO update_loc_assignment_pub;
635 x_return_status := FND_API.G_RET_STS_ERROR;
636 FND_MSG_PUB.Count_And_Get(
637 p_encoded => FND_API.G_FALSE,
638 p_count => x_msg_count,
639 p_data => x_msg_data);
640
641 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
642 ROLLBACK TO update_loc_assignment_pub;
643 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
644 FND_MSG_PUB.Count_And_Get(
645 p_encoded => FND_API.G_FALSE,
646 p_count => x_msg_count,
647 p_data => x_msg_data);
648
649 WHEN APP_EXCEPTION THEN
650 ROLLBACK TO update_loc_assignment_pub;
651 x_return_status := FND_API.G_RET_STS_ERROR;
652 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
653 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
654 FND_MSG_PUB.ADD;
655 FND_MSG_PUB.Count_And_Get(
656 p_encoded => FND_API.G_FALSE,
657 p_count => x_msg_count,
658 p_data => x_msg_data);
659
660 WHEN OTHERS THEN
661 ROLLBACK TO update_loc_assignment_pub;
662 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
663
664 FND_MESSAGE.SET_NAME('AR', 'HZ_API_OTHERS_EXCEP');
665 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
666 FND_MSG_PUB.ADD;
667
668 FND_MSG_PUB.Count_And_Get(
669 p_encoded => FND_API.G_FALSE,
670 p_count => x_msg_count,
671 p_data => x_msg_data);
672
673 END update_loc_assignment;
674
675
676 end HZ_TAX_ASSIGNMENT_PUB;