DBA Data[Home] [Help]

PACKAGE BODY: APPS.ARP_RW_ICR_LINES_PKG

Source


1 PACKAGE BODY ARP_RW_ICR_LINES_PKG AS
2 /* $Header: ARERICLB.pls 115.9 2003/10/13 14:17:30 mraymond ship $ */
3 --
4 PG_DEBUG varchar2(1) := NVL(FND_PROFILE.value('AFLOG_ENABLED'), 'N');
5 
6 PROCEDURE validate_args_insert_row(
7             p_row_id IN VARCHAR2,
8             p_icr_line_id IN
9                         ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE,
10             p_cash_receipt_id IN
11                         ar_interim_cash_receipts.cash_receipt_id%TYPE,
12             p_payment_schedule_id IN
13                         ar_payment_schedules.payment_schedule_id%TYPE,
14             p_customer_trx_id IN
15                    ar_interim_cash_receipt_lines.customer_trx_id%TYPE,
16             p_batch_id IN ar_interim_cash_receipt_lines.batch_id%TYPE,
17             p_sold_to_customer IN
18                    ar_interim_cash_receipt_lines.sold_to_customer%TYPE );
19 --
20 PROCEDURE validate_args_update_row(
21             p_row_id IN VARCHAR2,
22             p_icr_line_id IN
23                         ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE,
24             p_payment_schedule_id IN
25                         ar_payment_schedules.payment_schedule_id%TYPE,
26             p_customer_trx_id IN
27                    ar_interim_cash_receipt_lines.customer_trx_id%TYPE,
28             p_batch_id IN ar_interim_cash_receipt_lines.batch_id%TYPE,
29             p_sold_to_customer IN
30                    ar_interim_cash_receipt_lines.sold_to_customer%TYPE );
31 --
32 PROCEDURE validate_args_delete_row(
33             p_row_id IN VARCHAR2,
34             p_icr_line_id IN
35                  ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE );
36 /*===========================================================================+
37  | PROCEDURE                                                                 |
38  |    update_row   -  Update a row in the AR_ICR     table after checking for|
39  |                    uniqueness                                             |
40  |                                                                           |
41  | DESCRIPTION                                                               |
42  |    This function updates a row in AR_ICR     table after checking for     |
43  |    uniqueness for items such of the receipt                               |
44  |									     |
45  | SCOPE - PUBLIC                                                            |
46  |									     |
47  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
48  |      arp_util.debug - debug procedure                                     |
49  |                                                                           |
50  | ARGUMENTS  : IN:                     				     |
51  |                 p_row_id - Row ID                                         |
52  |                 p_cr_line_id  - Cash receipt line Id                      |
53  |                 p_cr_id  - Cash receipt Id                                |
54  |                 p_receipt_number - Receipt Number                         |
55  |                 p_gl_date - GL Date                                       |
56  |                 p_customer_id - Customer ID                               |
57  |                 p_receipt_amount - Receipt Amount                         |
58  |                 p_module_name - Module that called this procedure         |
59  |                 p_module_version - Version of the module that called this |
60  |                                    procedure                              |
61  |              OUT:                                                         |
62  |                                                                           |
63  | RETURNS    : NONE                    				     |
64  |                                                                           |
65  | NOTES - This procedure calls the check_unique_receipt procedure           |
66  |                                                                           |
67  | MODIFICATION HISTORY -  08/08/95 - Created by Ganesh Vaidee	     	     |
68  | 08-12-97     KTANG        add global attributes in parameter list         |
69  |                           for global descriptive flexfield                |
70  | 10/12/98     DJANCIS   Added batch_id to call to update_p as it will be   |
71  |                        needed to uniquely identify a row in interim       |
72  |                        cash receipts lines.                               |
73  | 10-06-98     K.Murphy  Cross Currency Lockbox.  Added amount_applied_from |
74  |                        and trans_to_receipt_rate as parameters and updated|
75  |                        columns.                                           |
76  | 12-24-02   K.Dhaliwal          Bug 2707190 Added                          |
77  |                                application_ref_type,customer_reference and|
78  |                                customer_reason to update and insert       |
79  |                                procedures.                                |
80  | 01-20-03   K.Dhaliwal          Bug 2707190 Added Applied_Rec_App_ID       |
81  +===========================================================================*/
82 PROCEDURE update_row(
83             p_row_id   IN VARCHAR2,
84             p_icr_line_id   IN
85                     ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE,
86             p_cr_id   IN
87                     ar_interim_cash_receipt_lines.cash_receipt_id%TYPE,
88             p_payment_amount IN
89                        ar_interim_cash_receipt_lines.payment_amount%TYPE,
90             p_amount_applied_from IN
91                        ar_interim_cash_receipt_lines.amount_applied_from%TYPE,
92             p_trans_to_receipt_rate IN
93                        ar_interim_cash_receipt_lines.trans_to_receipt_rate%TYPE,
94             p_payment_schedule_id IN
95                         ar_payment_schedules.payment_schedule_id%TYPE,
96             p_customer_trx_id IN
97                    ar_interim_cash_receipt_lines.customer_trx_id%TYPE,
98             p_batch_id IN ar_interim_cash_receipt_lines.batch_id%TYPE,
99             p_sold_to_customer IN
100                    ar_interim_cash_receipt_lines.sold_to_customer%TYPE,
101             p_discount_taken IN
102                    ar_interim_cash_receipt_lines.discount_taken%TYPE,
103             p_due_date IN ar_interim_cash_receipt_lines.due_date%TYPE,
104             p_ussgl_transaction_code IN
105                    ar_interim_cash_receipt_lines.ussgl_transaction_code%TYPE,
106             p_attribute_category IN
107                         ar_interim_cash_receipt_lines.attribute_category%TYPE,
108             p_attribute1 IN ar_interim_cash_receipt_lines.attribute1%TYPE,
109             p_attribute2 IN ar_interim_cash_receipt_lines.attribute2%TYPE,
110             p_attribute3 IN ar_interim_cash_receipt_lines.attribute3%TYPE,
111             p_attribute4 IN ar_interim_cash_receipt_lines.attribute4%TYPE,
112             p_attribute5 IN ar_interim_cash_receipt_lines.attribute5%TYPE,
113             p_attribute6 IN ar_interim_cash_receipt_lines.attribute6%TYPE,
114             p_attribute7 IN ar_interim_cash_receipt_lines.attribute7%TYPE,
115             p_attribute8 IN ar_interim_cash_receipt_lines.attribute8%TYPE,
116             p_attribute9 IN ar_interim_cash_receipt_lines.attribute9%TYPE,
117             p_attribute10 IN ar_interim_cash_receipt_lines.attribute10%TYPE,
118             p_attribute11 IN ar_interim_cash_receipt_lines.attribute11%TYPE,
119             p_attribute12 IN ar_interim_cash_receipt_lines.attribute12%TYPE,
120             p_attribute13 IN ar_interim_cash_receipt_lines.attribute13%TYPE,
121             p_attribute14 IN ar_interim_cash_receipt_lines.attribute14%TYPE,
122             p_attribute15 IN ar_interim_cash_receipt_lines.attribute15%TYPE,
123             p_global_attribute_category IN
124                 ar_interim_cash_receipt_lines.global_attribute_category%TYPE,
125             p_global_attribute1 IN
126                 ar_interim_cash_receipt_lines.global_attribute1%TYPE,
127             p_global_attribute2 IN
128                 ar_interim_cash_receipt_lines.global_attribute2%TYPE,
129             p_global_attribute3 IN
130                 ar_interim_cash_receipt_lines.global_attribute3%TYPE,
131             p_global_attribute4 IN
132                 ar_interim_cash_receipt_lines.global_attribute4%TYPE,
133             p_global_attribute5 IN
134                 ar_interim_cash_receipt_lines.global_attribute5%TYPE,
135             p_global_attribute6 IN
136                 ar_interim_cash_receipt_lines.global_attribute6%TYPE,
137             p_global_attribute7 IN
138                 ar_interim_cash_receipt_lines.global_attribute7%TYPE,
139             p_global_attribute8 IN
140                 ar_interim_cash_receipt_lines.global_attribute8%TYPE,
141             p_global_attribute9 IN
142                 ar_interim_cash_receipt_lines.global_attribute9%TYPE,
143             p_global_attribute10 IN
144                 ar_interim_cash_receipt_lines.global_attribute10%TYPE,
145             p_global_attribute11 IN
146                 ar_interim_cash_receipt_lines.global_attribute11%TYPE,
147             p_global_attribute12 IN
148                 ar_interim_cash_receipt_lines.global_attribute12%TYPE,
149             p_global_attribute13 IN
150                 ar_interim_cash_receipt_lines.global_attribute13%TYPE,
151             p_global_attribute14 IN
152                 ar_interim_cash_receipt_lines.global_attribute14%TYPE,
153             p_global_attribute15 IN
154                 ar_interim_cash_receipt_lines.global_attribute15%TYPE,
155             p_global_attribute16 IN
156                 ar_interim_cash_receipt_lines.global_attribute16%TYPE,
157             p_global_attribute17 IN
158                 ar_interim_cash_receipt_lines.global_attribute17%TYPE,
159             p_global_attribute18 IN
160                 ar_interim_cash_receipt_lines.global_attribute18%TYPE,
161             p_global_attribute19 IN
162                 ar_interim_cash_receipt_lines.global_attribute19%TYPE,
163             p_global_attribute20 IN
164                 ar_interim_cash_receipt_lines.global_attribute20%TYPE,
165             p_application_ref_type IN
166                 ar_interim_cash_receipt_lines.application_ref_type%TYPE,
167             p_customer_reference IN
168                 ar_interim_cash_receipt_lines.customer_reference%TYPE,
169             p_customer_reason IN
170                 ar_interim_cash_receipt_lines.customer_reason%TYPE,
171             p_applied_rec_app_id IN
172                 ar_interim_cash_receipt_lines.applied_rec_app_id%TYPE,
173             p_module_name  IN VARCHAR2,
174             p_module_version IN VARCHAR2 ) IS
175 --
176 l_icr_lines_rec   ar_interim_cash_receipt_lines%ROWTYPE;
177 BEGIN
178     IF PG_DEBUG in ('Y', 'C') THEN
179        arp_util.debug('arp_rw_icr_line_pkg.update_row()+' );
180        arp_util.debug('Row Id            : '||p_row_id );
181        arp_util.debug('Line Id           : '||p_icr_line_id );
182        arp_util.debug('Payment Sch. ID   : '||p_payment_schedule_id );
183        arp_util.debug('Customer Trx. Id  : '||p_customer_trx_id );
184        arp_util.debug('Batch Id          : '||p_batch_id );
185        arp_util.debug('Sold To Customer  : '||p_sold_to_customer );
186        arp_util.debug('Batch Id          : '||p_batch_id );
187        arp_util.debug('Payment Amount    : '||p_payment_amount );
188        arp_util.debug('Amount Applied From: '||p_amount_applied_from );
189        arp_util.debug('Trans to Receipt Rate: '||p_trans_to_receipt_rate );
190        arp_util.debug('Discount Taken    : '||p_discount_taken );
191        arp_util.debug('Due Date          : '||TO_CHAR( p_due_date ) );
192     END IF;
193     --
194     arp_cr_icr_lines_pkg.set_to_dummy( l_icr_lines_rec );
195     --
196     -- Populate ICR record structure
197     --
198     l_icr_lines_rec.cash_receipt_line_id := p_icr_line_id;
199     l_icr_lines_rec.cash_receipt_id := p_cr_id;
200     l_icr_lines_rec.payment_amount := p_payment_amount;
201     l_icr_lines_rec.amount_applied_from := p_amount_applied_from;
202     l_icr_lines_rec.trans_to_receipt_rate := p_trans_to_receipt_rate;
203     l_icr_lines_rec.payment_schedule_id := p_payment_schedule_id;
204     l_icr_lines_rec.customer_trx_id := p_customer_trx_id;
205     l_icr_lines_rec.batch_id := p_batch_id;
206     l_icr_lines_rec.sold_to_customer := p_sold_to_customer;
207     l_icr_lines_rec.discount_taken := p_discount_taken;
208     l_icr_lines_rec.due_date := p_due_date;
209     l_icr_lines_rec.attribute_category := p_attribute_category;
210     l_icr_lines_rec.attribute1 := p_attribute1;
211     l_icr_lines_rec.attribute2 := p_attribute2;
212     l_icr_lines_rec.attribute3 := p_attribute3;
213     l_icr_lines_rec.attribute4 := p_attribute4;
214     l_icr_lines_rec.attribute5 := p_attribute5;
215     l_icr_lines_rec.attribute6 := p_attribute6;
216     l_icr_lines_rec.attribute7 := p_attribute7;
217     l_icr_lines_rec.attribute8 := p_attribute8;
218     l_icr_lines_rec.attribute9 := p_attribute9;
219     l_icr_lines_rec.attribute10 := p_attribute10;
220     l_icr_lines_rec.attribute11 := p_attribute11;
221     l_icr_lines_rec.attribute12 := p_attribute12;
222     l_icr_lines_rec.attribute13 := p_attribute13;
223     l_icr_lines_rec.attribute14 := p_attribute14;
224     l_icr_lines_rec.attribute15 := p_attribute15;
225     l_icr_lines_rec.global_attribute_category := p_global_attribute_category;
226     l_icr_lines_rec.global_attribute1 := p_global_attribute1;
227     l_icr_lines_rec.global_attribute2 := p_global_attribute2;
228     l_icr_lines_rec.global_attribute3 := p_global_attribute3;
229     l_icr_lines_rec.global_attribute4 := p_global_attribute4;
230     l_icr_lines_rec.global_attribute5 := p_global_attribute5;
231     l_icr_lines_rec.global_attribute6 := p_global_attribute6;
232     l_icr_lines_rec.global_attribute7 := p_global_attribute7;
233     l_icr_lines_rec.global_attribute8 := p_global_attribute8;
234     l_icr_lines_rec.global_attribute9 := p_global_attribute9;
235     l_icr_lines_rec.global_attribute10 := p_global_attribute10;
236     l_icr_lines_rec.global_attribute11 := p_global_attribute11;
237     l_icr_lines_rec.global_attribute12 := p_global_attribute12;
238     l_icr_lines_rec.global_attribute13 := p_global_attribute13;
239     l_icr_lines_rec.global_attribute14 := p_global_attribute14;
240     l_icr_lines_rec.global_attribute15 := p_global_attribute15;
241     l_icr_lines_rec.global_attribute16 := p_global_attribute16;
242     l_icr_lines_rec.global_attribute17 := p_global_attribute17;
243     l_icr_lines_rec.global_attribute18 := p_global_attribute18;
244     l_icr_lines_rec.global_attribute19 := p_global_attribute19;
245     l_icr_lines_rec.global_attribute20 := p_global_attribute20;
246     l_icr_lines_rec.ussgl_transaction_code := p_ussgl_transaction_code;
247     l_icr_lines_rec.application_ref_type := p_application_ref_type;
248     l_icr_lines_rec.customer_reference := p_customer_reference;
249     l_icr_lines_rec.customer_reason := p_customer_reason;
250     l_icr_lines_rec.applied_rec_app_id := p_applied_rec_app_id;
251 
252     --
253     -- Validate arguments
254     --
255     IF ( p_module_name IS NOT NULL AND p_module_version IS NOT NULL ) THEN
256          arp_rw_icr_lines_pkg.validate_args_update_row( p_row_id,
257                                    l_icr_lines_rec.cash_receipt_line_id,
258                                    l_icr_lines_rec.payment_schedule_id,
259                                    l_icr_lines_rec.customer_trx_id,
260                                    l_icr_lines_rec.batch_id,
261                                    l_icr_lines_rec.sold_to_customer );
262     END IF;
263     --
264     -- Bug 744228: added batch_id to update_p call.
265     --     746872  added cash_receipt_id.
266     arp_cr_icr_lines_pkg.update_p( l_icr_lines_rec,
267                              l_icr_lines_rec.cash_receipt_line_id,
268                              l_icr_lines_rec.batch_id,
269                              l_icr_lines_rec.cash_receipt_id  );
270     --
271     IF PG_DEBUG in ('Y', 'C') THEN
272        arp_util.debug('arp_rw_icr_line_pkg.update_row()-' );
273     END IF;
274     --
275     EXCEPTION
276         WHEN OTHERS THEN
277              IF PG_DEBUG in ('Y', 'C') THEN
278                 arp_util.debug('EXCEPTION: arp_rw_icr_line_pkg.update_row' );
279              END IF;
280              RAISE;
281 END update_row;
282 --
283 /*===========================================================================+
284  | PROCEDURE                                                                 |
285  |    validate_args_update_row                                               |
286  |                                                                           |
287  | DESCRIPTION                                                               |
288  |    Validate arguments passed to update_row   procedure                    |
289  |									     |
290  | SCOPE - PRIVATE                                                           |
291  |									     |
292  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED - NONE                            |
293  |      arp_util.debug - debug procedure                                     |
294  |                                                                           |
295  | ARGUMENTS  : IN:                     				     |
296  |                   p_row_id,						     |
297  |                   p_icr_line_id            		                     |
298  |                   p_payment_schedule_id,                                  |
299  |                   p_customer_trx_id,                                      |
300  |                   p_batch_id,                                             |
301  |                   p_sold_to_customer                                      |
302  |              OUT:                                                         |
303  |                                                                           |
304  | RETURNS    : NONE                    				     |
305  |                                                                           |
306  | NOTES -                                                                   |
307  |                                                                           |
308  | MODIFICATION HISTORY - Created by Ganesh Vaidee - 08/08/95		     |
309  |                                                                           |
310  +===========================================================================*/
311 PROCEDURE validate_args_update_row(
312             p_row_id IN VARCHAR2,
313             p_icr_line_id IN
314                         ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE,
315             p_payment_schedule_id IN
316                         ar_payment_schedules.payment_schedule_id%TYPE,
317             p_customer_trx_id IN
318                    ar_interim_cash_receipt_lines.customer_trx_id%TYPE,
319             p_batch_id IN ar_interim_cash_receipt_lines.batch_id%TYPE,
320             p_sold_to_customer IN
321                    ar_interim_cash_receipt_lines.sold_to_customer%TYPE ) IS
322 BEGIN
323     IF PG_DEBUG in ('Y', 'C') THEN
324        arp_util.debug('arp_rw_icr_line_pkg.validate_args_update_row()+' );
325     END IF;
326     --
327     IF ( p_row_id IS NULL OR p_icr_line_id IS NULL OR
328          p_payment_schedule_id IS NULL OR
329          p_customer_trx_id IS NULL OR
330          p_batch_id IS NULL OR p_sold_to_customer IS NULL ) THEN
331         FND_MESSAGE.set_name ('AR', 'AR_ARGUEMENTS_FAIL' );
332         APP_EXCEPTION.raise_exception;
333     END IF;
334     --
335     IF PG_DEBUG in ('Y', 'C') THEN
336        arp_util.debug('arp_rw_icr_line_pkg.validate_args_update_row()-' );
337     END IF;
338     --
339     EXCEPTION
340          WHEN OTHERS THEN
341               IF PG_DEBUG in ('Y', 'C') THEN
342 		 arp_util.debug('EXCEPTION: arp_rw_icr_line_pkg.validate_args_update_row' );
343               END IF;
344               RAISE;
345 END validate_args_update_row;
346 --
347 /*===========================================================================+
348  | PROCEDURE                                                                 |
349  |    insert_row   -  Inserts a row into the ICR_LINES table after checking  |
350  |                    uniqueness                                             |
351  |                                                                           |
352  | DESCRIPTION                                                               |
353  |    This function Inserts a row into the ICR_LINES table after checking for|
354  |    uniqueness for items such of the receipt number                        |
355  |									     |
356  | SCOPE - PUBLIC                                                            |
357  |									     |
358  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
359  |      arp_util.debug - debug procedure                                     |
360  |                                                                           |
361  | ARGUMENTS  : IN:                     				     |
362  |                                    procedure                              |
363  |              OUT:                                                         |
364  |                 p_row_id - Row ID                                         |
365  |                 p_icr_line_id- cash receipt line ID                       |
366  |                                                                           |
367  | RETURNS    : NONE                    				     |
368  |                                                                           |
369  | NOTES -                                                                   |
370  |                                                                           |
371  | MODIFICATION HISTORY -  08/08/95 - Created by Ganesh Vaidee	     	     |
372  | 08-12-97     KTANG        add global attributes in parameter list         |
373  |                           for global descriptive flexfield                |
374  | 10-06-98     K.Murphy  Cross Currency Lockbox.  Added amount_applied_from |
375  |                        and trans_to_receipt_rate as parameters and created|
376  |                        columns.                                           |
377  | 12-24-02   K.Dhaliwal          Bug 2707190 Added                          |
378  |                                application_ref_type,customer_reference and|
379  |                                customer_reason to update and insert       |
380  |                                procedures.                                |
381  | 01-20-03   K.Dhaliwal          Bug 2707190 Added Applied_Rec_App_ID       |
382  +===========================================================================*/
383 PROCEDURE insert_row(
384             p_row_id   IN OUT NOCOPY VARCHAR2,
385             p_icr_line_id   IN OUT NOCOPY
386                       ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE,
387             p_cr_id    IN ar_interim_cash_receipt_lines.cash_receipt_id%TYPE,
388             p_payment_amount IN
389                        ar_interim_cash_receipt_lines.payment_amount%TYPE,
390             p_amount_applied_from IN
391                        ar_interim_cash_receipt_lines.amount_applied_from%TYPE,
392             p_trans_to_receipt_rate IN
393                        ar_interim_cash_receipt_lines.trans_to_receipt_rate%TYPE,
394             p_payment_schedule_id IN
395                         ar_payment_schedules.payment_schedule_id%TYPE,
396             p_customer_trx_id IN
397                    ar_interim_cash_receipt_lines.customer_trx_id%TYPE,
398             p_batch_id IN ar_interim_cash_receipt_lines.batch_id%TYPE,
399             p_sold_to_customer IN
400                    ar_interim_cash_receipt_lines.sold_to_customer%TYPE,
401             p_discount_taken IN
402                    ar_interim_cash_receipt_lines.discount_taken%TYPE,
403             p_due_date IN ar_interim_cash_receipt_lines.due_date%TYPE,
404             p_ussgl_transaction_code IN
405                    ar_interim_cash_receipt_lines.ussgl_transaction_code%TYPE,
406             p_attribute_category IN
407                       ar_interim_cash_receipt_lines.attribute_category%TYPE,
408             p_attribute1 IN ar_interim_cash_receipt_lines.attribute1%TYPE,
409             p_attribute2 IN ar_interim_cash_receipt_lines.attribute2%TYPE,
410             p_attribute3 IN ar_interim_cash_receipt_lines.attribute3%TYPE,
411             p_attribute4 IN ar_interim_cash_receipt_lines.attribute4%TYPE,
412             p_attribute5 IN ar_interim_cash_receipt_lines.attribute5%TYPE,
413             p_attribute6 IN ar_interim_cash_receipt_lines.attribute6%TYPE,
414             p_attribute7 IN ar_interim_cash_receipt_lines.attribute7%TYPE,
415             p_attribute8 IN ar_interim_cash_receipt_lines.attribute8%TYPE,
416             p_attribute9 IN ar_interim_cash_receipt_lines.attribute9%TYPE,
417             p_attribute10 IN ar_interim_cash_receipt_lines.attribute10%TYPE,
418             p_attribute11 IN ar_interim_cash_receipt_lines.attribute11%TYPE,
419             p_attribute12 IN ar_interim_cash_receipt_lines.attribute12%TYPE,
420             p_attribute13 IN ar_interim_cash_receipt_lines.attribute13%TYPE,
421             p_attribute14 IN ar_interim_cash_receipt_lines.attribute14%TYPE,
422             p_attribute15 IN ar_interim_cash_receipt_lines.attribute15%TYPE,
423             p_global_attribute_category IN
424                 ar_interim_cash_receipt_lines.global_attribute_category%TYPE,
425             p_global_attribute1 IN
426                 ar_interim_cash_receipt_lines.global_attribute1%TYPE,
427             p_global_attribute2 IN
428                 ar_interim_cash_receipt_lines.global_attribute2%TYPE,
429             p_global_attribute3 IN
430                 ar_interim_cash_receipt_lines.global_attribute3%TYPE,
431             p_global_attribute4 IN
432                 ar_interim_cash_receipt_lines.global_attribute4%TYPE,
433             p_global_attribute5 IN
434                 ar_interim_cash_receipt_lines.global_attribute5%TYPE,
435             p_global_attribute6 IN
436                 ar_interim_cash_receipt_lines.global_attribute6%TYPE,
437             p_global_attribute7 IN
438                 ar_interim_cash_receipt_lines.global_attribute7%TYPE,
439             p_global_attribute8 IN
440                 ar_interim_cash_receipt_lines.global_attribute8%TYPE,
441             p_global_attribute9 IN
442                 ar_interim_cash_receipt_lines.global_attribute9%TYPE,
443             p_global_attribute10 IN
444                 ar_interim_cash_receipt_lines.global_attribute10%TYPE,
445             p_global_attribute11 IN
446                 ar_interim_cash_receipt_lines.global_attribute11%TYPE,
447             p_global_attribute12 IN
448                 ar_interim_cash_receipt_lines.global_attribute12%TYPE,
449             p_global_attribute13 IN
450                 ar_interim_cash_receipt_lines.global_attribute13%TYPE,
451             p_global_attribute14 IN
452                 ar_interim_cash_receipt_lines.global_attribute14%TYPE,
453             p_global_attribute15 IN
454                 ar_interim_cash_receipt_lines.global_attribute15%TYPE,
455             p_global_attribute16 IN
456                 ar_interim_cash_receipt_lines.global_attribute16%TYPE,
457             p_global_attribute17 IN
458                 ar_interim_cash_receipt_lines.global_attribute17%TYPE,
459             p_global_attribute18 IN
460                 ar_interim_cash_receipt_lines.global_attribute18%TYPE,
461             p_global_attribute19 IN
462                 ar_interim_cash_receipt_lines.global_attribute19%TYPE,
463             p_global_attribute20 IN
464                 ar_interim_cash_receipt_lines.global_attribute20%TYPE,
465             p_application_ref_type IN
466                 ar_interim_cash_receipt_lines.application_ref_type%TYPE,
467             p_customer_reference IN
468                 ar_interim_cash_receipt_lines.customer_reference%TYPE,
469             p_customer_reason IN
470                 ar_interim_cash_receipt_lines.customer_reason%TYPE,
471             p_applied_rec_app_id IN
472                 ar_interim_cash_receipt_lines.applied_rec_app_id%TYPE,
473             p_module_name  IN VARCHAR2,
474             p_module_version IN VARCHAR2 ) IS
475 --
476 l_row_id         VARCHAR2(30);
477 l_icr_line_id     ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE;
478 l_icr_lines_rec   ar_interim_cash_receipt_lines%ROWTYPE;
479 --
480 BEGIN
481     IF PG_DEBUG in ('Y', 'C') THEN
482        arp_util.debug('arp_rw_icr_line_pkg.insert_row()+' );
483        arp_util.debug('Row  Id           : '||p_row_id );
484        arp_util.debug('Line Id           : '||p_icr_line_id );
485        arp_util.debug('Receipt Id        : '||p_cr_id );
486        arp_util.debug('Payment Sch. ID   : '||p_payment_schedule_id );
487        arp_util.debug('Customer Trx. Id  : '||p_customer_trx_id );
488        arp_util.debug('Batch Id          : '||p_batch_id );
489        arp_util.debug('Sold To Customer  : '||p_sold_to_customer );
490        arp_util.debug('Batch Id          : '||p_batch_id );
491        arp_util.debug('Payment Amount    : '||p_payment_amount );
492        arp_util.debug('Amount Applied From: '||p_amount_applied_from );
493        arp_util.debug('Trans to Receipt Rate: '||p_trans_to_receipt_rate );
494        arp_util.debug('Discount Taken    : '||p_discount_taken );
495        arp_util.debug('Due Date          : '||TO_CHAR( p_due_date ) );
496     END IF;
497     --
498     l_icr_lines_rec.cash_receipt_id := p_cr_id;
499     l_icr_lines_rec.payment_amount := p_payment_amount;
500     l_icr_lines_rec.amount_applied_from := p_amount_applied_from;
501     l_icr_lines_rec.trans_to_receipt_rate := p_trans_to_receipt_rate;
502     l_icr_lines_rec.payment_schedule_id := p_payment_schedule_id;
503     l_icr_lines_rec.customer_trx_id := p_customer_trx_id;
504     l_icr_lines_rec.batch_id := p_batch_id;
505     l_icr_lines_rec.sold_to_customer := p_sold_to_customer;
506     l_icr_lines_rec.discount_taken := p_discount_taken;
507     l_icr_lines_rec.due_date := p_due_date;
508     l_icr_lines_rec.attribute_category := p_attribute_category;
509     l_icr_lines_rec.attribute1 := p_attribute1;
510     l_icr_lines_rec.attribute2 := p_attribute2;
511     l_icr_lines_rec.attribute3 := p_attribute3;
512     l_icr_lines_rec.attribute4 := p_attribute4;
513     l_icr_lines_rec.attribute5 := p_attribute5;
514     l_icr_lines_rec.attribute6 := p_attribute6;
515     l_icr_lines_rec.attribute7 := p_attribute7;
516     l_icr_lines_rec.attribute8 := p_attribute8;
517     l_icr_lines_rec.attribute9 := p_attribute9;
518     l_icr_lines_rec.attribute10 := p_attribute10;
519     l_icr_lines_rec.attribute11 := p_attribute11;
520     l_icr_lines_rec.attribute12 := p_attribute12;
521     l_icr_lines_rec.attribute13 := p_attribute13;
522     l_icr_lines_rec.attribute14 := p_attribute14;
523     l_icr_lines_rec.attribute15 := p_attribute15;
524     l_icr_lines_rec.global_attribute_category := p_global_attribute_category;
525     l_icr_lines_rec.global_attribute1 := p_global_attribute1;
526     l_icr_lines_rec.global_attribute2 := p_global_attribute2;
527     l_icr_lines_rec.global_attribute3 := p_global_attribute3;
528     l_icr_lines_rec.global_attribute4 := p_global_attribute4;
529     l_icr_lines_rec.global_attribute5 := p_global_attribute5;
530     l_icr_lines_rec.global_attribute6 := p_global_attribute6;
531     l_icr_lines_rec.global_attribute7 := p_global_attribute7;
532     l_icr_lines_rec.global_attribute8 := p_global_attribute8;
533     l_icr_lines_rec.global_attribute9 := p_global_attribute9;
534     l_icr_lines_rec.global_attribute10 := p_global_attribute10;
535     l_icr_lines_rec.global_attribute11 := p_global_attribute11;
536     l_icr_lines_rec.global_attribute12 := p_global_attribute12;
537     l_icr_lines_rec.global_attribute13 := p_global_attribute13;
538     l_icr_lines_rec.global_attribute14 := p_global_attribute14;
539     l_icr_lines_rec.global_attribute15 := p_global_attribute15;
540     l_icr_lines_rec.global_attribute16 := p_global_attribute16;
541     l_icr_lines_rec.global_attribute17 := p_global_attribute17;
542     l_icr_lines_rec.global_attribute18 := p_global_attribute18;
543     l_icr_lines_rec.global_attribute19 := p_global_attribute19;
544     l_icr_lines_rec.global_attribute20 := p_global_attribute20;
545     l_icr_lines_rec.ussgl_transaction_code := p_ussgl_transaction_code;
546     l_icr_lines_rec.application_ref_type := p_application_ref_type;
547     l_icr_lines_rec.customer_reference := p_customer_reference;
548     l_icr_lines_rec.customer_reason := p_customer_reason;
549     l_icr_lines_rec.applied_rec_app_id := p_applied_rec_app_id;
550     --
551     -- Validate arguments
552     --
553     IF ( p_module_name IS NOT NULL AND p_module_version IS NOT NULL ) THEN
554         arp_rw_icr_lines_pkg.validate_args_insert_row( p_row_id,
555                                   p_icr_line_id,
556                                   l_icr_lines_rec.cash_receipt_id,
557                                   l_icr_lines_rec.payment_schedule_id,
558                                   l_icr_lines_rec.customer_trx_id,
559                                   l_icr_lines_rec.batch_id,
560                                   l_icr_lines_rec.sold_to_customer );
561     END IF;
562     --
563     -- Do the actual Insertion
564     --
565     arp_cr_icr_lines_pkg.insert_p( l_row_id, l_icr_line_id, l_icr_lines_rec );
566     --
567     p_row_id := l_row_id;
568     p_icr_line_id := l_icr_line_id;
569     --
570     IF PG_DEBUG in ('Y', 'C') THEN
571        arp_util.debug('arp_rw_icr_line_pkg.insert_row()-' );
572     END IF;
573     --
574     EXCEPTION
575         WHEN OTHERS THEN
576              IF PG_DEBUG in ('Y', 'C') THEN
577                 arp_util.debug('EXCEPTION: arp_rw_icr_line_pkg.insert_row' );
578              END IF;
579              RAISE;
580 END insert_row;
581 --
582 /*===========================================================================+
583  | PROCEDURE                                                                 |
584  |    validate_args_insert_row                                               |
585  |                                                                           |
586  | DESCRIPTION                                                               |
587  |    Validate arguments passed to insert_row   procedure                    |
588  |									     |
589  | SCOPE - PRIVATE                                                           |
590  |									     |
591  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED - NONE                            |
592  |      arp_util.debug - debug procedure                                     |
593  |                                                                           |
594  | ARGUMENTS  : IN:                     				     |
595  |                 p_row_id - Row Id                                         |
596  |                 p_icr_line_id - ICR Line ID                               |
597  |                 p_cash_receipt_id - ICR ID                                |
598  |                 p_payment_schedule_id - Payment schedules Id              |
599  |                 p_customer_trx_id - Customer Trx Id                       |
600  |                 p_batch_id - Batch id of the interim cash receipt         |
601  |                 p_sold_to_customer - Sold to customer ID from the invoice |
602  |		   			side				     |
603  |              OUT:                                                         |
604  |                                                                           |
605  | RETURNS    : NONE                    				     |
606  |                                                                           |
607  | NOTES -                                                                   |
608  |                                                                           |
609  | MODIFICATION HISTORY - Created by Ganesh Vaidee - 08/08/95		     |
610  |                                                                           |
611  +===========================================================================*/
612 PROCEDURE validate_args_insert_row(
613             p_row_id IN VARCHAR2,
614             p_icr_line_id IN
615                         ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE,
616             p_cash_receipt_id IN
617                         ar_interim_cash_receipts.cash_receipt_id%TYPE,
618             p_payment_schedule_id IN
619                         ar_payment_schedules.payment_schedule_id%TYPE,
620             p_customer_trx_id IN
621                    ar_interim_cash_receipt_lines.customer_trx_id%TYPE,
622             p_batch_id IN ar_interim_cash_receipt_lines.batch_id%TYPE,
623             p_sold_to_customer IN
624                    ar_interim_cash_receipt_lines.sold_to_customer%TYPE ) IS
625 BEGIN
626     IF PG_DEBUG in ('Y', 'C') THEN
627        arp_util.debug( 'arp_rw_icr_lines_pkg.validate_args_insert_row()+' );
628     END IF;
629     --
630     IF ( p_row_id IS NOT NULL OR p_icr_line_id IS NOT NULL  ) THEN
631         FND_MESSAGE.set_name ('AR', 'AR_ARGUEMENTS_FAIL' );
632         APP_EXCEPTION.raise_exception;
633     END IF;
634     --
635     IF ( p_cash_receipt_id IS NULL OR p_payment_schedule_id IS NULL OR
636          p_customer_trx_id IS NULL OR p_batch_id IS NULL OR
637          p_sold_to_customer IS NULL ) THEN
638         FND_MESSAGE.set_name ('AR', 'AR_ARGUEMENTS_FAIL' );
639         APP_EXCEPTION.raise_exception;
640     END IF;
641     --
642     IF PG_DEBUG in ('Y', 'C') THEN
643        arp_util.debug( 'arp_rw_icr_line_pkg.validate_args_insert_row()-' );
644     END IF;
645     --
646     EXCEPTION
647          WHEN OTHERS THEN
648               IF PG_DEBUG in ('Y', 'C') THEN
649 	        arp_util.debug('EXCEPTION: arp_rw_icr_line_pkg.validate_args_insert_row' );
650               END IF;
651               RAISE;
652 END validate_args_insert_row;
653 --
654 /*===========================================================================+
655  | PROCEDURE                                                                 |
656  |    delete_row   -  Deletes a row from the QRC_ICR_LINES table             |
657  |                                                                           |
658  | DESCRIPTION                                                               |
659  |    This function deletes a row from the QRC_ICR_LINES                     |
660  |                                                                           |
661  | SCOPE - PUBLIC                                                            |
662  |                                                                           |
663  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
664  |      arp_util.debug - debug procedure                                     |
665  |                                                                           |
666  | ARGUMENTS  : IN:                                                          |
667  |                                    procedure                              |
668  |              OUT:                                                         |
669  |                 p_row_id - Row ID                                         |
670  |                 p_icr_line_id- cash receipt line ID                       |
671  |                                                                           |
672  | RETURNS    : NONE                                                         |
673  |                                                                           |
674  | NOTES -                                                                   |
675  |                                                                           |
676  | MODIFICATION HISTORY -  08/08/95 - Created by Ganesh Vaidee               |
677  +===========================================================================*/
678 PROCEDURE delete_row(
679             p_row_id   IN VARCHAR2,
680             p_icr_id   IN ar_interim_cash_receipts.cash_receipt_id%TYPE,
681             p_icr_line_id   IN
682                     ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE,
683             p_module_name  IN VARCHAR2,
684             p_module_version IN VARCHAR2 ) IS
685 BEGIN
686     IF PG_DEBUG in ('Y', 'C') THEN
687        arp_util.debug( 'arp_rw_icr_line_pkg.delete_row()+' );
688        arp_util.debug('Row  Id           : '||p_row_id );
689        arp_util.debug('Line Id           : '||p_icr_line_id );
690     END IF;
691     --
692     -- Validate arguments
693     --
694     IF ( p_module_name IS NOT NULL AND p_module_version IS NOT NULL ) THEN
695         arp_rw_icr_lines_pkg.validate_args_delete_row( p_row_id,
696 						       p_icr_line_id );
697     END IF;
698     --
699     arp_cr_icr_lines_pkg.delete_p( p_icr_id, p_icr_line_id );
700     --
701     IF PG_DEBUG in ('Y', 'C') THEN
702        arp_util.debug( 'arp_rw_icr_line_pkg.delete_row()-' );
703     END IF;
704     --
705     EXCEPTION
706          WHEN OTHERS THEN
707               IF PG_DEBUG in ('Y', 'C') THEN
708                  arp_util.debug( 'EXCEPTION: arp_rw_icr_line_pkg.delete_row' );
709               END IF;
710               RAISE;
711 END delete_row;
712 --
713 /*===========================================================================+
714  | PROCEDURE                                                                 |
715  |    validate_args_delete_row                                               |
716  |                                                                           |
717  | DESCRIPTION                                                               |
718  |    Validate arguments passed to delete_row   procedure                    |
719  |									     |
720  | SCOPE - PRIVATE                                                           |
721  |									     |
722  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED - NONE                            |
723  |      arp_util.debug - debug procedure                                     |
724  |                                                                           |
725  | ARGUMENTS  : IN:                     				     |
726  |                 p_row_id - Row Id                                         |
727  |                 p_icr_line_id - ICR line ID                               |
728  |              OUT:                                                         |
729  |                                                                           |
730  | RETURNS    : NONE                    				     |
731  |                                                                           |
732  | NOTES -                                                                   |
733  |                                                                           |
734  | MODIFICATION HISTORY - Created by Ganesh Vaidee - 08/08/95		     |
735  |                                                                           |
736  +===========================================================================*/
737 PROCEDURE validate_args_delete_row(
738             p_row_id IN VARCHAR2,
739             p_icr_line_id IN
740                  ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE ) IS
741 BEGIN
742     IF PG_DEBUG in ('Y', 'C') THEN
743        arp_util.debug( 'arp_rw_icr_lines_pkg.validate_args_delete_row()+' );
744     END IF;
745     --
746     IF ( p_row_id IS NULL OR p_icr_line_id IS NULL  ) THEN
747         FND_MESSAGE.set_name ('AR', 'AR_ARGUEMENTS_FAIL' );
748         APP_EXCEPTION.raise_exception;
749     END IF;
750     --
751     IF PG_DEBUG in ('Y', 'C') THEN
752        arp_util.debug( 'arp_rw_icr_line_pkg.validate_args_delete_row()-' );
753     END IF;
754     --
755     EXCEPTION
756          WHEN OTHERS THEN
757               IF PG_DEBUG in ('Y', 'C') THEN
758 		 arp_util.debug('EXCEPTION: arp_rw_icr_line_pkg.validate_args_delete_row' );
759               END IF;
760               RAISE;
761 END validate_args_delete_row;
762 --
763 /*===========================================================================+
764  | PROCEDURE                                                                 |
765  |    lock_row     -  Lock    a row into the ICR_LINES table after checking  |
766  |                    uniqueness                                             |
767  |                                                                           |
768  | DESCRIPTION                                                               |
769  |    This function locks   a row into the ICR_LINES table after checking for|
770  |    uniqueness for items such of the receipt number                        |
771  |                                                                           |
772  | SCOPE - PUBLIC                                                            |
773  |                                                                           |
774  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED                                   |
775  |      arp_util.debug - debug procedure                                     |
776  |                                                                           |
777  | ARGUMENTS  : IN:                                                          |
778  |                                    procedure                              |
779  |              OUT:                                                         |
780  |                                                                           |
781  | RETURNS    : NONE                                                         |
782  |                                                                           |
783  | NOTES -                                                                   |
784  |                                                                           |
785  | MODIFICATION HISTORY -  08/08/95 - Created by Ganesh Vaidee               |
786  | 08-12-97     KTANG        add global attributes in parameter list         |
787  |                           for global descriptive flexfield                |
788  +===========================================================================*/
789 PROCEDURE lock_row(
790             p_row_id   VARCHAR2,
791             p_icr_id
792               ar_interim_cash_receipt_lines.cash_receipt_id%TYPE,
793             p_icr_line_id
794               ar_interim_cash_receipt_lines.cash_receipt_line_id%TYPE,
795             p_payment_amount
796               ar_interim_cash_receipt_lines.payment_amount%TYPE,
797             p_payment_schedule_id
798               ar_payment_schedules.payment_schedule_id%TYPE,
799             p_customer_trx_id
800               ar_interim_cash_receipt_lines.customer_trx_id%TYPE,
801             p_batch_id ar_interim_cash_receipt_lines.batch_id%TYPE,
802             p_sold_to_customer
803               ar_interim_cash_receipt_lines.sold_to_customer%TYPE,
804             p_discount_taken
805               ar_interim_cash_receipt_lines.discount_taken%TYPE,
806             p_due_date ar_interim_cash_receipt_lines.due_date%TYPE,
807             p_ussgl_transaction_code
808               ar_interim_cash_receipt_lines.ussgl_transaction_code%TYPE,
809             p_attribute_category
810               ar_interim_cash_receipt_lines.attribute_category%TYPE,
811             p_attribute1 ar_interim_cash_receipt_lines.attribute1%TYPE,
812             p_attribute2 ar_interim_cash_receipt_lines.attribute2%TYPE,
813             p_attribute3 ar_interim_cash_receipt_lines.attribute3%TYPE,
814             p_attribute4 ar_interim_cash_receipt_lines.attribute4%TYPE,
815             p_attribute5 ar_interim_cash_receipt_lines.attribute5%TYPE,
816             p_attribute6 ar_interim_cash_receipt_lines.attribute6%TYPE,
817             p_attribute7 ar_interim_cash_receipt_lines.attribute7%TYPE,
818             p_attribute8 ar_interim_cash_receipt_lines.attribute8%TYPE,
819             p_attribute9 ar_interim_cash_receipt_lines.attribute9%TYPE,
820             p_attribute10 ar_interim_cash_receipt_lines.attribute10%TYPE,
821             p_attribute11 ar_interim_cash_receipt_lines.attribute11%TYPE,
822             p_attribute12 ar_interim_cash_receipt_lines.attribute12%TYPE,
823             p_attribute13 ar_interim_cash_receipt_lines.attribute13%TYPE,
824             p_attribute14 ar_interim_cash_receipt_lines.attribute14%TYPE,
825             p_attribute15 ar_interim_cash_receipt_lines.attribute15%TYPE,
826             p_global_attribute_category IN
827                 ar_interim_cash_receipt_lines.global_attribute_category%TYPE,
828             p_global_attribute1 IN
829                 ar_interim_cash_receipt_lines.global_attribute1%TYPE,
830             p_global_attribute2 IN
831                 ar_interim_cash_receipt_lines.global_attribute2%TYPE,
832             p_global_attribute3 IN
833                 ar_interim_cash_receipt_lines.global_attribute3%TYPE,
834             p_global_attribute4 IN
835                 ar_interim_cash_receipt_lines.global_attribute4%TYPE,
836             p_global_attribute5 IN
837                 ar_interim_cash_receipt_lines.global_attribute5%TYPE,
838             p_global_attribute6 IN
839                 ar_interim_cash_receipt_lines.global_attribute6%TYPE,
840             p_global_attribute7 IN
841                 ar_interim_cash_receipt_lines.global_attribute7%TYPE,
842             p_global_attribute8 IN
843                 ar_interim_cash_receipt_lines.global_attribute8%TYPE,
844             p_global_attribute9 IN
845                 ar_interim_cash_receipt_lines.global_attribute9%TYPE,
846             p_global_attribute10 IN
847                 ar_interim_cash_receipt_lines.global_attribute10%TYPE,
848             p_global_attribute11 IN
849                 ar_interim_cash_receipt_lines.global_attribute11%TYPE,
850             p_global_attribute12 IN
851                 ar_interim_cash_receipt_lines.global_attribute12%TYPE,
852             p_global_attribute13 IN
853                 ar_interim_cash_receipt_lines.global_attribute13%TYPE,
854             p_global_attribute14 IN
855                 ar_interim_cash_receipt_lines.global_attribute14%TYPE,
856             p_global_attribute15 IN
857                 ar_interim_cash_receipt_lines.global_attribute15%TYPE,
858             p_global_attribute16 IN
859                 ar_interim_cash_receipt_lines.global_attribute16%TYPE,
860             p_global_attribute17 IN
861                 ar_interim_cash_receipt_lines.global_attribute17%TYPE,
862             p_global_attribute18 IN
863                 ar_interim_cash_receipt_lines.global_attribute18%TYPE,
864             p_global_attribute19 IN
865                 ar_interim_cash_receipt_lines.global_attribute19%TYPE,
866             p_global_attribute20 IN
867                 ar_interim_cash_receipt_lines.global_attribute20%TYPE ) IS
868     CURSOR C IS
869 	SELECT *
870 	FROM ar_interim_cash_receipt_lines
871 	WHERE rowid = p_row_id
872 	FOR UPDATE of CASH_RECEIPT_ID NOWAIT;
873     Recinfo C%ROWTYPE;
874 --
875 BEGIN
876     OPEN C;
877     FETCH C INTO Recinfo;
878     if (C%NOTFOUND) then
879 	CLOSE C;
880 	FND_MESSAGE.Set_Name(  'FND', 'FORM_RECORD_DELETED');
881         APP_EXCEPTION.Raise_Exception;
882     end if;
883     CLOSE C;
884     if(
885                 (Recinfo.cash_receipt_id = p_icr_id )
886 	    AND (Recinfo.cash_receipt_line_id = p_icr_line_id)
887 	    AND (   (Recinfo.payment_amount = p_payment_amount)
888                 OR  (   (Recinfo.payment_amount IS NULL)
889                     AND (p_payment_amount IS NULL)))
890 	    AND (Recinfo.payment_schedule_id = p_payment_schedule_id)
891 	    AND (   (Recinfo.customer_trx_id = p_customer_trx_id)
892                 OR  (   (Recinfo.customer_trx_id IS NULL)
893                     AND (p_customer_trx_id IS NULL)))
894 	    AND (   (Recinfo.batch_id = p_batch_id)
895                 OR  (   (Recinfo.batch_id IS NULL)
896                     AND (p_batch_id IS NULL)))
897 	    AND (   (Recinfo.sold_to_customer = p_sold_to_customer)
898                 OR  (   (Recinfo.sold_to_customer IS NULL)
899                     AND (p_sold_to_customer IS NULL)))
900 	    AND (   (Recinfo.discount_taken = p_discount_taken)
901                 OR  (   (Recinfo.discount_taken IS NULL)
902                     AND (p_discount_taken IS NULL)))
903 	    AND (   (Recinfo.due_date = p_due_date)
904                 OR  (   (Recinfo.due_date IS NULL)
905                     AND (p_due_date IS NULL)))
906 	    AND (   (Recinfo.ussgl_transaction_code = p_ussgl_transaction_code)
907                 OR  (   (Recinfo.ussgl_transaction_code IS NULL)
908                     AND (p_ussgl_transaction_code IS NULL)))
909 	    AND (   (Recinfo.attribute_category = p_attribute_category)
910                 OR  (   (Recinfo.attribute_category IS NULL)
911                     AND (p_attribute_category IS NULL)))
912             AND (   (Recinfo.attribute1 = p_attribute1)
913                 OR  (   (Recinfo.attribute1 IS NULL)
914                     AND (p_attribute1 IS NULL)))
915             AND (   (Recinfo.attribute2 = p_attribute2)
916                 OR  (   (Recinfo.attribute2 IS NULL)
917                     AND (p_attribute2 IS NULL)))
918             AND (   (Recinfo.attribute3 = p_attribute3)
919                 OR  (   (Recinfo.attribute3 IS NULL)
920                     AND (p_attribute3 IS NULL)))
921             AND (   (Recinfo.attribute4 = p_attribute4)
922                 OR  (   (Recinfo.attribute4 IS NULL)
923                     AND (p_attribute4 IS NULL)))
924             AND (   (Recinfo.attribute5 = p_attribute5)
925                 OR  (   (Recinfo.attribute5 IS NULL)
926                     AND (p_attribute5 IS NULL)))
927             AND (   (Recinfo.attribute6 = p_attribute6)
928                 OR  (   (Recinfo.attribute6 IS NULL)
929                     AND (p_attribute6 IS NULL)))
930             AND (   (Recinfo.attribute7 = p_attribute7)
931                 OR  (   (Recinfo.attribute7 IS NULL)
932                     AND (p_attribute7 IS NULL)))
933             AND (   (Recinfo.attribute8 = p_attribute8)
934                 OR  (   (Recinfo.attribute8 IS NULL)
935                     AND (p_attribute8 IS NULL)))
936             AND (   (Recinfo.attribute9 = p_attribute9)
937                 OR  (   (Recinfo.attribute9 IS NULL)
938                     AND (p_attribute9 IS NULL)))
939             AND (   (Recinfo.attribute10 = p_attribute10)
940                 OR  (   (Recinfo.attribute10 IS NULL)
941                     AND (p_attribute10 IS NULL)))
942             AND (   (Recinfo.attribute11 = p_attribute11)
943                 OR  (   (Recinfo.attribute11 IS NULL)
944                     AND (p_attribute11 IS NULL)))
945             AND (   (Recinfo.attribute12 = p_attribute12)
946                 OR  (   (Recinfo.attribute12 IS NULL)
947                     AND (p_attribute12 IS NULL)))
948             AND (   (Recinfo.attribute13 = p_attribute13)
949                 OR  (   (Recinfo.attribute13 IS NULL)
950                     AND (p_attribute13 IS NULL)))
951             AND (   (Recinfo.attribute14 = p_attribute14)
952                 OR  (   (Recinfo.attribute14 IS NULL)
953                     AND (p_attribute14 IS NULL)))
954             AND (   (Recinfo.attribute15 = p_attribute15)
955                 OR  (   (Recinfo.attribute15 IS NULL)
956                     AND (p_attribute15 IS NULL)))
957             AND (   (Recinfo.global_attribute_category =
958 			 p_global_attribute_category)
959                 OR  (   (Recinfo.global_attribute_category IS NULL)
960                     AND (p_global_attribute_category IS NULL)))
961             AND (   (Recinfo.global_attribute1 = p_global_attribute1)
962                 OR  (   (Recinfo.global_attribute1 IS NULL)
963                     AND (p_global_attribute1 IS NULL)))
964             AND (   (Recinfo.global_attribute2 = p_global_attribute2)
965                 OR  (   (Recinfo.global_attribute2 IS NULL)
966                     AND (p_global_attribute2 IS NULL)))
967             AND (   (Recinfo.global_attribute3 = p_global_attribute3)
968                 OR  (   (Recinfo.global_attribute3 IS NULL)
969                     AND (p_global_attribute3 IS NULL)))
970             AND (   (Recinfo.global_attribute4 = p_global_attribute4)
971                 OR  (   (Recinfo.global_attribute4 IS NULL)
972                     AND (p_global_attribute4 IS NULL)))
973             AND (   (Recinfo.global_attribute5 = p_global_attribute5)
974                 OR  (   (Recinfo.global_attribute5 IS NULL)
975                     AND (p_global_attribute5 IS NULL)))
976             AND (   (Recinfo.global_attribute6 = p_global_attribute6)
977                 OR  (   (Recinfo.global_attribute6 IS NULL)
978                     AND (p_global_attribute6 IS NULL)))
979             AND (   (Recinfo.global_attribute7 = p_global_attribute7)
980                 OR  (   (Recinfo.global_attribute7 IS NULL)
981                     AND (p_global_attribute7 IS NULL)))
982             AND (   (Recinfo.global_attribute8 = p_global_attribute8)
983                 OR  (   (Recinfo.global_attribute8 IS NULL)
984                     AND (p_global_attribute8 IS NULL)))
985             AND (   (Recinfo.global_attribute9 = p_global_attribute9)
986                 OR  (   (Recinfo.global_attribute9 IS NULL)
987                     AND (p_global_attribute9 IS NULL)))
988             AND (   (Recinfo.global_attribute10 = p_global_attribute10)
989                 OR  (   (Recinfo.global_attribute10 IS NULL)
990                     AND (p_global_attribute10 IS NULL)))
991             AND (   (Recinfo.global_attribute11 = p_global_attribute11)
992                 OR  (   (Recinfo.global_attribute11 IS NULL)
993                     AND (p_global_attribute11 IS NULL)))
994             AND (   (Recinfo.global_attribute12 = p_global_attribute12)
995                 OR  (   (Recinfo.global_attribute12 IS NULL)
996                     AND (p_global_attribute12 IS NULL)))
997             AND (   (Recinfo.global_attribute13 = p_global_attribute13)
998                 OR  (   (Recinfo.global_attribute13 IS NULL)
999                     AND (p_global_attribute13 IS NULL)))
1000             AND (   (Recinfo.global_attribute14 = p_global_attribute14)
1001                 OR  (   (Recinfo.global_attribute14 IS NULL)
1002                     AND (p_global_attribute14 IS NULL)))
1003             AND (   (Recinfo.global_attribute15 = p_global_attribute15)
1004                 OR  (   (Recinfo.global_attribute15 IS NULL)
1005                     AND (p_global_attribute15 IS NULL)))
1006             AND (   (Recinfo.global_attribute16 = p_global_attribute16)
1007                 OR  (   (Recinfo.global_attribute16 IS NULL)
1008                     AND (p_global_attribute16 IS NULL)))
1009             AND (   (Recinfo.global_attribute17 = p_global_attribute17)
1010                 OR  (   (Recinfo.global_attribute17 IS NULL)
1011                     AND (p_global_attribute17 IS NULL)))
1012             AND (   (Recinfo.global_attribute18 = p_global_attribute18)
1013                 OR  (   (Recinfo.global_attribute18 IS NULL)
1014                     AND (p_global_attribute18 IS NULL)))
1015             AND (   (Recinfo.global_attribute19 = p_global_attribute19)
1016                 OR  (   (Recinfo.global_attribute19 IS NULL)
1017                     AND (p_global_attribute19 IS NULL)))
1018             AND (   (Recinfo.global_attribute20 = p_global_attribute20)
1019                 OR  (   (Recinfo.global_attribute20 IS NULL)
1020                     AND (p_global_attribute20 IS NULL)))
1021     ) then
1022         return;
1023     else
1024         FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
1025         APP_EXCEPTION.Raise_Exception;
1026     end if;
1027 END lock_row;
1028 --
1029 END ARP_RW_ICR_LINES_PKG;