[Home] [Help]
PACKAGE BODY: APPS.POS_SUPPLIER_TAX_PROF_BO_PKG
Source
1 PACKAGE BODY pos_supplier_tax_prof_bo_pkg AS
2 /* $Header: POSSPTXPB.pls 120.1 2010/11/25 12:18:27 puppulur noship $ */
3 /*#
4 * Use this routine to get tax profile BO
5 * @param p_api_version The api version
6 * @param p_init_msg_list The Initialization message list
7 * @param p_party_id The party_id
8 * @param p_orig_system The Orig System
9 * @param p_orig_system_reference The Orig System Reference
10 * @param x_zx_party_tax_profile_bo_tbl The tax profile bo
11 * @param x_return_status The return status
12 * @param x_msg_count The message count
13 * @param x_msg_data The message data
14 * @rep:scope public
15 * @rep:lifecycle active
16 * @rep:displayname Get Supplier Tax Profile
17 * @rep:catagory BUSSINESS_ENTITY AP_SUPPLIER
18 */
19 PROCEDURE get_pos_sup_tax_prof_bo_tbl(p_api_version IN NUMBER DEFAULT NULL,
20 p_init_msg_list IN VARCHAR2 DEFAULT NULL,
21 p_party_id IN NUMBER,
22 p_orig_system IN VARCHAR2,
23 p_orig_system_reference IN VARCHAR2,
24 x_zx_party_tax_profile_bo_tbl OUT NOCOPY pos_tax_profile_bo_tbl,
25 x_return_status OUT NOCOPY VARCHAR2,
26 x_msg_count OUT NOCOPY NUMBER,
27 x_msg_data OUT NOCOPY VARCHAR2) IS
28
29 l_ap_supplier_tax_prof_bo_tbl pos_tax_profile_bo_tbl := pos_tax_profile_bo_tbl();
30 l_party_id NUMBER;
31
32 BEGIN
33
34 IF p_party_id IS NULL OR p_party_id = 0 THEN
35 l_party_id := pos_supplier_bo_dep_pkg.get_party_id(p_orig_system,
36 p_orig_system_reference);
37 ELSE
38 l_party_id := p_party_id;
39 END IF;
40
41 SELECT pos_tax_profile_bo(party_type_code,
42 supplier_flag,
43 customer_flag,
44 site_flag,
45 process_for_applicability_flag,
46 rounding_level_code,
47 rounding_rule_code,
48 withholding_start_date,
49 inclusive_tax_flag,
50 allow_awt_flag,
51 use_le_as_subscriber_flag,
52 legal_establishment_flag,
53 first_party_le_flag,
54 reporting_authority_flag,
55 collecting_authority_flag,
56 provider_type_code,
57 create_awt_dists_type_code,
58 create_awt_invoices_type_code,
59 tax_classification_code,
60 self_assess_flag,
61 allow_offset_tax_flag,
62 effective_from_use_le,
63 record_type_code,
64 created_by,
65 creation_date,
66 last_updated_by,
67 last_update_date,
68 last_update_login,
69 request_id,
70 program_application_id,
71 program_id,
72 attribute1,
73 attribute2,
74 attribute3,
75 attribute4,
76 attribute5,
77 attribute6,
78 attribute7,
79 attribute8,
80 attribute9,
81 attribute10,
82 attribute11,
83 attribute12,
84 attribute13,
85 attribute14,
86 attribute15,
87 attribute_category,
88 program_login_id,
89 party_tax_profile_id,
90 party_id,
91 rep_registration_number,
92 object_version_number,
93 registration_type_code,
94 country_code,
95 merged_to_ptp_id,
96 merged_status_code) BULK COLLECT
97 INTO l_ap_supplier_tax_prof_bo_tbl
98 FROM zx_party_tax_profile
99 WHERE party_id = l_party_id;
100
101 x_zx_party_tax_profile_bo_tbl := l_ap_supplier_tax_prof_bo_tbl;
102 EXCEPTION
103 WHEN fnd_api.g_exc_error THEN
104
105 x_return_status := fnd_api.g_ret_sts_error;
106 x_msg_count := 1;
107 x_msg_data := SQLCODE || SQLERRM;
108 WHEN fnd_api.g_exc_unexpected_error THEN
109
110 x_return_status := fnd_api.g_ret_sts_unexp_error;
111 x_msg_count := 1;
112 x_msg_data := SQLCODE || SQLERRM;
113 WHEN OTHERS THEN
114
115 x_return_status := fnd_api.g_ret_sts_unexp_error;
116
117 x_msg_count := 1;
118 x_msg_data := SQLCODE || SQLERRM;
119 END get_pos_sup_tax_prof_bo_tbl;
120 -----------------------------------------------------
121 PROCEDURE validate_tax_profile(p_party_id IN NUMBER,
122 p_rounding_level_code IN VARCHAR2,
123 p_rounding_rule_code IN VARCHAR2,
124 p_registration_type_code IN VARCHAR2,
125 p_country_code IN VARCHAR2,
126 x_return_status OUT NOCOPY VARCHAR2,
127 x_msg_count OUT NOCOPY NUMBER,
128 x_msg_data OUT NOCOPY VARCHAR2,
129 x_tax_prof_valid OUT NOCOPY VARCHAR2,
130 x_party_tax_profile_id OUT NOCOPY NUMBER,
131 x_country_code OUT NOCOPY VARCHAR2) IS
132 l_dummy_lookup VARCHAR2(30);
133 l_request_id NUMBER := fnd_global.conc_request_id;
134
135 l_msg_count NUMBER;
136 l_msg_data VARCHAR2(2000);
137 l_api_name CONSTANT VARCHAR2(50) := 'VALIDATE_VENDOR_PRODS_SERVICES';
138 BEGIN
139 -- Initialize API return status to success
140 x_return_status := fnd_api.g_ret_sts_success;
141 x_tax_prof_valid := 'Y';
142
143 -- Check if the Tax Profile Id exists
144 BEGIN
145 SELECT party_tax_profile_id
146 INTO x_party_tax_profile_id
147 FROM zx_party_tax_profile
148 WHERE party_id = p_party_id
149 AND party_type_code = 'THIRD_PARTY';
150
151 RETURN;
152
153 EXCEPTION
154 WHEN no_data_found THEN
155 NULL;
156 END;
157
158 -- Validate the rounding Level using the following query
159 IF (p_rounding_level_code IS NOT NULL) THEN
160 BEGIN
161 SELECT fndlookup.lookup_code
162 INTO l_dummy_lookup
163 FROM fnd_lookups fndlookup
164 WHERE fndlookup.lookup_type LIKE 'ZX_ROUNDING_LEVEL'
165 AND nvl(fndlookup.start_date_active, SYSDATE) <= SYSDATE
166 AND nvl(fndlookup.end_date_active, SYSDATE) >= SYSDATE
167 AND nvl(fndlookup.enabled_flag, 'N') = 'Y'
168 AND lookup_code = p_rounding_level_code
169 ORDER BY fndlookup.lookup_code;
170
171 EXCEPTION
172 WHEN OTHERS THEN
173 x_tax_prof_valid := 'N';
174 x_return_status := fnd_api.g_ret_sts_error;
175 x_msg_data := 'AP_INVALID_ROUNDING_LEVEL';
176
177 END;
178 END IF;
179
180 IF (p_rounding_rule_code IS NOT NULL) THEN
181 -- Validate the rounding Rule using the following query
182 BEGIN
183 SELECT fndlookup.lookup_code
184 INTO l_dummy_lookup
185 FROM fnd_lookups fndlookup
186 WHERE fndlookup.lookup_type LIKE 'ZX_ROUNDING_RULE'
187 AND nvl(fndlookup.start_date_active, SYSDATE) <= SYSDATE
188 AND nvl(fndlookup.end_date_active, SYSDATE) >= SYSDATE
189 AND nvl(fndlookup.enabled_flag, 'N') = 'Y'
190 AND lookup_code = p_rounding_rule_code
191 ORDER BY fndlookup.lookup_code;
192
193 EXCEPTION
194 WHEN OTHERS THEN
195 x_tax_prof_valid := 'N';
196 x_return_status := fnd_api.g_ret_sts_error;
197 x_msg_data := 'AP_INVALID_ROUNDING_RULE';
198
199 END;
200 END IF;
201
202 IF (p_country_code IS NOT NULL) THEN
203 -- Validate the Country Name using the following query
204 BEGIN
205 SELECT territory_short_name
206 INTO x_country_code
207 FROM fnd_territories_vl
208 WHERE territory_code = p_country_code;
209
210 -- Update the Interface table with the country code obtained in the prev SQL since the country code would be saved.
211 EXCEPTION
212 WHEN OTHERS THEN
213 x_tax_prof_valid := 'N';
214 x_return_status := fnd_api.g_ret_sts_error;
215 x_msg_data := 'AP_INVALID_COUNTRY_NAME';
216
217 END;
218 END IF;
219
220 IF (p_registration_type_code IS NOT NULL) THEN
221 -- Validate the Registration Type Code using the following query
222 BEGIN
223 SELECT fndlookup.lookup_code
224 INTO l_dummy_lookup
225 FROM fnd_lookups fndlookup
226 WHERE fndlookup.lookup_type LIKE 'ZX_REGISTRATIONS_TYPE'
227 AND nvl(fndlookup.start_date_active, SYSDATE) <= SYSDATE
228 AND nvl(fndlookup.end_date_active, SYSDATE) >= SYSDATE
229 AND nvl(fndlookup.enabled_flag, 'N') = 'Y'
230 AND lookup_code = p_registration_type_code
231 ORDER BY fndlookup.lookup_code;
232
233 EXCEPTION
234 WHEN OTHERS THEN
235 x_tax_prof_valid := 'N';
236 x_return_status := fnd_api.g_ret_sts_error;
237 x_msg_data := 'AP_INVALID_REGISTRATION_TYPE_CODE';
238
239 END;
240 END IF;
241
242 EXCEPTION
243 WHEN OTHERS THEN
244 x_tax_prof_valid := 'N';
245 x_return_status := fnd_api.g_ret_sts_error;
246 fnd_msg_pub.count_and_get(p_count => x_msg_count,
247 p_data => x_msg_data);
248 END validate_tax_profile;
249
250 /*#
251 * Use this routine to create tax profile BO
252 * @param p_api_version The api version
253 * @param p_init_msg_list The Initialization message list
254 * @param x_zx_party_tax_profile_bo_tbl The tax profile bo
255 * @param p_party_id The party_id
256 * @param p_orig_system The Orig System
257 * @param p_orig_system_reference The Orig System Reference
258 * @param x_return_status The return status
259 * @param x_msg_count The message count
260 * @param x_msg_data The message data
261 * @param x_tax_profile_id The newly created tax profile id
262 * @rep:scope public
263 * @rep:lifecycle active
264 * @rep:displayname Create Supplier Tax Profile
265 * @rep:catagory BUSSINESS_ENTITY AP_SUPPLIER
266 */
267 PROCEDURE create_supp_tax_profile(p_api_version IN NUMBER DEFAULT NULL,
268 p_init_msg_list IN VARCHAR2 DEFAULT NULL,
269 x_zx_party_tax_profile_bo_tbl IN pos_tax_profile_bo_tbl,
270 p_party_id IN NUMBER,
271 p_orig_system IN VARCHAR2,
272 p_orig_system_reference IN VARCHAR2,
273 p_create_update_flag IN VARCHAR2,
274 x_return_status OUT NOCOPY VARCHAR2,
275 x_msg_count OUT NOCOPY NUMBER,
276 x_msg_data OUT NOCOPY VARCHAR2,
277 x_tax_profile_id OUT NOCOPY NUMBER) IS
278 l_tax_prof_valid VARCHAR2(10);
279 l_party_tax_profile_id NUMBER;
280 l_country_code VARCHAR2(40);
281 l_return_status VARCHAR2(100);
282 l_msg_count NUMBER;
283 l_msg_data VARCHAR2(4000);
284 l_party_id NUMBER;
285 BEGIN
286 x_return_status := fnd_api.g_ret_sts_success;
287
288 IF p_party_id IS NULL OR p_party_id = 0 THEN
289 l_party_id := pos_supplier_bo_dep_pkg.get_party_id(p_orig_system,
290 p_orig_system_reference);
291 ELSE
292 l_party_id := p_party_id;
293 END IF;
294 FOR i IN x_zx_party_tax_profile_bo_tbl.first .. x_zx_party_tax_profile_bo_tbl.last LOOP
295 -- Call Validate_Tax_profile to validate the Tax Profiledata
296 validate_tax_profile(p_party_id => l_party_id,
297 p_rounding_level_code => x_zx_party_tax_profile_bo_tbl(i).rounding_level_code,
298 p_rounding_rule_code => x_zx_party_tax_profile_bo_tbl(i).rounding_rule_code,
299 p_registration_type_code => x_zx_party_tax_profile_bo_tbl(i).registration_type_code,
300 p_country_code => x_zx_party_tax_profile_bo_tbl(i).country_code,
301 x_return_status => l_return_status,
302 x_msg_count => l_msg_count,
303 x_msg_data => l_msg_data,
304 x_tax_prof_valid => l_tax_prof_valid,
305 x_party_tax_profile_id => l_party_tax_profile_id,
306 x_country_code => l_country_code);
307
308 IF p_create_update_flag = 'C' THEN
309 IF (l_tax_prof_valid = 'Y') THEN
310
311 -- Insert
312 zx_party_tax_profile_pkg.insert_row(p_allow_awt_flag => x_zx_party_tax_profile_bo_tbl(i).allow_awt_flag,
313 p_allow_offset_tax_flag => x_zx_party_tax_profile_bo_tbl(i).allow_offset_tax_flag,
314 p_attribute_category => x_zx_party_tax_profile_bo_tbl(i).attribute_category,
315 p_attribute1 => x_zx_party_tax_profile_bo_tbl(i).attribute1,
316 p_attribute10 => x_zx_party_tax_profile_bo_tbl(i).attribute10,
317 p_attribute11 => x_zx_party_tax_profile_bo_tbl(i).attribute11,
318 p_attribute12 => x_zx_party_tax_profile_bo_tbl(i).attribute12,
319 p_attribute13 => x_zx_party_tax_profile_bo_tbl(i).attribute13,
320 p_attribute14 => x_zx_party_tax_profile_bo_tbl(i).attribute14,
321 p_attribute15 => x_zx_party_tax_profile_bo_tbl(i).attribute15,
322 p_attribute2 => x_zx_party_tax_profile_bo_tbl(i).attribute2,
323 p_attribute3 => x_zx_party_tax_profile_bo_tbl(i).attribute3,
324 p_attribute4 => x_zx_party_tax_profile_bo_tbl(i).attribute4,
325 p_attribute5 => x_zx_party_tax_profile_bo_tbl(i).attribute5,
326 p_attribute6 => x_zx_party_tax_profile_bo_tbl(i).attribute6,
327 p_attribute7 => x_zx_party_tax_profile_bo_tbl(i).attribute7,
328 p_attribute8 => x_zx_party_tax_profile_bo_tbl(i).attribute8,
329 p_attribute9 => x_zx_party_tax_profile_bo_tbl(i).attribute9,
330 p_collecting_authority_flag => x_zx_party_tax_profile_bo_tbl(i).collecting_authority_flag,
331 p_country_code => x_zx_party_tax_profile_bo_tbl(i).country_code,
332 p_create_awt_dists_type_code => x_zx_party_tax_profile_bo_tbl(i).create_awt_dists_type_code,
333 p_create_awt_invoices_type_cod => x_zx_party_tax_profile_bo_tbl(i).create_awt_invoices_type_code,
334 p_customer_flag => x_zx_party_tax_profile_bo_tbl(i).customer_flag,
335 p_effective_from_use_le => x_zx_party_tax_profile_bo_tbl(i).effective_from_use_le,
336 p_first_party_le_flag => x_zx_party_tax_profile_bo_tbl(i).first_party_le_flag,
337 p_inclusive_tax_flag => x_zx_party_tax_profile_bo_tbl(i).inclusive_tax_flag,
338 p_legal_establishment_flag => x_zx_party_tax_profile_bo_tbl(i).legal_establishment_flag,
339 p_party_id => x_zx_party_tax_profile_bo_tbl(i).party_id,
340 p_party_type_code => x_zx_party_tax_profile_bo_tbl(i).party_type_code,
341 p_process_for_applicability_fl => x_zx_party_tax_profile_bo_tbl(i).process_for_applicability_flag,
342 p_program_login_id => x_zx_party_tax_profile_bo_tbl(i).program_application_id,
343 p_provider_type_code => x_zx_party_tax_profile_bo_tbl(i).provider_type_code,
344 p_record_type_code => x_zx_party_tax_profile_bo_tbl(i).record_type_code,
345 p_registration_type_code => x_zx_party_tax_profile_bo_tbl(i).registration_type_code,
346 p_rep_registration_number => x_zx_party_tax_profile_bo_tbl(i).rep_registration_number,
347 p_reporting_authority_flag => x_zx_party_tax_profile_bo_tbl(i).reporting_authority_flag,
348 p_request_id => x_zx_party_tax_profile_bo_tbl(i).request_id,
349 p_rounding_level_code => x_zx_party_tax_profile_bo_tbl(i).rounding_level_code,
350 p_rounding_rule_code => x_zx_party_tax_profile_bo_tbl(i).rounding_rule_code,
351 p_self_assess_flag => x_zx_party_tax_profile_bo_tbl(i).self_assess_flag,
352 p_site_flag => x_zx_party_tax_profile_bo_tbl(i).site_flag,
353 p_supplier_flag => x_zx_party_tax_profile_bo_tbl(i).supplier_flag,
354 p_tax_classification_code => x_zx_party_tax_profile_bo_tbl(i).tax_classification_code,
355 p_use_le_as_subscriber_flag => x_zx_party_tax_profile_bo_tbl(i).use_le_as_subscriber_flag,
356 p_withholding_start_date => x_zx_party_tax_profile_bo_tbl(i).withholding_start_date,
357 x_return_status => l_return_status);
358
359 -- The ZX API doesn't return the Tax Profile Id that has been created
360 -- So re-querying the Tax profile Id using the party Id and the party Type
361 --
362 IF (l_return_status = 'S') THEN
363 SELECT party_tax_profile_id
364 INTO l_party_tax_profile_id
365 FROM zx_party_tax_profile
366 WHERE party_id = l_party_id
367 AND party_type_code = 'THIRD_PARTY';
368
369 x_tax_profile_id := l_party_tax_profile_id;
370 else
371 x_return_status := l_return_status;
372 x_msg_data := l_msg_data;
373 x_msg_count := l_msg_count;
374 END IF;
375
376 ELSE
377 x_return_status := l_return_status;
378 x_msg_data := l_msg_data;
379 x_msg_count := l_msg_count;
380 END IF;
381
382 ELSIF p_create_update_flag = 'U' THEN
383 IF (l_tax_prof_valid = 'Y') THEN
384
385 zx_party_tax_profile_pkg.update_row(p_allow_awt_flag => x_zx_party_tax_profile_bo_tbl(i).allow_awt_flag,
386 p_allow_offset_tax_flag => x_zx_party_tax_profile_bo_tbl(i).allow_offset_tax_flag,
387 p_attribute_category => x_zx_party_tax_profile_bo_tbl(i).attribute_category,
388 p_attribute1 => x_zx_party_tax_profile_bo_tbl(i).attribute1,
389 p_attribute10 => x_zx_party_tax_profile_bo_tbl(i).attribute10,
390 p_attribute11 => x_zx_party_tax_profile_bo_tbl(i).attribute11,
391 p_attribute12 => x_zx_party_tax_profile_bo_tbl(i).attribute12,
392 p_attribute13 => x_zx_party_tax_profile_bo_tbl(i).attribute13,
393 p_attribute14 => x_zx_party_tax_profile_bo_tbl(i).attribute14,
394 p_attribute15 => x_zx_party_tax_profile_bo_tbl(i).attribute15,
395 p_attribute2 => x_zx_party_tax_profile_bo_tbl(i).attribute2,
396 p_attribute3 => x_zx_party_tax_profile_bo_tbl(i).attribute3,
397 p_attribute4 => x_zx_party_tax_profile_bo_tbl(i).attribute4,
398 p_attribute5 => x_zx_party_tax_profile_bo_tbl(i).attribute5,
399 p_attribute6 => x_zx_party_tax_profile_bo_tbl(i).attribute6,
400 p_attribute7 => x_zx_party_tax_profile_bo_tbl(i).attribute7,
401 p_attribute8 => x_zx_party_tax_profile_bo_tbl(i).attribute8,
402 p_attribute9 => x_zx_party_tax_profile_bo_tbl(i).attribute9,
403 p_collecting_authority_flag => x_zx_party_tax_profile_bo_tbl(i).collecting_authority_flag,
404 p_country_code => x_zx_party_tax_profile_bo_tbl(i).country_code,
405 p_create_awt_dists_type_code => x_zx_party_tax_profile_bo_tbl(i).create_awt_dists_type_code,
406 p_create_awt_invoices_type_cod => x_zx_party_tax_profile_bo_tbl(i).create_awt_invoices_type_code,
407 p_customer_flag => x_zx_party_tax_profile_bo_tbl(i).customer_flag,
408 p_effective_from_use_le => x_zx_party_tax_profile_bo_tbl(i).effective_from_use_le,
409 p_first_party_le_flag => x_zx_party_tax_profile_bo_tbl(i).first_party_le_flag,
410 p_inclusive_tax_flag => x_zx_party_tax_profile_bo_tbl(i).inclusive_tax_flag,
411 p_legal_establishment_flag => x_zx_party_tax_profile_bo_tbl(i).legal_establishment_flag,
412 p_party_id => x_zx_party_tax_profile_bo_tbl(i).party_id,
413 p_party_type_code => x_zx_party_tax_profile_bo_tbl(i).party_type_code,
414 p_process_for_applicability_fl => x_zx_party_tax_profile_bo_tbl(i).process_for_applicability_flag,
415 p_program_login_id => x_zx_party_tax_profile_bo_tbl(i).program_application_id,
416 p_provider_type_code => x_zx_party_tax_profile_bo_tbl(i).provider_type_code,
417 p_record_type_code => x_zx_party_tax_profile_bo_tbl(i).record_type_code,
418 p_registration_type_code => x_zx_party_tax_profile_bo_tbl(i).registration_type_code,
419 p_rep_registration_number => x_zx_party_tax_profile_bo_tbl(i).rep_registration_number,
420 p_reporting_authority_flag => x_zx_party_tax_profile_bo_tbl(i).reporting_authority_flag,
421 p_request_id => x_zx_party_tax_profile_bo_tbl(i).request_id,
422 p_rounding_level_code => x_zx_party_tax_profile_bo_tbl(i).rounding_level_code,
423 p_rounding_rule_code => x_zx_party_tax_profile_bo_tbl(i).rounding_rule_code,
424 p_self_assess_flag => x_zx_party_tax_profile_bo_tbl(i).self_assess_flag,
425 p_site_flag => x_zx_party_tax_profile_bo_tbl(i).site_flag,
426 p_supplier_flag => x_zx_party_tax_profile_bo_tbl(i).supplier_flag,
427 p_tax_classification_code => x_zx_party_tax_profile_bo_tbl(i).tax_classification_code,
428 p_use_le_as_subscriber_flag => x_zx_party_tax_profile_bo_tbl(i).use_le_as_subscriber_flag,
429 p_withholding_start_date => x_zx_party_tax_profile_bo_tbl(i).withholding_start_date,
430 p_party_tax_profile_id => x_zx_party_tax_profile_bo_tbl(i).party_tax_profile_id,
431 x_return_status => l_return_status);
432
433 IF (l_return_status <> 'S') THEN
434 x_return_status := l_return_status;
435 x_msg_data := l_msg_data;
436 x_msg_count := l_msg_count;
437 END IF;
438
439 ELSE
440 x_return_status := l_return_status;
441 x_msg_data := l_msg_data;
442 x_msg_count := l_msg_count;
443 END IF;
444
445 END IF;
446
447
448 END LOOP;
449
450
451 EXCEPTION
452 WHEN fnd_api.g_exc_error THEN
453
454 x_return_status := fnd_api.g_ret_sts_error;
455 x_msg_count := 1;
456 x_msg_data := SQLCODE || SQLERRM;
457 WHEN fnd_api.g_exc_unexpected_error THEN
458
459 x_return_status := fnd_api.g_ret_sts_unexp_error;
460 x_msg_count := 1;
461 x_msg_data := SQLCODE || SQLERRM;
462 WHEN OTHERS THEN
463
464 x_return_status := fnd_api.g_ret_sts_unexp_error;
465
466 x_msg_count := 1;
467 x_msg_data := SQLCODE || SQLERRM;
468 END create_supp_tax_profile;
469 /* /*#
470 * Use this routine to update tax profile BO
471 * @param p_api_version The api version
472 * @param p_init_msg_list The Initialization message list
473 * @param p_tax_profile_rec The tax profile bo
474 * @param x_return_status The return status
475 * @param x_msg_count The message count
476 * @param x_msg_data The message data
477 * @rep:scope public
478 * @rep:lifecycle active
479 * @rep:displayname Create Supplier Contact
480 * @rep:catagory BUSSINESS_ENTITY AP_SUPPLIER
481 */
482 /* PROCEDURE update_supp_tax_profile(p_api_version IN NUMBER DEFAULT NULL,
483 p_init_msg_list IN VARCHAR2 DEFAULT NULL,
484 p_tax_profile_rec IN pos_party_tax_profile_int%ROWTYPE,
485 x_return_status OUT NOCOPY VARCHAR2,
486 x_msg_count OUT NOCOPY NUMBER,
487 x_msg_data OUT NOCOPY VARCHAR2) IS
488 l_tax_prof_valid VARCHAR2(10);
489 l_party_tax_profile_id NUMBER;
490 l_country_code VARCHAR2(40);
491 l_return_status VARCHAR2(100);
492 l_msg_count NUMBER;
493 l_msg_data VARCHAR2(4000);
494
495 BEGIN
496 x_return_status := fnd_api.g_ret_sts_success;
497
498 -- Call Validate_Tax_profile to validate the Tax Profiledata
499 validate_tax_profile(p_tax_profile_rec => p_tax_profile_rec,
500 x_return_status => l_return_status,
501 x_msg_count => l_msg_count,
502 x_msg_data => l_msg_data,
503 x_tax_prof_valid => l_tax_prof_valid,
504 x_party_tax_profile_id => l_party_tax_profile_id,
505 x_country_code => l_country_code);
506
507 IF (l_tax_prof_valid = 'Y') THEN
508
509 zx_party_tax_profile_pkg.update_row(p_party_tax_profile_id => l_party_tax_profile_id,
510 p_collecting_authority_flag => NULL,
511 p_provider_type_code => NULL,
512 p_create_awt_dists_type_code => NULL,
513 p_create_awt_invoices_type_cod => NULL,
514 p_tax_classification_code => NULL,
515 p_self_assess_flag => NULL,
516 p_allow_offset_tax_flag => NULL,
517 p_rep_registration_number => p_tax_profile_rec.rep_registration_number,
518 p_effective_from_use_le => NULL,
519 p_record_type_code => NULL,
520 p_request_id => NULL,
521 p_attribute1 => NULL,
522 p_attribute2 => NULL,
523 p_attribute3 => NULL,
524 p_attribute4 => NULL,
525 p_attribute5 => NULL,
526 p_attribute6 => NULL,
527 p_attribute7 => NULL,
528 p_attribute8 => NULL,
529 p_attribute9 => NULL,
530 p_attribute10 => NULL,
531 p_attribute11 => NULL,
532 p_attribute12 => NULL,
533 p_attribute13 => NULL,
534 p_attribute14 => NULL,
535 p_attribute15 => NULL,
536 p_attribute_category => NULL,
537 p_party_id => p_tax_profile_rec.party_id,
538 p_program_login_id => NULL,
539 p_party_type_code => 'THIRD_PARTY',
540 p_supplier_flag => NULL,
541 p_customer_flag => NULL,
542 p_site_flag => NULL,
543 p_process_for_applicability_fl => NULL,
544 p_rounding_level_code => p_tax_profile_rec.rounding_level_code,
545 p_rounding_rule_code => p_tax_profile_rec.rounding_rule_code,
546 p_withholding_start_date => NULL,
547 p_inclusive_tax_flag => p_tax_profile_rec.inclusive_tax_flag,
548 p_allow_awt_flag => NULL,
549 p_use_le_as_subscriber_flag => NULL,
550 p_legal_establishment_flag => NULL,
551 p_first_party_le_flag => NULL,
552 p_reporting_authority_flag => NULL,
553 x_return_status => x_return_status,
554 p_registration_type_code => p_tax_profile_rec.registration_type_code,
555 p_country_code => l_country_code);
556
557 -- The ZX API doesn't return the Tax Profile Id that has been created
558 -- So re-querying the Tax profile Id using the party Id and the party Type
559 --
560
561 ELSE
562 x_return_status := l_return_status;
563 x_msg_data := l_msg_data;
564 x_msg_count := l_msg_count;
565 END IF;
566
567 EXCEPTION
568 WHEN fnd_api.g_exc_error THEN
569
570 x_return_status := fnd_api.g_ret_sts_error;
571 x_msg_count := 1;
572 x_msg_data := SQLCODE || SQLERRM;
573 WHEN fnd_api.g_exc_unexpected_error THEN
574
575 x_return_status := fnd_api.g_ret_sts_unexp_error;
576 x_msg_count := 1;
577 x_msg_data := SQLCODE || SQLERRM;
578 WHEN OTHERS THEN
579
580 x_return_status := fnd_api.g_ret_sts_unexp_error;
581
582 x_msg_count := 1;
583 x_msg_data := SQLCODE || SQLERRM;
584 END update_supp_tax_profile;
585 */
586 END pos_supplier_tax_prof_bo_pkg;