1: PACKAGE BODY gl_alloc_formulas_pkg AS
2: /* $Header: glimafmb.pls 120.6.12010000.2 2009/07/13 06:23:24 sommukhe ship $ */
3:
4: --
5: -- PRIVATE FUNCTIONS
44: PROCEDURE check_unique(batch_id NUMBER, formula_name VARCHAR2,
45: row_id VARCHAR2) IS
46: CURSOR chk_duplicates is
47: SELECT 'Duplicate'
48: FROM GL_ALLOC_FORMULAS gaf
49: WHERE gaf.allocation_batch_id = batch_id
50: AND gaf.name = formula_name
51: AND ( row_id is null
52: OR gaf.rowid <> row_id);
67: WHEN app_exceptions.application_exception THEN
68: RAISE;
69: WHEN OTHERS THEN
70: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
71: fnd_message.set_token('PROCEDURE', 'gl_alloc_formulas_pkg.check_unique');
72: RAISE;
73: END check_unique;
74:
75:
74:
75:
76: FUNCTION get_unique_id RETURN NUMBER IS
77: CURSOR get_new_id IS
78: SELECT gl_alloc_formulas_s.NEXTVAL
79: FROM dual;
80: new_id number;
81: BEGIN
82: OPEN get_new_id;
87: return(new_id);
88: ELSE
89: CLOSE get_new_id;
90: fnd_message.set_name('SQLGL', 'GL_ERROR_GETTING_UNIQUE_ID');
91: fnd_message.set_token('SEQUENCE', 'GL_ALLOC_FORMULAS_S');
92: app_exception.raise_exception;
93: END IF;
94:
95: EXCEPTION
97: RAISE;
98: WHEN OTHERS THEN
99: fnd_message.set_name('SQLGL', 'GL_UNHANDLED_EXCEPTION');
100: fnd_message.set_token('PROCEDURE',
101: 'gl_alloc_formulas_pkg.get_unique_id');
102: RAISE;
103: END get_unique_id;
104:
105: PROCEDURE delete_rows(batch_id NUMBER) IS
105: PROCEDURE delete_rows(batch_id NUMBER) IS
106: BEGIN
107: gl_alloc_form_lines_pkg.delete_batch(batch_id);
108:
109: DELETE gl_alloc_formulas
110: WHERE allocation_batch_id = batch_id;
111: EXCEPTION
112: WHEN NO_DATA_FOUND THEN
113: null;
130: X_Description VARCHAR2,
131: X_Actual_Flag VARCHAR2,
132: X_Validation_Status VARCHAR2
133: ) IS
134: CURSOR C IS SELECT rowid FROM GL_ALLOC_FORMULAS
135: WHERE allocation_formula_id = X_Allocation_Formula_Id;
136:
137: BEGIN
138:
142: END IF;
143:
144: -- Get formula id if it was not provided
145: IF (x_allocation_formula_id IS NULL) THEN
146: x_allocation_formula_id := gl_alloc_formulas_pkg.get_unique_id;
147: END IF;
148:
149: -- Make sure the user has completed all of the formula
150: -- lines.
165:
166: -- Make sure there isn't a currency conflict
167: gl_alloc_form_lines_pkg.check_target_ledger(X_Allocation_Formula_Id);
168:
169: INSERT INTO GL_ALLOC_FORMULAS(
170: allocation_formula_id,
171: allocation_batch_id,
172: name,
173: run_sequence,
222: X_Validation_Status VARCHAR2
223: ) IS
224: CURSOR C IS
225: SELECT *
226: FROM GL_ALLOC_FORMULAS
227: WHERE rowid = X_Rowid
228: FOR UPDATE of Allocation_Formula_Id NOWAIT;
229: Recinfo C%ROWTYPE;
230: BEGIN
329: -- Make sure there isn't a currency conflict
330: gl_alloc_form_lines_pkg.check_target_ledger(X_Allocation_Formula_Id);
331: END IF;
332:
333: UPDATE GL_ALLOC_FORMULAS
334: SET
335: allocation_formula_id = X_Allocation_Formula_Id,
336: allocation_batch_id = X_Allocation_Batch_Id,
337: name = X_Name,
360: gl_alloc_form_lines_pkg.delete_rows(
361: allocation_formula_id);
362:
363: -- Delete the formula
364: DELETE FROM GL_ALLOC_FORMULAS
365: WHERE rowid = X_Rowid;
366:
367: if (SQL%NOTFOUND) then
368: RAISE NO_DATA_FOUND;
368: RAISE NO_DATA_FOUND;
369: end if;
370: END Delete_Row;
371:
372: END gl_alloc_formulas_pkg;