[Home] [Help]
PACKAGE BODY: APPS.IGS_GE_NOTE_PKG
Source
1 package body IGS_GE_NOTE_PKG as
2 /* $Header: IGSMI03B.pls 120.1 2006/01/25 09:19:00 skpandey noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_GE_NOTE%RowType;
6 new_references IGS_GE_NOTE%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_reference_number IN NUMBER DEFAULT NULL,
12 x_s_note_format_type IN VARCHAR2 DEFAULT NULL,
13 x_note_text IN VARCHAR2 DEFAULT NULL,
14 x_creation_date IN DATE DEFAULT NULL,
15 x_created_by IN NUMBER DEFAULT NULL,
16 x_last_update_date IN DATE DEFAULT NULL,
17 x_last_updated_by IN NUMBER DEFAULT NULL,
18 x_last_update_login IN NUMBER DEFAULT NULL
19 ) as
20
21 CURSOR cur_old_ref_values IS
22 SELECT *
23 FROM IGS_GE_NOTE
24 WHERE rowid = x_rowid;
25
26 BEGIN
27
28 l_rowid := x_rowid;
29
30 -- Code for setting the Old and New Reference Values.
31 -- Populate Old Values.
32 Open cur_old_ref_values;
33 Fetch cur_old_ref_values INTO old_references;
34 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
35 Close cur_old_ref_values;
36 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
37 IGS_GE_MSG_STACK.ADD;
38 App_Exception.Raise_Exception;
39 Return;
40 END IF;
41 Close cur_old_ref_values;
42
43 -- Populate New Values.
44 new_references.reference_number := x_reference_number;
45 new_references.s_note_format_type := x_s_note_format_type;
46 new_references.note_text := x_note_text;
47 IF (p_action = 'UPDATE') THEN
48 new_references.creation_date := old_references.creation_date;
49 new_references.created_by := old_references.created_by;
50 ELSE
51 new_references.creation_date := x_creation_date;
52 new_references.created_by := x_created_by;
53 END IF;
54 new_references.last_update_date := x_last_update_date;
55 new_references.last_updated_by := x_last_updated_by;
56 new_references.last_update_login := x_last_update_login;
57
58 END Set_Column_Values;
59
60 PROCEDURE Check_Constraints(
61 Column_Name IN VARCHAR2 DEFAULT NULL,
62 Column_Value IN VARCHAR2 DEFAULT NULL
63 ) as
64 BEGIN
65 IF column_name is null then
66 NULL;
67 ELSIF upper(Column_name) = 'S_NOTE_FORMAT_TYPE' then
68 new_references.s_note_format_type := UPPER(new_references.s_note_format_type);
69 END IF;
70 IF upper(Column_name) = 'S_NOTE_FORMAT_TYPE' OR column_name is null then
71 IF new_references.s_note_format_type <> UPPER(new_references.s_note_format_type) then
72 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
73 IGS_GE_MSG_STACK.ADD;
74 App_Exception.Raise_Exception;
75 END IF;
76 END IF;
77
78 END Check_Constraints;
79
80
81 PROCEDURE Check_Parent_Existance as
82 BEGIN
83
84 IF (((old_references.s_note_format_type = new_references.s_note_format_type)) OR
85 ((new_references.s_note_format_type IS NULL))) THEN
86 NULL;
87 ELSE
88 IF NOT IGS_LOOKUPS_view_Pkg.Get_PK_For_Validation (
89 'NOTE_FORMAT_TYPE',
90 new_references.s_note_format_type
91 ) THEN
92 Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
93 IGS_GE_MSG_STACK.ADD;
94 App_Exception.Raise_Exception;
95 END IF;
96
97 END IF;
98
99 END Check_Parent_Existance;
100
101 PROCEDURE Check_Child_Existance as
102 BEGIN
103
104 IGS_PS_OFR_NOTE_PKG.GET_FK_IGS_GE_NOTE (
105 old_references.reference_number
106 );
107
108 IGS_PS_OFR_OPT_NOTE_PKG.GET_FK_IGS_GE_NOTE (
109 old_references.reference_number
110 );
111
112 IGS_PS_OFR_PAT_NOTE_PKG.GET_FK_IGS_GE_NOTE (
113 old_references.reference_number
114 );
115
116 IGS_PS_VER_NOTE_PKG.GET_FK_IGS_GE_NOTE (
117 old_references.reference_number
118 );
119
120 IGS_GR_CRMN_NOTE_PKG.GET_FK_IGS_GE_NOTE (
121 old_references.reference_number
122 );
123
124 IGS_PE_PERS_NOTE_PKG.GET_FK_IGS_GE_NOTE (
125 old_references.reference_number
126 );
127
128 IGS_AS_SC_ATMPT_NOTE_PKG.GET_FK_IGS_GE_NOTE (
129 old_references.reference_number
130 );
131
132 IGS_TR_GROUP_NOTE_PKG.GET_FK_IGS_GE_NOTE (
133 old_references.reference_number
134 );
135
136 IGS_TR_ITEM_NOTE_PKG.GET_FK_IGS_GE_NOTE (
137 old_references.reference_number
138 );
139
140 IGS_TR_STEP_NOTE_PKG.GET_FK_IGS_GE_NOTE (
141 old_references.reference_number
142 );
143
144 IGS_TR_TYP_STEP_NOTE_PKG.GET_FK_IGS_GE_NOTE (
145 old_references.reference_number
146 );
147
148 IGS_PS_UNIT_OFR_NOTE_PKG.GET_FK_IGS_GE_NOTE (
149 old_references.reference_number
150 );
151
152 IGS_PS_UNT_OFR_OPT_N_PKG.GET_FK_IGS_GE_NOTE (
153 old_references.reference_number
154 );
155
156 IGS_PS_UNT_OFR_PAT_N_PKG.GET_FK_IGS_GE_NOTE (
157 old_references.reference_number
158 );
159
160 IGS_EN_UNIT_SET_NOTE_PKG.GET_FK_IGS_GE_NOTE (
161 old_references.reference_number
162 );
163
164 IGS_PS_UNIT_VER_NOTE_PKG.GET_FK_IGS_GE_NOTE (
165 old_references.reference_number
166 );
167
168 IGS_FI_P_SA_NOTES_PKG.GET_FK_IGS_GE_NOTE (
169 old_references.reference_number
170 );
171
172 END Check_Child_Existance;
173
174 FUNCTION GET_PK_FOR_VALIDATION (
175 x_reference_number IN NUMBER
176 ) RETURN BOOLEAN as
177
178 CURSOR cur_rowid IS
179 SELECT rowid
180 FROM IGS_GE_NOTE
181 WHERE reference_number = x_reference_number
182 FOR UPDATE NOWAIT;
183
184 lv_rowid cur_rowid%RowType;
185
186 BEGIN
187
188 Open cur_rowid;
189 Fetch cur_rowid INTO lv_rowid;
190 IF (cur_rowid%FOUND) THEN
191 Close cur_rowid;
192 Return(TRUE);
193 ELSE
194 Close cur_rowid;
195 Return(FALSE);
196 END IF;
197
198 END Get_PK_For_Validation;
199
200 --skpandey; Bug#3686538: Stubbed as a part of query optimization
201 PROCEDURE GET_FK_IGS_LOOKUPS_VIEW (
202 x_s_note_format_type IN VARCHAR2
203 ) as
204 BEGIN
205 NULL;
206 END GET_FK_IGS_LOOKUPS_VIEW;
207
208 PROCEDURE Before_DML (
209 p_action IN VARCHAR2,
210 x_rowid IN VARCHAR2 DEFAULT NULL,
211 x_reference_number IN NUMBER DEFAULT NULL,
212 x_s_note_format_type IN VARCHAR2 DEFAULT NULL,
213 x_note_text IN VARCHAR2 DEFAULT NULL,
214 x_creation_date IN DATE DEFAULT NULL,
215 x_created_by IN NUMBER DEFAULT NULL,
216 x_last_update_date IN DATE DEFAULT NULL,
217 x_last_updated_by IN NUMBER DEFAULT NULL,
218 x_last_update_login IN NUMBER DEFAULT NULL
219 ) as
220 BEGIN
221
222 Set_Column_Values (
223 p_action,
224 x_rowid,
225 x_reference_number,
226 x_s_note_format_type,
227 x_note_text,
228 x_creation_date,
229 x_created_by,
230 x_last_update_date,
231 x_last_updated_by,
232 x_last_update_login
233 );
234
235 IF (p_action = 'INSERT') THEN
236 IF GET_PK_FOR_VALIDATION (new_references.reference_number) THEN
237 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
238 IGS_GE_MSG_STACK.ADD;
239 App_Exception.Raise_Exception;
240 END IF;
241 Check_Constraints;
242 -- Call all the procedures related to Before Insert.
243 Check_Parent_Existance;
244 ELSIF (p_action = 'UPDATE') THEN
245 -- Call all the procedures related to Before Update.
246 Check_Constraints;
247 Check_Parent_Existance;
248 ELSIF (p_action = 'DELETE') THEN
249 -- Call all the procedures related to Before Delete.
250 Check_Child_Existance;
251 ELSIF (p_action = 'VALIDATE_INSERT') THEN
252 IF GET_PK_FOR_VALIDATION (new_references.reference_number) THEN
253 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
254 IGS_GE_MSG_STACK.ADD;
255 App_Exception.Raise_Exception;
256 END IF;
257 Check_Constraints;
258 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
259 Check_Constraints;
260 ELSIF (p_action = 'VALIDATE_DELETE') THEN
261 Check_Child_Existance;
262 END IF;
263
264 END Before_DML;
265
266 PROCEDURE After_DML (
267 p_action IN VARCHAR2,
268 x_rowid IN VARCHAR2
269 ) as
270 BEGIN
271
272 l_rowid := x_rowid;
273
274 IF (p_action = 'INSERT') THEN
275 -- Call all the procedures related to After Insert.
276 Null;
277 ELSIF (p_action = 'UPDATE') THEN
278 -- Call all the procedures related to After Update.
279 Null;
280 ELSIF (p_action = 'DELETE') THEN
281 -- Call all the procedures related to After Delete.
282 Null;
283 END IF;
284
285 END After_DML;
286
287 procedure INSERT_ROW (
288 X_ROWID in out NOCOPY VARCHAR2,
289 X_REFERENCE_NUMBER in NUMBER,
290 X_S_NOTE_FORMAT_TYPE in VARCHAR2,
291 X_NOTE_TEXT in VARCHAR2,
292 X_MODE in VARCHAR2 default 'R'
293 ) as
294 cursor C is select ROWID from IGS_GE_NOTE
295 where REFERENCE_NUMBER = X_REFERENCE_NUMBER;
296 X_LAST_UPDATE_DATE DATE;
297 X_LAST_UPDATED_BY NUMBER;
298 X_LAST_UPDATE_LOGIN NUMBER;
299 begin
300 X_LAST_UPDATE_DATE := SYSDATE;
301 if(X_MODE = 'I') then
302 X_LAST_UPDATED_BY := 1;
303 X_LAST_UPDATE_LOGIN := 0;
304 elsif (X_MODE = 'R') then
305 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
306 if X_LAST_UPDATED_BY is NULL then
307 X_LAST_UPDATED_BY := -1;
308 end if;
309 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
310 if X_LAST_UPDATE_LOGIN is NULL then
311 X_LAST_UPDATE_LOGIN := -1;
312 end if;
313 else
314 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
315 IGS_GE_MSG_STACK.ADD;
316 app_exception.raise_exception;
317 end if;
318 Before_DML (
319 p_action => 'INSERT',
320 x_rowid => X_ROWID,
321 x_reference_number => X_REFERENCE_NUMBER,
322 x_s_note_format_type => X_S_NOTE_FORMAT_TYPE,
323 x_note_text => X_NOTE_TEXT,
324 x_created_by => X_LAST_UPDATED_BY,
325 x_creation_date => X_LAST_UPDATE_DATE,
326 x_last_updated_by => X_LAST_UPDATED_BY,
327 x_last_update_date => X_LAST_UPDATE_DATE,
328 x_last_update_login => X_LAST_UPDATE_LOGIN
329 );
330
331 insert into IGS_GE_NOTE (
332 REFERENCE_NUMBER,
333 S_NOTE_FORMAT_TYPE,
334 NOTE_TEXT,
335 CREATION_DATE,
336 CREATED_BY,
337 LAST_UPDATE_DATE,
338 LAST_UPDATED_BY,
339 LAST_UPDATE_LOGIN
340 ) values (
341 NEW_REFERENCES.REFERENCE_NUMBER,
342 NEW_REFERENCES.S_NOTE_FORMAT_TYPE,
343 NEW_REFERENCES.NOTE_TEXT,
344 X_LAST_UPDATE_DATE,
345 X_LAST_UPDATED_BY,
346 X_LAST_UPDATE_DATE,
347 X_LAST_UPDATED_BY,
348 X_LAST_UPDATE_LOGIN
349 );
350
351 open c;
352 fetch c into X_ROWID;
353 if (c%notfound) then
354 close c;
355 raise no_data_found;
356 end if;
357 close c;
358 After_DML (
359 p_action => 'INSERT',
360 x_rowid => X_ROWID
361 );
362 end INSERT_ROW;
363
364 procedure LOCK_ROW (
365 X_ROWID in VARCHAR2,
366 X_REFERENCE_NUMBER in NUMBER,
367 X_S_NOTE_FORMAT_TYPE in VARCHAR2,
368 X_NOTE_TEXT in VARCHAR2
369 ) as
370 cursor c1 is select
371 S_NOTE_FORMAT_TYPE,
372 NOTE_TEXT
373 from IGS_GE_NOTE
374 where ROWID = X_ROWID
375 for update nowait;
376 tlinfo c1%rowtype;
377
378 begin
379 open c1;
380 fetch c1 into tlinfo;
381 if (c1%notfound) then
382 close c1;
383 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
384 IGS_GE_MSG_STACK.ADD;
385 app_exception.raise_exception;
386 return;
387 end if;
388 close c1;
389
390 if ( (tlinfo.S_NOTE_FORMAT_TYPE = X_S_NOTE_FORMAT_TYPE)
391
392 AND ((tlinfo.NOTE_TEXT = X_NOTE_TEXT)
393 OR ((tlinfo.NOTE_TEXT is null)
394 AND (X_NOTE_TEXT is null)))
395 ) then
396 null;
397 else
398 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
399 IGS_GE_MSG_STACK.ADD;
400 app_exception.raise_exception;
401 end if;
402 return;
403 end LOCK_ROW;
404
405 procedure UPDATE_ROW (
406 X_ROWID in VARCHAR2,
407 X_REFERENCE_NUMBER in NUMBER,
408 X_S_NOTE_FORMAT_TYPE in VARCHAR2,
409 X_NOTE_TEXT in VARCHAR2,
410 X_MODE in VARCHAR2 default 'R'
411 ) as
412 X_LAST_UPDATE_DATE DATE;
413 X_LAST_UPDATED_BY NUMBER;
414 X_LAST_UPDATE_LOGIN NUMBER;
415 begin
416 X_LAST_UPDATE_DATE := SYSDATE;
417 if(X_MODE = 'I') then
418 X_LAST_UPDATED_BY := 1;
419 X_LAST_UPDATE_LOGIN := 0;
420 elsif (X_MODE = 'R') then
421 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
422 if X_LAST_UPDATED_BY is NULL then
423 X_LAST_UPDATED_BY := -1;
424 end if;
425 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
426 if X_LAST_UPDATE_LOGIN is NULL then
427 X_LAST_UPDATE_LOGIN := -1;
428 end if;
429 else
430 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
431 IGS_GE_MSG_STACK.ADD;
432 app_exception.raise_exception;
433 end if;
434
435 Before_DML (
436 p_action => 'UPDATE',
437 x_rowid => X_ROWID,
438 x_reference_number => X_REFERENCE_NUMBER,
439 x_s_note_format_type => X_S_NOTE_FORMAT_TYPE,
440 x_note_text => X_NOTE_TEXT,
441 x_created_by => X_LAST_UPDATED_BY,
442 x_creation_date => X_LAST_UPDATE_DATE,
443 x_last_updated_by => X_LAST_UPDATED_BY,
444 x_last_update_date => X_LAST_UPDATE_DATE,
445 x_last_update_login => X_LAST_UPDATE_LOGIN
446 );
447 update IGS_GE_NOTE set
448 S_NOTE_FORMAT_TYPE = NEW_REFERENCES.S_NOTE_FORMAT_TYPE,
449 NOTE_TEXT = NEW_REFERENCES.NOTE_TEXT,
450 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
451 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
452 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
453 where ROWID = X_ROWID
454 ;
455 if (sql%notfound) then
456 raise no_data_found;
457 end if;
458 After_DML (
459 p_action => 'UPDATE',
460 x_rowid => X_ROWID
461 );
462 end UPDATE_ROW;
463
464 procedure ADD_ROW (
465 X_ROWID in out NOCOPY VARCHAR2,
466 X_REFERENCE_NUMBER in NUMBER,
467 X_S_NOTE_FORMAT_TYPE in VARCHAR2,
468 X_NOTE_TEXT in VARCHAR2,
469 X_MODE in VARCHAR2 default 'R'
470 ) as
471 cursor c1 is select rowid from IGS_GE_NOTE
472 where REFERENCE_NUMBER = X_REFERENCE_NUMBER
473 ;
474
475 begin
476 open c1;
477 fetch c1 into X_ROWID;
478 if (c1%notfound) then
479 close c1;
480 INSERT_ROW (
481 X_ROWID,
482 X_REFERENCE_NUMBER,
483 X_S_NOTE_FORMAT_TYPE,
484 X_NOTE_TEXT,
485 X_MODE);
486 return;
487 end if;
488 close c1;
489 UPDATE_ROW (
490 X_ROWID,
491 X_REFERENCE_NUMBER,
492 X_S_NOTE_FORMAT_TYPE,
493 X_NOTE_TEXT,
494 X_MODE);
495 end ADD_ROW;
496
497 procedure DELETE_ROW (
498 X_ROWID in VARCHAR2
499 ) as
500 begin
501 Before_DML (
502 p_action => 'DELETE',
503 x_rowid => X_ROWID
504 );
505 delete from IGS_GE_NOTE
506 where ROWID = X_ROWID;
507 if (sql%notfound) then
508 raise no_data_found;
509 end if;
510 After_DML (
511 p_action => 'DELETE',
512 x_rowid => X_ROWID
513 );
514
515 end DELETE_ROW;
516
517 end IGS_GE_NOTE_PKG;