[Home] [Help]
PACKAGE BODY: APPS.IGS_FI_ACC_PKG
Source
1 package body IGS_FI_ACC_PKG AS
2 /* $Header: IGSSI02B.pls 115.20 2003/02/17 05:22:31 pathipat ship $ */
3 l_rowid VARCHAR2(25);
4 old_references IGS_FI_ACC_ALL%RowType;
5 new_references IGS_FI_ACC_ALL%RowType;
6
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 ,
10 x_account_cd IN VARCHAR2 ,
11 x_description IN VARCHAR2 ,
12 x_closed_ind IN VARCHAR2 ,
13 x_org_id IN NUMBER ,
14 x_creation_date IN DATE ,
15 x_created_by IN NUMBER ,
16 x_last_update_date IN DATE ,
17 x_last_updated_by IN NUMBER ,
18 x_last_update_login IN NUMBER ) AS
19 CURSOR cur_old_ref_values IS
20 SELECT *
21 FROM IGS_FI_ACC_ALL
22 WHERE rowid = x_rowid;
23 BEGIN
24 l_rowid := x_rowid;
25 -- Code for setting the Old and New Reference Values.
26 -- Populate Old Values.
27 Open cur_old_ref_values;
28 Fetch cur_old_ref_values INTO old_references;
29 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
30 Close cur_old_ref_values;
31 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
32 IGS_GE_MSG_STACK.ADD;
33 App_Exception.Raise_Exception;
34 Return;
35 END IF;
36 Close cur_old_ref_values;
37 -- Populate New Values.
38 new_references.account_cd := x_account_cd;
39 new_references.description := x_description;
40 new_references.closed_ind := x_closed_ind;
41 IF (p_action = 'UPDATE') THEN
42 new_references.creation_date := old_references.creation_date;
43 new_references.created_by := old_references.created_by;
44 ELSE
45 new_references.creation_date := x_creation_date;
46 new_references.created_by := x_created_by;
47 END IF;
48 new_references.org_id := x_org_id;
49 new_references.last_update_date := x_last_update_date;
50 new_references.last_updated_by := x_last_updated_by;
51 new_references.last_update_login := x_last_update_login;
52 END Set_Column_Values;
53
54 PROCEDURE Check_Constraints (
55 Column_Name IN VARCHAR2 ,
56 Column_Value IN VARCHAR2
57 ) AS
58 /*----------------------------------------------------------------------------
59 || Created By :
60 || Created On :
61 || Purpose :
62 || Known limitations, enhancements or remarks :
63 || Change History :
64 || Who When What
65 || (reverse chronological order - newest change first)
66 || vvutukur 12-May-2002 removed upper check constraint on account_cd column.bug#2344826.
67 ----------------------------------------------------------------------------*/
68 BEGIN
69
70 IF column_name is null then
71 NULL;
72 ELSIF upper(Column_name) = 'CLOSED_IND' then
73 new_references.closed_ind := column_value;
74 END IF;
75
76 IF upper(column_name) = 'CLOSED_IND' OR
77 column_name is null Then
78 IF (new_references.closed_ind not in ('Y', 'N')) Then
79 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
80 IGS_GE_MSG_STACK.ADD;
81 App_Exception.Raise_Exception;
82 END IF;
83 END IF;
84
85 END Check_Constraints;
86
87
88 FUNCTION Get_PK_For_Validation (
89 x_account_cd IN VARCHAR2
90 ) Return Boolean AS
91 /*--------------------------------------------------------------------
92 || Change History :
93 || Who When What
94 || (reverse chronological order - newest change first)
95 || pathipat 17-Feb-2003 Enh 2747325 - Locking Issues build
96 || Removed FOR UPDATE NOWAIT clause in cur_rowid
97 ----------------------------------------------------------------------*/
98
99 CURSOR cur_rowid IS
100 SELECT rowid
101 FROM IGS_FI_ACC_ALL
102 WHERE account_cd = x_account_cd;
103
104 lv_rowid cur_rowid%RowType;
105
106 BEGIN
107 Open cur_rowid;
108 Fetch cur_rowid INTO lv_rowid;
109 IF (cur_rowid%FOUND) THEN
110 Close cur_rowid;
111 Return (TRUE);
112 ELSE
113 Close cur_rowid;
114 Return (FALSE);
115 END IF;
116 END Get_PK_For_Validation;
117
118 PROCEDURE Before_DML (
119 p_action IN VARCHAR2,
120 x_rowid IN VARCHAR2 ,
121 x_account_cd IN VARCHAR2 ,
122 x_description IN VARCHAR2 ,
123 x_closed_ind IN VARCHAR2 ,
124 x_org_id IN NUMBER ,
125 x_creation_date IN DATE ,
126 x_created_by IN NUMBER ,
127 x_last_update_date IN DATE ,
128 x_last_updated_by IN NUMBER ,
129 x_last_update_login IN NUMBER
130 ) AS
131 /*--------------------------------------------------------------------
132 || Change History :
133 || Who When What
134 || (reverse chronological order - newest change first)
135 || pathipat 17-Feb-2003 Enh 2747325 - Locking Issues build
136 || Removed code for p_action = DELETE and
137 || VALIDATE_DELETE
138 ----------------------------------------------------------------------*/
139 BEGIN
140 Set_Column_Values (
141 p_action,
142 x_rowid,
143 x_account_cd,
144 x_description,
145 x_closed_ind,
146 x_org_id,
147 x_creation_date,
148 x_created_by,
149 x_last_update_date,
150 x_last_updated_by,
151 x_last_update_login
152 );
153 IF (p_action = 'INSERT') THEN
154 -- Call all the procedures related to Before Insert.
155 IF Get_PK_For_Validation (
156 new_references.account_cd
157 ) THEN
158 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
159 IGS_GE_MSG_STACK.ADD;
160 App_Exception.Raise_Exception;
161 END IF;
162 Check_Constraints;
163
164 ELSIF (p_action = 'UPDATE') THEN
165 -- Call all the procedures related to Before Update.
166 Check_Constraints;
167 ELSIF (p_action = 'VALIDATE_INSERT') THEN
168 IF Get_PK_For_Validation (
169 new_references.account_cd
170 ) THEN
171 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
172 IGS_GE_MSG_STACK.ADD;
173 App_Exception.Raise_Exception;
174 END IF;
175 Check_Constraints;
176 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
177 Check_Constraints;
178 END IF;
179 END Before_DML;
180
181 PROCEDURE INSERT_ROW (
182 X_ROWID in out NOCOPY VARCHAR2,
183 X_ACCOUNT_CD in VARCHAR2,
184 X_DESCRIPTION in VARCHAR2,
185 X_CLOSED_IND in VARCHAR2,
186 X_ORG_ID in NUMBER ,
187 X_MODE in VARCHAR2
188 ) AS
189 cursor C is select ROWID from IGS_FI_ACC_ALL
190 where ACCOUNT_CD = X_ACCOUNT_CD;
191 X_LAST_UPDATE_DATE DATE;
192 X_LAST_UPDATED_BY NUMBER;
193 X_LAST_UPDATE_LOGIN NUMBER;
194 begin
195 X_LAST_UPDATE_DATE := SYSDATE;
196 if(X_MODE = 'I') then
197 X_LAST_UPDATED_BY := 1;
198 X_LAST_UPDATE_LOGIN := 0;
199 elsif (X_MODE = 'R') then
200 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
201 if X_LAST_UPDATED_BY is NULL then
202 X_LAST_UPDATED_BY := -1;
203 end if;
204 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
205 if X_LAST_UPDATE_LOGIN is NULL then
206 X_LAST_UPDATE_LOGIN := -1;
207 end if;
208 else
209 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
210 IGS_GE_MSG_STACK.ADD;
211 app_exception.raise_exception;
212 end if;
213 Before_DML (
214 p_action => 'INSERT',
215 x_rowid => X_ROWID,
216 x_account_cd => X_ACCOUNT_CD,
217 x_description => X_DESCRIPTION,
218 x_closed_ind => X_CLOSED_IND,
219 X_org_id => igs_ge_gen_003.get_org_id,
220 x_creation_date => X_LAST_UPDATE_DATE,
221 x_created_by => X_LAST_UPDATED_BY,
222 x_last_update_date => X_LAST_UPDATE_DATE,
223 x_last_updated_by => X_LAST_UPDATED_BY,
224 x_last_update_login => X_LAST_UPDATE_LOGIN
225 );
226 insert into IGS_FI_ACC_ALL (
227 ACCOUNT_CD,
228 DESCRIPTION,
229 CLOSED_IND,
230 ORG_ID,
231 CREATION_DATE,
232 CREATED_BY,
233 LAST_UPDATE_DATE,
234 LAST_UPDATED_BY,
235 LAST_UPDATE_LOGIN
236 ) values (
237 NEW_REFERENCES.ACCOUNT_CD,
238 NEW_REFERENCES.DESCRIPTION,
239 NEW_REFERENCES.CLOSED_IND,
240 NEW_REFERENCES.ORG_ID,
241 X_LAST_UPDATE_DATE,
242 X_LAST_UPDATED_BY,
243 X_LAST_UPDATE_DATE,
244 X_LAST_UPDATED_BY,
245 X_LAST_UPDATE_LOGIN
246 );
247 open c;
248 fetch c into X_ROWID;
249 if (c%notfound) then
250 close c;
251 raise no_data_found;
252 end if;
253 CLOSE c;
254 END INSERT_ROW;
255
256 PROCEDURE LOCK_ROW (
257 X_ROWID in VARCHAR2,
258 X_ACCOUNT_CD in VARCHAR2,
259 X_DESCRIPTION in VARCHAR2,
260 X_CLOSED_IND in VARCHAR2 -- this was not there before.
261 ) AS
262 cursor c1 is select
263 DESCRIPTION,
264 CLOSED_IND
265 from IGS_FI_ACC_ALL
266 where ROWID = X_ROWID
267 for update nowait;
268 tlinfo c1%rowtype;
269 BEGIN
270 open c1;
271 fetch c1 into tlinfo;
272 if (c1%notfound) then
273 close c1;
274 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
275 IGS_GE_MSG_STACK.ADD;
276 app_exception.raise_exception;
277 return;
278 end if;
279 close c1;
280 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
281 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
282 )
283 then
284 null;
285 else
286 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
287 IGS_GE_MSG_STACK.ADD;
288 app_exception.raise_exception;
289 end if;
290 RETURN;
291 END LOCK_ROW;
292
293 PROCEDURE UPDATE_ROW (
294 X_ROWID in VARCHAR2,
295 X_ACCOUNT_CD in VARCHAR2,
296 X_DESCRIPTION in VARCHAR2,
297 X_CLOSED_IND in VARCHAR2,
298 X_MODE in VARCHAR2
299 ) AS
300 X_LAST_UPDATE_DATE DATE;
301 X_LAST_UPDATED_BY NUMBER;
302 X_LAST_UPDATE_LOGIN NUMBER;
303 begin
304 X_LAST_UPDATE_DATE := SYSDATE;
305 if(X_MODE = 'I') then
306 X_LAST_UPDATED_BY := 1;
307 X_LAST_UPDATE_LOGIN := 0;
308 elsif (X_MODE = 'R') then
309 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
310 if X_LAST_UPDATED_BY is NULL then
311 X_LAST_UPDATED_BY := -1;
312 end if;
313 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
314 if X_LAST_UPDATE_LOGIN is NULL then
315 X_LAST_UPDATE_LOGIN := -1;
316 end if;
317 else
318 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
319 IGS_GE_MSG_STACK.ADD;
320 app_exception.raise_exception;
321 end if;
322 Before_DML (
323 p_action => 'UPDATE',
324 x_rowid => X_ROWID,
325 x_account_cd => X_ACCOUNT_CD,
326 x_description => X_DESCRIPTION,
327 x_closed_ind => X_CLOSED_IND,
328 x_creation_date => X_LAST_UPDATE_DATE,
329 x_created_by => X_LAST_UPDATED_BY,
330 x_last_update_date => X_LAST_UPDATE_DATE,
331 x_last_updated_by => X_LAST_UPDATED_BY,
332 x_last_update_login => X_LAST_UPDATE_LOGIN
333 );
334 update IGS_FI_ACC_ALL set
335 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
336 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
337 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
338 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
339 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
340 where ROWID=X_ROWID
341 ;
342 if (sql%notfound) then
343 raise no_data_found;
344 end if;
345 END UPDATE_ROW;
346
347 PROCEDURE ADD_ROW (
348 X_ROWID in out NOCOPY VARCHAR2,
349 X_ACCOUNT_CD in VARCHAR2,
350 X_DESCRIPTION in VARCHAR2,
351 X_CLOSED_IND in VARCHAR2,
352 X_ORG_ID in NUMBER ,
353 X_MODE in VARCHAR2
354 ) AS
355 cursor c1 is select rowid from IGS_FI_ACC_ALL
356 where ACCOUNT_CD = X_ACCOUNT_CD
357 ;
358 begin
359 open c1;
360 fetch c1 into X_ROWID;
361 if (c1%notfound) then
362 close c1;
363 INSERT_ROW (
364 X_ROWID,
365 X_ACCOUNT_CD,
366 X_DESCRIPTION,
367 X_CLOSED_IND,
368 X_ORG_ID,
369 X_MODE
370 );
371 return;
372 end if;
373 close c1;
374 UPDATE_ROW (
375 X_ROWID,
376 X_ACCOUNT_CD,
377 X_DESCRIPTION,
378 X_CLOSED_IND,
379 X_MODE
380 );
381 END ADD_ROW;
382
383 END IGS_FI_ACC_PKG;