DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_NOTE_TYPE_PKG

Source


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