[Home] [Help]
PACKAGE BODY: APPS.OZF_CLAIM_SETTLEMENT_VAL_PVT
Source
1 PACKAGE BODY OZF_CLAIM_SETTLEMENT_VAL_PVT AS
2 /* $Header: ozfvcsvb.pls 120.5 2008/02/19 08:29:08 psomyaju ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'OZF_CLAIM_SETTLEMENT_VAL_PVT';
5 G_FILE_NAME CONSTANT VARCHAR2(12) := 'ozfvcsvb.pls';
6
7 OZF_DEBUG_HIGH_ON CONSTANT BOOLEAN := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_high);
8 OZF_DEBUG_LOW_ON CONSTANT BOOLEAN := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_low);
9
10 /*=======================================================================*
11 | PROCEDURE
12 | Default_Claim_Line
13 |
14 | NOTES
15 | This API default claim line recored against different settlement method.
16 |
17 | HISTORY
18 | 14-NOV-2002 mchang Create.
19 *=======================================================================*/
20 PROCEDURE Default_Claim_Line(
21 p_api_version IN NUMBER
22 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
23 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
24
25 ,x_return_status OUT NOCOPY VARCHAR2
26 ,x_msg_data OUT NOCOPY VARCHAR2
27 ,x_msg_count OUT NOCOPY NUMBER
28
29 ,p_x_claim_line_rec IN OUT NOCOPY OZF_CLAIM_LINE_PVT.claim_line_rec_type
30 ,p_def_from_tbl_flag IN VARCHAR2
31 )
32 IS
33 l_api_version CONSTANT NUMBER := 1.0;
34 l_api_name CONSTANT VARCHAR2(30) := 'Default_Claim_Line';
35 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME || '.' || l_api_name;
36 l_return_status VARCHAR2(1);
37
38 CURSOR csr_settlement_method(cv_claim_id IN NUMBER) IS
39 SELECT payment_method
40 FROM ozf_claims
41 WHERE claim_id = cv_claim_id;
42
43 l_settlement_method VARCHAR2(30);
44
45 BEGIN
46 IF OZF_DEBUG_HIGH_ON THEN
47 OZF_Utility_PVT.debug_message(l_full_name||' : start');
48 END IF;
49
50 -- Initialize API return status to sucess
51 x_return_status := FND_API.g_ret_sts_success;
52
53 ------------------------------------------------
54 IF p_x_claim_line_rec.source_object_class IS NULL THEN
55 p_x_claim_line_rec.source_object_id := NULL;
56 END IF;
57
58 IF p_x_claim_line_rec.source_object_id IS NULL THEN
59 p_x_claim_line_rec.source_object_line_id := NULL;
60 END IF;
61
62 --
63 OPEN csr_settlement_method(p_x_claim_line_rec.claim_id);
64 FETCH csr_settlement_method INTO l_settlement_method;
65 CLOSE csr_settlement_method;
66
67 IF p_def_from_tbl_flag = FND_API.g_false THEN
68 IF l_settlement_method = 'RMA' THEN
69 OZF_OM_VALIDATION_PVT.Default_Claim_Line(
70 p_api_version => l_api_version
71 ,p_init_msg_list => p_init_msg_list
72 ,p_validation_level => p_validation_level
73 ,x_return_status => l_return_status
74 ,x_msg_data => x_msg_data
75 ,x_msg_count => x_msg_count
76 ,p_x_claim_line_rec => p_x_claim_line_rec
77 );
78 IF l_return_status = FND_API.g_ret_sts_error THEN
79 RAISE FND_API.g_exc_error;
80 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
81 RAISE FND_API.g_exc_unexpected_error;
82 END IF;
83 END IF;
84 END IF;
85
86 IF OZF_DEBUG_HIGH_ON THEN
87 OZF_Utility_PVT.debug_message(l_full_name||' : end');
88 END IF;
89 EXCEPTION
90 WHEN FND_API.G_EXC_ERROR THEN
91 x_return_status := FND_API.G_RET_STS_ERROR;
92 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
93 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
94 WHEN OTHERS THEN
95 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
96 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
97 END IF;
98 x_return_status := FND_API.g_ret_sts_unexp_error;
99
100 END Default_Claim_Line;
101
102
103 /*=======================================================================*
104 | PROCEDURE
105 | Default_Claim_Line_Tbl
106 |
107 | NOTES
108 | This API default claim line table for RMA settlement method.
109 |
110 | HISTORY
111 | 14-NOV-2002 mchang Create.
112 *=======================================================================*/
113 PROCEDURE Default_Claim_Line_Tbl(
114 p_api_version IN NUMBER
115 ,p_init_msg_list IN VARCHAR2
116 ,p_validation_level IN NUMBER
117
118 ,x_return_status OUT NOCOPY VARCHAR2
119 ,x_msg_data OUT NOCOPY VARCHAR2
120 ,x_msg_count OUT NOCOPY NUMBER
121
122 ,p_x_claim_line_tbl IN OUT NOCOPY OZF_CLAIM_LINE_PVT.claim_line_tbl_type
123 )
124 IS
125 l_api_version CONSTANT NUMBER := 1.0;
126 l_api_name CONSTANT VARCHAR2(30) := 'Default_Claim_Line_Tbl';
127 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME || '.' || l_api_name;
128 l_return_status VARCHAR2(1);
129
130 CURSOR csr_settlement_method(cv_claim_id IN NUMBER) IS
131 SELECT payment_method
132 FROM ozf_claims
133 WHERE claim_id = cv_claim_id;
134
135 l_claim_line_rec OZF_CLAIM_LINE_PVT.claim_line_rec_type;
136 l_settlement_method VARCHAR2(30);
137 i NUMBER;
138
139 BEGIN
140 IF OZF_DEBUG_HIGH_ON THEN
141 OZF_Utility_PVT.debug_message(l_full_name||' : start');
142 END IF;
143
144 -- Initialize API return status to sucess
145 x_return_status := FND_API.g_ret_sts_success;
146
147 i := p_x_claim_line_tbl.FIRST;
148 IF i IS NOT NULL THEN
149 LOOP
150 l_claim_line_rec := p_x_claim_line_tbl(i);
151 Default_Claim_Line(
152 p_api_version => l_api_version
153 ,p_init_msg_list => p_init_msg_list
154 ,p_validation_level => p_validation_level
155 ,x_return_status => l_return_status
156 ,x_msg_data => x_msg_data
157 ,x_msg_count => x_msg_count
158 ,p_x_claim_line_rec => l_claim_line_rec
159 ,p_def_from_tbl_flag => FND_API.g_true
160 );
161 p_x_claim_line_tbl(i) := l_claim_line_rec;
162 IF l_return_status = FND_API.g_ret_sts_error THEN
163 RAISE FND_API.g_exc_error;
164 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
165 RAISE FND_API.g_exc_unexpected_error;
166 END IF;
167 EXIT WHEN i = p_x_claim_line_tbl.LAST;
168 i := p_x_claim_line_tbl.NEXT(i);
169 END LOOP;
170
171 OPEN csr_settlement_method(p_x_claim_line_tbl(1).claim_id);
172 FETCH csr_settlement_method INTO l_settlement_method;
173 CLOSE csr_settlement_method;
174
175 IF l_settlement_method = 'RMA' THEN
176 OZF_OM_VALIDATION_PVT.Default_Claim_Line_Tbl(
177 p_api_version => l_api_version
178 ,p_init_msg_list => p_init_msg_list
179 ,p_validation_level => p_validation_level
180 ,x_return_status => l_return_status
181 ,x_msg_data => x_msg_data
182 ,x_msg_count => x_msg_count
183 ,p_x_claim_line_tbl => p_x_claim_line_tbl
184 );
185 IF l_return_status = FND_API.g_ret_sts_error THEN
186 RAISE FND_API.g_exc_error;
187 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
188 RAISE FND_API.g_exc_unexpected_error;
189 END IF;
190 END IF;
191 END IF;
192
193 IF OZF_DEBUG_HIGH_ON THEN
194 OZF_Utility_PVT.debug_message(l_full_name||' : end');
195 END IF;
196 EXCEPTION
197 WHEN FND_API.G_EXC_ERROR THEN
198 x_return_status := FND_API.G_RET_STS_ERROR;
199 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
200 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
201 WHEN OTHERS THEN
202 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
203 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
204 END IF;
205 x_return_status := FND_API.g_ret_sts_unexp_error;
206
207 END Default_Claim_Line_Tbl;
208
209
210 /*=======================================================================*
211 | PROCEDURE
212 | Validate_Claim_Line
213 |
214 | NOTES
215 | This API validate claim line recored against RMA settlement.
216 |
217 | HISTORY
218 | 30-NOV-2002 mchang Create.
219 *=======================================================================*/
220 PROCEDURE Validate_Claim_Line(
221 p_api_version IN NUMBER
222 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
223 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
224
225 ,x_return_status OUT NOCOPY VARCHAR2
226 ,x_msg_data OUT NOCOPY VARCHAR2
227 ,x_msg_count OUT NOCOPY NUMBER
228
229 ,p_claim_line_rec IN OZF_CLAIM_LINE_PVT.claim_line_rec_type
230 ,p_val_from_tbl_flag IN VARCHAR2
231 )
232 IS
233 l_api_version CONSTANT NUMBER := 1.0;
234 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Claim_Line';
235 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME || '.' || l_api_name;
236 l_return_status VARCHAR2(1);
237
238 CURSOR csr_settlement_method(cv_claim_id IN NUMBER) IS
239 SELECT payment_method
240 FROM ozf_claims
241 WHERE claim_id = cv_claim_id;
242
243 l_error BOOLEAN := FALSE;
244 l_settlement_method VARCHAR2(30);
245
246 BEGIN
247 IF OZF_DEBUG_HIGH_ON THEN
248 OZF_Utility_PVT.debug_message(l_full_name||' : start');
249 END IF;
250
251 -- Initialize API return status to sucess
252 x_return_status := FND_API.g_ret_sts_success;
253
254 OPEN csr_settlement_method(p_claim_line_rec.claim_id);
255 FETCH csr_settlement_method INTO l_settlement_method;
256 CLOSE csr_settlement_method;
257
258 IF p_val_from_tbl_flag = FND_API.g_false THEN
259 IF l_settlement_method = 'RMA' THEN
260 OZF_OM_VALIDATION_PVT.Validate_Claim_Line(
261 p_api_version => l_api_version
262 ,p_init_msg_list => p_init_msg_list
263 ,p_validation_level => p_validation_level
264 ,x_return_status => l_return_status
265 ,x_msg_data => x_msg_data
266 ,x_msg_count => x_msg_count
267 ,p_claim_line_rec => p_claim_line_rec
268 );
269 IF l_return_status = FND_API.g_ret_sts_error THEN
270 RAISE FND_API.g_exc_error;
271 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
272 RAISE FND_API.g_exc_unexpected_error;
273 END IF;
274 END IF;
275 END IF;
276
277 IF OZF_DEBUG_HIGH_ON THEN
278 OZF_Utility_PVT.debug_message(l_full_name||' : end');
279 END IF;
280 EXCEPTION
281 WHEN FND_API.G_EXC_ERROR THEN
282 x_return_status := FND_API.G_RET_STS_ERROR;
283 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
284 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
285 WHEN OTHERS THEN
286 IF OZF_DEBUG_LOW_ON THEN
287 FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
288 FND_MESSAGE.Set_Token('TEXT',l_full_name||' : Error');
289 FND_MSG_PUB.Add;
290 END IF;
291 x_return_status := FND_API.g_ret_sts_unexp_error;
292
293 END Validate_Claim_Line;
294
295
296 /*=======================================================================*
297 | PROCEDURE
298 | Validate_Claim_Line_Tbl
299 |
300 | NOTES
301 | This API validate claim line recored against RMA settlement.
302 |
303 | HISTORY
304 | 30-NOV-2002 mchang Create.
305 *=======================================================================*/
306 PROCEDURE Validate_Claim_Line_Tbl(
307 p_api_version IN NUMBER
308 ,p_init_msg_list IN VARCHAR2 := FND_API.g_false
309 ,p_validation_level IN NUMBER := FND_API.g_valid_level_full
310
311 ,x_return_status OUT NOCOPY VARCHAR2
312 ,x_msg_data OUT NOCOPY VARCHAR2
313 ,x_msg_count OUT NOCOPY NUMBER
314
315 ,p_claim_line_tbl IN OZF_CLAIM_LINE_PVT.claim_line_tbl_type
316 )
317 IS
318 l_api_version CONSTANT NUMBER := 1.0;
319 l_api_name CONSTANT VARCHAR2(30) := 'Validate_Claim_Line_Tbl';
320 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME || '.' || l_api_name;
321 l_return_status VARCHAR2(1);
322
323 CURSOR csr_settlement_method(cv_claim_id IN NUMBER) IS
324 SELECT payment_method
325 FROM ozf_claims
326 WHERE claim_id = cv_claim_id;
327
328 i NUMBER;
329 l_error BOOLEAN := FALSE;
330 l_claim_line_rec OZF_CLAIM_LINE_PVT.claim_line_rec_type;
331 l_settlement_method VARCHAR2(15);
332
333
334 BEGIN
335 IF OZF_DEBUG_HIGH_ON THEN
336 OZF_Utility_PVT.debug_message(l_full_name||' : start');
337 END IF;
338
339 -- Initialize API return status to sucess
340 x_return_status := FND_API.g_ret_sts_success;
341
342 i := p_claim_line_tbl.FIRST ;
343 IF i IS NOT NULL THEN
344 LOOP
345 l_claim_line_rec := p_claim_line_tbl(i);
346 Validate_Claim_Line(
350 ,x_return_status => l_return_status
347 p_api_version => l_api_version
348 ,p_init_msg_list => p_init_msg_list
349 ,p_validation_level => p_validation_level
351 ,x_msg_data => x_msg_data
352 ,x_msg_count => x_msg_count
353 ,p_claim_line_rec => l_claim_line_rec
354 ,p_val_from_tbl_flag => FND_API.g_true
355 );
356 IF l_return_status = FND_API.g_ret_sts_error THEN
357 RAISE FND_API.g_exc_error;
358 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
359 RAISE FND_API.g_exc_unexpected_error;
360 END IF;
361 EXIT WHEN i = p_claim_line_tbl.LAST;
362 i := p_claim_line_tbl.NEXT(i);
363 END LOOP;
364
365 OPEN csr_settlement_method(p_claim_line_tbl(1).claim_id);
366 FETCH csr_settlement_method INTO l_settlement_method;
367 CLOSE csr_settlement_method;
368
369 IF l_settlement_method = 'RMA' THEN
370 OZF_OM_VALIDATION_PVT.Validate_Claim_Line_Tbl(
371 p_api_version => l_api_version
372 ,p_init_msg_list => p_init_msg_list
373 ,p_validation_level => p_validation_level
374 ,x_return_status => l_return_status
375 ,x_msg_data => x_msg_data
376 ,x_msg_count => x_msg_count
377 ,p_claim_line_tbl => p_claim_line_tbl
378 );
379 IF l_return_status = FND_API.g_ret_sts_error THEN
380 RAISE FND_API.g_exc_error;
381 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
382 RAISE FND_API.g_exc_unexpected_error;
383 END IF;
384 END IF;
385 END IF;
386
387 IF l_error THEN
388 RAISE FND_API.G_EXC_ERROR;
389 END IF;
390
391
392 IF OZF_DEBUG_HIGH_ON THEN
393 OZF_Utility_PVT.debug_message(l_full_name||' : end');
394 END IF;
395 EXCEPTION
396 WHEN FND_API.G_EXC_ERROR THEN
397 x_return_status := FND_API.G_RET_STS_ERROR;
398 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
399 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
400 WHEN OTHERS THEN
401 IF OZF_DEBUG_LOW_ON THEN
402 FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
403 FND_MESSAGE.Set_Token('TEXT',l_full_name||' : Error');
404 FND_MSG_PUB.Add;
405 END IF;
406 x_return_status := FND_API.g_ret_sts_unexp_error;
407
408 END Validate_Claim_Line_Tbl;
409
410
411 FUNCTION gl_date_in_open(
412 p_application_id IN NUMBER
413 ,p_claim_id IN NUMBER
414 )
415 RETURN BOOLEAN
416 IS
417
418 CURSOR csr_gl_date_validate( cv_app_id IN NUMBER
419 , cv_claim_id IN NUMBER
420 ) IS
421 SELECT DECODE(MAX(gl.period_name), '', 0, 1)
422 FROM gl_period_statuses gl
423 , ozf_claims c
424 WHERE gl.application_id = cv_app_id
425 AND c.claim_id= cv_claim_id
426 AND gl.set_of_books_id = c.set_of_books_id
427 AND gl.adjustment_period_flag = 'N'
428 AND c.gl_date BETWEEN gl.start_date AND gl.end_date
429 AND gl.closing_status IN ('O', 'F');
430
431 l_gl_date_count NUMBER := 1;
432
433 BEGIN
434 OPEN csr_gl_date_validate(p_application_id, p_claim_id);
435 FETCH csr_gl_date_validate INTO l_gl_date_count;
436 CLOSE csr_gl_date_validate;
437
438 IF l_gl_date_count = 0 THEN
439 RETURN FALSE;
440 ELSE
441 RETURN TRUE;
442 END IF;
443 EXCEPTION
444 WHEN OTHERS THEN
445 IF OZF_DEBUG_LOW_ON THEN
446 FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
447 FND_MESSAGE.Set_Token('TEXT',sqlerrm);
448 FND_MSG_PUB.Add;
449 END IF;
450 RETURN FALSE;
451 END gl_date_in_open;
452
453
454 /*=======================================================================*
455 | Procedure
456 | Complete_Claim_Validation
457 |
458 | Return
459 |
460 | NOTES
461 |
462 | HISTORY
463 | 24-OCT-2002 mchang Create.
464 *=======================================================================*/
465 PROCEDURE Complete_Claim_Validation(
466 p_api_version 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
470 ,x_return_status OUT NOCOPY VARCHAR2
471 ,x_msg_data OUT NOCOPY VARCHAR2
472 ,x_msg_count OUT NOCOPY NUMBER
473
474 ,p_claim_rec IN OZF_CLAIM_PVT.claim_rec_type
475 ,x_claim_rec OUT NOCOPY OZF_CLAIM_PVT.claim_rec_type
476 )
477 IS
478 l_api_version CONSTANT NUMBER := 1.0;
479 l_api_name CONSTANT VARCHAR2(30) := 'Complete_Claim_Validation';
480 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME || '.' || l_api_name;
481 l_return_status VARCHAR2(1) := FND_API.g_ret_sts_success;
482
483 --Added claim_currency_amount check for bug 6828924.
487 , amount
484 CURSOR csr_claim_line(cv_claim_id IN NUMBER) IS
485 SELECT claim_line_id
486 , currency_code
488 , claim_currency_amount
489 , acctd_amount
490 , earnings_associated_flag
491 , performance_complete_flag
492 , source_object_class
493 , source_object_id
494 , source_object_line_id
495 , item_id
496 FROM ozf_claim_lines
497 WHERE claim_id = cv_claim_id
498 AND claim_currency_amount <> 0;
499
500 CURSOR csr_asso_offr_performance(cv_claim_line_id IN NUMBER) IS
501 SELECT op.offer_performance_id
502 FROM ozf_claim_lines_util lu
503 , ozf_funds_utilized fu
504 , ozf_offer_performances op
505 WHERE lu.utilization_id = fu.utilization_id
506 AND fu.component_type = 'OFFR'
507 AND fu.component_id = op.list_header_id
508 AND (op.requirement_type IS NULL OR op.requirement_type NOT IN ('AMOUNT', 'VOLUME'))
509 AND op.required_flag = 'Y'
510 AND lu.claim_line_id = cv_claim_line_id;
511
512 CURSOR csr_line_offr_performance(cv_claim_line_id IN NUMBER) IS
513 SELECT op.offer_performance_id
514 FROM ozf_claim_lines ln
515 , ozf_offer_performances op
516 WHERE ln.activity_type = 'OFFR'
517 AND ln.activity_id = op.list_header_id
518 AND (op.requirement_type IS NULL OR op.requirement_type NOT IN ('AMOUNT', 'VOLUME'))
519 AND op.required_flag = 'Y'
520 AND ln.claim_line_id = cv_claim_line_id;
521
522 -- Modified for FXGL Enhancement
523 -- Need to compare line amount with associated util_amounts
524 CURSOR csr_sum_util_amt(cv_claim_line_id IN NUMBER) IS
525 SELECT NVL(SUM(amount), 0)
526 FROM ozf_claim_lines_util
527 WHERE claim_line_id = cv_claim_line_id;
528
529 CURSOR csr_sum_line_amt(cv_claim_id IN NUMBER) IS
530 SELECT NVL(SUM(claim_currency_amount), 0)
531 FROM ozf_claim_lines
532 WHERE claim_id = cv_claim_id;
533
534 --Added claim_currency_amount check for bug 6828924.
535 CURSOR csr_line_prom_distinct_chk(cv_claim_id IN NUMBER) IS
536 SELECT distinct earnings_associated_flag
537 FROM ozf_claim_lines
538 WHERE claim_id = cv_claim_id
539 AND claim_currency_amount <> 0;
540
541 CURSOR csr_gl_date_validate(cv_app_id IN NUMBER, cv_set_of_books_id IN NUMBER) IS
542 SELECT DECODE(MAX(period_name), '', 0, 1)
543 FROM gl_period_statuses
544 WHERE application_id = cv_app_id
545 AND set_of_books_id = cv_set_of_books_id
546 AND adjustment_period_flag = 'N'
547 AND SYSDATE BETWEEN start_date AND end_date
548 AND closing_status IN ('O', 'F');
549
550 CURSOR csr_sysparam_defaults IS
551 SELECT post_to_gl
552 , payables_source
553 , batch_source_id
554 , gl_id_ded_clearing
555 , gl_rec_clearing_account
556 , gl_date_type
557 FROM ozf_sys_parameters;
558
559 CURSOR csr_inv_line(cv_invoice_line_id IN NUMBER) IS
560 SELECT inventory_item_id
561 , uom_code
562 , quantity_invoiced
563 FROM ra_customer_trx_lines
564 WHERE customer_trx_line_id = cv_invoice_line_id;
565
566 CURSOR csr_inv_line_exist(cv_invoice_id IN NUMBER, cv_invoice_line_id IN NUMBER) IS
567 SELECT customer_trx_line_id
568 FROM ra_customer_trx_lines
569 WHERE customer_trx_id = cv_invoice_id
570 AND customer_trx_line_id = cv_invoice_line_id;
571
572 l_claim_line_id NUMBER;
573 l_line_src_obj_class VARCHAR2(15);
574 l_line_src_obj_id NUMBER;
575 l_line_src_obj_line_id NUMBER;
576 l_line_item_id NUMBER;
577 l_line_currency VARCHAR2(15);
578 l_line_amount NUMBER;
579 l_line_claim_curr_amt NUMBER;
580 l_line_acctd_amount NUMBER;
581 l_line_earnings_flag VARCHAR2(1);
582 l_line_perf_comp_flag VARCHAR2(1);
583 l_line_sum_curr_amt NUMBER;
584 l_sum_line_util_amt NUMBER;
585 l_asso_earnings_exist BOOLEAN := FALSE;
586 l_promo_distinct_err BOOLEAN := FALSE;
587 l_line_amount_err BOOLEAN := FALSE;
588 l_line_util_err BOOLEAN := FALSE;
589 l_offr_perf_flag_err BOOLEAN := FALSE;
590 l_error BOOLEAN := FALSE;
591 l_asso_offr_perf_id NUMBER;
592 l_gl_count NUMBER;
593 l_gl_acc_checking VARCHAR2(1);
594 l_batch_source_id NUMBER;
595 l_payables_source VARCHAR2(30);
596 l_vendor_in_sys NUMBER;
597 l_rec_clr_in_sys NUMBER;
598 l_inv_item_id RA_CUSTOMER_TRX_LINES.inventory_item_id%TYPE;
599 l_inv_uom_code RA_CUSTOMER_TRX_LINES.uom_code%TYPE;
600 l_inv_quantity RA_CUSTOMER_TRX_LINES.quantity_invoiced%TYPE;
601 l_inv_line_id RA_CUSTOMER_TRX_LINES.customer_trx_line_id%TYPE;
602 l_gl_date_type VARCHAR2(30);
603 l_line_mix_amt_sign BOOLEAN := FALSE;
604
605 -- R12: Earnings are supported for custom settlement
606 CURSOR csr_payment_type(cv_claim_id IN NUMBER) IS
607 SELECT ocs.seeded_flag
608 FROM ozf_claim_sttlmnt_methods_all ocs,
609 ozf_claims_all oc
610 WHERE claim_id = cv_claim_id
611 AND ocs.claim_class = oc.claim_class
612 AND NVL(ocs.source_object_class,'NULL') = NVL(oc.source_object_class,'NULL')
613 AND ocs.settlement_method = oc.payment_method ;
614 l_seeded_flag VARCHAR2(1);
615
616 BEGIN
620
617 IF OZF_DEBUG_HIGH_ON THEN
618 OZF_Utility_PVT.debug_message(l_full_name||' : start');
619 END IF;
621 -- Initialize API return status to sucess
622 x_return_status := FND_API.g_ret_sts_success;
623
624 x_claim_rec := p_claim_rec;
625
626 ---------------------------
627 -- System Parameters
628 ---------------------------
629 OPEN csr_sysparam_defaults;
630 FETCH csr_sysparam_defaults INTO l_gl_acc_checking
631 , l_payables_source
632 , l_batch_source_id
633 , l_vendor_in_sys
634 , l_rec_clr_in_sys
635 , l_gl_date_type;
636 CLOSE csr_sysparam_defaults;
637
638 ---------------------------
639 -- Settlement Method: Required
640 ---------------------------
641 IF p_claim_rec.payment_method IS NULL THEN
642 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
643 FND_MESSAGE.set_name('OZF', 'OZF_SETL_PAYMETHOD_REQ');
644 FND_MSG_PUB.add;
645 END IF;
646 RAISE FND_API.G_EXC_ERROR;
647 END IF;
648
649 -- Query Claim Line records
650 OPEN csr_claim_line(p_claim_rec.claim_id);
651 LOOP
652 FETCH csr_claim_line INTO l_claim_line_id
653 , l_line_currency
654 , l_line_amount
655 , l_line_claim_curr_amt
656 , l_line_acctd_amount
657 , l_line_earnings_flag
658 , l_line_perf_comp_flag
659 , l_line_src_obj_class
660 , l_line_src_obj_id
661 , l_line_src_obj_line_id
662 , l_line_item_id;
663 EXIT WHEN csr_claim_line%NOTFOUND;
664
665 IF l_line_earnings_flag = FND_API.g_true THEN
666 l_asso_earnings_exist :=TRUE;
667
668 IF NOT l_offr_perf_flag_err THEN
669 -- offer performance checking (1)
670 OPEN csr_asso_offr_performance(l_claim_line_id);
671 LOOP
672 FETCH csr_asso_offr_performance INTO l_asso_offr_perf_id;
673 EXIT WHEN csr_asso_offr_performance%NOTFOUND;
674 IF l_line_perf_comp_flag <> FND_API.g_true THEN
675 l_offr_perf_flag_err := TRUE;
676 EXIT;
677 END IF;
678 END LOOP;
679 CLOSE csr_asso_offr_performance;
680 END IF;
681 END IF;
682
683 -- offer performance checking (2)
684 IF NOT l_offr_perf_flag_err THEN
685 OPEN csr_line_offr_performance(l_claim_line_id);
686 LOOP
687 FETCH csr_line_offr_performance INTO l_asso_offr_perf_id;
688 EXIT WHEN csr_line_offr_performance%NOTFOUND;
689 IF l_line_perf_comp_flag <> FND_API.g_true THEN
690 l_offr_perf_flag_err := TRUE;
691 EXIT;
692 END IF;
693 END LOOP;
694 CLOSE csr_line_offr_performance;
695 END IF;
696
697 ------------------------------------
698 -- If earnings are associated with Claim,
699 -- claim line acctd Amount has to equal to associated earnings
700 ------------------------------------
701 IF l_asso_earnings_exist THEN
702 OPEN csr_sum_util_amt(l_claim_line_id);
703 FETCH csr_sum_util_amt INTO l_sum_line_util_amt;
704 CLOSE csr_sum_util_amt;
705
706 -- Modified for FXGL Enhancement
707 -- Need to compare line amount with associated util amounts
708 IF l_line_amount <> l_sum_line_util_amt THEN
709 l_line_util_err := TRUE;
710 EXIT;
711 END IF;
712 END IF;
713
714 IF l_line_currency = p_claim_rec.currency_code THEN
715 IF l_line_amount <> l_line_claim_curr_amt THEN
716 l_line_amount_err := TRUE;
717 END IF;
718 END IF;
719
720 -- Invoice/Order Line and Product should be the same.
721 IF l_line_src_obj_class = 'INVOICE' AND
722 l_line_src_obj_id IS NOT NULL THEN
723 IF l_line_src_obj_line_id IS NOT NULL THEN
724 OPEN csr_inv_line(l_line_src_obj_line_id);
725 FETCH csr_inv_line INTO l_inv_item_id
726 , l_inv_uom_code
727 , l_inv_quantity;
728 CLOSE csr_inv_line;
729
730 OPEN csr_inv_line_exist(l_line_src_obj_id, l_line_src_obj_line_id);
731 FETCH csr_inv_line_exist INTO l_inv_line_id;
732 CLOSE csr_inv_line_exist;
733
734 IF l_inv_line_id IS NULL THEN
735 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
736 FND_MESSAGE.set_name('OZF', 'OZF_SETL_VAL_INV_LINE_ERR');
737 FND_MSG_PUB.add;
738 END IF;
739 l_error := TRUE;
740 END IF;
741
742 IF l_line_item_id IS NOT NULL AND
743 l_line_item_id <> l_inv_item_id THEN
744 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
748 l_error := TRUE;
745 FND_MESSAGE.set_name('OZF', 'OZF_SETL_VAL_LINE_ITEM_DIFF');
746 FND_MSG_PUB.add;
747 END IF;
749 END IF;
750 END IF;
751 END IF;
752
753 ------------------------------------
754 -- Only promotional claims are allowed to
755 -- have both positive and negative lines.
756 ------------------------------------
757 IF NOT l_asso_earnings_exist AND
758 SIGN(p_claim_rec.amount_remaining) <> SIGN(l_line_claim_curr_amt) THEN
759 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
760 FND_MESSAGE.set_name('OZF', 'OZF_SETL_LINE_AMT_SIGN_ERR');
761 FND_MSG_PUB.add;
762 END IF;
763 l_error := TRUE;
764 END IF;
765
766 END LOOP;
767 CLOSE csr_claim_line;
768
769 IF l_error THEN
770 RAISE FND_API.G_EXC_ERROR;
771 END IF;
772
773 ---------------------- Validation -----------------------------
774 -----------------------------------------------------
775 -- If earnings are associated with Claim, Claim can only be settled by
776 -- Check
777 -- Credit Memo-On Account
778 -- Debit Memo (for Charge claim class)
779 -- Contra Charge
780 -- Bug4241187: Support RMA, REG_CREDIT_MEMO, PREV CM/DM if
781 -- post_to_gl flag is N.
782 -- R12: Support EFT, WIRE, AP_DEBIT, PREV_OPEN_CREDIT
783 -- and PREV_OPEN_DEBIT
784 --- R12: Support earnings for custom settlement methods
785 -----------------------------------------------------
786 OPEN csr_payment_type(p_claim_rec.claim_id);
787 FETCH csr_payment_type INTO l_seeded_flag;
788 CLOSE csr_payment_type;
789
790 IF l_asso_earnings_exist AND NVL(l_seeded_flag, 'N') = 'N' THEN
791 NULL;
792 ELSIF l_asso_earnings_exist AND NVL(l_seeded_flag, 'N') = 'Y' THEN
793 IF p_claim_rec.payment_method IN ( 'CREDIT_MEMO'
794 , 'CHECK'
795 , 'DEBIT_MEMO'
796 , 'CONTRA_CHARGE'
797 , 'EFT'
798 , 'WIRE'
799 , 'AP_DEBIT'
800 , 'AP_DEFAULT'
801 , 'ACCOUNTING_ONLY' --For R12.1 Enhancement
802 ) THEN
803 NULL;
804 ELSIF p_claim_rec.payment_method IN ( 'REG_CREDIT_MEMO'
805 , 'RMA'
806 , 'PREV_OPEN_CREDIT'
807 , 'PREV_OPEN_DEBIT'
808 ) THEN
809 IF NVL(l_gl_acc_checking,'F') = 'T' THEN
810 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
811 FND_MESSAGE.set_name('OZF', 'OZF_POST_ASSO_PAYMETHOD_ERR');
812 FND_MSG_PUB.add;
813 END IF;
814 RAISE FND_API.G_EXC_ERROR;
815 END IF;
816 ELSE
817 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
818 FND_MESSAGE.set_name('OZF', 'OZF_SETL_ASSO_PAYMETHOD_ERR');
819 FND_MSG_PUB.add;
820 END IF;
821 RAISE FND_API.G_EXC_ERROR;
822 END IF;
823 END IF;
824
825 ---------------------------
826 -- Claim Line Validation
827 ---------------------------
828 -- raise error when line amount not equal to utilizations associated
829 IF l_line_util_err THEN
830 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
831 FND_MESSAGE.set_name('OZF', 'OZF_SETL_COMP_LINE_UTIL_ERR');
832 FND_MSG_PUB.add;
833 END IF;
834 RAISE FND_API.G_EXC_ERROR;
835 END IF;
836
837 -- raise error if performance complete is required.
838 IF l_offr_perf_flag_err THEN
839 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
840 FND_MESSAGE.set_name('OZF', 'OZF_SETL_COMP_LINE_PERF_ERR');
841 FND_MSG_PUB.add;
842 END IF;
843 RAISE FND_API.G_EXC_ERROR;
844 END IF;
845
846 OPEN csr_sum_line_amt(p_claim_rec.claim_id);
847 FETCH csr_sum_line_amt INTO l_line_sum_curr_amt;
848 CLOSE csr_sum_line_amt;
849
850 -- line amount should be equal to claim_currency_amount
851 -- if curreny code is the same as claim.
852 IF l_line_amount_err THEN
853 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
854 FND_MESSAGE.set_name('OZF', 'OZF_SETL_LINE_AMT_ERR');
855 FND_MSG_PUB.add;
856 END IF;
857 RAISE FND_API.G_EXC_ERROR;
858 END IF;
859
860 -- For payment_method other then credit memo or debit memo without specifying payment_reference,
861 -- sum of line.claim_currency_amount should be equal to amount_remaining in claim.
862 -- sum of line.claim_currency_amount could not be equal to amount_remaining in claim
863 -- in case of 1. CREDIT_MEMO settlement
864 -- 2. DEBIT_MEMO settlement
865 -- 3. CHECK settlement
869 l_line_sum_curr_amt = 0 THEN
866 -- 4. RMA settlement
867 --- R12: Also EFT, WIRE, AP_DEBIT
868 IF l_line_sum_curr_amt IS NULL OR
870 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
871 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_SETL_AMOUNT_ERR');
872 FND_MSG_PUB.add;
873 END IF;
874 RAISE FND_API.G_EXC_ERROR;
875 ELSIF l_line_sum_curr_amt <> p_claim_rec.amount_remaining THEN
876 IF p_claim_rec.payment_method IN ('CREDIT_MEMO',
877 'DEBIT_MEMO',
878 'RMA',
879 'CHECK',
880 'EFT',
881 'WIRE',
882 'AP_DEBIT',
883 'AP_DEFAULT',
884 'ACCOUNTING_ONLY') THEN --R12.1 Enhancement
885 NULL;
886 ELSE
887 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
888 FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_SETL_AMOUNT_ERR');
889 FND_MSG_PUB.add;
890 END IF;
891 RAISE FND_API.G_EXC_ERROR;
892 END IF;
893 END IF;
894
895 ---------------------------
896 -- Fully Promotional Line Check:
897 -- either promotional or non-promontial check
898 ---------------------------
899 OPEN csr_line_prom_distinct_chk(p_claim_rec.claim_id);
900 LOOP
901 FETCH csr_line_prom_distinct_chk INTO l_line_earnings_flag;
902 EXIT WHEN csr_line_prom_distinct_chk%NOTFOUND;
903 IF csr_line_prom_distinct_chk%ROWCOUNT > 1 THEN
904 l_promo_distinct_err := TRUE;
905 EXIT;
906 END IF;
907 END LOOP;
908 CLOSE csr_line_prom_distinct_chk;
909
910 -- raise error if earning associated flag is not distinct.
911 IF l_promo_distinct_err THEN
912 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
913 FND_MESSAGE.set_name('OZF', 'OZF_SETL_COMP_LINE_PROM_ERR');
914 FND_MSG_PUB.add;
915 END IF;
916 RAISE FND_API.G_EXC_ERROR;
917 END IF;
918
919
920 ---------------------------
921 -- Owner Id: Required
922 ---------------------------
923 IF p_claim_rec.owner_id IS NULL THEN
924 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
925 FND_MESSAGE.set_name('OZF', 'OZF_SETL_OWNER_REQ');
926 FND_MSG_PUB.add;
927 END IF;
928 RAISE FND_API.G_EXC_ERROR;
929 END IF;
930
931 ---------------------------
932 -- GL Date: should fall into an open period if entered.
933 ---------------------------
934 IF p_claim_rec.gl_date IS NOT NULL THEN
935 IF p_claim_rec.payment_method IN ( 'CREDIT_MEMO'
936 , 'DEBIT_MEMO'
937 , 'CHARGEBACK'
938 , 'REG_CREDIT_MEMO'
939 , 'ON_ACCT_CREDIT'
940 , 'WRITE_OFF'
941 , 'CONTRA_CHARGE'
942 , 'ACCOUNTING_ONLY' -- R12.1 Enhancement: For validating GL date
943 ) THEN
944 IF NOT gl_date_in_open(
945 p_application_id => 222
946 , p_claim_id => p_claim_rec.claim_id
947 ) THEN
948 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
949 FND_MESSAGE.set_name('OZF', 'OZF_SETL_GLDATE_INVALID');
950 FND_MSG_PUB.add;
951 END IF;
952 RAISE FND_API.G_EXC_ERROR;
953 END IF;
954 ELSIF p_claim_rec.payment_method IN ('CHECK', 'CONTRA_CHARGE','EFT','WIRE','AP_DEBIT','AP_DEFAULT') THEN
955 IF NOT gl_date_in_open(
956 p_application_id => 200
957 , p_claim_id => p_claim_rec.claim_id
958 ) THEN
959 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
960 FND_MESSAGE.set_name('OZF', 'OZF_SETL_GLDATE_INVALID');
961 FND_MSG_PUB.add;
962 END IF;
963 RAISE FND_API.G_EXC_ERROR;
964 END IF;
965 END IF;
966 ELSE
967 IF l_gl_date_type IS NULL THEN
968 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
969 FND_MESSAGE.set_name('OZF', 'OZF_SETL_GLDATE_DRIVE_ERR');
970 FND_MSG_PUB.add;
971 END IF;
972 RAISE FND_API.G_EXC_ERROR;
973 END IF;
974 END IF;
975
976
977 /*------------------------------------------------------------------------------*
978 | AR Validation |
979 *------------------------------------------------------------------------------*/
980 IF p_claim_rec.payment_method IN ( 'CREDIT_MEMO'
981 , 'DEBIT_MEMO'
982 , 'CHARGEBACK'
983 , 'REG_CREDIT_MEMO'
987 , 'PREV_OPEN_DEBIT'
984 , 'ON_ACCT_CREDIT'
985 , 'WRITE_OFF'
986 , 'PREV_OPEN_CREDIT'
988 ) THEN
989
990 OZF_AR_VALIDATION_PVT.Complete_AR_Validation(
991 p_api_version => l_api_version
992 ,p_init_msg_list => FND_API.g_false
993 ,p_commit => FND_API.g_false
994 ,p_validation_level => FND_API.g_valid_level_full
995 ,x_return_status => l_return_status
996 ,x_msg_data => x_msg_data
997 ,x_msg_count => x_msg_count
998 ,p_claim_rec => p_claim_rec
999 );
1000 IF l_return_status = FND_API.g_ret_sts_error THEN
1001 RAISE FND_API.g_exc_error;
1002 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1003 RAISE FND_API.g_exc_unexpected_error;
1004 END IF;
1005
1006 /*------------------------------------------------------------------------------*
1007 | RMA Validation |
1008 *------------------------------------------------------------------------------*/
1009 ELSIF p_claim_rec.payment_method = 'RMA' THEN
1010 OZF_AR_VALIDATION_PVT.Complete_AR_Validation(
1011 p_api_version => l_api_version
1012 ,p_init_msg_list => FND_API.g_false
1013 ,p_commit => FND_API.g_false
1014 ,p_validation_level => FND_API.g_valid_level_full
1015 ,x_return_status => l_return_status
1016 ,x_msg_data => x_msg_data
1017 ,x_msg_count => x_msg_count
1018 ,p_claim_rec => p_claim_rec
1019 );
1020 IF l_return_status = FND_API.g_ret_sts_error THEN
1021 RAISE FND_API.g_exc_error;
1022 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1023 RAISE FND_API.g_exc_unexpected_error;
1024 END IF;
1025
1026 OZF_OM_VALIDATION_PVT.Complete_RMA_Validation(
1027 p_api_version => l_api_version
1028 ,p_init_msg_list => FND_API.g_false
1029 ,p_validation_level => FND_API.g_valid_level_full
1030 ,x_return_status => l_return_status
1031 ,x_msg_data => x_msg_data
1032 ,x_msg_count => x_msg_count
1033 ,p_claim_rec => p_claim_rec
1034 ,x_claim_rec => x_claim_rec
1035 );
1036 IF l_return_status = FND_API.g_ret_sts_error THEN
1037 RAISE FND_API.g_exc_error;
1038 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1039 RAISE FND_API.g_exc_unexpected_error;
1040 END IF;
1041
1042 /*------------------------------------------------------------------------------*
1043 | AP Validation (CHECK,EFT,WIRE,AP_DEBIT,AP_DEFAULT |
1044 *------------------------------------------------------------------------------*/
1045 ELSIF p_claim_rec.payment_method IN ( 'CHECK', 'EFT','WIRE','AP_DEBIT','AP_DEFAULT') THEN
1046 -----------------------------------------------------
1047 -- Payable Source
1048 -----------------------------------------------------
1049 IF l_payables_source IS NULL THEN
1050 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1051 FND_MESSAGE.set_name('OZF', 'OZF_SETL_PAYABLES_SOURCE_NULL');
1052 FND_MSG_PUB.add;
1053 END IF;
1054 RAISE FND_API.G_EXC_ERROR;
1055 END IF;
1056
1057 -----------------------------------------------------
1058 -- Vendor_Id
1059 -----------------------------------------------------
1060 IF p_claim_rec.vendor_id IS NULL THEN
1061 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1062 FND_MESSAGE.set_name('OZF', 'OZF_SETL_VENDOR_REQ');
1063 FND_MESSAGE.set_token('PAY_METHOD', OZF_Utility_Pvt.get_lookup_meaning('OZF_PAYMENT_METHOD', p_claim_rec.payment_method));
1064 FND_MSG_PUB.add;
1065 END IF;
1066 RAISE FND_API.G_EXC_ERROR;
1067 END IF;
1068
1069 -----------------------------------------------------
1070 -- Vendor_Site_Id
1071 -----------------------------------------------------
1072 IF p_claim_rec.vendor_site_id IS NULL THEN
1073 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1074 FND_MESSAGE.set_name('OZF', 'OZF_SETL_VENDOR_SITE_REQ');
1075 FND_MESSAGE.set_token('PAY_METHOD', OZF_Utility_Pvt.get_lookup_meaning('OZF_PAYMENT_METHOD', p_claim_rec.payment_method));
1076 FND_MSG_PUB.add;
1077 END IF;
1078 RAISE FND_API.G_EXC_ERROR;
1079 END IF;
1080
1081 -----------------------------------------------------
1082 -- Vendor Clearing Account
1083 -----------------------------------------------------
1084 -- vendor clearing account must exist in system parameter
1085 IF l_gl_acc_checking = FND_API.g_true THEN
1086 IF l_vendor_in_sys IS NULL THEN
1087 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1088 FND_MESSAGE.set_name('OZF', 'OZF_SETL_VENCLRACC_REQ');
1089 FND_MSG_PUB.add;
1090 END IF;
1091 RAISE FND_API.G_EXC_ERROR;
1095 /*------------------------------------------------------------------------------*
1092 END IF;
1093 END IF;
1094
1096 | CONTRA_CHARGE |
1097 *------------------------------------------------------------------------------*/
1098 ELSIF p_claim_rec.payment_method = 'CONTRA_CHARGE' THEN
1099
1100 -- check vendor_id
1101 IF p_claim_rec.vendor_id IS NULL THEN
1102 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1103 FND_MESSAGE.set_name('OZF', 'OZF_SETL_VENDOR_REQ');
1104 FND_MESSAGE.set_token('PAY_METHOD', OZF_Utility_Pvt.get_lookup_meaning('OZF_PAYMENT_METHOD', p_claim_rec.payment_method));
1105 FND_MSG_PUB.add;
1106 END IF;
1107 RAISE FND_API.G_EXC_ERROR;
1108 END IF;
1109
1110 -- check vendor_site_id
1111 IF p_claim_rec.vendor_site_id IS NULL THEN
1112 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1113 FND_MESSAGE.set_name('OZF', 'OZF_SETL_VENDOR_SITE_REQ');
1114 FND_MESSAGE.set_token('PAY_METHOD', OZF_Utility_Pvt.get_lookup_meaning('OZF_PAYMENT_METHOD', p_claim_rec.payment_method));
1115 FND_MSG_PUB.add;
1116 END IF;
1117 RAISE FND_API.G_EXC_ERROR;
1118 END IF;
1119
1120
1121 /*------------------------------------------------------------------------------*
1122 | NON-SEEDED PAYMENT METHOD |
1123 *------------------------------------------------------------------------------*/
1124 ELSE
1125
1126 -- R12: Validate depending on AR or AP Settlement
1127 NULL;
1128
1129 END IF;
1130
1131 IF OZF_DEBUG_HIGH_ON THEN
1132 OZF_Utility_PVT.debug_message(l_full_name||' : end');
1133 END IF;
1134 EXCEPTION
1135 WHEN FND_API.G_EXC_ERROR THEN
1136 x_return_status := FND_API.G_RET_STS_ERROR;
1137 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1138 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1139 WHEN OTHERS THEN
1140 IF OZF_DEBUG_LOW_ON THEN
1141 FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
1142 FND_MESSAGE.Set_Token('TEXT',l_full_name||' : Error');
1143 FND_MSG_PUB.Add;
1144 END IF;
1145 x_return_status := FND_API.g_ret_sts_unexp_error;
1146
1147 END Complete_Claim_Validation;
1148
1149 /*=======================================================================*
1150 | Procedure
1151 | Complete_Claim
1152 |
1153 | Return
1154 |
1155 | NOTES
1156 |
1157 | HISTORY
1158 | 16-JAN-2003 mchang Create.
1159 *=======================================================================*/
1160 PROCEDURE Complete_Claim(
1161 p_api_version IN NUMBER
1162 ,p_init_msg_list IN VARCHAR2
1163 ,p_validation_level IN NUMBER
1164
1165 ,x_return_status OUT NOCOPY VARCHAR2
1166 ,x_msg_data OUT NOCOPY VARCHAR2
1167 ,x_msg_count OUT NOCOPY NUMBER
1168
1169 ,p_x_claim_rec IN OUT NOCOPY OZF_CLAIM_PVT.claim_rec_type
1170 )
1171 IS
1172 l_api_version CONSTANT NUMBER := 1.0;
1173 l_api_name CONSTANT VARCHAR2(30) := 'Complete_Claim';
1174 l_full_name CONSTANT VARCHAR2(60) := G_PKG_NAME || '.' || l_api_name;
1175 l_return_status VARCHAR2(1) := FND_API.g_ret_sts_success;
1176
1177 BEGIN
1178 IF OZF_DEBUG_HIGH_ON THEN
1179 OZF_Utility_PVT.debug_message(l_full_name||' : start');
1180 END IF;
1181
1182 -- Initialize API return status to sucess
1183 x_return_status := FND_API.g_ret_sts_success;
1184
1185 IF p_x_claim_rec.payment_method = 'RMA' THEN
1186 IF p_x_claim_rec.order_type_id IS NULL THEN
1187 OZF_OM_VALIDATION_PVT.Get_Default_Order_Type(
1188 p_api_version => l_api_version
1189 ,p_init_msg_list => FND_API.g_false
1190 ,p_validation_level => FND_API.g_valid_level_full
1191 ,x_return_status => l_return_status
1192 ,x_msg_data => x_msg_data
1193 ,x_msg_count => x_msg_count
1194 ,p_reason_code_id => p_x_claim_rec.reason_code_id
1195 ,p_claim_type_id => p_x_claim_rec.claim_type_id
1196 ,p_set_of_books_id => p_x_claim_rec.set_of_books_id
1197 ,x_order_type_id => p_x_claim_rec.order_type_id
1198 );
1199 IF l_return_status = FND_API.g_ret_sts_error THEN
1200 RAISE FND_API.g_exc_error;
1201 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1202 RAISE FND_API.g_exc_unexpected_error;
1203 END IF;
1204 END IF;
1205 ELSE
1206 -- erase RMA transaction type if not for RMA settlement.
1207 p_x_claim_rec.order_type_id := NULL;
1208 END IF;
1209
1210 IF p_x_claim_rec.payment_method NOT IN ('PREV_OPEN_CREDIT', 'PREV_OPEN_DEBIT', 'CHECK', 'RMA','EFT',
1211 'AP_DEFAULT','WIRE','AP_DEBIT') THEN
1212 p_x_claim_rec.payment_reference_id := NULL;
1213 p_x_claim_rec.payment_reference_number := NULL;
1214 END IF;
1215
1216 IF OZF_DEBUG_HIGH_ON THEN
1217 OZF_Utility_PVT.debug_message(l_full_name||' : end');
1218 END IF;
1219
1220 EXCEPTION
1221 WHEN FND_API.G_EXC_ERROR THEN
1222 x_return_status := FND_API.G_RET_STS_ERROR;
1223 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1224 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1225 WHEN OTHERS THEN
1226 IF OZF_DEBUG_LOW_ON THEN
1227 FND_MESSAGE.Set_Name('OZF','OZF_API_DEBUG_MESSAGE');
1228 FND_MESSAGE.Set_Token('TEXT',l_full_name||' : Error');
1229 FND_MSG_PUB.Add;
1230 END IF;
1231 x_return_status := FND_API.g_ret_sts_unexp_error;
1232
1233 END Complete_Claim;
1234
1235
1236 END OZF_CLAIM_SETTLEMENT_VAL_PVT;