DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_ACCT_CLASS_ASSGNS_F_PKG

Source


1 PACKAGE BODY xla_acct_class_assgns_f_pkg AS
2 /* $Header: xlatbaca.pkb 120.0 2005/05/24 21:47:23 dcshah noship $ */
3 /*======================================================================+
4 |             Copyright (c) 2001-2002 Oracle Corporation                |
5 |                       Redwood Shores, CA, USA                         |
6 |                         All rights reserved.                          |
7 +=======================================================================+
8 | PACKAGE NAME                                                          |
9 |    xla_acct_class_assgns                                           |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |    Forms PL/SQL Wrapper for xla_acct_class_assgns                  |
13 |                                                                       |
14 | HISTORY                                                               |
15 |    05/22/01     Dimple Shah    Created                                |
16 |                                                                       |
17 +======================================================================*/
18 
19 --=============================================================================
20 --               *********** Local Trace Routine **********
21 --=============================================================================
22 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
23 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
24 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
25 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
26 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
27 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
28 
29 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
30 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.xla_acct_class_assgns_f_pkg';
31 
32 g_log_level           NUMBER;
33 g_log_enabled         BOOLEAN;
34 
35 PROCEDURE trace
36   (p_msg                        IN VARCHAR2
37   ,p_module                     IN VARCHAR2
38   ,p_level                      IN NUMBER) IS
39 BEGIN
40   ----------------------------------------------------------------------------
41   -- Following is for FND log.
42   ----------------------------------------------------------------------------
43   IF (p_msg IS NULL AND p_level >= g_log_level) THEN
44     fnd_log.message(p_level, p_module);
45   ELSIF p_level >= g_log_level THEN
46     fnd_log.string(p_level, p_module, p_msg);
47   END IF;
48 
49 EXCEPTION
50   WHEN xla_exceptions_pkg.application_exception THEN
51     RAISE;
52 
53   WHEN OTHERS THEN
54     xla_exceptions_pkg.raise_message
55       (p_location   => 'xla_acct_class_assgns_f_pkg.trace');
56 END trace;
57 
58 
59 
60 /*======================================================================+
61 |                                                                       |
62 |  Procedure insert_row                                                 |
63 |                                                                       |
64 +======================================================================*/
65 PROCEDURE insert_row
66   (x_rowid                            IN OUT NOCOPY VARCHAR2
67   ,x_program_code                     IN VARCHAR2
68   ,x_program_owner_code               IN VARCHAR2
69   ,x_assignment_code                  IN VARCHAR2
70   ,x_assignment_owner_code            IN VARCHAR2
71   ,x_accounting_class_code            IN VARCHAR2
72   ,x_creation_date                    IN DATE
73   ,x_created_by                       IN NUMBER
74   ,x_last_update_date                 IN DATE
75   ,x_last_updated_by                  IN NUMBER
76   ,x_last_update_login                IN NUMBER)
77 
78 IS
79 
80 CURSOR c IS
81 SELECT rowid
82 FROM   xla_acct_class_assgns
83 WHERE  program_code                          = x_program_code
84   AND  program_owner_code                    = x_program_owner_code
85   AND  assignment_code                       = x_assignment_code
86   AND  assignment_owner_code                 = x_assignment_owner_code
87   AND  accounting_class_code                 = x_accounting_class_code
88 ;
89 
90   l_log_module            VARCHAR2(240);
91 BEGIN
92 
93   IF g_log_enabled THEN
94     l_log_module := C_DEFAULT_MODULE||'.insert_row';
95   END IF;
96 
97   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98     trace(p_msg    => 'BEGIN of procedure insert_row',
99           p_module => l_log_module,
100           p_level  => C_LEVEL_PROCEDURE);
101   END IF;
102 
103 INSERT INTO xla_acct_class_assgns
104 (creation_date
105 ,created_by
106 ,program_code
107 ,program_owner_code
108 ,assignment_code
109 ,assignment_owner_code
110 ,accounting_class_code
111 ,last_update_date
112 ,last_updated_by
113 ,last_update_login)
114 VALUES
115 (x_creation_date
116 ,x_created_by
117 ,x_program_code
118 ,x_program_owner_code
119 ,x_assignment_code
120 ,x_assignment_owner_code
121 ,x_accounting_class_code
122 ,x_last_update_date
123 ,x_last_updated_by
124 ,x_last_update_login)
125 ;
126 
127 OPEN c;
128 FETCH c INTO x_rowid;
129 
130 IF (c%NOTFOUND) THEN
131    CLOSE c;
132    RAISE NO_DATA_FOUND;
133 END IF;
134 CLOSE c;
135 
136   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137     trace(p_msg    => 'END of procedure insert_row',
138           p_module => l_log_module,
139           p_level  => C_LEVEL_PROCEDURE);
140   END IF;
141 
142 END insert_row;
143 
144 /*======================================================================+
145 |                                                                       |
146 |  Procedure lock_row                                                   |
147 |                                                                       |
148 +======================================================================*/
149 PROCEDURE lock_row
150   (x_rowid                            IN OUT NOCOPY VARCHAR2
151   ,x_program_code                     IN VARCHAR2
152   ,x_program_owner_code               IN VARCHAR2
153   ,x_assignment_code                  IN VARCHAR2
154   ,x_assignment_owner_code            IN VARCHAR2
155   ,x_accounting_class_code            IN VARCHAR2)
156 
157 IS
158 
159 CURSOR c IS
160 SELECT program_code
161       ,program_owner_code
162       ,assignment_code
163       ,assignment_owner_code
164       ,accounting_class_code
165 FROM   xla_acct_class_assgns
166 WHERE  program_code                          = x_program_code
167   AND  program_owner_code                    = x_program_owner_code
168   AND  assignment_code                       = x_assignment_code
169   AND  assignment_owner_code                 = x_assignment_owner_code
170   AND  accounting_class_code                 = x_accounting_class_code
171 FOR UPDATE OF program_code NOWAIT;
172 
173 recinfo              c%ROWTYPE;
174 
175   l_log_module            VARCHAR2(240);
176 BEGIN
177 
178   IF g_log_enabled THEN
179     l_log_module := C_DEFAULT_MODULE||'.lock_row';
180   END IF;
181 
182   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
183     trace(p_msg    => 'BEGIN of procedure lock_row',
184           p_module => l_log_module,
185           p_level  => C_LEVEL_PROCEDURE);
186   END IF;
187 
188 OPEN c;
189 FETCH c INTO recinfo;
190 
191 IF (c%NOTFOUND) THEN
192    CLOSE c;
193    fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
194    app_exception.raise_exception;
195 END IF;
196 CLOSE c;
197 
198 IF ( (recinfo.program_code                           = x_program_code)
199  AND (recinfo.program_owner_code                     = x_program_owner_code)
200  AND (recinfo.assignment_code                        = x_assignment_code)
201  AND (recinfo.assignment_owner_code                  = x_assignment_owner_code)
202  AND (recinfo.accounting_class_code                  = x_accounting_class_code)
203                    ) THEN
204    null;
205 ELSE
206    fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
207    app_exception.raise_exception;
208 END IF;
209 
210   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
211     trace(p_msg    => 'END of procedure lock_row',
212           p_module => l_log_module,
213           p_level  => C_LEVEL_PROCEDURE);
214   END IF;
215 
216 RETURN;
217 
218 END lock_row;
219 
220 /*======================================================================+
221 |                                                                       |
222 |  Procedure delete_row                                                 |
223 |                                                                       |
224 +======================================================================*/
225 PROCEDURE delete_row
226   (x_program_code                     IN VARCHAR2
227   ,x_program_owner_code               IN VARCHAR2
228   ,x_assignment_code                  IN VARCHAR2
229   ,x_assignment_owner_code            IN VARCHAR2
230   ,x_accounting_class_code            IN VARCHAR2)
231 
232 IS
233 
234   l_log_module            VARCHAR2(240);
235 BEGIN
236 
237   IF g_log_enabled THEN
238     l_log_module := C_DEFAULT_MODULE||'.delete_row';
239   END IF;
240 
241   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
242     trace(p_msg    => 'BEGIN of procedure delete_row',
243           p_module => l_log_module,
244           p_level  => C_LEVEL_PROCEDURE);
245   END IF;
246 
247 DELETE FROM xla_acct_class_assgns
248 WHERE  program_code                          = x_program_code
249   AND  program_owner_code                    = x_program_owner_code
250   AND  assignment_code                       = x_assignment_code
251   AND  assignment_owner_code                 = x_assignment_owner_code
252   AND  accounting_class_code                 = x_accounting_class_code;
253 
254 
255 IF (SQL%NOTFOUND) THEN
256    RAISE NO_DATA_FOUND;
257 END IF;
258 
259   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
260     trace(p_msg    => 'END of procedure delete_row',
261           p_module => l_log_module,
262           p_level  => C_LEVEL_PROCEDURE);
263   END IF;
264 
265 END delete_row;
266 
267 --=============================================================================
268 --
269 -- Name: load_row
270 -- Description: To be used by FNDLOAD to upload a row to the table
271 --
272 --=============================================================================
273 PROCEDURE load_row
274 (p_program_code                     IN VARCHAR2
275 ,p_program_owner_code               IN VARCHAR2
276 ,p_assignment_code                  IN VARCHAR2
277 ,p_assignment_owner_code            IN VARCHAR2
278 ,p_accounting_class_code            IN VARCHAR2
279 ,p_owner                            IN VARCHAR2
280 ,p_last_update_date                 IN VARCHAR2)
281 IS
282 
283   l_rowid                 ROWID;
284   l_exist                 VARCHAR2(1);
285   f_luby                  NUMBER;      -- entity owner in file
286   f_ludate                DATE;        -- entity update date in file
287   db_luby                 NUMBER;      -- entity owner in db
288   db_ludate               DATE;        -- entity update date in db
289   l_log_module            VARCHAR2(240);
290 BEGIN
291 
292   IF g_log_enabled THEN
293     l_log_module := C_DEFAULT_MODULE||'.load_row';
294   END IF;
295 
296   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
297     trace(p_msg    => 'BEGIN of procedure load_row',
298           p_module => l_log_module,
299           p_level  => C_LEVEL_PROCEDURE);
300   END IF;
301 
302   -- Translate owner to file_last_updated_by
303   f_luby := fnd_load_util.owner_id(p_owner);
304 
305   -- Translate char last_update_date to date
306   f_ludate := nvl(to_date(p_last_update_date, 'YYYY/MM/DD'), sysdate);
307 
308   BEGIN
309 
310     SELECT last_updated_by, last_update_date
311       INTO db_luby, db_ludate
312       FROM xla_acct_class_assgns
313      WHERE program_code              = p_program_code
314        AND program_owner_code        = p_program_owner_code
315        AND assignment_code           = p_assignment_code
316        AND assignment_owner_code     = p_assignment_owner_code
317        AND accounting_class_code     = p_accounting_class_code;
318 
319     IF (fnd_load_util.upload_test(f_luby, f_ludate, db_luby, db_ludate, NULL)) THEN
320         null;
321     END IF;
322 
323   EXCEPTION
324     WHEN NO_DATA_FOUND THEN
325       xla_acct_class_assgns_f_pkg.insert_row
326           (x_rowid                         => l_rowid
327           ,x_program_code                  => p_program_code
328           ,x_program_owner_code            => p_program_owner_code
329           ,x_assignment_code               => p_assignment_code
330           ,x_assignment_owner_code         => p_assignment_owner_code
331           ,x_accounting_class_code         => p_accounting_class_code
332           ,x_creation_date                 => f_ludate
333           ,x_created_by                    => f_luby
334           ,x_last_update_date              => f_ludate
335           ,x_last_updated_by               => f_luby
336           ,x_last_update_login             => 0);
337   END;
338 
339   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
340     trace(p_msg    => 'END of procedure load_row',
341           p_module => l_log_module,
342           p_level  => C_LEVEL_PROCEDURE);
343   END IF;
344 
345 EXCEPTION
346    WHEN NO_DATA_FOUND THEN
347       null;
348    WHEN OTHERS THEN
349    xla_exceptions_pkg.raise_message
350       (p_location   => 'xla_acct_class_assgns_f_pkg.load_row');
351 
352 END load_row;
353 
354 end xla_acct_class_assgns_f_PKG;