44:
45: resource_busy exception;
46: pragma exception_init(resource_busy,-00054);
47: cursor gms_bal_lock is
48: select end_date from gms_balances
49: where budget_version_id = x_budget_version_id
50: for update nowait;
51: ---------------------------------------------------------------------------------------------
52: -- procedure to re-create the gms_balance records from GMS_BUDGET_LINES
55:
56: procedure create_gms_balance( x_budget_version_id in number, x_set_of_books_id in number,
57: x_project_id in number, x_award_id in number) is
58: begin
59: delete from gms_balances where budget_version_id = x_budget_version_id;
60: --Commented the above line for history purposes 11i change.
61:
62: -- Added x_project_id and x_award_id to delete so that it hits N2 index : ported Bug 1703510
63:
65: where project_id = x_project_id
66: and award_id = x_award_id
67: and budget_version_id = x_budget_version_id;
68:
69: -- insert into gms_balances table from gms_budget_lines
70: insert into gms_balances (
71: PROJECT_ID,
72: AWARD_ID,
73: TASK_ID,
66: and award_id = x_award_id
67: and budget_version_id = x_budget_version_id;
68:
69: -- insert into gms_balances table from gms_budget_lines
70: insert into gms_balances (
71: PROJECT_ID,
72: AWARD_ID,
73: TASK_ID,
74: TOP_TASK_ID,
1624: ELSE
1625: g_error_stage := 'Categorized<>R';
1626: SELECT resource_list_member_id
1627: INTO x_resource_list_member_id
1628: FROM gms_balances gb
1629: WHERE gb.budget_version_id = x_budget_version_id
1630: AND balance_type = 'BGT'
1631: AND ROWNUM = 1;
1632: IF L_DEBUG = 'Y' THEN
1738: end;
1739: ---------------------------------------------------------------------------------------------
1740:
1741: /***************************************************************************+
1742: |** Procedure to create actual and encumbrance lines in GMS_BALANCES when **|
1743: |** Funds check is not required ********************************************|
1744: +***************************************************************************/
1745:
1746: PROCEDURE create_act_enc_gms_balances(x_budget_version_id number,
1742: |** Procedure to create actual and encumbrance lines in GMS_BALANCES when **|
1743: |** Funds check is not required ********************************************|
1744: +***************************************************************************/
1745:
1746: PROCEDURE create_act_enc_gms_balances(x_budget_version_id number,
1747: x_base_budget_version_id number) IS
1748: BEGIN
1749: DELETE FROM gms_balances WHERE budget_version_id = x_budget_version_id;
1750: DELETE FROM gms_bc_packets WHERE budget_version_id = x_budget_version_id;
1745:
1746: PROCEDURE create_act_enc_gms_balances(x_budget_version_id number,
1747: x_base_budget_version_id number) IS
1748: BEGIN
1749: DELETE FROM gms_balances WHERE budget_version_id = x_budget_version_id;
1750: DELETE FROM gms_bc_packets WHERE budget_version_id = x_budget_version_id;
1751: --
1752: -- Insert Actuals and Encumbrance rows into GMS_BALANCES copied
1753: -- from the previous budget version in GMS_BALANCES
1748: BEGIN
1749: DELETE FROM gms_balances WHERE budget_version_id = x_budget_version_id;
1750: DELETE FROM gms_bc_packets WHERE budget_version_id = x_budget_version_id;
1751: --
1752: -- Insert Actuals and Encumbrance rows into GMS_BALANCES copied
1753: -- from the previous budget version in GMS_BALANCES
1754:
1755: INSERT INTO gms_balances (
1756: PROJECT_ID,
1749: DELETE FROM gms_balances WHERE budget_version_id = x_budget_version_id;
1750: DELETE FROM gms_bc_packets WHERE budget_version_id = x_budget_version_id;
1751: --
1752: -- Insert Actuals and Encumbrance rows into GMS_BALANCES copied
1753: -- from the previous budget version in GMS_BALANCES
1754:
1755: INSERT INTO gms_balances (
1756: PROJECT_ID,
1757: AWARD_ID,
1751: --
1752: -- Insert Actuals and Encumbrance rows into GMS_BALANCES copied
1753: -- from the previous budget version in GMS_BALANCES
1754:
1755: INSERT INTO gms_balances (
1756: PROJECT_ID,
1757: AWARD_ID,
1758: TASK_ID,
1759: RESOURCE_LIST_MEMBER_ID,
1789: gms.PARENT_MEMBER_ID,
1790: 0,
1791: gms.actual_period_to_date,
1792: gms.encumb_period_to_date
1793: FROM gms_balances gms
1794: WHERE gms.budget_version_id = x_base_budget_version_id
1795: AND ( NVL(gms.actual_period_to_date,0) <> 0 OR NVL(gms.encumb_period_to_date,0) <> 0 );
1796: EXCEPTION WHEN no_data_found THEN
1797: NULL;
1794: WHERE gms.budget_version_id = x_base_budget_version_id
1795: AND ( NVL(gms.actual_period_to_date,0) <> 0 OR NVL(gms.encumb_period_to_date,0) <> 0 );
1796: EXCEPTION WHEN no_data_found THEN
1797: NULL;
1798: END create_act_enc_gms_balances;
1799:
1800: /***********************************************************************+
1801: |** Procedure to get packet ids of the baselined budget and run the ****|
1802: |** Sweeper Process for the packet ids *********************************|
1819: END LOOP;
1820: END sweep_baselined_budget;
1821:
1822: /******************************************************************************+
1823: |******** Procedure to update GMS_BALANCES table when funds check not reqd. ***|
1824: +******************************************************************************/
1825:
1826: PROCEDURE update_gms_fck_nr(x_budget_version_id number,
1827: x_base_bud_version_id number,
1860: --
1861: BEGIN
1862: SELECT budget_period_to_date
1863: INTO bud_amount
1864: FROM gms_balances
1865: WHERE project_id = sel_rec.project_id
1866: AND award_id = sel_rec.award_id
1867: AND task_id = sel_rec.task_id
1868: AND resource_list_member_id = sel_rec.resource_list_member_id
1870: AND budget_version_id = x_budget_version_id
1871: AND start_date = sel_rec.start_date;
1872: EXCEPTION WHEN no_data_found THEN
1873:
1874: INSERT INTO gms_balances (project_id
1875: ,award_id
1876: ,task_id
1877: ,resource_list_member_id
1878: ,set_of_books_id
1909: ,sel_rec.burdened_cost
1910: );
1911: END;
1912: IF bud_amount <> sel_rec.burdened_cost THEN
1913: UPDATE gms_balances
1914: SET budget_period_to_date = sel_rec.burdened_cost
1915: WHERE Project_id = sel_rec.project_id
1916: AND award_id = sel_rec.award_id
1917: AND task_id = sel_rec.task_id
1987:
1988: -- If GMS:Update Actual and Encumbrance balance conc. process is
1989: -- not run then the actuals and encumbrances should be picked
1990: -- from GMS_BC_PACKETS otherwise the actuals and encumbrances should
1991: -- be picked from GMS_BALANCES since it will no longer be in
1992: -- GMS_BC_PACKETS.
1993:
1994: begin
1995: SELECT 1 into x_dummy from dual
2002: exception
2003: when no_data_found then
2004: SELECT count(1)
2005: INTO x_dummy
2006: FROM gms_balances
2007: WHERE project_id = x_project_id
2008: AND award_id = x_award_id
2009: AND budget_version_id = x_base_bud_version_id
2010: AND actual_period_to_date is NOT NULL
2012: end;
2013:
2014:
2015: IF x_dummy = 0 THEN
2016: create_act_enc_gms_balances(x_budget_version_id,x_base_bud_version_id);
2017: update_gms_fck_nr(x_budget_version_id,x_base_bud_version_id,x_sob_id);
2018: RETCODE := 'S';
2019: RETURN;
2020: ELSE
2018: RETCODE := 'S';
2019: RETURN;
2020: ELSE
2021: sweep_baselined_budget(x_base_bud_version_id);
2022: create_act_enc_gms_balances(x_budget_version_id,x_base_bud_version_id);
2023: update_gms_fck_nr(x_budget_version_id,x_base_bud_version_id,x_sob_id);
2024: RETCODE := 'S';
2025: RETURN;
2026: END IF;
2032:
2033: --Logic for Conditional FC : End -----------------------------------------------------------------
2034: for bug: 1666853 */
2035:
2036: -- re-create GMS_BALANCES record
2037: x_e_stage := '300';
2038: open gms_bal_lock; -- lock gms_balances records for the budget version
2039: IF L_DEBUG = 'Y' THEN
2040: gms_error_pkg.gms_debug('gms_budget_balance -3','C');
2034: for bug: 1666853 */
2035:
2036: -- re-create GMS_BALANCES record
2037: x_e_stage := '300';
2038: open gms_bal_lock; -- lock gms_balances records for the budget version
2039: IF L_DEBUG = 'Y' THEN
2040: gms_error_pkg.gms_debug('gms_budget_balance -3','C');
2041: END IF;
2042: x_e_stage := '400';
2103: else
2104: retcode := 'F';
2105: end if;
2106: else
2107: --Recreating gms_balances without going thro' FC
2108: x_e_stage := '910';
2109: IF L_DEBUG = 'Y' THEN
2110: gms_error_pkg.gms_debug('gms_budget_balance -9','C');
2111: END IF;
2123: IF L_DEBUG = 'Y' THEN
2124: gms_error_pkg.gms_debug('gms_budget_balance -10','C');
2125: END IF;
2126: update_bc_packet_status(x_packet_id);
2127: -- Update gms_balances using sweeper process
2128: end if;
2129: --Recreating gms_balances without going thro' FC
2130: else
2131: RETCODE := 'S';
2125: END IF;
2126: update_bc_packet_status(x_packet_id);
2127: -- Update gms_balances using sweeper process
2128: end if;
2129: --Recreating gms_balances without going thro' FC
2130: else
2131: RETCODE := 'S';
2132: end if;
2133: x_e_stage := '930';