[Home] [Help]
PACKAGE BODY: APPS.IGI_MPP_AP_INVOICE_DISTS_PKG
Source
1 PACKAGE BODY IGI_MPP_AP_INVOICE_DISTS_PKG as
2 /* $Header: igipmudb.pls 115.7 2003/12/01 16:13:45 sdixit ship $ */
3
4 --bug 3199481: following variables added for fnd logging changes:sdixit :start
5 l_debug_level number := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
6 l_state_level number := FND_LOG.LEVEL_STATEMENT;
7 l_proc_level number := FND_LOG.LEVEL_PROCEDURE;
8 l_event_level number := FND_LOG.LEVEL_EVENT;
9 l_excep_level number := FND_LOG.LEVEL_EXCEPTION;
10 l_error_level number := FND_LOG.LEVEL_ERROR;
11 l_unexp_level number := FND_LOG.LEVEL_UNEXPECTED;
12
13 PROCEDURE Lock_Row(X_Rowid VARCHAR2,
14 X_Distribution_Line_Number NUMBER,
15 X_Invoice_Id NUMBER,
16 X_Ignore_Mpp_Flag VARCHAR2,
17 X_Accounting_Rule_Id VARCHAR2,
18 X_Start_Date DATE,
19 X_Duration NUMBER
20
21
22 ) IS
23 CURSOR C IS
24 SELECT *
25 FROM igi_mpp_ap_invoice_dists
26 WHERE rowid = X_Rowid
27 FOR UPDATE of Invoice_id, Distribution_Line_Number NOWAIT;
28 Recinfo C%ROWTYPE;
29
30 BEGIN
31 OPEN C;
32 FETCH C INTO Recinfo;
33 if (C%NOTFOUND) then
34 CLOSE C;
35 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
36 --bug 3199481: fnd logging changes:sdixit :start
37 IF (l_error_level >= l_debug_level ) THEN
38 FND_LOG.MESSAGE (l_error_level , 'igi.pls.igipmudb.IGI_MPP_AP_INVOICE_DISTS_PKG.Lock_Row.FORM_RECORD_DELETED',FALSE);
39 END IF;
40 --bug 3199481 fnd logging changes: sdixit: end block
41 APP_EXCEPTION.Raise_Exception;
42 end if;
43 CLOSE C;
44 if (
45 (Recinfo.distribution_line_number = X_Distribution_Line_Number)
46 AND (Recinfo.invoice_id = X_Invoice_Id)
47 AND ( (Recinfo.ignore_mpp_flag = X_Ignore_Mpp_Flag)
48 OR ( (Recinfo.ignore_mpp_flag IS NULL)
49 AND (X_Ignore_Mpp_Flag IS NULL)))
50 AND ( (Recinfo.start_date = X_start_date)
51 OR ( (Recinfo.start_date IS NULL)
52 AND (X_Start_Date IS NULL)))
53 AND ( (Recinfo.Duration = X_Duration)
54 OR ( (Recinfo.Duration IS NULL)
55 AND (X_Duration IS NULL)))
56 AND (Recinfo.accounting_rule_id = X_Accounting_Rule_Id)
57
58 ) then
59 return;
60 else
61 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
62 --bug 3199481: fnd logging changes:sdixit :start
63 IF (l_error_level >= l_debug_level ) THEN
64 FND_LOG.MESSAGE (l_error_level , 'igi.pls.igipmerb.IGI_MPP_EXPENSE_RULES_PKG.Lock_Row.FORM_RECORD_CHANGED',FALSE);
65 END IF;
66 --bug 3199481 fnd logging changes: sdixit: end block
67 APP_EXCEPTION.Raise_Exception;
68 end if;
69 END Lock_Row;
70
71
72 PROCEDURE Update_Row(X_Rowid VARCHAR2,
73 X_Distribution_Line_Number NUMBER,
74 X_Invoice_Id NUMBER,
75 X_Ignore_Mpp_Flag VARCHAR2,
76 X_Accounting_Rule_Id VARCHAR2,
77 X_Start_Date DATE,
78 X_Duration NUMBER,
79 X_Last_Updated_By NUMBER,
80 X_Last_Update_Date DATE,
81 X_Last_Update_Login NUMBER
82
83 ) IS
84 BEGIN
85 UPDATE igi_mpp_ap_invoice_dists
86 SET
87 ignore_mpp_flag = nvl(X_Ignore_Mpp_Flag,'N'),
88 accounting_rule_id = X_Accounting_Rule_Id,
89 start_date = X_Start_Date,
90 duration = X_Duration,
91 last_updated_by = X_Last_Updated_By,
92 last_update_date = X_Last_Update_Date,
93 last_update_login = X_Last_Update_Login
94 WHERE rowid = X_Rowid;
95
96 if (SQL%NOTFOUND) then
97 --bug 3199481: fnd logging changes:sdixit :start
98 IF (l_error_level >= l_debug_level ) THEN
99 FND_LOG.MESSAGE (l_error_level , 'igi.pls.igipmudb.IGI_MPP_AP_INVOICE_DISTS_PKG.Update_Row.NO_DATA_FOUND',FALSE);
100 END IF;
101 --bug 3199481 fnd logging changes: sdixit: end block
102 Raise NO_DATA_FOUND;
103 end if;
104 END Update_Row;
105
106
107 END IGI_MPP_AP_INVOICE_DISTS_PKG;