14: p_return_status OUT NOCOPY VARCHAR2) IS
15: BEGIN
16: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_deposit_Date()+');
17:
18: p_return_status := FND_API.G_RET_STS_SUCCESS;
19:
20: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_deposit_Date()-');
21: END Validate_deposit_Date;
22:
25: l_dummy NUMBER :=NULL;
26: BEGIN
27: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_batch_source()+');
28:
29: p_return_status := FND_API.G_RET_STS_SUCCESS;
30: if ar_deposit_lib_pvt.pg_profile_batch_source is null and
31: p_batch_source_id is null
32: then
33: FND_MESSAGE.set_name( 'AR', 'AR_DAPI_NO_BATCH' );
31: p_batch_source_id is null
32: then
33: FND_MESSAGE.set_name( 'AR', 'AR_DAPI_NO_BATCH' );
34: FND_MSG_PUB.Add;
35: p_return_status := FND_API.G_RET_STS_ERROR;
36: end if;
37:
38:
39: BEGIN
48: arp_util.debug('EXCEPTION: no_data_found
49: Validate_batch_source() ');
50: FND_MESSAGE.set_name( 'AR', 'AR_DAPI_COMM_BATCH_INVALID' );
51: FND_MSG_PUB.Add;
52: p_return_status := FND_API.G_RET_STS_ERROR;
53:
54:
55: WHEN others THEN
56: arp_util.debug('EXCEPTION:others Validate_batch_source() ');
53:
54:
55: WHEN others THEN
56: arp_util.debug('EXCEPTION:others Validate_batch_source() ');
57: p_return_status := FND_API.G_RET_STS_ERROR;
58: RAISE;
59:
60: END;
61:
66: PROCEDURE Validate_Gl_Date(p_gl_date IN DATE,
67: p_return_status OUT NOCOPY VARCHAR2) IS
68: BEGIN
69: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_Gl_Date ()+');
70: p_return_status := FND_API.G_RET_STS_SUCCESS;
71:
72: IF ( NOT arp_util.is_gl_date_valid( p_gl_date )) THEN
73: FND_MESSAGE.set_name( 'AR', 'AR_INVALID_APP_GL_DATE' );
74: FND_MESSAGE.set_token( 'GL_DATE', TO_CHAR( p_gl_date ));
72: IF ( NOT arp_util.is_gl_date_valid( p_gl_date )) THEN
73: FND_MESSAGE.set_name( 'AR', 'AR_INVALID_APP_GL_DATE' );
74: FND_MESSAGE.set_token( 'GL_DATE', TO_CHAR( p_gl_date ));
75: FND_MSG_PUB.Add;
76: p_return_status := FND_API.G_RET_STS_ERROR;
77: END IF;
78: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_Gl_Date ()+');
79: END Validate_Gl_Date;
80:
82: PROCEDURE Validate_amount(p_amount IN NUMBER,
83: p_return_status OUT NOCOPY VARCHAR2) IS
84: BEGIN
85: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_amount () +');
86: p_return_status := FND_API.G_RET_STS_SUCCESS;
87:
88: --Raise error if the deposit amount is null or negative
89: IF p_amount IS NULL THEN
90: p_return_status := FND_API.G_RET_STS_ERROR;
86: p_return_status := FND_API.G_RET_STS_SUCCESS;
87:
88: --Raise error if the deposit amount is null or negative
89: IF p_amount IS NULL THEN
90: p_return_status := FND_API.G_RET_STS_ERROR;
91: FND_MESSAGE.SET_NAME('AR','AR_DAPI_COMM_AMOUNT_NULL');
92: FND_MSG_PUB.Add;
93:
94: ElSIF (p_amount < 0)
92: FND_MSG_PUB.Add;
93:
94: ElSIF (p_amount < 0)
95: THEN
96: p_return_status := FND_API.G_RET_STS_ERROR;
97: FND_MESSAGE.SET_NAME('AR','AR_TW_COMMIT_AMOUNT_NEGATIVE');
98: FND_MSG_PUB.Add;
99:
100: END IF;
113: l_conversion_rate NUMBER;
114: l_exchange_rate_valid varchar2(2);
115: BEGIN
116: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_Exchange_Rate () +');
117: p_return_status := FND_API.G_RET_STS_SUCCESS;
118:
119: IF p_currency_code <> arp_global.functional_currency THEN
120:
121: IF p_exchange_rate_type IS NULL THEN
120:
121: IF p_exchange_rate_type IS NULL THEN
122:
123: -- raise exception
124: p_return_status := FND_API.G_RET_STS_ERROR;
125: FND_MESSAGE.SET_NAME('AR','AR_RAPI_X_RATE_TYPE_NULL');
126: FND_MSG_PUB.Add;
127: Return;
128:
135: FROM gl_daily_conversion_types
136: WHERE conversion_type = p_exchange_rate_type;
137: EXCEPTION
138: WHEN no_data_found THEN
139: p_return_status := FND_API.G_RET_STS_ERROR;
140: FND_MESSAGE.SET_NAME('AR','AR_RAPI_X_RATE_TYPE_INVALID');
141: FND_MSG_PUB.Add;
142: Return;
143: END;
146:
147: IF p_exchange_rate IS NULL THEN
148: --*** raise error message, because for rate_type 'User'
149: --*** the rate should be specified.
150: p_return_status := FND_API.G_RET_STS_ERROR;
151: FND_MESSAGE.SET_NAME('AR','AR_RAPI_X_RATE_NULL');
152: FND_MSG_PUB.Add;
153: ELSIF p_exchange_rate = 0 THEN
154: p_return_status := FND_API.G_RET_STS_ERROR ;
150: p_return_status := FND_API.G_RET_STS_ERROR;
151: FND_MESSAGE.SET_NAME('AR','AR_RAPI_X_RATE_NULL');
152: FND_MSG_PUB.Add;
153: ELSIF p_exchange_rate = 0 THEN
154: p_return_status := FND_API.G_RET_STS_ERROR ;
155: FND_MESSAGE.SET_NAME('AR','AR_EXCHANGE_RATE_ZERO');
156: FND_MSG_PUB.Add;
157: ELSIF p_exchange_rate < 0 THEN
158: p_return_status := FND_API.G_RET_STS_ERROR ;
154: p_return_status := FND_API.G_RET_STS_ERROR ;
155: FND_MESSAGE.SET_NAME('AR','AR_EXCHANGE_RATE_ZERO');
156: FND_MSG_PUB.Add;
157: ELSIF p_exchange_rate < 0 THEN
158: p_return_status := FND_API.G_RET_STS_ERROR ;
159: FND_MESSAGE.SET_NAME('AR','AR_EXCHANGE_RATE_NEGATIVE');
160: FND_MSG_PUB.Add;
161: END IF;
162:
166: --This could happen only in case if the defaulting routines
167: --could not get the exchange_rate
168: --raise an error message in that case
169:
170: p_return_status := FND_API.G_RET_STS_ERROR;
171: FND_MESSAGE.SET_NAME('AR','AR_NO_RATE_DATA_FOUND');
172: FND_MSG_PUB.Add;
173: END IF;
174:
179: --the functional and the entered currency are same
180: --so there should be no exchange_rate information
181:
182: IF (p_exchange_rate IS NOT NULL) THEN
183: p_return_status := FND_API.G_RET_STS_ERROR ;
184: FND_MESSAGE.SET_NAME('AR','AR_RAPI_X_RATE_INVALID');
185: FND_MSG_PUB.Add;
186: END IF;
187: IF (p_exchange_rate_type IS NOT NULL) THEN
184: FND_MESSAGE.SET_NAME('AR','AR_RAPI_X_RATE_INVALID');
185: FND_MSG_PUB.Add;
186: END IF;
187: IF (p_exchange_rate_type IS NOT NULL) THEN
188: p_return_status := FND_API.G_RET_STS_ERROR ;
189: FND_MESSAGE.SET_NAME('AR','AR_RAPI_X_RATE_TYPE_INVALID');
190: FND_MSG_PUB.Add;
191: END IF;
192: IF (p_exchange_rate_date IS NOT NULL) THEN
189: FND_MESSAGE.SET_NAME('AR','AR_RAPI_X_RATE_TYPE_INVALID');
190: FND_MSG_PUB.Add;
191: END IF;
192: IF (p_exchange_rate_date IS NOT NULL) THEN
193: p_return_status := FND_API.G_RET_STS_ERROR ;
194: FND_MESSAGE.SET_NAME('AR','AR_RAPI_X_RATE_DATE_INVALID');
195: FND_MSG_PUB.Add;
196: END IF;
197: END IF;
234: p_exchange_rate IN ra_customer_trx.exchange_rate%TYPE,
235: p_exchange_rate_date IN ar_cash_receipts.exchange_date%TYPE,
236: p_return_status OUT NOCOPY VARCHAR2) IS
237: BEGIN
238: p_return_status := FND_API.G_RET_STS_SUCCESS;
239: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_Currency () +');
240: IF (Is_currency_valid(p_currency_code) = 'Y') THEN
241:
242: IF ((arp_global.functional_currency <> p_currency_code) OR
251: p_return_status);
252: END IF;
253: ELSE
254: --the entered currency is invalid
255: p_return_status := FND_API.G_RET_STS_ERROR;
256: FND_MESSAGE.SET_NAME('AR','AR_RAPI_CURR_CODE_INVALID');
257: FND_MSG_PUB.Add;
258: END IF;
259: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_Currency () -');
359:
360: BEGIN
361: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_Deposit () +');
362:
363: p_return_status := FND_API.G_RET_STS_SUCCESS;
364: l_deposit_date_return_status := FND_API.G_RET_STS_SUCCESS;
365: l_gl_date_return_status := FND_API.G_RET_STS_SUCCESS;
366: l_batch_return_status := FND_API.G_RET_STS_SUCCESS;
367: l_amount_return_status := FND_API.G_RET_STS_SUCCESS;
360: BEGIN
361: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_Deposit () +');
362:
363: p_return_status := FND_API.G_RET_STS_SUCCESS;
364: l_deposit_date_return_status := FND_API.G_RET_STS_SUCCESS;
365: l_gl_date_return_status := FND_API.G_RET_STS_SUCCESS;
366: l_batch_return_status := FND_API.G_RET_STS_SUCCESS;
367: l_amount_return_status := FND_API.G_RET_STS_SUCCESS;
368: l_currency_return_status := FND_API.G_RET_STS_SUCCESS;
361: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_Deposit () +');
362:
363: p_return_status := FND_API.G_RET_STS_SUCCESS;
364: l_deposit_date_return_status := FND_API.G_RET_STS_SUCCESS;
365: l_gl_date_return_status := FND_API.G_RET_STS_SUCCESS;
366: l_batch_return_status := FND_API.G_RET_STS_SUCCESS;
367: l_amount_return_status := FND_API.G_RET_STS_SUCCESS;
368: l_currency_return_status := FND_API.G_RET_STS_SUCCESS;
369: l_doc_seq_return_status := FND_API.G_RET_STS_SUCCESS;
362:
363: p_return_status := FND_API.G_RET_STS_SUCCESS;
364: l_deposit_date_return_status := FND_API.G_RET_STS_SUCCESS;
365: l_gl_date_return_status := FND_API.G_RET_STS_SUCCESS;
366: l_batch_return_status := FND_API.G_RET_STS_SUCCESS;
367: l_amount_return_status := FND_API.G_RET_STS_SUCCESS;
368: l_currency_return_status := FND_API.G_RET_STS_SUCCESS;
369: l_doc_seq_return_status := FND_API.G_RET_STS_SUCCESS;
370: l_po_return_status := FND_API.G_RET_STS_SUCCESS;
363: p_return_status := FND_API.G_RET_STS_SUCCESS;
364: l_deposit_date_return_status := FND_API.G_RET_STS_SUCCESS;
365: l_gl_date_return_status := FND_API.G_RET_STS_SUCCESS;
366: l_batch_return_status := FND_API.G_RET_STS_SUCCESS;
367: l_amount_return_status := FND_API.G_RET_STS_SUCCESS;
368: l_currency_return_status := FND_API.G_RET_STS_SUCCESS;
369: l_doc_seq_return_status := FND_API.G_RET_STS_SUCCESS;
370: l_po_return_status := FND_API.G_RET_STS_SUCCESS;
371: l_status_trx_return_status := FND_API.G_RET_STS_SUCCESS;
364: l_deposit_date_return_status := FND_API.G_RET_STS_SUCCESS;
365: l_gl_date_return_status := FND_API.G_RET_STS_SUCCESS;
366: l_batch_return_status := FND_API.G_RET_STS_SUCCESS;
367: l_amount_return_status := FND_API.G_RET_STS_SUCCESS;
368: l_currency_return_status := FND_API.G_RET_STS_SUCCESS;
369: l_doc_seq_return_status := FND_API.G_RET_STS_SUCCESS;
370: l_po_return_status := FND_API.G_RET_STS_SUCCESS;
371: l_status_trx_return_status := FND_API.G_RET_STS_SUCCESS;
372: l_fc_return_status := FND_API.G_RET_STS_SUCCESS;
365: l_gl_date_return_status := FND_API.G_RET_STS_SUCCESS;
366: l_batch_return_status := FND_API.G_RET_STS_SUCCESS;
367: l_amount_return_status := FND_API.G_RET_STS_SUCCESS;
368: l_currency_return_status := FND_API.G_RET_STS_SUCCESS;
369: l_doc_seq_return_status := FND_API.G_RET_STS_SUCCESS;
370: l_po_return_status := FND_API.G_RET_STS_SUCCESS;
371: l_status_trx_return_status := FND_API.G_RET_STS_SUCCESS;
372: l_fc_return_status := FND_API.G_RET_STS_SUCCESS;
373:
366: l_batch_return_status := FND_API.G_RET_STS_SUCCESS;
367: l_amount_return_status := FND_API.G_RET_STS_SUCCESS;
368: l_currency_return_status := FND_API.G_RET_STS_SUCCESS;
369: l_doc_seq_return_status := FND_API.G_RET_STS_SUCCESS;
370: l_po_return_status := FND_API.G_RET_STS_SUCCESS;
371: l_status_trx_return_status := FND_API.G_RET_STS_SUCCESS;
372: l_fc_return_status := FND_API.G_RET_STS_SUCCESS;
373:
374:
367: l_amount_return_status := FND_API.G_RET_STS_SUCCESS;
368: l_currency_return_status := FND_API.G_RET_STS_SUCCESS;
369: l_doc_seq_return_status := FND_API.G_RET_STS_SUCCESS;
370: l_po_return_status := FND_API.G_RET_STS_SUCCESS;
371: l_status_trx_return_status := FND_API.G_RET_STS_SUCCESS;
372: l_fc_return_status := FND_API.G_RET_STS_SUCCESS;
373:
374:
375:
368: l_currency_return_status := FND_API.G_RET_STS_SUCCESS;
369: l_doc_seq_return_status := FND_API.G_RET_STS_SUCCESS;
370: l_po_return_status := FND_API.G_RET_STS_SUCCESS;
371: l_status_trx_return_status := FND_API.G_RET_STS_SUCCESS;
372: l_fc_return_status := FND_API.G_RET_STS_SUCCESS;
373:
374:
375:
376: --validate batch source
393:
394: IF(NVL(ar_deposit_lib_pvt.pg_profile_doc_seq, 'N') = 'N' ) AND
395: p_doc_sequence_value IS NOT NULL
396: THEN
397: l_doc_seq_return_status := FND_API.G_RET_STS_ERROR ;
398: FND_MESSAGE.SET_NAME('AR','AR_RAPI_DOC_SEQ_VAL_INVALID');
399: FND_MSG_PUB.Add;
400: END IF;
401:
422:
423: IF p_printing_option not in ('PRI','NOT') and
424: p_printing_option is not null
425: THEN
426: l_po_return_status := FND_API.G_RET_STS_ERROR ;
427: FND_MESSAGE.SET_NAME('AR','AR_DAPI_PO_INVALID');
428: FND_MSG_PUB.Add;
429:
430: END IF;
431:
432: IF p_financial_charges not in ('Y','N') and
433: p_financial_charges is not null
434: THEN
435: l_fc_return_status := FND_API.G_RET_STS_ERROR ;
436: FND_MESSAGE.SET_NAME('AR','AR_DAPI_FC_INVALID');
437: FND_MSG_PUB.Add;
438:
439: END IF;
448: END IF;
449:
450: END LOOP;
451: IF c_status_result = 'N' THEN
452: l_status_trx_return_status := FND_API.G_RET_STS_ERROR ;
453: FND_MESSAGE.SET_NAME('AR','AR_DAPI_STATUS_TRX_INVALID');
454: FND_MSG_PUB.Add;
455:
456: END IF;
465:
466: END LOOP;
467:
468: IF c_tax_flag_result = 'N' THEN
469: l_tax_flag_return_status := FND_API.G_RET_STS_ERROR ;
470: FND_MESSAGE.SET_NAME('AR','AR_DAPI_TAX_FLAG_INVALID');
471: FND_MSG_PUB.Add;
472:
473: END IF;
472:
473: END IF;
474:
475:
476: IF (l_gl_date_return_status = FND_API.G_RET_STS_ERROR) OR
477: (l_deposit_date_return_status = FND_API.G_RET_STS_ERROR) OR
478: (l_amount_return_status = FND_API.G_RET_STS_ERROR) OR
479: (l_currency_return_status = FND_API.G_RET_STS_ERROR) OR
480: (l_doc_seq_return_status = FND_API.G_RET_STS_ERROR) OR
473: END IF;
474:
475:
476: IF (l_gl_date_return_status = FND_API.G_RET_STS_ERROR) OR
477: (l_deposit_date_return_status = FND_API.G_RET_STS_ERROR) OR
478: (l_amount_return_status = FND_API.G_RET_STS_ERROR) OR
479: (l_currency_return_status = FND_API.G_RET_STS_ERROR) OR
480: (l_doc_seq_return_status = FND_API.G_RET_STS_ERROR) OR
481: (l_batch_return_status = FND_API.G_RET_STS_ERROR) OR
474:
475:
476: IF (l_gl_date_return_status = FND_API.G_RET_STS_ERROR) OR
477: (l_deposit_date_return_status = FND_API.G_RET_STS_ERROR) OR
478: (l_amount_return_status = FND_API.G_RET_STS_ERROR) OR
479: (l_currency_return_status = FND_API.G_RET_STS_ERROR) OR
480: (l_doc_seq_return_status = FND_API.G_RET_STS_ERROR) OR
481: (l_batch_return_status = FND_API.G_RET_STS_ERROR) OR
482: (l_status_trx_return_status = FND_API.G_RET_STS_ERROR) OR
475:
476: IF (l_gl_date_return_status = FND_API.G_RET_STS_ERROR) OR
477: (l_deposit_date_return_status = FND_API.G_RET_STS_ERROR) OR
478: (l_amount_return_status = FND_API.G_RET_STS_ERROR) OR
479: (l_currency_return_status = FND_API.G_RET_STS_ERROR) OR
480: (l_doc_seq_return_status = FND_API.G_RET_STS_ERROR) OR
481: (l_batch_return_status = FND_API.G_RET_STS_ERROR) OR
482: (l_status_trx_return_status = FND_API.G_RET_STS_ERROR) OR
483: (l_po_return_status = FND_API.G_RET_STS_ERROR) OR
476: IF (l_gl_date_return_status = FND_API.G_RET_STS_ERROR) OR
477: (l_deposit_date_return_status = FND_API.G_RET_STS_ERROR) OR
478: (l_amount_return_status = FND_API.G_RET_STS_ERROR) OR
479: (l_currency_return_status = FND_API.G_RET_STS_ERROR) OR
480: (l_doc_seq_return_status = FND_API.G_RET_STS_ERROR) OR
481: (l_batch_return_status = FND_API.G_RET_STS_ERROR) OR
482: (l_status_trx_return_status = FND_API.G_RET_STS_ERROR) OR
483: (l_po_return_status = FND_API.G_RET_STS_ERROR) OR
484: (l_tax_flag_return_status = FND_API.G_RET_STS_ERROR) OR
477: (l_deposit_date_return_status = FND_API.G_RET_STS_ERROR) OR
478: (l_amount_return_status = FND_API.G_RET_STS_ERROR) OR
479: (l_currency_return_status = FND_API.G_RET_STS_ERROR) OR
480: (l_doc_seq_return_status = FND_API.G_RET_STS_ERROR) OR
481: (l_batch_return_status = FND_API.G_RET_STS_ERROR) OR
482: (l_status_trx_return_status = FND_API.G_RET_STS_ERROR) OR
483: (l_po_return_status = FND_API.G_RET_STS_ERROR) OR
484: (l_tax_flag_return_status = FND_API.G_RET_STS_ERROR) OR
485: (l_fc_return_status = FND_API.G_RET_STS_ERROR)
478: (l_amount_return_status = FND_API.G_RET_STS_ERROR) OR
479: (l_currency_return_status = FND_API.G_RET_STS_ERROR) OR
480: (l_doc_seq_return_status = FND_API.G_RET_STS_ERROR) OR
481: (l_batch_return_status = FND_API.G_RET_STS_ERROR) OR
482: (l_status_trx_return_status = FND_API.G_RET_STS_ERROR) OR
483: (l_po_return_status = FND_API.G_RET_STS_ERROR) OR
484: (l_tax_flag_return_status = FND_API.G_RET_STS_ERROR) OR
485: (l_fc_return_status = FND_API.G_RET_STS_ERROR)
486: THEN
479: (l_currency_return_status = FND_API.G_RET_STS_ERROR) OR
480: (l_doc_seq_return_status = FND_API.G_RET_STS_ERROR) OR
481: (l_batch_return_status = FND_API.G_RET_STS_ERROR) OR
482: (l_status_trx_return_status = FND_API.G_RET_STS_ERROR) OR
483: (l_po_return_status = FND_API.G_RET_STS_ERROR) OR
484: (l_tax_flag_return_status = FND_API.G_RET_STS_ERROR) OR
485: (l_fc_return_status = FND_API.G_RET_STS_ERROR)
486: THEN
487: p_return_status := FND_API.G_RET_STS_ERROR;
480: (l_doc_seq_return_status = FND_API.G_RET_STS_ERROR) OR
481: (l_batch_return_status = FND_API.G_RET_STS_ERROR) OR
482: (l_status_trx_return_status = FND_API.G_RET_STS_ERROR) OR
483: (l_po_return_status = FND_API.G_RET_STS_ERROR) OR
484: (l_tax_flag_return_status = FND_API.G_RET_STS_ERROR) OR
485: (l_fc_return_status = FND_API.G_RET_STS_ERROR)
486: THEN
487: p_return_status := FND_API.G_RET_STS_ERROR;
488: END IF;
481: (l_batch_return_status = FND_API.G_RET_STS_ERROR) OR
482: (l_status_trx_return_status = FND_API.G_RET_STS_ERROR) OR
483: (l_po_return_status = FND_API.G_RET_STS_ERROR) OR
484: (l_tax_flag_return_status = FND_API.G_RET_STS_ERROR) OR
485: (l_fc_return_status = FND_API.G_RET_STS_ERROR)
486: THEN
487: p_return_status := FND_API.G_RET_STS_ERROR;
488: END IF;
489: arp_util.debug('Validate_Cash_Receipt Return status :'||p_return_status);
483: (l_po_return_status = FND_API.G_RET_STS_ERROR) OR
484: (l_tax_flag_return_status = FND_API.G_RET_STS_ERROR) OR
485: (l_fc_return_status = FND_API.G_RET_STS_ERROR)
486: THEN
487: p_return_status := FND_API.G_RET_STS_ERROR;
488: END IF;
489: arp_util.debug('Validate_Cash_Receipt Return status :'||p_return_status);
490: arp_util.debug('AR_DEPOSIT_VAL_PVT.Validate_Deposit () -');
491: EXCEPTION