DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_FI_FEE_AS_RT_H_PKG

Source


1 PACKAGE BODY igs_fi_fee_as_rt_h_pkg AS
2 /* $Header: IGSSI21B.pls 120.2 2006/05/26 13:42:37 skharida noship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_FI_FEE_AS_RT_H_ALL%RowType;
6   new_references IGS_FI_FEE_AS_RT_H_ALL%RowType;
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 ,
10     x_chg_rate IN NUMBER ,
11     x_fee_type IN VARCHAR2 ,
12     x_fee_cal_type IN VARCHAR2 ,
13     x_fee_ci_sequence_number IN NUMBER ,
14     x_s_relation_type IN VARCHAR2 ,
15     x_rate_number IN NUMBER ,
16     x_hist_start_dt IN DATE ,
17     x_hist_end_dt IN DATE ,
18     x_hist_who IN VARCHAR2 ,
19     x_fee_cat IN VARCHAR2 ,
20     x_location_cd IN VARCHAR2 ,
21     x_attendance_type IN VARCHAR2 ,
22     x_attendance_mode IN VARCHAR2 ,
23     x_order_of_precedence IN NUMBER ,
24     x_govt_hecs_payment_option IN VARCHAR2 ,
25     x_govt_hecs_cntrbtn_band IN NUMBER ,
26     x_unit_class IN VARCHAR2 ,
27     x_residency_status_cd  IN VARCHAR2 ,
28     x_course_cd  IN VARCHAR2 ,
29     x_version_number  IN NUMBER ,
30     x_org_party_id  IN NUMBER ,
31     x_class_standing  IN VARCHAR2 ,
32     x_org_id IN NUMBER ,
33     x_creation_date IN DATE ,
34     x_created_by IN NUMBER ,
35     x_last_update_date IN DATE ,
36     x_last_updated_by IN NUMBER ,
37     x_last_update_login IN NUMBER ,
38     x_unit_set_cd         IN VARCHAR2,
39     x_us_version_number   IN NUMBER,
40     x_unit_cd                   IN VARCHAR2 ,
41     x_unit_version_number       IN NUMBER   ,
42     x_unit_level                IN VARCHAR2 ,
43     x_unit_type_id              IN NUMBER   ,
44     x_unit_mode                 IN VARCHAR2
45 
46   ) AS
47  /************************************************************************************
48  | HISTORY
49  | Who         When             What
50  | svuppala     31-MAY-2005    Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
51  |                                 Unit Version and Unit Level
52  | pathipat     10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
53  |                              Added 2 new columns unit_set_cd and us_version_number
54 **************************************************************************************/
55     CURSOR cur_old_ref_values IS
56       SELECT   *
57       FROM     IGS_FI_FEE_AS_RT_H_ALL
58       WHERE    rowid = x_rowid;
59   BEGIN
60     l_rowid := x_rowid;
61     -- Code for setting the Old and New Reference Values.
62     -- Populate Old Values.
63     Open cur_old_ref_values;
64     Fetch cur_old_ref_values INTO old_references;
65     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
66       Close cur_old_ref_values;
67       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
68        IGS_GE_MSG_STACK.ADD;
69       App_Exception.Raise_Exception;
70       Return;
71     END IF;
72     Close cur_old_ref_values;
73     -- Populate New Values.
74     new_references.chg_rate := x_chg_rate;
75     new_references.fee_type := x_fee_type;
76     new_references.fee_cal_type := x_fee_cal_type;
77     new_references.fee_ci_sequence_number := x_fee_ci_sequence_number;
78     new_references.s_relation_type := x_s_relation_type;
79     new_references.rate_number := x_rate_number;
80     new_references.hist_start_dt := x_hist_start_dt;
81     new_references.hist_end_dt := x_hist_end_dt;
82     new_references.hist_who := x_hist_who;
83     new_references.fee_cat := x_fee_cat;
84     new_references.location_cd := x_location_cd;
85     new_references.attendance_type := x_attendance_type;
86     new_references.attendance_mode := x_attendance_mode;
87     new_references.order_of_precedence := x_order_of_precedence;
88     new_references.govt_hecs_payment_option := x_govt_hecs_payment_option;
89     new_references.govt_hecs_cntrbtn_band := x_govt_hecs_cntrbtn_band;
90     new_references.unit_class := x_unit_class;
91     new_references.residency_status_cd := x_residency_status_cd;
92     new_references.course_cd := x_course_cd;
93     new_references.version_number := x_version_number;
94     new_references.org_party_id := x_org_party_id;
95     new_references.class_standing := x_class_standing;
96     new_references.org_id := x_org_id;
97     new_references.unit_set_cd := x_unit_set_cd;
98     new_references.us_version_number := x_us_version_number;
99     new_references.unit_cd                  := x_unit_cd  ;
100     new_references.unit_version_number      := x_unit_version_number ;
101     new_references.unit_level               := x_unit_level   ;
102     new_references.unit_type_id             := x_unit_type_id ;
103     new_references.unit_mode                := x_unit_mode    ;
104 
105 
106     IF (p_action = 'UPDATE') THEN
107       new_references.creation_date := old_references.creation_date;
108       new_references.created_by := old_references.created_by;
109     ELSE
110       new_references.creation_date := x_creation_date;
111       new_references.created_by := x_created_by;
112     END IF;
113     new_references.last_update_date := x_last_update_date;
114     new_references.last_updated_by := x_last_updated_by;
115     new_references.last_update_login := x_last_update_login;
116   END Set_Column_Values;
117 
118 PROCEDURE Check_Uniqueness AS
119    Begin
120    IF  Get_UK_For_Validation (
121       new_references.fee_type ,
122       new_references.fee_cal_type ,
123       new_references.fee_ci_sequence_number ,
124       new_references.rate_number ,
125       new_references.hist_start_dt ,
126         new_references.fee_cat
127        ) THEN
128             Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
129             IGS_GE_MSG_STACK.ADD;
130             App_Exception.Raise_Exception;
131         END IF;
132    End Check_Uniqueness;
133 
134 
135 PROCEDURE Check_Constraints (
136  Column_Name    IN      VARCHAR2        ,
137  Column_Value   IN      VARCHAR2
138  ) AS
139  /*----------------------------------------------------------------------------
140   ||  Created By :
141   ||  Created On :
142   ||  Purpose :
143   ||  Known limitations, enhancements or remarks :
144   ||  Change History :
145   ||  Who             When            What
146   ||  (reverse chronological order - newest change first)
147   ||  skharida        26-May-2006    Bug 5217319 Removed the hardcoded precision check
148   || svuppala         31-MAY-2005    Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
149   ||                                 Unit Version and Unit Level
150   ||  pathipat        10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
151   ||                                  Added 2 new columns unit_set_cd and us_version_number
152   ||  vvutukur       21-Apr-2003      Bug#2885575.Modified the upper limit check to 999999999 for fields rate_number and order_of_precedence.
153   ||  SYKRISHn       10APR03          ORDER_OF_PRECEDENCE - Changes limit check to 9999
154   ||  vvutukur        17-May-2002     removed upper check on fee_type,fee_cat columns.bug#2344826.
155   ----------------------------------------------------------------------------*/
156  BEGIN
157   IF  column_name is null then
158      NULL;
159   ELSIF upper(Column_name) = 'CHG_RATE' then
160      new_references.chg_rate := igs_ge_number.to_num(column_value);
161   ELSIF upper(Column_name) = 'FEE_CI_SEQUENCE_NUMBER' then
162      new_references.fee_ci_sequence_number := igs_ge_number.to_num(column_value);
163  ELSIF upper(Column_name) = 'ORDER_OF_PRECEDENCE' then
164      new_references.order_of_precedence := igs_ge_number.to_num(column_value);
165   ELSIF upper(Column_name) = 'ATTENDANCE_MODE' then
166      new_references.attendance_mode := column_value;
167  ELSIF upper(Column_name) = 'ATTENDANCE_TYPE' then
168      new_references.attendance_type := column_value;
169   ELSIF upper(Column_name) = 'FEE_CAL_TYPE' then
170      new_references.fee_cal_type := column_value;
171  ELSIF upper(Column_name) = 'GOVT_HECS_PAYMENT_OPTION' then
172      new_references.govt_hecs_payment_option := column_value;
173   ELSIF upper(Column_name) = 'LOCATION_CD' then
174      new_references.location_cd := column_value;
175  ELSIF upper(Column_name) = 'S_RELATION_TYPE' then
176      new_references.s_relation_type := column_value;
177   ELSIF upper(Column_name) = 'GOVT_HECS_CNTRBTN_BAND' then
178      new_references.govt_hecs_cntrbtn_band := igs_ge_number.to_num(column_value);
179   ELSIF upper(Column_name) = 'RATE_NUMBER' then
180      new_references.rate_number := igs_ge_number.to_num(column_value);
181   ELSIF upper(Column_name) = 'COURSE_CD' then
182      new_references.course_cd := column_value;
183   ELSIF upper(Column_name) = 'VERSION_NUMBER' then
184      new_references.version_number := igs_ge_number.to_num(column_value);
185   ELSIF upper(Column_name) = 'CLASS_STANDING' then
186      new_references.class_standing := column_value;
187   ELSIF upper(Column_name) = 'UNIT_SET_CD' then
188      new_references.unit_set_cd := column_value;
189   ELSIF upper(Column_name) = 'US_VERSION_NUMBER' then
190      new_references.us_version_number := igs_ge_number.to_num(column_value);
191   ELSIF (UPPER(column_name) = 'UNIT_VERSION_NUMBER') THEN
192       new_references.unit_version_number := igs_ge_number.to_num(column_value);
193   ELSIF (UPPER(column_name) = 'UNIT_TYPE_ID') THEN
194       new_references.unit_type_id := igs_ge_number.to_num(column_value);
195  ELSIF (UPPER (column_name) = 'UNIT_CD') THEN
196       new_references.unit_cd  := column_value;
197  ELSIF (UPPER (column_name) = 'UNIT_LEVEL') THEN
198       new_references.unit_level := column_value;
199  ELSIF (UPPER (column_name) = 'UNIT_CLASS') THEN
200      new_references.unit_class := column_value;
201  ELSIF (UPPER(column_name) = 'UNIT_MODE') THEN
202       new_references.unit_mode := column_value;
203   END IF;
204 
205   IF upper(column_name) = 'CHG_RATE' OR
206        column_name is null Then
207        IF new_references.chg_rate  < 0 Then
208          Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
209             IGS_GE_MSG_STACK.ADD;
210          App_Exception.Raise_Exception;
211        END IF;
212   END IF;
213 IF upper(column_name) = 'FEE_CI_SEQUENCE_NUMBER' OR
214      column_name is null Then
215      IF new_references.fee_ci_sequence_number  < 1 OR
216           new_references.fee_ci_sequence_number > 999999 Then
217        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
218             IGS_GE_MSG_STACK.ADD;
219        App_Exception.Raise_Exception;
220      END IF;
221 END IF;
222 IF upper(column_name) = 'ORDER_OF_PRECEDENCE' OR
223      column_name is null Then
224      IF new_references.order_of_precedence  < 1 OR
225           new_references.order_of_precedence > 999999999 Then
226        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
227        IGS_GE_MSG_STACK.ADD;
228        App_Exception.Raise_Exception;
229      END IF;
230 END IF;
231 IF upper(column_name) = 'GOVT_HECS_CNTRBTN_BAND' OR
232      column_name is null Then
233      IF new_references.govt_hecs_cntrbtn_band  < 1 OR
234           new_references.govt_hecs_cntrbtn_band > 99 Then
235        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
236        IGS_GE_MSG_STACK.ADD;
237        App_Exception.Raise_Exception;
238      END IF;
239 END IF;
240 IF upper(column_name) = 'RATE_NUMBER' OR
241      column_name is null Then
242      IF new_references.rate_number  < 1 OR
243           new_references.rate_number > 999999999 Then
244        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
245        IGS_GE_MSG_STACK.ADD;
246        App_Exception.Raise_Exception;
247      END IF;
248 END IF;
249 
250 IF upper(column_name) = 'ATTENDANCE_MODE' OR
251      column_name is null Then
252      IF new_references.attendance_mode <>
253         UPPER(new_references.attendance_mode) Then
254        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
255        IGS_GE_MSG_STACK.ADD;
256        App_Exception.Raise_Exception;
257      END IF;
258 END IF;
259 IF upper(column_name) = 'ATTENDANCE_TYPE' OR
260      column_name is null Then
261      IF new_references.attendance_type <>
262         UPPER(new_references.attendance_type) Then
263        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
264        IGS_GE_MSG_STACK.ADD;
265        App_Exception.Raise_Exception;
266      END IF;
267 END IF;
268 IF upper(column_name) = 'FEE_CAL_TYPE' OR
269      column_name is null Then
270      IF new_references.fee_cal_type <>
271         UPPER(new_references.fee_cal_type) Then
272        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
273        IGS_GE_MSG_STACK.ADD;
274        App_Exception.Raise_Exception;
275      END IF;
276 END IF;
277 IF upper(column_name) = 'GOVT_HECS_PAYMENT_OPTION' OR
278      column_name is null Then
279      IF new_references.govt_hecs_payment_option <>
280         UPPER(new_references.govt_hecs_payment_option) Then
281        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
282        IGS_GE_MSG_STACK.ADD;
283        App_Exception.Raise_Exception;
284      END IF;
285 END IF;
286 IF upper(column_name) = 'LOCATION_CD' OR
287      column_name is null Then
288      IF new_references.location_cd <>
289         UPPER(new_references.location_cd) Then
290        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
291        IGS_GE_MSG_STACK.ADD;
292        App_Exception.Raise_Exception;
293      END IF;
294 END IF;
295 IF upper(column_name) = 'S_RELATION_TYPE' OR
296      column_name is null Then
297      IF new_references.s_relation_type <>
298         UPPER(new_references.s_relation_type) Then
299        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
300        IGS_GE_MSG_STACK.ADD;
301        App_Exception.Raise_Exception;
302      END IF;
303 END IF;
304 IF upper(column_name) = 'COURSE_CD' OR
305      column_name is null Then
306      IF new_references.course_cd <>
307         UPPER(new_references.course_cd) Then
308        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
309        IGS_GE_MSG_STACK.ADD;
310        App_Exception.Raise_Exception;
311      END IF;
312 END IF;
313 IF upper(column_name) = 'VERSION_NUMBER' OR
314      column_name is null Then
315      IF new_references.version_number  < 1 OR
316           new_references.version_number > 999 Then
317        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
318        IGS_GE_MSG_STACK.ADD;
319        App_Exception.Raise_Exception;
320      END IF;
321 END IF;
322 IF upper(column_name) = 'CLASS_STANDING' OR
323      column_name is null Then
324      IF new_references.class_standing <>
325         UPPER(new_references.class_standing) Then
326        Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
327        IGS_GE_MSG_STACK.ADD;
328        App_Exception.Raise_Exception;
329      END IF;
330 END IF;
331 IF UPPER(column_name) = 'UNIT_SET_CD' OR column_name IS NULL THEN
332      IF new_references.unit_set_cd <>  UPPER(new_references.unit_set_cd) THEN
333          fnd_message.set_name('IGS','IGS_GE_INVALID_VALUE');
334          igs_ge_msg_stack.add;
335          app_exception.raise_exception;
336      END IF;
337 END IF;
338 IF UPPER(column_name) = 'US_VERSION_NUMBER' OR column_name IS NULL THEN
339      IF new_references.us_version_number  < 1 OR  new_references.us_version_number > 999 Then
340          fnd_message.set_name('IGS','IGS_GE_INVALID_VALUE');
341          igs_ge_msg_stack.add;
342          app_exception.raise_exception;
343      END IF;
344 END IF;
345 
346 IF ((UPPER(column_name) = 'UNIT_VERSION_NUMBER') OR (column_name IS NULL)) THEN
347       IF ((new_references.unit_version_number < 0) OR (new_references.unit_version_number > 999)) THEN
348         fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
349         igs_ge_msg_stack.add;
350         app_exception.raise_exception;
351       END IF;
352     END IF;
353     IF ((UPPER(column_name) = 'UNIT_TYPE_ID') OR (column_name IS NULL)) THEN
354       IF (new_references.unit_type_id < 0) THEN
355         fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
359     END IF;
356         igs_ge_msg_stack.add;
357         app_exception.raise_exception;
358       END IF;
360     IF ((UPPER (column_name) = 'UNIT_CD') OR (column_name IS NULL)) THEN
361       IF (new_references.unit_cd <> UPPER (new_references.unit_cd)) THEN
362         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
363         IGS_GE_MSG_STACK.ADD;
364         App_Exception.Raise_Exception;
365       END IF;
366     END IF;
367     IF ((UPPER(column_name) = 'UNIT_LEVEL') OR (column_name IS NULL)) THEN
368       IF (new_references.unit_level <> UPPER(new_references.unit_level)) THEN
369         fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
370         igs_ge_msg_stack.add;
371         app_exception.raise_exception;
372       END IF;
373     END IF;
374     IF ((UPPER (column_name) = 'UNIT_CLASS') OR (column_name IS NULL)) THEN
375       IF (new_references.unit_class <> UPPER (new_references.unit_class)) THEN
376         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
377         IGS_GE_MSG_STACK.ADD;
378         App_Exception.Raise_Exception;
379       END IF;
380     END IF;
381     IF ((UPPER(column_name) = 'UNIT_MODE') OR (column_name IS NULL)) THEN
382       IF (new_references.unit_mode <> UPPER(new_references.unit_mode)) THEN
383         fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
384         igs_ge_msg_stack.add;
385         app_exception.raise_exception;
386       END IF;
387     END IF;
388 
389 END Check_Constraints;
390 
391 
392 PROCEDURE Check_Parent_Existance AS
393   BEGIN
394     IF (((old_references.fee_cat = new_references.fee_cat) AND
395          (old_references.fee_cal_type = new_references.fee_cal_type) AND
396          (old_references.fee_ci_sequence_number = new_references.fee_ci_sequence_number) AND
397          (old_references.fee_type = new_references.fee_type)) OR
398         ((new_references.fee_cat IS NULL) OR
399          (new_references.fee_cal_type IS NULL) OR
400          (new_references.fee_ci_sequence_number IS NULL) OR
401          (new_references.fee_type IS NULL))) THEN
402       NULL;
403     ELSE
404       IF  NOT IGS_FI_F_CAT_FEE_LBL_PKG.Get_PK_For_Validation (
405         new_references.fee_cat,
406         new_references.fee_cal_type,
407         new_references.fee_ci_sequence_number,
408         new_references.fee_type
409         )       THEN
410              Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
411              IGS_GE_MSG_STACK.ADD;
412              App_Exception.Raise_Exception;
413         END IF;
414     END IF;
415     IF (((old_references.fee_type = new_references.fee_type) AND
416          (old_references.fee_cal_type = new_references.fee_cal_type) AND
417          (old_references.fee_ci_sequence_number = new_references.fee_ci_sequence_number)) OR
418         ((new_references.fee_type IS NULL) OR
419          (new_references.fee_cal_type IS NULL) OR
420          (new_references.fee_ci_sequence_number IS NULL))) THEN
421       NULL;
422     ELSE
423       IF  NOT IGS_FI_F_TYP_CA_INST_PKG.Get_PK_For_Validation (
424         new_references.fee_type,
425         new_references.fee_cal_type,
426         new_references.fee_ci_sequence_number
427         )       THEN
428              Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
429              IGS_GE_MSG_STACK.ADD;
430              App_Exception.Raise_Exception;
431         END IF;
432     END IF;
433   END Check_Parent_Existance;
434 
435 
436   FUNCTION Get_PK_For_Validation (
437     x_fee_type IN VARCHAR2,
438     x_fee_cal_type IN VARCHAR2,
439     x_fee_ci_sequence_number IN NUMBER,
440     x_s_relation_type IN VARCHAR2,
441     x_rate_number IN NUMBER,
442     x_hist_start_dt IN DATE
443     ) Return Boolean
444         AS
445     CURSOR cur_rowid IS
446       SELECT   rowid
447       FROM     IGS_FI_FEE_AS_RT_H_ALL
448       WHERE    fee_type = x_fee_type
449       AND      fee_cal_type = x_fee_cal_type
450       AND      fee_ci_sequence_number = x_fee_ci_sequence_number
451       AND      s_relation_type = x_s_relation_type
452       AND      rate_number = x_rate_number
453       AND      hist_start_dt = x_hist_start_dt
454       FOR UPDATE NOWAIT;
455     lv_rowid cur_rowid%RowType;
456   BEGIN
457     Open cur_rowid;
458     Fetch cur_rowid INTO lv_rowid;
459      IF (cur_rowid%FOUND) THEN
460        Close cur_rowid;
461        Return (TRUE);
462  ELSE
463        Close cur_rowid;
464        Return (FALSE);
465  END IF;
466  END Get_PK_For_Validation;
467 
468 
469 FUNCTION Get_UK_For_Validation (
470     x_fee_type IN VARCHAR2 ,
471     x_fee_cal_type IN VARCHAR2 ,
472     x_fee_ci_sequence_number IN NUMBER ,
473     x_rate_number IN NUMBER ,
474     x_hist_start_dt IN DATE ,
475     x_fee_cat IN VARCHAR2
476         ) Return Boolean
477         AS
478      CURSOR cur_rowid IS
479        SELECT   rowid
480        FROM     IGS_FI_FEE_AS_RT_H_ALL
481          WHERE    fee_type = x_fee_type
482          AND      fee_cal_type = x_fee_cal_type
483          AND      fee_ci_sequence_number = x_fee_ci_sequence_number
484          AND      rate_number = x_rate_number
485          AND      hist_start_dt = x_hist_start_dt
486          AND      fee_cat = x_fee_cat
490    BEGIN
487          AND      ((l_rowid IS NULL) OR (rowid <> l_rowid));
488 
489      lv_rowid cur_rowid%RowType;
491      Open cur_rowid;
492      Fetch cur_rowid INTO lv_rowid;
493       IF (cur_rowid%FOUND) THEN
494         Close cur_rowid;
495         Return (TRUE);
496   ELSE
497         Close cur_rowid;
498         Return (FALSE);
499   END IF;
500   END Get_UK_For_Validation;
501 
502 
503   PROCEDURE Before_DML (
504     p_action IN VARCHAR2,
505     x_rowid IN VARCHAR2 ,
506     x_chg_rate IN NUMBER ,
507     x_fee_type IN VARCHAR2 ,
508     x_fee_cal_type IN VARCHAR2 ,
509     x_fee_ci_sequence_number IN NUMBER ,
510     x_s_relation_type IN VARCHAR2 ,
511     x_rate_number IN NUMBER ,
512     x_hist_start_dt IN DATE ,
513     x_hist_end_dt IN DATE ,
514     x_hist_who IN VARCHAR2 ,
515     x_fee_cat IN VARCHAR2 ,
516     x_location_cd IN VARCHAR2 ,
517     x_attendance_type IN VARCHAR2 ,
518     x_attendance_mode IN VARCHAR2 ,
519     x_order_of_precedence IN NUMBER ,
520     x_govt_hecs_payment_option IN VARCHAR2 ,
521     x_govt_hecs_cntrbtn_band IN NUMBER ,
522     x_unit_class IN VARCHAR2 ,
523     x_residency_status_cd  IN VARCHAR2 ,
524     x_course_cd  IN VARCHAR2 ,
525     x_version_number  IN NUMBER ,
526     x_org_party_id  IN NUMBER ,
527     x_class_standing  IN VARCHAR2 ,
528     x_org_id IN NUMBER ,
529     x_creation_date IN DATE ,
530     x_created_by IN NUMBER ,
531     x_last_update_date IN DATE ,
532     x_last_updated_by IN NUMBER ,
533     x_last_update_login IN NUMBER,
534     x_unit_set_cd         IN VARCHAR2,
535     x_us_version_number   IN NUMBER,
536     x_unit_cd                     IN VARCHAR2 ,
537     x_unit_version_number         IN NUMBER   ,
538     x_unit_level                  IN VARCHAR2 ,
539     x_unit_type_id                IN NUMBER   ,
540     x_unit_mode                   IN VARCHAR2
541   ) AS
542  /************************************************************************************
543  | HISTORY
544  | Who         When             What
545  | svuppala     31-MAY-2005    Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
546  |                                 Unit Version and Unit Level
547  | pathipat     10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
548  |                              Added 2 new columns unit_set_cd and us_version_number
549 **************************************************************************************/
550   BEGIN
551     Set_Column_Values (
552       p_action,
553       x_rowid,
554       x_chg_rate,
555       x_fee_type,
556       x_fee_cal_type,
557       x_fee_ci_sequence_number,
558       x_s_relation_type,
559       x_rate_number,
560       x_hist_start_dt,
561       x_hist_end_dt,
562       x_hist_who,
563       x_fee_cat,
564       x_location_cd,
565       x_attendance_type,
566       x_attendance_mode,
567       x_order_of_precedence,
568       x_govt_hecs_payment_option,
569       x_govt_hecs_cntrbtn_band,
570       x_unit_class,
571       x_residency_status_cd,
572       x_course_cd,
573       x_version_number,
574       x_org_party_id,
575       x_class_standing,
576       x_org_id,
577       x_creation_date,
578       x_created_by,
579       x_last_update_date,
580       x_last_updated_by,
581       x_last_update_login,
582       x_unit_set_cd,
583       x_us_version_number,
584       x_unit_cd ,
585       x_unit_version_number,
586       x_unit_level,
587       x_unit_type_id,
588       x_unit_mode
589     );
590     IF (p_action = 'INSERT') THEN
591       -- Call all the procedures related to Before Insert.
592       Null;
593                 IF  Get_PK_For_Validation (
594                     new_references.fee_type ,
595                     new_references.fee_cal_type ,
596                     new_references.fee_ci_sequence_number ,
597                     new_references.s_relation_type ,
598                     new_references.rate_number ,
599                     new_references.hist_start_dt
600                     ) THEN
601                          Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
602                           IGS_GE_MSG_STACK.ADD;
603                           App_Exception.Raise_Exception;
604                 END IF;
605                 Check_Constraints;
606                  Check_Uniqueness;
607                          Check_Parent_Existance;
608     ELSIF (p_action = 'UPDATE') THEN
609       -- Call all the procedures related to Before Update.
610       Null;
611                 Check_Constraints;
612                  Check_Uniqueness;
613       Check_Parent_Existance;
614     ELSIF (p_action = 'DELETE') THEN
615       -- Call all the procedures related to Before Delete.
616       Null;
617         ELSIF (p_action = 'VALIDATE_INSERT') THEN
618               IF  Get_PK_For_Validation (
619                     new_references.fee_type ,
620                     new_references.fee_cal_type ,
621                     new_references.fee_ci_sequence_number ,
622                     new_references.s_relation_type ,
623                     new_references.rate_number ,
624                     new_references.hist_start_dt
625                          ) THEN
629               END IF;
626                  Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
627                  IGS_GE_MSG_STACK.ADD;
628                   App_Exception.Raise_Exception;
630               Check_Constraints;
631               Check_Uniqueness;
632         ELSIF (p_action = 'VALIDATE_UPDATE') THEN
633                Check_Constraints;
634                Check_Uniqueness;
635         ELSIF (p_action = 'VALIDATE_DELETE') THEN
636               Null;
637     END IF;
638   END Before_DML;
639 
640 
641 procedure INSERT_ROW (
642   X_ROWID in out NOCOPY VARCHAR2,
643   X_FEE_TYPE in VARCHAR2,
644   X_FEE_CAL_TYPE in VARCHAR2,
645   X_FEE_CI_SEQUENCE_NUMBER in NUMBER,
646   X_S_RELATION_TYPE in VARCHAR2,
647   X_HIST_START_DT in DATE,
648   X_RATE_NUMBER in NUMBER,
649   X_HIST_END_DT in DATE,
650   X_HIST_WHO in NUMBER,
651   X_FEE_CAT in VARCHAR2,
652   X_LOCATION_CD in VARCHAR2,
653   X_ATTENDANCE_TYPE in VARCHAR2,
654   X_ATTENDANCE_MODE in VARCHAR2,
655   X_ORDER_OF_PRECEDENCE in NUMBER,
656   X_GOVT_HECS_PAYMENT_OPTION in VARCHAR2,
657   X_GOVT_HECS_CNTRBTN_BAND in NUMBER,
658   X_CHG_RATE in NUMBER,
659   X_UNIT_CLASS IN VARCHAR2,
660   X_RESIDENCY_STATUS_CD  in  VARCHAR2 ,
661   X_COURSE_CD  in VARCHAR2 ,
662   X_VERSION_NUMBER in NUMBER ,
663   X_ORG_PARTY_ID in NUMBER ,
664   X_CLASS_STANDING  in VARCHAR2 ,
665   X_ORG_ID in NUMBER,
666   X_MODE in VARCHAR2,
667   x_unit_set_cd         IN VARCHAR2,
668   x_us_version_number   IN NUMBER,
669   x_unit_cd                     IN VARCHAR2 ,
670   x_unit_version_number         IN NUMBER   ,
671   x_unit_level                  IN VARCHAR2 ,
672   x_unit_type_id                IN NUMBER   ,
673   x_unit_mode                   IN VARCHAR2
674   ) AS
675  /************************************************************************************
676  | HISTORY
677  | Who         When             What
678  | svuppala     31-MAY-2005    Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
679  |                                 Unit Version and Unit Level
680  | pathipat     10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
681  |                              Added 2 new columns unit_set_cd and us_version_number
682 **************************************************************************************/
683     cursor C is select ROWID from IGS_FI_FEE_AS_RT_H_ALL
684       where FEE_TYPE = X_FEE_TYPE
685       and FEE_CAL_TYPE = X_FEE_CAL_TYPE
686       and FEE_CI_SEQUENCE_NUMBER = X_FEE_CI_SEQUENCE_NUMBER
687       and S_RELATION_TYPE = X_S_RELATION_TYPE
688       and HIST_START_DT = X_HIST_START_DT
689       and RATE_NUMBER = X_RATE_NUMBER;
690     X_LAST_UPDATE_DATE DATE;
691     X_LAST_UPDATED_BY NUMBER;
692     X_LAST_UPDATE_LOGIN NUMBER;
693 begin
694   X_LAST_UPDATE_DATE := SYSDATE;
695   if(X_MODE = 'I') then
696     X_LAST_UPDATED_BY := 1;
697     X_LAST_UPDATE_LOGIN := 0;
698   elsif (X_MODE = 'R') then
699     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
700     if X_LAST_UPDATED_BY is NULL then
701       X_LAST_UPDATED_BY := -1;
702     end if;
703     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
704     if X_LAST_UPDATE_LOGIN is NULL then
705       X_LAST_UPDATE_LOGIN := -1;
706     end if;
707   else
708     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
709     IGS_GE_MSG_STACK.ADD;
710     app_exception.raise_exception;
711   end if;
712 Before_DML(
713   p_action=>'INSERT',
714   x_rowid=>X_ROWID,
715   x_attendance_mode=>X_ATTENDANCE_MODE,
716   x_attendance_type=>X_ATTENDANCE_TYPE,
717   x_chg_rate=>X_CHG_RATE,
718   x_fee_cal_type=>X_FEE_CAL_TYPE,
719   x_fee_cat=>X_FEE_CAT,
720   x_fee_ci_sequence_number=>X_FEE_CI_SEQUENCE_NUMBER,
721   x_fee_type=>X_FEE_TYPE,
722   x_govt_hecs_cntrbtn_band=>X_GOVT_HECS_CNTRBTN_BAND,
723   x_govt_hecs_payment_option=>X_GOVT_HECS_PAYMENT_OPTION,
724   x_hist_end_dt=>X_HIST_END_DT,
725   x_hist_start_dt=>X_HIST_START_DT,
726   x_hist_who=>X_HIST_WHO,
727   x_location_cd=>X_LOCATION_CD,
728   x_order_of_precedence=>X_ORDER_OF_PRECEDENCE,
729   x_rate_number=>X_RATE_NUMBER,
730   x_s_relation_type=>X_S_RELATION_TYPE,
731   x_unit_class => X_UNIT_CLASS,
732   x_residency_status_cd => X_RESIDENCY_STATUS_CD,
733   x_course_cd => X_COURSE_CD,
734   x_version_number => X_VERSION_NUMBER,
735   x_org_party_id => X_ORG_PARTY_ID,
736   x_class_standing => X_CLASS_STANDING,
737   x_org_id => igs_ge_gen_003.get_org_id,
738   x_creation_date => X_LAST_UPDATE_DATE,
739   x_created_by => X_LAST_UPDATED_BY,
740   x_last_update_date => X_LAST_UPDATE_DATE,
741   x_last_updated_by => X_LAST_UPDATED_BY,
742   x_last_update_login => X_LAST_UPDATE_LOGIN,
743   x_unit_set_cd         => x_unit_set_cd,
744   x_us_version_number   => x_us_version_number,
745   x_unit_cd                   => x_unit_cd,
746   x_unit_version_number       => x_unit_version_number,
747   x_unit_level                => x_unit_level ,
748   x_unit_type_id              => x_unit_type_id,
749   x_unit_mode                 => x_unit_mode
750   );
751 
752   insert into IGS_FI_FEE_AS_RT_H_ALL (
753     FEE_TYPE,
754     FEE_CAL_TYPE,
755     FEE_CI_SEQUENCE_NUMBER,
756     S_RELATION_TYPE,
757     RATE_NUMBER,
758     HIST_START_DT,
759     HIST_END_DT,
760     HIST_WHO,
761     FEE_CAT,
762     LOCATION_CD,
763     ATTENDANCE_TYPE,
767     GOVT_HECS_CNTRBTN_BAND,
764     ATTENDANCE_MODE,
765     ORDER_OF_PRECEDENCE,
766     GOVT_HECS_PAYMENT_OPTION,
768     CHG_RATE,
769     UNIT_CLASS,
770     RESIDENCY_STATUS_CD,
771     COURSE_CD,
772     VERSION_NUMBER,
773     ORG_PARTY_ID,
774     CLASS_STANDING,
775     ORG_ID,
776     CREATION_DATE,
777     CREATED_BY,
778     LAST_UPDATE_DATE,
779     LAST_UPDATED_BY,
780     LAST_UPDATE_LOGIN,
781     unit_set_cd,
782     us_version_number,
783     unit_cd ,
784     unit_version_number,
785     unit_level  ,
786     unit_type_id,
787     unit_mode
788   ) values (
789     NEW_REFERENCES.FEE_TYPE,
790     NEW_REFERENCES.FEE_CAL_TYPE,
791     NEW_REFERENCES.FEE_CI_SEQUENCE_NUMBER,
792     NEW_REFERENCES.S_RELATION_TYPE,
793     NEW_REFERENCES.RATE_NUMBER,
794     NEW_REFERENCES.HIST_START_DT,
795     NEW_REFERENCES.HIST_END_DT,
796     NEW_REFERENCES.HIST_WHO,
797     NEW_REFERENCES.FEE_CAT,
798     NEW_REFERENCES.LOCATION_CD,
799     NEW_REFERENCES.ATTENDANCE_TYPE,
800     NEW_REFERENCES.ATTENDANCE_MODE,
801     NEW_REFERENCES.ORDER_OF_PRECEDENCE,
802     NEW_REFERENCES.GOVT_HECS_PAYMENT_OPTION,
803     NEW_REFERENCES.GOVT_HECS_CNTRBTN_BAND,
804     NEW_REFERENCES.CHG_RATE,
805     NEW_REFERENCES.UNIT_CLASS,
806     NEW_REFERENCES.RESIDENCY_STATUS_CD,
807     NEW_REFERENCES.COURSE_CD,
808     NEW_REFERENCES.VERSION_NUMBER,
809     NEW_REFERENCES.ORG_PARTY_ID,
810     NEW_REFERENCES.CLASS_STANDING,
811     NEW_REFERENCES.ORG_ID,
812     X_LAST_UPDATE_DATE,
813     X_LAST_UPDATED_BY,
814     X_LAST_UPDATE_DATE,
815     X_LAST_UPDATED_BY,
816     X_LAST_UPDATE_LOGIN,
817     new_references.unit_set_cd,
818     new_references.us_version_number,
819     new_references.unit_cd,
820     new_references.unit_version_number,
821     new_references.unit_level ,
822     new_references.unit_type_id ,
823     new_references.unit_mode
824   );
825 
826   open c;
827   fetch c into X_ROWID;
828   if (c%notfound) then
829     close c;
830     raise no_data_found;
831   end if;
832   close c;
833 end INSERT_ROW;
834 
835 
836 procedure LOCK_ROW (
837   X_ROWID in VARCHAR2,
838   X_FEE_TYPE in VARCHAR2,
839   X_FEE_CAL_TYPE in VARCHAR2,
840   X_FEE_CI_SEQUENCE_NUMBER in NUMBER,
841   X_S_RELATION_TYPE in VARCHAR2,
842   X_HIST_START_DT in DATE,
843   X_RATE_NUMBER in NUMBER,
844   X_HIST_END_DT in DATE,
845   X_HIST_WHO in NUMBER,
846   X_FEE_CAT in VARCHAR2,
847   X_LOCATION_CD in VARCHAR2,
848   X_ATTENDANCE_TYPE in VARCHAR2,
849   X_ATTENDANCE_MODE in VARCHAR2,
850   X_ORDER_OF_PRECEDENCE in NUMBER,
851   X_GOVT_HECS_PAYMENT_OPTION in VARCHAR2,
852   X_GOVT_HECS_CNTRBTN_BAND in NUMBER,
853   X_CHG_RATE in NUMBER,
854   X_UNIT_CLASS IN VARCHAR2,
855   X_RESIDENCY_STATUS_CD  in  VARCHAR2 ,
856   X_COURSE_CD  in VARCHAR2 ,
857   X_VERSION_NUMBER in NUMBER ,
858   X_ORG_PARTY_ID in NUMBER ,
859   X_CLASS_STANDING  in VARCHAR2,
860   x_unit_set_cd         IN VARCHAR2,
861   x_us_version_number   IN NUMBER,
862   x_unit_cd                     IN VARCHAR2 ,
863   x_unit_version_number         IN NUMBER   ,
864   x_unit_level                  IN VARCHAR2 ,
865   x_unit_type_id                IN NUMBER   ,
866   x_unit_mode                   IN VARCHAR2
867 ) AS
868  /************************************************************************************
869  | HISTORY
870  | Who         When             What
871  | svuppala         31-MAY-2005    Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
872  |                                 Unit Version and Unit Level
873  | pathipat     10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
874  |                              Added 2 new columns unit_set_cd and us_version_number
875 **************************************************************************************/
876   cursor c1 is select
877       HIST_END_DT,
878       HIST_WHO,
879       FEE_CAT,
880       LOCATION_CD,
881       ATTENDANCE_TYPE,
882       ATTENDANCE_MODE,
883       ORDER_OF_PRECEDENCE,
884       GOVT_HECS_PAYMENT_OPTION,
885       GOVT_HECS_CNTRBTN_BAND,
886       CHG_RATE,
887       UNIT_CLASS,
888       RESIDENCY_STATUS_CD,
889       COURSE_CD,
890       VERSION_NUMBER,
891       ORG_PARTY_ID,
892       CLASS_STANDING,
893       unit_set_cd,
894       us_version_number,
895       unit_cd,
896       unit_version_number,
897       unit_level  ,
898       unit_type_id ,
899       unit_mode
900     from IGS_FI_FEE_AS_RT_H_ALL
901     where ROWID = X_ROWID
902     for update nowait;
903   tlinfo c1%rowtype;
904 begin
905   open c1;
906   fetch c1 into tlinfo;
907   if (c1%notfound) then
908     close c1;
909     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
910     IGS_GE_MSG_STACK.ADD;
911     app_exception.raise_exception;
912     return;
913   end if;
914   close c1;
915   if ( (tlinfo.HIST_END_DT = X_HIST_END_DT)
916       AND (tlinfo.HIST_WHO = X_HIST_WHO)
917       AND ((tlinfo.FEE_CAT = X_FEE_CAT)
918            OR ((tlinfo.FEE_CAT is null)
919                AND (X_FEE_CAT is null)))
920       AND ((tlinfo.LOCATION_CD = X_LOCATION_CD)
921            OR ((tlinfo.LOCATION_CD is null)
922                AND (X_LOCATION_CD is null)))
923       AND ((tlinfo.ATTENDANCE_TYPE = X_ATTENDANCE_TYPE)
924            OR ((tlinfo.ATTENDANCE_TYPE is null)
925                AND (X_ATTENDANCE_TYPE is null)))
926       AND ((tlinfo.ATTENDANCE_MODE = X_ATTENDANCE_MODE)
927            OR ((tlinfo.ATTENDANCE_MODE is null)
928                AND (X_ATTENDANCE_MODE is null)))
929       AND ((tlinfo.ORDER_OF_PRECEDENCE = X_ORDER_OF_PRECEDENCE)
930            OR ((tlinfo.ORDER_OF_PRECEDENCE is null)
931                AND (X_ORDER_OF_PRECEDENCE is null)))
932       AND ((tlinfo.GOVT_HECS_PAYMENT_OPTION = X_GOVT_HECS_PAYMENT_OPTION)
933            OR ((tlinfo.GOVT_HECS_PAYMENT_OPTION is null)
934                AND (X_GOVT_HECS_PAYMENT_OPTION is null)))
935       AND ((tlinfo.GOVT_HECS_CNTRBTN_BAND = X_GOVT_HECS_CNTRBTN_BAND)
936            OR ((tlinfo.GOVT_HECS_CNTRBTN_BAND is null)
937                AND (X_GOVT_HECS_CNTRBTN_BAND is null)))
938       AND ((tlinfo.CHG_RATE = X_CHG_RATE)
939            OR ((tlinfo.CHG_RATE is null)
940                AND (X_CHG_RATE is null)))
941       AND (tlinfo.UNIT_CLASS = X_UNIT_CLASS
942            OR (tlinfo.UNIT_CLASS is null
943                AND X_UNIT_CLASS is null))
944       AND (tlinfo.RESIDENCY_STATUS_CD = X_RESIDENCY_STATUS_CD
945            OR (tlinfo.RESIDENCY_STATUS_CD is null
946                AND X_RESIDENCY_STATUS_CD is null))
947       AND (tlinfo.COURSE_CD = X_COURSE_CD
948            OR (tlinfo.COURSE_CD is null
949                AND X_COURSE_CD is null))
950       AND (tlinfo.VERSION_NUMBER = X_VERSION_NUMBER
951            OR (tlinfo.VERSION_NUMBER is null
952                AND X_VERSION_NUMBER is null))
953       AND (tlinfo.ORG_PARTY_ID = X_ORG_PARTY_ID OR (tlinfo.ORG_PARTY_ID is null AND X_ORG_PARTY_ID is null))
954       AND (tlinfo.CLASS_STANDING = X_CLASS_STANDING OR (tlinfo.CLASS_STANDING is null AND X_CLASS_STANDING is null))
955       AND (tlinfo.unit_set_cd = x_unit_set_cd OR (tlinfo.unit_set_cd IS NULL AND x_unit_set_cd IS NULL))
956       AND (tlinfo.us_version_number = x_us_version_number OR (tlinfo.us_version_number IS NULL AND x_us_version_number IS NULL))
957       AND ((tlinfo.unit_cd = x_unit_cd) OR ((tlinfo.unit_cd IS NULL) AND (x_unit_cd IS NULL)))
958       AND ((tlinfo.unit_version_number = x_unit_version_number) OR ((tlinfo.unit_version_number IS NULL) AND (x_unit_version_number IS NULL)))
959       AND ((tlinfo.unit_level = x_unit_level) OR ((tlinfo.unit_level IS NULL)  AND (x_unit_level IS NULL)))
960       AND ((tlinfo.unit_type_id = x_unit_type_id) OR ((tlinfo.unit_type_id IS NULL) AND (x_unit_type_id IS NULL)))
961       AND ((tlinfo.unit_mode = x_unit_mode) OR ((tlinfo.unit_mode IS NULL) AND (x_unit_mode IS NULL)))
962   ) then
963     null;
964   else
965     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
966     IGS_GE_MSG_STACK.ADD;
967     app_exception.raise_exception;
968   end if;
969   return;
970 end LOCK_ROW;
971 
972 
973 procedure UPDATE_ROW (
974   X_ROWID in VARCHAR2,
975   X_FEE_TYPE in VARCHAR2,
976   X_FEE_CAL_TYPE in VARCHAR2,
977   X_FEE_CI_SEQUENCE_NUMBER in NUMBER,
978   X_S_RELATION_TYPE in VARCHAR2,
979   X_HIST_START_DT in DATE,
980   X_RATE_NUMBER in NUMBER,
981   X_HIST_END_DT in DATE,
982   X_HIST_WHO in NUMBER,
983   X_FEE_CAT in VARCHAR2,
984   X_LOCATION_CD in VARCHAR2,
985   X_ATTENDANCE_TYPE in VARCHAR2,
986   X_ATTENDANCE_MODE in VARCHAR2,
987   X_ORDER_OF_PRECEDENCE in NUMBER,
988   X_GOVT_HECS_PAYMENT_OPTION in VARCHAR2,
989   X_GOVT_HECS_CNTRBTN_BAND in NUMBER,
990   X_CHG_RATE in NUMBER,
991   X_UNIT_CLASS in VARCHAR2,
992   X_RESIDENCY_STATUS_CD  in  VARCHAR2 ,
993   X_COURSE_CD  in VARCHAR2 ,
994   X_VERSION_NUMBER in NUMBER ,
995   X_ORG_PARTY_ID in NUMBER ,
996   X_CLASS_STANDING  in VARCHAR2 ,
997   X_MODE in VARCHAR2,
1001   x_unit_version_number         IN NUMBER   ,
998   x_unit_set_cd         IN VARCHAR2,
999   x_us_version_number   IN NUMBER,
1000   x_unit_cd                     IN VARCHAR2 ,
1002   x_unit_level                  IN VARCHAR2 ,
1003   x_unit_type_id                IN NUMBER   ,
1004   x_unit_mode                   IN VARCHAR2
1005   ) AS
1006  /************************************************************************************
1007  | HISTORY
1008  | Who         When             What
1009  | svuppala     31-MAY-2005    Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
1010  |                                 Unit Version and Unit Level
1011  | pathipat     10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
1012  |                              Added 2 new columns unit_set_cd and us_version_number
1013 **************************************************************************************/
1014     X_LAST_UPDATE_DATE DATE;
1015     X_LAST_UPDATED_BY NUMBER;
1016     X_LAST_UPDATE_LOGIN NUMBER;
1017 begin
1018   X_LAST_UPDATE_DATE := SYSDATE;
1019   if(X_MODE = 'I') then
1020     X_LAST_UPDATED_BY := 1;
1021     X_LAST_UPDATE_LOGIN := 0;
1022   elsif (X_MODE = 'R') then
1023     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1024     if X_LAST_UPDATED_BY is NULL then
1025       X_LAST_UPDATED_BY := -1;
1026     end if;
1027     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
1028     if X_LAST_UPDATE_LOGIN is NULL then
1029       X_LAST_UPDATE_LOGIN := -1;
1030     end if;
1031   else
1032     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
1033     IGS_GE_MSG_STACK.ADD;
1034     app_exception.raise_exception;
1035   end if;
1036  Before_DML(
1037   p_action=>'UPDATE',
1038   x_rowid=>X_ROWID,
1039   x_attendance_mode=>X_ATTENDANCE_MODE,
1040   x_attendance_type=>X_ATTENDANCE_TYPE,
1041   x_chg_rate=>X_CHG_RATE,
1042   x_fee_cal_type=>X_FEE_CAL_TYPE,
1043   x_fee_cat=>X_FEE_CAT,
1044   x_fee_ci_sequence_number=>X_FEE_CI_SEQUENCE_NUMBER,
1045   x_fee_type=>X_FEE_TYPE,
1046   x_govt_hecs_cntrbtn_band=>X_GOVT_HECS_CNTRBTN_BAND,
1047   x_govt_hecs_payment_option=>X_GOVT_HECS_PAYMENT_OPTION,
1048   x_hist_end_dt=>X_HIST_END_DT,
1049   x_hist_start_dt=>X_HIST_START_DT,
1050   x_hist_who=>X_HIST_WHO,
1051   x_location_cd=>X_LOCATION_CD,
1052   x_order_of_precedence=>X_ORDER_OF_PRECEDENCE,
1053   x_rate_number=>X_RATE_NUMBER,
1054   x_s_relation_type=>X_S_RELATION_TYPE,
1055   x_unit_class => X_UNIT_CLASS,
1056   x_residency_status_cd => X_RESIDENCY_STATUS_CD,
1057   x_course_cd => X_COURSE_CD,
1058   x_version_number => X_VERSION_NUMBER,
1059   x_org_party_id => X_ORG_PARTY_ID,
1060   x_class_standing => X_CLASS_STANDING,
1061   x_creation_date => X_LAST_UPDATE_DATE,
1062   x_created_by => X_LAST_UPDATED_BY,
1063   x_last_update_date => X_LAST_UPDATE_DATE,
1064   x_last_updated_by => X_LAST_UPDATED_BY,
1065   x_last_update_login => X_LAST_UPDATE_LOGIN,
1066   x_unit_set_cd         => x_unit_set_cd,
1067   x_us_version_number   => x_us_version_number,
1068   x_unit_cd                     => x_unit_cd,
1069   x_unit_version_number         => x_unit_version_number,
1070   x_unit_level                  => x_unit_level ,
1071   x_unit_type_id                => x_unit_type_id,
1072   x_unit_mode                   => x_unit_mode
1073   );
1074   update IGS_FI_FEE_AS_RT_H_ALL set
1075     HIST_END_DT = NEW_REFERENCES.HIST_END_DT,
1076     HIST_WHO = NEW_REFERENCES.HIST_WHO,
1077     FEE_CAT = NEW_REFERENCES.FEE_CAT,
1078     LOCATION_CD = NEW_REFERENCES.LOCATION_CD,
1079     ATTENDANCE_TYPE = NEW_REFERENCES.ATTENDANCE_TYPE,
1080     ATTENDANCE_MODE = NEW_REFERENCES.ATTENDANCE_MODE,
1081     ORDER_OF_PRECEDENCE = NEW_REFERENCES.ORDER_OF_PRECEDENCE,
1082     GOVT_HECS_PAYMENT_OPTION = NEW_REFERENCES.GOVT_HECS_PAYMENT_OPTION,
1083     GOVT_HECS_CNTRBTN_BAND = NEW_REFERENCES.GOVT_HECS_CNTRBTN_BAND,
1084     CHG_RATE = NEW_REFERENCES.CHG_RATE,
1085     UNIT_CLASS = NEW_REFERENCES.UNIT_CLASS,
1086     RESIDENCY_STATUS_CD = NEW_REFERENCES.RESIDENCY_STATUS_CD,
1087     COURSE_CD = NEW_REFERENCES.COURSE_CD,
1088     VERSION_NUMBER = NEW_REFERENCES.VERSION_NUMBER,
1089     ORG_PARTY_ID = NEW_REFERENCES.ORG_PARTY_ID,
1090     CLASS_STANDING = NEW_REFERENCES.CLASS_STANDING,
1091     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
1092     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
1093     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
1094     unit_set_cd       = new_references.unit_set_cd,
1095     us_version_number = new_references.us_version_number,
1096     unit_cd                  = new_references.unit_cd,
1097     unit_version_number      = new_references.unit_version_number,
1098     unit_level               = new_references.unit_level ,
1099     unit_type_id             = new_references.unit_type_id,
1100     unit_mode                = new_references.unit_mode
1101   where ROWID = X_ROWID;
1102   if (sql%notfound) then
1103     raise no_data_found;
1104   end if;
1105 end UPDATE_ROW;
1106 
1107 
1108 procedure ADD_ROW (
1109   X_ROWID in out NOCOPY VARCHAR2,
1110   X_FEE_TYPE in VARCHAR2,
1111   X_FEE_CAL_TYPE in VARCHAR2,
1112   X_FEE_CI_SEQUENCE_NUMBER in NUMBER,
1113   X_S_RELATION_TYPE in VARCHAR2,
1114   X_HIST_START_DT in DATE,
1115   X_RATE_NUMBER in NUMBER,
1116   X_HIST_END_DT in DATE,
1117   X_HIST_WHO in NUMBER,
1118   X_FEE_CAT in VARCHAR2,
1119   X_LOCATION_CD in VARCHAR2,
1120   X_ATTENDANCE_TYPE in VARCHAR2,
1121   X_ATTENDANCE_MODE in VARCHAR2,
1122   X_ORDER_OF_PRECEDENCE in NUMBER,
1123   X_GOVT_HECS_PAYMENT_OPTION in VARCHAR2,
1124   X_GOVT_HECS_CNTRBTN_BAND in NUMBER,
1125   X_CHG_RATE in NUMBER,
1126   X_UNIT_CLASS in VARCHAR2,
1127   X_RESIDENCY_STATUS_CD  in  VARCHAR2 ,
1128   X_COURSE_CD  in VARCHAR2 ,
1129   X_VERSION_NUMBER in NUMBER ,
1130   X_ORG_PARTY_ID in NUMBER ,
1131   X_CLASS_STANDING  in VARCHAR2 ,
1132   X_ORG_ID in NUMBER,
1133   X_MODE in VARCHAR2,
1134   x_unit_set_cd         IN VARCHAR2,
1135   x_us_version_number   IN NUMBER,
1136   x_unit_cd                     IN VARCHAR2 ,
1137   x_unit_version_number         IN NUMBER   ,
1138   x_unit_level                  IN VARCHAR2 ,
1139   x_unit_type_id                IN NUMBER   ,
1140   x_unit_mode                   IN VARCHAR2
1141   ) AS
1142  /************************************************************************************
1143  | HISTORY
1144  | Who         When             What
1145  | svuppala         31-MAY-2005    Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
1146  |                                 Unit Version and Unit Level
1147  | pathipat     10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
1148  |                              Added 2 new columns unit_set_cd and us_version_number
1149 **************************************************************************************/
1150   cursor c1 is select rowid from IGS_FI_FEE_AS_RT_H_ALL
1151      where FEE_TYPE = X_FEE_TYPE
1152      and FEE_CAL_TYPE = X_FEE_CAL_TYPE
1153      and FEE_CI_SEQUENCE_NUMBER = X_FEE_CI_SEQUENCE_NUMBER
1154      and S_RELATION_TYPE = X_S_RELATION_TYPE
1155      and HIST_START_DT = X_HIST_START_DT
1156      and RATE_NUMBER = X_RATE_NUMBER ;
1157 begin
1158   open c1;
1159   fetch c1 into X_ROWID;
1160   if (c1%notfound) then
1161     close c1;
1162     INSERT_ROW (
1163      X_ROWID,
1164      X_FEE_TYPE,
1165      X_FEE_CAL_TYPE,
1166      X_FEE_CI_SEQUENCE_NUMBER,
1167      X_S_RELATION_TYPE,
1168      X_HIST_START_DT,
1169      X_RATE_NUMBER,
1170      X_HIST_END_DT,
1171      X_HIST_WHO,
1172      X_FEE_CAT,
1173      X_LOCATION_CD,
1174      X_ATTENDANCE_TYPE,
1175      X_ATTENDANCE_MODE,
1176      X_ORDER_OF_PRECEDENCE,
1177      X_GOVT_HECS_PAYMENT_OPTION,
1178      X_GOVT_HECS_CNTRBTN_BAND,
1179      X_CHG_RATE,
1180      X_UNIT_CLASS,
1181      X_RESIDENCY_STATUS_CD,
1182      X_COURSE_CD,
1183      X_VERSION_NUMBER,
1184      X_ORG_PARTY_ID,
1185      X_CLASS_STANDING,
1186      X_ORG_ID,
1187      X_MODE,
1188      x_unit_set_cd,
1189      x_us_version_number,
1190      x_unit_cd,
1191      x_unit_version_number,
1192      x_unit_level,
1193      x_unit_type_id,
1194      x_unit_mode
1195      );
1196     return;
1197   end if;
1198 
1199   close c1;
1200 
1201   UPDATE_ROW (
1202    X_ROWID,
1203    X_FEE_TYPE,
1204    X_FEE_CAL_TYPE,
1205    X_FEE_CI_SEQUENCE_NUMBER,
1206    X_S_RELATION_TYPE,
1207    X_HIST_START_DT,
1208    X_RATE_NUMBER,
1209    X_HIST_END_DT,
1210    X_HIST_WHO,
1211    X_FEE_CAT,
1212    X_LOCATION_CD,
1213    X_ATTENDANCE_TYPE,
1214    X_ATTENDANCE_MODE,
1215    X_ORDER_OF_PRECEDENCE,
1216    X_GOVT_HECS_PAYMENT_OPTION,
1217    X_GOVT_HECS_CNTRBTN_BAND,
1218    X_CHG_RATE,
1219    X_UNIT_CLASS,
1220    X_RESIDENCY_STATUS_CD,
1221    X_COURSE_CD,
1222    X_VERSION_NUMBER,
1223    X_ORG_PARTY_ID,
1224    X_CLASS_STANDING,
1225    X_MODE,
1226    x_unit_set_cd,
1227    x_us_version_number,
1228    x_unit_cd,
1229    x_unit_version_number,
1230    x_unit_level,
1231    x_unit_type_id,
1232    x_unit_mode
1233    );
1234 END add_row;
1235 
1236 
1237 PROCEDURE delete_row (
1238   X_ROWID in VARCHAR2
1239 ) AS
1240 BEGIN
1241    Before_DML(
1242                p_action => 'DELETE',
1243                x_rowid  => X_ROWID
1244              );
1245   DELETE FROM igs_fi_fee_as_rt_h_all
1246   WHERE rowid = x_rowid;
1247   IF (SQL%NOTFOUND) THEN
1248     RAISE NO_DATA_FOUND;
1249   END IF;
1250 END delete_row;
1251 
1252 END igs_fi_fee_as_rt_h_pkg;