DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGI_BUD_JOURNAL_HEADERS_PKG

Source


1 PACKAGE BODY IGI_BUD_JOURNAL_HEADERS_PKG as
2 -- $Header: igibudfb.pls 120.4 2005/10/30 05:51:44 appldev ship $
3 
4 --Bug 3199481
5 
6 l_debug_level   number := FND_LOG.G_CURRENT_RUNTIME_LEVEL ;
7 
8 l_state_level   number := FND_LOG.LEVEL_STATEMENT ;
9 l_proc_level    number := FND_LOG.LEVEL_PROCEDURE ;
10 l_event_level   number := FND_LOG.LEVEL_EVENT ;
11 l_excep_level   number := FND_LOG.LEVEL_EXCEPTION ;
12 l_error_level   number := FND_LOG.LEVEL_ERROR ;
13 l_unexp_level   number := FND_LOG.LEVEL_UNEXPECTED ;
14 
15 --Bug 3199481
16 
17   PROCEDURE Insert_Row(X_Rowid                   IN OUT NOCOPY VARCHAR2,
18                        X_Be_Batch_Id                    NUMBER,
19                        X_Be_Header_Id                   IN OUT NOCOPY NUMBER,
20                        X_Budget_Entity_Id               NUMBER,
21                        X_Budget_Version_Id              NUMBER,
22                        X_Set_Of_Books_Id                NUMBER,
23                        X_Currency_Code                  VARCHAR2,
24                        X_Je_Category_Name               VARCHAR2,
25                        X_Name                           VARCHAR2,
26                        X_Running_Total_Dr               NUMBER,
27                        X_Running_Total_Cr               NUMBER,
28                        X_Autocopy_Flag                  VARCHAR2,
29                        X_Control_Total                  NUMBER,
30                        X_Default_Reason_Code            VARCHAR2,
31                        X_Description                    VARCHAR2,
32                        X_Creation_Date                  DATE,
33                        X_Created_By                     NUMBER,
34                        X_Last_Update_Date               DATE,
35                        X_Last_Updated_By                NUMBER,
36                        X_Last_Update_Login              NUMBER
37   ) IS
38     CURSOR C IS SELECT rowid FROM IGI_BUD_JOURNAL_HEADERS
39                  WHERE be_header_id = X_Be_Header_Id;
40       CURSOR C2 IS SELECT igi_bud_journal_headers_s.nextval FROM sys.dual;
41    BEGIN
42       if (X_Be_Header_Id is NULL) then
43         OPEN C2;
44         FETCH C2 INTO X_Be_Header_Id;
45         CLOSE C2;
46       end if;
47 
48        INSERT INTO IGI_BUD_JOURNAL_HEADERS(
49               be_batch_id,
50               be_header_id,
51               budget_entity_id,
52               budget_version_id,
53               set_of_books_id,
54               currency_code,
55               je_category_name,
56               name,
57               running_total_dr,
58               running_total_cr,
59               autocopy_flag,
60               control_total,
61               default_reason_code,
62               description,
63               creation_date,
64               created_by,
65               last_update_date,
66               last_updated_by,
67               last_update_login
68              ) VALUES (
69               X_Be_Batch_Id,
70               X_Be_Header_Id,
71               X_Budget_Entity_Id,
72               X_Budget_Version_Id,
73               X_Set_Of_Books_Id,
74               X_Currency_Code,
75               X_Je_Category_Name,
76               X_Name,
77               X_Running_Total_Dr,
78               X_Running_Total_Cr,
79               X_Autocopy_Flag,
80               X_Control_Total,
81               X_Default_Reason_Code,
82               X_Description,
83               X_Creation_Date,
84               X_Created_By,
85               X_Last_Update_Date,
86               X_Last_Updated_By,
87               X_Last_Update_Login
88              );
89 
90     OPEN C;
91     FETCH C INTO X_Rowid;
92     if (C%NOTFOUND) then
93       CLOSE C;
94       Raise NO_DATA_FOUND;
95     end if;
96     CLOSE C;
97   END Insert_Row;
98 
99 
100   PROCEDURE Lock_Row(X_Rowid                            VARCHAR2,
101                      X_Be_Batch_Id                      NUMBER,
102                      X_Be_Header_Id                     NUMBER,
103                      X_Budget_Entity_Id                 NUMBER,
104                      X_Budget_Version_Id                NUMBER,
105                      X_Set_Of_Books_Id                  NUMBER,
106                      X_Currency_Code                    VARCHAR2,
107                      X_Je_Category_Name                 VARCHAR2,
108                      X_Name                             VARCHAR2,
109                      X_Running_Total_Dr                 NUMBER,
110                      X_Running_Total_Cr                 NUMBER,
111                      X_Autocopy_Flag                    VARCHAR2,
112                      X_Control_Total                    NUMBER,
113                      X_Default_Reason_Code              VARCHAR2,
114                      X_Description                      VARCHAR2
115   ) IS
116     CURSOR C IS
117         SELECT *
118         FROM   IGI_BUD_JOURNAL_HEADERS
119         WHERE  rowid = X_Rowid
120         FOR UPDATE of Be_Header_Id NOWAIT;
121     Recinfo C%ROWTYPE;
122 
123 
124   BEGIN
125     OPEN C;
126     FETCH C INTO Recinfo;
127     if (C%NOTFOUND) then
128       CLOSE C;
129       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
130       --Bug 3199481 (start)
131       If (l_unexp_level >= l_debug_level) then
132          FND_LOG.MESSAGE(l_unexp_level,'igi.plsql.igi_bud_journal_headers_pkg.lock_row.Msg1',FALSE);
133       End if;
134       --Bug 3199481 (End)
135       APP_EXCEPTION.Raise_Exception;
136     end if;
137     CLOSE C;
138     if (
139                (Recinfo.be_batch_id =  X_Be_Batch_Id)
140            AND (Recinfo.be_header_id =  X_Be_Header_Id)
141            AND (Recinfo.budget_entity_id =  X_Budget_Entity_Id)
142            AND (Recinfo.budget_version_id =  X_Budget_Version_Id)
143            AND (Recinfo.set_of_books_id =  X_Set_Of_Books_Id)
144            AND (Recinfo.currency_code =  X_Currency_Code)
145            AND (Recinfo.je_category_name =  X_Je_Category_Name)
146            AND (Recinfo.name =  X_Name)
147            AND (Recinfo.running_total_dr =  X_Running_Total_Dr)
148            AND (Recinfo.running_total_cr =  X_Running_Total_Cr)
149            AND (Recinfo.autocopy_flag =  X_Autocopy_Flag)
150            AND (   (Recinfo.control_total =  X_Control_Total)
151                 OR (    (Recinfo.control_total IS NULL)
152                     AND (X_Control_Total IS NULL)))
153            AND (   (Recinfo.default_reason_code =  X_Default_Reason_Code)
154                 OR (    (Recinfo.default_reason_code IS NULL)
155                     AND (X_Default_Reason_Code IS NULL)))
156            AND (   (Recinfo.description =  X_Description)
157                 OR (    (Recinfo.description IS NULL)
158                     AND (X_Description IS NULL)))
159       ) then
160       return;
161     else
162       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
163       --Bug 3199481 (start)
164       If (l_unexp_level >= l_debug_level) then
165          FND_LOG.MESSAGE(l_unexp_level,'igi.plsql.igi_bud_journal_headers_pkg.lock_row.Msg2',FALSE);
166       End if;
167       --Bug 3199481 (End)
168       APP_EXCEPTION.Raise_Exception;
169     end if;
170   END Lock_Row;
171 
172 
173 
174   PROCEDURE Update_Row(X_Rowid                          VARCHAR2,
175                        X_Be_Batch_Id                    NUMBER,
176                        X_Be_Header_Id                   NUMBER,
177                        X_Budget_Entity_Id               NUMBER,
178                        X_Budget_Version_Id              NUMBER,
179                        X_Set_Of_Books_Id                NUMBER,
180                        X_Currency_Code                  VARCHAR2,
181                        X_Je_Category_Name               VARCHAR2,
182                        X_Name                           VARCHAR2,
183                        X_Running_Total_Dr               NUMBER,
184                        X_Running_Total_Cr               NUMBER,
185                        X_Autocopy_Flag                  VARCHAR2,
186                        X_Control_Total                  NUMBER,
187                        X_Default_Reason_Code            VARCHAR2,
188                        X_Description                    VARCHAR2,
189                        X_Last_Update_Date               DATE,
190                        X_Last_Updated_By                NUMBER,
191                        X_Last_Update_Login              NUMBER
192 
193   ) IS
194   BEGIN
195     UPDATE IGI_BUD_JOURNAL_HEADERS
196     SET
197        be_batch_id                     =     X_Be_Batch_Id,
198        be_header_id                    =     X_Be_Header_Id,
199        budget_entity_id                =     X_Budget_Entity_Id,
200        budget_version_id               =     X_Budget_Version_Id,
201        set_of_books_id                 =     X_Set_Of_Books_Id,
202        currency_code                   =     X_Currency_Code,
203        je_category_name                =     X_Je_Category_Name,
204        name                            =     X_Name,
205        running_total_dr                =     X_Running_Total_Dr,
206        running_total_cr                =     X_Running_Total_Cr,
207        autocopy_flag                   =     X_Autocopy_Flag,
208        control_total                   =     X_Control_Total,
209        default_reason_code             =     X_Default_Reason_Code,
210        description                     =     X_Description,
211        last_update_date                =     X_Last_Update_Date,
212        last_updated_by                 =     X_Last_Updated_By,
213        last_update_login               =     X_Last_Update_Login
214     WHERE rowid = X_Rowid;
215 
216     if (SQL%NOTFOUND) then
217       Raise NO_DATA_FOUND;
218     end if;
219   END Update_Row;
220 
221   PROCEDURE Delete_Row(X_Rowid        VARCHAR2,
222                        X_Be_Header_Id NUMBER) IS
223 
224     cursor related_lines is
225       select l.rowid row_id, l.be_line_num
226       from   igi_bud_journal_lines l
227       where  l.be_header_id = X_Be_Header_Id;
228 
229   BEGIN
230     DELETE FROM IGI_BUD_JOURNAL_HEADERS
231     WHERE rowid = X_Rowid;
232 
233     for lines in related_lines loop
234       igi_bud_journal_lines_pkg.delete_row(lines.row_id,
235                                              X_Be_Header_Id,
236                                              lines.be_line_num);
237     end loop;
238 
239     if (SQL%NOTFOUND) then
240       Raise NO_DATA_FOUND;
241     end if;
242   END Delete_Row;
243 
244 
245 END IGI_BUD_JOURNAL_HEADERS_PKG;