DBA Data[Home] [Help]

PACKAGE BODY: APPS.CE_STAT_LINES_DML_PKG

Source


1 PACKAGE BODY CE_STAT_LINES_DML_PKG as
2 /* $Header: cestlthb.pls 120.5.12010000.2 2008/08/13 00:55:07 csutaria ship $ */
3 
4   FUNCTION body_revision RETURN VARCHAR2 IS
5   BEGIN
6 
7     RETURN '$Revision: 120.5.12010000.2 $';
8 
9   END body_revision;
10 
11   FUNCTION spec_revision RETURN VARCHAR2 IS
12   BEGIN
13 
14     RETURN G_spec_revision;
15 
16   END spec_revision;
17 
18   PROCEDURE Insert_Row(
19         X_Row_Id                IN OUT NOCOPY VARCHAR2,
20         X_statement_line_id     IN OUT NOCOPY NUMBER,
21 		X_statement_header_id   IN OUT NOCOPY NUMBER,
22         X_line_number           NUMBER,
23         X_trx_date              DATE,
24         X_trx_type              VARCHAR2,
25         X_trx_status            VARCHAR2,
26         X_trx_code              VARCHAR2,  --5131976
27         X_effective_date        IN OUT NOCOPY DATE,
28         X_bank_trx_number       VARCHAR2,
29         X_trx_text              VARCHAR2,
30         X_customer_text         VARCHAR2,
31         X_invoice_text          VARCHAR2,
32         X_bank_account_text     VARCHAR2,
33         X_amount                NUMBER,
34         X_charges_amount        NUMBER,
35         X_status                VARCHAR2,
36         X_created_by            NUMBER,
37         X_creation_date         DATE,
38         X_last_updated_by       NUMBER,
39         X_last_update_date      DATE,
40         X_currency_code         VARCHAR2,
41         X_original_amount       NUMBER,
42         X_exchange_rate         NUMBER,
43         X_exchange_rate_type    VARCHAR2,
44         X_exchange_rate_date    DATE,
45         X_attribute_category    VARCHAR2,
46         X_attribute1            VARCHAR2,
47         X_attribute2            VARCHAR2,
48         X_attribute3            VARCHAR2,
49         X_attribute4            VARCHAR2,
50         X_attribute5            VARCHAR2,
51         X_attribute6            VARCHAR2,
52         X_attribute7            VARCHAR2,
53         X_attribute8            VARCHAR2,
54         X_attribute9            VARCHAR2,
55         X_attribute10           VARCHAR2,
56         X_attribute11           VARCHAR2,
57         X_attribute12           VARCHAR2,
58         X_attribute13           VARCHAR2,
59         X_attribute14           VARCHAR2,
60         X_attribute15           VARCHAR2,
61     --5916290: GDF Changes
62         X_global_att_category   VARCHAR2,
63         X_global_attribute1     VARCHAR2,
64         X_global_attribute2     VARCHAR2,
65         X_global_attribute3     VARCHAR2,
66         X_global_attribute4     VARCHAR2,
67         X_global_attribute5     VARCHAR2,
68         X_global_attribute6     VARCHAR2,
69         X_global_attribute7     VARCHAR2,
70         X_global_attribute8     VARCHAR2,
71         X_global_attribute9     VARCHAR2,
72         X_global_attribute10    VARCHAR2,
73         X_global_attribute11    VARCHAR2,
74         X_global_attribute12    VARCHAR2,
75         X_global_attribute13    VARCHAR2,
76         X_global_attribute14    VARCHAR2,
77         X_global_attribute15    VARCHAR2,
78         X_global_attribute16    VARCHAR2,
79         X_global_attribute17    VARCHAR2,
80         X_global_attribute18    VARCHAR2,
81         X_global_attribute19    VARCHAR2,
82         X_global_attribute20    VARCHAR2
83         ) IS
84         CURSOR C IS SELECT rowid FROM CE_STATEMENT_LINES
85                  WHERE statement_line_id = X_Statement_line_Id;
86     CURSOR C1 IS SELECT ce_statement_lines_s.nextval from sys.dual;
87         CURSOR C2 IS SELECT NVL(MAX(line_number),0) + 10 FROM CE_STATEMENT_LINES
88                      WHERE statement_header_id = X_statement_header_Id;
89         CURSOR C3 IS SELECT ce_statement_headers_s.nextval FROM sys.dual;
90         sl_number    NUMBER;
91         line_type    VARCHAR2(20);
92         line_amount  NUMBER;
93     p_float_days DATE;
94     dates_out_of_range      EXCEPTION;
95       PRAGMA EXCEPTION_INIT(dates_out_of_range, -01841);
96 
97 
98    BEGIN
99     --
100     -- Determine new line number
101     --
102     IF( X_line_number IS NULL ) THEN
103       OPEN C2;
104       FETCH C2 INTO sl_number;
105       CLOSE C2;
106     ELSE
107       sl_number := X_line_number;
108     END IF;
109     --
110     -- X_statement_header would be NULL if passing from manual form, and header
111     -- is created on the fly
112     --
113     IF ( X_statement_header_id IS NULL) THEN
114       OPEN C3;
115       FETCH C3 INTO X_statement_header_id;
116       CLOSE C3;
117     END IF;
118     --
119     -- Determine a new statement_line_id
120     --
121     IF( X_statement_line_id IS NULL ) THEN
122       OPEN C1;
123       FETCH C1 into X_statement_line_id;
124       CLOSE C1;
125     END IF;
126     --
127     -- Determine the trx type of the statement line to be created
128     -- First check status of transaction, if 'STOP'/'VOID' check, create 'STOP' stmt line
129     -- If 'REVERSED' receipt, create 'NSF' stmt line.
130     --
131     IF( X_trx_status IN ( 'STOP INITIATED', 'VOIDED', 'V' )) THEN
132       line_type := 'STOP';
133     ELSIF( X_trx_status = 'REVERSED' ) THEN
134       line_type := 'NSF';
135     --
136     -- Then, if create line from ARP_AUTO_BANK_CLEAR.reconcile_trx (from stmt header)
137     -- X_trx_type is the type of transaction, which can be PAYMENT/CASH/RECEIPT/MISC
138     --
139     ELSIF( X_trx_type IN ('PAYMENT','PBATCH')) THEN
140       line_type := 'DEBIT';
141     ELSIF( X_trx_type IN ('CASH', 'RECEIPT','RBATCH')) THEN
142       line_type := 'CREDIT';
143       -- bug 5072557  -- remittance batches with negative amounts,
144       --                 set stmt ln type to misc payment
145       IF ((X_trx_type = 'RECEIPT') and ( X_original_amount < 0 ))  THEN
146         line_type := 'MISC_DEBIT';
147       END IF;
148     ELSIF( X_trx_type = 'MISC' ) THEN
149       IF( X_original_amount > 0 ) THEN
150         line_type := 'MISC_CREDIT';
151         line_amount := X_amount;
152       ELSE
153         line_type := 'MISC_DEBIT';
154         line_amount := -(X_amount);
155       END IF;
156     --
157     -- Last, create line from stmt line, which X_trx_type is the line defined by the user
158     --
159     ELSE
160     line_type := X_trx_type;
161         line_amount := X_amount;
162     END IF;
163     --
164     -- If X_effective_date is NULL and X_trx_code IS NOT NULL, determine the effective_date
165     -- by the float date of the X_trx_code
166     --
167 
168     IF(X_effective_date IS NULL) THEN
169       X_effective_date := X_trx_date;
170     /* bug 4435028 BAT: cannot get float_days, there can be multiple rows for each trx_code
171       IF(X_trx_code_id IS NULL) THEN
172     X_effective_date := X_trx_date;
173       ELSE
174       BEGIN
175     SELECT  X_trx_date + float_days
176     INTO    X_effective_date
177     FROM    ce_transaction_codes
178     WHERE   transaction_code_id = X_trx_code_id;
179       EXCEPTION
180     WHEN dates_out_of_range THEN
181     X_effective_date := NULL;
182       END;
183       END IF;
184     */
185     END IF;
186     --
187     INSERT INTO CE_STATEMENT_LINES
188          (statement_line_id,
189          statement_header_id,
190          line_number,
191          trx_date,
192          trx_type,
193          trx_code,
194          effective_date,
195          bank_trx_number,
196          trx_text,
197          customer_text,
198          invoice_text,
199          bank_account_text,
200          amount,
201          charges_amount,
202          status,
203          created_by,
204          creation_date,
205          last_updated_by,
206          last_update_date,
207          currency_code,
208          original_amount,
209          exchange_rate,
210          exchange_rate_type,
211          exchange_rate_date,
212          attribute_category,
213          attribute1,
214          attribute2,
215          attribute3,
216          attribute4,
217          attribute5,
218          attribute6,
219          attribute7,
220          attribute8,
221          attribute9,
222          attribute10,
223          attribute11,
224          attribute12,
225          attribute13,
226          attribute14,
227          attribute15,
228     -- 5916290: GDF Changes
229          global_attribute_category,
230          global_attribute1,
231          global_attribute2,
232          global_attribute3,
233          global_attribute4,
234          global_attribute5,
235          global_attribute6,
236          global_attribute7,
237          global_attribute8,
238          global_attribute9,
239          global_attribute10,
240          global_attribute11,
241          global_attribute12,
242          global_attribute13,
243          global_attribute14,
244          global_attribute15,
245          global_attribute16,
246          global_attribute17,
247          global_attribute18,
248          global_attribute19,
249          global_attribute20
250          ) VALUES (
251          X_statement_line_id,
252          X_statement_header_id,
253          sl_number,
254          X_trx_date,
255          line_type,
256          X_trx_code,
257          X_effective_date,
258          X_bank_trx_number,
259          X_trx_text,
260          X_customer_text,
261          X_invoice_text,
262          X_bank_account_text,
263          NVL(line_amount, X_amount),
264          X_charges_amount,
265          X_status,
266          X_created_by,
267          X_creation_date,
268          X_last_updated_by,
269          X_last_update_date,
270          X_currency_code,
271          abs(X_original_amount),
272          X_exchange_rate,
273          X_exchange_rate_type,
274          X_exchange_rate_date,
275          X_attribute_category,
276          X_attribute1,
277          X_attribute2,
278          X_attribute3,
279          X_attribute4,
280          X_attribute5,
281          X_attribute6,
282          X_attribute7,
283          X_attribute8,
284          X_attribute9,
285          X_attribute10,
286          X_attribute11,
287          X_attribute12,
288          X_attribute13,
289          X_attribute14,
290          X_attribute15,
291          X_global_att_category,
292          X_global_attribute1,
293          X_global_attribute2,
294          X_global_attribute3,
295          X_global_attribute4,
296          X_global_attribute5,
297          X_global_attribute6,
298          X_global_attribute7,
299          X_global_attribute8,
300          X_global_attribute9,
301          X_global_attribute10,
302          X_global_attribute11,
303          X_global_attribute12,
304          X_global_attribute13,
305          X_global_attribute14,
306          X_global_attribute15,
307          X_global_attribute16,
308          X_global_attribute17,
309          X_global_attribute18,
310          X_global_attribute19,
311          X_global_attribute20);
312     OPEN C;
313     FETCH C INTO X_Row_Id;
314     if (C%NOTFOUND) then
315       CLOSE C;
316       Raise NO_DATA_FOUND;
317     end if;
318     CLOSE C;
319   END insert_row;
320 
321   PROCEDURE Delete_Row( X_Row_Id VARCHAR2 ) IS
322   BEGIN
323     DELETE FROM CE_STATEMENT_LINES
324     WHERE rowid = X_Row_Id;
325 
326     if (SQL%NOTFOUND) then
327       Raise NO_DATA_FOUND;
328     end if;
329   END Delete_Row;
330 
331   PROCEDURE Update_Row (
332         X_Row_Id                VARCHAR2,
333         X_statement_line_id     NUMBER,
334         X_statement_header_id   NUMBER,
335         X_line_number           NUMBER,
336         X_trx_date              DATE,
337         X_trx_type              VARCHAR2,
338         X_trx_code              VARCHAR2, --5131976
339         X_effective_date        DATE,
340         X_bank_trx_number       VARCHAR2,
341         X_trx_text              VARCHAR2,
342         X_customer_text         VARCHAR2,
343         X_invoice_text          VARCHAR2,
344         X_bank_account_text     VARCHAR2,
345         X_amount                NUMBER,
346         X_charges_amount        NUMBER,
347         X_status                VARCHAR2,
348         X_last_updated_by       NUMBER,
349         X_last_update_date      DATE,
350         X_attribute_category    VARCHAR2,
351         X_original_amount       NUMBER,
352         X_currency_code         VARCHAR2,
353         X_exchange_rate         NUMBER,
354         X_exchange_rate_type    VARCHAR2,
355         X_exchange_rate_date    DATE,
356         X_attribute1            VARCHAR2,
357         X_attribute2            VARCHAR2,
358         X_attribute3            VARCHAR2,
359         X_attribute4            VARCHAR2,
360         X_attribute5            VARCHAR2,
361         X_attribute6            VARCHAR2,
362         X_attribute7            VARCHAR2,
363         X_attribute8            VARCHAR2,
364         X_attribute9            VARCHAR2,
365         X_attribute10           VARCHAR2,
366         X_attribute11           VARCHAR2,
367         X_attribute12           VARCHAR2,
368         X_attribute13           VARCHAR2,
369         X_attribute14           VARCHAR2,
370         X_attribute15           VARCHAR2,
371     --5916290: GDF Changes
372         X_global_att_category   VARCHAR2,
373         X_global_attribute1     VARCHAR2,
374         X_global_attribute2     VARCHAR2,
375         X_global_attribute3     VARCHAR2,
376         X_global_attribute4     VARCHAR2,
377         X_global_attribute5     VARCHAR2,
378         X_global_attribute6     VARCHAR2,
379         X_global_attribute7     VARCHAR2,
380         X_global_attribute8     VARCHAR2,
381         X_global_attribute9     VARCHAR2,
382         X_global_attribute10    VARCHAR2,
383         X_global_attribute11    VARCHAR2,
384         X_global_attribute12    VARCHAR2,
385         X_global_attribute13    VARCHAR2,
386         X_global_attribute14    VARCHAR2,
387         X_global_attribute15    VARCHAR2,
388         X_global_attribute16    VARCHAR2,
389         X_global_attribute17    VARCHAR2,
390         X_global_attribute18    VARCHAR2,
391         X_global_attribute19    VARCHAR2,
392         X_global_attribute20    VARCHAR2
393         ) IS
394   BEGIN
395     UPDATE CE_STATEMENT_LINES
396     SET
397        statement_line_id = X_statement_line_id,
398        statement_header_id = X_statement_header_id,
399        line_number = X_line_number,
400        trx_date = X_trx_date,
401        trx_type = X_trx_type,
402        trx_code = X_trx_code,
403        effective_date = X_effective_date,
404        bank_trx_number = X_bank_trx_number,
405        trx_text = X_trx_text,
406        customer_text = X_customer_text,
407        invoice_text = X_invoice_text,
408        bank_account_text = X_bank_account_text,
409        amount = X_amount,
410        charges_amount= X_charges_amount,
411        status = X_status,
412        last_updated_by = X_last_updated_by,
413        last_update_date = X_last_update_date,
414        attribute_category = X_attribute_category,
415        original_amount = X_original_amount,
416        currency_code = X_currency_code,
417        exchange_rate = X_exchange_rate,
418        exchange_rate_type = X_exchange_rate_type,
419        exchange_rate_date = X_exchange_rate_date,
420        attribute1 = X_attribute1,
421        attribute2 = X_attribute2,
422        attribute3 = X_attribute3,
423        attribute4 = X_attribute4,
424        attribute5 = X_attribute5,
425        attribute6 = X_attribute6,
426        attribute7 = X_attribute7,
427        attribute8 = X_attribute8,
428        attribute9 = X_attribute9,
429        attribute10 = X_attribute10,
430        attribute11 = X_attribute11,
431        attribute12 = X_attribute12,
432        attribute13 = X_attribute13,
433        attribute14 = X_attribute14,
434        attribute15 = X_attribute15,
435     --Bug 6899211
436        global_attribute_category = X_global_att_category,
437     --5916290: GDF Changes
438        global_attribute1 = X_global_attribute1,
439        global_attribute2 = X_global_attribute2,
440        global_attribute3 = X_global_attribute3,
441        global_attribute4 = X_global_attribute4,
442        global_attribute5 = X_global_attribute5,
443        global_attribute6 = X_global_attribute6,
444        global_attribute7 = X_global_attribute7,
445        global_attribute8 = X_global_attribute8,
446        global_attribute9 = X_global_attribute9,
447        global_attribute10 = X_global_attribute10,
448        global_attribute11 = X_global_attribute11,
449        global_attribute12 = X_global_attribute12,
450        global_attribute13 = X_global_attribute13,
451        global_attribute14 = X_global_attribute14,
452        global_attribute15 = X_global_attribute15,
453        global_attribute16 = X_global_attribute16,
454        global_attribute17 = X_global_attribute17,
455        global_attribute18 = X_global_attribute18,
456        global_attribute19 = X_global_attribute19,
457        global_attribute20 = X_global_attribute20
458     WHERE rowid = X_Row_Id;
459     if (SQL%NOTFOUND) then
460       Raise NO_DATA_FOUND;
461     end if;
462   END Update_Row;
463 
464   PROCEDURE Lock_Row(
465         X_Row_Id                VARCHAR2,
466         X_statement_line_id     NUMBER,
467         X_statement_header_id   NUMBER,
468         X_line_number           NUMBER,
469         X_trx_date              DATE,
470         X_trx_type              VARCHAR2,
471         X_trx_code              VARCHAR2, --5131976
472         X_effective_date        DATE,
473         X_bank_trx_number       VARCHAR2,
474         X_trx_text              VARCHAR2,
475         X_customer_text         VARCHAR2,
476         X_invoice_text          VARCHAR2,
477         X_bank_account_text     VARCHAR2,
478         X_amount                NUMBER,
479         X_charges_amount        NUMBER,
480         X_status                VARCHAR2,
481         X_original_amount       NUMBER,
482         X_currency_code         VARCHAR2,
483         X_exchange_rate         NUMBER,
484         X_exchange_rate_type    VARCHAR2,
485         X_exchange_rate_date    DATE,
486         X_attribute_category    VARCHAR2,
487         X_attribute1            VARCHAR2,
488         X_attribute2            VARCHAR2,
489         X_attribute3            VARCHAR2,
490         X_attribute4            VARCHAR2,
491         X_attribute5            VARCHAR2,
492         X_attribute6            VARCHAR2,
493         X_attribute7            VARCHAR2,
494         X_attribute8            VARCHAR2,
495         X_attribute9            VARCHAR2,
496         X_attribute10           VARCHAR2,
497         X_attribute11           VARCHAR2,
498         X_attribute12           VARCHAR2,
499         X_attribute13           VARCHAR2,
503         X_global_att_category   VARCHAR2,
500         X_attribute14           VARCHAR2,
501         X_attribute15           VARCHAR2,
502     --5916290: GDF Changes
504         X_global_attribute1     VARCHAR2,
505         X_global_attribute2     VARCHAR2,
506         X_global_attribute3     VARCHAR2,
507         X_global_attribute4     VARCHAR2,
508         X_global_attribute5     VARCHAR2,
509         X_global_attribute6     VARCHAR2,
510         X_global_attribute7     VARCHAR2,
511         X_global_attribute8     VARCHAR2,
512         X_global_attribute9     VARCHAR2,
513         X_global_attribute10    VARCHAR2,
514         X_global_attribute11    VARCHAR2,
515         X_global_attribute12    VARCHAR2,
516         X_global_attribute13    VARCHAR2,
517         X_global_attribute14    VARCHAR2,
518         X_global_attribute15    VARCHAR2,
519         X_global_attribute16    VARCHAR2,
520         X_global_attribute17    VARCHAR2,
521         X_global_attribute18    VARCHAR2,
522         X_global_attribute19    VARCHAR2,
523         X_global_attribute20    VARCHAR2
524         ) IS
525     CURSOR C IS
526     SELECT *
527     FROM CE_STATEMENT_LINES
528     WHERE rowid = X_Row_Id
529     FOR UPDATE OF statement_line_id NOWAIT;
530     Recinfo C%ROWTYPE;
531   BEGIN
532     OPEN C;
533     FETCH C INTO Recinfo;
534     IF (C%NOTFOUND) THEN
535       CLOSE C;
536       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
537       APP_EXCEPTION.raise_exception;
538     END IF;
539     CLOSE C;
540     if (
541            (Recinfo.statement_line_id = X_statement_line_id )
542        AND (Recinfo.statement_header_id = X_statement_header_id )
543        AND (Recinfo.line_number = X_line_number )
544        AND (Recinfo.trx_date = X_trx_date )
545        AND (Recinfo.trx_type = X_trx_type )
546        AND (Recinfo.amount = X_amount )
547        AND (Recinfo.status = X_status )
548        AND (    (   (Recinfo.trx_code = X_trx_code )
549              OR (    (Recinfo.trx_code IS NULL)
550                  AND (X_trx_code IS NULL))))
551        AND (    (   (Recinfo.effective_date = X_effective_date )
552              OR (    (Recinfo.effective_date IS NULL)
553                  AND (X_effective_date IS NULL))))
554        AND (    (   (Recinfo.bank_trx_number = X_bank_trx_number )
555              OR (    (Recinfo.bank_trx_number IS NULL)
556                  AND (X_bank_trx_number IS NULL))))
557        AND (    (   (Recinfo.trx_text = X_trx_text )
558              OR (    (Recinfo.trx_text IS NULL)
559                  AND (X_trx_text IS NULL))))
560        AND (    (   (Recinfo.customer_text = X_customer_text )
561              OR (    (Recinfo.customer_text IS NULL)
562                  AND (X_customer_text IS NULL))))
563        AND (    (   (Recinfo.invoice_text = X_invoice_text )
564              OR (    (Recinfo.invoice_text IS NULL)
565                  AND (X_invoice_text IS NULL))))
566        AND (    (   (Recinfo.bank_account_text = X_bank_account_text )
567              OR (    (Recinfo.bank_account_text IS NULL)
568                  AND (X_bank_account_text IS NULL))))
569        AND  (    (   (Recinfo.original_amount = X_original_amount )
570              OR (    (Recinfo.original_amount IS NULL)
571                  AND (X_original_amount IS NULL))))
572        AND  (    (   (Recinfo.charges_amount = X_charges_amount )
573              OR (    (Recinfo.charges_amount IS NULL)
574                  AND (X_charges_amount IS NULL))))
575        AND (    (   (Recinfo.currency_code = X_currency_code )
576              OR (    (Recinfo.currency_code IS NULL)
577                  AND (X_currency_code IS NULL))))
578        AND (    (   (Recinfo.exchange_rate = X_exchange_rate )
579              OR (    (Recinfo.exchange_rate IS NULL)
580                  AND (X_exchange_rate IS NULL))))
581        AND (    (   (Recinfo.exchange_rate_type = X_exchange_rate_type )
582              OR (    (Recinfo.exchange_rate_type IS NULL)
583                  AND (X_exchange_rate_type IS NULL))))
584        AND (    (   (Recinfo.exchange_rate_date = X_exchange_rate_date )
585              OR (    (Recinfo.exchange_rate_date IS NULL)
586                  AND (X_exchange_rate_date IS NULL))))
587        AND (    (   (Recinfo.attribute_category = X_attribute_category )
588              OR (    (Recinfo.attribute_category IS NULL)
589                  AND (X_attribute_category IS NULL))))
590        AND (    (   (Recinfo.attribute1 = X_attribute1 )
591              OR (    (Recinfo.attribute1 IS NULL)
592                  AND (X_attribute1 IS NULL))))
593        AND (    (   (Recinfo.attribute2 = X_attribute2 )
594              OR (    (Recinfo.attribute2 IS NULL)
595                  AND (X_attribute2 IS NULL))))
596        AND (    (   (Recinfo.attribute3 = X_attribute3 )
597              OR (    (Recinfo.attribute3 IS NULL)
598                  AND (X_attribute3 IS NULL))))
599        AND (    (   (Recinfo.attribute4 = X_attribute4 )
600              OR (    (Recinfo.attribute4 IS NULL)
601                  AND (X_attribute4 IS NULL))))
602        AND (    (   (Recinfo.attribute5 = X_attribute5 )
603              OR (    (Recinfo.attribute5 IS NULL)
604                  AND (X_attribute5 IS NULL))))
605        AND (    (   (Recinfo.attribute6 = X_attribute6 )
606              OR (    (Recinfo.attribute6 IS NULL)
607                  AND (X_attribute6 IS NULL))))
608        AND (    (   (Recinfo.attribute7 = X_attribute7 )
609              OR (    (Recinfo.attribute7 IS NULL)
610                  AND (X_attribute7 IS NULL))))
611        AND (    (   (Recinfo.attribute8 = X_attribute8 )
612              OR (    (Recinfo.attribute8 IS NULL)
613                  AND (X_attribute8 IS NULL))))
614        AND (    (   (Recinfo.attribute9 = X_attribute9 )
615              OR (    (Recinfo.attribute9 IS NULL)
616                  AND (X_attribute9 IS NULL))))
617        AND (    (   (Recinfo.attribute10 = X_attribute10 )
618              OR (    (Recinfo.attribute10 IS NULL)
619                  AND (X_attribute10 IS NULL))))
620        AND (    (   (Recinfo.attribute11 = X_attribute11 )
621              OR (    (Recinfo.attribute11 IS NULL)
622                  AND (X_attribute11 IS NULL))))
623        AND (    (   (Recinfo.attribute12 = X_attribute12 )
624              OR (    (Recinfo.attribute12 IS NULL)
625                  AND (X_attribute12 IS NULL))))
626        AND (    (   (Recinfo.attribute13 = X_attribute13 )
627              OR (    (Recinfo.attribute13 IS NULL)
628                  AND (X_attribute13 IS NULL))))
629        AND (    (   (Recinfo.attribute14 = X_attribute14 )
630              OR (    (Recinfo.attribute14 IS NULL)
631                  AND (X_attribute14 IS NULL))))
632        AND (    (   (Recinfo.attribute15 = X_attribute15 )
633              OR (    (Recinfo.attribute15 IS NULL)
634                  AND (X_attribute15 IS NULL))))
635     --5916290: GDF Changes
636        AND (    (   (Recinfo.global_attribute_category = X_global_att_category)
637         OR (    (Recinfo.global_attribute_category IS NULL)
638            AND (X_global_att_category IS NULL))))
639        AND (    (   (Recinfo.global_attribute1 = X_global_attribute1)
640         OR (    (Recinfo.global_attribute1 IS NULL)
641            AND (X_global_attribute1 IS NULL))))
642        AND (    (   (Recinfo.global_attribute2 = X_global_attribute2)
643         OR (    (Recinfo.global_attribute2 IS NULL)
644            AND (X_global_attribute2 IS NULL))))
645        AND (    (   (Recinfo.global_attribute3 = X_global_attribute3)
646         OR (    (Recinfo.global_attribute3 IS NULL)
647            AND (X_global_attribute3 IS NULL))))
648        AND (    (   (Recinfo.global_attribute4 = X_global_attribute4)
649         OR (    (Recinfo.global_attribute4 IS NULL)
650            AND (X_global_attribute4 IS NULL))))
651        AND (    (   (Recinfo.global_attribute5 = X_global_attribute5)
652         OR (    (Recinfo.global_attribute5 IS NULL)
653            AND (X_global_attribute5 IS NULL))))
654        AND (    (   (Recinfo.global_attribute6 = X_global_attribute6)
655         OR (    (Recinfo.global_attribute6 IS NULL)
656            AND (X_global_attribute6 IS NULL))))
657        AND (    (   (Recinfo.global_attribute7 = X_global_attribute7)
658         OR (    (Recinfo.global_attribute7 IS NULL)
659            AND (X_global_attribute7 IS NULL))))
660        AND (    (   (Recinfo.global_attribute8 = X_global_attribute8)
661         OR (    (Recinfo.global_attribute8 IS NULL)
662            AND (X_global_attribute8 IS NULL))))
663        AND (    (   (Recinfo.global_attribute9 = X_global_attribute9)
664         OR (    (Recinfo.global_attribute9 IS NULL)
665            AND (X_global_attribute9 IS NULL))))
666        AND (    (   (Recinfo.global_attribute10 = X_global_attribute10)
667         OR (    (Recinfo.global_attribute10 IS NULL)
668            AND (X_global_attribute10 IS NULL))))
669        AND (    (   (Recinfo.global_attribute11 = X_global_attribute11)
670         OR (    (Recinfo.global_attribute11 IS NULL)
671            AND (X_global_attribute11 IS NULL))))
672        AND (    (   (Recinfo.global_attribute12 = X_global_attribute12)
673         OR (    (Recinfo.global_attribute12 IS NULL)
674            AND (X_global_attribute12 IS NULL))))
675        AND (    (   (Recinfo.global_attribute13 = X_global_attribute13)
676         OR (    (Recinfo.global_attribute13 IS NULL)
677            AND (X_global_attribute13 IS NULL))))
678        AND (    (   (Recinfo.global_attribute14 = X_global_attribute14)
679         OR (    (Recinfo.global_attribute14 IS NULL)
680            AND (X_global_attribute14 IS NULL))))
681        AND (    (   (Recinfo.global_attribute15 = X_global_attribute15)
682         OR (    (Recinfo.global_attribute15 IS NULL)
683            AND (X_global_attribute15 IS NULL))))
684        AND (    (   (Recinfo.global_attribute16 = X_global_attribute16)
685         OR (    (Recinfo.global_attribute16 IS NULL)
686            AND (X_global_attribute16 IS NULL))))
687        AND (    (   (Recinfo.global_attribute17 = X_global_attribute17)
688         OR (    (Recinfo.global_attribute17 IS NULL)
689            AND (X_global_attribute17 IS NULL))))
690        AND (    (   (Recinfo.global_attribute18 = X_global_attribute18)
691         OR (    (Recinfo.global_attribute18 IS NULL)
692            AND (X_global_attribute18 IS NULL))))
693        AND (    (   (Recinfo.global_attribute19 = X_global_attribute19)
694         OR (    (Recinfo.global_attribute19 IS NULL)
695            AND (X_global_attribute19 IS NULL))))
696        AND (    (   (Recinfo.global_attribute20 = X_global_attribute20)
697         OR (    (Recinfo.global_attribute20 IS NULL)
698            AND (X_global_attribute20 IS NULL))))
699        ) THEN
700         return;
701     ELSE
702       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
703       APP_EXCEPTION.raise_exception;
704     END IF;
705   END Lock_Row;
706 
707 END CE_STAT_LINES_DML_PKG;