DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_FI_ENCMB_TYPE_PKG

Source


1 package body IGS_FI_ENCMB_TYPE_PKG AS
2 /* $Header: IGSSI17B.pls 115.13 2003/02/19 05:46:10 adhawan ship $ */
3 
4 
5 /*****************************
6 Removed call to    IGS_FI_FEE_ENCMB_PKG.GET_FK_IGS_FI_ENCMB_TYPE as table IGS_FI_FEE_ENCMB is obseleted as part of bug 2126091 -sykrishn -30112001
7 ****************************/
8   l_rowid VARCHAR2(25);
9   old_references IGS_FI_ENCMB_TYPE_ALL%RowType;
10   new_references IGS_FI_ENCMB_TYPE_ALL%RowType;
11   PROCEDURE Set_Column_Values (
12     p_action IN VARCHAR2,
13     x_rowid IN VARCHAR2 DEFAULT NULL,
14     x_encumbrance_type IN VARCHAR2 DEFAULT NULL,
15     x_description IN VARCHAR2 DEFAULT NULL,
16     x_s_encumbrance_cat IN VARCHAR2 DEFAULT NULL,
17     x_closed_ind IN VARCHAR2 DEFAULT NULL,
18     x_comments IN VARCHAR2 DEFAULT NULL,
19     x_org_id IN NUMBER DEFAULT NULL,
20     x_creation_date IN DATE DEFAULT NULL,
21     x_created_by IN NUMBER DEFAULT NULL,
22     x_last_update_date IN DATE DEFAULT NULL,
23     x_last_updated_by IN NUMBER DEFAULT NULL,
24     x_last_update_login IN NUMBER DEFAULT NULL
25   ) AS
26     CURSOR cur_old_ref_values IS
27       SELECT   *
28       FROM     IGS_FI_ENCMB_TYPE_ALL
29       WHERE    rowid = x_rowid;
30   BEGIN
31     l_rowid := x_rowid;
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       Close cur_old_ref_values;
38       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
39        IGS_GE_MSG_STACK.ADD;
40       App_Exception.Raise_Exception;
41       Return;
42     END IF;
43     Close cur_old_ref_values;
44     -- Populate New Values.
45     new_references.encumbrance_type := x_encumbrance_type;
46     new_references.description := x_description;
47     new_references.s_encumbrance_cat := x_s_encumbrance_cat;
48     new_references.closed_ind := x_closed_ind;
49     new_references.comments := x_comments;
50     new_references.org_id := x_org_id;
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   END Set_Column_Values;
62 PROCEDURE Check_Constraints (
63  Column_Name	IN	VARCHAR2	DEFAULT NULL,
64  Column_Value 	IN	VARCHAR2	DEFAULT NULL
65  )
66  AS
67  BEGIN
68   IF  column_name is null then
69      NULL;
70   ELSIF upper(Column_name) = 'CLOSED_IND' then
71      new_references.closed_ind := column_value;
72   ELSIF upper(Column_name) = 'ENCUMBRANCE_TYPE' then
73      new_references.encumbrance_type := column_value;
74   ELSIF upper(Column_name) = 'S_ENCUMBRANCE_CAT' then
75      new_references.s_encumbrance_cat := column_value;
76   End if;
77 
78 IF upper(column_name) = 'CLOSED_IND' OR
79      column_name is null Then
80      IF new_references.CLOSED_IND <>
81 	UPPER(new_references.CLOSED_IND) Then
82        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
83        IGS_GE_MSG_STACK.ADD;
84        App_Exception.Raise_Exception;
85      END IF;
86 END IF;
87 
88 IF upper(column_name) = 'ENCUMBRANCE_TYPE' OR
89      column_name is null Then
90      IF new_references.ENCUMBRANCE_TYPE <>
91 	UPPER(new_references.ENCUMBRANCE_TYPE) Then
92        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
93        IGS_GE_MSG_STACK.ADD;
94        App_Exception.Raise_Exception;
95      END IF;
96 END IF;
97 
98 IF upper(column_name) = 'S_ENCUMBRANCE_CAT' OR
99      column_name is null Then
100      IF new_references.S_ENCUMBRANCE_CAT <>
101 	UPPER(new_references.S_ENCUMBRANCE_CAT) Then
102        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
103        IGS_GE_MSG_STACK.ADD;
104        App_Exception.Raise_Exception;
105      END IF;
106 END IF;
107 
108 IF upper(column_name) = 'S_ENCUMBRANCE_CAT' OR
109      column_name is null Then
110      IF (new_references.s_encumbrance_cat not in ( 'ACADEMIC' , 'ADMIN')) Then
111        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
112        IGS_GE_MSG_STACK.ADD;
113        App_Exception.Raise_Exception;
114      END IF;
115 END IF;
116 
117 IF upper(column_name) = 'CLOSED_IND' OR
118      column_name is null Then
119      IF (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 END Check_Constraints;
126   Function Get_PK_For_Validation (
127     x_encumbrance_type IN VARCHAR2
128     ) Return Boolean
129 	AS
130     CURSOR cur_rowid IS
131       SELECT   rowid
132       FROM     IGS_FI_ENCMB_TYPE_ALL
133       WHERE    encumbrance_type = x_encumbrance_type;
134 
135     lv_rowid cur_rowid%RowType;
136   BEGIN
137     Open cur_rowid;
138     Fetch cur_rowid INTO lv_rowid;
139  IF (cur_rowid%FOUND) THEN
140        Close cur_rowid;
141        Return (TRUE);
142  ELSE
143        Close cur_rowid;
144        Return (FALSE);
145  END IF;
146 
147   END Get_PK_For_Validation;
148 
149   PROCEDURE Before_DML (
150     p_action IN VARCHAR2,
151     x_rowid IN VARCHAR2 DEFAULT NULL,
152     x_encumbrance_type IN VARCHAR2 DEFAULT NULL,
153     x_description IN VARCHAR2 DEFAULT NULL,
154     x_s_encumbrance_cat IN VARCHAR2 DEFAULT NULL,
155     x_closed_ind IN VARCHAR2 DEFAULT NULL,
156     x_comments IN VARCHAR2 DEFAULT NULL,
157     x_org_id IN NUMBER DEFAULT NULL,
158     x_creation_date IN DATE DEFAULT NULL,
159     x_created_by IN NUMBER DEFAULT NULL,
160     x_last_update_date IN DATE DEFAULT NULL,
161     x_last_updated_by IN NUMBER DEFAULT NULL,
162     x_last_update_login IN NUMBER DEFAULT NULL
163   ) AS
164   BEGIN
165     Set_Column_Values (
166       p_action,
167       x_rowid,
168       x_encumbrance_type,
169       x_description,
170       x_s_encumbrance_cat,
171       x_closed_ind,
172       x_comments,
173       x_org_id,
174       x_creation_date,
175       x_created_by,
176       x_last_update_date,
177       x_last_updated_by,
178       x_last_update_login
179     );
180     IF (p_action = 'INSERT') THEN
181       -- Call all the procedures related to Before Insert.
182       Null;
183 	  	IF  Get_PK_For_Validation (
184     		new_references.encumbrance_type
185 			) THEN
186 	  	         Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
187                           IGS_GE_MSG_STACK.ADD;
188 	  	          App_Exception.Raise_Exception;
189 	  	END IF;
190 	  	Check_Constraints;
191     ELSIF (p_action = 'UPDATE') THEN
192       -- Call all the procedures related to Before Update.
193       Null;
194 	  	Check_Constraints;
195     ELSIF (p_action = 'VALIDATE_INSERT') THEN
196 	        IF  Get_PK_For_Validation (
197     		new_references.encumbrance_type
198 			) THEN
199 	           Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
200                     IGS_GE_MSG_STACK.ADD;
201 	            App_Exception.Raise_Exception;
202 	        END IF;
203 	        Check_Constraints;
204 	  ELSIF (p_action = 'VALIDATE_UPDATE') THEN
205 	         Check_Constraints;
206       END IF;
207   END Before_DML;
208 procedure INSERT_ROW (
209   X_ROWID in out NOCOPY VARCHAR2,
210   X_ENCUMBRANCE_TYPE in VARCHAR2,
211   X_DESCRIPTION in VARCHAR2,
212   X_S_ENCUMBRANCE_CAT in VARCHAR2,
213   X_CLOSED_IND in VARCHAR2,
214   X_COMMENTS in VARCHAR2,
215   x_org_id in number,
216   X_MODE in VARCHAR2 default 'R'
217   ) AS
218     cursor C is select ROWID from IGS_FI_ENCMB_TYPE_ALL
219       where ENCUMBRANCE_TYPE = X_ENCUMBRANCE_TYPE;
220     X_LAST_UPDATE_DATE DATE;
221     X_LAST_UPDATED_BY NUMBER;
222     X_LAST_UPDATE_LOGIN NUMBER;
223 begin
224   X_LAST_UPDATE_DATE := SYSDATE;
225   if(X_MODE = 'I') then
226     X_LAST_UPDATED_BY := 1;
227     X_LAST_UPDATE_LOGIN := 0;
228   elsif (X_MODE = 'R') then
229     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
230     if X_LAST_UPDATED_BY is NULL then
231       X_LAST_UPDATED_BY := -1;
232     end if;
233     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
234     if X_LAST_UPDATE_LOGIN is NULL then
235       X_LAST_UPDATE_LOGIN := -1;
236     end if;
237   else
238     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
239        IGS_GE_MSG_STACK.ADD;
240     app_exception.raise_exception;
241   end if;
242   Before_DML (
243     p_action => 'INSERT',
244     x_rowid => X_ROWID,
245     x_encumbrance_type => x_encumbrance_type,
246     x_description => x_description ,
247     x_s_encumbrance_cat => x_s_encumbrance_cat,
248     x_closed_ind => NVL(x_closed_ind,'N'),
249     x_comments => x_comments,
250     x_org_id => igs_ge_gen_003.get_org_id,
251     x_creation_date => X_LAST_UPDATE_DATE,
252     x_created_by => X_LAST_UPDATED_BY,
253     x_last_update_date => X_LAST_UPDATE_DATE,
254     x_last_updated_by => X_LAST_UPDATED_BY,
255     x_last_update_login => X_LAST_UPDATE_LOGIN
256   );
257   insert into IGS_FI_ENCMB_TYPE_ALL (
258     ENCUMBRANCE_TYPE,
259     DESCRIPTION,
260     S_ENCUMBRANCE_CAT,
261     CLOSED_IND,
262     COMMENTS,
263     ORG_ID,
264     CREATION_DATE,
265     CREATED_BY,
266     LAST_UPDATE_DATE,
267     LAST_UPDATED_BY,
268     LAST_UPDATE_LOGIN
269   ) values (
270     NEW_REFERENCES.ENCUMBRANCE_TYPE,
271     NEW_REFERENCES.DESCRIPTION,
272     NEW_REFERENCES.S_ENCUMBRANCE_CAT,
273     NEW_REFERENCES.CLOSED_IND,
274     NEW_REFERENCES.COMMENTS,
275     NEW_REFERENCES.ORG_ID,
276     X_LAST_UPDATE_DATE,
277     X_LAST_UPDATED_BY,
278     X_LAST_UPDATE_DATE,
279     X_LAST_UPDATED_BY,
280     X_LAST_UPDATE_LOGIN
281   );
282   open c;
283   fetch c into X_ROWID;
284   if (c%notfound) then
285     close c;
286     raise no_data_found;
287   end if;
288   close c;
289 end INSERT_ROW;
290 procedure LOCK_ROW (
291   X_ROWID in VARCHAR2,
292   X_ENCUMBRANCE_TYPE in VARCHAR2,
293   X_DESCRIPTION in VARCHAR2,
294   X_S_ENCUMBRANCE_CAT in VARCHAR2,
295   X_CLOSED_IND in VARCHAR2,
296   X_COMMENTS in VARCHAR2
297 ) AS
298   cursor c1 is select
299       DESCRIPTION,
300       S_ENCUMBRANCE_CAT,
301       CLOSED_IND,
302       COMMENTS
303     from IGS_FI_ENCMB_TYPE_ALL
304     where ROWID = X_ROWID
305     for update nowait;
306   tlinfo c1%rowtype;
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   if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
319       AND (tlinfo.S_ENCUMBRANCE_CAT = X_S_ENCUMBRANCE_CAT)
320       AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
321       AND ((tlinfo.COMMENTS = X_COMMENTS)
322            OR ((tlinfo.COMMENTS is null)
323                AND (X_COMMENTS is null)))
324   ) then
325     null;
326   else
327     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
328        IGS_GE_MSG_STACK.ADD;
329     app_exception.raise_exception;
330   end if;
331   return;
332 end LOCK_ROW;
333 procedure UPDATE_ROW (
334   X_ROWID in VARCHAR2,
335   X_ENCUMBRANCE_TYPE in VARCHAR2,
336   X_DESCRIPTION in VARCHAR2,
337   X_S_ENCUMBRANCE_CAT in VARCHAR2,
338   X_CLOSED_IND in VARCHAR2,
339   X_COMMENTS in VARCHAR2,
340   X_MODE in VARCHAR2 default 'R'
341   ) AS
342     X_LAST_UPDATE_DATE DATE;
343     X_LAST_UPDATED_BY NUMBER;
344     X_LAST_UPDATE_LOGIN NUMBER;
345 begin
346   X_LAST_UPDATE_DATE := SYSDATE;
347   if(X_MODE = 'I') then
348     X_LAST_UPDATED_BY := 1;
349     X_LAST_UPDATE_LOGIN := 0;
350   elsif (X_MODE = 'R') then
351     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
352     if X_LAST_UPDATED_BY is NULL then
353       X_LAST_UPDATED_BY := -1;
354     end if;
355     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
356     if X_LAST_UPDATE_LOGIN is NULL then
357       X_LAST_UPDATE_LOGIN := -1;
358     end if;
359   else
360     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
361        IGS_GE_MSG_STACK.ADD;
362     app_exception.raise_exception;
363   end if;
364   Before_DML (
365     p_action => 'UPDATE',
366     x_rowid => X_ROWID,
367     x_encumbrance_type => x_encumbrance_type,
368     x_description => x_description ,
369     x_s_encumbrance_cat => x_s_encumbrance_cat,
370     x_closed_ind => x_closed_ind,
371     x_comments => x_comments,
372     x_creation_date => X_LAST_UPDATE_DATE,
373     x_created_by => X_LAST_UPDATED_BY,
374     x_last_update_date => X_LAST_UPDATE_DATE,
375     x_last_updated_by => X_LAST_UPDATED_BY,
376     x_last_update_login => X_LAST_UPDATE_LOGIN
377   );
378   update IGS_FI_ENCMB_TYPE_ALL set
379     DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
380     S_ENCUMBRANCE_CAT = NEW_REFERENCES.S_ENCUMBRANCE_CAT,
381     CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
382     COMMENTS = NEW_REFERENCES.COMMENTS,
383     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
384     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
385     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
386   where ROWID = X_ROWID;
387   if (sql%notfound) then
388     raise no_data_found;
389   end if;
390 end UPDATE_ROW;
391 procedure ADD_ROW (
392   X_ROWID in out NOCOPY VARCHAR2,
393   X_ENCUMBRANCE_TYPE in VARCHAR2,
394   X_DESCRIPTION in VARCHAR2,
395   X_S_ENCUMBRANCE_CAT in VARCHAR2,
396   X_CLOSED_IND in VARCHAR2,
397   X_COMMENTS in VARCHAR2,
398   X_ORG_ID in NUMBER,
399   X_MODE in VARCHAR2 default 'R'
400   ) AS
401   cursor c1 is select rowid from IGS_FI_ENCMB_TYPE_ALL
402      where ENCUMBRANCE_TYPE = X_ENCUMBRANCE_TYPE
403   ;
404 begin
405   open c1;
406   fetch c1 into X_ROWID;
407   if (c1%notfound) then
408     close c1;
409     INSERT_ROW (
410      X_ROWID,
411      X_ENCUMBRANCE_TYPE,
412      X_DESCRIPTION,
413      X_S_ENCUMBRANCE_CAT,
414      X_CLOSED_IND,
415      X_COMMENTS,
416      X_ORG_ID,
417      X_MODE);
418     return;
419   end if;
420   close c1;
421   UPDATE_ROW (
422   X_ROWID,
423    X_ENCUMBRANCE_TYPE,
424    X_DESCRIPTION,
425    X_S_ENCUMBRANCE_CAT,
426    X_CLOSED_IND,
427    X_COMMENTS,
428    X_MODE);
429 end ADD_ROW;
430 
431 end IGS_FI_ENCMB_TYPE_PKG;