[Home] [Help]
PACKAGE BODY: APPS.FUN_TRX_ENTRY_UTIL
Source
1 PACKAGE BODY FUN_TRX_ENTRY_UTIL AS
2 -- $Header: funtrxentryutilb.pls 120.15 2011/08/25 06:34:52 srampure ship $
3
4 /****************************************************************
5 * FUNCTION : get_concatenated_accounted *
6 * *
7 * This function returns the concatenated segments for a *
8 * transaction type name given ccid *
9 ****************************************************************/
10
11 FUNCTION get_concatenated_account
12 (
13 p_ccid in NUMBER
14 ) RETURN VARCHAR2
15 IS
16
17 CURSOR c_details IS
18 SELECT fifs.concatenated_segment_delimiter,
19 gcc.segment1,
20 gcc.segment2,
21 gcc.segment3,
22 gcc.segment4,
23 gcc.segment5,
24 gcc.segment6,
25 gcc.segment7,
26 gcc.segment8,
27 gcc.segment9,
28 gcc.segment10,
29 gcc.segment11,
30 gcc.segment12,
31 gcc.segment13,
32 gcc.segment14,
33 gcc.segment15,
34 gcc.segment16,
35 gcc.segment17,
36 gcc.segment18,
37 gcc.segment19,
38 gcc.segment20,
39 gcc.segment21,
40 gcc.segment22,
41 gcc.segment23,
42 gcc.segment24,
43 gcc.segment25,
44 gcc.segment26,
45 gcc.segment27,
46 gcc.segment28,
47 gcc.segment29,
48 gcc.segment30
49 FROM fnd_id_flex_structures fifs,
50 gl_code_combinations gcc
51 WHERE fifs.application_id=101
52 AND fifs.id_flex_code = 'GL#'
53 AND fifs.id_flex_num = gcc.chart_of_accounts_id
54 AND gcc.code_combination_id = p_ccid;
55
56 l_concat_value varchar2(1000);
57 l_details c_details%rowtype;
58 l_nseg number;
59
60 BEGIN
61
62 OPEN c_details;
63 FETCH c_details INTO l_details;
64
65 IF c_details%NOTFOUND THEN
66 return null;
67 END IF;
68
69 CLOSE c_details;
70
71 SELECT count(1) into l_nseg
72 FROM fnd_id_flex_segments fifs,
73 gl_code_combinations glcc
74 WHERE fifs.application_id = 101 and
75 fifs.id_flex_code = 'GL#' and
76 fifs.id_flex_num = glcc.chart_of_accounts_id and
77 glcc.code_combination_id =p_ccid;
78
79 l_concat_value := FND_FLEX_SERVER.get_concatenated_value(
80 P_DELIMITER => l_details.concatenated_segment_delimiter,
81 P_SEGMENT_COUNT => l_nseg,
82 P_SEGMENT1 => l_details.segment1,
83 P_SEGMENT2 => l_details.segment2,
84 P_SEGMENT3 => l_details.segment3,
85 P_SEGMENT4 => l_details.segment4,
86 P_SEGMENT5 => l_details.segment5,
87 P_SEGMENT6 => l_details.segment6,
88 P_SEGMENT7 => l_details.segment7,
89 P_SEGMENT8 => l_details.segment8,
90 P_SEGMENT9 => l_details.segment9,
91 P_SEGMENT10 => l_details.segment10,
92 P_SEGMENT11 => l_details.segment11,
93 P_SEGMENT12 => l_details.segment12,
94 P_SEGMENT13 => l_details.segment13,
95 P_SEGMENT14 => l_details.segment14,
96 P_SEGMENT15 => l_details.segment15,
97 P_SEGMENT16 => l_details.segment16,
98 P_SEGMENT17 => l_details.segment17,
99 P_SEGMENT18 => l_details.segment18,
100 P_SEGMENT19 => l_details.segment19,
101 P_SEGMENT20 => l_details.segment20,
102 P_SEGMENT21 => l_details.segment21,
103 P_SEGMENT22 => l_details.segment22,
104 P_SEGMENT23 => l_details.segment23,
105 P_SEGMENT24 => l_details.segment24,
106 P_SEGMENT25 => l_details.segment25,
107 P_SEGMENT26 => l_details.segment26,
108 P_SEGMENT27 => l_details.segment27,
109 P_SEGMENT28 => l_details.segment28,
110 P_SEGMENT29 => l_details.segment29,
111 P_SEGMENT30 => l_details.segment30 );
112
113 RETURN (l_concat_value);
114
115 End get_concatenated_account;
116
117 /****************************************************************
118 * FUNCTION : get_ledger_id *
119 * *
120 * This function returns the ledger_id for a *
121 * intercompany organization *
122 ****************************************************************/
123
124 FUNCTION get_ledger_id
125 (
126 p_party_id IN NUMBER,
127 p_party_type IN Varchar2
128 ) RETURN NUMBER
129 IS
130 l_ledger_id Number;
131 l_return_id Number;
132
133 Begin
134
135 -- David Haimes bug 4962308
136 -- removed the hz_party table from the sql below as it was redundant.
137
138 SELECT ledger_id INTO l_return_id
139 FROM gl_ledger_le_v ledger_le, xle_firstparty_information_v le
140 WHERE fun_tca_pkg.get_le_id(p_party_id) = le.party_id
141 AND le.legal_entity_id = ledger_le.legal_entity_id
142 AND ledger_le.ledger_category_code = 'PRIMARY';
143
144 return l_return_id;
145
146 EXCEPTION
147 WHEN OTHERS THEN
148 l_return_id := -99;
149 return l_return_id;
150
151 end get_ledger_id;
152
153 /****************************************************************
154 * FUNCTION : get_default_ccid *
155 * *
156 * This function returns the default intercompany account (ccid)*
157 * for an initiator/recipient combination *
158 ****************************************************************/
159
160 FUNCTION get_default_ccid
161 (
162 p_from_le_id IN NUMBER,
163 p_to_le_id IN NUMBER,
164 p_type IN VARCHAR2
165 ) RETURN NUMBER
166 IS
167 l_cc_id Number;
168 Begin
169
170 begin
171 SELECT ccid INTO l_cc_id
172 FROM fun_inter_accounts
173 WHERE from_le_id = p_from_le_id
174 AND to_le_id = p_to_le_id
175 AND type = p_type
176 AND rownum = 1
177 ORDER by default_flag;
178 exception
179 when no_data_found then
180 SELECT ccid INTO l_cc_id
181 FROM fun_inter_accounts
182 WHERE from_le_id = p_from_le_id
183 AND to_le_id = -99
184 AND type = p_type
185 AND rownum = 1
186 ORDER by default_flag;
187 end;
188
189 return l_cc_id;
190
191 EXCEPTION
192 WHEN OTHERS THEN
193 l_cc_id := 0;
194 return l_cc_id;
195 END get_default_ccid;
196
197 /****************************************************************
198 * FUNCTION : log_debug *
199 * *
200 * This procedure calls fnd_log to log debug messages *
201 * Debug Levels: *
202 * LEVEL_UNEXPECTED CONSTANT NUMBER := 6; *
203 * LEVEL_ERROR CONSTANT NUMBER := 5; *
204 * LEVEL_EXCEPTION CONSTANT NUMBER := 4; *
205 * LEVEL_EVENT CONSTANT NUMBER := 3; *
206 * LEVEL_PROCEDURE CONSTANT NUMBER := 2; *
207 * LEVEL_STATEMENT CONSTANT NUMBER := 1; *
208 ****************************************************************/
209
210 PROCEDURE log_debug
211 (
212 p_log_level IN VARCHAR2 ,
213 p_module IN VARCHAR2,
214 p_message IN VARCHAR2
215 )
216 IS
217 l_debug_level NUMBER;
218 BEGIN
219 l_debug_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
220 IF (p_log_level >= l_debug_level) THEN
221 FND_LOG.STRING(p_log_level, p_module, p_message);
222 END IF;
223 END log_debug;
224
225 /*******************************************************************
226 * FUNCTION : get_ccid *
227 * *
228 * This function will swap the BSV and IC segments of the CCID*
229 * passed and returns new CCID. *
230 ********************************************************************/
231
232 FUNCTION get_ccid
233 ( p_ccid IN NUMBER,
234 p_from_ledger_id IN NUMBER,
235 p_to_ledger_id IN NUMBER,
236 p_gl_date IN DATE) RETURN NUMBER IS
237
238 l_ccid NUMBER;
239 l_coa NUMBER;
240 l_ic_seg_num NUMBER;
241 l_bal_seg_num NUMBER;
242 bal_seg_val VARCHAR2(25);
243 intercompany_seg_val VARCHAR2(25);
244 l_query VARCHAR2(250);
245
246 TYPE cur_typ IS REF CURSOR;
247 c_seg_values cur_typ;
248
249 BEGIN
250
251 select tgl.chart_of_accounts_id,
252 fun_bal_pkg.get_segment_index(tgl.chart_of_accounts_id,
253 'GL_BALANCING'),
254 fun_bal_pkg.get_segment_index(tgl.chart_of_accounts_id,
255 'GL_INTERCOMPANY')
256 into l_coa, l_bal_seg_num, l_ic_seg_num
257 from gl_ledgers fgl, gl_ledgers tgl
258 where fgl.chart_of_accounts_id = tgl.chart_of_accounts_id
259 and fgl.ledger_id = p_from_ledger_id
260 and tgl.ledger_id = p_to_ledger_id;
261
262 l_query := 'select SEGMENT'||l_bal_seg_num ||', DECODE('||l_ic_seg_num||', NULL, NULL, SEGMENT' || l_ic_seg_num ||') FROM GL_CODE_COMBINATIONS WHERE CODE_COMBINATION_ID = :ccid';
263
264 OPEN c_seg_values FOR l_query USING p_ccid;
265 FETCH c_seg_values INTO bal_seg_val, intercompany_seg_val;
266
267 l_ccid := fun_bal_pkg.get_ccid (
268 ccid => p_ccid,
269 chart_of_accounts_id => l_coa,
270 bal_seg_val => intercompany_seg_val,
271 intercompany_seg_val => bal_seg_val,
272 bal_seg_column_number => l_bal_seg_num,
273 intercompany_column_number => l_ic_seg_num,
274 gl_date => p_gl_date);
275 RETURN l_ccid;
276
277 EXCEPTION
278 WHEN OTHERS THEN
279 return -1;
280
281 END get_ccid;
282
283 /****************************************************************
284 * FUNCTION : get_concat_description *
285 * *
286 * This function returns the account description for a *
287 * given ccid. *
288 ****************************************************************/
289
290 FUNCTION get_concat_description
291 (
292 p_ccid in NUMBER
293 ) RETURN VARCHAR2
294 IS
295
296 l_coa gl_code_combinations.CHART_OF_ACCOUNTS_ID%TYPE;
297
298 BEGIN
299
300 select CHART_OF_ACCOUNTS_ID
301 INTO l_coa
302 from gl_code_combinations
303 where code_combination_id = p_ccid;
304
305 RETURN GL_FLEXFIELDS_PKG.get_concat_description( l_coa, p_ccid);
306
307 EXCEPTION
308 WHEN OTHERS THEN
309 RETURN NULL;
310
311 End get_concat_description;
312
313 END FUN_TRX_ENTRY_UTIL;