DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_OR_STATUS_PKG

Source


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