DBA Data[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