DBA Data[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;