2: /* $Header: glffglib.pls 120.11.12000000.2 2007/01/23 23:17:26 djogg ship $ */
3:
4: /* ------------------------------------------------------------------------- */
5: /* Function called just after code combination is inserted into */
6: /* GL code combinations table in the accounting flexfield. */
7: /* Returns TRUE if ok, or returns FALSE and sets FND_MESSAGE on error. */
8: /* ------------------------------------------------------------------------- */
9:
10: --===========================FND_LOG.START=====================================
64:
65:
66: -- Flex Num for the Accounting Flexfield Structure
67:
68: coaid gl_code_combinations.chart_of_accounts_id%TYPE;
69:
70: -- User ID
71:
72: user_id gl_code_combinations.last_updated_by%TYPE;
68: coaid gl_code_combinations.chart_of_accounts_id%TYPE;
69:
70: -- User ID
71:
72: user_id gl_code_combinations.last_updated_by%TYPE;
73:
74: -- Responsibility ID
75:
76: user_resp_id NUMBER;
166:
167: FUNCTION glfiba(ccid IN NUMBER) RETURN BOOLEAN;
168:
169:
170: FUNCTION glfcst(val_set IN SegVsetArray, ccid IN gl_code_combinations.code_combination_id%TYPE) RETURN BOOLEAN;
171:
172:
173: FUNCTION glfgdg RETURN BOOLEAN;
174:
250: /* FND_MESSAGE */
251: /* */
252: /* GL Tables which are being used include : */
253: /* */
254: /* GL_CODE_COMBINATIONS */
255: /* GL_LEDGERS */
256: /* GL_BUDGET_ASSIGNMENT_RANGES */
257: /* GL_BUDGET_ASSIGNMENTS */
258: /* GL_SUMMARY_TEMPLATES */
350: -- ========================= FND LOG ===========================
351:
352: --select count(*)
353: --into num_ccid
354: --from gl_code_combinations
355: --where code_combination_id = ccid;
356:
357: BEGIN
358: select 'Y' into l_temp_var
430: -- ========================= FND LOG ===========================
431: psa_utils.debug_other_string(g_state_level,l_full_path,
432: ' Calling HR_GL_COST_CENTERS.create_org');
433: psa_utils.debug_other_string(g_state_level,l_full_path,
434: ' update company_cost_enter_org_id of GL_CODE_COMBINATIONS');
435: -- ========================= FND LOG ===========================
436:
437: -- Call API to update company_cost_enter_org_id of GL_CODE_COMBINATIONS table..
438: -- We pass CCID as parameter to this procedure
433: psa_utils.debug_other_string(g_state_level,l_full_path,
434: ' update company_cost_enter_org_id of GL_CODE_COMBINATIONS');
435: -- ========================= FND LOG ===========================
436:
437: -- Call API to update company_cost_enter_org_id of GL_CODE_COMBINATIONS table..
438: -- We pass CCID as parameter to this procedure
439:
440: HR_GL_COST_CENTERS.create_org(ccid);
441:
584: -- Templates, we
585: -- (1) lock the summary templates that have parent accounts created
586: -- (2) find ccids for existing parents
587: -- (3) assign new ccids to new parents
588: -- (4) insert the newly created parents into gl_code_combinations
589: -- (5) maintain gl_account_hierarchies
590:
591: if created_parent then
592:
734: ignore INTEGER;
735:
736: i BINARY_INTEGER;
737:
738: account_type gl_code_combinations.account_type%TYPE;
739: segment1 gl_code_combinations.segment1%TYPE;
740: segment2 gl_code_combinations.segment2%TYPE;
741: segment3 gl_code_combinations.segment3%TYPE;
742: segment4 gl_code_combinations.segment4%TYPE;
735:
736: i BINARY_INTEGER;
737:
738: account_type gl_code_combinations.account_type%TYPE;
739: segment1 gl_code_combinations.segment1%TYPE;
740: segment2 gl_code_combinations.segment2%TYPE;
741: segment3 gl_code_combinations.segment3%TYPE;
742: segment4 gl_code_combinations.segment4%TYPE;
743: segment5 gl_code_combinations.segment5%TYPE;
736: i BINARY_INTEGER;
737:
738: account_type gl_code_combinations.account_type%TYPE;
739: segment1 gl_code_combinations.segment1%TYPE;
740: segment2 gl_code_combinations.segment2%TYPE;
741: segment3 gl_code_combinations.segment3%TYPE;
742: segment4 gl_code_combinations.segment4%TYPE;
743: segment5 gl_code_combinations.segment5%TYPE;
744: segment6 gl_code_combinations.segment6%TYPE;
737:
738: account_type gl_code_combinations.account_type%TYPE;
739: segment1 gl_code_combinations.segment1%TYPE;
740: segment2 gl_code_combinations.segment2%TYPE;
741: segment3 gl_code_combinations.segment3%TYPE;
742: segment4 gl_code_combinations.segment4%TYPE;
743: segment5 gl_code_combinations.segment5%TYPE;
744: segment6 gl_code_combinations.segment6%TYPE;
745: segment7 gl_code_combinations.segment7%TYPE;
738: account_type gl_code_combinations.account_type%TYPE;
739: segment1 gl_code_combinations.segment1%TYPE;
740: segment2 gl_code_combinations.segment2%TYPE;
741: segment3 gl_code_combinations.segment3%TYPE;
742: segment4 gl_code_combinations.segment4%TYPE;
743: segment5 gl_code_combinations.segment5%TYPE;
744: segment6 gl_code_combinations.segment6%TYPE;
745: segment7 gl_code_combinations.segment7%TYPE;
746: segment8 gl_code_combinations.segment8%TYPE;
739: segment1 gl_code_combinations.segment1%TYPE;
740: segment2 gl_code_combinations.segment2%TYPE;
741: segment3 gl_code_combinations.segment3%TYPE;
742: segment4 gl_code_combinations.segment4%TYPE;
743: segment5 gl_code_combinations.segment5%TYPE;
744: segment6 gl_code_combinations.segment6%TYPE;
745: segment7 gl_code_combinations.segment7%TYPE;
746: segment8 gl_code_combinations.segment8%TYPE;
747: segment9 gl_code_combinations.segment9%TYPE;
740: segment2 gl_code_combinations.segment2%TYPE;
741: segment3 gl_code_combinations.segment3%TYPE;
742: segment4 gl_code_combinations.segment4%TYPE;
743: segment5 gl_code_combinations.segment5%TYPE;
744: segment6 gl_code_combinations.segment6%TYPE;
745: segment7 gl_code_combinations.segment7%TYPE;
746: segment8 gl_code_combinations.segment8%TYPE;
747: segment9 gl_code_combinations.segment9%TYPE;
748: segment10 gl_code_combinations.segment10%TYPE;
741: segment3 gl_code_combinations.segment3%TYPE;
742: segment4 gl_code_combinations.segment4%TYPE;
743: segment5 gl_code_combinations.segment5%TYPE;
744: segment6 gl_code_combinations.segment6%TYPE;
745: segment7 gl_code_combinations.segment7%TYPE;
746: segment8 gl_code_combinations.segment8%TYPE;
747: segment9 gl_code_combinations.segment9%TYPE;
748: segment10 gl_code_combinations.segment10%TYPE;
749: segment11 gl_code_combinations.segment11%TYPE;
742: segment4 gl_code_combinations.segment4%TYPE;
743: segment5 gl_code_combinations.segment5%TYPE;
744: segment6 gl_code_combinations.segment6%TYPE;
745: segment7 gl_code_combinations.segment7%TYPE;
746: segment8 gl_code_combinations.segment8%TYPE;
747: segment9 gl_code_combinations.segment9%TYPE;
748: segment10 gl_code_combinations.segment10%TYPE;
749: segment11 gl_code_combinations.segment11%TYPE;
750: segment12 gl_code_combinations.segment12%TYPE;
743: segment5 gl_code_combinations.segment5%TYPE;
744: segment6 gl_code_combinations.segment6%TYPE;
745: segment7 gl_code_combinations.segment7%TYPE;
746: segment8 gl_code_combinations.segment8%TYPE;
747: segment9 gl_code_combinations.segment9%TYPE;
748: segment10 gl_code_combinations.segment10%TYPE;
749: segment11 gl_code_combinations.segment11%TYPE;
750: segment12 gl_code_combinations.segment12%TYPE;
751: segment13 gl_code_combinations.segment13%TYPE;
744: segment6 gl_code_combinations.segment6%TYPE;
745: segment7 gl_code_combinations.segment7%TYPE;
746: segment8 gl_code_combinations.segment8%TYPE;
747: segment9 gl_code_combinations.segment9%TYPE;
748: segment10 gl_code_combinations.segment10%TYPE;
749: segment11 gl_code_combinations.segment11%TYPE;
750: segment12 gl_code_combinations.segment12%TYPE;
751: segment13 gl_code_combinations.segment13%TYPE;
752: segment14 gl_code_combinations.segment14%TYPE;
745: segment7 gl_code_combinations.segment7%TYPE;
746: segment8 gl_code_combinations.segment8%TYPE;
747: segment9 gl_code_combinations.segment9%TYPE;
748: segment10 gl_code_combinations.segment10%TYPE;
749: segment11 gl_code_combinations.segment11%TYPE;
750: segment12 gl_code_combinations.segment12%TYPE;
751: segment13 gl_code_combinations.segment13%TYPE;
752: segment14 gl_code_combinations.segment14%TYPE;
753: segment15 gl_code_combinations.segment15%TYPE;
746: segment8 gl_code_combinations.segment8%TYPE;
747: segment9 gl_code_combinations.segment9%TYPE;
748: segment10 gl_code_combinations.segment10%TYPE;
749: segment11 gl_code_combinations.segment11%TYPE;
750: segment12 gl_code_combinations.segment12%TYPE;
751: segment13 gl_code_combinations.segment13%TYPE;
752: segment14 gl_code_combinations.segment14%TYPE;
753: segment15 gl_code_combinations.segment15%TYPE;
754: segment16 gl_code_combinations.segment16%TYPE;
747: segment9 gl_code_combinations.segment9%TYPE;
748: segment10 gl_code_combinations.segment10%TYPE;
749: segment11 gl_code_combinations.segment11%TYPE;
750: segment12 gl_code_combinations.segment12%TYPE;
751: segment13 gl_code_combinations.segment13%TYPE;
752: segment14 gl_code_combinations.segment14%TYPE;
753: segment15 gl_code_combinations.segment15%TYPE;
754: segment16 gl_code_combinations.segment16%TYPE;
755: segment17 gl_code_combinations.segment17%TYPE;
748: segment10 gl_code_combinations.segment10%TYPE;
749: segment11 gl_code_combinations.segment11%TYPE;
750: segment12 gl_code_combinations.segment12%TYPE;
751: segment13 gl_code_combinations.segment13%TYPE;
752: segment14 gl_code_combinations.segment14%TYPE;
753: segment15 gl_code_combinations.segment15%TYPE;
754: segment16 gl_code_combinations.segment16%TYPE;
755: segment17 gl_code_combinations.segment17%TYPE;
756: segment18 gl_code_combinations.segment18%TYPE;
749: segment11 gl_code_combinations.segment11%TYPE;
750: segment12 gl_code_combinations.segment12%TYPE;
751: segment13 gl_code_combinations.segment13%TYPE;
752: segment14 gl_code_combinations.segment14%TYPE;
753: segment15 gl_code_combinations.segment15%TYPE;
754: segment16 gl_code_combinations.segment16%TYPE;
755: segment17 gl_code_combinations.segment17%TYPE;
756: segment18 gl_code_combinations.segment18%TYPE;
757: segment19 gl_code_combinations.segment19%TYPE;
750: segment12 gl_code_combinations.segment12%TYPE;
751: segment13 gl_code_combinations.segment13%TYPE;
752: segment14 gl_code_combinations.segment14%TYPE;
753: segment15 gl_code_combinations.segment15%TYPE;
754: segment16 gl_code_combinations.segment16%TYPE;
755: segment17 gl_code_combinations.segment17%TYPE;
756: segment18 gl_code_combinations.segment18%TYPE;
757: segment19 gl_code_combinations.segment19%TYPE;
758: segment20 gl_code_combinations.segment20%TYPE;
751: segment13 gl_code_combinations.segment13%TYPE;
752: segment14 gl_code_combinations.segment14%TYPE;
753: segment15 gl_code_combinations.segment15%TYPE;
754: segment16 gl_code_combinations.segment16%TYPE;
755: segment17 gl_code_combinations.segment17%TYPE;
756: segment18 gl_code_combinations.segment18%TYPE;
757: segment19 gl_code_combinations.segment19%TYPE;
758: segment20 gl_code_combinations.segment20%TYPE;
759: segment21 gl_code_combinations.segment21%TYPE;
752: segment14 gl_code_combinations.segment14%TYPE;
753: segment15 gl_code_combinations.segment15%TYPE;
754: segment16 gl_code_combinations.segment16%TYPE;
755: segment17 gl_code_combinations.segment17%TYPE;
756: segment18 gl_code_combinations.segment18%TYPE;
757: segment19 gl_code_combinations.segment19%TYPE;
758: segment20 gl_code_combinations.segment20%TYPE;
759: segment21 gl_code_combinations.segment21%TYPE;
760: segment22 gl_code_combinations.segment22%TYPE;
753: segment15 gl_code_combinations.segment15%TYPE;
754: segment16 gl_code_combinations.segment16%TYPE;
755: segment17 gl_code_combinations.segment17%TYPE;
756: segment18 gl_code_combinations.segment18%TYPE;
757: segment19 gl_code_combinations.segment19%TYPE;
758: segment20 gl_code_combinations.segment20%TYPE;
759: segment21 gl_code_combinations.segment21%TYPE;
760: segment22 gl_code_combinations.segment22%TYPE;
761: segment23 gl_code_combinations.segment23%TYPE;
754: segment16 gl_code_combinations.segment16%TYPE;
755: segment17 gl_code_combinations.segment17%TYPE;
756: segment18 gl_code_combinations.segment18%TYPE;
757: segment19 gl_code_combinations.segment19%TYPE;
758: segment20 gl_code_combinations.segment20%TYPE;
759: segment21 gl_code_combinations.segment21%TYPE;
760: segment22 gl_code_combinations.segment22%TYPE;
761: segment23 gl_code_combinations.segment23%TYPE;
762: segment24 gl_code_combinations.segment24%TYPE;
755: segment17 gl_code_combinations.segment17%TYPE;
756: segment18 gl_code_combinations.segment18%TYPE;
757: segment19 gl_code_combinations.segment19%TYPE;
758: segment20 gl_code_combinations.segment20%TYPE;
759: segment21 gl_code_combinations.segment21%TYPE;
760: segment22 gl_code_combinations.segment22%TYPE;
761: segment23 gl_code_combinations.segment23%TYPE;
762: segment24 gl_code_combinations.segment24%TYPE;
763: segment25 gl_code_combinations.segment25%TYPE;
756: segment18 gl_code_combinations.segment18%TYPE;
757: segment19 gl_code_combinations.segment19%TYPE;
758: segment20 gl_code_combinations.segment20%TYPE;
759: segment21 gl_code_combinations.segment21%TYPE;
760: segment22 gl_code_combinations.segment22%TYPE;
761: segment23 gl_code_combinations.segment23%TYPE;
762: segment24 gl_code_combinations.segment24%TYPE;
763: segment25 gl_code_combinations.segment25%TYPE;
764: segment26 gl_code_combinations.segment26%TYPE;
757: segment19 gl_code_combinations.segment19%TYPE;
758: segment20 gl_code_combinations.segment20%TYPE;
759: segment21 gl_code_combinations.segment21%TYPE;
760: segment22 gl_code_combinations.segment22%TYPE;
761: segment23 gl_code_combinations.segment23%TYPE;
762: segment24 gl_code_combinations.segment24%TYPE;
763: segment25 gl_code_combinations.segment25%TYPE;
764: segment26 gl_code_combinations.segment26%TYPE;
765: segment27 gl_code_combinations.segment27%TYPE;
758: segment20 gl_code_combinations.segment20%TYPE;
759: segment21 gl_code_combinations.segment21%TYPE;
760: segment22 gl_code_combinations.segment22%TYPE;
761: segment23 gl_code_combinations.segment23%TYPE;
762: segment24 gl_code_combinations.segment24%TYPE;
763: segment25 gl_code_combinations.segment25%TYPE;
764: segment26 gl_code_combinations.segment26%TYPE;
765: segment27 gl_code_combinations.segment27%TYPE;
766: segment28 gl_code_combinations.segment28%TYPE;
759: segment21 gl_code_combinations.segment21%TYPE;
760: segment22 gl_code_combinations.segment22%TYPE;
761: segment23 gl_code_combinations.segment23%TYPE;
762: segment24 gl_code_combinations.segment24%TYPE;
763: segment25 gl_code_combinations.segment25%TYPE;
764: segment26 gl_code_combinations.segment26%TYPE;
765: segment27 gl_code_combinations.segment27%TYPE;
766: segment28 gl_code_combinations.segment28%TYPE;
767: segment29 gl_code_combinations.segment29%TYPE;
760: segment22 gl_code_combinations.segment22%TYPE;
761: segment23 gl_code_combinations.segment23%TYPE;
762: segment24 gl_code_combinations.segment24%TYPE;
763: segment25 gl_code_combinations.segment25%TYPE;
764: segment26 gl_code_combinations.segment26%TYPE;
765: segment27 gl_code_combinations.segment27%TYPE;
766: segment28 gl_code_combinations.segment28%TYPE;
767: segment29 gl_code_combinations.segment29%TYPE;
768: segment30 gl_code_combinations.segment30%TYPE;
761: segment23 gl_code_combinations.segment23%TYPE;
762: segment24 gl_code_combinations.segment24%TYPE;
763: segment25 gl_code_combinations.segment25%TYPE;
764: segment26 gl_code_combinations.segment26%TYPE;
765: segment27 gl_code_combinations.segment27%TYPE;
766: segment28 gl_code_combinations.segment28%TYPE;
767: segment29 gl_code_combinations.segment29%TYPE;
768: segment30 gl_code_combinations.segment30%TYPE;
769:
762: segment24 gl_code_combinations.segment24%TYPE;
763: segment25 gl_code_combinations.segment25%TYPE;
764: segment26 gl_code_combinations.segment26%TYPE;
765: segment27 gl_code_combinations.segment27%TYPE;
766: segment28 gl_code_combinations.segment28%TYPE;
767: segment29 gl_code_combinations.segment29%TYPE;
768: segment30 gl_code_combinations.segment30%TYPE;
769:
770: -- ========================= FND LOG ===========================
763: segment25 gl_code_combinations.segment25%TYPE;
764: segment26 gl_code_combinations.segment26%TYPE;
765: segment27 gl_code_combinations.segment27%TYPE;
766: segment28 gl_code_combinations.segment28%TYPE;
767: segment29 gl_code_combinations.segment29%TYPE;
768: segment30 gl_code_combinations.segment30%TYPE;
769:
770: -- ========================= FND LOG ===========================
771: l_full_path VARCHAR2(100) := g_path || 'glfini.';
764: segment26 gl_code_combinations.segment26%TYPE;
765: segment27 gl_code_combinations.segment27%TYPE;
766: segment28 gl_code_combinations.segment28%TYPE;
767: segment29 gl_code_combinations.segment29%TYPE;
768: segment30 gl_code_combinations.segment30%TYPE;
769:
770: -- ========================= FND LOG ===========================
771: l_full_path VARCHAR2(100) := g_path || 'glfini.';
772: -- ========================= FND LOG ===========================
836: ', segment' || i;
837: end loop;
838:
839: sql_glcc := sql_glcc ||
840: ' from gl_code_combinations ' ||
841: 'where code_combination_id = :ccid';
842:
843:
844: -- ========================= FND LOG ===========================
1458:
1459: -- val_set : Value Set IDs for the Segments in the Code Combination
1460:
1461:
1462: FUNCTION glfcst(val_set IN SegVsetArray, ccid IN gl_code_combinations.code_combination_id%TYPE) RETURN BOOLEAN IS
1463:
1464: -- Maximum Length for this Dynamic SQL Statement is 993
1465:
1466: sql_stmp VARCHAR2(32767);
1562: sql_stmp := sql_stmp || ' ' ||
1563: 'and (segment' || i || '_type is null ' ||
1564: 'or segment' || i || '_type in (''D'', ''T'') ' ||
1565: 'or segment' || i || '_type in (select fh.hierarchy_name ' ||
1566: 'from gl_code_combinations cc, gl_summary_hierarchies gsh, fnd_flex_values fv, fnd_id_flex_segments fs, ' ||
1567: 'fnd_flex_hierarchies_vl fh ' ||
1568: 'where cc.code_combination_id = :ccid and ' ||
1569: 'cc.segment' || i || ' between gsh.child_flex_value_low and gsh.child_flex_value_high and ' ||
1570: 'gsh.flex_value_set_id = fv.flex_value_set_id and ' ||
2929:
2930: sql_statement := 'update gl_dynamic_summ_combinations tc1 ' ||
2931: 'set code_combination_id = (' ||
2932: 'select nvl(cc.code_combination_id, -1) ' ||
2933: 'from gl_code_combinations cc, ' ||
2934: 'gl_dynamic_summ_combinations tc2 ' ||
2935: 'where cc.template_id(+) = abs(tc1.template_id) ' ||
2936: 'and cc.chart_of_accounts_id(+) = ' || coaid || ' ';
2937:
2986:
2987: FUNCTION glfanc RETURN BOOLEAN IS
2988:
2989: cursor ccid_seq is
2990: select gl_code_combinations_s.NEXTVAL
2991: from sys.dual;
2992:
2993: -- ========================= FND LOG ===========================
2994: l_full_path VARCHAR2(100) := g_path || 'glfanc.';
3017: goto return_invalid;
3018: end if;
3019:
3020: update gl_dynamic_summ_combinations
3021: set code_combination_id = gl_code_combinations_s.NEXTVAL
3022: where code_combination_id = -1
3023: and dynamic_group_id = dyn_grp_id;
3024:
3025: -- ========================= FND LOG ===========================
3101: -- ========================= FND LOG ===========================
3102: psa_utils.debug_other_string(g_state_level,l_full_path,' START glficc ');
3103: -- ========================= FND LOG ===========================
3104:
3105: sql_inscc := 'insert into gl_code_combinations (' ||
3106: 'code_combination_id, ' ||
3107: 'last_update_date, ' ||
3108: 'last_updated_by, ' ||
3109: 'chart_of_accounts_id, ' ||
3514:
3515: -- SQL statement for the update is constructed dynamically from the
3516: -- definition fnd_flex tables; the SQL will be in this form:
3517: --
3518: -- UPDATE gl_code_combinations glcc set
3519: -- segment_attribute1 = (select attribute2
3520: -- from fnd_flex_values ffval
3521: -- where ffval.flex_value_set_id = 1234
3522: -- and enable_flag = 'Y'
3576: -- ========================= FND LOG ===========================
3577: psa_utils.debug_other_string(g_state_level,l_full_path,' START glfupd ');
3578: -- ========================= FND LOG ===========================
3579:
3580: update_cl := 'UPDATE gl_code_combinations glcc SET ';
3581:
3582: for c_RptAttr in RptAttr(coaid) loop
3583:
3584: vsid_array(attr_num) := c_RptAttr.vsid;