DBA Data[Home] [Help]

PACKAGE BODY: APPS.GL_RJE_ACCESS_PKG

Source


1 PACKAGE BODY GL_RJE_ACCESS_PKG AS
2 /* $Header: glirecab.pls 120.5 2005/05/05 01:19:24 kvora ship $ */
3 
4 --*******************************************************************
5 
6   FUNCTION validate_calc_effective_date (x_batch_id   NUMBER,
7                                        x_selected_ced DATE) RETURN BOOLEAN IS
8 -- x_batch_id is recurring batch id, x_selected_ced is the calculation
9 -- effective date
10 
11   CURSOR formulas (num NUMBER) IS
12     SELECT  recurring_header_id
13       FROM  gl_recurring_headers
14      WHERE  recurring_batch_id = x_batch_id
15        AND  rownum <= num;
16 
17     num_formula    NUMBER;
18     Lgr_id         NUMBER;
19     profile_buffer VARCHAR2(80);
20     start_date     DATE;
21     end_date       DATE;
22     DEFAULT_NUM_FORMULAS_TO_CHECK	CONSTANT NUMBER := 5;
23 
24   BEGIN
25     -- get profile option
26     FND_PROFILE.GET('GL_RJE_NUMBER_OF_FORMULAS_TO_VALIDATE', profile_buffer);
27     num_formula := to_number(profile_buffer);
28     if (num_formula IS NULL) then
29       num_formula := DEFAULT_NUM_FORMULAS_TO_CHECK;
30     end if;
31 
32     FOR next_formula IN formulas(num_formula) LOOP
33 
34       SELECT   nvl(ru.ledger_id, hd.ledger_id)
35         INTO   lgr_id
36         FROM   gl_recurring_line_calc_rules ru, gl_recurring_headers hd
37        WHERE   hd.recurring_header_id = next_formula.recurring_header_id
38          AND   hd.recurring_header_id = ru.recurring_header_id(+)
39          AND   rownum <2;
40 
41 -- for each ledger id found, check if the selected calculation
42 -- effective date falls in its never opened period
43 
44         gl_period_statuses_pkg.get_calendar_range(lgr_id,
45                                                   start_date,
46                                                   end_date);
47         if (x_selected_ced > end_date
48             OR x_selected_ced < start_date) then
49           RETURN FALSE;
50         end if;
51     END LOOP;
52 
53     RETURN TRUE;
54   END validate_calc_effective_date;
55 
56 --********************************************************************
57 
58   FUNCTION allow_average_usage(x_batch_id NUMBER) RETURN BOOLEAN IS
59 
60   CURSOR non_cons_ledgers (formula_id NUMBER) IS
61       SELECT 'non consolidation ledger exist'
62       FROM   gl_recurring_headers hd,
63              gl_ledgers lgr
64       WHERE  hd.recurring_header_id = formula_id
65       AND    lgr.ledger_id  =  hd.ledger_id
66       AND    lgr.consolidation_ledger_flag = 'N'
67       AND    rownum < 2;
68 
69   CURSOR formulas (num NUMBER) IS
70       SELECT recurring_header_id
71       FROM   gl_recurring_headers
72       WHERE  recurring_batch_id = x_batch_id
73       AND    rownum <= num;
74 
75 
76     DEFAULT_NUM_FORMULAS_TO_CHECK	CONSTANT NUMBER := 5;
77     num_formula     NUMBER;
78     profile_buffer  VARCHAR2(80);
79     dummy           VARCHAR2(40);
80 
81   BEGIN
82     FND_PROFILE.GET('GL_RJE_NUMBER_OF_FORMULAS_TO_VALIDATE', profile_buffer);
83     num_formula := to_number(profile_buffer);
84     if (num_formula IS NULL) then
85       num_formula := DEFAULT_NUM_FORMULAS_TO_CHECK;
86     end if;
87 
88     FOR formula_rec IN formulas(num_formula) LOOP
89 
90     OPEN non_cons_ledgers(formula_rec.recurring_header_id);
91     FETCH non_cons_ledgers INTO dummy;
92       if (non_cons_ledgers%FOUND) then
93         CLOSE non_cons_ledgers;
94         RETURN FALSE;
95       else
96         CLOSE non_cons_ledgers;
97       end if;
98 
99     END LOOP;
100 
101     RETURN TRUE;
102   END allow_average_usage;
103 
104 --************************************************************************
105 
106   FUNCTION set_random_ledger_id (x_allocation_batch_id NUMBER) RETURN NUMBER IS
107     CURSOR random_ledger IS
108     SELECT  ledger_id
109       FROM  gl_recurring_headers
110      WHERE  recurring_batch_id = x_allocation_batch_id;
111 
112      random_ledger_id      NUMBER;
113   BEGIN
114     OPEN  random_ledger;
115     FETCH random_ledger INTO random_ledger_id;
116 
117        CLOSE random_ledger;
118        RETURN( random_ledger_id );
119 
120   EXCEPTION
121     WHEN app_exceptions.application_exception THEN
122       RAISE;
123     WHEN OTHERS THEN
124       fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
125       fnd_message.set_token('PROCEDURE',
126         'GL_RJE_ACCESS_PKG.set_random_ledger_id');
127       RAISE;
128 
129   END set_random_ledger_id;
130 
131 END GL_RJE_ACCESS_PKG;