[Home] [Help]
PACKAGE BODY: APPS.JA_CN_VOUCHER_NUM_PKG
Source
1 PACKAGE BODY JA_CN_VOUCHER_NUM_PKG AS
2 --$Header: JACNVNGB.pls 120.9 2011/05/13 03:34:41 choli noship $
3 --+=======================================================================+
4 --| Copyright (c) 1998 Oracle Corporation |
5 --| Redwood Shores, CA, USA |
6 --| All rights reserved. |
7 --+=======================================================================+
8 --| FILENAME |
9 --| JACNVNGB.pls |
10 --| |
11 --| DESCRIPTION |
12 --| Use this package to generate the voucher numbers |
13 --| |
14 --| PROCEDURE LIST |
15 --| Procedure beforeReport |
16 --| Procedure Generate_voucher_number |
17 --| Procedure Generate_voucher_num_periods |
18 --| |
19 --| HISTORY |
20 --| 29-Jul-2010 Chongwu Li Created |
21 --| 29-Sep-2010 Jianchao Chi Updated |
22 --| 12-May-2011 Chongwu Li Updated, add method |
23 --| get_balancing_segment for CFS seperated patch |
24 --| replace ja_cn_utility invoke for this method |
25 --| tracked by bug 12541220 |
26 --+======================================================================*/
27 GV_MODULE_PREFIX VARCHAR2(100) := 'JA_CN_VOUCHER_NUM_PKG';
28
29 --==========================================================================
30 -- PROCEDURE NAME:
31 --
32 -- Generate_voucher_number Public
33 --
34 -- DESCRIPTION:
35 --
36 -- This function is to generate the voucher number
37 --
38 -- PARAMETERS:
39 -- In: pn_ledger_id Ledger ID
40 -- pn_legal_entity_id Legal Entity ID
41 -- pv_period_name Period Name
42 -- pn_regenerate_flag Regeneration Flag
43 -- Out:
44 --
45 -- DESIGN REFERENCES:
46 --
47 --
48 -- CHANGE HISTORY:
49 -- 27-Sep-2010 Chongwu Li Created
50 --
51 --===========================================================================
52 PROCEDURE Generate_voucher_number(pn_ledger_id IN NUMBER,
53 pn_legal_entity_id IN NUMBER,
54 pv_period_name IN VARCHAR2,
55 pv_regenerate_flag IN VARCHAR2) IS
56
57 lv_procedure_name VARCHAR2(40) := 'Generate_voucher_number';
58 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
59 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
60 ln_voucher_number NUMBER;
61 ln_last_header_id NUMBER;
62 ln_je_header_id NUMBER;
63 ln_bsv_assigned_num NUMBER;
64 CURSOR bsv_legal_entity_cur IS
65 SELECT DISTINCT legal_entity_id
66 FROM gl_ledger_norm_seg_vals
67 WHERE ledger_id = pn_ledger_id;
68 --Cursor for Journals which has BSV assignment
69 CURSOR voucher_cur IS
70 SELECT gjh.je_header_id,
71 gjh.default_effective_date,
72 gjh.period_name,
73 gjh.POSTING_ACCT_SEQ_VALUE,
74 gjl.je_line_num
75 FROM gl_je_headers gjh,
76 gl_je_lines gjl,
77 gl_code_combinations_kfv gcck,
78 gl_ledgers glg
79 WHERE gjh.je_header_id = gjl.je_header_id
80 AND gcck.code_combination_id = gjl.code_combination_id
81 AND glg.ledger_id = gjh.ledger_id
82 AND gjh.ledger_id = pn_ledger_id
83 AND gjh.status = 'P'
84 AND gjh.period_name = pv_period_name
85 AND EXISTS
86 (SELECT jclllbg.bal_seg_value
87 FROM ja_cn_ledger_le_bsv_gt jclllbg
88 WHERE get_balancing_segment(gjl.code_combination_id) =
89 jclllbg.bal_seg_value
90 AND jclllbg.Ledger_Id = pn_ledger_id
91 AND jclllbg.Legal_Entity_Id = pn_legal_entity_id)
92 AND NOT EXISTS
93 (SELECT je_header_id, je_line_number
94 FROM ja_cn_voucher_number jcvn
95 WHERE gjh.je_header_id = jcvn.je_header_id
96 AND gjl.je_line_num = jcvn.je_line_number
97 AND jcvn.ledger_id = pn_ledger_id
98 AND jcvn.legal_entity_id = pn_legal_entity_id
99 AND jcvn.period_name = pv_period_name)
100 ORDER BY NVL(gjh.POSTING_ACCT_SEQ_VALUE, -1) ASC,
101 gjh.default_effective_date ASC,
102 gjh.posted_date ASC,
103 gjh.je_header_id ASC;
104 --Cursor for Journals without BSV assignment
105 CURSOR voucher_no_bsv_cur IS
106 SELECT gjh.je_header_id,
107 gjh.default_effective_date,
108 gjh.period_name,
109 gjh.POSTING_ACCT_SEQ_VALUE,
110 gjl.je_line_num
111 FROM gl_je_headers gjh,
112 gl_je_lines gjl,
113 gl_code_combinations_kfv gcck,
114 gl_ledgers glg
115 WHERE gjh.je_header_id = gjl.je_header_id
116 AND gcck.code_combination_id = gjl.code_combination_id
117 AND glg.ledger_id = gjh.ledger_id
118 AND gjh.ledger_id = pn_ledger_id
119 AND gjh.status = 'P'
120 AND gjh.period_name = pv_period_name
121 AND NOT EXISTS
122 (SELECT je_header_id, je_line_number
123 FROM ja_cn_voucher_number jcvn
124 WHERE gjh.je_header_id = jcvn.je_header_id
125 AND gjl.je_line_num = jcvn.je_line_number
126 AND jcvn.ledger_id = pn_ledger_id
127 AND jcvn.legal_entity_id = pn_legal_entity_id
128 AND jcvn.period_name = pv_period_name)
129 ORDER BY NVL(gjh.POSTING_ACCT_SEQ_VALUE, -1) ASC,
130 gjh.default_effective_date ASC,
131 gjh.posted_date ASC,
132 gjh.je_header_id ASC;
133 BEGIN
134 --logging for debug
135 IF (ln_proc_level >= ln_dbg_level) THEN
136 FND_LOG.STRING(ln_proc_level,
137 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
138 '.begin',
139 'Enter procedure');
140 END IF; --ln_proc_level>=ln_dbg_level
141 FND_FILE.PUT_LINE(FND_FILE.log, 'Enter: ' || lv_procedure_name);
142 FND_FILE.put_line(FND_FILE.log,
143 lv_procedure_name || '.parameters:' ||
144 'pn_ledger_id=' || pn_ledger_id || ',' ||
145 'pn_legal_entity_id=' || pn_legal_entity_id || ',' ||
146 'pv_regenerate_flag=' || pv_regenerate_flag || ',' ||
147 'pv_period_name=' || pv_period_name);
148 BEGIN
149
150 SELECT count(*)
151 INTO ln_bsv_assigned_num
152 FROM ja_cn_ledger_le_bsv_gt
153 WHERE ledger_id = pn_ledger_id;
154 -- BSV is assigned, only the parameter legal entity will be handled.
155 IF (ln_bsv_assigned_num > 0) THEN
156 IF (pv_regenerate_flag = 'Y') THEN
157 DELETE FROM ja_cn_voucher_number
158 WHERE ledger_id = pn_ledger_id
159 AND (data_source_tag <> 'M' or data_source_tag is null)
160 AND legal_entity_id = pn_legal_entity_id
161 AND period_name = pv_period_name;
162 END IF; --IF(pv_regenerate_flag = 'Y')
163 SELECT NVL(MAX(jcvn.voucher_number), 0)
164 INTO ln_voucher_number
165 FROM ja_cn_voucher_number jcvn
166 WHERE jcvn.ledger_id = pn_ledger_id
167 AND jcvn.legal_entity_id = pn_legal_entity_id
168 AND jcvn.period_name = pv_period_name;
169 ln_last_header_id := -1;
170 FOR v_row IN voucher_cur LOOP
171 ln_je_header_id := v_row.je_header_id;
172 IF (ln_je_header_id <> ln_last_header_id) THEN
173 ln_voucher_number := ln_voucher_number + 1;
174 END IF; --IF(ln_je_header_id <> ln_last_header_id)
175
176 INSERT INTO ja_cn_voucher_number
177 (ledger_id,
178 legal_entity_id,
179 period_name,
180 je_header_id,
181 je_line_number,
182 voucher_number,
183 REQUEST_ID,
184 created_by,
185 creation_date,
186 last_updated_by,
187 last_update_date,
188 last_update_login)
189 VALUES
190 (pn_ledger_id,
191 pn_legal_entity_id,
192 pv_period_name,
193 v_row.je_header_id,
194 v_row.je_line_num,
195 ln_voucher_number,
196 fnd_global.CONC_REQUEST_ID,
197 fnd_global.user_id,
198 SYSDATE(),
199 fnd_global.user_id,
200 SYSDATE(),
201 fnd_global.login_id);
202 ln_last_header_id := v_row.je_header_id;
203 END LOOP; -- FOR v_row IN voucher_cur
204 ELSE
205 IF (pv_regenerate_flag = 'Y') THEN
206 DELETE FROM ja_cn_voucher_number
207 WHERE ledger_id = pn_ledger_id
208 AND (data_source_tag <> 'M' or data_source_tag is null)
209 AND period_name = pv_period_name;
210 END IF; --IF(pv_regenerate_flag = 'Y')
211 SELECT NVL(MAX(jcvn.voucher_number), 0)
212 INTO ln_voucher_number
213 FROM ja_cn_voucher_number jcvn
214 WHERE jcvn.ledger_id = pn_ledger_id
215 AND jcvn.period_name = pv_period_name;
216 ln_last_header_id := -1;
217 FOR v_row IN voucher_no_bsv_cur LOOP
218 ln_je_header_id := v_row.je_header_id;
219 IF (ln_je_header_id <> ln_last_header_id) THEN
220 ln_voucher_number := ln_voucher_number + 1;
221 END IF; --IF(ln_je_header_id <> ln_last_header_id)
222
223 FOR v_row1 IN bsv_legal_entity_cur LOOP
224 INSERT INTO ja_cn_voucher_number
225 (ledger_id,
226 legal_entity_id,
227 period_name,
228 je_header_id,
229 je_line_number,
230 voucher_number,
231 REQUEST_ID,
232 created_by,
233 creation_date,
234 last_updated_by,
235 last_update_date,
236 last_update_login)
237 VALUES
238 (pn_ledger_id,
239 v_row1.legal_entity_id,
240 pv_period_name,
241 v_row.je_header_id,
242 v_row.je_line_num,
243 ln_voucher_number,
244 fnd_global.CONC_REQUEST_ID,
245 fnd_global.user_id,
246 SYSDATE(),
247 fnd_global.user_id,
248 SYSDATE(),
249 fnd_global.login_id);
250 END LOOP; -- FOR v_row1 IN bsv_legal_entity_cur
251 ln_last_header_id := v_row.je_header_id;
252 END LOOP; -- FOR v_row IN voucher_cur
253 END IF;
254 EXCEPTION
255 WHEN OTHERS THEN
256 FND_FILE.put_line(FND_FILE.log,
257 lv_procedure_name || SQLCODE || SQLERRM);
258 RAISE;
259 END;
260 --logging for debug
261 IF (ln_proc_level >= ln_dbg_level) THEN
262 FND_LOG.STRING(ln_proc_level,
263 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
264 'Exit procedure');
265 END IF; -- (ln_proc_level>=ln_dbg_level)
266
267 END Generate_voucher_number;
268
269 --==========================================================================
270 -- PROCEDURE NAME:
271 --
272 -- Generate_voucher_num_periods Public
273 --
274 -- DESCRIPTION:
275 --
276 -- This function is to generate the voucher number for the period range
277 --
278 -- PARAMETERS:
279 -- In: pn_ledger_id Ledger ID
280 -- pn_legal_entity_id Legal Entity ID
281 -- pv_period_from Period From
282 -- pv_period_to Period To
283 -- pv_regenerate_flag Regeneration Flag
284 -- Out:
285 --
286 -- DESIGN REFERENCES:
287 --
288 --
289 -- CHANGE HISTORY:
290 -- 27-Sep-2010 Chongwu Li Created
291 --
292 --===========================================================================
293 PROCEDURE Generate_voucher_num_periods(pn_ledger_id IN NUMBER,
294 pn_legal_entity_id IN NUMBER,
295 pv_period_from IN VARCHAR2,
296 pv_period_to IN VARCHAR2,
297 pv_regenerate_flag IN VARCHAR2) IS
298 ln_flag VARCHAR2(10);
299 lv_procedure_name VARCHAR2(40) := 'Generate_voucher_num_periods';
300 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
301 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
302 CURSOR periods_cur IS
303 SELECT period_name
304 FROM gl_period_statuses
305 WHERE application_id = 101
306 AND ledger_id = pn_ledger_id
307 AND start_date >=
308 (select start_date
309 from gl_period_statuses
310 where application_id = 101
311 and ledger_id = pn_ledger_id
312 and period_name = pv_period_from)
313 AND end_date <= (select end_date
314 from gl_period_statuses
315 where application_id = 101
316 and ledger_id = pn_ledger_id
317 and period_name = pv_period_to)
318 AND adjustment_period_flag = 'N'
319 AND closing_status <> 'N'
320 AND closing_status <> 'F'
321 ORDER BY start_date;
322 BEGIN
323 --logging for debug
324 IF (ln_proc_level >= ln_dbg_level) THEN
325 FND_LOG.STRING(ln_proc_level,
326 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
327 '.begin',
328 'Enter procedure');
329 END IF; --ln_proc_level>=ln_dbg_level
330 FND_FILE.PUT_LINE(FND_FILE.log, 'Enter: ' || lv_procedure_name);
331 FND_FILE.put_line(FND_FILE.log,
332 lv_procedure_name || '.parameters:' ||
333 'pn_ledger_id=' || pn_ledger_id || ',' ||
334 'pn_legal_entity_id=' || pn_legal_entity_id || ',' ||
335 'pv_regenerate_flag=' || pv_regenerate_flag || ',' ||
336 'pv_period_from=' || pv_period_from || ',' ||
337 'pv_period_to=' || pv_period_to);
338 BEGIN
339 ln_flag := JA_CN_UTILITY.Populate_Ledger_Le_Bsv_Gt(p_Ledger_Id => pn_ledger_id,
340 p_Legal_Entity_Id => pn_legal_entity_id);
341 FND_FILE.put_line(FND_FILE.log,
342 lv_procedure_name || 'ln_flag = ' || ln_flag);
343 FOR v_row IN periods_cur LOOP
344 Generate_voucher_number(pn_ledger_id => pn_ledger_id,
345 pn_legal_entity_id => pn_legal_entity_id,
346 pv_period_name => v_row.period_name,
347 pv_regenerate_flag => pv_regenerate_flag);
348 END LOOP; -- FOR v_row IN periods_cur
349 EXCEPTION
350 WHEN OTHERS THEN
351 FND_FILE.put_line(FND_FILE.log,
352 lv_procedure_name || SQLCODE || SQLERRM);
353 RAISE;
354 END;
355 --logging for debug
356 IF (ln_proc_level >= ln_dbg_level) THEN
357 FND_LOG.STRING(ln_proc_level,
358 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
359 'Exit procedure');
360 END IF; -- (ln_proc_level>=ln_dbg_level)
361 END Generate_voucher_num_periods;
362
363 --==========================================================================
364 -- PROCEDURE NAME:
365 --
366 -- beforeReport Public
367 --
368 -- DESCRIPTION:
369 --
370 -- This procedure is used to deal with the parameters and invoke the
371 -- "Generate_voucher_num_periods" function to process the data.
372 --
373 -- PARAMETERS:
374 -- In: N/A
375 -- Out: TRUE/FALSE
376 --
377 -- DESIGN REFERENCES:
378 --
379 --
380 -- CHANGE HISTORY:
381 -- 29-Sep-2010 Jianchao Chi Created
382 --
383 --===========================================================================
384 PROCEDURE beforeReport(Errbuf OUT NOCOPY VARCHAR2,
385 Retcode OUT NOCOPY VARCHAR2,
386 P_RESP_APPLICATION_ID IN NUMBER,
387 P_LEGAL_ENTITY_TEMP IN NUMBER,
388 P_PROFILE_OPTION_VALUE IN NUMBER,
389 P_LEDGER_ID IN NUMBER,
390 P_LEDGER_NAME IN VARCHAR2,
391 P_LEGAL_ENTITY_ID IN NUMBER,
392 P_LEGAL_ENTITY IN VARCHAR2,
393 P_PERIOD_FROM IN VARCHAR2,
394 P_PERIOD_TO IN VARCHAR2,
395 P_REGENERATE_FLAG IN VARCHAR2) IS
396
397 lv_procedure_name VARCHAR2(40) := 'beforeReport';
398 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
399 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
400 VOUCHER_NUMBER_FROM NUMBER;
401 VOUCHER_NUMBER_TO NUMBER;
402 JOURNAL_AMOUNT NUMBER;
403 l_Error_Msg VARCHAR2(300);
404 CURSOR periods_cur IS
405 SELECT period_name
406 FROM gl_period_statuses
407 WHERE application_id = 101
408 AND ledger_id = P_LEDGER_ID
409 AND start_date >=
410 (select start_date
411 from gl_period_statuses
412 where application_id = 101
413 and ledger_id = P_LEDGER_ID
414 and period_name = P_PERIOD_FROM)
415 AND end_date <= (select end_date
416 from gl_period_statuses
417 where application_id = 101
418 and ledger_id = P_LEDGER_ID
419 and period_name = P_PERIOD_TO)
420 AND closing_status <> 'N'
421 AND closing_status <> 'F'
422 ORDER BY start_date;
423 BEGIN
424 --logging for debug
425 IF (ln_proc_level >= ln_dbg_level) THEN
426 FND_LOG.STRING(ln_proc_level,
427 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
428 '.begin',
429 'Enter procedure');
430 END IF; --ln_proc_level>=ln_dbg_level
431 FND_FILE.PUT_LINE(FND_FILE.log, 'Enter: ' || lv_procedure_name);
432 FND_FILE.put_line(FND_FILE.log, lv_procedure_name || '.parameters:');
433
434
435 Generate_voucher_num_periods(pn_ledger_id => P_LEDGER_ID,
436 pn_legal_entity_id => P_LEGAL_ENTITY_ID,
437 pv_period_from => P_PERIOD_FROM,
438 pv_period_to => P_PERIOD_TO,
439 pv_regenerate_flag => P_REGENERATE_FLAG);
440
441 FOR v_row IN periods_cur LOOP
442 SELECT COUNT(VOUCHER_NUMBER),
443 MAX(VOUCHER_NUMBER),
444 MIN(VOUCHER_NUMBER)
445 INTO JOURNAL_AMOUNT, VOUCHER_NUMBER_TO, VOUCHER_NUMBER_FROM
446 FROM (SELECT DISTINCT VOUCHER_NUMBER
447 FROM JA_CN_VOUCHER_NUMBER
448 WHERE PERIOD_NAME = v_row.period_name
449 AND (data_source_tag <> 'M' or data_source_tag is null)
450 AND REQUEST_ID = fnd_global.CONC_REQUEST_ID);
451 IF (JOURNAL_AMOUNT <> 0) THEN
452 Fnd_Message.Set_Name(Application => 'JA',
453 NAME => 'JA_CN_VOUCHER_NUMBER_HAS_DATA');
454 Fnd_Message.SET_TOKEN(TOKEN => 'PERIOD_NAME',
455 VALUE => v_row.period_name);
456 Fnd_Message.SET_TOKEN(TOKEN => 'VOUCHER_NUMBER_FROM',
457 VALUE => VOUCHER_NUMBER_FROM);
458 Fnd_Message.SET_TOKEN(TOKEN => 'VOUCHER_NUMBER_TO',
459 VALUE => VOUCHER_NUMBER_TO);
460 Fnd_Message.SET_TOKEN(TOKEN => 'JOURNAL_AMOUNT',
461 VALUE => JOURNAL_AMOUNT);
462 l_Error_Msg := Fnd_Message.Get;
463
464 --Output error message
465 Fnd_File.Put_Line(Fnd_File.Output, l_Error_Msg);
466 ELSE
467 Fnd_Message.Set_Name(Application => 'JA',
468 NAME => 'JA_CN_VOUCHER_NUMBER_NO_DATA');
469 Fnd_Message.SET_TOKEN(TOKEN => 'PERIOD_NAME', VALUE => v_row.period_name);
470 l_Error_Msg := Fnd_Message.Get;
471
472 --Output error message
473 Fnd_File.Put_Line(Fnd_File.Output, l_Error_Msg);
474 END IF;
475 END LOOP; -- FOR v_row IN periods_cur
476
477 EXCEPTION
478 WHEN OTHERS THEN
479 IF (ln_Proc_Level >= ln_dbg_level) THEN
480 Fnd_Log.STRING(ln_Proc_Level,
481 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
482 '. Other_Exception ',
483 SQLCODE || ':' || SQLERRM);
484 END IF; --(l_proc_level >= l_dbg_level)
485 END beforeReport;
486
487 --==========================================================================
488 -- PROCEDURE NAME:
489 -- get_balancing_segment public
490 --
491 -- DESCRIPTION:
492 -- This procedure returns the balancing segment value of a CCID.
493 --
494 -- PARAMETERS:
495 -- In: P_CC_ID NUMBER
496 --
497 -- DESIGN REFERENCES:
498 -- None
499 --
500 -- CHANGE HISTORY:
501 -- 11-Aug-2010 Chaoqun Wu created
502 --===========================================================================
503 FUNCTION get_balancing_segment
504 (P_CC_ID IN NUMBER
505 )
506 RETURN VARCHAR2
507 IS
508 L_BALANCING_SEGMENT GL_CODE_COMBINATIONS.SEGMENT1%TYPE;
509 BEGIN
510 SELECT
511 DECODE(FSAV.APPLICATION_COLUMN_NAME, --segment FSAV.APPLICATION_COLUMN_NAME of gcc
512 'SEGMENT1',GCC.SEGMENT1, 'SEGMENT2',GCC.SEGMENT2, 'SEGMENT3',GCC.SEGMENT3,
513 'SEGMENT4',GCC.SEGMENT4, 'SEGMENT5',GCC.SEGMENT5, 'SEGMENT6',GCC.SEGMENT6,
514 'SEGMENT7',GCC.SEGMENT7, 'SEGMENT8',GCC.SEGMENT8, 'SEGMENT9',GCC.SEGMENT9,
515 'SEGMENT10',GCC.SEGMENT10, 'SEGMENT11',GCC.SEGMENT11, 'SEGMENT12',GCC.SEGMENT12,
516 'SEGMENT13',GCC.SEGMENT13, 'SEGMENT14',GCC.SEGMENT14, 'SEGMENT15',GCC.SEGMENT15,
517 'SEGMENT16',GCC.SEGMENT16, 'SEGMENT17',GCC.SEGMENT17, 'SEGMENT18',GCC.SEGMENT18,
518 'SEGMENT19',GCC.SEGMENT19, 'SEGMENT20',GCC.SEGMENT20, 'SEGMENT21',GCC.SEGMENT21,
519 'SEGMENT22',GCC.SEGMENT22, 'SEGMENT23',GCC.SEGMENT23, 'SEGMENT24',GCC.SEGMENT24,
520 'SEGMENT25',GCC.SEGMENT25, 'SEGMENT26',GCC.SEGMENT26, 'SEGMENT27',GCC.SEGMENT27,
521 'SEGMENT28',GCC.SEGMENT28, 'SEGMENT29',GCC.SEGMENT29, 'SEGMENT30',GCC.SEGMENT30)
522 INTO L_BALANCING_SEGMENT
523 FROM GL_CODE_COMBINATIONS GCC,
524 FND_SEGMENT_ATTRIBUTE_VALUES FSAV
525 WHERE GCC.CODE_COMBINATION_ID = P_CC_ID
526 AND FSAV.ATTRIBUTE_VALUE = 'Y'
527 AND FSAV.APPLICATION_ID = 101
528 AND FSAV.SEGMENT_ATTRIBUTE_TYPE = 'GL_BALANCING'
529 AND FSAV.ID_FLEX_NUM = GCC.CHART_OF_ACCOUNTS_ID
530 AND FSAV.ID_FLEX_CODE = 'GL#';
531
532 RETURN L_BALANCING_SEGMENT;
533 END get_balancing_segment;
534
535 END JA_CN_VOUCHER_NUM_PKG;
536