DBA Data[Home] [Help]

PACKAGE BODY: APPS.FII_EA_JE_TRAN_PKG

Source


1 PACKAGE BODY FII_EA_JE_TRAN_PKG AS
2 /* $Header: FIIEAJ1B.pls 120.4 2006/08/08 17:00:32 vkazhipu noship $ */
3 
4 
5 /* Getting category type for a category */
6 PROCEDURE get_cat_type
7 IS
8 
9 l_type VARCHAR2(100);
10 BEGIN
11 
12 	SELECT fin_cat_type_code
13 	INTO FII_EA_JE_TRAN_PKG.g_fin_type
14 	FROM fii_fin_cat_type_assgns
15 	WHERE fin_category_id= fii_ea_util_pkg.g_fin_category_id
16 	AND fin_cat_type_code IN ('EXP','R');
17 
18 EXCEPTION
19 WHEN no_data_found THEN
20    FII_EA_JE_TRAN_PKG.g_fin_type := NULL;
21 END get_cat_type;
22 
23 
24 PROCEDURE get_je_tran (
25         p_page_parameter_tbl    IN  BIS_PMV_PAGE_PARAMETER_TBL,
26         jrnl_dtl_sql             OUT NOCOPY VARCHAR2,
27         jrnl_dtl_output          OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
28 IS
29         l_as_of_date            DATE;
30         l_currency              VARCHAR2(240);
31         sqlstmt                 VARCHAR2(14000);
32 	l_ledger_where		VARCHAR2(1000);
33 	l_company_where		VARCHAR2(1000); -- To store company id dynamic where clause
34 	l_cost_center_where	VARCHAR2(1000); -- To store cost center dynamic where clause
35 	l_fud1_where		VARCHAR2(1000); -- To store user dim 1 dynamic where clause
36 	l_fud2_where		VARCHAR2(1000); -- To store user dim 2 dynamic where clause
37 	l_category_where	VARCHAR2(1000); -- To store categoty dynamic where clause
38 	l_source_where		VARCHAR2(1000); -- To store je source dynamic where clause
39 	l_entered_amount	VARCHAR2(1000); -- To store dynamic Select entered amt columns based on g_fin_type is Expense or Revenue.
40 	l_functional_amount	VARCHAR2(1000); -- To store dynamic Select functional amt columns based on g_fin_type is Expense or Revenue.
41 	l_gt_functional_amount	VARCHAR2(1000); -- To store dynamic Select grand total functional columns based on g_fin_type is Expense or Revenue.
42 	l_fud1_enabled_flag	VARCHAR2(1) := NULL;
43 	l_fud2_enabled_flag	VARCHAR2(1) := NULL;
44 
45 
46 BEGIN
47 
48 FII_EA_UTIL_PKG.reset_globals;
49 FII_EA_UTIL_PKG.get_parameters(p_page_parameter_tbl=>p_page_parameter_tbl);
50 
51 /* Getting category type for a category */
52 FII_EA_JE_TRAN_PKG.get_cat_type;
53 
54 /* Preparing Dynamic where clauses for PMV sql */
55 
56 l_ledger_where          := ' AND f.ledger_id = &FII_LEDGER+FII_LEDGER ';
57 l_category_where 	:= ' AND f.natural_account_id = &FINANCIAL ITEM+GL_FII_FIN_ITEM ';
58 l_company_where 	:= ' f.company_id = &FII_COMPANIES+FII_COMPANIES ';
59 l_cost_center_where 	:= ' AND f.cost_center_id = &ORGANIZATION+HRI_CL_ORGCC ';
60 
61 
62 
63 l_fud1_where := fii_ea_util_pkg.get_fud1_for_detail;
64 l_fud2_where := fii_ea_util_pkg.get_fud2_for_detail;
65 
66 l_fud1_where := REPLACE(l_fud1_where,'f.fud1_id','f.user_dim1_id');
67 l_fud2_where := REPLACE(l_fud2_where,'f.fud2_id','f.user_dim2_id');
68 
69 
70 /* Selecting Chart of Accounts ID */
71 
72 	BEGIN
73 		SELECT chart_of_accounts_id INTO FII_EA_UTIL_PKG.g_coaid
74                 FROM gl_ledgers_public_v
75                 WHERE ledger_id = FII_EA_UTIL_PKG.g_ledger_id;
76 	END;
77 
78 /* Select columns based on call for Expense or Revenue */
79 
80 IF FII_EA_JE_TRAN_PKG.g_fin_type = 'EXP' THEN /* Expense*/
81 
82 	l_entered_amount := ' SUM(NVL(jln.entered_cr, 0) -  NVL(jln.entered_dr, 0))*-1 FII_EA_ENTERED_AMOUNT, ';
83 	l_functional_amount := ' SUM(NVL(jln.accounted_cr, 0) -  NVL(jln.accounted_dr, 0))*-1 FII_EA_FUNCTIONAL_AMOUNT, ';
84 	l_gt_functional_amount := ' SUM(SUM(NVL(jln.accounted_cr, 0) -NVL(jln.accounted_dr,0))*-1) OVER() FII_GT_EA_FUNCTIONAL_AMOUNT ';
85 
86 ELSIF FII_EA_JE_TRAN_PKG.g_fin_type = 'R' THEN /* Revenue */
87 
88 	l_entered_amount := ' SUM(NVL(jln.entered_cr, 0) -  NVL(jln.entered_dr, 0)) FII_EA_ENTERED_AMOUNT, ';
89 	l_functional_amount := ' SUM(NVL(jln.accounted_cr, 0) -  NVL(jln.accounted_dr, 0)) FII_EA_FUNCTIONAL_AMOUNT, ';
90 	l_gt_functional_amount := ' SUM(SUM(NVL(jln.accounted_cr, 0) -NVL(jln.accounted_dr,0))) OVER() FII_GT_EA_FUNCTIONAL_AMOUNT ';
91 
92 END IF;
93 
94 /* PMV SQL */
95 
96 sqlstmt :=
97 ' SELECT
98 	g.FII_EA_JOURNAL_NAME 		FII_EA_JOURNAL_NAME,
99 	g.FII_EA_CURRENCY 		FII_EA_CURRENCY,
100 	g.FII_EA_ENTERED_AMOUNT 	FII_EA_ENTERED_AMOUNT,
101 	g.FII_EA_FUNCTIONAL_AMOUNT 	FII_EA_FUNCTIONAL_AMOUNT,
102 	g.FII_EA_JOURNAL_DATE 		FII_EA_JOURNAL_DATE,
103 	g.FII_EA_CATEGORY 		FII_EA_CATEGORY,
104 	g.FII_EA_DESCRIPTION 		FII_EA_DESCRIPTION,
105 	g.FII_EA_SOURCE 		FII_EA_SOURCE,
106 	g.FII_GT_EA_FUNCTIONAL_AMOUNT 	FII_GT_EA_FUNCTIONAL_AMOUNT
107 FROM
108 (SELECT
109 	(rank () over(ORDER BY NLSSORT(f.name, ''NLS_SORT= BINARY'') nulls last,f.NAME)) -1 rnk,
110  	f.name 				FII_EA_JOURNAL_NAME,
111      	f.currency_code 		FII_EA_CURRENCY,
112 	'||l_entered_amount||'
113 	'||l_functional_amount||'
114      	jln.effective_date		FII_EA_JOURNAL_DATE,
115      	f.je_category 			FII_EA_CATEGORY,
116      	f.description 			FII_EA_DESCRIPTION,
117      	jes.user_je_source_name	 	FII_EA_SOURCE,
118 	'||l_gt_functional_amount||'
119  FROM 	gl_je_headers f,
120      	gl_je_lines jln,
121 	fii_gl_processed_header_ids fgl,
122 	gl_je_sources_tl jes
123 WHERE  	f.je_header_id = fgl.je_header_id
124 AND	f.je_header_id = jln.je_header_id
125 AND     f.je_source = :SOURCE_GROUP
126 '||l_ledger_where||'
127 AND     f.je_source = jes.je_source_name
128 AND  	f.actual_flag = ''A''
129 and 	jes.language =   userenv(''LANG'')
130 AND	jln.effective_date BETWEEN :CURR_PERIOD_START AND :ASOF_DATE
131 AND	jln.code_combination_id IN (SELECT f.code_combination_id
132 				   FROM fii_gl_ccid_dimensions f
133 			 	   WHERE '||l_company_where||'
134 				   '||l_cost_center_where||'
135 				   '||l_category_where||'
136 				   AND f.chart_of_accounts_id = :COAID
137 				   '||l_fud1_where||'
138 				   '||l_fud2_where||'
139 				   )
140 GROUP BY f.je_header_id, f.name, jln.effective_date, f.currency_code, f.je_category, f.description, jes.user_je_source_name) g
141 WHERE  (rnk BETWEEN &START_INDEX AND &END_INDEX or &END_INDEX = -1)
142 ORDER BY FII_EA_FUNCTIONAL_AMOUNT DESC  ';
143 
144 
145 -- Attach bind parameters
146 
147 FII_EA_UTIL_PKG.bind_variable(
148         p_sqlstmt=>sqlstmt,
149         p_page_parameter_tbl=>p_page_parameter_tbl,
150         p_sql_output=>jrnl_dtl_sql,
151         p_bind_output_table=>jrnl_dtl_output);
152 
153 END get_je_tran;
154 
155 --***********************************--
156 
157 /* Code for Journal Transaction Line Level Report */
158 
159 PROCEDURE get_je_line_tran (
160         p_page_parameter_tbl    IN  BIS_PMV_PAGE_PARAMETER_TBL,
161         jrnl_dtl_sql             OUT NOCOPY VARCHAR2,
162         jrnl_dtl_output          OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL)
163 IS
164         l_as_of_date            DATE;
165         l_currency              VARCHAR2(240);
166         sqlstmt                 VARCHAR2(14000);
167 	l_ledger_where		VARCHAR2(1000);
168 	l_company_where		VARCHAR2(1000); -- To store company id dynamic where clause
169 	l_cost_center_where	VARCHAR2(1000); -- To store cost center dynamic where clause
170 	l_fud1_where		VARCHAR2(1000); -- To store user dim 1 dynamic where clause
171 	l_fud2_where		VARCHAR2(1000); -- To store user dim 2 dynamic where clause
172 	l_category_where	VARCHAR2(1000); -- To store categoty dynamic where clause
173 	l_source_where		VARCHAR2(1000); -- To store je source dynamic where clause
174 	l_entered_amount	VARCHAR2(1000); -- To store dynamic Select entered amt columns based on g_fin_type is Expense or Revenue.
175 	l_functional_amount	VARCHAR2(1000); -- To store dynamic Select functional amt columns based on g_fin_type is Expense or Revenue.
176 	l_gt_functional_amount	VARCHAR2(1000); -- To store dynamic Select grand total functional columns based on g_fin_type is Expense or Revenue.
177 	l_fud1_enabled_flag	VARCHAR2(1) := NULL;
178 	l_fud2_enabled_flag	VARCHAR2(1) := NULL;
179 
180 
181 BEGIN
182 
183 FII_EA_UTIL_PKG.get_parameters(p_page_parameter_tbl=>p_page_parameter_tbl);
184 
185 /* Getting category type for a category */
186 FII_EA_JE_TRAN_PKG.get_cat_type;
187 
188 /* Preparing Dynamic where clauses for PMV sql */
189 
190 l_ledger_where          := ' AND f.ledger_id = &FII_LEDGER+FII_LEDGER ';
191 l_category_where 	:= ' AND f.natural_account_id = &FINANCIAL ITEM+GL_FII_FIN_ITEM ';
192 l_company_where 	:= ' f.company_id = &FII_COMPANIES+FII_COMPANIES ';
193 l_cost_center_where 	:= ' AND f.cost_center_id = &ORGANIZATION+HRI_CL_ORGCC ';
194 
195 
196 l_fud1_where := fii_ea_util_pkg.get_fud1_for_detail;
197 l_fud2_where := fii_ea_util_pkg.get_fud2_for_detail;
198 
199 l_fud1_where := REPLACE(l_fud1_where,'f.fud1_id','f.user_dim1_id');
200 l_fud2_where := REPLACE(l_fud2_where,'f.fud2_id','f.user_dim2_id');
201 
202 
203 /* Selecting Chart of Accounts ID */
204 
205 	BEGIN
206 		SELECT chart_of_accounts_id INTO FII_EA_UTIL_PKG.g_coaid
207                 FROM gl_ledgers_public_v
208                 WHERE ledger_id = FII_EA_UTIL_PKG.g_ledger_id;
209 	END;
210 
211 /* Select columns based on call for Expense or Revenue */
212 
213 IF FII_EA_JE_TRAN_PKG.g_fin_type = 'EXP' THEN /* Expense*/
214 
215 	l_entered_amount := ' (NVL(jln.entered_cr, 0) -  NVL(jln.entered_dr, 0))*-1 FII_EA_ENTERED_AMOUNT, ';
216 	l_functional_amount := ' (NVL(jln.accounted_cr, 0) -  NVL(jln.accounted_dr, 0)) *-1 FII_EA_FUNCTIONAL_AMOUNT, ';
217 	l_gt_functional_amount := ' SUM((NVL(jln.accounted_cr, 0) -NVL(jln.accounted_dr,0)) *-1) OVER() FII_GT_EA_FUNCTIONAL_AMOUNT ';
218 
219 ELSIF FII_EA_JE_TRAN_PKG.g_fin_type = 'R' THEN /* Revenue */
220 
221 
222 	l_entered_amount := ' (NVL(jln.entered_cr, 0) -  NVL(jln.entered_dr, 0)) FII_EA_ENTERED_AMOUNT, ';
223 	l_functional_amount := ' (NVL(jln.accounted_cr, 0) -  NVL(jln.accounted_dr, 0))  FII_EA_FUNCTIONAL_AMOUNT, ';
224 	l_gt_functional_amount := ' SUM((NVL(jln.accounted_cr, 0) -NVL(jln.accounted_dr,0))) OVER() FII_GT_EA_FUNCTIONAL_AMOUNT ';
225 
226 END IF;
227 
228 /* PMV SQL */
229 sqlstmt :=
230 ' SELECT
231 	g.FII_EA_JOURNAL_NAME 		FII_EA_JOURNAL_NAME,
232 	g.FII_EA_CURRENCY 		FII_EA_CURRENCY,
233 	g.FII_EA_ENTERED_AMOUNT 	FII_EA_ENTERED_AMOUNT,
234 	g.FII_EA_LINE_NUMBER		FII_EA_LINE_NUMBER,
235 	g.FII_EA_ACCOUNT_NUMBER		FII_EA_ACCOUNT_NUMBER,
236 	g.FII_EA_FUNCTIONAL_AMOUNT 	FII_EA_FUNCTIONAL_AMOUNT,
237 	g.FII_EA_JOURNAL_DATE 		FII_EA_JOURNAL_DATE,
238 	g.FII_EA_CATEGORY 		FII_EA_CATEGORY,
239 	g.FII_EA_DESCRIPTION 		FII_EA_DESCRIPTION,
240 	g.FII_EA_SOURCE 		FII_EA_SOURCE,
241 	g.FII_EA_REFERENCE_1		FII_EA_REFERENCE_1,
242 	g.FII_EA_REFERENCE_2		FII_EA_REFERENCE_2,
243 	g.FII_EA_REFERENCE_3		FII_EA_REFERENCE_3,
244 	g.FII_EA_REFERENCE_4		FII_EA_REFERENCE_4,
245 	g.FII_EA_REFERENCE_5		FII_EA_REFERENCE_5,
246 	g.FII_EA_REFERENCE_6		FII_EA_REFERENCE_6,
247 	g.FII_EA_REFERENCE_7		FII_EA_REFERENCE_7,
248 	g.FII_EA_REFERENCE_8		FII_EA_REFERENCE_8,
249 	g.FII_EA_REFERENCE_9		FII_EA_REFERENCE_9,
250 	g.FII_EA_REFERENCE_10		FII_EA_REFERENCE_10,
251 	g.FII_GT_EA_FUNCTIONAL_AMOUNT 	FII_GT_EA_FUNCTIONAL_AMOUNT
252 FROM
253 (SELECT
254 	(rank () over(ORDER BY NLSSORT(f.name, ''NLS_SORT= BINARY'') nulls last,f.NAME,jln.effective_date,jln.je_line_num)) -1 rnk,
255  	f.name 				FII_EA_JOURNAL_NAME,
256      	f.currency_code 		FII_EA_CURRENCY,
257 	'||l_entered_amount||'
258 	jln.je_line_num			FII_EA_LINE_NUMBER,
259 	RTRIM(glc.concatenated_segments)	FII_EA_ACCOUNT_NUMBER,
260 	'||l_functional_amount||'
261      	jln.effective_date		FII_EA_JOURNAL_DATE,
262      	f.je_category 			FII_EA_CATEGORY,
263      	f.description 			FII_EA_DESCRIPTION,
264      	jes.user_je_source_name		FII_EA_SOURCE,
265 	TRIM(jln.reference_1)			FII_EA_REFERENCE_1,
266 	TRIM(jln.reference_2)			FII_EA_REFERENCE_2,
267 	TRIM(jln.reference_3)			FII_EA_REFERENCE_3,
268 	TRIM(jln.reference_4)			FII_EA_REFERENCE_4,
269 	TRIM(jln.reference_5)			FII_EA_REFERENCE_5,
270 	TRIM(jln.reference_6)			FII_EA_REFERENCE_6,
271 	TRIM(jln.reference_7)			FII_EA_REFERENCE_7,
272 	TRIM(jln.reference_8)			FII_EA_REFERENCE_8,
273 	TRIM(jln.reference_9)			FII_EA_REFERENCE_9,
274 	TRIM(jln.reference_10)			FII_EA_REFERENCE_10,
275 	'||l_gt_functional_amount||'
276  FROM 	gl_je_headers f,
277      	gl_je_lines jln,
278 	fii_gl_processed_header_ids fgl,
279 	gl_code_combinations_kfv glc,
280 	gl_je_sources_tl jes
281 WHERE  	f.je_header_id = fgl.je_header_id
282 AND	f.je_header_id = jln.je_header_id
283 AND     f.je_source = :SOURCE_GROUP
284 '||l_ledger_where||'
285 AND     f.je_source = jes.je_source_name
286 AND     f.actual_flag = ''A''
287 AND 	jes.language =   userenv(''LANG'')
288 AND	jln.effective_date BETWEEN :CURR_PERIOD_START AND :ASOF_DATE
289 AND 	jln.code_combination_id = glc.code_combination_id
290 AND 	glc.chart_of_accounts_id = :COAID
291 AND	jln.code_combination_id IN (SELECT f.code_combination_id
292 				   FROM fii_gl_ccid_dimensions f
293 			 	   WHERE '||l_company_where||'
294 				   '||l_cost_center_where||'
295 				   '||l_category_where||'
296 				   AND f.chart_of_accounts_id = :COAID
297 				   '||l_fud1_where||'
298 				   '||l_fud2_where||'
299 				   )
300 ) g
301 WHERE  (rnk BETWEEN &START_INDEX AND &END_INDEX or &END_INDEX = -1)
302 ORDER BY FII_EA_FUNCTIONAL_AMOUNT DESC  ';
303 
304 
305 
306 
307 -- Attach bind parameters
308 
309 FII_EA_UTIL_PKG.bind_variable(
310         p_sqlstmt=>sqlstmt,
311         p_page_parameter_tbl=>p_page_parameter_tbl,
312         p_sql_output=>jrnl_dtl_sql,
313         p_bind_output_table=>jrnl_dtl_output);
314 
315 END get_je_line_tran;
316 
317 
318 
319 END FII_EA_JE_TRAN_PKG;
320