DBA Data[Home] [Help]

PACKAGE BODY: APPS.GL_ENCUMBRANCE_TYPES_PKG

Source


1 PACKAGE BODY gl_encumbrance_types_pkg AS
2 /* $Header: glietdfb.pls 120.8 2006/02/06 18:29:21 kvora ship $ */
3 
4   ---
5   --- PRIVATE FUNCTIONS
6   ---
7 
8   --
9   -- Procedure
10   --   select_row
11   -- Purpose
12   --   Gets the row from gl_encumbrance_types associated with
13   --   the given encumbrance.
14   -- History
15   --   01-NOV-94  D J Ogg  Created.
16   -- Arguments
17   --   recinfo 		A row from gl_encumbrance_types
18   -- Example
19   --   gl_encumbrance_types_pkg.select_row(recinfo);
20   -- Notes
21   --
22   PROCEDURE select_row( recinfo IN OUT NOCOPY gl_encumbrance_types%ROWTYPE )  IS
23   BEGIN
24     SELECT  *
25     INTO    recinfo
26     FROM    gl_encumbrance_types
27     WHERE   encumbrance_type_id = recinfo.encumbrance_type_id;
28   EXCEPTION
29     WHEN NO_DATA_FOUND THEN
30       RETURN;
31     WHEN app_exceptions.application_exception THEN
32       RAISE;
33     WHEN OTHERS THEN
34       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
35       fnd_message.set_token('PROCEDURE',
36                             'gl_encumbrance_types.select_row');
37       RAISE;
38   END select_row;
39 
40 
41   --
42   -- PUBLIC FUNCTIONS
43   --
44 
45   PROCEDURE check_unique_name(x_name   VARCHAR2,
46                               x_row_id VARCHAR2) IS
47     CURSOR chk_duplicates IS
48       SELECT 'Duplicate'
49       FROM   GL_ENCUMBRANCE_TYPES et
50       WHERE  et.encumbrance_type = x_name
51       AND    (   (x_row_id is null)
52               OR (et.rowid <> x_row_id));
53     dummy VARCHAR2(100);
54   BEGIN
55     OPEN chk_duplicates;
56     FETCH chk_duplicates INTO dummy;
57 
58     IF chk_duplicates%FOUND THEN
59       CLOSE chk_duplicates;
60       fnd_message.set_name('SQLGL', 'GL_DUPLICATE_ENC_TYPE');
61       app_exception.raise_exception;
62     END IF;
63 
64     CLOSE chk_duplicates;
65 
66   EXCEPTION
67     WHEN app_exceptions.application_exception THEN
68       RAISE;
69     WHEN OTHERS THEN
70       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
71       fnd_message.set_token('PROCEDURE', 'gl_encumbrance_types_pkg.check_unique_name');
72       RAISE;
73   END check_unique_name;
74 
75   PROCEDURE check_unique_id(x_etid   NUMBER,
76                             x_row_id VARCHAR2) IS
77     CURSOR chk_duplicate_ids IS
78       SELECT 'Duplicate'
79       FROM   GL_ENCUMBRANCE_TYPES et
80       WHERE  et.encumbrance_type_id = x_etid
81       AND    (   (x_row_id is null)
82               OR (et.rowid <> x_row_id));
83     dummy VARCHAR2(100);
84   BEGIN
85     OPEN chk_duplicate_ids;
86     FETCH chk_duplicate_ids INTO dummy;
87 
88     IF chk_duplicate_ids%FOUND THEN
89       CLOSE chk_duplicate_ids;
90       fnd_message.set_name('SQLGL', 'GL_DUPLICATE_ENC_TYPE');
91       app_exception.raise_exception;
92     END IF;
93 
94     CLOSE chk_duplicate_ids;
95 
96   EXCEPTION
97     WHEN app_exceptions.application_exception THEN
98       RAISE;
99     WHEN OTHERS THEN
100       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
101       fnd_message.set_token('PROCEDURE', 'gl_encumbrance_types_pkg.check_unique_id');
102       RAISE;
103   END check_unique_id;
104 
105 
106   PROCEDURE get_unique_id (x_encumbrance_type_id  IN OUT NOCOPY NUMBER) IS
107     CURSOR get_new_id IS
108       SELECT gl_encumbrance_types_s.NEXTVAL
109       FROM dual;
110     new_id number;
111   BEGIN
112     OPEN get_new_id;
113     FETCH get_new_id INTO x_encumbrance_type_id;
114 
115     IF get_new_id%FOUND THEN
116       CLOSE get_new_id;
117     ELSE
118       CLOSE get_new_id;
119       fnd_message.set_name('SQLGL', 'GL_ERROR_GETTING_UNIQUE_ID');
120       fnd_message.set_token('SEQUENCE', 'GL_ENCUMBRANCE_TYPES_S');
121       app_exception.raise_exception;
122     END IF;
123 
124   EXCEPTION
125     WHEN app_exceptions.application_exception THEN
126       RAISE;
127     WHEN OTHERS THEN
128       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
129       fnd_message.set_token('PROCEDURE', 'gl_encumbrance_types_pkg.get_unique_id');
130       RAISE;
131   END get_unique_id;
132 
133 
134   PROCEDURE select_columns(
135               x_encumbrance_type_id			NUMBER,
136 	      x_encumbrance_type		IN OUT NOCOPY  VARCHAR2 ) IS
137 
138     recinfo gl_encumbrance_types%ROWTYPE;
139 
140   BEGIN
141     recinfo.encumbrance_type_id := x_encumbrance_type_id;
142     select_row( recinfo );
143     x_encumbrance_type := recinfo.encumbrance_type;
144 
145   EXCEPTION
146     WHEN NO_DATA_FOUND THEN
147       RETURN;
148     WHEN app_exceptions.application_exception THEN
149       RAISE;
150     WHEN OTHERS THEN
151       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
152       fnd_message.set_token('PROCEDURE',
153                             'gl_encumbrance_types.select_columns');
154       RAISE;
155   END select_columns;
156 
157 
158   FUNCTION get_enc_type_all(enc_type IN OUT NOCOPY VARCHAR2) RETURN BOOLEAN IS
159     CURSOR get_enc_type IS
160       SELECT meaning
161         FROM gl_lookups
162        WHERE lookup_type = 'LITERAL' AND lookup_code = 'ALL';
163 
164   BEGIN
165     OPEN get_enc_type;
166     FETCH get_enc_type INTO enc_type;
167 
168     IF get_enc_type%FOUND THEN
169       CLOSE get_enc_type;
170       return ( TRUE );
171     ELSE
172       CLOSE get_enc_type;
173       return ( FALSE );
174     END IF;
175 
176   EXCEPTION
177     WHEN NO_DATA_FOUND THEN
178       RETURN ( FALSE );
179     WHEN app_exceptions.application_exception THEN
180       RAISE;
181     WHEN OTHERS THEN
182       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
183       fnd_message.set_token('FUNCTION',
184                             'gl_encumbrance_types.get_enc_type_all');
185       RAISE;
186   END get_enc_type_all;
187 
188   PROCEDURE insert_row(
189               x_rowid                           IN OUT NOCOPY  VARCHAR2,
190               x_encumbrance_type_id             IN OUT NOCOPY  NUMBER,
191               x_encumbrance_type_key            IN OUT NOCOPY  VARCHAR2,
192               x_encumbrance_type                IN  VARCHAR2,
193               x_enabled_flag                    IN  VARCHAR2,
194               x_last_update_date                IN  DATE,
195               x_last_updated_by                 IN  NUMBER,
196               x_creation_date                   IN  DATE,
197               x_created_by                      IN  NUMBER,
198               x_last_update_login               IN  NUMBER,
199               x_description                     IN  VARCHAR2) IS
200 
201     CURSOR C IS SELECT rowid FROM gl_encumbrance_types
202                 WHERE  encumbrance_type = x_encumbrance_type;
203 
204     current_sequence        NUMBER := 0;
205   BEGIN
206     IF (x_encumbrance_type_id IS NULL) THEN
207       SELECT gl_encumbrance_types_s.nextval
208       INTO   x_encumbrance_type_id
209       FROM   dual;
210     END IF;
211 
212     IF (x_encumbrance_type_key IS NULL) THEN
213       x_encumbrance_type_key := to_char(x_encumbrance_type_id);
214     END IF;
215 
216     INSERT INTO gl_encumbrance_types(
217             encumbrance_type_id,
218             encumbrance_type_key,
219             encumbrance_type,
220             enabled_flag,
221             last_update_date,
222             last_updated_by,
223             creation_date,
224             created_by,
225             last_update_login,
226             description
227            )
228     VALUES(x_encumbrance_type_id,
229            x_encumbrance_type_key,
230            x_encumbrance_type,
231            x_enabled_flag,
232            x_last_update_date,
233            x_last_updated_by,
234            x_creation_date,
235            x_created_by,
236            x_last_update_login,
237            x_description);
238 
239     OPEN C;
240     FETCH C INTO x_Rowid;
241     if (C%NOTFOUND) then
242       CLOSE C;
243       Raise NO_DATA_FOUND;
244     end if;
245     CLOSE C;
246 
247   END insert_row;
248 
249 
250   PROCEDURE update_row(
251               x_encumbrance_type_id             IN  NUMBER,
252               x_encumbrance_type                IN  VARCHAR2,
253               x_enabled_flag                    IN  VARCHAR2,
254               x_last_update_date                IN  DATE,
255               x_last_updated_by                 IN  NUMBER,
256               x_last_update_login               IN  NUMBER,
257               x_description                     IN  VARCHAR2) IS
258 
259   BEGIN
260     UPDATE gl_encumbrance_types
261     SET    encumbrance_type     =  x_encumbrance_type,
262            enabled_flag         =  x_enabled_flag,
263            last_update_date     =  x_last_update_date,
264            last_updated_by      =  x_last_updated_by,
265            last_update_login    =  x_last_update_login,
266            description          =  x_description
267     WHERE  encumbrance_type_id  =  x_encumbrance_type_id;
268 
269     if (SQL%NOTFOUND) then
270        Raise NO_DATA_FOUND;
271     end if;
272   END update_row;
273 
274   PROCEDURE load_row(
275             y_encumbrance_type_key            IN  VARCHAR2,
276             y_owner                           IN  VARCHAR2,
277             y_encumbrance_type		      IN  VARCHAR2,
278             y_description                     IN  VARCHAR2,
279             y_enabled_flag                    IN  VARCHAR2,
280             y_force_edits                     IN  VARCHAR2 default 'N') IS
281 
282     l_user_id              NUMBER := 0;
283     l_encumbrance_type_id  NUMBER;
284     l_rowid                ROWID := NULL;
285     l_encumbrance_type_key VARCHAR2(30);
286   BEGIN
287 
288     l_encumbrance_type_key := y_encumbrance_type_key;
289 
290     IF y_owner = 'SEED' THEN
291        l_user_id := 1;
292     END IF;
293 
294     -- validate input parameters
295     IF (l_encumbrance_type_key IS NULL OR
296         y_encumbrance_type    IS NULL OR
297         y_enabled_flag        IS NULL) THEN
298 
299        FND_MESSAGE.set_name('SQLGL', 'GL_LOAD_ROW_NO_DATA');
300        APP_EXCEPTION.raise_exception;
301     END IF;
302 
303     BEGIN
304 
305       /* Update only if force_edits is 'Y' or it is seed data */
306       IF ((y_force_edits = 'Y') OR (y_owner = 'SEED')) THEN
307 
308          SELECT encumbrance_type_id
309          INTO l_encumbrance_type_id
310          FROM gl_encumbrance_types
311          WHERE encumbrance_type_key = l_encumbrance_type_key;
312 
313          -- update row if present
314          GL_ENCUMBRANCE_TYPES_PKG.update_row(
315            x_encumbrance_type_id =>  l_encumbrance_type_id,
316            x_encumbrance_type    =>  y_encumbrance_type,
317            x_enabled_flag        =>  y_enabled_flag,
318            x_last_update_date    =>  sysdate,
319            x_last_updated_by     =>  l_user_id,
320            x_last_update_login   =>  0,
321            x_description         =>  y_description);
322       END IF;
323 
324     EXCEPTION WHEN NO_DATA_FOUND THEN
325       GL_ENCUMBRANCE_TYPES_PKG.insert_row(
326            x_rowid               =>  l_rowid,
327            x_encumbrance_type_id => l_encumbrance_type_id,
328            x_encumbrance_type_key => l_encumbrance_type_key,
329            x_encumbrance_type    =>  y_encumbrance_type,
330            x_enabled_flag        =>  y_enabled_flag,
331            x_last_update_date    =>  sysdate,
332            x_last_updated_by     =>  l_user_id,
333            x_creation_date       =>  sysdate,
334            x_created_by          =>  l_user_id,
335            x_last_update_login   =>  0,
336            x_description         =>  y_description);
337     END;
338   END load_row;
339 
340   PROCEDURE Translate_Row(
341             x_encumbrance_type_key            IN  VARCHAR2,
342             x_owner                           IN  VARCHAR2,
343             x_encumbrance_type		      IN  VARCHAR2,
344             x_description                     IN  VARCHAR2,
345             x_enabled_flag                    IN  VARCHAR2,
346             x_force_edits                     IN  VARCHAR2 default 'N') IS
347 
348     l_user_id  NUMBER := 0;
349 
350   BEGIN
351 
352     IF x_owner = 'SEED' THEN
353        l_user_id := 1;
354     END IF;
355 
356     /* Update only if force_edits is 'Y' or it is seed data */
357     IF ((x_force_edits = 'Y') OR (x_owner = 'SEED')) THEN
358 
359        UPDATE GL_ENCUMBRANCE_TYPES
360        SET    encumbrance_type     =  x_encumbrance_type,
361               description          =  x_description,
362               last_update_date     =  sysdate,
363               last_updated_by      =  l_user_id,
364               last_update_login    =  0
365        WHERE  encumbrance_type_key =  x_encumbrance_type_key
366        AND    userenv('LANG') =
367               ( SELECT language_code
368                 FROM  FND_LANGUAGES
369                 WHERE  installed_flag = 'B' );
370     END IF;
371  /*If base language is not set to the language being uploaded, then do nothing.*/
372     IF SQL%NOTFOUND THEN
373        NULL;
374     END IF;
375 
376   END translate_row;
377 
378 END gl_encumbrance_types_pkg;