DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AS_SPCL_CONS_OUT_PKG

Source


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