[Home] [Help]
PACKAGE BODY: APPS.GL_COA_MAPPINGS_PKG
Source
1 PACKAGE BODY GL_COA_MAPPINGS_PKG as
2 /* $Header: glicoamb.pls 120.4 2005/05/05 01:04:08 kvora ship $ */
3 --
4 -- PRIVATE FUNCTIONS
5 --
6
7 --
8 -- PUBLIC FUNCTIONS
9 --
10
11 --** Added Security_Flag for Definition Access Set enhancement
12 PROCEDURE Insert_Row(X_Rowid IN OUT NOCOPY VARCHAR2,
13 X_Coa_Mapping_Id IN OUT NOCOPY NUMBER,
14 X_To_Coa_Id NUMBER,
15 X_From_Coa_Id NUMBER,
16 X_Name VARCHAR2,
17 X_Last_Update_Date DATE,
18 X_Last_Updated_By NUMBER,
19 X_Creation_Date DATE,
20 X_Created_By NUMBER,
21 X_Last_Update_Login NUMBER,
22 X_Description VARCHAR2,
23 X_Start_Date_Active DATE,
24 X_End_Date_Active DATE,
25 X_Security_Flag VARCHAR2
26 ) IS
27 CURSOR C IS SELECT rowid FROM gl_coa_mappings
28 WHERE coa_mapping_id = X_Coa_Mapping_Id;
29
30 BEGIN
31
32 INSERT INTO gl_coa_mappings(
33 coa_mapping_id,
34 to_coa_id,
35 from_coa_id,
36 name,
37 last_update_date,
38 last_updated_by,
39 creation_date,
40 created_by,
41 last_update_login,
42 description,
43 start_date_active,
44 end_date_active,
45 security_flag
46 ) VALUES (
47 X_Coa_Mapping_Id,
48 X_To_Coa_Id,
49 X_From_Coa_Id,
50 X_Name,
51 X_Last_Update_Date,
52 X_Last_Updated_By,
53 X_Creation_Date,
54 X_Created_By,
55 X_Last_Update_Login,
56 X_Description,
57 X_Start_Date_Active,
58 X_End_Date_Active,
59 X_Security_Flag
60 );
61
62 OPEN C;
63 FETCH C INTO X_Rowid;
64 if (C%NOTFOUND) then
65 CLOSE C;
66 RAISE NO_DATA_FOUND;
67 end if;
68 CLOSE C;
69 END Insert_Row;
70
71 --** Added Security_Flag for Definition Access Set enhancement
72 PROCEDURE Lock_Row(X_Rowid IN OUT NOCOPY VARCHAR2,
73 X_Coa_Mapping_Id IN OUT NOCOPY NUMBER,
74 X_To_Coa_Id NUMBER,
75 X_From_Coa_Id NUMBER,
76 X_Name VARCHAR2,
77 X_Description VARCHAR2,
78 X_Start_Date_Active DATE,
79 X_End_Date_Active DATE,
80 X_Security_Flag VARCHAR2
81 ) IS
82 CURSOR C IS
83 SELECT *
84 FROM gl_coa_mappings
85 WHERE rowid = X_Rowid
86 FOR UPDATE of Coa_Mapping_Id NOWAIT;
87 Recinfo C%ROWTYPE;
88 BEGIN
89 OPEN C;
90 FETCH C INTO Recinfo;
91 if (C%NOTFOUND) then
92 CLOSE C;
93 RAISE NO_DATA_FOUND;
94 end if;
95 CLOSE C;
96 if (
97 ( (Recinfo.coa_mapping_id = X_Coa_Mapping_Id)
98 OR ( (Recinfo.coa_mapping_id IS NULL)
99 AND (X_Coa_Mapping_Id IS NULL)))
100 AND ( (Recinfo.to_coa_id = X_To_Coa_Id)
101 OR ( (Recinfo.to_coa_id IS NULL)
102 AND (X_To_Coa_Id IS NULL)))
103 AND ( (Recinfo.from_coa_id = X_From_Coa_Id)
104 OR ( (Recinfo.from_coa_id IS NULL)
105 AND (X_From_Coa_Id IS NULL)))
106 AND ( (Recinfo.name = X_Name)
107 OR ( (Recinfo.name IS NULL)
108 AND (X_Name IS NULL)))
109 AND ( (Recinfo.description = X_Description)
110 OR ( (Recinfo.description IS NULL)
111 AND (X_Description IS NULL)))
112 AND ( (Recinfo.start_date_active = X_Start_Date_Active)
113 OR ( (Recinfo.start_date_active IS NULL)
114 AND (X_Start_Date_Active IS NULL)))
115 AND ( (Recinfo.end_date_active = X_End_Date_Active)
116 OR ( (Recinfo.end_date_active IS NULL)
117 AND (X_End_Date_Active IS NULL)))
118 AND ( (Recinfo.security_flag = X_Security_Flag)
119 OR ( (Recinfo.security_flag IS NULL)
120 AND (X_Security_Flag IS NULL)))
121 ) then
122 return;
123 else
124 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
125 APP_EXCEPTION.RAISE_EXCEPTION;
126 end if;
127 END Lock_Row;
128
129 --** Added Security_Flag for Definition Access Set enhancement
130 PROCEDURE Update_Row(X_Rowid IN OUT NOCOPY VARCHAR2,
131 X_Coa_Mapping_Id IN OUT NOCOPY NUMBER,
132 X_To_Coa_Id NUMBER,
133 X_From_Coa_Id NUMBER,
134 X_Name VARCHAR2,
135 X_Last_Update_Date DATE,
136 X_Last_Updated_By NUMBER,
137 X_Last_Update_Login NUMBER,
138 X_Description VARCHAR2,
139 X_Start_Date_Active DATE,
140 X_End_Date_Active DATE,
141 X_Security_Flag VARCHAR2
142 ) IS
143 BEGIN
144
145 UPDATE gl_coa_mappings
146 SET
147 coa_mapping_id = X_Coa_Mapping_Id,
148 to_coa_id = X_To_Coa_Id,
149 from_coa_id = X_From_Coa_Id,
150 name = X_Name,
151 last_update_date = X_Last_Update_Date,
152 last_updated_by = X_Last_Updated_By,
153 last_update_login = X_Last_Update_Login,
154 description = X_Description,
155 start_date_active = X_Start_Date_Active,
156 end_date_active = X_End_Date_Active,
157 security_flag = X_Security_Flag
158 WHERE rowid = X_rowid;
159
160 if (SQL%NOTFOUND) then
161 RAISE NO_DATA_FOUND;
162 end if;
163
164 END Update_Row;
165
166 /* Deletion is not allowed for chart of accounts mappings */
167
168 PROCEDURE Delete_Row(X_Rowid VARCHAR2, X_Coa_Mapping_Id NUMBER) IS
169 BEGIN
170 null;
171 /*
172 -- pulled from pre_delete
173 DELETE FROM GL_CONS_FLEXFIELD_MAP
174 WHERE COA_MAPPING_ID = X_Coa_Mapping_Id;
175
176 DELETE FROM GL_CONS_SEGMENT_MAP
177 WHERE COA_MAPPING_ID = X_Coa_Mapping_Id;
178
179 DELETE FROM gl_coa_mappings
180 WHERE rowid = X_Rowid;
181
182 if (SQL%NOTFOUND) then
183 RAISE NO_DATA_FOUND;
184 end if;
185
186 */
187 END Delete_Row;
188
189 PROCEDURE Check_Unique_Name(X_Rowid VARCHAR2,
190 X_Name VARCHAR2) IS
191 CURSOR check_dups IS
192 SELECT 1
193 FROM GL_COA_MAPPINGS map
194 WHERE map.name = X_Name
195 AND ( X_Rowid is NULL
196 OR map.rowid <> X_Rowid);
197
198 dummy NUMBER;
199
200 BEGIN
201 OPEN check_dups;
202 FETCH check_dups INTO dummy;
203
204 IF check_dups%FOUND THEN
205 CLOSE check_dups;
206 fnd_message.set_name('SQLGL','GL_DUP_COA_MAPPING_NAME');
207 app_exception.raise_exception;
208 END IF;
209
210 CLOSE check_dups;
211 END Check_Unique_Name;
212
213 PROCEDURE Check_Unique(X_Rowid VARCHAR2,
214 X_Coa_Mapping_Id NUMBER) IS
215 CURSOR C2 IS
216 SELECT 1
217 FROM GL_COA_MAPPINGS map
218 WHERE map.coa_mapping_id = X_Coa_Mapping_Id
219 AND ( X_Rowid is NULL
220 OR map.rowid <> X_Rowid);
221
222 dummy NUMBER;
223
224 BEGIN
225 OPEN C2;
226 FETCH C2 INTO dummy;
227
228 IF C2%FOUND THEN
229 CLOSE C2;
230 fnd_message.set_name('SQLGL','GL_DUP_UNIQUE_ID');
231 fnd_message.set_token('TAB_S','GL_COA_MAPPINGS_S');
232 app_exception.raise_exception;
233 END IF;
234
235 CLOSE C2;
236 END Check_Unique;
237
238 PROCEDURE Check_Unmapped_Sub_Segments(X_From_Coa_Id NUMBER,
239 X_Coa_Mapping_Id NUMBER,
240 X_Unmapped_Segment_Found IN OUT NOCOPY VARCHAR2) IS
241 CURSOR C4 IS
242 SELECT 'Y'
243 FROM DUAL
244 WHERE EXISTS
245 ( SELECT flex.application_column_name
246 FROM FND_ID_FLEX_SEGMENTS flex
247 WHERE flex.application_id = 101
248 AND flex.id_flex_code = 'GL#'
249 AND flex.enabled_flag = 'Y'
250 AND flex.id_flex_num = X_From_Coa_Id
251 MINUS
252 SELECT map.from_application_column_name
253 FROM GL_CONS_SEGMENT_MAP map
254 WHERE map.coa_mapping_id = X_Coa_Mapping_Id
255 );
256
257 BEGIN
258 OPEN C4;
259 FETCH C4 INTO X_Unmapped_Segment_Found;
260
261 IF C4%FOUND THEN
262 X_Unmapped_Segment_Found := 'Y';
263 ELSE
264 X_Unmapped_Segment_Found := 'N';
265 END IF;
266
267 CLOSE C4;
268 END Check_Unmapped_Sub_Segments;
269
270 END GL_COA_MAPPINGS_PKG;