DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_RE_THS_PNL_MR_TP_PKG

Source


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