[Home] [Help]
PACKAGE BODY: APPS.AMS_CLAIM_GRP
Source
1 PACKAGE BODY AMS_claim_GRP as
2 /* $Header: amsgclab.pls 115.44 2004/04/06 19:33:41 julou ship $ */
3 -- Start of Comments
4 -- Package name : AMS_claim_GRP
5 -- Purpose :
6 -- History :
7 -- NOTE :
8 -- End of Comments
9
10 G_PKG_NAME CONSTANT VARCHAR2(20) := 'AMS_CLAIM_GRP';
11 G_DEDUCTION_CLASS CONSTANT VARCHAR2(20) := 'DEDUCTION';
12 G_OVERPAYMENT_CLASS CONSTANT VARCHAR2(20) := 'OVERPAYMENT';
13 G_DEDUC_OBJ_TYPE CONSTANT VARCHAR2(6) := 'DEDU';
14 G_CLAIM_OBJECT_TYPE CONSTANT VARCHAR2(30) := 'CLAM';
15 G_CLAIM_STATUS CONSTANT VARCHAR2(30) := 'AMS_CLAIM_STATUS';
16 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amsgclab.pls';
17 G_OPEN_STATUS CONSTANT VARCHAR2(30) := 'OPEN';
18 G_UPDATE_EVENT CONSTANT VARCHAR2(30) := 'UPDATE';
19 G_INVOICE CONSTANT VARCHAR2(30) := 'INVOICE';
20
21 AMS_DEBUG_LOW_ON BOOLEAN := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low);
22
23
24 PROCEDURE Complete_OZF_Claim_Grp_Rec(
25 p_ams_claim_grp_rec IN AMS_CLAIM_GRP.DEDUCTION_REC_TYPE
26 , x_ozf_claim_grp_rec OUT NOCOPY OZF_CLAIM_GRP.DEDUCTION_REC_TYPE
27 , x_return_status OUT NOCOPY VARCHAR2
28 )
29 IS
30 BEGIN
31 -- Initialize API return status to SUCCESS
32 x_return_status := FND_API.G_RET_STS_SUCCESS;
33
34 IF p_ams_claim_grp_rec.claim_id = FND_API.g_miss_num THEN
35 x_ozf_claim_grp_rec.claim_id := NULL;
36 ELSE
37 x_ozf_claim_grp_rec.claim_id := p_ams_claim_grp_rec.claim_id;
38 END IF;
39
40 IF p_ams_claim_grp_rec.claim_number = FND_API.g_miss_char THEN
41 x_ozf_claim_grp_rec.claim_number := NULL;
42 ELSE
43 x_ozf_claim_grp_rec.claim_number := p_ams_claim_grp_rec.claim_number;
44 END IF;
45
46 IF p_ams_claim_grp_rec.claim_type_id = FND_API.g_miss_num THEN
47 x_ozf_claim_grp_rec.claim_type_id := NULL;
48 ELSE
49 x_ozf_claim_grp_rec.claim_type_id := p_ams_claim_grp_rec.claim_type_id;
50 END IF;
51
52 IF p_ams_claim_grp_rec.claim_date = FND_API.g_miss_date THEN
53 x_ozf_claim_grp_rec.claim_date := NULL;
54 ELSE
55 x_ozf_claim_grp_rec.claim_date := p_ams_claim_grp_rec.claim_date;
56 END IF;
57
58 IF p_ams_claim_grp_rec.due_date = FND_API.g_miss_date THEN
59 x_ozf_claim_grp_rec.due_date := NULL;
60 ELSE
61 x_ozf_claim_grp_rec.due_date := p_ams_claim_grp_rec.due_date;
62 END IF;
63
64 IF p_ams_claim_grp_rec.owner_id = FND_API.g_miss_num THEN
65 x_ozf_claim_grp_rec.owner_id := NULL;
66 ELSE
67 x_ozf_claim_grp_rec.owner_id := p_ams_claim_grp_rec.owner_id;
68 END IF;
69
70 IF p_ams_claim_grp_rec.amount = FND_API.g_miss_num THEN
71 x_ozf_claim_grp_rec.amount := NULL;
72 ELSE
73 x_ozf_claim_grp_rec.amount := p_ams_claim_grp_rec.amount;
74 END IF;
75
76 IF p_ams_claim_grp_rec.currency_code = FND_API.g_miss_char THEN
77 x_ozf_claim_grp_rec.currency_code := NULL;
78 ELSE
79 x_ozf_claim_grp_rec.currency_code := p_ams_claim_grp_rec.currency_code;
80 END IF;
81
82 IF p_ams_claim_grp_rec.exchange_rate_type = FND_API.g_miss_char THEN
83 x_ozf_claim_grp_rec.exchange_rate_type := NULL;
84 ELSE
85 x_ozf_claim_grp_rec.exchange_rate_type := p_ams_claim_grp_rec.exchange_rate_type;
86 END IF;
87
88 IF p_ams_claim_grp_rec.exchange_rate_date = FND_API.g_miss_date THEN
89 x_ozf_claim_grp_rec.exchange_rate_date := NULL;
90 ELSE
91 x_ozf_claim_grp_rec.exchange_rate_date := p_ams_claim_grp_rec.exchange_rate_date;
92 END IF;
93
94 IF p_ams_claim_grp_rec.exchange_rate = FND_API.g_miss_num THEN
95 x_ozf_claim_grp_rec.exchange_rate := NULL;
96 ELSE
97 x_ozf_claim_grp_rec.exchange_rate := p_ams_claim_grp_rec.exchange_rate;
98 END IF;
99
100 IF p_ams_claim_grp_rec.set_of_books_id = FND_API.g_miss_num THEN
101 x_ozf_claim_grp_rec.set_of_books_id := NULL;
102 ELSE
103 x_ozf_claim_grp_rec.set_of_books_id := p_ams_claim_grp_rec.set_of_books_id;
104 END IF;
105
106 IF p_ams_claim_grp_rec.source_object_id = FND_API.g_miss_num THEN
107 x_ozf_claim_grp_rec.source_object_id := NULL;
108 ELSE
109 x_ozf_claim_grp_rec.source_object_id := p_ams_claim_grp_rec.source_object_id;
110 END IF;
111
112 IF p_ams_claim_grp_rec.source_object_class = FND_API.g_miss_char THEN
113 x_ozf_claim_grp_rec.source_object_class := NULL;
114 ELSE
115 x_ozf_claim_grp_rec.source_object_class := p_ams_claim_grp_rec.source_object_class;
116 END IF;
117
118 IF p_ams_claim_grp_rec.source_object_type_id = FND_API.g_miss_num THEN
119 x_ozf_claim_grp_rec.source_object_type_id := NULL;
120 ELSE
121 x_ozf_claim_grp_rec.source_object_type_id := p_ams_claim_grp_rec.source_object_type_id;
122 END IF;
123
124 IF p_ams_claim_grp_rec.source_object_number = FND_API.g_miss_char THEN
125 x_ozf_claim_grp_rec.source_object_number := NULL;
126 ELSE
127 x_ozf_claim_grp_rec.source_object_number := p_ams_claim_grp_rec.source_object_number;
128 END IF;
129
130 IF p_ams_claim_grp_rec.cust_account_id = FND_API.g_miss_num THEN
131 x_ozf_claim_grp_rec.cust_account_id := NULL;
132 ELSE
133 x_ozf_claim_grp_rec.cust_account_id := p_ams_claim_grp_rec.cust_account_id;
134 END IF;
135
136 IF p_ams_claim_grp_rec.cust_billto_acct_site_id = FND_API.g_miss_num THEN
137 x_ozf_claim_grp_rec.cust_billto_acct_site_id := NULL;
138 ELSE
139 x_ozf_claim_grp_rec.cust_billto_acct_site_id := p_ams_claim_grp_rec.cust_billto_acct_site_id;
140 END IF;
141
142 IF p_ams_claim_grp_rec.cust_shipto_acct_site_id = FND_API.g_miss_num THEN
143 x_ozf_claim_grp_rec.cust_shipto_acct_site_id := NULL;
144 ELSE
145 x_ozf_claim_grp_rec.cust_shipto_acct_site_id := p_ams_claim_grp_rec.cust_shipto_acct_site_id;
146 END IF;
147
148 IF p_ams_claim_grp_rec.location_id = FND_API.g_miss_num THEN
149 x_ozf_claim_grp_rec.location_id := NULL;
150 ELSE
151 x_ozf_claim_grp_rec.location_id := p_ams_claim_grp_rec.location_id;
152 END IF;
153
154 IF p_ams_claim_grp_rec.reason_code_id = FND_API.g_miss_num THEN
155 x_ozf_claim_grp_rec.reason_code_id := NULL;
156 ELSE
157 x_ozf_claim_grp_rec.reason_code_id := p_ams_claim_grp_rec.reason_code_id;
158 END IF;
159
160 IF p_ams_claim_grp_rec.status_code = FND_API.g_miss_char THEN
161 x_ozf_claim_grp_rec.status_code := NULL;
162 ELSE
163 x_ozf_claim_grp_rec.status_code := p_ams_claim_grp_rec.status_code;
164 END IF;
165
166 IF p_ams_claim_grp_rec.user_status_id = FND_API.g_miss_num THEN
167 x_ozf_claim_grp_rec.user_status_id := NULL;
168 ELSE
169 x_ozf_claim_grp_rec.user_status_id := p_ams_claim_grp_rec.user_status_id;
170 END IF;
171
172 IF p_ams_claim_grp_rec.sales_rep_id = FND_API.g_miss_num THEN
173 x_ozf_claim_grp_rec.sales_rep_id := NULL;
174 ELSE
175 x_ozf_claim_grp_rec.sales_rep_id := p_ams_claim_grp_rec.sales_rep_id;
176 END IF;
177
178 IF p_ams_claim_grp_rec.collector_id = FND_API.g_miss_num THEN
179 x_ozf_claim_grp_rec.collector_id := NULL;
180 ELSE
181 x_ozf_claim_grp_rec.collector_id := p_ams_claim_grp_rec.collector_id;
182 END IF;
183
184 IF p_ams_claim_grp_rec.contact_id = FND_API.g_miss_num THEN
185 x_ozf_claim_grp_rec.contact_id := NULL;
186 ELSE
187 x_ozf_claim_grp_rec.contact_id := p_ams_claim_grp_rec.contact_id;
188 END IF;
189
190 IF p_ams_claim_grp_rec.broker_id = FND_API.g_miss_num THEN
191 x_ozf_claim_grp_rec.broker_id := NULL;
192 ELSE
193 x_ozf_claim_grp_rec.broker_id := p_ams_claim_grp_rec.broker_id;
194 END IF;
195
196 IF p_ams_claim_grp_rec.customer_ref_date = FND_API.g_miss_date THEN
197 x_ozf_claim_grp_rec.customer_ref_date := NULL;
198 ELSE
199 x_ozf_claim_grp_rec.customer_ref_date := p_ams_claim_grp_rec.customer_ref_date;
200 END IF;
201
202
203 IF p_ams_claim_grp_rec.customer_ref_number = FND_API.g_miss_char THEN
204 x_ozf_claim_grp_rec.customer_ref_number := NULL;
205 ELSE
206 x_ozf_claim_grp_rec.customer_ref_number := p_ams_claim_grp_rec.customer_ref_number;
207 END IF;
208
209 IF p_ams_claim_grp_rec.receipt_id = FND_API.g_miss_num THEN
210 x_ozf_claim_grp_rec.receipt_id := NULL;
211 ELSE
212 x_ozf_claim_grp_rec.receipt_id := p_ams_claim_grp_rec.receipt_id;
213 END IF;
214
215 IF p_ams_claim_grp_rec.receipt_number = FND_API.g_miss_char THEN
216 x_ozf_claim_grp_rec.receipt_number := NULL;
217 ELSE
218 x_ozf_claim_grp_rec.receipt_number := p_ams_claim_grp_rec.receipt_number;
219 END IF;
220
221 IF p_ams_claim_grp_rec.gl_date = FND_API.g_miss_date THEN
222 x_ozf_claim_grp_rec.gl_date := NULL;
223 ELSE
224 x_ozf_claim_grp_rec.gl_date := p_ams_claim_grp_rec.gl_date;
225 END IF;
226
227 IF p_ams_claim_grp_rec.comments = FND_API.g_miss_char THEN
228 x_ozf_claim_grp_rec.comments := NULL;
229 ELSE
230 x_ozf_claim_grp_rec.comments := p_ams_claim_grp_rec.comments;
231 END IF;
232
233 IF p_ams_claim_grp_rec.deduction_attribute_category = FND_API.g_miss_char THEN
234 x_ozf_claim_grp_rec.deduction_attribute_category := NULL;
235 ELSE
236 x_ozf_claim_grp_rec.deduction_attribute_category := p_ams_claim_grp_rec.deduction_attribute_category;
237 END IF;
238
239 IF p_ams_claim_grp_rec.deduction_attribute1 = FND_API.g_miss_char THEN
240 x_ozf_claim_grp_rec.deduction_attribute1 := NULL;
241 ELSE
242 x_ozf_claim_grp_rec.deduction_attribute1 := p_ams_claim_grp_rec.deduction_attribute1;
243 END IF;
244
245 IF p_ams_claim_grp_rec.deduction_attribute2 = FND_API.g_miss_char THEN
246 x_ozf_claim_grp_rec.deduction_attribute2 := NULL;
247 ELSE
248 x_ozf_claim_grp_rec.deduction_attribute2 := p_ams_claim_grp_rec.deduction_attribute2;
249 END IF;
250
251 IF p_ams_claim_grp_rec.deduction_attribute3 = FND_API.g_miss_char THEN
252 x_ozf_claim_grp_rec.deduction_attribute3 := NULL;
253 ELSE
254 x_ozf_claim_grp_rec.deduction_attribute3 := p_ams_claim_grp_rec.deduction_attribute3;
255 END IF;
256
257 IF p_ams_claim_grp_rec.deduction_attribute4 = FND_API.g_miss_char THEN
258 x_ozf_claim_grp_rec.deduction_attribute4 := NULL;
259 ELSE
260 x_ozf_claim_grp_rec.deduction_attribute4 := p_ams_claim_grp_rec.deduction_attribute4;
261 END IF;
262
263 IF p_ams_claim_grp_rec.deduction_attribute5 = FND_API.g_miss_char THEN
264 x_ozf_claim_grp_rec.deduction_attribute5 := NULL;
265 ELSE
266 x_ozf_claim_grp_rec.deduction_attribute5 := p_ams_claim_grp_rec.deduction_attribute5;
267 END IF;
268
269 IF p_ams_claim_grp_rec.deduction_attribute6 = FND_API.g_miss_char THEN
270 x_ozf_claim_grp_rec.deduction_attribute6 := NULL;
271 ELSE
272 x_ozf_claim_grp_rec.deduction_attribute6 := p_ams_claim_grp_rec.deduction_attribute6;
273 END IF;
274
275 IF p_ams_claim_grp_rec.deduction_attribute7 = FND_API.g_miss_char THEN
276 x_ozf_claim_grp_rec.deduction_attribute7 := NULL;
277 ELSE
278 x_ozf_claim_grp_rec.deduction_attribute7 := p_ams_claim_grp_rec.deduction_attribute7;
279 END IF;
280
281 IF p_ams_claim_grp_rec.deduction_attribute8 = FND_API.g_miss_char THEN
282 x_ozf_claim_grp_rec.deduction_attribute8 := NULL;
283 ELSE
284 x_ozf_claim_grp_rec.deduction_attribute8 := p_ams_claim_grp_rec.deduction_attribute8;
285 END IF;
286
287 IF p_ams_claim_grp_rec.deduction_attribute9 = FND_API.g_miss_char THEN
288 x_ozf_claim_grp_rec.deduction_attribute9 := NULL;
289 ELSE
290 x_ozf_claim_grp_rec.deduction_attribute9 := p_ams_claim_grp_rec.deduction_attribute9;
291 END IF;
292
293 IF p_ams_claim_grp_rec.deduction_attribute10 = FND_API.g_miss_char THEN
294 x_ozf_claim_grp_rec.deduction_attribute10 := NULL;
295 ELSE
296 x_ozf_claim_grp_rec.deduction_attribute10 := p_ams_claim_grp_rec.deduction_attribute10;
297 END IF;
298
299 IF p_ams_claim_grp_rec.deduction_attribute11 = FND_API.g_miss_char THEN
300 x_ozf_claim_grp_rec.deduction_attribute11 := NULL;
301 ELSE
302 x_ozf_claim_grp_rec.deduction_attribute11 := p_ams_claim_grp_rec.deduction_attribute11;
303 END IF;
304
305 IF p_ams_claim_grp_rec.deduction_attribute12 = FND_API.g_miss_char THEN
306 x_ozf_claim_grp_rec.deduction_attribute12 := NULL;
307 ELSE
308 x_ozf_claim_grp_rec.deduction_attribute12 := p_ams_claim_grp_rec.deduction_attribute12;
309 END IF;
310
311 IF p_ams_claim_grp_rec.deduction_attribute13 = FND_API.g_miss_char THEN
312 x_ozf_claim_grp_rec.deduction_attribute13 := NULL;
313 ELSE
314 x_ozf_claim_grp_rec.deduction_attribute13 := p_ams_claim_grp_rec.deduction_attribute13;
315 END IF;
316
317 IF p_ams_claim_grp_rec.deduction_attribute14 = FND_API.g_miss_char THEN
318 x_ozf_claim_grp_rec.deduction_attribute14 := NULL;
319 ELSE
320 x_ozf_claim_grp_rec.deduction_attribute14 := p_ams_claim_grp_rec.deduction_attribute14;
321 END IF;
322
323 IF p_ams_claim_grp_rec.deduction_attribute15 = FND_API.g_miss_char THEN
324 x_ozf_claim_grp_rec.deduction_attribute15 := NULL;
325 ELSE
326 x_ozf_claim_grp_rec.deduction_attribute15 := p_ams_claim_grp_rec.deduction_attribute15;
327 END IF;
328
329 IF p_ams_claim_grp_rec.org_id = FND_API.g_miss_num THEN
330 x_ozf_claim_grp_rec.org_id := NULL;
331 ELSE
332 x_ozf_claim_grp_rec.org_id := p_ams_claim_grp_rec.org_id;
333 END IF;
334
335 EXCEPTION
336 WHEN OTHERS THEN
337 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
338 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
339 FND_MESSAGE.set_name('AMS', 'AMS_CLAIM_COMP_GRP_REC_ERR');
340 FND_MSG_PUB.add;
341 END IF;
342
343 END Complete_OZF_Claim_Grp_Rec;
344
345 ---------------------------------------------------------------------
346 -- PROCEDURE: Create_Deduction
347 --
348 -- PURPOSE:
349 -- This procedure checks information passed from AR to Claim module and then
350 -- calls Creat_claim function in the private package to create a claim record.
351 -- It returns a claim_id and cliam_number as the result.
352
353 -- PARAMETERS:
354 -- IN
355 -- p_api_version_number IN NUMBER Required
356 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
357 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
358 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
359 -- P_deduction_Rec IN DEDUCTION_REC_TYPE Required
360 --
361 -- OUT:
362 -- x_return_status OUT VARCHAR2
363 -- x_msg_count OUT NUMBER
364 -- x_msg_data OUT VARCHAR2
365 -- x_claim_id OUT NUMBER,
366 -- x_claim_number OUT VARCHAR2
367 -- NOTES:
368 --
369 ---------------------------------------------------------------------
370 PROCEDURE Create_Deduction(
371 P_Api_Version_Number IN NUMBER,
372 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
373 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
377 X_Msg_Count OUT NOCOPY NUMBER,
374 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
375
376 X_Return_Status OUT NOCOPY VARCHAR2,
378 X_Msg_Data OUT NOCOPY VARCHAR2,
379
380 P_deduction IN DEDUCTION_REC_TYPE,
381 X_CLAIM_ID OUT NOCOPY NUMBER,
382 X_CLAIM_NUMBER OUT NOCOPY VARCHAR2
383 )
384 IS
385 l_ozf_claim_grp_rec OZF_CLAIM_GRP.DEDUCTION_REC_TYPE;
386
387 BEGIN
388 -- Initialize API return status to SUCCESS
389 x_return_status := FND_API.G_RET_STS_SUCCESS;
390
391 Complete_OZF_Claim_Grp_Rec(
392 p_ams_claim_grp_rec => P_deduction
393 , x_ozf_claim_grp_rec => l_ozf_claim_grp_rec
394 , x_return_status => x_return_status
395
396 );
397 IF x_return_status = FND_API.G_RET_STS_ERROR then
398 RAISE FND_API.G_EXC_ERROR;
399 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
400 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
401 END IF;
402
403 OZF_CLAIM_GRP.Create_Deduction(
404 P_Api_Version_Number => P_Api_Version_Number,
405 P_Init_Msg_List => P_Init_Msg_List,
406 p_validation_level => p_validation_level,
407 P_Commit => P_Commit,
408
409 X_Return_Status => X_Return_Status,
410 X_Msg_Count => X_Msg_Count,
411 X_Msg_Data => X_Msg_Data,
412
413 P_deduction => l_ozf_claim_grp_rec,
414 X_CLAIM_ID => X_CLAIM_ID,
415 X_CLAIM_NUMBER => X_CLAIM_NUMBER
416 );
417 IF x_return_status = FND_API.G_RET_STS_ERROR then
418 RAISE FND_API.G_EXC_ERROR;
419 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
420 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
421 END IF;
422
423
424 EXCEPTION
425 WHEN OTHERS THEN
426 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
427 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
428 FND_MESSAGE.set_name('AMS', 'AMS_CLAIM_CRE_DEDU_ERR');
429 FND_MSG_PUB.add;
430 END IF;
431 -- Standard call to get message count and if count=1, get the message
432 FND_MSG_PUB.Count_And_Get (
433 p_encoded => FND_API.G_FALSE,
434 p_count => x_msg_count,
435 p_data => x_msg_data
436 );
437 End Create_Deduction;
438
439
440 ---------------------------------------------------------------------
441 -- PROCEDURE: Update_Deduction
442 --
443 -- PURPOSE :
444 -- This procedure update a Deduction. It calls the Update_claim function in the private
445 -- package.
446 --
447 -- PARAMETERS:
448 -- IN
449 -- p_api_version_number IN NUMBER Required
450 -- p_init_msg_list IN VARCHAR2 Optional Default = FND_API_G_FALSE
451 -- p_validation_level IN NUMBER Optional Default = FND_API.G_VALID_LEVEL_FULL
452 -- p_commit IN VARCHAR2 Optional Default = FND_API.G_FALSE
453 -- P_deduction IN DEDUCTION_REC_TYPE Required
454 --
455 -- OUT:
456 -- x_return_status OUT VARCHAR2
457 -- x_msg_count OUT NUMBER
458 -- x_msg_data OUT VARCHAR2
459 -- x_object_version_number OUT NUMBER
460 --
461 -- Note:
462 --
463 ---------------------------------------------------------------------
464
465 PROCEDURE Update_Deduction(
466 P_Api_Version_Number IN NUMBER,
467 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
468 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
469 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
470
471 X_Return_Status OUT NOCOPY VARCHAR2,
472 X_Msg_Count OUT NOCOPY NUMBER,
473 X_Msg_Data OUT NOCOPY VARCHAR2,
474
475 P_deduction IN DEDUCTION_REC_TYPE,
476 X_Object_Version_Number OUT NOCOPY NUMBER
477 )
478 IS
479 l_ozf_claim_grp_rec OZF_CLAIM_GRP.DEDUCTION_REC_TYPE;
480 l_ozf_claim_pvt_rec OZF_CLAIM_PVT.CLAIM_REC_TYPE;
481
482 TYPE NUMBER_TBL IS TABLE OF NUMBER
483 INDEX BY BINARY_INTEGER;
484 l_claim_id_tbl NUMBER_TBL;
485 l_custom_setup_id_tbl NUMBER_TBL;
486 l_claim_obj_ver_num_tbl NUMBER_TBL;
487 idx NUMBER := 1;
488
489
490 CURSOR split_claims_info_csr (p_id in number) IS
491 SELECT claim_id, object_version_number, custom_setup_id
492 FROM ozf_claims_all
493 WHERE root_claim_id = p_id
494 AND status_code NOT IN ('CLOSED', 'CANCELLED', 'REJECTED');
495
496
497 BEGIN
498
499 -- Initialize API return status to SUCCESS
500 x_return_status := FND_API.G_RET_STS_SUCCESS;
501
502 Complete_OZF_Claim_Grp_Rec(
503 p_ams_claim_grp_rec => P_deduction
504 , x_ozf_claim_grp_rec => l_ozf_claim_grp_rec
505 , x_return_status => x_return_status
506 );
507 IF x_return_status = FND_API.G_RET_STS_ERROR then
508 RAISE FND_API.G_EXC_ERROR;
509 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
510 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
511 END IF;
512
513 IF p_deduction.status_code = 'CANCELLED' THEN
514 IF ( NOT( check_cancell_deduction(p_deduction.claim_id))) THEN
515 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
516 FND_MESSAGE.set_name('AMS', 'AMS_CLAIM_INVALID_STATUS_CODE');
517 FND_MSG_PUB.add;
521
518 END IF;
519 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
520 END IF;
522 OPEN split_claims_info_csr(p_deduction.claim_id);
523 LOOP
524 FETCH split_claims_info_csr INTO l_claim_id_tbl(idx)
525 , l_claim_obj_ver_num_tbl(idx)
526 , l_custom_setup_id_tbl(idx);
527 EXIT WHEN split_claims_info_csr%NOTFOUND OR split_claims_info_csr%NOTFOUND IS NULL;
528 idx := idx + 1;
529 END LOOP;
530 CLOSE split_claims_info_csr;
531
532 idx := l_claim_id_tbl.FIRST;
533 IF idx IS NOT NULL THEN
534 LOOP
535 l_ozf_claim_pvt_rec.claim_id := l_claim_id_tbl(idx);
536 l_ozf_claim_pvt_rec.object_version_number := l_claim_obj_ver_num_tbl(idx);
537 l_ozf_claim_pvt_rec.custom_setup_id := l_custom_setup_id_tbl(idx);
538 l_ozf_claim_pvt_rec.status_code := 'CANCELLED';
539
540 OZF_CLAIM_PVT.Update_claim(
541 p_api_version => 1.0,
542 p_init_msg_list => fnd_api.g_false,
543 p_commit => fnd_api.g_false,
544 p_validation_level => fnd_api.g_valid_level_full,
545 x_return_status => x_return_status,
546 x_msg_count => x_msg_count,
547 x_msg_data => x_msg_data,
548 p_claim => l_ozf_claim_pvt_rec,
549 p_event => 'UPDATE',
550 p_mode => oZF_CLAIM_UTILITY_PVT.G_AUTO_MODE,
551 x_object_version_number => l_claim_obj_ver_num_tbl(idx)
552 );
553 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
554 RAISE FND_API.G_EXC_ERROR;
555 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
556 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
557 END IF;
558 EXIT WHEN idx = l_claim_id_tbl.LAST;
559 idx := l_claim_id_tbl.NEXT(idx);
560 END LOOP;
561 END IF;
562 ELSE
563 OZF_CLAIM_GRP.Update_Deduction(
564 P_Api_Version_Number => P_Api_Version_Number,
565 P_Init_Msg_List => P_Init_Msg_List,
566 p_validation_level => p_validation_level,
567 P_Commit => P_Commit,
568
569 X_Return_Status => X_Return_Status,
570 X_Msg_Count => X_Msg_Count,
571 X_Msg_Data => X_Msg_Data,
572
573 P_deduction => l_ozf_claim_grp_rec,
574 X_Object_Version_Number => X_Object_Version_Number
575 );
576 IF x_return_status = FND_API.G_RET_STS_ERROR then
577 RAISE FND_API.G_EXC_ERROR;
578 ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
579 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
580 END IF;
581 END IF;
582
583
584 EXCEPTION
585 WHEN OTHERS THEN
586 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
587 IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
588 FND_MESSAGE.set_name('AMS', 'AMS_CLAIM_UPD_DEDU_ERR');
589 FND_MSG_PUB.add;
590 END IF;
591 -- Standard call to get message count and if count=1, get the message
592 FND_MSG_PUB.Count_And_Get (
593 p_encoded => FND_API.G_FALSE,
594 p_count => x_msg_count,
595 p_data => x_msg_data
596 );
597
598 End Update_Deduction;
599
600 -- *******************************************************
601 -- Start of Comments
602 -- *******************************************************
603 -- API Name: Check_Cancell_Deduction
604 -- Type : Public
605 -- Pre-Req :
606 -- Parameters:
607 -- IN
608 -- P_Claim_Id IN NUMBER Required
609 --
610 -- OUT:
611 -- x_status OUT BOOLEAN
612 -- Version : Current version 1.0
613 --
614 -- Note: This function checks whether a claims can be cancelled or not.
615 --
616 -- End of Comments
617 --
618 FUNCTION Check_Cancell_Deduction(
619 P_Claim_Id IN NUMBER
620 ) RETURN BOOLEAN
621 IS
622
623 BEGIN
624
625 RETURN OZF_CLAIM_GRP.Check_Cancell_Deduction(P_Claim_Id);
626
627 End Check_Cancell_Deduction ;
628
629 End AMS_claim_GRP;