[Home] [Help]
PACKAGE BODY: APPS.AR_BILLS_CREATION_VAL_PVT
Source
1 Package Body AR_BILLS_CREATION_VAL_PVT AS
2 /* $Header: ARBRCRVB.pls 120.7 2005/12/05 20:03:55 sgnagara ship $ */
3
4
5
6 /* =======================================================================
7 | Bills Receivable status constants
8 * ======================================================================*/
9
10 C_INCOMPLETE CONSTANT VARCHAR2(30) := 'INCOMPLETE';
11 C_UNPAID CONSTANT VARCHAR2(30) := 'UNPAID';
12 C_FACTORED CONSTANT VARCHAR2(30) := 'FACTORED';
13 C_REMITTED CONSTANT VARCHAR2(30) := 'REMITTED';
14
15
16 /*==============================================================================+
17 | PROCEDURE |
18 | Validate_GL_Date |
19 | |
20 | DESCRIPTION |
21 | Validates that the GL Date is in an open or future period |
22 | |
23 +==============================================================================*/
24
25 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
26
27 PROCEDURE Validate_Gl_Date (p_gl_date IN DATE) IS
28
29 BEGIN
30
31 IF PG_DEBUG in ('Y', 'C') THEN
32 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Gl_Date ()+');
33 END IF;
34
35 IF (p_gl_date IS NOT NULL)
36 THEN
37 IF ( NOT arp_util.is_gl_date_valid( p_gl_date ))
38 THEN
39 IF PG_DEBUG in ('Y', 'C') THEN
40 arp_util.debug('Validate_Gl_Date: ' || '>>>>>>>>>> Invalid GL Date');
41 END IF;
42 FND_MESSAGE.set_name ( 'AR', 'AR_INVALID_APP_GL_DATE' );
43 FND_MESSAGE.set_token ( 'GL_DATE', TO_CHAR( p_gl_date ));
44 app_exception.raise_exception;
45 END IF;
46 END IF;
47
48 IF PG_DEBUG in ('Y', 'C') THEN
49 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Gl_Date ()-');
50 END IF;
51
52 EXCEPTION
53 WHEN OTHERS THEN
54 IF PG_DEBUG in ('Y', 'C') THEN
55 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_GL_Date() ');
56 arp_util.debug('Validate_Gl_Date: ' || 'p_gl_date = ' || p_gl_date);
57 END IF;
58 RAISE;
59
60 END Validate_Gl_Date;
61
62
63
64
65 /*==============================================================================+
66 | PROCEDURE |
67 | Validate_Update_Maturity_Date |
68 | |
69 | DESCRIPTION |
70 | Validates that Maturity Date can be updated |
71 | |
72 +==============================================================================*/
73
74 PROCEDURE Validate_Update_Maturity_Date (p_customer_trx_id IN ra_customer_trx.customer_trx_id%TYPE,
75 p_term_due_date IN DATE )
76 IS
77
78 l_trx_rec ra_customer_trx%ROWTYPE;
79 l_ps_rec ar_payment_schedules%ROWTYPE;
80 l_trh_rec ar_transaction_history%ROWTYPE;
81
82 BEGIN
83
84 IF PG_DEBUG in ('Y', 'C') THEN
85 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Update_Maturity_Date ()+');
86 END IF;
87
88
89 /*----------------------------------------------+
90 | Fetch the BR History Information : |
91 | Current Status |
92 +-----------------------------------------------*/
93
94 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
95 l_trh_rec.customer_trx_id := p_customer_trx_id;
96 ARP_TRANSACTION_HISTORY_PKG.fetch_f_trx_id (l_trh_rec);
97
98
99 IF l_trh_rec.status in (C_FACTORED, C_REMITTED)
100 THEN
101 IF AR_BILLS_MAINTAIN_STATUS_PUB.Is_BR_Matured (l_trx_rec.term_due_date)
102 THEN
103 IF PG_DEBUG in ('Y', 'C') THEN
104 arp_util.debug('Validate_Update_Maturity_Date: ' || '>>>>>>>>>> Current Maturity Date has passed, it cannot be updated');
105 arp_util.debug('Validate_Update_Maturity_Date: ' || 'Maturity Date parameter : ' || p_term_due_date);
106 arp_util.debug('Validate_Update_Maturity_Date: ' || 'Maturity Date of the BR : ' || l_trx_rec.term_due_date);
107 END IF;
108 FND_MESSAGE.set_name( 'AR','AR_BR_CANNOT_UPDATE_MAT_DATE');
109 app_exception.raise_exception;
110 END IF;
111
112 IF trunc(p_term_due_date) <= trunc(SYSDATE)
113 THEN
114 IF PG_DEBUG in ('Y', 'C') THEN
115 arp_util.debug('Validate_Update_Maturity_Date: ' || '>>>>>>>>>> The new Maturity Date must be later that sysdate');
116 arp_util.debug('Validate_Update_Maturity_Date: ' || 'Maturity Date parameter : ' || p_term_due_date);
117 END IF;
118 FND_MESSAGE.set_name ( 'AR', 'AR_BR_INVALID_TRX_DATE' );
119 FND_MESSAGE.set_token ( 'ACTION', NULL);
120 FND_MESSAGE.set_token ( 'NEW_TRX_DATE', p_term_due_date);
121 FND_MESSAGE.set_token ( 'OLD_TRX_DATE', trunc(sysdate));
122 app_exception.raise_exception;
123 END IF;
124
125 END IF;
126
127 IF PG_DEBUG in ('Y', 'C') THEN
128 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Update_Maturity_Date ()-');
129 END IF;
130
131 EXCEPTION
132 WHEN OTHERS THEN
133 IF PG_DEBUG in ('Y', 'C') THEN
134 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Update_Maturity_Date() ');
135 arp_util.debug('Validate_Update_Maturity_Date: ' || 'p_customer_trx_id = ' || p_customer_trx_id);
136 arp_util.debug('Validate_Update_Maturity_Date: ' || 'p_term_due_date = ' || p_term_due_date);
137 END IF;
138 RAISE;
139
140 END Validate_Update_Maturity_Date;
141
142
143
144 /*==============================================================================+
145 | PROCEDURE |
146 | Validate_Batch_Source |
147 | |
148 | DESCRIPTION |
149 | Validates that : |
150 | - The Batch Source exists |
151 | - The status is Active |
152 | - It is valid at the Issue Date |
153 | |
154 +=============================================================================*/
155
156 PROCEDURE Validate_Batch_Source (p_batch_source_id IN NUMBER ,
157 p_issue_date IN DATE ) IS
158
159 l_start_date DATE;
160 l_end_date DATE;
161 l_status VARCHAR2(1);
162
163 BEGIN
164 IF PG_DEBUG in ('Y', 'C') THEN
165 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Batch_Source()+');
166 END IF;
167
168 SELECT start_date, end_date, status
169 INTO l_start_date, l_end_date, l_status
170 FROM RA_BATCH_SOURCES bs
171 WHERE bs.batch_source_id = p_batch_source_id;
172
173 /*----------------------------------------------+
174 | Check the status of the batch source |
175 +-----------------------------------------------*/
176
177 IF (l_status <> 'A')
178 THEN
179 IF PG_DEBUG in ('Y', 'C') THEN
180 arp_util.debug ('Validate_Batch_Source: ' || '>>>>>>>>>> The Batch Source is inactive');
181 arp_util.debug ('Validate_Batch_Source: ' || 'p_batch_source_id = ' || p_batch_source_id);
182 arp_util.debug ('Validate_Batch_Source: ' || 'p_issue_date = ' || p_issue_date);
183 arp_util.debug ('Validate_Batch_Source: ' || 'status = ' || l_status);
184 END IF;
185 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INACTIVE_BATCH_SOURCE');
186 app_exception.raise_exception;
187 END IF;
188
189
190 /*----------------------------------------------+
191 | Check the batch source is valid at the issue |
192 | date |
193 +-----------------------------------------------*/
194
195 IF (p_issue_date NOT BETWEEN nvl (l_start_date, p_issue_date)
196 AND nvl (l_end_date , p_issue_date))
197 THEN
198 IF PG_DEBUG in ('Y', 'C') THEN
199 arp_util.debug ('Validate_Batch_Source: ' || '>>>>>>>>>> The Batch Source is not valid at the Issue Date');
200 arp_util.debug('Validate_Batch_Source: ' || 'p_batch_source_id = ' || p_batch_source_id);
201 arp_util.debug('Validate_Batch_Source: ' || 'p_issue_date = ' || p_issue_date);
202 arp_util.debug('Validate_Batch_Source: ' || 'start_date = ' || l_start_date);
203 arp_util.debug('Validate_Batch_Source: ' || 'end_date = ' || l_end_date);
204 END IF;
205 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_BAD_DATE_SOURCE');
206 app_exception.raise_exception;
207 END IF;
208
209
210 IF PG_DEBUG in ('Y', 'C') THEN
211 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Batch_Source()-');
212 END IF;
213
214 EXCEPTION
215 WHEN NO_DATA_FOUND THEN
216 IF PG_DEBUG in ('Y', 'C') THEN
217 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Batch_Source() ');
218 arp_util.debug('Validate_Batch_Source: ' || '>>>>>>>>>> Invalid Batch Source');
219 arp_util.debug('Validate_Batch_Source: ' || ' p_batch_source_id = ' || p_batch_source_id);
220 arp_util.debug('Validate_Batch_Source: ' || ' p_issue_date = ' || p_issue_date);
221 END IF;
222 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_BATCH_SOURCE');
223 app_exception.raise_exception;
224
225 WHEN OTHERS THEN
226 IF PG_DEBUG in ('Y', 'C') THEN
227 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Batch_Source() ');
228 arp_util.debug('Validate_Batch_Source: ' || ' p_batch_source_id = ' || p_batch_source_id);
229 arp_util.debug('Validate_Batch_Source: ' || ' p_issue_date = ' || p_issue_date);
230 END IF;
231 RAISE;
232
233 END Validate_Batch_Source;
234
235
236
237
238 /*==============================================================================+
239 | PROCEDURE |
240 | Validate_Transaction_Type |
241 | |
242 | DESCRIPTION |
243 | Validates the Transaction Type Identifier, the status and the Type (BR) |
244 | |
245 +=============================================================================*/
246
247 PROCEDURE Validate_Transaction_Type (p_cust_trx_type_id IN NUMBER ,
248 p_issue_date IN DATE )
249 IS
250
251 l_start_date DATE;
252 l_end_date DATE;
253 l_status VARCHAR2(1);
254
255
256 BEGIN
257
258 IF PG_DEBUG in ('Y', 'C') THEN
259 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Transaction_Type()+');
260 END IF;
261
262 SELECT status, start_date, end_date
263 INTO l_status, l_start_date, l_end_date
264 FROM RA_CUST_TRX_TYPES
265 WHERE cust_trx_type_id = p_cust_trx_type_id
266 AND TYPE = 'BR';
267
268
269 /*----------------------------------------------+
270 | Check the status of the transaction type |
271 +-----------------------------------------------*/
272
273 IF (l_status <> 'A')
274 THEN
275 IF PG_DEBUG in ('Y', 'C') THEN
276 arp_util.debug ('Validate_Transaction_Type: ' || '>>>>>>>>>> The Transaction Type is inactive');
277 arp_util.debug ('Validate_Transaction_Type: ' || 'p_cust_trx_type_id = ' || p_cust_trx_type_id);
278 arp_util.debug ('Validate_Transaction_Type: ' || 'p_issue_date = ' || p_issue_date);
279 arp_util.debug ('Validate_Transaction_Type: ' || 'status = ' || l_status);
280 END IF;
281 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INACTIVE_TRX_TYPE');
282 app_exception.raise_exception;
283 END IF;
284
285
286 /*----------------------------------------------+
287 | Check the transaction type is valid at the |
288 | Issue Date |
289 +-----------------------------------------------*/
290
291 IF (p_issue_date NOT BETWEEN l_start_date
292 AND nvl (l_end_date , p_issue_date))
293 THEN
294 IF PG_DEBUG in ('Y', 'C') THEN
295 arp_util.debug ('Validate_Transaction_Type: ' || '>>>>>>>>>> The Transaction Type is not valid at the Issue Date');
296 arp_util.debug ('Validate_Transaction_Type: ' || 'p_cust_trx_type_id = ' || p_cust_trx_type_id);
297 arp_util.debug ('Validate_Transaction_Type: ' || 'p_issue_date = ' || p_issue_date);
298 arp_util.debug ('Validate_Transaction_Type: ' || 'start_date = ' || l_start_date);
299 arp_util.debug ('Validate_Transaction_Type: ' || 'end_date = ' || l_end_date);
300 END IF;
301 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_BAD_DATE_TRX_TYPE');
302 app_exception.raise_exception;
303 END IF;
304
305 IF PG_DEBUG in ('Y', 'C') THEN
306 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Transaction_Type()-');
307 END IF;
308
309 EXCEPTION
310 WHEN NO_DATA_FOUND THEN
311 IF PG_DEBUG in ('Y', 'C') THEN
312 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Transaction_Type() ');
313 arp_util.debug('Validate_Transaction_Type: ' || '>>>>>>>>>> Invalid Transaction Type');
314 arp_util.debug('Validate_Transaction_Type: ' || ' p_cust_trx_type_id = ' || p_cust_trx_type_id);
315 arp_util.debug('Validate_Transaction_Type: ' || ' p_issue_date = ' || p_issue_date);
316 END IF;
317 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_TRX_TYPE');
318 app_exception.raise_exception;
319
320 WHEN OTHERS THEN
321 IF PG_DEBUG in ('Y', 'C') THEN
322 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Transaction_Type() ');
323 arp_util.debug('Validate_Transaction_Type: ' || ' p_cust_trx_type_id = ' || p_cust_trx_type_id);
324 arp_util.debug('Validate_Transaction_Type: ' || ' p_issue_date = ' || p_issue_date);
325 END IF;
326 RAISE;
327
328 END Validate_Transaction_Type;
329
330
331
332 /*==============================================================================+
333 | PROCEDURE |
334 | Validate_Drawee |
335 | |
336 | DESCRIPTION |
337 | Validates that the Drawee exists |
338 | |
339 +==============================================================================*/
340
341 PROCEDURE Validate_Drawee (p_drawee_id IN NUMBER) IS
342
343 l_drawee_valid VARCHAR2(1);
344
345 BEGIN
346 IF PG_DEBUG in ('Y', 'C') THEN
347 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Drawee ()+');
348 END IF;
349
350 /* modified for tca uptake */
351 SELECT 'Y'
352 INTO l_drawee_valid
353 FROM HZ_CUST_ACCOUNTS
354 WHERE cust_account_id = p_drawee_id;
355
356 IF PG_DEBUG in ('Y', 'C') THEN
357 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Drawee ()-');
358 END IF;
359
360 EXCEPTION
361 WHEN NO_DATA_FOUND THEN
362 IF PG_DEBUG in ('Y', 'C') THEN
363 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Drawee () ');
364 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> Invalid Drawee');
365 arp_util.debug('Validate_Drawee: ' || ' p_drawee_id = ' || p_drawee_id);
366 END IF;
367 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_DRAWEE');
368 app_exception.raise_exception;
369
370 WHEN OTHERS THEN
371 IF PG_DEBUG in ('Y', 'C') THEN
372 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Drawee () ');
373 arp_util.debug('Validate_Drawee: ' || ' p_drawee_id = ' || p_drawee_id);
374 END IF;
375 RAISE;
376
377
378 END Validate_Drawee;
379
380
381
382 /*==============================================================================+
383 | PROCEDURE |
384 | Validate_Drawee_Location |
385 | |
386 | DESCRIPTION |
387 | Validates that the Drawee Location is Active |
388 | |
389 +==============================================================================*/
390
391 PROCEDURE Validate_Drawee_Location (p_drawee_site_use_id IN NUMBER) IS
392
393 l_status VARCHAR2(1);
394
395 BEGIN
396 IF PG_DEBUG in ('Y', 'C') THEN
397 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Location ()+');
398 END IF;
399
400 IF (p_drawee_site_use_id IS NOT NULL)
401 THEN
402 /* modified for tca uptake */
403 SELECT STATUS
404 INTO l_status
405 FROM HZ_CUST_SITE_USES
406 WHERE site_use_id = p_drawee_site_use_id
407 AND SITE_USE_CODE = 'DRAWEE';
408
409 /*----------------------------------------------+
410 | Check that the Drawee Location is active |
411 +-----------------------------------------------*/
412
413 IF (l_status <> 'A')
414 THEN
415 IF PG_DEBUG in ('Y', 'C') THEN
416 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> Drawee Location Inactive');
417 END IF;
418 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INACTIVE_DRAWEE_SITE');
419 app_exception.raise_exception;
420 END IF;
421 END IF;
422
423 IF PG_DEBUG in ('Y', 'C') THEN
424 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Location ()-');
425 END IF;
426
427 EXCEPTION
428 WHEN NO_DATA_FOUND THEN
429 IF PG_DEBUG in ('Y', 'C') THEN
430 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Location () ');
431 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> Invalid Location');
432 arp_util.debug('Validate_Drawee: ' || ' p_drawee_site_use_id = ' || p_drawee_site_use_id);
433 END IF;
434 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_DRAWEE_SITE');
435 app_exception.raise_exception;
436
437 WHEN OTHERS THEN
438 IF PG_DEBUG in ('Y', 'C') THEN
439 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Location () ');
440 arp_util.debug('Validate_Drawee: ' || ' p_drawee_site_use_id = ' || p_drawee_site_use_id);
441 END IF;
442 RAISE;
443
444 END Validate_Drawee_Location;
445
446
447
448 /*==============================================================================+
449 | PROCEDURE |
450 | Validate_Drawee_Contact |
451 | |
452 | DESCRIPTION |
453 | Validates that the Drawee Contact is Active |
454 | |
455 +==============================================================================*/
456
457 PROCEDURE Validate_Drawee_Contact (p_drawee_contact_id IN NUMBER ,
458 p_drawee_id IN NUMBER ) IS
459
460 l_status VARCHAR2(1);
461
462 BEGIN
463 IF PG_DEBUG in ('Y', 'C') THEN
464 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Contact ()+');
465 END IF;
466
467 IF (p_drawee_contact_id IS NOT NULL)
468 THEN
469 /* modified for tca uptake */
470 /* fixed bug 1883538: use status instead of
471 current role state */
472 SELECT status
473 INTO l_status
474 FROM hz_cust_account_roles
475 WHERE cust_account_role_id = p_drawee_contact_id
476 AND cust_account_id = p_drawee_id;
477
478 IF (l_status <> 'A')
479 THEN
480 IF PG_DEBUG in ('Y', 'C') THEN
481 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> Drawee Contact Inactive');
482 END IF;
483 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INACTIVE_DRAWEE_CONTACT');
484 app_exception.raise_exception;
485 END IF;
486
487 END IF;
488
489 IF PG_DEBUG in ('Y', 'C') THEN
490 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Contact ()-');
491 END IF;
492
493 EXCEPTION
494 WHEN NO_DATA_FOUND THEN
495 IF PG_DEBUG in ('Y', 'C') THEN
496 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Contact () ');
497 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> Invalid Contact');
498 arp_util.debug('Validate_Drawee: ' || ' p_drawee_contact_id = ' || p_drawee_contact_id);
499 arp_util.debug('Validate_Drawee: ' || ' p_drawee_id = ' || p_drawee_id);
500 END IF;
501 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_DRAWEE_CONTACT');
502 app_exception.raise_exception;
503
504 WHEN OTHERS THEN
505 IF PG_DEBUG in ('Y', 'C') THEN
506 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Contact () ');
507 arp_util.debug('Validate_Drawee: ' || ' p_drawee_contact_id = ' || p_drawee_contact_id);
508 arp_util.debug('Validate_Drawee: ' || ' p_drawee_id = ' || p_drawee_id);
509 END IF;
510 RAISE;
511
512 END Validate_Drawee_Contact;
513
514
515
516 /*==============================================================================+
517 | PROCEDURE |
518 | Validate_Currency |
519 | |
520 | DESCRIPTION |
521 | Validates that the Currency is Active at the Issue Date |
522 | |
523 +==============================================================================*/
524
525 PROCEDURE Validate_Currency ( p_invoice_currency_code IN VARCHAR2,
526 p_issue_date IN DATE ) IS
527
528 l_start_date DATE;
529 l_end_date DATE;
530
531 BEGIN
532 IF PG_DEBUG in ('Y', 'C') THEN
533 arp_util.debug('Validate_Drawee: ' || 'AR_BILLS_CREATION_VAL_PVT.Validate_Currency ()+');
534 END IF;
535
536 SELECT start_date_active, end_date_active
537 INTO l_start_date , l_end_date
538 FROM FND_CURRENCIES_VL
539 WHERE currency_code = p_invoice_currency_code
540 AND enabled_flag = 'Y';
541
542
543 /*----------------------------------------------+
544 | Check the currency is valid at the issue |
545 | date |
546 +-----------------------------------------------*/
547
548 IF (p_issue_date NOT BETWEEN nvl(l_start_date, p_issue_date)
549 AND nvl(l_end_date, p_issue_date))
550 THEN
551 IF PG_DEBUG in ('Y', 'C') THEN
552 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> Currency Invalid with Issue Date');
553 arp_util.debug('Validate_Drawee: ' || 'Issue Date : ' || p_issue_date);
554 arp_util.debug('Validate_Drawee: ' || 'Currency : ' || p_invoice_currency_code);
555 END IF;
556 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_BAD_DATE_CURRENCY');
557 app_exception.raise_exception;
558 END IF;
559
560
561 IF PG_DEBUG in ('Y', 'C') THEN
562 arp_util.debug('Validate_Drawee: ' || 'AR_BILLS_CREATION_VAL_PVT.Validate_Currency ()-');
563 END IF;
564
565 EXCEPTION
566 WHEN NO_DATA_FOUND THEN
567 IF PG_DEBUG in ('Y', 'C') THEN
568 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Currency () ');
569 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> Invalid Currency');
570 arp_util.debug('Validate_Drawee: ' || ' p_invoice_currency_code = : ' || p_invoice_currency_code);
571 arp_util.debug('Validate_Drawee: ' || ' p_issue_date = : ' || p_issue_date);
572 END IF;
573 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_CURRENCY');
574 app_exception.raise_exception;
575
576 WHEN OTHERS THEN
577 IF PG_DEBUG in ('Y', 'C') THEN
578 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Currency () ');
579 arp_util.debug('Validate_Drawee: ' || ' p_invoice_currency_code = : ' || p_invoice_currency_code);
580 arp_util.debug('Validate_Drawee: ' || ' p_issue_date = : ' || p_issue_date);
581 END IF;
582 RAISE;
583
584 END Validate_Currency;
585
586
587 /*==============================================================================+
588 | PROCEDURE |
589 | Validate_Printing_Option |
590 | |
591 | DESCRIPTION |
592 | Validates that : |
593 | - Values allowed are PRI and NOT |
594 | - Printing is mandatory, if the bill has to be signed |
595 | - If the printing option is set to 'Y', a format must be defined for |
596 | the transaction type |
597 | |
598 +==============================================================================*/
599
600 PROCEDURE Validate_Printing_Option ( p_printing_option IN VARCHAR2 ,
601 p_cust_trx_type_id IN NUMBER ) IS
602
603 l_format_program_id NUMBER;
604 l_signed_flag VARCHAR2(1);
605 l_printing_option_valid VARCHAR2(1);
606 printing_option_invalid EXCEPTION;
607
608 BEGIN
609 IF PG_DEBUG in ('Y', 'C') THEN
610 arp_util.debug('Validate_Drawee: ' || 'AR_BILLS_CREATION_VAL_PVT.Validate_Printing_Option ()+');
611 END IF;
612
613
614 /*----------------------------------------------+
615 | Validate p_printing_option in ar_lookups |
616 | lookup_type = INVOICE_PRINT_OPTIONS |
617 +-----------------------------------------------*/
618
619 IF (p_printing_option IS NOT NULL)
620 THEN
621 BEGIN
622 SELECT 'Y'
623 INTO l_printing_option_valid
624 FROM AR_LOOKUPS
625 WHERE lookup_type = 'INVOICE_PRINT_OPTIONS'
626 AND lookup_code = p_printing_option;
627
628 EXCEPTION
629 WHEN NO_DATA_FOUND THEN
630 RAISE printing_option_invalid;
631 END;
632 END IF;
633
634
635 /*----------------------------------------------+
636 | Validate whether printing is mandatory or not|
637 +-----------------------------------------------*/
638
639 SELECT signed_flag , format_program_id
640 INTO l_signed_flag, l_format_program_id
641 FROM RA_CUST_TRX_TYPES
642 WHERE cust_trx_type_id = p_cust_trx_type_id;
643
644 IF PG_DEBUG in ('Y', 'C') THEN
645 arp_util.debug('Validate_Drawee: ' || 'Signed Flag : ' || l_signed_flag);
646 arp_util.debug('Validate_Drawee: ' || 'Format Program : ' || l_format_program_id);
647 arp_util.debug('Validate_Drawee: ' || 'Printing Option : ' || p_printing_option);
648 END IF;
649
650 IF (p_printing_option = 'NOT' and l_signed_flag = 'Y')
651 THEN
652 IF PG_DEBUG in ('Y', 'C') THEN
653 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> Printing is mandatory');
654 END IF;
655 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_PRINTING_MANDATORY');
656 app_exception.raise_exception;
657 END IF;
658
659
660 /*----------------------------------------------+
661 | If printing option is PRI, check that the |
662 | format program is defined |
663 +-----------------------------------------------*/
664
665 IF (p_printing_option = 'PRI' AND l_format_program_id IS NULL)
666 THEN
667 IF PG_DEBUG in ('Y', 'C') THEN
668 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> No format program id');
669 END IF;
670 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_NO_PRINT_FORMAT');
671 app_exception.raise_exception;
672 END IF;
673
674 IF PG_DEBUG in ('Y', 'C') THEN
675 arp_util.debug('Validate_Drawee: ' || 'AR_BILLS_CREATION_VAL_PVT.Validate_Printing_Option ()-');
676 END IF;
677
678 EXCEPTION
679 WHEN printing_option_invalid THEN
680 IF PG_DEBUG in ('Y', 'C') THEN
681 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> Invalid Value for Printing Option');
682 arp_util.debug('Validate_Drawee: ' || ' Printing Option : ' || p_printing_option);
683 END IF;
684 FND_MESSAGE.SET_NAME ('AR', 'AR_PROCEDURE_VALID_ARGS_FAIL');
685 FND_MESSAGE.SET_TOKEN ('PARAMETER', 'Printing Option');
686 FND_MESSAGE.SET_TOKEN ('PROCEDURE', 'BR CREATION API');
687 app_exception.raise_exception;
688
689 WHEN OTHERS THEN
690 IF PG_DEBUG in ('Y', 'C') THEN
691 arp_util.debug('Validate_Drawee: ' || '>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Printing_Option () ');
692 arp_util.debug('Validate_Drawee: ' || ' p_printing_option = ' || p_printing_option);
693 arp_util.debug('Validate_Drawee: ' || ' p_cust_trx_type_id = ' || p_cust_trx_type_id);
694 END IF;
695 RAISE;
696
697 END Validate_Printing_Option;
698
699
700
701 /*=============================================================================+
702 | PROCEDURE |
703 | Validate_Drawee_Account |
704 | |
705 | DESCRIPTION |
706 | Validates that the Drawee Account : |
707 | - Belongs to the Drawee |
708 | - Is Active at the Issue Date |
709 | |
710 | History |
711 | Date Name Description |
712 | 02-May-01 Debbie Jancis Added History Section and modified how the |
713 | account is validated because bank account |
714 | uses will only be linked to bill to buisness |
715 | purposes. |
716 | 24-May-01 Debbie Jancis Fixed bug 1798699: changed all selects to |
717 | verify bank account information with issue |
718 | instead of trying to select dates and then |
719 | verify because customer setup allows multiple |
720 | usage records with different dates. This |
721 | causes too many rows to be selected. |
722 +============================================================================*/
723
724 PROCEDURE Validate_Drawee_Account ( p_drawee_bank_account_id IN VARCHAR2 ,
725 p_drawee_id IN NUMBER ,
726 p_drawee_site_use_id IN NUMBER ,
727 p_issue_date IN DATE ) IS
728
729 l_start_date DATE;
730 l_end_date DATE;
731 l_bill_site_use_id NUMBER;
732 l_bank_ok NUMBER; /* bug 1798699 */
733
734 BEGIN
735 IF PG_DEBUG in ('Y', 'C') THEN
736 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Account ()+');
737 END IF;
738
739 /* bug 1758982: Unable to create Manual BR when customer has
740 more then 1 drawee site with same bank account assigned */
741
742 /* PAYMENT_UPTAKE: Removed validation bcoz Drawee_bank_account_id is obsoleted */
743
744 IF PG_DEBUG in ('Y', 'C') THEN
745 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Drawee_Account ()-');
746 END IF;
747
748 END Validate_Drawee_Account;
749
750
751
752
753 /*==============================================================================+
754 | PROCEDURE |
755 | Validate_Remit_Account |
756 | |
757 | DESCRIPTION |
758 | Validates that the Remittance Account : |
759 | - Is Internal |
760 | - Is of the same currency as the BR or is a multi-currency account |
761 | - Is valid at the Issue Date |
762 | |
763 +==============================================================================*/
764
765 PROCEDURE validate_remit_account (p_remit_bank_account_id IN VARCHAR2,
766 p_invoice_currency_code IN VARCHAR2,
767 p_issue_date IN DATE) IS
768
769
770 -- Substitued a cursor for a direct select. Because of the CBA project
771 -- we should now assume that all remit_bank_account_id columns/variables
772 -- contain the use ids.
773 --
774 -- ORASHID 22-OCT-2003
775
776 /* Bug 3285863 Selecting receipt_multi_currency_flag rather than
777 multi_currency_allowed_flag. */
778
779 CURSOR c IS
780 SELECT cba.currency_code,
781 cba.receipt_multi_currency_flag receipt_multi_currency_flag,
782 cbau.end_date inactive_date
783 FROM ce_bank_accounts cba,
784 ce_bank_acct_uses cbau
785 WHERE cbau.bank_acct_use_id = p_remit_bank_account_id
786 AND cbau.bank_account_id = cba.bank_account_id
787 AND cba.account_classification = 'INTERNAL';
788
789
790 l_receipt_multi_currency_flag VARCHAR2(1);
791 l_currency_code VARCHAR2(15);
792 l_inactive_date DATE;
793
794 BEGIN
795
796 IF pg_debug IN ('Y', 'C') THEN
797 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Remit_Account ()+');
798 END IF;
799
800 IF (p_remit_bank_account_id IS NOT NULL) THEN
801
802 OPEN c;
803 FETCH c INTO l_currency_code, l_receipt_multi_currency_flag, l_inactive_date;
804 CLOSE c;
805
806 /*----------------------------------------------+
807 | Validate that the remittance account is of |
808 | the same currency as the BR or is a |
809 | multi-currency account |
810 +----------------------------------------------*/
811
812 IF (l_currency_code <> p_invoice_currency_code) AND
813 (l_receipt_multi_currency_flag <> 'Y') THEN
814
815 IF PG_DEBUG in ('Y', 'C') THEN
816 arp_util.debug('Validate_Remit_Account: ' ||
817 '>>>>>>>>>> Remittance Account invalid Currency');
818 arp_util.debug('Validate_Remit_Account: ' ||
819 ' remit bank account use id : ' || p_remit_bank_account_id);
820 arp_util.debug('Validate_Remit_Account: ' ||
821 ' BR Currency : ' || p_invoice_currency_code);
822 arp_util.debug('Validate_Remit_Account: ' ||
823 ' Remit Account Currency : ' || l_currency_code);
824 arp_util.debug('Validate_Remit_Account: ' ||
825 ' Multi Currency Flag : ' || l_receipt_multi_currency_flag);
826 END IF;
827
828 fnd_message.set_name ('AR', 'AR_BR_INVALID_REMIT_CURRENCY');
829 app_exception.raise_exception;
830
831 END IF;
832
833
834 /*------------------------------------------------+
835 | Validate that the remittance account is valid |
836 | at the issue date |
837 +------------------------------------------------*/
838
839 IF (p_issue_date NOT BETWEEN p_issue_date AND
840 NVL(l_inactive_date , p_issue_date)) THEN
841
842 IF PG_DEBUG in ('Y', 'C') THEN
843 arp_util.debug('>>>>>>>>>> EXCEPTION : Validate_Remit_Account () ');
844 arp_util.debug('Validate_Remit_Account: ' ||
845 '>>>>>>>>>> Remittance Account invalid with Issue Date');
846 arp_util.debug('Validate_Remit_Account: ' ||
847 ' p_issue_date : ' || p_issue_date);
848 arp_util.debug('Validate_Remit_Account: ' ||
849 ' remit bank account use id : ' ||
850 p_remit_bank_account_id);
851 END IF;
852
853 fnd_message.set_name('AR', 'AR_BR_BAD_DATE_REMIT_ACCOUNT');
854 app_exception.raise_exception;
855
856 END IF;
857
858 END IF;
859
860 IF pg_debug IN ('Y', 'C') THEN
861 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Remit_Account ()-');
862 END IF;
863
864 EXCEPTION
865 WHEN NO_DATA_FOUND THEN
866 IF pg_debug IN ('Y', 'C') THEN
867 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Remit_Account () ');
868 arp_util.debug('Validate_Remit_Account: ' || '>>>>>>>>>> Invalid Remittance Account');
869 arp_util.debug('Validate_Remit_Account: ' || ' remit bank account use id = ' || p_remit_bank_account_id);
870 arp_util.debug('Validate_Remit_Account: ' || ' p_invoice_currency_code = ' || p_invoice_currency_code);
871 arp_util.debug('Validate_Remit_Account: ' || ' p_issue_date = ' || p_issue_date);
872 END IF;
873
874 fnd_message.set_name('AR', 'AR_BR_INVALID_REMIT_ACCOUNT');
875 app_exception.raise_exception;
876
877 WHEN OTHERS THEN
878 IF pg_debug IN ('Y', 'C') THEN
879 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Remit_Account () ');
880 arp_util.debug('Validate_Remit_Account: ' || ' remit bank account use id = ' || p_remit_bank_account_id);
881 arp_util.debug('Validate_Remit_Account: ' || ' p_invoice_currency_code = ' || p_invoice_currency_code);
882 arp_util.debug('Validate_Remit_Account: ' || ' p_issue_date = ' || p_issue_date);
883 END IF;
884 RAISE;
885
886 END validate_remit_account;
887
888
889
890 /*==============================================================================+
891 | PROCEDURE |
892 | Validate_Override_Flag |
893 | |
894 | DESCRIPTION |
895 | Validates the value of the Override_Remit_Account_Flag : 'Y' or 'N' |
896 | |
897 | |
898 +==============================================================================*/
899
900 PROCEDURE Validate_Override_Flag ( p_override_remit_account_flag IN VARCHAR2) IS
901
902 BEGIN
903 IF PG_DEBUG in ('Y', 'C') THEN
904 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Override_Flag ()+');
905 END IF;
906
907 IF p_override_remit_account_flag NOT IN ('Y', 'N')
908 THEN
909 IF PG_DEBUG in ('Y', 'C') THEN
910 arp_util.debug('Validate_Override_Flag: ' || '>>>>>>>>>> Invalid Value for the Override Remit Account Flag');
911 arp_util.debug('Validate_Override_Flag: ' || 'Override remit account flag : ' || p_override_remit_account_flag);
912 END IF;
913 FND_MESSAGE.SET_NAME ('AR', 'AR_PROCEDURE_VALID_ARGS_FAIL');
914 FND_MESSAGE.SET_TOKEN ('PARAMETER', 'Override Remittance Flag');
915 FND_MESSAGE.SET_TOKEN ('PROCEDURE', 'BR CREATION API');
916 app_exception.raise_exception;
917 END IF;
918
919 IF PG_DEBUG in ('Y', 'C') THEN
920 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Override_Flag ()-');
921 END IF;
922
923 EXCEPTION
924 WHEN OTHERS THEN
925 IF PG_DEBUG in ('Y', 'C') THEN
926 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Override_Flag () ');
927 arp_util.debug('Validate_Override_Flag: ' || ' p_override_remit_account_flag = ' || p_override_remit_account_flag);
928 END IF;
929 app_exception.raise_exception;
930
931 END Validate_Override_Flag;
932
933
934 /*==============================================================================+
935 | PROCEDURE |
936 | Validate_Batch_ID |
937 | |
938 | DESCRIPTION |
939 | Validates the Batch Identifier and the status |
940 | |
941 +==============================================================================*/
942
943 PROCEDURE Validate_Batch_ID (p_batch_id IN NUMBER) IS
944
945
946 l_batch_id_valid VARCHAR2(1);
947
948 BEGIN
949 IF PG_DEBUG in ('Y', 'C') THEN
950 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Batch_ID ()+');
951 END IF;
952
953 IF (p_batch_id IS NOT NULL)
954 THEN
955 SELECT 'Y'
956 INTO l_batch_id_valid
957 FROM RA_BATCHES
958 WHERE batch_id = p_batch_id
959 AND status = 'A';
960 END IF;
961
962 IF PG_DEBUG in ('Y', 'C') THEN
963 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Batch_ID ()-');
964 END IF;
965
966 EXCEPTION
967 WHEN NO_DATA_FOUND THEN
968 IF PG_DEBUG in ('Y', 'C') THEN
969 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Batch_ID () ');
970 arp_util.debug('Validate_Batch_ID: ' || '>>>>>>>>>> Invalid Batch ID');
971 arp_util.debug('Validate_Batch_ID: ' || ' p_batch_id = ' || p_batch_id);
972 END IF;
973 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_BATCH_ID');
974 app_exception.raise_exception;
975
976 WHEN OTHERS THEN
977 IF PG_DEBUG in ('Y', 'C') THEN
978 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Batch_ID () ');
979 arp_util.debug('Validate_Batch_ID: ' || ' p_batch_id = ' || p_batch_id);
980 END IF;
981 RAISE;
982
983 END Validate_Batch_ID;
984
985
986
987 /*==============================================================================+
988 | PROCEDURE |
989 | Validate_Customer_Trx_ID |
990 | |
991 | DESCRIPTION |
992 | Validates the BR Identifier |
993 | |
994 +==============================================================================*/
995
996 PROCEDURE Validate_Customer_Trx_ID ( p_customer_trx_id IN NUMBER) IS
997
998
999 l_customer_trx_id_valid VARCHAR2(1);
1000
1001 BEGIN
1002 IF PG_DEBUG in ('Y', 'C') THEN
1003 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Customer_Trx_ID ()+');
1004 END IF;
1005
1006 SELECT 'Y'
1007 INTO l_customer_trx_id_valid
1008 FROM RA_CUSTOMER_TRX
1009 WHERE customer_trx_id = p_customer_trx_id;
1010
1011 IF PG_DEBUG in ('Y', 'C') THEN
1012 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Customer_Trx_ID ()-');
1013 END IF;
1014
1015 EXCEPTION
1016 WHEN NO_DATA_FOUND THEN
1017 IF PG_DEBUG in ('Y', 'C') THEN
1018 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Customer_Trx_ID () ');
1019 arp_util.debug('Validate_Customer_Trx_ID: ' || '>>>>>>>>>> Invalid BR ID');
1020 arp_util.debug('Validate_Customer_Trx_ID: ' || ' Customer Trx ID : ' || p_customer_trx_id);
1021 END IF;
1022 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_BR_ID');
1023 app_exception.raise_exception;
1024
1025 WHEN OTHERS THEN
1026 IF PG_DEBUG in ('Y', 'C') THEN
1027 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Customer_Trx_ID () ');
1028 arp_util.debug('Validate_Customer_Trx_ID: ' || ' p_customer_trx_id = ' || p_customer_trx_id);
1029 END IF;
1030 RAISE;
1031
1032 END Validate_Customer_Trx_ID;
1033
1034
1035 /*==============================================================================+
1036 | PROCEDURE |
1037 | Validate_Customer_Trx_Line_ID |
1038 | |
1039 | DESCRIPTION |
1040 | Validates the BR Line Identifier |
1041 | |
1042 +==============================================================================*/
1043
1044 PROCEDURE Validate_Customer_Trx_Line_ID ( p_customer_trx_line_id IN NUMBER) IS
1045
1046
1047 l_valid VARCHAR2(1);
1048
1049 BEGIN
1050 IF PG_DEBUG in ('Y', 'C') THEN
1051 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Customer_Trx_Line_ID ()+');
1052 END IF;
1053
1054 SELECT 'Y'
1055 INTO l_valid
1056 FROM RA_CUSTOMER_TRX_LINES
1057 WHERE customer_trx_line_id = p_customer_trx_line_id;
1058
1059 IF PG_DEBUG in ('Y', 'C') THEN
1060 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Customer_Trx_Line_ID ()-');
1061 END IF;
1062
1063 EXCEPTION
1064 WHEN NO_DATA_FOUND THEN
1065 IF PG_DEBUG in ('Y', 'C') THEN
1066 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Customer_Trx_Line_ID () ');
1067 arp_util.debug('Validate_Customer_Trx_Line_ID: ' || '>>>>>>>>>> Invalid BR Assignment ID');
1068 arp_util.debug('Validate_Customer_Trx_Line_ID: ' || ' p_customer_trx_line_id = ' || p_customer_trx_line_id);
1069 END IF;
1070 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_ASSIGNMENT_ID');
1071 app_exception.raise_exception;
1072
1073 WHEN OTHERS THEN
1074 IF PG_DEBUG in ('Y', 'C') THEN
1075 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Customer_Trx_Line_ID () ');
1076 arp_util.debug('Validate_Customer_Trx_Line_ID: ' || ' p_customer_trx_line_id = ' || p_customer_trx_line_id);
1077 END IF;
1078 RAISE;
1079
1080 END Validate_Customer_Trx_Line_ID;
1081
1082
1083
1084 /*==============================================================================+
1085 | PROCEDURE |
1086 | Validate_Create_BR_Header |
1087 | |
1088 | DESCRIPTION |
1089 | Validates the BR Header Information before insertion |
1090 | |
1091 +==============================================================================*/
1092
1093
1094 PROCEDURE Validate_Create_BR_Header (
1095 p_trx_rec IN ra_customer_trx%ROWTYPE ,
1096 p_gl_date IN DATE )
1097 IS
1098
1099 BEGIN
1100
1101 IF PG_DEBUG in ('Y', 'C') THEN
1102 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Create_BR_Header ()+');
1103 END IF;
1104
1105
1106 -- Validate GL Date
1107
1108 Validate_GL_Date (p_gl_date);
1109
1110
1111
1112 -- Validate Batch Source
1113
1114 Validate_Batch_Source (p_trx_rec.batch_source_id, p_trx_rec.trx_date);
1115
1116
1117 -- Validate Transaction Type
1118
1119 Validate_Transaction_Type (p_trx_rec.cust_trx_type_id, p_trx_rec.trx_date);
1120
1121
1122 -- Validate Drawee ID
1123
1124 Validate_Drawee (p_trx_rec.drawee_id);
1125
1126 -- Validate Drawee Location
1127
1128 Validate_Drawee_Location (p_trx_rec.drawee_site_use_id);
1129
1130 -- Validate Drawee Contact
1131
1132 Validate_Drawee_Contact (p_trx_rec.drawee_contact_id, p_trx_rec.drawee_id);
1133
1134
1135 -- Validate Currency
1136
1137 Validate_Currency (p_trx_rec.invoice_currency_code, p_trx_rec.trx_date);
1138
1139
1140 -- Validate Printing Option
1141
1142 Validate_Printing_Option (p_trx_rec.printing_option, p_trx_rec.cust_trx_type_id);
1143
1144
1145 -- Validate Remittance Bank Account Id
1146
1147 Validate_Remit_Account (
1148 p_trx_rec.remit_bank_acct_use_id ,
1149 p_trx_rec.invoice_currency_code ,
1150 p_trx_rec.trx_date );
1151
1152
1153 -- Validate the Override Remit Account Flag
1154
1155 Validate_Override_Flag (p_trx_rec.override_remit_account_flag);
1156
1157
1158 -- Validate the Batch ID
1159
1160 Validate_Batch_ID (p_trx_rec.batch_id);
1161
1162 IF PG_DEBUG in ('Y', 'C') THEN
1163 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Create_BR_Header ()-');
1164 END IF;
1165
1166 EXCEPTION
1167 WHEN Others THEN
1168 IF PG_DEBUG in ('Y', 'C') THEN
1169 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Create_BR_Header () ');
1170 END IF;
1171 RAISE;
1172
1173 END Validate_Create_BR_Header;
1174
1175
1176 /*==============================================================================+
1177 | PROCEDURE |
1178 | Validate_Update_BR_Header |
1179 | |
1180 | DESCRIPTION |
1181 | Validates the BR Header Information before update |
1182 | |
1183 +==============================================================================*/
1184
1185
1186 PROCEDURE Validate_Update_BR_Header (
1187 p_trx_rec IN ra_customer_trx%ROWTYPE ,
1188 p_gl_date IN DATE )
1189
1190 IS
1191
1192 BEGIN
1193
1194 IF PG_DEBUG in ('Y', 'C') THEN
1195 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Update_BR_Header ()+');
1196 END IF;
1197
1198 -- Validate GL Date
1199
1200 Validate_GL_Date (p_gl_date);
1201
1202
1203 -- Validate Update of Maturity_Date
1204
1205 Validate_Update_Maturity_Date (p_trx_rec.customer_trx_id ,
1206 p_trx_rec.term_due_date );
1207
1208
1209 -- Validate Transaction Type
1210
1211 Validate_Transaction_Type (p_trx_rec.cust_trx_type_id, p_trx_rec.trx_date);
1212
1213
1214 -- Validate Drawee ID
1215
1216 Validate_Drawee (p_trx_rec.drawee_id);
1217
1218
1219 -- Validate Drawee Location
1220
1221 Validate_Drawee_Location (p_trx_rec.drawee_site_use_id);
1222
1223
1224 -- Validate Drawee Contact
1225
1226 Validate_Drawee_Contact (p_trx_rec.drawee_contact_id, p_trx_rec.drawee_id);
1227
1228
1229 -- Validate Currency
1230
1231 Validate_Currency (p_trx_rec.invoice_currency_code, p_trx_rec.trx_date);
1232
1233
1234 -- Validate Printing Option
1235
1236 Validate_Printing_Option (p_trx_rec.printing_option ,
1237 p_trx_rec.cust_trx_type_id );
1238
1239
1240 -- Validate Remittance Bank Account Id
1241
1242 Validate_Remit_Account (
1243 p_trx_rec.remit_bank_acct_use_id ,
1244 p_trx_rec.invoice_currency_code ,
1245 p_trx_rec.trx_date );
1246
1247
1248 -- Validate the Override Remit Account Flag
1249
1250 Validate_Override_Flag (p_trx_rec.override_remit_account_flag);
1251
1252 IF PG_DEBUG in ('Y', 'C') THEN
1253 arp_util.debug('Validate_Update_BR_Header: ' || 'AR_BILLS_CREATION_VAL_PVT.Validate_BR_Update_Header ()-');
1254 END IF;
1255
1256
1257 EXCEPTION
1258 WHEN Others THEN
1259 IF PG_DEBUG in ('Y', 'C') THEN
1260 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Update_BR_Header () ');
1261 END IF;
1262 RAISE;
1263
1264 END Validate_Update_BR_Header;
1265
1266
1267
1268 /*==============================================================================+
1269 | PROCEDURE |
1270 | Validate_Assigned_Amount |
1271 | |
1272 | DESCRIPTION |
1273 | - Validates that the transaction is not exchanged for more than its full |
1274 | amount |
1275 | - Calculates the accounted assigned amount |
1276 | |
1277 +==============================================================================*/
1278
1279 PROCEDURE Validate_Assigned_Amount ( p_trl_rec IN OUT NOCOPY ra_customer_trx_lines%ROWTYPE ,
1280 p_ps_rec IN ar_payment_schedules%ROWTYPE ) IS
1281
1282
1283 l_exchange_rate NUMBER;
1284 l_functional_currency VARCHAR2(15);
1285 l_acctd_amount NUMBER;
1286 l_new_ADR NUMBER;
1287 l_new_acctd_ADR NUMBER;
1288 l_ADR NUMBER;
1289 l_acctd_ADR NUMBER;
1290
1291
1292
1293 BEGIN
1294 IF PG_DEBUG in ('Y', 'C') THEN
1295 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Assigned_Amount ()+');
1296 arp_util.debug ('Validate_Assigned_Amount: ' || 'Exchange rate : ' || p_ps_rec.exchange_rate);
1297 arp_util.debug ('Validate_Assigned_Amount: ' || 'Amount Due Remaining : ' || p_ps_rec.amount_due_remaining);
1298 arp_util.debug ('Validate_Assigned_Amount: ' || 'Acctd Amount Due Remaining : ' || p_ps_rec.acctd_amount_due_remaining);
1299 END IF;
1300
1301
1302 IF (p_trl_rec.extended_amount = 0)
1303 THEN
1304 IF PG_DEBUG in ('Y', 'C') THEN
1305 arp_util.debug('Validate_Assigned_Amount: ' || '>>>>>>>>>> The amount of the assignment must not be null');
1306 arp_util.debug('Validate_Assigned_Amount: ' || ' Amount Assigned : ' || p_trl_rec.extended_amount);
1307 END IF;
1308 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_AMOUNT');
1309 app_exception.raise_exception;
1310 END IF;
1311
1312
1313 /*----------------------------------------------+
1314 | Validate that the transaction is not |
1315 | exchanged for more than its remaining amount |
1316 +-----------------------------------------------*/
1317
1318 IF ABS(p_trl_rec.extended_amount) > ABS(p_ps_rec.amount_due_remaining)
1319 THEN
1320 IF PG_DEBUG in ('Y', 'C') THEN
1321 arp_util.debug('Validate_Assigned_Amount: ' || '>>>>>>>>>> Amount Exchanged Exceed PS');
1322 arp_util.debug('Validate_Assigned_Amount: ' || '>>>>>>>>>> OverApplication not allowed');
1323 arp_util.debug('Validate_Assigned_Amount: ' || ' Amount Assigned : ' || p_trl_rec.extended_amount);
1324 arp_util.debug('Validate_Assigned_Amount: ' || ' Amount Remaining : ' || p_ps_rec.amount_due_remaining);
1325 END IF;
1326 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_OVERAPPLY');
1327 FND_MESSAGE.SET_TOKEN ('TRXNUM', p_ps_rec.trx_number);
1328 app_exception.raise_exception;
1329 END IF;
1330
1331
1332 /*----------------------------------------------+
1333 | Calculate the accounted assigned amount |
1334 +-----------------------------------------------*/
1335
1336 l_ADR := p_ps_rec.amount_due_remaining;
1337 l_acctd_ADR := p_ps_rec.acctd_amount_due_remaining;
1338
1339 arp_util.calc_acctd_amount(
1340 NULL,
1341 NULL,
1342 NULL,
1343 nvl(p_ps_rec.exchange_rate,1) ,
1344 '-' , /** ADR will be reduced by amount_applied */
1345 l_ADR , /* Current ADR */
1346 l_acctd_ADR , /* Current Acctd. ADR */
1347 p_trl_rec.extended_amount , /* Assignment Amount */
1348 l_new_ADR , /* New ADR */
1349 l_new_acctd_ADR , /* New Acctd. ADR */
1350 p_trl_rec.extended_acctd_amount ); /* Acct. amount_applied */
1351
1352 IF PG_DEBUG in ('Y', 'C') THEN
1353 arp_util.debug('Validate_Assigned_Amount: ' || 'Amount_applied : ' || p_trl_rec.extended_amount);
1354 arp_util.debug('Validate_Assigned_Amount: ' || 'Acctd Amount Applied : ' || p_trl_rec.extended_acctd_amount);
1355 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Assigned_Amount ()-');
1356 END IF;
1357
1358 EXCEPTION
1359 WHEN OTHERS THEN
1360 IF PG_DEBUG in ('Y', 'C') THEN
1361 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_Assigned_Amount () ');
1362 END IF;
1363 RAISE;
1364
1365 END Validate_Assigned_Amount;
1366
1367
1368
1369
1370 /*==============================================================================+
1371 | PROCEDURE |
1372 | Is_Transaction_BR |
1373 | |
1374 | DESCRIPTION |
1375 | Check if the transaction type has a type 'BR' |
1376 | |
1377 +==============================================================================*/
1378
1379 FUNCTION Is_Transaction_BR (p_cust_trx_type_id IN NUMBER) RETURN BOOLEAN IS
1380
1381 l_type VARCHAR2(20);
1382
1383 BEGIN
1384 IF PG_DEBUG in ('Y', 'C') THEN
1385 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Is_Transaction_BR ()+');
1386 END IF;
1387
1388 SELECT type
1389 INTO l_type
1390 FROM RA_CUST_TRX_TYPES
1391 WHERE cust_trx_type_id = p_cust_trx_type_id;
1392
1393 IF (l_type = 'BR')
1394 THEN
1395 IF PG_DEBUG in ('Y', 'C') THEN
1396 arp_util.debug ('Is_Transaction_BR: ' || 'The transaction to be exchanged is a BR');
1397 END IF;
1398 RETURN (TRUE);
1399 ELSE
1400 RETURN (FALSE);
1401 END IF;
1402
1403 IF PG_DEBUG in ('Y', 'C') THEN
1404 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Is_Transaction_BR ()-');
1405 END IF;
1406
1407 EXCEPTION
1408 WHEN NO_DATA_FOUND THEN
1409 IF PG_DEBUG in ('Y', 'C') THEN
1410 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Is_Transaction_BR () ');
1411 arp_util.debug('Is_Transaction_BR: ' || '>>>>>>>>>> Invalid Transaction Type ID');
1412 arp_util.debug('Is_Transaction_BR: ' || ' p_cust_trx_type_id : ' || p_cust_trx_type_id);
1413 END IF;
1414 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_TRX_TYPE');
1415 app_exception.raise_exception;
1416
1417 WHEN OTHERS THEN
1418 IF PG_DEBUG in ('Y', 'C') THEN
1419 arp_util.debug('>>>>>>>>>> EXCEPTION : Is_Transaction_BR () ');
1420 arp_util.debug('Is_Transaction_BR: ' || ' p_cust_trx_type_id : ' || p_cust_trx_type_id);
1421 END IF;
1422 RAISE;
1423
1424 END Is_Transaction_BR;
1425
1426
1427 /*==============================================================================+
1428 | PROCEDURE |
1429 | Validate_BR_Status |
1430 | |
1431 | DESCRIPTION |
1432 | Validates the status of the BR (must be INCOMPLETE), so that insert, |
1433 | update and delete of BR Assignments are allowed. |
1434 | |
1435 +==============================================================================*/
1436
1437 PROCEDURE Validate_BR_Status ( p_customer_trx_id IN NUMBER) IS
1438
1439 l_trh_rec AR_TRANSACTION_HISTORY%ROWTYPE;
1440
1441
1442 BEGIN
1443 IF PG_DEBUG in ('Y', 'C') THEN
1444 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_BR_Status ()+');
1445 END IF;
1446
1447 -- Fetch the BR history information
1448
1449 l_trh_rec.customer_trx_id := p_customer_trx_id;
1450 ARP_TRANSACTION_HISTORY_PKG.fetch_f_trx_id (l_trh_rec);
1451
1452 /*----------------------------------------------+
1453 | Check that the BR is incomplete, in order to |
1454 | allow the insert, update or delete of BR |
1455 | assignments. |
1456 +-----------------------------------------------*/
1457
1458 IF (l_trh_rec.status <> C_INCOMPLETE)
1459 THEN
1460 IF PG_DEBUG in ('Y', 'C') THEN
1461 arp_util.debug ('Validate_BR_Status: ' || 'You cannot update the assignments when the BR has a status : ' || l_trh_rec.status);
1462 END IF;
1463 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_ASSIGN_FORBIDDEN');
1464 app_exception.raise_exception;
1465 END IF;
1466
1467
1468 IF PG_DEBUG in ('Y', 'C') THEN
1469 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_BR_Status ()-');
1470 END IF;
1471
1472 EXCEPTION
1473 WHEN OTHERS THEN
1474 IF PG_DEBUG in ('Y', 'C') THEN
1475 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_BR_Status () ');
1476 arp_util.debug('Validate_BR_Status: ' || ' p_customer_trx_id = ' || p_customer_trx_id);
1477 END IF;
1478 RAISE;
1479
1480 END Validate_BR_Status;
1481
1482
1483
1484 /*==============================================================================+
1485 | PROCEDURE |
1486 | Validate_Assignment_Status |
1487 | |
1488 | DESCRIPTION |
1489 | Validates the status of the BR to be exchanged (UNPAID) |
1490 | |
1491 +==============================================================================*/
1492
1493 PROCEDURE Validate_Assignment_Status ( p_customer_trx_id IN NUMBER,
1494 p_trx_number IN ar_payment_schedules.trx_number%TYPE) IS
1495
1496 l_trh_rec AR_TRANSACTION_HISTORY%ROWTYPE;
1497 l_trx_rec RA_CUSTOMER_TRX%ROWTYPE;
1498
1499 BEGIN
1500 IF PG_DEBUG in ('Y', 'C') THEN
1501 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Assignment_Status ()+');
1502 END IF;
1503
1504 l_trh_rec.customer_trx_id := p_customer_trx_id;
1505 ARP_TRANSACTION_HISTORY_PKG.fetch_f_trx_id (l_trh_rec);
1506 ARP_CT_PKG.fetch_p (l_trx_rec, p_customer_trx_id);
1507
1508 IF (l_trh_rec.status <> C_UNPAID)
1509 THEN
1510 IF PG_DEBUG in ('Y', 'C') THEN
1511 arp_util.debug('Validate_Assignment_Status: ' || '>>>>>>>>>> The BR to be exchanged must be Unpaid');
1512 arp_util.debug('Validate_Assignment_Status: ' || ' Status : ' || l_trh_rec.status);
1513 arp_util.debug('Validate_Assignment_Status: ' || ' Event : ' || l_trh_rec.event);
1514 END IF;
1515 FND_MESSAGE.SET_NAME ('AR' , 'AR_BR_CANNOT_ASSIGN');
1516 FND_MESSAGE.set_token ('TRXNUM', p_trx_number);
1517 app_exception.raise_exception;
1518 END IF;
1519
1520 IF PG_DEBUG in ('Y', 'C') THEN
1521 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_Assignment_Status ()-');
1522 END IF;
1523
1524 EXCEPTION
1525 WHEN NO_DATA_FOUND THEN
1526 IF PG_DEBUG in ('Y', 'C') THEN
1527 arp_util.debug('>>>>>>>>>> EXCEPTION : Validate_Assignment_Status () ');
1528 arp_util.debug('Validate_Assignment_Status: ' || '>>>>>>>>>> Invalid BR ID');
1529 arp_util.debug('Validate_Assignment_Status: ' || ' Customer Trx ID : ' || p_customer_trx_id);
1530 END IF;
1531 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_BR_ID');
1532 app_exception.raise_exception;
1533
1534 WHEN OTHERS THEN
1535 IF PG_DEBUG in ('Y', 'C') THEN
1536 arp_util.debug('>>>>>>>>>> EXCEPTION : Validate_Assignment_Status () ');
1537 arp_util.debug('Validate_Assignment_Status: ' || ' p_customer_trx_id = ' || p_customer_trx_id);
1538 arp_util.debug('Validate_Assignment_Status: ' || ' p_trx_number = ' || p_trx_number);
1539 END IF;
1540 RAISE;
1541
1542 END Validate_Assignment_Status;
1543
1544
1545 /*==============================================================================+
1546 | PROCEDURE |
1547 | Validate_BR_Assignment |
1548 | |
1549 | DESCRIPTION |
1550 | Validates the BR Assignment Information before insertion or update |
1551 | |
1552 +==============================================================================*/
1553
1554
1555 PROCEDURE Validate_BR_Assignment (p_trl_rec IN OUT NOCOPY ra_customer_trx_lines%ROWTYPE ,
1556 p_ps_rec IN ar_payment_schedules%ROWTYPE ,
1557 p_trx_rec IN ra_customer_trx%ROWTYPE ,
1558 p_BR_rec IN ra_customer_trx%ROWTYPE )
1559 IS
1560
1561 l_type VARCHAR2(20);
1562
1563 BEGIN
1564
1565 IF PG_DEBUG in ('Y', 'C') THEN
1566 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_BR_Assignment ()+');
1567 END IF;
1568
1569
1570 /*----------------------------------------------+
1571 | Validate the status of the BR : |
1572 | must be INCOMPLETE |
1573 +-----------------------------------------------*/
1574
1575 Validate_BR_Status (p_trl_rec.customer_trx_id);
1576
1577
1578
1579 SELECT type
1580 INTO l_type
1581 FROM RA_CUST_TRX_TYPES
1582 WHERE cust_trx_type_id = p_ps_rec.cust_trx_type_id;
1583
1584 /*----------------------------------------------+
1585 | Validate that the assignment is not a |
1586 | guarantee |
1587 +-----------------------------------------------*/
1588
1589 IF (l_type = 'GUAR')
1590 THEN
1591 IF PG_DEBUG in ('Y', 'C') THEN
1592 arp_util.debug ('Validate_BR_Assignment: ' || '>>>>>>>>>> Guarantee cannot be exchanged for BR');
1593 END IF;
1594 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_INVALID_TRX_TYPE');
1595 app_exception.raise_exception;
1596
1597 ELSIF (l_type = 'BR')
1598 THEN
1599
1600 /*----------------------------------------------+
1601 | If the transaction to be exchanged is a BR, |
1602 | validate the status of the BR exchanged. |
1603 +-----------------------------------------------*/
1604
1605 Validate_Assignment_Status (p_trl_rec.br_ref_customer_trx_id, p_ps_rec.trx_number);
1606
1607 /*----------------------------------------------+
1608 | Only Total Exchange is allowed |
1609 +-----------------------------------------------*/
1610
1611 IF (AR_BILLS_MAINTAIN_STATUS_PUB.Is_Payment_Schedule_Reduced(p_ps_rec))
1612 THEN
1613 IF PG_DEBUG in ('Y', 'C') THEN
1614 arp_util.debug ('Validate_BR_Assignment: ' || '>>>>>>>>>> The BR ' || p_trx_rec.trx_number || ' cannot be exchanged');
1615 arp_util.debug ('Validate_BR_Assignment: ' || ' Only total exchange is allowed for BR');
1616 arp_util.debug ('Validate_BR_Assignment: ' || ' amount_due_original : ' || p_ps_rec.amount_due_original);
1617 arp_util.debug ('Validate_BR_Assignment: ' || ' amount_due_remaining : ' || p_ps_rec.amount_due_remaining);
1618 END IF;
1619 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_CANNOT_ASSIGN');
1620 FND_MESSAGE.SET_TOKEN ('TRXNUM', p_trx_rec.trx_number);
1621 app_exception.raise_exception;
1622 END IF;
1623
1624
1625 IF (p_trl_rec.extended_amount <> p_ps_rec.amount_due_original)
1626 THEN
1627 IF PG_DEBUG in ('Y', 'C') THEN
1628 arp_util.debug ('Validate_BR_Assignment: ' || '>>>>>>>>>> The BR ' || p_trx_rec.trx_number || ' cannot be exchanged');
1629 arp_util.debug ('Validate_BR_Assignment: ' || ' Only total exchange is allowed for BR');
1630 arp_util.debug ('Validate_BR_Assignment: ' || ' amount assigned : ' || p_trl_rec.extended_amount);
1631 arp_util.debug ('Validate_BR_Assignment: ' || ' amount_due_original : ' || p_ps_rec.amount_due_original);
1632 END IF;
1633 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_CANNOT_ASSIGN');
1634 FND_MESSAGE.SET_TOKEN ('TRXNUM', p_trx_rec.trx_number);
1635 app_exception.raise_exception;
1636 END IF;
1637
1638 END IF;
1639
1640
1641 /*----------------------------------------------+
1642 | Validate the reserved columns of the |
1643 | exchanged Payment Schedule |
1644 +-----------------------------------------------*/
1645
1646 IF AR_BILLS_MAINTAIN_STATUS_PUB.Is_BR_Reserved (p_ps_rec)
1647 THEN
1648 IF PG_DEBUG in ('Y', 'C') THEN
1649 arp_util.debug ('Validate_BR_Assignment: ' || 'The transaction ' || p_trx_rec.trx_number || ' is reserved, it cannot be assigned');
1650 END IF;
1651 FND_MESSAGE.SET_NAME ('AR', 'AR_BR_TRX_ALREADY_ASSIGN');
1652 FND_MESSAGE.SET_TOKEN ('TRXNUM', p_trx_rec.trx_number);
1653 app_exception.raise_exception;
1654 END IF;
1655
1656
1657 /*----------------------------------------------+
1658 | Validate The Assigned Amount, |
1659 | overapplication is not allowed. |
1660 | And Calculate the accounted assigned amount |
1661 +-----------------------------------------------*/
1662
1663 Validate_Assigned_Amount (p_trl_rec, p_ps_rec);
1664
1665
1666
1667 /*-------------------------------------------------+
1668 | 3553211 : Validate and default the flexfields |
1669 | for manual BR creation only |
1670 +--------------------------------------------------*/
1671 IF p_BR_rec.created_from = 'ARBRMAIN' THEN
1672
1673 AR_BILLS_CREATION_LIB_PVT.Validate_Desc_Flexfield (
1674 p_trl_rec.attribute_category ,
1675 p_trl_rec.attribute1 ,
1676 p_trl_rec.attribute2 ,
1677 p_trl_rec.attribute3 ,
1678 p_trl_rec.attribute4 ,
1679 p_trl_rec.attribute5 ,
1680 p_trl_rec.attribute6 ,
1681 p_trl_rec.attribute7 ,
1682 p_trl_rec.attribute8 ,
1683 p_trl_rec.attribute9 ,
1684 p_trl_rec.attribute10 ,
1685 p_trl_rec.attribute11 ,
1686 p_trl_rec.attribute12 ,
1687 p_trl_rec.attribute13 ,
1688 p_trl_rec.attribute14 ,
1689 p_trl_rec.attribute15 ,
1690 'RA_CUSTOMER_TRX_LINES' );
1691
1692 END IF;
1693
1694
1695 IF PG_DEBUG in ('Y', 'C') THEN
1696 arp_util.debug('AR_BILLS_CREATION_VAL_PVT.Validate_BR_Assignment ()-');
1697 END IF;
1698
1699
1700 EXCEPTION
1701 WHEN Others THEN
1702 IF PG_DEBUG in ('Y', 'C') THEN
1703 arp_util.debug('>>>>>>>>>> EXCEPTION : AR_BILLS_CREATION_VAL_PVT.Validate_BR_Assignment () ');
1704 END IF;
1705 RAISE;
1706
1707 END Validate_BR_Assignment;
1708
1709
1710
1711 END AR_BILLS_CREATION_VAL_PVT;