[Home] [Help]
PACKAGE BODY: APPS.PA_DEDUCTIONS_PUB
Source
1 PACKAGE BODY PA_DEDUCTIONS_PUB AS
2 -- /* $Header: PADCTNPB.pls 120.2.12010000.3 2010/04/15 07:25:23 vchilla noship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'PA_DEDUCTIONS_PUB';
5
6 Procedure Create_Deduction_Hdr( p_api_version_number IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
7 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
8 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
9 ,p_pm_product_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
10 ,p_msg_count OUT NOCOPY NUMBER
11 ,p_msg_data OUT NOCOPY VARCHAR2
12 ,p_return_status OUT NOCOPY VARCHAR2
13 ,p_project_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
14 ,p_vendor_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
15 ,p_vendor_site_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
16 ,p_ci_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
17 ,p_po_header_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
18 ,p_deduction_req_num IN OUT NOCOPY VARCHAR2
19 ,p_debit_memo_num IN OUT NOCOPY VARCHAR2
20 ,p_currency_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
21 ,p_conversion_ratetype IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
22 ,p_conversion_ratedate IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
23 ,p_conversion_rate IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
24 ,p_deduction_req_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
25 ,p_debit_memo_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
26 ,p_description IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
27 ,p_status IN OUT NOCOPY VARCHAR2
28 ,p_org_id IN NUMBER := PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
29 ) IS
30 l_ded_req_id NUMBER;
31 l_dctn_hdrtbl g_pub_dctn_hdr_tbl%TYPE;
32 l_msg_count NUMBER;
33 l_msg_data VARCHAR2(4000);
34 l_return_status VARCHAR2(1);
35 l_function_allowed VARCHAR2(1);
36 l_api_name VARCHAR2(30) := 'CREATE_DEDUCTION_HDR';
37
38 -- bug 9052223 start
39 v_converted_amount NUMBER;
40 v_denominator NUMBER;
41 v_numerator NUMBER;
42 v_rate NUMBER;
43 v_status Varchar2(100);
44 v_proj_func_cur VARCHAR2(10);
45 v_proj_func_rate VARCHAR2(10);
46 l_conversion_ratetype VARCHAR2(50);
47 l_conversion_ratedate DATE;
48 l_conversion_rate NUMBER;
49 -- bug 9052223 end
50
51 CURSOR C1 IS
52 SELECT segment1
53 FROM PO_HEADERS_ALL
54 WHERE PO_HEADER_ID = p_po_header_id;
55
56 CURSOR C2 IS
57 SELECT ci_number,
58 DECODE(ci_type_class_code,'CHANGE_ORDER', 'Change Order',
59 'CHANGE_REQUEST', 'Change Request') document_type
60 FROM PA_CONTROL_ITEMS citem,
61 PA_CI_TYPES_VL ctype
62 WHERE citem.ci_type_id = ctype.ci_type_id
63 AND citem.ci_id = p_ci_id;
64
65 Begin
66
67 l_conversion_ratetype := p_conversion_ratetype;
68 l_conversion_ratedate := p_conversion_ratedate;
69 l_conversion_rate := p_conversion_rate;
70
71 p_return_status := 'S';
72 SAVEPOINT create_deduction_hdr; --bug9052223
73
74 IF NOT FND_API.Compatible_API_Call ( g_api_version_number ,
75 p_api_version_number ,
76 l_api_name ,
77 G_PKG_NAME )
78 THEN
79
80 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
81
82 END IF;
83
84 PA_PM_FUNCTION_SECURITY_PUB.check_function_security
85 (p_api_version_number => p_api_version_number,
86 p_responsibility_id => g_resp_id,
87 p_function_name => 'PA_UPD_SBMT_DEDUCTIONS',
88 p_msg_count => l_msg_count,
89 p_msg_data => l_msg_data,
90 p_return_status => l_return_status,
91 p_function_allowed => l_function_allowed
92 );
93
94 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
95 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
96 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
97 RAISE FND_API.G_EXC_ERROR;
98 END IF;
99 IF l_function_allowed = 'N' THEN
100 pa_interface_utils_pub.map_new_amg_msg
101 ( p_old_message_code => 'PA_FUNCTION_SECURITY_ENFORCED'
102 ,p_msg_attribute => 'CHANGE'
103 ,p_resize_flag => 'Y'
104 ,p_msg_context => 'GENERAL'
105 ,p_attribute1 => ''
106 ,p_attribute2 => ''
107 ,p_attribute3 => ''
108 ,p_attribute4 => ''
109 ,p_attribute5 => '');
110
111 p_return_status := FND_API.G_RET_STS_ERROR;
112 RAISE FND_API.G_EXC_ERROR;
113 END IF;
114
115 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
116 FND_MSG_PUB.initialize;
117 END IF;
118
119 SELECT PA_DEDUCTIONS_S.nextval
120 INTO l_ded_req_id
121 FROM DUAL;
122
123 l_dctn_hdrtbl(1).deduction_req_id := l_ded_req_id ;
124 l_dctn_hdrtbl(1).project_id := p_project_id ;
125 l_dctn_hdrtbl(1).vendor_id := p_vendor_id ;
126 l_dctn_hdrtbl(1).vendor_site_id := p_vendor_site_id ;
127 l_dctn_hdrtbl(1).ci_id := p_ci_id ;
128 l_dctn_hdrtbl(1).po_header_id := p_po_header_id ;
129
130
131 -- bug 9052223 start
132
133 pa_multi_Currency_txn.get_def_ProjFunc_Cst_Rate_Type(
134 0 ,
135 v_proj_func_cur,
136 v_proj_func_rate);
137
138 if p_currency_code <> v_proj_func_cur then
139
140 if p_conversion_ratetype is null or p_conversion_ratedate is null then
141
142 pa_utils.add_message
143 ( p_app_short_name => 'PA'
144 ,p_msg_name => 'PA_MISS_CURR_CONV_INFO'
145 );
146 RAISE FND_API.G_EXC_ERROR;
147
148 else
149
150 pa_multi_currency.convert_amount ( P_from_currency => v_proj_func_cur,
151 P_to_currency => p_currency_code,
152 P_conversion_date => l_conversion_ratedate,
153 P_conversion_type => l_conversion_ratetype,
154 P_amount => 0,
155 P_user_validate_flag => 'N',
156 P_handle_exception_flag => 'N',
157 P_converted_amount => v_converted_amount,
158 P_denominator => v_denominator,
159 P_numerator => v_numerator,
160 P_rate => v_rate,
161 X_status => v_status);
162
163 IF v_status is not null then
164 pa_utils.add_message
165 ( p_app_short_name => 'PA'
166 ,p_msg_name => v_status
167 );
168 RAISE FND_API.G_EXC_ERROR;
169 end if;
170
171 end if;
172
173 end if;
174
175
176 IF l_dctn_hdrtbl(1).po_header_id IS NOT NULL THEN
177 OPEN C1;
178 FETCH C1 INTO l_dctn_hdrtbl(1).po_number;
179 CLOSE C1;
180 END IF;
181
182 IF l_dctn_hdrtbl(1).ci_Id IS NOT NULL THEN
183 OPEN C2;
184 FETCH C2 INTO l_dctn_hdrtbl(1).change_doc_num,
185 l_dctn_hdrtbl(1).change_doc_type;
186 CLOSE C2;
187 END IF;
188
189 IF p_deduction_req_num IS NULL THEN
190 p_deduction_req_num:=l_ded_req_id;
191 END IF;
192
193 l_dctn_hdrtbl(1).deduction_req_num := p_deduction_req_num ;
194 l_dctn_hdrtbl(1).debit_memo_num := p_debit_memo_num ;
195
196 IF p_currency_code IS NULL THEN
197 /* p_msg_data:='PA_DCTN_DMEMO_CURR_NULL'; -- bug9052223
198 p_return_status := 'E';
199 p_msg_count :=1;
200 return;*/
201
202 pa_utils.add_message
203 ( p_app_short_name => 'PA'
204 ,p_msg_name => 'PA_DCTN_DMEMO_CURR_NULL'
205 );
206 RAISE FND_API.G_EXC_ERROR;
207
208 END IF;
209
210
211 l_dctn_hdrtbl(1).currency_code := p_currency_code ;
212
213 l_dctn_hdrtbl(1).conversion_ratetype := l_conversion_ratetype ;
214 l_dctn_hdrtbl(1).conversion_ratedate := l_conversion_ratedate ;
215 l_dctn_hdrtbl(1).conversion_rate := l_conversion_rate ;
216
217 IF p_deduction_req_date IS NULL THEN
218 /* p_msg_data:='PA_DCTN_REQ_DATE_NULL'; -- bug9052223
219 p_return_status := 'E';
220 p_msg_count :=1;
221 return;*/
222
223 pa_utils.add_message
224 ( p_app_short_name => 'PA'
225 ,p_msg_name => 'PA_DCTN_REQ_DATE_NULL'
226 );
227 RAISE FND_API.G_EXC_ERROR;
228
229 END IF;
230
231 l_dctn_hdrtbl(1).deduction_req_date := p_deduction_req_date ;
232
233 l_dctn_hdrtbl(1).debit_memo_date := p_debit_memo_date ;
234 l_dctn_hdrtbl(1).description := p_description ;
235 l_dctn_hdrtbl(1).status := 'WORKING' ;
236
237 l_dctn_hdrtbl(1).org_id := p_org_id ;
238
239 PA_DEDUCTIONS.Create_Deduction_Hdr( l_dctn_hdrtbl
240 ,l_msg_count
241 ,l_msg_data
242 ,l_return_status
243 ,'PUB');
244
245 IF l_return_status = 'S' AND p_commit ='T' THEN -- Added p_commit check for bug 9052223
246 Commit;
247 p_return_status :='S';
248 ELSIF l_return_status <> 'S' THEN
249 p_msg_data := l_msg_data;
250 p_return_status := 'E';
251 END IF;
252
253 EXCEPTION
254 WHEN FND_API.G_EXC_ERROR THEN
255 ROLLBACK TO create_deduction_hdr;
256 p_return_status := FND_API.G_RET_STS_ERROR;
257
258 FND_MSG_PUB.Count_And_Get
259 ( p_count => p_msg_count ,
260 p_data => p_msg_data );
261
262 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
263 ROLLBACK TO create_deduction_hdr;
264 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
265
266 FND_MSG_PUB.Count_And_Get
267 ( p_count => p_msg_count ,
268 p_data => p_msg_data );
269
270 WHEN OTHERS THEN
271 ROLLBACK TO create_deduction_hdr;
272 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
273
274 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
275 FND_MSG_PUB.add_exc_msg
276 ( p_pkg_name => G_PKG_NAME
277 ,p_procedure_name => l_api_name );
278 END IF;
279
280 FND_MSG_PUB.Count_And_Get
281 ( p_count => p_msg_count ,
282 p_data => p_msg_data );
283 End;
284
285 Procedure Create_Deduction_Txn( p_api_version_number IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
286 ,p_commit IN VARCHAR2 := FND_API.G_FALSE
287 ,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
288 ,p_pm_product_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
289 ,p_msg_count OUT NOCOPY NUMBER
290 ,p_msg_data OUT NOCOPY VARCHAR2
291 ,p_return_status OUT NOCOPY VARCHAR2
292 ,p_deduction_req_num IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
293 ,p_task_id IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
294 ,p_expenditure_type IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
295 ,p_expenditure_item_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
296 ,p_gl_date IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
297 ,p_expenditure_org_id IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
298 ,p_quantity IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
299 -- ,p_override_quantity IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM -- bug9052223
300 ,p_expenditure_item_id IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
301 -- ,p_projfunc_currency_code IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
302 ,p_orig_projfunc_amount IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
303 -- ,p_override_projfunc_amount IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM -- bug9052223
304 ,p_conversion_ratetype IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
305 ,p_conversion_ratedate IN DATE := PA_INTERFACE_UTILS_PUB.G_PA_MISS_DATE
306 ,p_conversion_rate IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM
307 -- ,p_amount IN NUMBER :=PA_INTERFACE_UTILS_PUB.G_PA_MISS_NUM -- bug9052223
308 ,p_description IN VARCHAR2 := PA_INTERFACE_UTILS_PUB.G_PA_MISS_CHAR
309 ) IS
310
311 l_dctn_txntbl g_pub_dctn_txn_tbl%TYPE;
312
313 CURSOR C1(c_deduction_req_num PA_DEDUCTIONS_ALL.deduction_req_num%TYPE) IS
314 SELECT *
315 FROM PA_DEDUCTIONS_ALL
316 WHERE deduction_req_num = c_deduction_req_num
317 AND status = 'WORKING';
318
319
320 cur_dctn_hdr C1%ROWTYPE;
321 l_deduction_req_tran_id PA_DEDUCTION_TRANSACTIONS_ALL.deduction_req_tran_id%TYPE;
322
323 l_msg_count NUMBER;
324 l_msg_data VARCHAR2(4000);
325 l_return_status VARCHAR2(1);
326 l_function_allowed VARCHAR2(1);
327 l_api_name VARCHAR2(30) := 'CREATE_DEDUCTION_TXN';
328
329 -- bug 9052223 start
330 v_converted_amount NUMBER;
331 v_denominator NUMBER;
332 v_numerator NUMBER;
333 v_rate NUMBER;
334 v_status Varchar2(100);
335 v_proj_func_cur VARCHAR2(10);
336 v_proj_func_rate VARCHAR2(10);
337 -- bug 9052223 end
338
339 l_conversion_ratetype VARCHAR2(50);
340 l_conversion_ratedate DATE;
341 l_conversion_rate NUMBER;
342
343 Begin
344 p_return_status :='S';
345 SAVEPOINT create_deduction_txn; --bug9052223
346
347 l_conversion_ratetype :=p_conversion_ratetype ;
348 l_conversion_ratedate :=p_conversion_ratedate ;
349 l_conversion_rate :=p_conversion_rate ;
350
351 IF NOT FND_API.Compatible_API_Call ( g_api_version_number ,
352 p_api_version_number ,
353 l_api_name ,
354 G_PKG_NAME )
355 THEN
356
357 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
358
359 END IF;
360
361 PA_PM_FUNCTION_SECURITY_PUB.check_function_security
362 (p_api_version_number => p_api_version_number,
363 p_responsibility_id => g_resp_id,
364 p_function_name => 'PA_UPD_SBMT_DEDUCTIONS',
365 p_msg_count => l_msg_count,
366 p_msg_data => l_msg_data,
367 p_return_status => l_return_status,
368 p_function_allowed => l_function_allowed
369 );
370
371 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
372 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
373 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
374 RAISE FND_API.G_EXC_ERROR;
375 END IF;
376 IF l_function_allowed = 'N' THEN
377 pa_interface_utils_pub.map_new_amg_msg
378 ( p_old_message_code => 'PA_FUNCTION_SECURITY_ENFORCED'
379 ,p_msg_attribute => 'CHANGE'
380 ,p_resize_flag => 'Y'
381 ,p_msg_context => 'GENERAL'
382 ,p_attribute1 => ''
383 ,p_attribute2 => ''
384 ,p_attribute3 => ''
385 ,p_attribute4 => ''
386 ,p_attribute5 => '');
387 p_return_status := FND_API.G_RET_STS_ERROR;
388 RAISE FND_API.G_EXC_ERROR;
389 END IF;
390
391
392 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
393 FND_MSG_PUB.initialize;
394 END IF;
395
396 OPEN C1(p_deduction_req_num);
397 FETCH C1 INTO cur_dctn_hdr;
398 IF C1%NOTFOUND THEN
399 /* p_msg_data := 'PA_DCTN_HDR_NOT_EXISTS'; -- bug9052223
400 p_return_status :='E';
401 p_msg_count :=1;*/
402
403 pa_utils.add_message
404 ( p_app_short_name => 'PA'
405 ,p_msg_name => 'PA_DCTN_HDR_NOT_EXISTS'
406 );
407
408 CLOSE C1;
409 RAISE FND_API.G_EXC_ERROR;
410
411 END IF;
412 CLOSE C1;
413
414 SELECT PA_DEDUCTION_TXNS_S.nextval
415 INTO l_deduction_req_tran_id
416 FROM DUAL;
417
418 pa_multi_Currency_txn.get_def_ProjFunc_Cst_Rate_Type(
419 0 ,
420 v_proj_func_cur,
421 v_proj_func_rate);
422
423 if cur_dctn_hdr.currency_code <> v_proj_func_cur then
424
425 if p_conversion_ratetype is null or p_conversion_ratedate is null then
426
427 pa_utils.add_message
428 ( p_app_short_name => 'PA'
429 ,p_msg_name => 'PA_MISS_CURR_CONV_INFO'
430 );
431 RAISE FND_API.G_EXC_ERROR;
432
433 else
434
435
436 pa_multi_currency.convert_amount ( P_from_currency => v_proj_func_cur,
437 P_to_currency => cur_dctn_hdr.currency_code,
438 P_conversion_date => l_conversion_ratedate,
439 P_conversion_type => l_conversion_ratetype,
440 P_amount => p_orig_projfunc_amount,
441 P_user_validate_flag => 'N',
442 P_handle_exception_flag => 'Y',
443 P_converted_amount => v_converted_amount,
444 P_denominator => v_denominator,
445 P_numerator => v_numerator,
446 P_rate => v_rate,
447 X_status => v_status);
448
449 IF v_status is not null then
450 pa_utils.add_message
451 ( p_app_short_name => 'PA'
452 ,p_msg_name => v_status
453 );
454 RAISE FND_API.G_EXC_ERROR;
455 end if;
456
457 end if;
458 ELSE
459 v_converted_amount:=p_orig_projfunc_amount;
460 end if;
461
462
463 l_dctn_txntbl(1).deduction_req_id := cur_dctn_hdr.deduction_req_id;
464 l_dctn_txntbl(1).deduction_req_tran_id := l_deduction_req_tran_id ;
465 l_dctn_txntbl(1).project_id := cur_dctn_hdr.project_id ;
466 l_dctn_txntbl(1).task_id := p_task_id ;
467 l_dctn_txntbl(1).expenditure_type := p_expenditure_type ;
468 l_dctn_txntbl(1).expenditure_item_date := p_expenditure_item_date ;
469 l_dctn_txntbl(1).gl_date := p_gl_date ;
470 l_dctn_txntbl(1).expenditure_org_id := p_expenditure_org_id ;
471 l_dctn_txntbl(1).quantity := p_quantity ;
472 -- l_dctn_txntbl(1).override_quantity := p_override_quantity ; --bug9052223
473 l_dctn_txntbl(1).expenditure_item_id := p_expenditure_item_id ;
474 l_dctn_txntbl(1).projfunc_currency_code := v_proj_func_cur ;
475 l_dctn_txntbl(1).orig_projfunc_amount := p_orig_projfunc_amount ;
476 -- l_dctn_txntbl(1).override_projfunc_amount := p_override_projfunc_amount; --bug9052223
477 l_dctn_txntbl(1).conversion_ratetype := l_conversion_ratetype ;
478 l_dctn_txntbl(1).conversion_ratedate := l_conversion_ratedate ;
479 l_dctn_txntbl(1).conversion_rate := l_conversion_rate ;
480 l_dctn_txntbl(1).amount := v_converted_amount; --bug9052223
481 l_dctn_txntbl(1).description := p_description ;
482
483
484 PA_DEDUCTIONS.Create_Deduction_Txn( l_dctn_txntbl
485 ,l_msg_count
486 ,l_msg_data
487 ,l_return_status
488 ,'PUB');
489
490 IF l_return_status = 'S' AND p_commit ='T' THEN -- Added p_commit check for bug 9052223
491 Commit;
492 p_return_status :='S';
493 ELSIF l_return_status <> 'S' THEN
494 p_msg_data := l_msg_data;
495 p_return_status := 'E';
496 END IF;
497
498 EXCEPTION
499 WHEN FND_API.G_EXC_ERROR THEN
500 ROLLBACK TO create_deduction_txn;
501 p_return_status := FND_API.G_RET_STS_ERROR;
502
503 FND_MSG_PUB.Count_And_Get
504 ( p_count => p_msg_count ,
505 p_data => p_msg_data );
506
507 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
508 ROLLBACK TO create_deduction_txn;
509 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
510
511 FND_MSG_PUB.Count_And_Get
512 ( p_count => p_msg_count ,
513 p_data => p_msg_data );
514
515 WHEN OTHERS THEN
516 ROLLBACK TO create_deduction_txn;
517 p_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
518
519 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
520 FND_MSG_PUB.add_exc_msg
521 ( p_pkg_name => G_PKG_NAME
522 ,p_procedure_name => l_api_name );
523 END IF;
524
525 FND_MSG_PUB.Count_And_Get
526 ( p_count => p_msg_count,
527 p_data => p_msg_data );
528
529 End;
530
531 END PA_DEDUCTIONS_PUB;