[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;