[Home] [Help]
PACKAGE BODY: APPS.JA_CN_SI_BANK_DET_PKG
Source
1 PACKAGE BODY JA_CN_SI_BANK_DET_PKG AS
2 --$Header: JACNSBDB.pls 120.0.12020000.7 2013/04/25 08:55:58 chongwan noship $
3 --+=======================================================================+
4 --| Copyright (c) 1998 Oracle Corporation |
5 --| Redwood Shores, CA, USA |
6 --| All rights reserved. |
7 --+=======================================================================+
8 --| FILENAME |
9 --| JACNSBDB.pls |
10 --| |
11 --| DESCRIPTION |
12 --| Use this package to export Electronic Accounting Book |
13 --| |
14 --| PROCEDURE LIST |
15 --| PROCEDURE Add_Accounting_Unit_Info |
16 --| PROCEDURE Add_Merchant_Bank_Info |
17 --| PROCEDURE Add_Parent_BSV |
18 --| PROCEDURE Add_Accounting_Currency |
19 --| PROCEDURE List_Accounting_Currency |
20 --| PROCEDURE Add_Accounting_Periods |
21 --| PROCEDURE Add_Accounting_Code_Rule |
22 --| PROCEDURE Add_Inner_Sheet_Account |
23 --| PROCEDURE Add_Extra_Sheet_Account |
24 --| FUNCTION Get_Level |
25 --| |
26 --| HISTORY |
27 --| Oct-18-2012 Jar Wang Created |
28 --+======================================================================*/
29 GV_MODULE_PREFIX VARCHAR2(100) := 'JA_CN_SI_BANK_DET_PKG';
30
31 --==========================================================================
32 -- PROCEDURE NAME:
33 -- Add_Accounting_Unit_Info public
34 --
35 -- DESCRIPTION:
36 -- This procedure returns accountint unit information
37 --
38 -- PARAMETERS:
39 -- In: pn_legal_entity_id NUMBER
40 -- In: pn_ledger_id NUMBER
41 -- In: pv_bsv NUMBER
42 -- In: pn_accounting_year NUMBER
43 --
44 -- CHANGE HISTORY:
45 -- Nov-15-2012 Jar Wang Created
46 --===========================================================================
47 PROCEDURE Add_Accounting_Unit_Info(pn_legal_entity_id NUMBER,
48 pn_ledger_id NUMBER,
49 pv_bsv VARCHAR2,
50 pn_accounting_year NUMBER) IS
51 lv_procedure_name VARCHAR2(40) := 'Add_Accounting_Unit_Info';
52 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
53 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
54
55 ln_row_count NUMBER;
56 l_mes VARCHAR2(1000);
57 CURSOR electronic_accounting_book_cur(ln_legal_entity_id NUMBER,
58 ln_ledger_id NUMBER,
59 lv_bsv VARCHAR2) IS
60 SELECT jcspa.flex_segment_value Accounting_Unit,
61 jcspa.description Accounting_Unit_Name,
62 jcspa.company_name,
63 jcspa.organization_id,
64 jcspa.ent_quality,
65 jcspa.ent_industry,
66 ar.major_version || '.' || ar.minor_version || '.' ||
67 ar.tape_version software_version,
68 fcv.name,
69 jcspa.cnao_stand_ver
70 FROM JA_CN_SYSTEM_BANK_PARAMS_ALL_V jcspa,
71 gl_ledgers gl,
72 ad_releases ar,
73 fnd_currencies_vl fcv
74 WHERE ar.release_id = (SELECT max(release_id) FROM ad_releases)
75 AND fcv.currency_code = gl.currency_code
76 AND gl.ledger_id = ln_ledger_id
77 AND jcspa.legal_entity_id = ln_legal_entity_id
78 AND jcspa.flex_segment_value = lv_bsv;
79
80 BEGIN
81 --logging for debug
82 FND_FILE.PUT_LINE(FND_FILE.log, lv_procedure_name);
83 IF (ln_proc_level >= ln_dbg_level) THEN
84 FND_LOG.STRING(ln_proc_level,
85 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
86 '.begin',
87 'Enter procedure');
88 END IF; --ln_proc_level>=ln_dbg_level
89
90 ln_row_count := 0;
91
92 --Ja_Cn_Utility.Add_Sub_Root_Node('ACC_UNIT_INFO_FILE', Ja_Cn_Utility.GV_TAG_TYPE_START);
93 Ja_Cn_Utility.Add_Sub_Root_Node('ACC_UNIT_INFO', Ja_Cn_Utility.GV_TAG_TYPE_START);
94 FOR v_row IN electronic_accounting_book_cur(pn_legal_entity_id,
95 pn_ledger_id,
96 pv_bsv) LOOP
97 ln_row_count := ln_row_count + 1;
98
99 Ja_Cn_Utility.Add_Child_Node('ACC_UNIT', v_row.Accounting_Unit);
100 Ja_Cn_Utility.Add_Child_Node('ACC_UNIT_NAME',
101 v_row.Accounting_Unit_Name);
102 Ja_Cn_Utility.Add_Child_Node('ORGANIZATION_NUMBER',
103 v_row.organization_id);
104 Ja_Cn_Utility.Add_Fixed_Child_Node('ENTERPRISE_QUALITY',
105 v_row.ent_quality,
106 4);
107 Ja_Cn_Utility.Add_Child_Node('ENTERPRISE_INDUSTRY',
108 v_row.ent_industry);
109 Ja_Cn_Utility.Add_Child_Node('ERP_SOFTWARE_VENDOR', 'ORACLE');
110 Ja_Cn_Utility.Add_Child_Node('ERP_SOFTWARE_VERSION',
111 v_row.software_version);
112 Ja_Cn_Utility.Add_Child_Node('FUNCTIONAL_CURRENCY', v_row.name);
113 Ja_Cn_Utility.Add_Child_Node('ACCOUNTING_YEAR', pn_accounting_year);
114 Ja_Cn_Utility.Add_Child_Node('CNAO_STANDARD_VERSION',
115 v_row.cnao_stand_ver);
116 END LOOP;
117
118 IF (ln_row_count = 0) THEN
119 --Ja_Cn_Utility.Add_Sub_Root_Node('ACC_UNIT_INFO', Ja_Cn_Utility.GV_TAG_TYPE_START);
120 Ja_Cn_Utility.Add_Child_Node('ACC_UNIT', pv_bsv);
121 Ja_Cn_Utility.Add_Child_Node('ACC_UNIT_NAME', NULL);
122 Ja_Cn_Utility.Add_Child_Node('ORGANIZATION_NUMBER', NULL);
123 Ja_Cn_Utility.Add_Child_Node('ENTERPRISE_QUALITY', NULL);
124 Ja_Cn_Utility.Add_Child_Node('ENTERPRISE_INDUSTRY', NULL);
125 Ja_Cn_Utility.Add_Child_Node('ERP_SOFTWARE_VENDOR', NULL);
126 Ja_Cn_Utility.Add_Child_Node('ERP_SOFTWARE_VERSION', NULL);
127 Ja_Cn_Utility.Add_Child_Node('FUNCTIONAL_CURRENCY', NULL);
128 Ja_Cn_Utility.Add_Child_Node('ACCOUNTING_YEAR', NULL);
129 Ja_Cn_Utility.Add_Child_Node('CNAO_STANDARD_VERSION', NULL);
130 --Ja_Cn_Utility.Add_Sub_Root_Node('ACC_UNIT_INFO',Ja_Cn_Utility.GV_TAG_TYPE_END);
131 FND_MESSAGE.SET_NAME('JA','JA_CN_MISSING_BOOK_INFO') ;
132 l_mes := FND_MESSAGE.GET;
133 FND_FILE.put_line(FND_FILE.log,'Warning:'||pv_bsv||','||l_mes);
134 END IF; --ln_row_count = 0
135
136 Ja_Cn_Utility.Add_Sub_Root_Node('ACC_UNIT_INFO', Ja_Cn_Utility.GV_TAG_TYPE_END);
137 --Ja_Cn_Utility.Add_Sub_Root_Node('ACC_UNIT_INFO_FILE', Ja_Cn_Utility.GV_TAG_TYPE_END);
138
139 --logging for debug
140 IF (ln_proc_level >= ln_dbg_level) THEN
141 FND_LOG.STRING(ln_proc_level,
142 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
143 'Exit procedure');
144 END IF; -- (ln_proc_level>=ln_dbg_level)
145 EXCEPTION
146 WHEN OTHERS THEN
147 IF (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
148 FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED,
149 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
150 '.Other_Exception ',
151 SQLCODE || SQLERRM);
152 END IF; -- (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL)
153 FND_FILE.put_line(FND_FILE.log,
154 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
155 SQLCODE || SQLERRM);
156 RAISE;
157 END Add_Accounting_Unit_Info;
158
159 --==========================================================================
160 -- PROCEDURE NAME:
161 -- Add_Merchant_Bank_Info public
162 --
163 -- DESCRIPTION:
164 -- This procedure returns accountint unit information
165 --
166 -- PARAMETERS:
167 -- In: pn_legal_entity_id NUMBER
168 -- In: pn_ledger_id NUMBER
169 -- In: pv_bsv NUMBER
170 -- In: pn_accounting_year NUMBER
171 --
172 -- CHANGE HISTORY:
173 -- Nov-15-2012 Jar Wang Created
174 --===========================================================================
175 PROCEDURE Add_Merchant_Bank_Info(pn_legal_entity_id NUMBER,
176 pn_ledger_id NUMBER,
177 pv_bsv VARCHAR2,
178 pn_accounting_year NUMBER) IS
179
180 lv_procedure_name VARCHAR2(40) := 'Add_Merchant_Bank_Info';
181 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
182 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
183 CURSOR CUR_BANKING IS
184 SELECT ffv.flex_value sub_flex_value,
185 ffv.description,
186 ffv.parent_flex_value,
187 ffv.HIERARCHY_LEVEL
188 FROM (
189 SELECT v.flex_value_set_id,
190 h.parent_flex_value,
191 v.flex_value,
192 v.description,
193 v.summary_flag,
194 v.HIERARCHY_LEVEL
195 FROM fnd_flex_values_vl v,
196 fnd_flex_value_norm_hierarchy h,
197 fnd_flex_value_sets s
198 WHERE h.flex_value_set_id = v.flex_value_set_id
199 AND s.flex_value_set_id = v.flex_value_set_id
200 AND (((s.format_type = 'N') AND
201 (fnd_number.canonical_to_number(v.flex_value) BETWEEN
202 fnd_number.canonical_to_number(h.child_flex_value_low) AND
203 fnd_number.canonical_to_number(h.child_flex_value_high))) OR
204 ((s.format_type IN ('D', 'T')) AND
205 (to_date(v.flex_value,
206 (decode(s.maximum_size,
207 5,
208 'HH24:MI',
209 8,
210 'HH24:MI:SS',
211 9,
212 'DD-MON-RR',
213 11,
214 'DD-MON-YYYY',
215 15,
216 'DD-MON-RR HH24:MI',
217 17,
218 'DD-MON-YYYY HH24:MI',
219 18,
220 'DD-MON-RR HH24:MI:SS',
221 20,
222 'DD-MON-YYYY HH24:MI:SS'))) BETWEEN
223 to_date(h.child_flex_value_low,
224 (decode(s.maximum_size,
225 5,
226 'HH24:MI',
227 8,
228 'HH24:MI:SS',
229 9,
230 'DD-MON-RR',
231 11,
232 'DD-MON-YYYY',
233 15,
234 'DD-MON-RR HH24:MI',
235 17,
236 'DD-MON-YYYY HH24:MI',
237 18,
238 'DD-MON-RR HH24:MI:SS',
239 20,
240 'DD-MON-YYYY HH24:MI:SS'))) AND
241 to_date(h.child_flex_value_high,
242 (decode(s.maximum_size,
243 5,
244 'HH24:MI',
245 8,
246 'HH24:MI:SS',
247 9,
248 'DD-MON-RR',
249 11,
250 'DD-MON-YYYY',
251 15,
252 'DD-MON-RR HH24:MI',
253 17,
254 'DD-MON-YYYY HH24:MI',
255 18,
256 'DD-MON-RR HH24:MI:SS',
257 20,
258 'DD-MON-YYYY HH24:MI:SS'))))) OR
259 ((s.format_type NOT IN ('N', 'D', 'T')) AND
260 (v.flex_value BETWEEN h.child_flex_value_low AND
261 h.child_flex_value_high)))
262 AND ((v.summary_flag = 'Y' AND h.range_attribute = 'P') OR
263 (v.summary_flag = 'N' AND h.range_attribute = 'C'))
264 )ffv where ffv.FLEX_VALUE_SET_ID =
265 (SELECT fifsv.FLEX_VALUE_SET_ID
266 FROM FND_ID_FLEX_SEGMENTS_VL fifsv,
267 FND_SEGMENT_ATTRIBUTE_VALUES FSAV
268 WHERE FSAV.ATTRIBUTE_VALUE = 'Y'
269 AND FSAV.APPLICATION_ID = 101
270 AND FSAV.ID_FLEX_CODE = 'GL#'
271 AND FSAV.APPLICATION_ID = fifsv.APPLICATION_ID
272 AND FSAV.ID_FLEX_NUM = fifsv.ID_FLEX_NUM
273 AND FSAV.ID_FLEX_CODE = fifsv.ID_FLEX_CODE
274 AND FSAV.APPLICATION_COLUMN_NAME =
275 fifsv.APPLICATION_COLUMN_NAME
276 AND FSAV.SEGMENT_ATTRIBUTE_TYPE = 'GL_BALANCING'
277 AND fifsv.ID_FLEX_NUM in
278 (SELECT chart_of_accounts_id
279 FROM gl_ledgers gls
280 where gls.ledger_id = pn_ledger_id))
281 AND flex_value = pv_bsv
282 ORDER by flex_value;
283
284
285 l_bank CUR_BANKING%ROWTYPE;
286 l_row_count pls_integer := 0;
287 l_single_vale varchar2(50);
288 l_single_desc varchar2(400);
289 l_level varchar2(50);
290
291 BEGIN
292 --logging for debug
293 FND_FILE.PUT_LINE(FND_FILE.log, lv_procedure_name);
294 IF (ln_proc_level >= ln_dbg_level) THEN
295 FND_LOG.STRING(ln_proc_level,
296 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
297 '.begin',
298 'Enter procedure');
299
300 END IF; --ln_proc_level>=ln_dbg_level
301 Ja_Cn_Utility.Add_Sub_Root_Node('COMMERCIAL_BANK_ORG', Ja_Cn_Utility.GV_TAG_TYPE_START);
302 OPEN CUR_BANKING;
303 LOOP
304 FETCH CUR_BANKING
305 INTO l_bank;
306 EXIT WHEN CUR_BANKING%NOTFOUND;
307 l_row_count := l_row_count + 1;
308 IF l_row_count> 1 THEN
309 FND_FILE.put_line(FND_FILE.log, GV_MODULE_PREFIX || '.' || lv_procedure_name ||', Warning:'|| l_bank.sub_flex_value
310 ||' has over one direct parent value, please validate the hierarchy of the valueset .');
311 EXIT;
312 END IF;
313 --Ja_Cn_Utility.Add_Sub_Root_Node('COMMERCIAL_BANK_ORG', Ja_Cn_Utility.GV_TAG_TYPE_START);
314 Ja_Cn_Utility.Add_Child_Node('BANK_ORG_NUMBER',
315 l_bank.sub_flex_value);
316 Ja_Cn_Utility.Add_Child_Node('BANK_ORG_NAME', l_bank.description);
317 Ja_Cn_Utility.Add_Child_Node('SUPERIOR_ORG_NUM',
318 l_bank.parent_flex_value);
319 --Ja_Cn_Utility.Add_Child_Node('PAY_SYS_BABK_NUM', ''); updated by jar.wang for bug 16655327
320 --Ja_Cn_Utility.Add_Child_Node('ELECTRONIC_BANK_NUM', '');
321 Ja_Cn_Utility.Add_Child_Node('BANK_LEVEL', l_bank.HIERARCHY_LEVEL);
322 --Ja_Cn_Utility.Add_Sub_Root_Node('COMMERCIAL_BANK_ORG', Ja_Cn_Utility.GV_TAG_TYPE_END);
323
324 END LOOP;
325 CLOSE CUR_BANKING;
326
327 IF l_row_count = 0 THEN
328 select ffv.flex_value, ffv.description,ffv.HIERARCHY_LEVEL
329 into l_single_vale, l_single_desc,l_level
330 from fnd_flex_values_vl ffv
331 where ffv.FLEX_VALUE_SET_ID =
332 (SELECT fifsv.FLEX_VALUE_SET_ID
333 FROM FND_ID_FLEX_SEGMENTS_VL fifsv,
334 FND_SEGMENT_ATTRIBUTE_VALUES FSAV
335 WHERE FSAV.ATTRIBUTE_VALUE = 'Y'
336 AND FSAV.APPLICATION_ID = 101
337 AND FSAV.ID_FLEX_CODE = 'GL#'
338 AND FSAV.APPLICATION_ID = fifsv.APPLICATION_ID
339 AND FSAV.ID_FLEX_NUM = fifsv.ID_FLEX_NUM
340 AND FSAV.ID_FLEX_CODE = fifsv.ID_FLEX_CODE
341 AND FSAV.APPLICATION_COLUMN_NAME =
342 fifsv.APPLICATION_COLUMN_NAME
343 AND FSAV.SEGMENT_ATTRIBUTE_TYPE = 'GL_BALANCING'
344 AND fifsv.ID_FLEX_NUM =
345 (SELECT chart_of_accounts_id
346 FROM gl_ledgers gls
347 where gls.ledger_id = pn_ledger_id))
348 and ffv.FLEX_VALUE = pv_bsv;
349
350 --Ja_Cn_Utility.Add_Sub_Root_Node('COMMERCIAL_BANK_ORG', Ja_Cn_Utility.GV_TAG_TYPE_START);
351 Ja_Cn_Utility.Add_Child_Node('BANK_ORG_NUMBER', l_single_vale);
352 Ja_Cn_Utility.Add_Child_Node('BANK_ORG_NAME', l_single_desc);
353 Ja_Cn_Utility.Add_Child_Node('SUPERIOR_ORG_NUM', '');
354 --Ja_Cn_Utility.Add_Child_Node('PAY_SYS_BABK_NUM', ''); updated by jar.wang for bug 16655327
355 --Ja_Cn_Utility.Add_Child_Node('ELECTRONIC_BANK_NUM', '');
356 Ja_Cn_Utility.Add_Child_Node('BANK_LEVEL', l_level);
357 --Ja_Cn_Utility.Add_Sub_Root_Node('COMMERCIAL_BANK_ORG',Ja_Cn_Utility.GV_TAG_TYPE_END);
358 END IF;
359
360 Ja_Cn_Utility.Add_Sub_Root_Node('COMMERCIAL_BANK_ORG',Ja_Cn_Utility.GV_TAG_TYPE_END);
361 Exception
362 WHEN OTHERS THEN
363 IF (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
364 FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED,
365 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
366 '.Other_Exception ',
367 SQLCODE || SQLERRM);
368 END IF; -- (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL)
369 FND_FILE.put_line(FND_FILE.log,
370 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
371 SQLCODE || SQLERRM);
372 RAISE;
373 END Add_Merchant_Bank_Info;
374
375
376 --==========================================================================
377 -- PROCEDURE NAME:
378 -- Add_Parent_BSV public
379 --
380 -- DESCRIPTION:
381 -- This procedure returns accountint unit information with parent flag
382 --
383 -- PARAMETERS:
384 -- In: pn_legal_entity_id NUMBER
385 -- In: pn_ledger_id NUMBER
386 -- In: pv_bsv NUMBER
387 -- In: pn_accounting_year NUMBER
388 --
389 -- CHANGE HISTORY:
390 -- Nov-15-2012 Jar Wang Created
391 --===========================================================================
392 PROCEDURE Add_Parent_BSV(pn_legal_entity_id NUMBER,
393 pn_ledger_id NUMBER,
394 pv_bsv VARCHAR2,
395 pn_accounting_year NUMBER,
396 pn_branch PLS_INTEGER) IS
397 lv_procedure_name VARCHAR2(40) := 'Add_Parent_BSV';
398 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
399 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
400 lv_summary VARCHAR2(2);
401 l_flex_valueset_id NUMBER;
402 l_bsv_temp VARCHAR2(100) :=pv_bsv;
403
404 CURSOR CUR_PARENT(c_valueset_id pls_integer, c_bsv varchar2) IS
405 select ffh.flex_value_set_id, ffh.FLEX_VALUE, SUMMARY_FLAG
406 from FND_FLEX_VALUE_CHILDREN_V ffh
407 where ffh.flex_value_set_id = c_valueset_id
408 and ffh.PARENT_FLEX_VALUE = c_bsv
409 order by ffh.FLEX_VALUE;
410 l_parent CUR_PARENT%ROWTYPE;
411 BEGIN
412 --logging for debug
413 IF (ln_proc_level >= ln_dbg_level) THEN
414 FND_LOG.STRING(ln_proc_level,
415 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
416 '.begin',
417 'Enter procedure');
418 END IF; --ln_proc_level>=ln_dbg_level
419
420 --get valueset_id
421 SELECT fifsv.FLEX_VALUE_SET_ID
422 into l_flex_valueset_id
423 FROM FND_ID_FLEX_SEGMENTS_VL fifsv,
424 FND_SEGMENT_ATTRIBUTE_VALUES FSAV
425 WHERE FSAV.ATTRIBUTE_VALUE = 'Y'
426 AND FSAV.APPLICATION_ID = 101
427 AND FSAV.ID_FLEX_CODE = 'GL#'
428 AND FSAV.APPLICATION_ID = fifsv.APPLICATION_ID
429 AND FSAV.ID_FLEX_NUM = fifsv.ID_FLEX_NUM
430 AND FSAV.ID_FLEX_CODE = fifsv.ID_FLEX_CODE
431 AND FSAV.APPLICATION_COLUMN_NAME = fifsv.APPLICATION_COLUMN_NAME
432 AND FSAV.SEGMENT_ATTRIBUTE_TYPE = 'GL_BALANCING'
433 AND fifsv.ID_FLEX_NUM in
434 (SELECT chart_of_accounts_id
435 FROM gl_ledgers gls
436 where gls.ledger_id = pn_ledger_id);
437
438 --get bsv summary
439 SELECT SUMMARY_FLAG
440 INTO lv_summary
441 FROM FND_FLEX_VALUE_SETS ffs, FND_FLEX_VALUES_VL ffv
442 WHERE ffs.flex_value_set_id = ffv.FLEX_VALUE_SET_ID
443 AND ffv.FLEX_VALUE_SET_ID = l_flex_valueset_id
444 AND ffv.FLEX_VALUE = l_bsv_temp;
445 --child
446 IF lv_summary='N' THEN
447 IF pn_branch = 1 THEN
448 Add_Accounting_Unit_Info(pn_legal_entity_id =>pn_legal_entity_id,
449 pn_ledger_id =>pn_ledger_id,
450 pv_bsv =>pv_bsv,
451 pn_accounting_year =>pn_accounting_year) ;
452 ELSIF pn_branch=2 THEN
453 Add_Merchant_Bank_Info(pn_legal_entity_id ,
454 pn_ledger_id,
455 pv_bsv,
456 pn_accounting_year);
457 ELSIF pn_branch=3 THEN
458 List_Accounting_Currency(pn_legal_entity_id ,
459 pn_ledger_id ,
460 pv_bsv ,
461 pn_accounting_year );
462 END IF;
463 ELSE
464 --parent
465 OPEN CUR_PARENT(l_flex_valueset_id,l_bsv_temp);
466 LOOP
467 FETCH CUR_PARENT INTO l_parent;
468 EXIT WHEN CUR_PARENT%NOTFOUND;
469 --recursion
470 l_bsv_temp := l_parent.FLEX_VALUE;
471 IF l_parent.SUMMARY_FLAG='Y' THEN
472 FND_FILE.put_line(FND_FILE.log,GV_MODULE_PREFIX || '.' || lv_procedure_name||',Y='||l_parent.FLEX_VALUE);
473 IF pn_branch = 2 THEN
474 Add_Merchant_Bank_Info(pn_legal_entity_id ,
475 pn_ledger_id,
476 l_bsv_temp,
477 pn_accounting_year);
478 END IF ;
479 Add_Parent_BSV(pn_legal_entity_id,pn_ledger_id,l_bsv_temp,pn_accounting_year,pn_branch);
480 ELSE
481 FND_FILE.put_line(FND_FILE.log,GV_MODULE_PREFIX || '.' || lv_procedure_name||',N='||l_parent.FLEX_VALUE);
482 IF pn_branch = 1 THEN
483 Add_Accounting_Unit_Info(pn_legal_entity_id =>pn_legal_entity_id,
484 pn_ledger_id =>pn_ledger_id,
485 pv_bsv =>l_bsv_temp,
486 pn_accounting_year =>pn_accounting_year) ;
487 ELSIF pn_branch=2 THEN
488 Add_Merchant_Bank_Info(pn_legal_entity_id ,
489 pn_ledger_id,
490 l_bsv_temp,
491 pn_accounting_year);
492 ELSIF pn_branch=3 THEN
493 List_Accounting_Currency(pn_legal_entity_id ,
494 pn_ledger_id ,
495 l_bsv_temp ,
496 pn_accounting_year );
497 END IF;
498 END IF;
499 END LOOP;
500 CLOSE CUR_PARENT;
501 END IF;
502
503 EXCEPTION
504 WHEN OTHERS THEN
505 IF (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
506 FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED,
507 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
508 '.Other_Exception ',
509 SQLCODE || SQLERRM);
510 END IF; -- (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL)
511 FND_FILE.put_line(FND_FILE.log,
512 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
513 SQLCODE || SQLERRM);
514 RAISE;
515 END Add_Parent_BSV;
516
517
518 --==========================================================================
519 -- PROCEDURE NAME:
520 -- Add_Accounting_Currency public
521 --
522 -- DESCRIPTION:
523 -- This procedure returns accounting currency in the GL journal
524 --
525 -- PARAMETERS:None
526 --
527 -- CHANGE HISTORY:
528 -- Nov-28-2012 Jar Wang Created
529 --===========================================================================
530 PROCEDURE Add_Accounting_Currency
531 IS
532 lv_procedure_name VARCHAR2(40) := 'Add_Accounting_Currency';
533 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
534 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
535 ln_row_count NUMBER :=0;
536 -- to get Currencies
537 CURSOR CUR_Currency IS
538 SELECT DISTINCT CURRENCY_CODE, Description CURRENCY_NAME, Description_TL CURRENCY_ENG_NAME
539 FROM JA_CN_SI_CURRENCIES_GT;
540 BEGIN
541 --logging for debug
542 IF (ln_proc_level >= ln_dbg_level) THEN
543 FND_LOG.STRING(ln_proc_level,
544 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
545 '.begin',
546 'Enter procedure');
547 END IF; --ln_proc_level>=ln_dbg_level
548 Ja_Cn_Utility.Add_Sub_Root_Node('CURRENCY_FILE',
549 Ja_Cn_Utility.GV_TAG_TYPE_START);
550 FOR v_row IN CUR_Currency LOOP
551 ln_row_count := ln_row_count + 1;
552 Ja_Cn_Utility.Add_Sub_Root_Node('CURRENCY',
553 Ja_Cn_Utility.GV_TAG_TYPE_START);
554 Ja_Cn_Utility.Add_Child_Node('CURRENCY_CODE', v_row.currency_code);
555 Ja_Cn_Utility.Add_Child_Node('CURRENCY_NAME', v_row.CURRENCY_NAME);
556 Ja_Cn_Utility.Add_Child_Node('CURRENCY_ENG_NAME', v_row.CURRENCY_ENG_NAME);
557 Ja_Cn_Utility.Add_Sub_Root_Node('CURRENCY',
558 Ja_Cn_Utility.GV_TAG_TYPE_END);
559 END LOOP;
560
561 IF ln_row_count=0 THEN
562 FND_FILE.put_line(FND_FILE.log,
563 GV_MODULE_PREFIX || '.' || lv_procedure_name ||':ln_row_count='||ln_row_count);
564 Ja_Cn_Utility.Add_Sub_Root_Node('CURRENCY',
565 Ja_Cn_Utility.GV_TAG_TYPE_START);
566 Ja_Cn_Utility.Add_Child_Node('CURRENCY_CODE',NULL);
567 Ja_Cn_Utility.Add_Child_Node('CURRENCY_NAME',NULL);
568 Ja_Cn_Utility.Add_Child_Node('CURRENCY_ENG_NAME',NULL);
569 Ja_Cn_Utility.Add_Sub_Root_Node('CURRENCY',
570 Ja_Cn_Utility.GV_TAG_TYPE_END);
571 END IF;
572
573 Ja_Cn_Utility.Add_Sub_Root_Node('CURRENCY_FILE',
574 Ja_Cn_Utility.GV_TAG_TYPE_END);
575 --logging for debug
576 IF (ln_proc_level >= ln_dbg_level) THEN
577 FND_LOG.STRING(ln_proc_level,
578 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
579 'Exit procedure');
580 END IF; -- (ln_proc_level>=ln_dbg_level)
581 EXCEPTION
582 WHEN OTHERS THEN
583 FND_FILE.put_line(FND_FILE.log,
584 GV_MODULE_PREFIX || '.' || lv_procedure_name || SQLCODE || SQLERRM);
585 RAISE;
586 END Add_Accounting_Currency;
587 --==========================================================================
588 -- PROCEDURE NAME:
589 -- List_Accounting_Currency public
590 --
591 -- DESCRIPTION:
592 -- This procedure returns accounting currency in the GL journal
593 --
594 -- PARAMETERS:
595 -- In: pn_legal_entity_id NUMBER
596 -- In: pn_ledger_id NUMBER
597 -- In: pv_bsv NUMBER
598 -- In: pn_accounting_year NUMBER
599 --
600 -- CHANGE HISTORY:
601 -- Nov-17-2012 Jar Wang Created
602 --===========================================================================
603 PROCEDURE List_Accounting_Currency(pn_legal_entity_id NUMBER,
604 pn_ledger_id NUMBER,
605 pv_bsv VARCHAR2,
606 pn_accounting_year NUMBER) IS
607 lv_procedure_name VARCHAR2(40) := 'List_Accounting_Currency';
608 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
609 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
610 -- to get Currencies
611 CURSOR CUR_Currency IS
612 SELECT fcv.currency_code, fcv.name currency_name
613 FROM fnd_currencies_vl fcv, GL_JE_LINES gjl, GL_JE_HEADERS gjh
614 WHERE fcv.currency_code = gjh.CURRENCY_CODE
615 AND gjh.je_header_id = gjl.je_header_id
616 AND gjh.ledger_id = pn_ledger_id
617 AND gjh.period_name IN
618 (SELECT period_name
619 FROM gl_periods
620 WHERE PERIOD_SET_NAME =
621 (SELECT PERIOD_SET_NAME
622 FROM gl_ledgers
623 WHERE ledger_id = pn_ledger_id
624 AND PERIOD_YEAR = pn_accounting_year)
625
626 )
627 AND ja_cn_utility.get_balancing_segment(gjl.code_combination_id) =
628 pv_bsv;
629 l_currency_en varchar2(20);
630 BEGIN
631 --logging for debug
632 IF (ln_proc_level >= ln_dbg_level) THEN
633 FND_LOG.STRING(ln_proc_level,
634 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
635 '.begin',
636 'Enter procedure');
637 END IF; --ln_proc_level>=ln_dbg_level
638
639 FOR v_row IN CUR_Currency LOOP
640 --get the english name for the currency code
641 SELECT fct.name
642 into l_currency_en
643 FROM FND_CURRENCIES_TL fct
644 WHERE fct.currency_code = v_row.currency_code
645 and language = 'US';
646 INSERT INTO JA_CN_SI_CURRENCIES_GT
647 (CURRENCY_CODE, Description, Description_tl)
648 VALUES
649 (v_row.currency_code, v_row.currency_name, l_currency_en);
650 END LOOP;
651
652 --logging for debug
653 IF (ln_proc_level >= ln_dbg_level) THEN
654 FND_LOG.STRING(ln_proc_level,
655 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
656 'Exit procedure');
657 END IF; -- (ln_proc_level>=ln_dbg_level)
658 EXCEPTION
659 WHEN OTHERS THEN
660 IF (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
661 FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED,
662 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
663 '.Other_Exception ',
664 SQLCODE || SQLERRM);
665 END IF; -- (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL)
666 FND_FILE.put_line(FND_FILE.log,
667 GV_MODULE_PREFIX || '.' || lv_procedure_name || SQLCODE || SQLERRM);
668 RAISE;
669 END List_Accounting_Currency;
670
671 --==========================================================================
672 -- PROCEDURE NAME:
673 -- Add_Accounting_Currency public
674 --
675 -- DESCRIPTION:
676 -- This procedure returns accounting periods in the ledger
677 --
678 -- PARAMETERS:
679 -- In: pn_legal_entity_id NUMBER
680 -- In: pn_ledger_id NUMBER
681 -- In: pn_accounting_year NUMBER
682 --
683 -- CHANGE HISTORY:
684 -- Nov-17-2012 Jar Wang Created
685 --===========================================================================
686 PROCEDURE Add_Accounting_Periods(pn_legal_entity_id NUMBER,
687 pn_ledger_id NUMBER,
688 pn_accounting_year NUMBER) IS
689 lv_procedure_name VARCHAR2(40) := 'Add_Accounting_Periods';
690 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
691 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
692
693 NO_DATA EXCEPTION;
694
695 -- to get accounting periods
696 CURSOR accounting_periods_cur(ln_accounting_year NUMBER,
697 ln_ledger_id NUMBER) IS
698 SELECT GP.PERIOD_YEAR, GP.PERIOD_NUM, GP.START_DATE, GP.END_DATE
699 FROM GL_PERIODS GP, GL_LEDGERS GLD
700 WHERE GP.PERIOD_YEAR = ln_accounting_year
701 AND GP.PERIOD_SET_NAME = GLD.PERIOD_SET_NAME
702 AND GP.PERIOD_TYPE= GLD.ACCOUNTED_PERIOD_TYPE
703 AND GLD.LEDGER_ID = ln_ledger_id;
704
705 BEGIN
706 --logging for debug
707 IF (ln_proc_level >= ln_dbg_level) THEN
708 FND_LOG.STRING(ln_proc_level,
709 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
710 '.begin',
711 'Enter procedure');
712 END IF; --l_proc_level>=l_dbg_level
713 Ja_Cn_Utility.Add_Sub_Root_Node('ACC_PERIOD_FILE',
714 Ja_Cn_Utility.GV_TAG_TYPE_START);
715 FOR v_row IN accounting_periods_cur(pn_accounting_year, pn_ledger_id) LOOP
716 Ja_Cn_Utility.Add_Sub_Root_Node('ACCOUNTING_PERIOD',
717 Ja_Cn_Utility.GV_TAG_TYPE_START);
718 Ja_Cn_Utility.Add_Fixed_Child_Node('ACCOUNTING_YEAR',
719 v_row.period_year,
720 4);
721 Ja_Cn_Utility.Add_Fixed_Child_Node('ACCOUNTING_PERIOD_START_DATE',
722 to_char(v_row.start_date,
723 'YYYYMMDD'),
724 8);
725 Ja_Cn_Utility.Add_Fixed_Child_Node('ACCOUNTING_PERIOD_END_DATE',
726 to_char(v_row.end_date, 'YYYYMMDD'),
727 8);
728 Ja_Cn_Utility.Add_Child_Node('ACCOUNTING_PERIOD_NUMBER',
729 v_row.period_num);
730 Ja_Cn_Utility.Add_Sub_Root_Node('ACCOUNTING_PERIOD',
731 Ja_Cn_Utility.GV_TAG_TYPE_END);
732
733 END LOOP;
734 Ja_Cn_Utility.Add_Sub_Root_Node('ACC_PERIOD_FILE',
735 Ja_Cn_Utility.GV_TAG_TYPE_END);
736 OPEN accounting_periods_cur(pn_accounting_year, pn_ledger_id);
737 IF (accounting_periods_cur%ROWCOUNT = 0) THEN
738 RAISE NO_DATA;
739 END IF;
740 CLOSE accounting_periods_cur;
741
742 --logging for debug
743 IF (ln_proc_level >= ln_dbg_level) THEN
744 FND_LOG.STRING(ln_proc_level,
745 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
746 'Exit procedure');
747 END IF; -- (ln_proc_level>=ln_dbg_level)
748 EXCEPTION
749 WHEN NO_DATA THEN
750 --logging for debug
751 IF (ln_proc_level >= ln_dbg_level) THEN
752 FND_LOG.STRING(ln_proc_level,
753 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
754 '.begin',
755 'The row count is 0');
756 END IF; --l_proc_level>=l_dbg_level
757 WHEN OTHERS THEN
758 IF (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
759 FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED,
760 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
761 '.Other_Exception ',
762 SQLCODE || SQLERRM);
763 END IF; -- (FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL)
764
765 END Add_Accounting_Periods;
766
767
768 PROCEDURE Add_Accounting_Code_Rule(pn_legal_entity_id NUMBER,
769 pn_ledger_id NUMBER,
770 pv_bsv VARCHAR2,
771 pn_accounting_year NUMBER) IS
772 CURSOR CUR_CODE IS
773 select accounting_struct_id, ACCOUNTING_STRUCTURE_FLEX_NUM
774 from ja_cn_system_bank_params_all jcs
775 WHERE jcs.ledger_id = pn_ledger_id --jcs.flex_vale_segment=pv_bsv
776 AND rownum=1
777 ORDER BY flex_segment_value;
778 l_code cur_code%rowtype;
779 l_rule varchar2(100);
780 l_row pls_integer:=0;
781 lv_procedure_name VARCHAR2(40) := 'Add_Accounting_Code_Rule';
782 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
783 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
784 BEGIN
785 --logging for debug
786 IF (ln_proc_level >= ln_dbg_level) THEN
787 FND_LOG.STRING(ln_proc_level,
788 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
789 '.begin',
790 'Enter procedure');
791 END IF; --l_proc_level>=l_dbg_level
792
793 Ja_Cn_Utility.Add_Sub_Root_Node('ACCOUNT_STRUC_FILE',
794 Ja_Cn_Utility.GV_TAG_TYPE_START);
795 OPEN CUR_CODE;
796 LOOP
797 FETCH cur_code
798 into l_code;
799 EXIT WHEN cur_code%notfound;
800 select fnd_flex_ext.get_segs('JA',
801 'ACCT',
802 l_code.ACCOUNTING_STRUCTURE_FLEX_NUM,
803 l_code.ACCOUNTING_STRUCT_ID)
804 into l_rule
805 from dual;
806 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_STRUCTURE', l_rule);
807 l_row := l_row + 1;
808 END LOOP;
809 CLOSE CUR_CODE;
810
811 IF l_row = 0 THEN
812 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_STRUCTURE', l_rule);
813 END IF;
814
815 Ja_Cn_Utility.Add_Sub_Root_Node('ACCOUNT_STRUC_FILE',
816 Ja_Cn_Utility.GV_TAG_TYPE_END);
817 --logging for debug
818 IF (ln_proc_level >= ln_dbg_level) THEN
819 FND_LOG.STRING(ln_proc_level,
820 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
821 'Exit procedure');
822 END IF; -- (ln_proc_level>=ln_dbg_level)
823 END Add_Accounting_Code_Rule;
824
825 --==========================================================================
826 -- PROCEDURE NAME:
827 -- Add_Inner_Sheet_Account public
828 --
829 -- DESCRIPTION:
830 -- This procedure returns inner sheet account
831 --
832 -- PARAMETERS:
833 -- In: pn_legal_entity_id NUMBER
834 -- In: pn_ledger_id NUMBER
835 -- In: pv_bsv NUMBER
836 -- In: pn_accounting_year NUMBER
837 --
838 -- CHANGE HISTORY:
839 -- Nov-17-2012 Jar Wang Created
840 --===========================================================================
841 PROCEDURE Add_Inner_Sheet_Account(pn_legal_entity_id NUMBER,
842 pn_ledger_id NUMBER,
843 pv_bsv VARCHAR2,
844 pn_accounting_year NUMBER) IS
845
846 CURSOR CUR_INNER(c_valueset_id pls_integer) IS
847 select b.flex_value,
848 t.description,
849 NULL acc_level,
850 (select FLV.MEANING
851 from FND_LOOKUP_VALUES flv
852 where flv.lookup_type = 'ACCOUNT_TYPE'
853 and flv.view_APPLICATION_ID = 0
854 and flv.security_group_id = 0
855 and language = userenv('LANG')
856 and flv.lookup_code =
857 (substr(COMPILED_VALUE_ATTRIBUTES,
858 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 2) + 1,
859 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 3) - 1 -
860 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 2)))) acc_type,
861 (select FLV.MEANING
862 from FND_LOOKUP_VALUES flv
863 where flv.lookup_type = 'JA_CN_DEBIT_CREDIT'
864 and flv.view_APPLICATION_ID = 0
865 and flv.security_group_id = 0
866 and language = userenv('LANG')
867 and flv.lookup_code = (substr(COMPILED_VALUE_ATTRIBUTES,
868 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 7) + 1))) balance_side,
869 to_char(nvl(b.START_DATE_ACTIVE,b.creation_date),'YYYYMMDD') START_DATE_ACTIVE,to_char(b.end_date_active,'YYYYMMDD') end_date_active
870 from FND_FLEX_VALUES_TL T, FND_FLEX_VALUES B
871 where B.FLEX_VALUE_ID = T.FLEX_VALUE_ID
872 and T.LANGUAGE = userenv('LANG')
873 and substr(COMPILED_VALUE_ATTRIBUTES,
874 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 5) + 1,
875 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 6) - 1 -
876 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 5)) = 'I'
877 and b.FLEX_VALUE_SET_ID = c_valueset_id;
878
879 lv_procedure_name VARCHAR2(40) := 'Add_Inner_Sheet_Account';
880 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
881 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
882
883 l_inner CUR_INNER%ROWTYPE;
884 l_valueset_id PLS_INTEGER;
885 l_parent_count PLS_INTEGER;
886 l_level PLS_INTEGER;
887 l_row PLS_INTEGER := 0;
888 BEGIN
889 IF (ln_proc_level >= ln_dbg_level) THEN
890 FND_LOG.STRING(ln_proc_level,
891 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
892 '.begin',
893 'Enter procedure');
894 FND_LOG.STRING(ln_proc_level,
895 lv_procedure_name || '.parameters',
896 'pn_legal_entity_id=' || pn_legal_entity_id || ',' ||
897 'pn_ledger_id=' || pn_ledger_id || ',' ||
898 'pn_accounting_year=' || pn_accounting_year);
899
900 END IF; --ln_proc_level>=ln_dbg_level
901
902 --get valueset id of the coa
903 SELECT fifsv.FLEX_VALUE_SET_ID
904 into l_valueset_id
905 FROM FND_ID_FLEX_SEGMENTS_VL fifsv, FND_SEGMENT_ATTRIBUTE_VALUES FSAV
906 WHERE FSAV.ATTRIBUTE_VALUE = 'Y'
907 AND FSAV.APPLICATION_ID = 101
908 AND FSAV.ID_FLEX_CODE = 'GL#'
909 AND FSAV.APPLICATION_ID = fifsv.APPLICATION_ID
910 AND FSAV.ID_FLEX_NUM = fifsv.ID_FLEX_NUM
911 AND FSAV.ID_FLEX_CODE = fifsv.ID_FLEX_CODE
912 AND FSAV.APPLICATION_COLUMN_NAME = fifsv.APPLICATION_COLUMN_NAME
913 AND FSAV.SEGMENT_ATTRIBUTE_TYPE = 'GL_ACCOUNT'
914 AND fifsv.ID_FLEX_NUM in
915 (SELECT chart_of_accounts_id
916 FROM gl_ledgers gls
917 where gls.ledger_id = pn_ledger_id);
918
919 Ja_Cn_Utility.Add_Sub_Root_Node('INTER_SHEET_ACC_FILE',
920 Ja_Cn_Utility.GV_TAG_TYPE_START);
921
922 OPEN CUR_INNER(l_valueset_id);
923 LOOP
924 FETCH CUR_INNER
925 INTO l_inner;
926 EXIT WHEN CUR_INNER%NOTFOUND;
927 l_row := l_row +1;
928 Ja_Cn_Utility.Add_Sub_Root_Node('INTER_SHEET_ACCOUNT',
929 Ja_Cn_Utility.GV_TAG_TYPE_START);
930 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_NUMBER', l_inner.flex_value);
931 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_NAME', l_inner.description);
932 --calculate level
933 select count(1)
934 into l_parent_count
935 from FND_FLEX_VALUE_CHILDREN_V ffvc
936 where ffvc.flex_value_set_id = l_valueset_id
937 and ffvc.flex_value = l_inner.flex_value;
938 if l_parent_count > 1 then
939 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_LEVEL', '0');
940 else
941 l_level := Get_Level(l_valueset_id, l_inner.flex_value);
942 IF l_level= -1 THEN
943 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_LEVEL', '0');
944 ELSE
945 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_LEVEL', l_level);
946 END IF;
947 end if;
948 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_TYPE', l_inner.acc_type);
949 Ja_Cn_Utility.Add_Child_Node('BALANCE_SIDE', l_inner.balance_side);
950 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_STRAT_DATE',
951 l_inner.START_DATE_ACTIVE);
952 --updated by jar.wang for bug 16655327
953 IF l_inner.End_Date_Active IS NOT NULL THEN
954 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_END_DATE',
955 l_inner.End_Date_Active);
956 END IF;
957 Ja_Cn_Utility.Add_Sub_Root_Node('INTER_SHEET_ACCOUNT',
958 Ja_Cn_Utility.GV_TAG_TYPE_END);
959 END LOOP;
960 CLOSE CUR_INNER;
961
962 IF l_row = 0 THEN
963 Ja_Cn_Utility.Add_Sub_Root_Node('INTER_SHEET_ACCOUNT',
964 Ja_Cn_Utility.GV_TAG_TYPE_START);
965 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_NUMBER', '');
966 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_NAME', '');
967 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_LEVEL', '');
968 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_TYPE', '');
969 Ja_Cn_Utility.Add_Child_Node('BALANCE_SIDE', '');
970 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_STRAT_DATE', '');
971 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_END_DATE',
972 l_inner.End_Date_Active);
973 Ja_Cn_Utility.Add_Sub_Root_Node('INTER_SHEET_ACCOUNT',
974 Ja_Cn_Utility.GV_TAG_TYPE_END);
975 END IF;
976
977 Ja_Cn_Utility.Add_Sub_Root_Node('INTER_SHEET_ACC_FILE',
978 Ja_Cn_Utility.GV_TAG_TYPE_END);
979 --logging for debug
980 IF (ln_proc_level >= ln_dbg_level) THEN
981 FND_LOG.STRING(ln_proc_level,
982 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
983 'Exit procedure');
984 END IF; -- (ln_proc_level>=ln_dbg_level)
985 EXCEPTION
986 WHEN OTHERS THEN
987 FND_FILE.put_line(FND_FILE.log,
988 GV_MODULE_PREFIX || '.' || lv_procedure_name || SQLCODE || SQLERRM);
989 RAISE;
990 END Add_Inner_Sheet_Account;
991 --==========================================================================
992 -- PROCEDURE NAME:
993 -- Add_Extra_Sheet_Account public
994 --
995 -- DESCRIPTION:
996 -- This procedure returns extra sheet account
997 --
998 -- PARAMETERS:
999 -- In: pn_legal_entity_id NUMBER
1000 -- In: pn_ledger_id NUMBER
1001 -- In: pv_bsv NUMBER
1002 -- In: pn_accounting_year NUMBER
1003 --
1004 -- CHANGE HISTORY:
1005 -- Nov-17-2012 Jar Wang Created
1006 --===========================================================================
1007 PROCEDURE Add_Extra_Sheet_Account(pn_legal_entity_id NUMBER,
1008 pn_ledger_id NUMBER,
1009 pv_bsv VARCHAR2,
1010 pn_accounting_year NUMBER)
1011
1012 IS
1013
1014 CURSOR CUR_EXTRA(c_flex_id pls_integer) IS
1015 select b.flex_value,COMPILED_VALUE_ATTRIBUTES,
1016 t.description,
1017 NULL acc_level,
1018 (select FLV.MEANING
1019 from FND_LOOKUP_VALUES flv
1020 where flv.lookup_type = 'ACCOUNT_TYPE'
1021 and flv.view_APPLICATION_ID = 0
1022 and flv.security_group_id = 0
1023 and language = userenv('LANG')
1024 and flv.lookup_code =
1025 (substr(COMPILED_VALUE_ATTRIBUTES,
1026 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 2) + 1,
1027 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 3) - 1 -
1028 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 2)))) acc_type,
1029 (select FLV.MEANING
1030 from FND_LOOKUP_VALUES flv
1031 where flv.lookup_type = 'JA_CN_UOM'
1032 and flv.view_APPLICATION_ID = 0
1033 and flv.security_group_id = 0
1034 and language = userenv('LANG')
1035 and flv.lookup_code =
1036 (substr(COMPILED_VALUE_ATTRIBUTES,
1037 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 6) + 1,
1038 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 7) - 1 -
1039 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 6)))) account_unit,
1040 (select FLV.MEANING
1041 from FND_LOOKUP_VALUES flv
1042 where flv.lookup_type = 'JA_CN_DEBIT_CREDIT'
1043 and flv.view_APPLICATION_ID = 0
1044 and flv.security_group_id = 0
1045 and language = userenv('LANG')
1046 and flv.lookup_code = (substr(COMPILED_VALUE_ATTRIBUTES,
1047 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 7) + 1))) balance_side,
1048 to_char(nvl(b.START_DATE_ACTIVE,b.creation_date),'YYYYMMDD') START_DATE_ACTIVE,to_char(b.end_date_active,'YYYYMMDD') end_date_active
1049 from FND_FLEX_VALUES_TL T, FND_FLEX_VALUES B
1050 where B.FLEX_VALUE_ID = T.FLEX_VALUE_ID
1051 and T.LANGUAGE = userenv('LANG')
1052 and substr(COMPILED_VALUE_ATTRIBUTES,
1053 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 5) + 1,
1054 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 6) - 1 -
1055 instr(COMPILED_VALUE_ATTRIBUTES, fnd_global.local_chr(10), 1, 5)) = 'E'
1056 and b.FLEX_VALUE_SET_ID = c_flex_id;
1057
1058 lv_procedure_name VARCHAR2(40) := 'Add_Extra_Sheet_Account';
1059 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1060 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
1061
1062 l_extra CUR_EXTRA%ROWTYPE;
1063 l_valueset_id PLS_INTEGER;
1064 l_parent_count PLS_INTEGER;
1065 l_level PLS_INTEGER;
1066 l_row PLS_INTEGER := 0;
1067 BEGIN
1068 IF (ln_proc_level >= ln_dbg_level) THEN
1069 FND_LOG.STRING(ln_proc_level,
1070 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
1071 '.begin',
1072 'Enter procedure');
1073 END IF; --ln_proc_level>=ln_dbg_level
1074
1075 --get valueset id of the coa
1076 SELECT fifsv.FLEX_VALUE_SET_ID
1077 into l_valueset_id
1078 FROM FND_ID_FLEX_SEGMENTS_VL fifsv, FND_SEGMENT_ATTRIBUTE_VALUES FSAV
1079 WHERE FSAV.ATTRIBUTE_VALUE = 'Y'
1080 AND FSAV.APPLICATION_ID = 101
1081 AND FSAV.ID_FLEX_CODE = 'GL#'
1082 AND FSAV.APPLICATION_ID = fifsv.APPLICATION_ID
1083 AND FSAV.ID_FLEX_NUM = fifsv.ID_FLEX_NUM
1084 AND FSAV.ID_FLEX_CODE = fifsv.ID_FLEX_CODE
1085 AND FSAV.APPLICATION_COLUMN_NAME = fifsv.APPLICATION_COLUMN_NAME
1086 AND FSAV.SEGMENT_ATTRIBUTE_TYPE = 'GL_ACCOUNT'
1087 AND fifsv.ID_FLEX_NUM in
1088 (SELECT chart_of_accounts_id
1089 FROM gl_ledgers gls
1090 where gls.ledger_id = pn_ledger_id);
1091 Ja_Cn_Utility.Add_Sub_Root_Node('EXTRA_SHEET_ACC_FILE',
1092 Ja_Cn_Utility.GV_TAG_TYPE_START);
1093
1094 OPEN CUR_EXTRA(l_valueset_id);
1095 LOOP
1096 FETCH CUR_EXTRA
1097 INTO l_extra;
1098 EXIT WHEN CUR_EXTRA%NOTFOUND;
1099 Ja_Cn_Utility.Add_Sub_Root_Node('EXTRA_SHEET_ACCOUNT',
1100 Ja_Cn_Utility.GV_TAG_TYPE_START);
1101 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_NUMBER', l_extra.flex_value);
1102 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_NAME', l_extra.description);
1103 --calculate level
1104 select count(1)
1105 into l_parent_count
1106 from FND_FLEX_VALUE_CHILDREN_V ffvc
1107 where ffvc.flex_value_set_id = l_valueset_id
1108 and ffvc.flex_value = l_extra.flex_value;
1109
1110 if l_parent_count > 1 then
1111 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_LEVEL', '0');
1112 else
1113 l_level := Get_Level(l_valueset_id, l_extra.flex_value);
1114 IF l_level= -1 THEN
1115 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_LEVEL', '0');
1116 ELSE
1117 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_LEVEL', l_level);
1118 END IF;
1119 end if;
1120
1121 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_TYPE', l_extra.acc_type);
1122 Ja_Cn_Utility.Add_Child_Node('EXTRA_SHEET_ACCOUNT_UOM',
1123 l_extra.account_unit);
1124 Ja_Cn_Utility.Add_Child_Node('BALANCE_SIDE', l_extra.balance_side);
1125 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_STRAT_DATE',
1126 l_extra.START_DATE_ACTIVE);
1127 IF l_extra.End_Date_Active IS NOT NULL THEN
1128 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_END_DATE',
1129 l_extra.end_date_active);
1130 END IF;
1131 Ja_Cn_Utility.Add_Sub_Root_Node('EXTRA_SHEET_ACCOUNT',
1132 Ja_Cn_Utility.GV_TAG_TYPE_END);
1133 l_row := l_row + 1;
1134 END LOOP;
1135 CLOSE CUR_EXTRA;
1136
1137 if l_row = 0 then
1138 Ja_Cn_Utility.Print_No_Data_Found_For_Log('CURRENCY');
1139 Ja_Cn_Utility.Add_Sub_Root_Node('EXTRA_SHEET_ACCOUNT',
1140 Ja_Cn_Utility.GV_TAG_TYPE_START);
1141 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_NUMBER', '');
1142 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_NAME', '');
1143 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_LEVEL', '');
1144
1145 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_TYPE', '');
1146 Ja_Cn_Utility.Add_Child_Node('EXTRA_SHEET_ACCOUNT_UOM', '');
1147 Ja_Cn_Utility.Add_Child_Node('BALANCE_SIDE', '');
1148 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_STRAT_DATE', '');
1149 Ja_Cn_Utility.Add_Child_Node('ACCOUNT_END_DATE',
1150 '');
1151 Ja_Cn_Utility.Add_Sub_Root_Node('EXTRA_SHEET_ACCOUNT',
1152 Ja_Cn_Utility.GV_TAG_TYPE_END);
1153 end if;
1154
1155 Ja_Cn_Utility.Add_Sub_Root_Node('EXTRA_SHEET_ACC_FILE',
1156 Ja_Cn_Utility.GV_TAG_TYPE_END);
1157 --logging for debug
1158 IF (ln_proc_level >= ln_dbg_level) THEN
1159 FND_LOG.STRING(ln_proc_level,
1160 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
1161 'Exit procedure');
1162 END IF; -- (ln_proc_level>=ln_dbg_level)
1163 EXCEPTION
1164 WHEN OTHERS THEN
1165 FND_FILE.put_line(FND_FILE.log,
1166 GV_MODULE_PREFIX || '.' || lv_procedure_name || SQLCODE || SQLERRM);
1167 RAISE;
1168 END Add_Extra_Sheet_Account;
1169
1170 --==========================================================================
1171 -- FUNCTION NAME:
1172 -- Get_Level public
1173 --
1174 -- DESCRIPTION:
1175 -- This procedure returns the level of account in the account hierarchy.
1176 --
1177 -- PARAMETERS:
1178 -- In: p_valueset NUMBER
1179 -- In: p_parent NUMBER
1180 --
1181 -- CHANGE HISTORY:
1182 -- Nov-10-2012 Jar Wang Created
1183 --===========================================================================
1184 FUNCTION Get_Level(p_valueset pls_integer, p_parent varchar2) RETURN NUMBER IS
1185 lv_procedure_name VARCHAR2(40) := 'Get_Level';
1186 ln_dbg_level NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1187 ln_proc_level NUMBER := FND_LOG.LEVEL_PROCEDURE;
1188 l_level pls_integer := 1;
1189 l_temp varchar2(400);
1190 l_temp2 varchar2(400);
1191 l_count pls_integer;
1192 BEGIN
1193 IF (ln_proc_level >= ln_dbg_level) THEN
1194 FND_LOG.STRING(ln_proc_level,
1195 GV_MODULE_PREFIX || '.' || lv_procedure_name ||
1196 '.begin',
1197 'Enter procedure');
1198 END IF; --ln_proc_level>=ln_dbg_level
1199 l_temp := p_parent;
1200 loop
1201 select count(1)
1202 into l_count
1203 from (SELECT v.flex_value_set_id,
1204 h.parent_flex_value,
1205 v.flex_value,
1206 v.description,
1207 v.summary_flag
1208 FROM fnd_flex_values_vl v,
1209 fnd_flex_value_norm_hierarchy h,
1210 fnd_flex_value_sets s
1211 WHERE h.flex_value_set_id = v.flex_value_set_id
1212 AND v.ENABLED_FLAG = 'Y'
1213 AND s.flex_value_set_id = v.flex_value_set_id
1214 AND (((s.format_type = 'N') AND
1215 (fnd_number.canonical_to_number(v.flex_value) BETWEEN
1216 fnd_number.canonical_to_number(h.child_flex_value_low) AND
1217 fnd_number.canonical_to_number(h.child_flex_value_high))) OR
1218 ((s.format_type IN ('D', 'T')) AND
1219 (to_date(v.flex_value,
1220 (decode(s.maximum_size,
1221 5,
1222 'HH24:MI',
1223 8,
1224 'HH24:MI:SS',
1225 9,
1226 'DD-MON-RR',
1227 11,
1228 'DD-MON-YYYY',
1229 15,
1230 'DD-MON-RR HH24:MI',
1231 17,
1232 'DD-MON-YYYY HH24:MI',
1233 18,
1234 'DD-MON-RR HH24:MI:SS',
1235 20,
1236 'DD-MON-YYYY HH24:MI:SS'))) BETWEEN
1237 to_date(h.child_flex_value_low,
1238 (decode(s.maximum_size,
1239 5,
1240 'HH24:MI',
1241 8,
1242 'HH24:MI:SS',
1243 9,
1244 'DD-MON-RR',
1245 11,
1246 'DD-MON-YYYY',
1247 15,
1248 'DD-MON-RR HH24:MI',
1249 17,
1250 'DD-MON-YYYY HH24:MI',
1251 18,
1252 'DD-MON-RR HH24:MI:SS',
1253 20,
1254 'DD-MON-YYYY HH24:MI:SS'))) AND
1255 to_date(h.child_flex_value_high,
1256 (decode(s.maximum_size,
1257 5,
1258 'HH24:MI',
1259 8,
1260 'HH24:MI:SS',
1261 9,
1262 'DD-MON-RR',
1263 11,
1264 'DD-MON-YYYY',
1265 15,
1266 'DD-MON-RR HH24:MI',
1267 17,
1268 'DD-MON-YYYY HH24:MI',
1269 18,
1270 'DD-MON-RR HH24:MI:SS',
1271 20,
1272 'DD-MON-YYYY HH24:MI:SS'))))) OR
1273 ((s.format_type NOT IN ('N', 'D', 'T')) AND
1274 (v.flex_value BETWEEN h.child_flex_value_low AND
1275 h.child_flex_value_high)))
1276 AND ((v.summary_flag = 'Y' AND h.range_attribute = 'P') OR
1277 (v.summary_flag = 'N' AND h.range_attribute = 'C'))) ffvc
1278 where ffvc.flex_value_set_id = p_valueset
1279 and ffvc.flex_value = l_temp;
1280 if l_count = 0 then
1281 exit;
1282 elsif l_count = 1 then
1283 select ffvc.parent_flex_value
1284 into l_temp2
1285 from (SELECT v.flex_value_set_id,
1286 h.parent_flex_value,
1287 v.flex_value,
1288 v.description,
1289 v.summary_flag
1290 FROM fnd_flex_values_vl v,
1291 fnd_flex_value_norm_hierarchy h,
1292 fnd_flex_value_sets s
1293 WHERE h.flex_value_set_id = v.flex_value_set_id
1294 AND v.ENABLED_FLAG = 'Y'
1295 AND s.flex_value_set_id = v.flex_value_set_id
1296 AND (((s.format_type = 'N') AND
1297 (fnd_number.canonical_to_number(v.flex_value) BETWEEN
1298 fnd_number.canonical_to_number(h.child_flex_value_low) AND
1299 fnd_number.canonical_to_number(h.child_flex_value_high))) OR
1300 ((s.format_type IN ('D', 'T')) AND
1301 (to_date(v.flex_value,
1302 (decode(s.maximum_size,
1303 5,
1304 'HH24:MI',
1305 8,
1306 'HH24:MI:SS',
1307 9,
1308 'DD-MON-RR',
1309 11,
1310 'DD-MON-YYYY',
1311 15,
1312 'DD-MON-RR HH24:MI',
1313 17,
1314 'DD-MON-YYYY HH24:MI',
1315 18,
1316 'DD-MON-RR HH24:MI:SS',
1317 20,
1318 'DD-MON-YYYY HH24:MI:SS'))) BETWEEN
1319 to_date(h.child_flex_value_low,
1320 (decode(s.maximum_size,
1321 5,
1322 'HH24:MI',
1323 8,
1324 'HH24:MI:SS',
1325 9,
1326 'DD-MON-RR',
1327 11,
1328 'DD-MON-YYYY',
1329 15,
1330 'DD-MON-RR HH24:MI',
1331 17,
1332 'DD-MON-YYYY HH24:MI',
1333 18,
1334 'DD-MON-RR HH24:MI:SS',
1335 20,
1336 'DD-MON-YYYY HH24:MI:SS'))) AND
1337 to_date(h.child_flex_value_high,
1338 (decode(s.maximum_size,
1339 5,
1340 'HH24:MI',
1341 8,
1342 'HH24:MI:SS',
1343 9,
1344 'DD-MON-RR',
1345 11,
1346 'DD-MON-YYYY',
1347 15,
1348 'DD-MON-RR HH24:MI',
1349 17,
1350 'DD-MON-YYYY HH24:MI',
1351 18,
1352 'DD-MON-RR HH24:MI:SS',
1353 20,
1354 'DD-MON-YYYY HH24:MI:SS'))))) OR
1355 ((s.format_type NOT IN ('N', 'D', 'T')) AND
1356 (v.flex_value BETWEEN h.child_flex_value_low AND
1357 h.child_flex_value_high)))
1358 AND ((v.summary_flag = 'Y' AND h.range_attribute = 'P') OR
1359 (v.summary_flag = 'N' AND h.range_attribute = 'C'))) ffvc
1360 where ffvc.flex_value_set_id = p_valueset
1361 and ffvc.flex_value = l_temp;
1362 l_temp := l_temp2;
1363
1364 l_level := l_level + 1;
1365 else
1366 l_level := -1;
1367 exit;
1368 end if;
1369 end loop;
1370 --logging for debug
1371 IF (ln_proc_level >= ln_dbg_level) THEN
1372 FND_LOG.STRING(ln_proc_level,
1373 GV_MODULE_PREFIX || '.' || lv_procedure_name || '.end',
1374 'Exit procedure');
1375 END IF; -- (ln_proc_level>=ln_dbg_level)
1376 return l_level;
1377 EXCEPTION
1378 WHEN OTHERS THEN
1379 FND_FILE.put_line(FND_FILE.log,
1380 GV_MODULE_PREFIX || '.' || lv_procedure_name || SQLCODE || SQLERRM);
1381 RAISE;
1382 END Get_Level;
1383
1384 END JA_CN_SI_BANK_DET_PKG;
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394