[Home] [Help]
PACKAGE BODY: APPS.XLA_GL_LEDGERS_PVT
Source
1 PACKAGE BODY XLA_GL_LEDGERS_PVT AS
2 /* $Header: xlathtbled.pkb 120.0 2005/10/07 12:16:28 svjoshi noship $ */
3 /*===========================================================================+
4 | Copyright (c) 2001-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +============================================================================+
8 | PACKAGE NAME |
9 | xla_gl_ledgers_pvt |
10 | |
11 | Description |
12 | This is a XLA package, which contains all the logic required |
13 | to maintain ledger level options. |
14 | |
15 | |
16 | HISTORY |
17 | 07-Oct-2005 M.Asada Created |
18 +===========================================================================*/
19
20 C_PACKAGE_NAME CONSTANT VARCHAR2(30) := 'xla_gl_ledgers_pvt';
21
22
23 --
24 --
25 --+==========================================================================+
26 --| |
27 --| PUBLIC PROCEDURE |
28 --| |
29 --| Create trial balance ledger options |
30 --| |
31 --| |
32 --+==========================================================================+
33 --
34 --
35 PROCEDURE Insert_Row
36 (p_rowid IN OUT NOCOPY VARCHAR2
37 ,p_ledger_id IN NUMBER
38 ,p_object_version_number IN NUMBER
39 ,p_work_unit IN NUMBER
40 ,p_num_of_workers IN NUMBER
41 ,p_creation_date IN DATE
42 ,p_created_by IN NUMBER
43 ,p_last_update_date IN DATE
44 ,p_last_updated_by IN NUMBER
45 ,p_last_update_login IN NUMBER) IS
46
47 BEGIN
48
49 IF p_ledger_id IS NULL THEN
50 RAISE no_data_found;
51 END IF;
52
53
54 INSERT INTO xla_gl_ledgers
55 (
56 ledger_id
57 ,object_version_number
58 ,work_unit
59 ,num_of_workers
60 ,created_by
61 ,creation_date
62 ,last_updated_by
63 ,last_update_date
64 ,last_update_login
65 )
66 VALUES
67 (
68 p_ledger_id
69 ,1 -- Ignore p_object_version_number
70 ,p_work_unit
71 ,p_num_of_workers
72 ,p_created_by
73 ,p_creation_date
74 ,p_last_updated_by
75 ,p_last_update_date
76 ,p_last_update_login
77 )
78 RETURNING rowid INTO p_rowid;
79
80
81 EXCEPTION
82 WHEN xla_exceptions_pkg.application_exception THEN
83 RAISE;
84 WHEN OTHERS THEN
85 xla_exceptions_pkg.raise_message
86 ('XLA' , 'XLA_COMMON_FAILURE'
87 ,'LOCATION' , C_PACKAGE_NAME || '.' || 'insert_row'
88 ,'ERROR' , sqlerrm);
89 END Insert_Row;
90
91 --+==========================================================================+
92 --| |
93 --| PUBLIC PROCEDURE |
94 --| |
95 --| Update trial balance ledger options |
96 --| |
97 --| |
98 --+==========================================================================+
99 --
100 --
101
102 PROCEDURE Update_Row
103 (p_ledger_id IN NUMBER
104 ,p_object_version_number IN OUT NOCOPY NUMBER
105 ,p_work_unit IN NUMBER
106 ,p_num_of_workers IN NUMBER
107 ,p_last_update_date IN VARCHAR2
108 ,p_last_updated_by IN VARCHAR2
109 ,p_last_update_login IN VARCHAR2) IS
110
111 l_object_version_number NUMBER;
112
113
114 BEGIN
115
116 --
117 -- If -1 is passed, this API update existing record without
118 -- comparing object_version_number pased to THEN API
119 -- (cf. Datamodel Standard)
120 --
121 IF p_object_version_number = -1 THEN
122
123 --
124 -- Allow update. Increment the database's OVN by 1
125 --
126 SELECT object_version_number
127 INTO l_object_version_number
128 FROM xla_gl_ledgers
129 WHERE ledger_id = p_ledger_id;
130
131 l_object_version_number := l_object_version_number + 1;
132
133 ELSE
134
135 --
136 -- Lock the row. Allow update only if the database's OVN equals the on
137 -- passed in.
138 --
139 -- If update is allowed, increment the database's OVN by 1.
140 -- Otherwise, raise an error.
141 --
142
143 SELECT object_version_number
144 INTO l_object_version_number
145 FROM xla_gl_ledgers
146 WHERE ledger_id = p_ledger_id
147 FOR UPDATE;
148
149 IF (l_object_version_number = p_object_version_number) THEN
150
151 l_object_version_number := l_object_version_number + 1;
152
153 ELSE
154
155 --
156 -- record already updated
157 --
158 fnd_message.set_name('XLA','XLA_COMMON_ROW_UPDATED');
159 xla_exceptions_pkg.raise_exception;
160
161 END IF;
162
163 END IF;
164
165 UPDATE xla_gl_ledgers
166 SET object_version_number = l_object_version_number
167 ,work_unit = p_work_unit
168 ,num_of_workers = p_num_of_workers
169 ,last_update_date = p_last_update_date
170 ,last_updated_by = p_last_updated_by
171 ,last_update_login = p_last_update_login
172 WHERE ledger_id = p_ledger_id;
173
174 IF (sql%notfound) THEN
175 RAISE no_data_found;
176 END IF;
177
178 p_object_version_number := l_object_version_number;
179
180 EXCEPTION
181 WHEN xla_exceptions_pkg.application_exception THEN
182 RAISE;
183 WHEN OTHERS THEN
184 xla_exceptions_pkg.raise_message
185 ('XLA' , 'XLA_COMMON_FAILURE'
186 ,'LOCATION' , C_PACKAGE_NAME || '.' || 'update_row'
187 ,'ERROR' , sqlerrm);
188 END Update_Row;
189
190 --
191 --
192 --+==========================================================================+
193 --| |
194 --| PUBLIC PROCEDURE |
195 --| |
196 --| Delete ledger level options |
197 --| |
198 --+==========================================================================+
199 --
200 --
201 PROCEDURE Delete_Row
202 (p_ledger_id IN NUMBER
203 ) IS
204 BEGIN
205
206 DELETE FROM xla_gl_ledgers
207 WHERE ledger_id = p_ledger_id;
208
209 IF SQL%NOTFOUND then
210 RAISE no_data_found;
211 END IF;
212
213 END Delete_Row;
214
215 --
216 --
217
218 END xla_gl_ledgers_pvt; -- end of package spec