DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_FI_GOV_HEC_PA_OP_PKG

Source


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