DBA Data[Home] [Help]

PACKAGE BODY: APPS.GL_AUTO_ALLOC_SET_PKG

Source


1 PACKAGE BODY gl_auto_alloc_set_pkg AS
2 /* $Header: glatalsb.pls 120.6 2006/01/24 22:38:17 xiwu ship $ */
3 SUCCESS CONSTANT VARCHAR2(1) := 'S';
4 FAILURE CONSTANT VARCHAR2(1) := 'F';
5 
6 FUNCTION get_unique_set_id RETURN NUMBER IS
7     CURSOR get_new_id IS
8       SELECT gl_auto_alloc_sets_s.NEXTVAL
9       FROM dual;
10     new_id number;
11   BEGIN
12     OPEN get_new_id;
13     FETCH get_new_id INTO new_id;
14 
15     IF get_new_id%FOUND THEN
16       CLOSE get_new_id;
17       return(new_id);
18     ELSE
19       CLOSE get_new_id;
20       fnd_message.set_name('SQLGL', 'GL_ERROR_GETTING_UNIQUE_ID');
21       fnd_message.set_token('SEQUENCE', 'GL_AUTO_ALLOCATION_SET_ID_S');
22       app_exception.raise_exception;
23     END IF;
24   EXCEPTION
25     WHEN app_exceptions.application_exception THEN
26       RAISE;
27     WHEN OTHERS THEN
28       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
29       fnd_message.set_token('PROCEDURE',
30                             'gl_auto_alloc_set_pkg.get_unique_set_id');
31       RAISE;
32   END get_unique_set_id;
33 
34 
35 
36 Procedure Insert_Allocation_Set(
37  l_Row_Id            IN OUT NOCOPY VARCHAR2
38 , l_ALLOCATION_SET_ID           IN NUMBER
39 , l_ALLOCATION_SET_TYPE_CODE    IN VARCHAR2
40 , l_ALLOCATION_SET_NAME         IN VARCHAR2
41 , l_ALLOCATION_CODE             IN VARCHAR2
42 , l_CHART_OF_ACCOUNTS_ID        IN NUMBER
43 , l_PERIOD_SET_NAME             IN VARCHAR
44 , l_ACCOUNTED_PERIOD_TYPE       IN VARCHAR
45 , l_LAST_UPDATE_DATE            IN DATE
46 , l_LAST_UPDATED_BY             IN NUMBER
47 , l_LAST_UPDATE_LOGIN           IN NUMBER
48 , l_CREATION_DATE               IN DATE
49 , l_CREATED_BY                  IN NUMBER
50 , l_ORG_ID                      IN NUMBER
51 , l_DESCRIPTION                 IN VARCHAR2
52 , l_OWNER                       IN VARCHAR2
53 , l_SECURITY_FLAG               IN VARCHAR2
54 , l_ATTRIBUTE1                  IN VARCHAR2
55 , l_ATTRIBUTE2                  IN VARCHAR2
56 , l_ATTRIBUTE3                  IN VARCHAR2
57 , l_ATTRIBUTE4                  IN VARCHAR2
58 , l_ATTRIBUTE5                  IN VARCHAR2
59 , l_ATTRIBUTE6                  IN VARCHAR2
60 , l_ATTRIBUTE7                  IN VARCHAR2
61 , l_ATTRIBUTE8                  IN VARCHAR2
62 , l_ATTRIBUTE9                  IN VARCHAR2
63 , l_ATTRIBUTE10                 IN VARCHAR2
64 , l_ATTRIBUTE11                 IN VARCHAR2
65 , l_ATTRIBUTE12                 IN VARCHAR2
66 , l_ATTRIBUTE13                 IN VARCHAR2
67 , l_ATTRIBUTE14                 IN VARCHAR2
68 , l_ATTRIBUTE15                 IN VARCHAR2
69 , l_CONTEXT                     IN VARCHAR2
70 ) IS
71 CURSOR C_SET IS
72    SELECT rowid
73    FROM GL_AUTO_ALLOC_SETS
74    WHERE ALLOCATION_SET_ID = l_ALLOCATION_SET_ID;
75 
76 Begin
77  Insert Into GL_AUTO_ALLOC_SETS (
78   ALLOCATION_SET_ID
79 , ALLOCATION_SET_TYPE_CODE
80 , ALLOCATION_SET_NAME
81 , ALLOCATION_CODE
82 , CHART_OF_ACCOUNTS_ID
83 , PERIOD_SET_NAME
84 , ACCOUNTED_PERIOD_TYPE
85 , LAST_UPDATE_DATE
86 , LAST_UPDATED_BY
87 , LAST_UPDATE_LOGIN
88 , CREATION_DATE
89 , CREATED_BY
90 , ORG_ID
91 , DESCRIPTION
92 , OWNER
93 , SECURITY_FLAG
94 , ATTRIBUTE1
95 , ATTRIBUTE2
96 , ATTRIBUTE3
97 , ATTRIBUTE4
98 , ATTRIBUTE5
99 , ATTRIBUTE6
100 , ATTRIBUTE7
101 , ATTRIBUTE8
102 , ATTRIBUTE9
103 , ATTRIBUTE10
104 , ATTRIBUTE11
105 , ATTRIBUTE12
106 , ATTRIBUTE13
107 , ATTRIBUTE14
108 , ATTRIBUTE15
109 , CONTEXT
110 )
111 Values(
112   l_ALLOCATION_SET_ID
113 , l_ALLOCATION_SET_TYPE_CODE
114 , l_ALLOCATION_SET_NAME
115 , l_ALLOCATION_CODE
116 , l_CHART_OF_ACCOUNTS_ID
117 , l_PERIOD_SET_NAME
118 , l_ACCOUNTED_PERIOD_TYPE
119 , l_LAST_UPDATE_DATE
120 , l_LAST_UPDATED_BY
121 , l_LAST_UPDATE_LOGIN
122 , l_CREATION_DATE
123 , l_CREATED_BY
124 , l_ORG_ID
125 , l_DESCRIPTION
126 , l_OWNER
127 , l_SECURITY_FLAG
128 , l_ATTRIBUTE1
129 , l_ATTRIBUTE2
130 , l_ATTRIBUTE3
131 , l_ATTRIBUTE4
132 , l_ATTRIBUTE5
133 , l_ATTRIBUTE6
134 , l_ATTRIBUTE7
135 , l_ATTRIBUTE8
136 , l_ATTRIBUTE9
137 , l_ATTRIBUTE10
138 , l_ATTRIBUTE11
139 , l_ATTRIBUTE12
140 , l_ATTRIBUTE13
141 , l_ATTRIBUTE14
142 , l_ATTRIBUTE15
143 , l_CONTEXT
144  );
145  Open C_SET;
146  FETCH C_Set INTO l_Row_id ;
147     If (C_SET%NOTFOUND) then
148       CLOSE C_SET;
149       Raise NO_DATA_FOUND;
150     End If;
151  CLOSE C_SET;
152 
153 End Insert_Allocation_Set;
154 
155 Procedure Update_Allocation_Set(
156  l_Row_Id                      IN VARCHAR2
157 , l_ALLOCATION_SET_NAME         IN VARCHAR2
158 , l_LAST_UPDATE_DATE            IN DATE
159 , l_LAST_UPDATED_BY             IN NUMBER
160 , l_LAST_UPDATE_LOGIN           IN NUMBER
161 , l_DESCRIPTION                 IN VARCHAR2
162 , l_OWNER                       IN VARCHAR2
163 , l_SECURITY_FLAG               IN VARCHAR2
164 , l_ATTRIBUTE1                  IN VARCHAR2
165 , l_ATTRIBUTE2                  IN VARCHAR2
166 , l_ATTRIBUTE3                  IN VARCHAR2
167 , l_ATTRIBUTE4                  IN VARCHAR2
168 , l_ATTRIBUTE5                  IN VARCHAR2
169 , l_ATTRIBUTE6                  IN VARCHAR2
170 , l_ATTRIBUTE7                  IN VARCHAR2
171 , l_ATTRIBUTE8                  IN VARCHAR2
172 , l_ATTRIBUTE9                  IN VARCHAR2
173 , l_ATTRIBUTE10                 IN VARCHAR2
174 , l_ATTRIBUTE11                 IN VARCHAR2
175 , l_ATTRIBUTE12                 IN VARCHAR2
176 , l_ATTRIBUTE13                 IN VARCHAR2
177 , l_ATTRIBUTE14                 IN VARCHAR2
178 , l_ATTRIBUTE15                 IN VARCHAR2
179 , l_CONTEXT                     IN VARCHAR2
180 ) IS
181 Begin
182   Update GL_AUTO_ALLOC_SETS
183   SET
184    ALLOCATION_SET_NAME      = l_ALLOCATION_SET_NAME
185  , LAST_UPDATE_DATE         = l_LAST_UPDATE_DATE
186  , LAST_UPDATED_BY          = l_LAST_UPDATED_BY
187  , LAST_UPDATE_LOGIN        = l_LAST_UPDATE_LOGIN
188  , DESCRIPTION              = l_DESCRIPTION
189  , OWNER                    = l_OWNER
190  , SECURITY_FLAG            = l_SECURITY_FLAG
191  , ATTRIBUTE1        = l_ATTRIBUTE1
192  , ATTRIBUTE2        = l_ATTRIBUTE2
193  , ATTRIBUTE3        = l_ATTRIBUTE3
194  , ATTRIBUTE4        = l_ATTRIBUTE4
195  , ATTRIBUTE5        = l_ATTRIBUTE5
196  , ATTRIBUTE6        = l_ATTRIBUTE6
197  , ATTRIBUTE7        = l_ATTRIBUTE7
198  , ATTRIBUTE8        = l_ATTRIBUTE8
199  , ATTRIBUTE9        = l_ATTRIBUTE9
200  , ATTRIBUTE10       = l_ATTRIBUTE10
201  , ATTRIBUTE11       = l_ATTRIBUTE11
202  , ATTRIBUTE12       = l_ATTRIBUTE12
203  , ATTRIBUTE13       = l_ATTRIBUTE13
204  , ATTRIBUTE14       = l_ATTRIBUTE14
205  , ATTRIBUTE15       = l_ATTRIBUTE15
206  , CONTEXT           = l_CONTEXT
207    Where rowid       = l_row_id;
208 
209 End Update_Allocation_Set;
210 
211 Procedure Lock_Allocation_Set(
212   l_Row_Id                      IN VARCHAR2
213 , l_ALLOCATION_SET_ID           IN NUMBER
214 , l_ALLOCATION_SET_TYPE_CODE    IN VARCHAR2
215 , l_ALLOCATION_SET_NAME         IN VARCHAR2
216 , l_ALLOCATION_CODE             IN VARCHAR2
217 , l_CHART_OF_ACCOUNTS_ID        IN NUMBER
218 , l_PERIOD_SET_NAME             IN VARCHAR
219 , l_ACCOUNTED_PERIOD_TYPE       IN VARCHAR
220 , l_LAST_UPDATED_BY             IN NUMBER
221 , l_LAST_UPDATE_LOGIN           IN NUMBER
222 , l_CREATED_BY                  IN NUMBER
223 , l_DESCRIPTION                 IN VARCHAR2
224 , l_OWNER                       IN VARCHAR2
225 , l_SECURITY_FLAG               IN VARCHAR2
226 , l_ATTRIBUTE1                  IN VARCHAR2
227 , l_ATTRIBUTE2                  IN VARCHAR2
228 , l_ATTRIBUTE3                  IN VARCHAR2
229 , l_ATTRIBUTE4                  IN VARCHAR2
230 , l_ATTRIBUTE5                  IN VARCHAR2
231 , l_ATTRIBUTE6                  IN VARCHAR2
232 , l_ATTRIBUTE7                  IN VARCHAR2
233 , l_ATTRIBUTE8                  IN VARCHAR2
234 , l_ATTRIBUTE9                  IN VARCHAR2
235 , l_ATTRIBUTE10                 IN VARCHAR2
236 , l_ATTRIBUTE11                 IN VARCHAR2
237 , l_ATTRIBUTE12                 IN VARCHAR2
238 , l_ATTRIBUTE13                 IN VARCHAR2
239 , l_ATTRIBUTE14                 IN VARCHAR2
240 , l_ATTRIBUTE15                 IN VARCHAR2
241 , l_CONTEXT                     IN VARCHAR2
242 ) IS
243 CURSOR C IS
244         SELECT *
245         FROM   GL_AUTO_ALLOC_SETS
246         WHERE  rowid = l_ROW_ID
247         FOR UPDATE NOWAIT;
248  Recinfo C%ROWTYPE;
249 Begin
250     Open C;
251     Fetch C Into Recinfo;
252 
253     If (C%NOTFOUND) then
254       Close C;
255       Fnd_Message.Set_Name('FND', 'FORM_RECORD_DELETED');
256       App_Exception.Raise_Exception;
257     End If;
258 
259     Close C;
260     If (
261             Recinfo.ALLOCATION_SET_ID      = l_ALLOCATION_SET_ID
262         And Recinfo.CHART_OF_ACCOUNTS_ID   = l_CHART_OF_ACCOUNTS_ID
263         And Recinfo.PERIOD_SET_NAME = l_PERIOD_SET_NAME
264         And Recinfo.ACCOUNTED_PERIOD_TYPE = l_ACCOUNTED_PERIOD_TYPE
265         And Recinfo.ALLOCATION_SET_NAME    = l_ALLOCATION_SET_NAME
266         And Recinfo.ALLOCATION_SET_TYPE_CODE  = l_ALLOCATION_SET_TYPE_CODE
267         AND Recinfo.SECURITY_FLAG = l_SECURITY_FLAG
268         And ( Recinfo.DESCRIPTION            = l_DESCRIPTION
269               OR  ( Recinfo.DESCRIPTION  IS NULL AND
270                     l_DESCRIPTION IS NULL ))
271         And ( Recinfo.OWNER                = l_OWNER
272               OR ( Recinfo.OWNER  IS NULL AND
273                    l_OWNER IS NULL ))
274         And ( Recinfo.ATTRIBUTE1           = l_ATTRIBUTE1
275               OR ( Recinfo.ATTRIBUTE1  IS NULL AND
276                    l_ATTRIBUTE1 IS NULL ))
277         And ( Recinfo.ATTRIBUTE2           = l_ATTRIBUTE2
278               OR ( Recinfo.ATTRIBUTE2  IS NULL AND
279                    l_ATTRIBUTE2 IS NULL ))
280         And ( Recinfo.ATTRIBUTE3           = l_ATTRIBUTE3
281               OR ( Recinfo.ATTRIBUTE3  IS NULL AND
282                    l_ATTRIBUTE3 IS NULL ))
283         And ( Recinfo.ATTRIBUTE4           = l_ATTRIBUTE4
284               OR ( Recinfo.ATTRIBUTE4  IS NULL AND
285                    l_ATTRIBUTE4 IS NULL ))
286         And ( Recinfo.ATTRIBUTE5           = l_ATTRIBUTE5
287               OR ( Recinfo.ATTRIBUTE5  IS NULL AND
288                    l_ATTRIBUTE5 IS NULL ))
289         And ( Recinfo.ATTRIBUTE6           = l_ATTRIBUTE6
290               OR ( Recinfo.ATTRIBUTE6  IS NULL AND
291                    l_ATTRIBUTE6 IS NULL ))
292         And ( Recinfo.ATTRIBUTE7           = l_ATTRIBUTE7
293               OR ( Recinfo.ATTRIBUTE7  IS NULL AND
294                    l_ATTRIBUTE7 IS NULL ))
295         And ( Recinfo.ATTRIBUTE8           = l_ATTRIBUTE8
296               OR ( Recinfo.ATTRIBUTE8  IS NULL AND
297                    l_ATTRIBUTE8 IS NULL ))
298         And ( Recinfo.ATTRIBUTE9           = l_ATTRIBUTE9
299               OR ( Recinfo.ATTRIBUTE9  IS NULL AND
300                    l_ATTRIBUTE9 IS NULL ))
301         And ( Recinfo.ATTRIBUTE10           = l_ATTRIBUTE10
302               OR ( Recinfo.ATTRIBUTE10  IS NULL AND
303                    l_ATTRIBUTE10 IS NULL ))
304         And ( Recinfo.ATTRIBUTE11          = l_ATTRIBUTE11
305               OR ( Recinfo.ATTRIBUTE11  IS NULL AND
306                    l_ATTRIBUTE11 IS NULL ))
307         And ( Recinfo.ATTRIBUTE12          = l_ATTRIBUTE12
308               OR ( Recinfo.ATTRIBUTE12  IS NULL AND
309                    l_ATTRIBUTE12 IS NULL ))
310         And ( Recinfo.ATTRIBUTE13          = l_ATTRIBUTE13
311               OR ( Recinfo.ATTRIBUTE13  IS NULL AND
312                    l_ATTRIBUTE13 IS NULL ))
313         And ( Recinfo.ATTRIBUTE14           = l_ATTRIBUTE14
314               OR ( Recinfo.ATTRIBUTE14  IS NULL AND
315                    l_ATTRIBUTE14 IS NULL ))
316         And ( Recinfo.ATTRIBUTE15           = l_ATTRIBUTE15
317               OR ( Recinfo.ATTRIBUTE15  IS NULL AND
318                    l_ATTRIBUTE15 IS NULL ))
319         And ( Recinfo.Context           = l_Context
320               OR ( Recinfo.Context  IS NULL AND
321                    l_Context IS NULL ))
322         ) Then
323             Return;
324       Else
325            FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
326            APP_EXCEPTION.RAISE_EXCEPTION;
327       End If;
328 End Lock_Allocation_Set ;
329 
330 Procedure Delete_Allocation_Set(
331    l_allocation_set_id                  IN NUMBER
332   ) Is
333  Begin
334     --delete batches
335    DELETE From GL_AUTO_ALLOC_BATCHES
336    Where Allocation_Set_Id = l_allocation_set_id;
337    --Now delete set
338    DELETE From GL_AUTO_ALLOC_SETS
339    Where Allocation_Set_Id = l_allocation_set_id;
340 
341    If (SQL%NOTFOUND) then
342        Raise NO_DATA_FOUND;
343    End If;
344 
345 End Delete_Allocation_Set;
346 
347 
348   -- Procedure
349   --   Get_Batch_Content
350   -- Purpose
351   --   Get summary level batch type and balance type info
352 
353   PROCEDURE Get_Set_Content(
354                      X_Allocation_Set_Id                NUMBER,
355                      X_Contain_Actual       IN OUT NOCOPY      BOOLEAN,
356                      X_Contain_Budget       IN OUT NOCOPY      BOOLEAN,
357                      X_Contain_Encumbrance  IN OUT NOCOPY      BOOLEAN,
358                      X_Contain_Recurring    IN OUT NOCOPY      BOOLEAN,
359                      X_Contain_Project      IN OUT NOCOPY      BOOLEAN,
360                      X_Batch_Count          IN OUT NOCOPY      NUMBER
361                     ) IS
362 
363       v_batch_type VARCHAR2(1);
364 
365       CURSOR get_type IS
366         SELECT batch_type_code
367         FROM   gl_auto_alloc_batches
368         WHERE  allocation_set_id = X_Allocation_Set_Id;
369   BEGIN
370     X_Contain_Actual := FALSE;
371     X_Contain_Budget := FALSE;
372     X_Contain_Encumbrance := FALSE;
373     X_Contain_Recurring := FALSE;
374     X_Contain_Project := FALSE;
375     X_Batch_Count := 0;
376 
377     OPEN get_type;
378 
379     LOOP
380         FETCH get_type INTO v_batch_type;
381         EXIT WHEN get_type%NOTFOUND;
382 
383         IF (v_batch_type = 'A') THEN
384             X_Contain_Actual := TRUE;
385         ELSIF (v_batch_type = 'B') THEN
386             X_Contain_Budget := TRUE;
387         ELSIF (v_batch_type = 'E') THEN
388             X_Contain_Encumbrance := TRUE;
389         ELSIF (v_batch_type = 'R') THEN
390             --X_Contain_Actual := TRUE;
391             X_Contain_Recurring := TRUE;
392         ELSIF (v_batch_type = 'P') THEN
393             X_Contain_Project := TRUE;
394         END IF;
395 
396         X_Batch_Count := X_Batch_Count + 1;
397     END LOOP;
398     CLOSE get_type;
399 
400  END Get_Set_Content;
401 
402 PROCEDURE Get_SetHistory_Content(
403                      X_Request_Id           IN          NUMBER,
404                      X_Contain_Actual       IN OUT NOCOPY      BOOLEAN,
405                      X_Contain_Budget       IN OUT NOCOPY      BOOLEAN,
406                      X_Contain_Encumbrance  IN OUT NOCOPY      BOOLEAN,
407                      X_Contain_Recurring    IN OUT NOCOPY      BOOLEAN,
408                      X_Contain_Project      IN OUT NOCOPY      BOOLEAN,
409                      X_Batch_Count          IN OUT NOCOPY      NUMBER
410                     ) IS
411 
412       v_batch_type VARCHAR2(1);
413 
414       CURSOR get_type IS
415         SELECT batch_type_code
416         FROM   gl_auto_alloc_batch_history
420     X_Contain_Budget := FALSE;
417         WHERE  Request_Id = X_Request_Id;
418   BEGIN
419     X_Contain_Actual := FALSE;
421     X_Contain_Encumbrance := FALSE;
422     X_Contain_Recurring := FALSE;
423     X_Contain_Project := FALSE;
424     X_Batch_Count := 0;
425 
426     OPEN get_type;
427 
428     LOOP
429         FETCH get_type INTO v_batch_type;
430         EXIT WHEN get_type%NOTFOUND;
431 
432         IF (v_batch_type = 'A') THEN
433             X_Contain_Actual := TRUE;
434         ELSIF (v_batch_type = 'B') THEN
435             X_Contain_Budget := TRUE;
436         ELSIF (v_batch_type = 'E') THEN
437             X_Contain_Encumbrance := TRUE;
438         ELSIF (v_batch_type = 'R') THEN
439             X_Contain_Actual := TRUE;
440             X_Contain_Recurring := TRUE;
441         ELSIF (v_batch_type = 'P') THEN
442             X_Contain_Project := TRUE;
443         END IF;
444 
445         X_Batch_Count := X_Batch_Count + 1;
446     END LOOP;
447     CLOSE get_type;
448 
449  END Get_SetHistory_Content;
450 
451 
452  FUNCTION set_random_ledger_id(X_Mode IN VARCHAR2,
453                                X_Batch_Id IN NUMBER,
454                                X_Ledger_Id IN NUMBER) RETURN NUMBER IS
455    CURSOR random_batch IS
456       SELECT batch_id,batch_type_code
457       FROM   gl_auto_alloc_batches
458       WHERE  allocation_set_id = x_batch_id
459       ORDER BY (decode(batch_type_code, 'A', 1, 'R', 2, 'E', 3, 'P',4));
460 
461    CURSOR rje_ledger(random_bid number) IS
462       SELECT ledger_id
463       FROM   gl_recurring_headers
464       WHERE  recurring_batch_id = random_bid;
465 
466 
467     CURSOR ma_ledger (random_bid number) IS
468       SELECT lgr.ledger_id
469       FROM   gl_alloc_formulas af,
470              gl_alloc_formula_lines afl,
471              gl_ledger_set_assignments lsa,
472              gl_ledgers lgr
473       WHERE  af.allocation_batch_id = random_bid
474       AND    afl.allocation_formula_id = af.allocation_formula_id
475       AND    afl.line_number IN (4, 5)
476       AND    lsa.ledger_set_id (+) = nvl(afl.ledger_id, x_ledger_id)
477       AND    sysdate BETWEEN
478                      nvl(trunc(lsa.start_date), sysdate - 1)
479                  AND nvl(trunc(lsa.end_date), sysdate + 1)
480       AND    lgr.ledger_id = nvl(lsa.ledger_id,
481                                  nvl(afl.ledger_id, x_ledger_id))
482       AND    lgr.object_type_code = 'L';
483 
484    CURSOR mb_ledger (random_bid number)IS
485       SELECT lgr.ledger_id
486       FROM   gl_alloc_formulas af,
487              gl_alloc_formula_lines afl,
488              gl_ledger_set_assignments lsa,
489              gl_ledgers lgr
490       WHERE  af.allocation_batch_id = random_bid
491       AND    afl.allocation_formula_id = af.allocation_formula_id
492       AND    afl.line_number IN (4, 5)
493       AND    lsa.ledger_set_id (+) = afl.ledger_id
494       AND    sysdate BETWEEN
495                      nvl(trunc(lsa.start_date), sysdate - 1)
496                  AND nvl(trunc(lsa.end_date), sysdate + 1)
497       AND    lgr.ledger_id = nvl(lsa.ledger_id, afl.ledger_id)
498       AND    lgr.object_type_code = 'L';
499 
500    random_id   NUMBER;
501    random_bid  NUMBER;
502    random_btype VARCHAR2(1);
503   BEGIN
504 
505      IF (x_mode = 'AUTOSET') THEN
506 
507         OPEN random_batch;
508         FETCH random_batch into random_bid, random_btype;
509         CLOSE random_batch;
510 
511         IF(random_btype = 'R') THEN
512            OPEN rje_ledger(random_bid);
513            FETCH rje_ledger INTO random_id;
514            CLOSE rje_ledger;
515         ELSIF (random_btype = 'B') THEN
516            OPEN mb_ledger(random_bid);
517            FETCH mb_ledger INTO random_id;
518            CLOSE mb_ledger;
519         ELSIF (random_btype = 'A' or random_btype = 'E') THEN
520            OPEN ma_ledger(random_bid);
521            FETCH ma_ledger INTO random_id;
522            CLOSE ma_ledger;
523         END IF;
524 
525     ELSIF (x_mode = 'ALLOC') THEN
526 
527          random_bid := x_batch_id;
528          OPEN ma_ledger(random_bid);
529          FETCH ma_ledger INTO random_id;
533 
530          CLOSE ma_ledger;
531 
532     ELSIF (x_mode = 'RECUR' or x_mode = 'RECUR_BUDGET') THEN
534          random_bid := x_batch_id;
535          OPEN rje_ledger(random_bid);
536          FETCH rje_ledger INTO random_id;
537          CLOSE rje_ledger;
538 
539     ELSIF (x_mode = 'ALLOC_BUDGET') THEN
540 
541          random_bid := x_batch_id;
542          OPEN mb_ledger(random_bid);
543          FETCH mb_ledger INTO random_id;
544          CLOSE mb_ledger;
545 
546     ELSE
547 
548          random_id := -1;
549 
550     END IF;
551 
552     RETURN random_id;
553   END set_random_ledger_id;
554 
555 FUNCTION Get_Alloc_Set_Name(X_Mode            IN   VARCHAR,
556                             X_Alloc_Set_Id    IN   NUMBER) RETURN VARCHAR IS
557 
558       CURSOR get_set_name IS
559         SELECT allocation_set_name
560         FROM   gl_auto_alloc_sets
561         WHERE  allocation_set_id = X_Alloc_Set_Id;
562 
563       CURSOR get_alloc_name IS
564         SELECT name
565         FROM   gl_alloc_batches
566         WHERE  allocation_batch_id = X_Alloc_Set_Id;
567 
568       CURSOR get_rje_name IS
569         SELECT name
570         FROM   gl_recurring_batches
571         WHERE  recurring_batch_id = X_Alloc_Set_Id;
572 
573      v_name VARCHAR2(40);
574   BEGIN
575     IF (X_mode = 'AUTOSET') THEN
576          OPEN get_set_name;
577          FETCH get_set_name INTO v_name;
578          IF get_set_name%FOUND THEN
579             CLOSE get_set_name;
580             return(v_name);
581          ELSE
582             CLOSE get_set_name;
583             return(null);
584          END IF;
585    ELSIF (X_mode = 'ALLOC' OR X_mode = 'ALLOC_BUDGET') THEN
586           OPEN get_alloc_name;
587          FETCH get_alloc_name INTO v_name;
588          IF get_alloc_name%FOUND THEN
589             CLOSE get_alloc_name;
590             return(v_name);
591          ELSE
592             CLOSE get_alloc_name;
593             return(null);
594          END IF;
595    ELSIF (X_mode = 'RECUR'OR X_Mode = 'RECUR_BUDGET') THEN
596          OPEN get_rje_name;
597          FETCH get_rje_name INTO v_name;
598          IF get_rje_name%FOUND THEN
599             CLOSE get_rje_name;
600             return(v_name);
601          ELSE
602             CLOSE get_rje_name;
603             return(null);
604          END IF;
605    ELSE
606        return(null);
607 
608    END IF;
609 
610  EXCEPTION
611     WHEN app_exceptions.application_exception THEN
612       RAISE;
613     WHEN OTHERS THEN
614       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
615       fnd_message.set_token('PROCEDURE',
616                             'gl_auto_alloc_set_pkg.get_alloc_set_name');
617       RAISE;
618  END Get_Alloc_Set_Name;
619 
620 END gl_auto_alloc_set_pkg;