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.3 2009/12/02 08:17:15 ckansara ship $ */
3 
4   FUNCTION body_revision RETURN VARCHAR2 IS
5   BEGIN
6 
7     RETURN '$Revision: 120.5.12010000.3 $';
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   L_STMT_LINE_ID CE_STATEMENT_LINES.STATEMENT_LINE_ID%TYPE; -- Bug 9099087
323   BEGIN
324     -- Bug 9099087 Start
325 	SELECT STATEMENT_LINE_ID INTO L_STMT_LINE_ID
326 	FROM CE_STATEMENT_LINES
327     WHERE rowid = X_Row_Id;
328 
329 	DELETE FROM CE_STATEMENT_RECONCILS_ALL
330 	WHERE STATEMENT_LINE_ID = L_STMT_LINE_ID;
331 
332 	-- Bug 9099087 Start
333 
334     DELETE FROM CE_STATEMENT_LINES
335     WHERE rowid = X_Row_Id;
336 
337     if (SQL%NOTFOUND) then
338       Raise NO_DATA_FOUND;
339     end if;
340   END Delete_Row;
341 
342   PROCEDURE Update_Row (
343         X_Row_Id                VARCHAR2,
344         X_statement_line_id     NUMBER,
345         X_statement_header_id   NUMBER,
346         X_line_number           NUMBER,
347         X_trx_date              DATE,
348         X_trx_type              VARCHAR2,
349         X_trx_code              VARCHAR2, --5131976
350         X_effective_date        DATE,
351         X_bank_trx_number       VARCHAR2,
352         X_trx_text              VARCHAR2,
353         X_customer_text         VARCHAR2,
354         X_invoice_text          VARCHAR2,
355         X_bank_account_text     VARCHAR2,
356         X_amount                NUMBER,
357         X_charges_amount        NUMBER,
358         X_status                VARCHAR2,
359         X_last_updated_by       NUMBER,
360         X_last_update_date      DATE,
361         X_attribute_category    VARCHAR2,
362         X_original_amount       NUMBER,
363         X_currency_code         VARCHAR2,
364         X_exchange_rate         NUMBER,
365         X_exchange_rate_type    VARCHAR2,
366         X_exchange_rate_date    DATE,
367         X_attribute1            VARCHAR2,
368         X_attribute2            VARCHAR2,
369         X_attribute3            VARCHAR2,
370         X_attribute4            VARCHAR2,
371         X_attribute5            VARCHAR2,
372         X_attribute6            VARCHAR2,
373         X_attribute7            VARCHAR2,
374         X_attribute8            VARCHAR2,
375         X_attribute9            VARCHAR2,
376         X_attribute10           VARCHAR2,
377         X_attribute11           VARCHAR2,
378         X_attribute12           VARCHAR2,
379         X_attribute13           VARCHAR2,
380         X_attribute14           VARCHAR2,
381         X_attribute15           VARCHAR2,
382     --5916290: GDF Changes
383         X_global_att_category   VARCHAR2,
384         X_global_attribute1     VARCHAR2,
385         X_global_attribute2     VARCHAR2,
386         X_global_attribute3     VARCHAR2,
387         X_global_attribute4     VARCHAR2,
388         X_global_attribute5     VARCHAR2,
389         X_global_attribute6     VARCHAR2,
390         X_global_attribute7     VARCHAR2,
391         X_global_attribute8     VARCHAR2,
392         X_global_attribute9     VARCHAR2,
393         X_global_attribute10    VARCHAR2,
394         X_global_attribute11    VARCHAR2,
395         X_global_attribute12    VARCHAR2,
396         X_global_attribute13    VARCHAR2,
397         X_global_attribute14    VARCHAR2,
398         X_global_attribute15    VARCHAR2,
399         X_global_attribute16    VARCHAR2,
400         X_global_attribute17    VARCHAR2,
401         X_global_attribute18    VARCHAR2,
402         X_global_attribute19    VARCHAR2,
403         X_global_attribute20    VARCHAR2
404         ) IS
405   BEGIN
406     UPDATE CE_STATEMENT_LINES
407     SET
408        statement_line_id = X_statement_line_id,
409        statement_header_id = X_statement_header_id,
410        line_number = X_line_number,
411        trx_date = X_trx_date,
412        trx_type = X_trx_type,
413        trx_code = X_trx_code,
414        effective_date = X_effective_date,
415        bank_trx_number = X_bank_trx_number,
416        trx_text = X_trx_text,
417        customer_text = X_customer_text,
418        invoice_text = X_invoice_text,
419        bank_account_text = X_bank_account_text,
420        amount = X_amount,
421        charges_amount= X_charges_amount,
422        status = X_status,
423        last_updated_by = X_last_updated_by,
424        last_update_date = X_last_update_date,
425        attribute_category = X_attribute_category,
426        original_amount = X_original_amount,
427        currency_code = X_currency_code,
428        exchange_rate = X_exchange_rate,
432        attribute2 = X_attribute2,
429        exchange_rate_type = X_exchange_rate_type,
430        exchange_rate_date = X_exchange_rate_date,
431        attribute1 = X_attribute1,
433        attribute3 = X_attribute3,
434        attribute4 = X_attribute4,
435        attribute5 = X_attribute5,
436        attribute6 = X_attribute6,
437        attribute7 = X_attribute7,
438        attribute8 = X_attribute8,
439        attribute9 = X_attribute9,
440        attribute10 = X_attribute10,
441        attribute11 = X_attribute11,
442        attribute12 = X_attribute12,
443        attribute13 = X_attribute13,
444        attribute14 = X_attribute14,
445        attribute15 = X_attribute15,
446     --Bug 6899211
447        global_attribute_category = X_global_att_category,
448     --5916290: GDF Changes
449        global_attribute1 = X_global_attribute1,
450        global_attribute2 = X_global_attribute2,
451        global_attribute3 = X_global_attribute3,
452        global_attribute4 = X_global_attribute4,
453        global_attribute5 = X_global_attribute5,
454        global_attribute6 = X_global_attribute6,
455        global_attribute7 = X_global_attribute7,
456        global_attribute8 = X_global_attribute8,
457        global_attribute9 = X_global_attribute9,
458        global_attribute10 = X_global_attribute10,
459        global_attribute11 = X_global_attribute11,
460        global_attribute12 = X_global_attribute12,
461        global_attribute13 = X_global_attribute13,
462        global_attribute14 = X_global_attribute14,
463        global_attribute15 = X_global_attribute15,
464        global_attribute16 = X_global_attribute16,
465        global_attribute17 = X_global_attribute17,
466        global_attribute18 = X_global_attribute18,
467        global_attribute19 = X_global_attribute19,
468        global_attribute20 = X_global_attribute20
469     WHERE rowid = X_Row_Id;
470     if (SQL%NOTFOUND) then
471       Raise NO_DATA_FOUND;
472     end if;
473   END Update_Row;
474 
475   PROCEDURE Lock_Row(
476         X_Row_Id                VARCHAR2,
477         X_statement_line_id     NUMBER,
478         X_statement_header_id   NUMBER,
479         X_line_number           NUMBER,
480         X_trx_date              DATE,
481         X_trx_type              VARCHAR2,
482         X_trx_code              VARCHAR2, --5131976
483         X_effective_date        DATE,
484         X_bank_trx_number       VARCHAR2,
485         X_trx_text              VARCHAR2,
486         X_customer_text         VARCHAR2,
487         X_invoice_text          VARCHAR2,
488         X_bank_account_text     VARCHAR2,
489         X_amount                NUMBER,
490         X_charges_amount        NUMBER,
491         X_status                VARCHAR2,
492         X_original_amount       NUMBER,
493         X_currency_code         VARCHAR2,
494         X_exchange_rate         NUMBER,
495         X_exchange_rate_type    VARCHAR2,
496         X_exchange_rate_date    DATE,
497         X_attribute_category    VARCHAR2,
498         X_attribute1            VARCHAR2,
499         X_attribute2            VARCHAR2,
500         X_attribute3            VARCHAR2,
501         X_attribute4            VARCHAR2,
502         X_attribute5            VARCHAR2,
503         X_attribute6            VARCHAR2,
504         X_attribute7            VARCHAR2,
505         X_attribute8            VARCHAR2,
506         X_attribute9            VARCHAR2,
507         X_attribute10           VARCHAR2,
508         X_attribute11           VARCHAR2,
509         X_attribute12           VARCHAR2,
510         X_attribute13           VARCHAR2,
511         X_attribute14           VARCHAR2,
512         X_attribute15           VARCHAR2,
513     --5916290: GDF Changes
514         X_global_att_category   VARCHAR2,
515         X_global_attribute1     VARCHAR2,
516         X_global_attribute2     VARCHAR2,
517         X_global_attribute3     VARCHAR2,
518         X_global_attribute4     VARCHAR2,
519         X_global_attribute5     VARCHAR2,
520         X_global_attribute6     VARCHAR2,
521         X_global_attribute7     VARCHAR2,
522         X_global_attribute8     VARCHAR2,
523         X_global_attribute9     VARCHAR2,
524         X_global_attribute10    VARCHAR2,
525         X_global_attribute11    VARCHAR2,
526         X_global_attribute12    VARCHAR2,
527         X_global_attribute13    VARCHAR2,
528         X_global_attribute14    VARCHAR2,
529         X_global_attribute15    VARCHAR2,
530         X_global_attribute16    VARCHAR2,
531         X_global_attribute17    VARCHAR2,
532         X_global_attribute18    VARCHAR2,
533         X_global_attribute19    VARCHAR2,
534         X_global_attribute20    VARCHAR2
535         ) IS
536     CURSOR C IS
537     SELECT *
538     FROM CE_STATEMENT_LINES
539     WHERE rowid = X_Row_Id
540     FOR UPDATE OF statement_line_id NOWAIT;
541     Recinfo C%ROWTYPE;
542   BEGIN
543     OPEN C;
544     FETCH C INTO Recinfo;
545     IF (C%NOTFOUND) THEN
546       CLOSE C;
547       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
548       APP_EXCEPTION.raise_exception;
549     END IF;
550     CLOSE C;
551     if (
552            (Recinfo.statement_line_id = X_statement_line_id )
553        AND (Recinfo.statement_header_id = X_statement_header_id )
554        AND (Recinfo.line_number = X_line_number )
555        AND (Recinfo.trx_date = X_trx_date )
556        AND (Recinfo.trx_type = X_trx_type )
557        AND (Recinfo.amount = X_amount )
558        AND (Recinfo.status = X_status )
559        AND (    (   (Recinfo.trx_code = X_trx_code )
560              OR (    (Recinfo.trx_code IS NULL)
561                  AND (X_trx_code IS NULL))))
562        AND (    (   (Recinfo.effective_date = X_effective_date )
566              OR (    (Recinfo.bank_trx_number IS NULL)
563              OR (    (Recinfo.effective_date IS NULL)
564                  AND (X_effective_date IS NULL))))
565        AND (    (   (Recinfo.bank_trx_number = X_bank_trx_number )
567                  AND (X_bank_trx_number IS NULL))))
568        AND (    (   (Recinfo.trx_text = X_trx_text )
569              OR (    (Recinfo.trx_text IS NULL)
570                  AND (X_trx_text IS NULL))))
571        AND (    (   (Recinfo.customer_text = X_customer_text )
572              OR (    (Recinfo.customer_text IS NULL)
573                  AND (X_customer_text IS NULL))))
574        AND (    (   (Recinfo.invoice_text = X_invoice_text )
575              OR (    (Recinfo.invoice_text IS NULL)
576                  AND (X_invoice_text IS NULL))))
577        AND (    (   (Recinfo.bank_account_text = X_bank_account_text )
578              OR (    (Recinfo.bank_account_text IS NULL)
579                  AND (X_bank_account_text IS NULL))))
580        AND  (    (   (Recinfo.original_amount = X_original_amount )
581              OR (    (Recinfo.original_amount IS NULL)
582                  AND (X_original_amount IS NULL))))
583        AND  (    (   (Recinfo.charges_amount = X_charges_amount )
584              OR (    (Recinfo.charges_amount IS NULL)
585                  AND (X_charges_amount IS NULL))))
586        AND (    (   (Recinfo.currency_code = X_currency_code )
587              OR (    (Recinfo.currency_code IS NULL)
588                  AND (X_currency_code IS NULL))))
589        AND (    (   (Recinfo.exchange_rate = X_exchange_rate )
590              OR (    (Recinfo.exchange_rate IS NULL)
591                  AND (X_exchange_rate IS NULL))))
592        AND (    (   (Recinfo.exchange_rate_type = X_exchange_rate_type )
593              OR (    (Recinfo.exchange_rate_type IS NULL)
594                  AND (X_exchange_rate_type IS NULL))))
595        AND (    (   (Recinfo.exchange_rate_date = X_exchange_rate_date )
596              OR (    (Recinfo.exchange_rate_date IS NULL)
597                  AND (X_exchange_rate_date IS NULL))))
598        AND (    (   (Recinfo.attribute_category = X_attribute_category )
599              OR (    (Recinfo.attribute_category IS NULL)
600                  AND (X_attribute_category IS NULL))))
601        AND (    (   (Recinfo.attribute1 = X_attribute1 )
602              OR (    (Recinfo.attribute1 IS NULL)
603                  AND (X_attribute1 IS NULL))))
604        AND (    (   (Recinfo.attribute2 = X_attribute2 )
605              OR (    (Recinfo.attribute2 IS NULL)
606                  AND (X_attribute2 IS NULL))))
607        AND (    (   (Recinfo.attribute3 = X_attribute3 )
608              OR (    (Recinfo.attribute3 IS NULL)
609                  AND (X_attribute3 IS NULL))))
610        AND (    (   (Recinfo.attribute4 = X_attribute4 )
611              OR (    (Recinfo.attribute4 IS NULL)
612                  AND (X_attribute4 IS NULL))))
613        AND (    (   (Recinfo.attribute5 = X_attribute5 )
614              OR (    (Recinfo.attribute5 IS NULL)
615                  AND (X_attribute5 IS NULL))))
616        AND (    (   (Recinfo.attribute6 = X_attribute6 )
617              OR (    (Recinfo.attribute6 IS NULL)
618                  AND (X_attribute6 IS NULL))))
619        AND (    (   (Recinfo.attribute7 = X_attribute7 )
620              OR (    (Recinfo.attribute7 IS NULL)
621                  AND (X_attribute7 IS NULL))))
622        AND (    (   (Recinfo.attribute8 = X_attribute8 )
623              OR (    (Recinfo.attribute8 IS NULL)
624                  AND (X_attribute8 IS NULL))))
625        AND (    (   (Recinfo.attribute9 = X_attribute9 )
626              OR (    (Recinfo.attribute9 IS NULL)
627                  AND (X_attribute9 IS NULL))))
628        AND (    (   (Recinfo.attribute10 = X_attribute10 )
629              OR (    (Recinfo.attribute10 IS NULL)
630                  AND (X_attribute10 IS NULL))))
631        AND (    (   (Recinfo.attribute11 = X_attribute11 )
632              OR (    (Recinfo.attribute11 IS NULL)
633                  AND (X_attribute11 IS NULL))))
634        AND (    (   (Recinfo.attribute12 = X_attribute12 )
635              OR (    (Recinfo.attribute12 IS NULL)
636                  AND (X_attribute12 IS NULL))))
637        AND (    (   (Recinfo.attribute13 = X_attribute13 )
638              OR (    (Recinfo.attribute13 IS NULL)
639                  AND (X_attribute13 IS NULL))))
640        AND (    (   (Recinfo.attribute14 = X_attribute14 )
641              OR (    (Recinfo.attribute14 IS NULL)
642                  AND (X_attribute14 IS NULL))))
643        AND (    (   (Recinfo.attribute15 = X_attribute15 )
644              OR (    (Recinfo.attribute15 IS NULL)
645                  AND (X_attribute15 IS NULL))))
646     --5916290: GDF Changes
647        AND (    (   (Recinfo.global_attribute_category = X_global_att_category)
648         OR (    (Recinfo.global_attribute_category IS NULL)
649            AND (X_global_att_category IS NULL))))
650        AND (    (   (Recinfo.global_attribute1 = X_global_attribute1)
651         OR (    (Recinfo.global_attribute1 IS NULL)
652            AND (X_global_attribute1 IS NULL))))
653        AND (    (   (Recinfo.global_attribute2 = X_global_attribute2)
654         OR (    (Recinfo.global_attribute2 IS NULL)
655            AND (X_global_attribute2 IS NULL))))
656        AND (    (   (Recinfo.global_attribute3 = X_global_attribute3)
657         OR (    (Recinfo.global_attribute3 IS NULL)
658            AND (X_global_attribute3 IS NULL))))
659        AND (    (   (Recinfo.global_attribute4 = X_global_attribute4)
660         OR (    (Recinfo.global_attribute4 IS NULL)
661            AND (X_global_attribute4 IS NULL))))
662        AND (    (   (Recinfo.global_attribute5 = X_global_attribute5)
663         OR (    (Recinfo.global_attribute5 IS NULL)
664            AND (X_global_attribute5 IS NULL))))
665        AND (    (   (Recinfo.global_attribute6 = X_global_attribute6)
666         OR (    (Recinfo.global_attribute6 IS NULL)
670            AND (X_global_attribute7 IS NULL))))
667            AND (X_global_attribute6 IS NULL))))
668        AND (    (   (Recinfo.global_attribute7 = X_global_attribute7)
669         OR (    (Recinfo.global_attribute7 IS NULL)
671        AND (    (   (Recinfo.global_attribute8 = X_global_attribute8)
672         OR (    (Recinfo.global_attribute8 IS NULL)
673            AND (X_global_attribute8 IS NULL))))
674        AND (    (   (Recinfo.global_attribute9 = X_global_attribute9)
675         OR (    (Recinfo.global_attribute9 IS NULL)
676            AND (X_global_attribute9 IS NULL))))
677        AND (    (   (Recinfo.global_attribute10 = X_global_attribute10)
678         OR (    (Recinfo.global_attribute10 IS NULL)
679            AND (X_global_attribute10 IS NULL))))
680        AND (    (   (Recinfo.global_attribute11 = X_global_attribute11)
681         OR (    (Recinfo.global_attribute11 IS NULL)
682            AND (X_global_attribute11 IS NULL))))
683        AND (    (   (Recinfo.global_attribute12 = X_global_attribute12)
684         OR (    (Recinfo.global_attribute12 IS NULL)
685            AND (X_global_attribute12 IS NULL))))
686        AND (    (   (Recinfo.global_attribute13 = X_global_attribute13)
687         OR (    (Recinfo.global_attribute13 IS NULL)
688            AND (X_global_attribute13 IS NULL))))
689        AND (    (   (Recinfo.global_attribute14 = X_global_attribute14)
690         OR (    (Recinfo.global_attribute14 IS NULL)
691            AND (X_global_attribute14 IS NULL))))
692        AND (    (   (Recinfo.global_attribute15 = X_global_attribute15)
693         OR (    (Recinfo.global_attribute15 IS NULL)
694            AND (X_global_attribute15 IS NULL))))
695        AND (    (   (Recinfo.global_attribute16 = X_global_attribute16)
696         OR (    (Recinfo.global_attribute16 IS NULL)
697            AND (X_global_attribute16 IS NULL))))
698        AND (    (   (Recinfo.global_attribute17 = X_global_attribute17)
699         OR (    (Recinfo.global_attribute17 IS NULL)
700            AND (X_global_attribute17 IS NULL))))
701        AND (    (   (Recinfo.global_attribute18 = X_global_attribute18)
702         OR (    (Recinfo.global_attribute18 IS NULL)
703            AND (X_global_attribute18 IS NULL))))
704        AND (    (   (Recinfo.global_attribute19 = X_global_attribute19)
705         OR (    (Recinfo.global_attribute19 IS NULL)
706            AND (X_global_attribute19 IS NULL))))
707        AND (    (   (Recinfo.global_attribute20 = X_global_attribute20)
708         OR (    (Recinfo.global_attribute20 IS NULL)
709            AND (X_global_attribute20 IS NULL))))
710        ) THEN
711         return;
712     ELSE
713       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
714       APP_EXCEPTION.raise_exception;
715     END IF;
716   END Lock_Row;
717 
718 END CE_STAT_LINES_DML_PKG;