DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_FI_FEE_AS_ITEMS_PKG

Source


1 PACKAGE BODY igs_fi_fee_as_items_pkg AS
2 /* $Header: IGSSI76B.pls 120.5 2005/10/05 16:48:38 appldev ship $ */
3   l_rowid VARCHAR2(25);
4   old_references igs_fi_fee_as_items%RowType;
5   new_references igs_fi_fee_as_items%RowType;
6 
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 ,
10     x_fee_ass_item_id IN NUMBER ,
11     x_TRANSACTION_ID IN NUMBER ,
12     x_person_id IN NUMBER ,
13     x_status IN VARCHAR2 ,
14     x_fee_type IN VARCHAR2 ,
15     x_fee_cat IN VARCHAR2 ,
16     x_fee_cal_type IN VARCHAR2 ,
17     x_fee_ci_sequence_number IN NUMBER ,
18     x_RUL_SEQUENCE_NUMBER IN NUMBER ,
19     x_s_chg_method_type IN VARCHAR2 ,
20     x_description IN VARCHAR2 ,
21     x_chg_elements IN NUMBER ,
22     x_amount IN NUMBER ,
23     x_fee_effective_dt IN DATE ,
24     x_course_cd IN VARCHAR2 ,
25     x_crs_version_number IN NUMBER ,
26     x_course_attempt_status IN VARCHAR2 ,
27     x_attendance_mode IN VARCHAR2 ,
28     x_attendance_type IN VARCHAR2 ,
29     x_unit_attempt_status IN VARCHAR2 ,
30     x_location_cd IN VARCHAR2 ,
31     x_eftsu IN NUMBER ,
32     x_credit_points IN NUMBER ,
33     x_logical_delete_date IN DATE ,
34     x_invoice_id  IN NUMBER ,
35     X_ORG_UNIT_CD IN VARCHAR2,
36     X_CLASS_STANDING IN VARCHAR2,
37     X_RESIDENCY_STATUS_CD IN VARCHAR2,
38     x_creation_date IN DATE ,
39     x_created_by IN NUMBER ,
40     x_last_update_date IN DATE ,
41     x_last_updated_by IN NUMBER ,
42     x_last_update_login IN NUMBER,
43     x_uoo_id IN NUMBER,
44     x_chg_rate IN VARCHAR,
45     x_unit_set_cd         IN VARCHAR2,
46     x_us_version_number   IN NUMBER,
47     x_unit_type_id        IN NUMBER ,
48     x_unit_class          IN VARCHAR2 ,
49     x_unit_mode           IN VARCHAR2 ,
50     x_unit_level          IN VARCHAR2,
51     x_scope_rul_sequence_num IN NUMBER,
52     x_elm_rng_order_name     IN VARCHAR2,
53     x_max_chg_elements       IN NUMBER
54   ) AS
55 
56   /*************************************************************
57   Created By :syam.krishnan
58   Date Created By :6-jul-2000
59   Purpose :
60   Know limitations, enhancements or remarks
61   Change History
62   Who             When            What
63   pathipat        10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
64                                   Added 2 new columns unit_set_cd and us_version_number
65   (reverse chronological order - newest change first)
66   ***************************************************************/
67 
68     CURSOR cur_old_ref_values IS
69       SELECT   *
70       FROM     IGS_FI_FEE_AS_ITEMS
71       WHERE    rowid = x_rowid;
72 
73   BEGIN
74 
75     l_rowid := x_rowid;
76 
77     -- Code for setting the Old and New Reference Values.
78     -- Populate Old Values.
79     Open cur_old_ref_values;
80     Fetch cur_old_ref_values INTO old_references;
81     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
82       Close cur_old_ref_values;
83       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
84       IGS_GE_MSG_STACK.ADD;
85       App_Exception.Raise_Exception;
86       Return;
87     END IF;
88     Close cur_old_ref_values;
89 
90     -- Populate New Values.
91     new_references.fee_ass_item_id := x_fee_ass_item_id;
92     new_references.transaction_id := x_transaction_id;
93     new_references.person_id := x_person_id;
94     new_references.status := x_status;
95     new_references.fee_type := x_fee_type;
96     new_references.fee_cat := x_fee_cat;
97     new_references.fee_cal_type := x_fee_cal_type;
98     new_references.fee_ci_sequence_number := x_fee_ci_sequence_number;
99     new_references.rul_sequence_number := x_rul_sequence_number;
100     new_references.s_chg_method_type := x_s_chg_method_type;
101     new_references.description := x_description;
102     new_references.chg_elements := x_chg_elements;
103     new_references.amount := x_amount;
104     new_references.fee_effective_dt := x_fee_effective_dt;
105     new_references.course_cd := x_course_cd;
106     new_references.crs_version_number := x_crs_version_number;
107     new_references.course_attempt_status := x_course_attempt_status;
108     new_references.attendance_mode := x_attendance_mode;
109     new_references.attendance_type := x_attendance_type;
110     new_references.unit_attempt_status := x_unit_attempt_status;
111     new_references.location_cd := x_location_cd;
112     new_references.eftsu := x_eftsu;
113     new_references.credit_points := x_credit_points;
114     new_references.logical_delete_date := x_logical_delete_date;
115     new_references.invoice_id := x_invoice_id;
116     new_references.org_unit_cd := x_org_unit_cd;
117     new_references.class_standing := x_class_standing;
118     new_references.residency_status_cd := x_residency_status_cd;
119     new_references.uoo_id := x_uoo_id;
120     new_references.chg_rate := x_chg_rate;
121     new_references.unit_set_cd := x_unit_set_cd;
122     new_references.us_version_number := x_us_version_number;
123     new_references.unit_type_id      := x_unit_type_id;
124     new_references.unit_class        := x_unit_class;
125     new_references.unit_mode         := x_unit_mode;
126     new_references.unit_level        := x_unit_level;
127     new_references.scope_rul_sequence_num  :=   x_scope_rul_sequence_num;
128     new_references.elm_rng_order_name      :=   x_elm_rng_order_name;
129     new_references.max_chg_elements        :=   x_max_chg_elements;
130 
131 
132     IF (p_action = 'UPDATE') THEN
133       new_references.creation_date := old_references.creation_date;
134       new_references.created_by := old_references.created_by;
135     ELSE
136       new_references.creation_date := x_creation_date;
137       new_references.created_by := x_created_by;
138     END IF;
139     new_references.last_update_date := x_last_update_date;
140     new_references.last_updated_by := x_last_updated_by;
141     new_references.last_update_login := x_last_update_login;
142 
143   END Set_Column_Values;
144 
145   PROCEDURE Check_Constraints (
146                  Column_Name IN VARCHAR2  ,
147                  Column_Value IN VARCHAR2  ) AS
148   /*************************************************************
149   Created By :syam.krishnan
150   Date Created By :6-jul-2000
151   Purpose :
152   Know limitations, enhancements or remarks
153   Change History
154   Who             When            What
155   bannamal       08-Jul-2005     Enh#3392088 Campus Privilege Fee.
156                                  Added 'I' while checking the status.
157   (reverse chronological order - newest change first)
158   ***************************************************************/
159 
160   BEGIN
161 
162       IF column_name IS NULL THEN
163         NULL;
164       ELSIF  UPPER(column_name) = 'STATUS'  THEN
165         new_references.status := column_value;
166         NULL;
167       END IF;
168 
169     -- The following code checks for check constraints on the Columns.
170       IF Upper(Column_Name) = 'STATUS' OR
171         Column_Name IS NULL THEN
172         IF NOT (new_references.status IN ('O', 'E', 'I'))  THEN
173            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
174       IGS_GE_MSG_STACK.ADD;
175            App_Exception.Raise_Exception;
176         END IF;
177       END IF;
178 
179   END Check_Constraints;
180 
181  PROCEDURE Check_Uniqueness AS
182   /*************************************************************
183   Created By :syam.krishnan
184   Date Created By :6-jul-2000
185   Purpose :
186   Know limitations, enhancements or remarks
187   Change History
188   Who             When            What
189 
190   (reverse chronological order - newest change first)
191   ***************************************************************/
192 
193    begin
194                 IF Get_Uk_For_Validation (
195                  new_references.transaction_id
196                 ,new_references.person_id
197                 ,new_references.location_cd
198                 ,new_references.course_cd
199                 ,new_references.crs_version_number
200                 ,new_references.fee_cal_type
201                 ,new_references.fee_cat
202                 ,new_references.fee_ci_sequence_number
203                 ,new_references.fee_type
204                 ,new_references.uoo_id,
205                 new_references.org_unit_cd
206                 ) THEN
207                 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
208       IGS_GE_MSG_STACK.ADD;
209                         app_exception.raise_exception;
210                 END IF;
211  END Check_Uniqueness ;
212 
213 PROCEDURE Check_Parent_Existance AS
214   /*************************************************************
215   Created By :syam.krishnan
216   Date Created By :6-jul-2000
217   Purpose :
218   Know limitations, enhancements or remarks
219   Change History
220   Who             When            What
221   pathipat        18-Sep-2003     Enh 3108052 - Unit Sets in Rate Table build
222                                   Added call to igs_en_unit_set_pkg.get_pk_for_validation
223   (reverse chronological order - newest change first)
224   ***************************************************************/
225 
226   BEGIN
227 
228     IF (( (old_references.s_chg_method_type = new_references.s_chg_method_type)) OR
229         ((new_references.s_chg_method_type IS NULL))) THEN
230       NULL;
231     ELSIF NOT igs_lookups_view_pkg.get_pk_for_validation('CHG_METHOD',
232         new_references.s_chg_method_type) THEN
233          Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
234       IGS_GE_MSG_STACK.ADD;
235          App_Exception.Raise_Exception;
236     END IF;
237 
238     IF ((old_references.person_id = new_references.person_id) AND
239              (old_references.transaction_id = new_references.transaction_id)) THEN
240           NULL;
241         ELSE
242           IF NOT IGS_FI_FEE_AS_PKG.Get_PK_For_Validation (
243             new_references.person_id,
244             new_references.transaction_id) THEN
245                                   Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
246           IGS_GE_MSG_STACK.ADD;
247                                 App_Exception.Raise_Exception;
248         END IF;
249     END IF;
250 
251     IF ( ((old_references.unit_set_cd = new_references.unit_set_cd)
252            AND (old_references.us_version_number = new_references.us_version_number))
253          OR ((new_references.unit_set_cd IS NULL) OR (new_references.us_version_number IS NULL))
254        ) THEN
255           NULL;
256     ELSE
257          IF NOT igs_en_unit_set_pkg.Get_PK_For_Validation (
258                            new_references.unit_set_cd,
259                            new_references.us_version_number) THEN
260                fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
261                igs_ge_msg_stack.add;
262                app_exception.raise_exception;
263          END IF;
264     END IF;
265 
266   END Check_Parent_Existance;
267 
268 
269   FUNCTION Get_PK_For_Validation (
270     x_fee_ass_item_id IN NUMBER
271     ) RETURN BOOLEAN AS
272 
273   /*************************************************************
274   Created By :syam.krishnan
275   Date Created By :6-jul-2000
276   Purpose :
277   Know limitations, enhancements or remarks
278   Change History
279   Who             When            What
280 
281   (reverse chronological order - newest change first)
282   ***************************************************************/
283 
284     CURSOR cur_rowid IS
285       SELECT   rowid
286       FROM     igs_fi_fee_as_items
287       WHERE    fee_ass_item_id = x_fee_ass_item_id
288       FOR UPDATE NOWAIT;
289 
290     lv_rowid cur_rowid%RowType;
291 
292   BEGIN
293 
294     Open cur_rowid;
295     Fetch cur_rowid INTO lv_rowid;
296     IF (cur_rowid%FOUND) THEN
297       Close cur_rowid;
298       Return(TRUE);
299     ELSE
300       Close cur_rowid;
301       Return(FALSE);
302     END IF;
303   END Get_PK_For_Validation;
304 
305 
306   ---added by syam
307   PROCEDURE GET_FK_IGS_FI_FEE_AS (
308       x_person_id IN NUMBER,
309       x_transaction_id IN NUMBER
310       ) AS
311 
312       CURSOR cur_rowid IS
313         SELECT   rowid
314         FROM     IGS_FI_FEE_AS_ITEMS
315         WHERE    person_id = x_person_id
316         AND      transaction_id = x_transaction_id;
317 
318       lv_rowid cur_rowid%RowType;
319 
320     BEGIN
321 
322       Open cur_rowid;
323       Fetch cur_rowid INTO lv_rowid;
324       IF (cur_rowid%FOUND) THEN
325         Close cur_rowid;
326         Fnd_Message.Set_Name ('IGS', 'IGS_FI_AITM_FAS_FK');
327         IGS_GE_MSG_STACK.ADD;
328         App_Exception.Raise_Exception;
329         Return;
330       END IF;
331       Close cur_rowid;
332 
333   END GET_FK_IGS_FI_FEE_AS;
334 
335   --added by syam
336 
337   FUNCTION Get_UK_For_Validation (
338     x_TRANSACTION_ID IN NUMBER,
339     x_person_id IN NUMBER,
340     x_location_cd IN VARCHAR2,
341     x_course_cd IN VARCHAR2,
342     x_crs_version_number IN NUMBER,
343     x_fee_cal_type IN VARCHAR2,
344     x_fee_cat IN VARCHAR2,
345     x_fee_ci_sequence_number IN NUMBER,
346     x_fee_type IN VARCHAR2,
347     x_uoo_id IN NUMBER,
348     x_org_unit_cd  IN VARCHAR2
349     ) RETURN BOOLEAN AS
350 
351   /*************************************************************
352   Created By :syam.krishnan
353   Date Created By :6-jul-2000
354   Purpose :
355   Know limitations, enhancements or remarks
356   Change History
357   Who       When            What
358   pathipat  05-Oct-2005     Bug 4615626 - Unhandled exception when org unit is changed
359                             Added ORG_UNIT_CD as part of UK
360   (reverse chronological order - newest change first)
361   ***************************************************************/
362 --to take care of unique keys which are nullable -syam
363     CURSOR cur_rowid IS
364       SELECT   rowid
365       FROM     igs_fi_fee_as_items
366       WHERE    person_id = x_person_id
367       AND      transaction_id = x_TRANSACTION_ID
368       AND ((LOCATION_CD = X_LOCATION_CD)  OR ((LOCATION_CD is null) AND (X_LOCATION_CD is null)))
369       AND ((COURSE_CD = X_COURSE_CD) OR ((COURSE_CD is null) AND (X_COURSE_CD is null)))
370       AND ((CRS_VERSION_NUMBER = X_CRS_VERSION_NUMBER) OR ((CRS_VERSION_NUMBER is null) AND (X_CRS_VERSION_NUMBER is null)))
371       AND      fee_cal_type = x_fee_cal_type
372       AND ((FEE_CAT = X_FEE_CAT) OR ((FEE_CAT is null) AND (X_FEE_CAT is null)))
373       AND      fee_ci_sequence_number = x_fee_ci_sequence_number
374       AND      fee_type = x_fee_type    and      ((l_rowid is null) or (rowid <> l_rowid))
375       AND ((UOO_ID = X_UOO_ID) OR ((UOO_ID is null) AND (X_UOO_ID is null)))
376       AND ((org_unit_cd = x_org_unit_cd) OR ((org_unit_cd IS NULL) AND (org_unit_cd IS NULL)));
377 
378     lv_rowid cur_rowid%RowType;
379 
380 
381   BEGIN
382 
383     Open cur_rowid;
384     Fetch cur_rowid INTO lv_rowid;
385     IF (cur_rowid%FOUND) THEN
386       Close cur_rowid;
387         return (true);
388         ELSE
389        close cur_rowid;
390       return(false);
391     END IF;
392   END Get_UK_For_Validation ;
393 
394 
395   PROCEDURE Before_DML (
396     p_action IN VARCHAR2,
397     x_rowid IN VARCHAR2 ,
398     x_fee_ass_item_id IN NUMBER ,
399     x_TRANSACTION_ID IN NUMBER ,
400     x_person_id IN NUMBER ,
401     x_status IN VARCHAR2 ,
402     x_fee_type IN VARCHAR2 ,
403     x_fee_cat IN VARCHAR2 ,
404     x_fee_cal_type IN VARCHAR2 ,
405     x_fee_ci_sequence_number IN NUMBER ,
406     x_RUL_SEQUENCE_NUMBER IN NUMBER ,
407     x_s_chg_method_type IN VARCHAR2 ,
408     x_description IN VARCHAR2 ,
409     x_chg_elements IN NUMBER ,
410     x_amount IN NUMBER ,
411     x_fee_effective_dt IN DATE ,
412     x_course_cd IN VARCHAR2 ,
413     x_crs_version_number IN NUMBER ,
414     x_course_attempt_status IN VARCHAR2 ,
415     x_attendance_mode IN VARCHAR2 ,
416     x_attendance_type IN VARCHAR2 ,
417     x_unit_attempt_status IN VARCHAR2 ,
418     x_location_cd IN VARCHAR2 ,
419     x_eftsu IN NUMBER ,
420     x_credit_points IN NUMBER ,
421     x_logical_delete_date IN DATE ,
422     x_invoice_id  IN NUMBER,
423     X_ORG_UNIT_CD IN VARCHAR2,
424     X_CLASS_STANDING IN VARCHAR2,
425     X_RESIDENCY_STATUS_CD IN VARCHAR2,
426     x_creation_date IN DATE ,
427     x_created_by IN NUMBER ,
428     x_last_update_date IN DATE ,
429     x_last_updated_by IN NUMBER ,
430     x_last_update_login IN NUMBER,
431     x_uoo_id IN NUMBER,
432     X_CHG_RATE IN VARCHAR2,
433     x_unit_set_cd         IN VARCHAR2,
434     x_us_version_number   IN NUMBER,
435     x_unit_type_id        IN NUMBER,
436     x_unit_class          IN VARCHAR2,
437     x_unit_mode           IN VARCHAR2,
438     x_unit_level          IN VARCHAR2,
439     x_scope_rul_sequence_num IN NUMBER,
440     x_elm_rng_order_name     IN VARCHAR2,
441     x_max_chg_elements       IN NUMBER
442   ) AS
443   /*************************************************************
444   Created By :syam.krishnan
445   Date Created By :6-jul-2000
446   Purpose :
447   Know limitations, enhancements or remarks
448   Change History
449   Who             When            What
450   pathipat        10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
451                                   Added 2 new columns unit_set_cd and us_version_number
452   (reverse chronological order - newest change first)
453   ***************************************************************/
454 
455   BEGIN
456 
457     Set_Column_Values (
458       p_action,
459       x_rowid,
460       x_fee_ass_item_id,
461       x_transaction_id,
462       x_person_id,
463       x_status,
464       x_fee_type,
465       x_fee_cat,
466       x_fee_cal_type,
467       x_fee_ci_sequence_number,
468       x_rul_sequence_number,
469       x_s_chg_method_type,
470       x_description,
471       x_chg_elements,
472       x_amount,
473       x_fee_effective_dt,
474       x_course_cd,
475       x_crs_version_number,
476       x_course_attempt_status,
477       x_attendance_mode,
478       x_attendance_type,
479       x_unit_attempt_status,
480       x_location_cd,
481       x_eftsu,
482       x_credit_points,
483       x_logical_delete_date,
484       x_invoice_id,
485       X_ORG_UNIT_CD,
486       X_CLASS_STANDING,
487       X_RESIDENCY_STATUS_CD,
488       x_creation_date,
489       x_created_by,
490       x_last_update_date,
491       x_last_updated_by,
492       x_last_update_login,
493       x_uoo_id,
494       x_chg_rate,
495       x_unit_set_cd,
496       x_us_version_number,
497       x_unit_type_id,
498       x_unit_class,
499       x_unit_mode,
500       x_unit_level,
501       x_scope_rul_sequence_num,
502       x_elm_rng_order_name,
503       x_max_chg_elements
504     );
505 
506     IF (p_action = 'INSERT') THEN
507       -- Call all the procedures related to Before Insert.
508       Null;
509              IF Get_Pk_For_Validation(
510                 new_references.fee_ass_item_id)  THEN
511                Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
512       IGS_GE_MSG_STACK.ADD;
513                App_Exception.Raise_Exception;
514              END IF;
515       Check_Uniqueness;
516       Check_Constraints;
517       Check_Parent_Existance;
518     ELSIF (p_action = 'UPDATE') THEN
519       -- Call all the procedures related to Before Update.
520       Null;
521       Check_Uniqueness;
522       Check_Constraints;
523 
524       Check_Parent_Existance;
525     ELSIF (p_action = 'DELETE') THEN
526       -- Call all the procedures related to Before Delete.
527       Null;
528     ELSIF (p_action = 'VALIDATE_INSERT') THEN
529          -- Call all the procedures related to Before Insert.
530       IF Get_PK_For_Validation (
531                 new_references.fee_ass_item_id)  THEN
532                Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
533       IGS_GE_MSG_STACK.ADD;
534                App_Exception.Raise_Exception;
535              END IF;
536       Check_Uniqueness;
537       Check_Constraints;
538     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
539       Check_Uniqueness;
540       Check_Constraints;
541     ELSIF (p_action = 'VALIDATE_DELETE') THEN
542       Null;
543     END IF;
544 
545   END Before_DML;
546 
547   PROCEDURE After_DML (
548     p_action IN VARCHAR2,
549     x_rowid IN VARCHAR2
550   ) IS
551   /*************************************************************
552   Created By :syam.krishnan
553   Date Created By :6-jul-2000
554   Purpose :
555   Know limitations, enhancements or remarks
556   Change History
557   Who             When            What
558 
559   (reverse chronological order - newest change first)
560   ***************************************************************/
561 
562   BEGIN
563 
564     l_rowid := x_rowid;
565 
566     IF (p_action = 'INSERT') THEN
567       -- Call all the procedures related to After Insert.
568       Null;
569     ELSIF (p_action = 'UPDATE') THEN
570       -- Call all the procedures related to After Update.
571       Null;
572     ELSIF (p_action = 'DELETE') THEN
573       -- Call all the procedures related to After Delete.
574       Null;
575     END IF;
576 
577   END After_DML;
578 
579  procedure INSERT_ROW (
580       X_ROWID in out NOCOPY VARCHAR2,
581        x_FEE_ASS_ITEM_ID IN OUT NOCOPY NUMBER,
582        x_TRANSACTION_ID IN NUMBER,
583        x_PERSON_ID IN NUMBER,
584        x_STATUS IN VARCHAR2,
585        x_FEE_TYPE IN VARCHAR2,
586        x_FEE_CAT IN VARCHAR2,
587        x_FEE_CAL_TYPE IN VARCHAR2,
588        x_FEE_CI_SEQUENCE_NUMBER IN NUMBER,
589        x_RUL_SEQUENCE_NUMBER IN NUMBER,
590        x_S_CHG_METHOD_TYPE IN VARCHAR2,
591        x_DESCRIPTION IN VARCHAR2,
592        x_CHG_ELEMENTS IN NUMBER,
593        x_AMOUNT IN NUMBER,
594        x_FEE_EFFECTIVE_DT IN DATE,
595        x_COURSE_CD IN VARCHAR2,
596        x_CRS_VERSION_NUMBER IN NUMBER,
597        x_COURSE_ATTEMPT_STATUS IN VARCHAR2,
598        x_ATTENDANCE_MODE IN VARCHAR2,
599        x_ATTENDANCE_TYPE IN VARCHAR2,
600        x_UNIT_ATTEMPT_STATUS IN VARCHAR2,
601        x_LOCATION_CD IN VARCHAR2,
602        x_EFTSU IN NUMBER,
603        x_CREDIT_POINTS IN NUMBER,
604        x_LOGICAL_DELETE_DATE IN DATE,
605        X_INVOICE_ID IN NUMBER ,
606        X_ORG_UNIT_CD IN VARCHAR2,
607        X_CLASS_STANDING IN VARCHAR2,
608        X_RESIDENCY_STATUS_CD IN VARCHAR2,
609        X_MODE in VARCHAR2,
610        x_uoo_id IN NUMBER ,
611        x_chg_rate IN VARCHAR2 ,
612        x_unit_set_cd         IN VARCHAR2,
613        x_us_version_number   IN NUMBER,
614        x_unit_type_id        IN NUMBER,
615        x_unit_class          IN VARCHAR2,
616        x_unit_mode           IN VARCHAR2,
617        x_unit_level          IN VARCHAR2,
618        x_scope_rul_sequence_num IN NUMBER,
619        x_elm_rng_order_name     IN VARCHAR2,
620        x_max_chg_elements       IN NUMBER
621   ) AS
622   /*************************************************************
623   Created By :syam.krishnan
624   Date Created By :6-jul-2000
625   Purpose :
626   Know limitations, enhancements or remarks
627   Change History
628   Who             When            What
629   pathipat        10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
630                                   Added 2 new columns unit_set_cd and us_version_number
631   (reverse chronological order - newest change first)
632   ***************************************************************/
633 
634     cursor C is select ROWID from IGS_FI_FEE_AS_ITEMS
635              where                 FEE_ASS_ITEM_ID= X_FEE_ASS_ITEM_ID;
636      X_LAST_UPDATE_DATE DATE ;
637      X_LAST_UPDATED_BY NUMBER ;
638      X_LAST_UPDATE_LOGIN NUMBER ;
639  begin
640      X_LAST_UPDATE_DATE := SYSDATE;
641       if(X_MODE = 'I') then
642         X_LAST_UPDATED_BY := 1;
643         X_LAST_UPDATE_LOGIN := 0;
644          elsif (X_MODE = 'R') then
645                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
646             if X_LAST_UPDATED_BY is NULL then
647                 X_LAST_UPDATED_BY := -1;
648             end if;
649             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
650          if X_LAST_UPDATE_LOGIN is NULL then
651             X_LAST_UPDATE_LOGIN := -1;
652           end if;
653        else
654         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
655       IGS_GE_MSG_STACK.ADD;
656           app_exception.raise_exception;
657        end if;
658     ----------------------------------
659     SELECT igs_fi_fee_as_items_s.nextval
660     INTO   X_FEE_ASS_ITEM_ID
661     FROM   dual;
662 --------------------------------------
663 
664    Before_DML(
665                 p_action=>'INSERT',
666                 x_rowid=>X_ROWID,
667                x_fee_ass_item_id=>X_FEE_ASS_ITEM_ID,
668                x_transaction_id=>X_TRANSACTION_ID,
669                x_person_id=>X_PERSON_ID,
670                x_status=>X_STATUS,
671                x_fee_type=>X_FEE_TYPE,
672                x_fee_cat=>X_FEE_CAT,
673                x_fee_cal_type=>X_FEE_CAL_TYPE,
674                x_fee_ci_sequence_number=>X_FEE_CI_SEQUENCE_NUMBER,
675                x_rul_sequence_number=>X_RUL_SEQUENCE_NUMBER,
676                x_s_chg_method_type=>X_S_CHG_METHOD_TYPE,
677                x_description=>X_DESCRIPTION,
678                x_chg_elements=>X_CHG_ELEMENTS,
679                x_amount=>X_AMOUNT,
680                x_fee_effective_dt=>X_FEE_EFFECTIVE_DT,
681                x_course_cd=>X_COURSE_CD,
682                x_crs_version_number=>X_CRS_VERSION_NUMBER,
683                x_course_attempt_status=>X_COURSE_ATTEMPT_STATUS,
684                x_attendance_mode=>X_ATTENDANCE_MODE,
685                x_attendance_type=>X_ATTENDANCE_TYPE,
686                x_unit_attempt_status=>X_UNIT_ATTEMPT_STATUS,
687                x_location_cd=>X_LOCATION_CD,
688                x_eftsu=>X_EFTSU,
689                x_credit_points=>X_CREDIT_POINTS,
690                x_logical_delete_date=>X_LOGICAL_DELETE_DATE,
691                x_invoice_id=>X_INVOICE_ID,
692                X_ORG_UNIT_CD => x_org_unit_cd,
693                X_CLASS_STANDING => x_class_standing,
694                X_RESIDENCY_STATUS_CD => x_residency_status_cd,
695                x_creation_date=>X_LAST_UPDATE_DATE,
696                x_created_by=>X_LAST_UPDATED_BY,
697                x_last_update_date=>X_LAST_UPDATE_DATE,
698                x_last_updated_by=>X_LAST_UPDATED_BY,
699                x_last_update_login=>X_LAST_UPDATE_LOGIN,
700                x_uoo_id => x_uoo_id,
701                x_chg_rate => x_chg_rate,
702                x_unit_set_cd        => x_unit_set_cd,
703                x_us_version_number  => x_us_version_number,
704                x_unit_type_id       => x_unit_type_id,
705                x_unit_class         => x_unit_class,
706                x_unit_mode          => x_unit_mode,
707                x_unit_level         => x_unit_level,
708                x_scope_rul_sequence_num =>   x_scope_rul_sequence_num,
709                x_elm_rng_order_name     =>   x_elm_rng_order_name,
710                x_max_chg_elements       =>   x_max_chg_elements
711                );
712 
713      insert into IGS_FI_FEE_AS_ITEMS (
714                  FEE_ASS_ITEM_ID
715                 ,TRANSACTION_ID
716                 ,PERSON_ID
717                 ,STATUS
718                 ,FEE_TYPE
719                 ,FEE_CAT
720                 ,FEE_CAL_TYPE
721                 ,FEE_CI_SEQUENCE_NUMBER
722                 ,RUL_SEQUENCE_NUMBER
723                 ,S_CHG_METHOD_TYPE
724                 ,DESCRIPTION
725                 ,CHG_ELEMENTS
726                 ,AMOUNT
727                 ,FEE_EFFECTIVE_DT
728                 ,COURSE_CD
729                 ,CRS_VERSION_NUMBER
730                 ,COURSE_ATTEMPT_STATUS
731                 ,ATTENDANCE_MODE
732                 ,ATTENDANCE_TYPE
733                 ,UNIT_ATTEMPT_STATUS
734                 ,LOCATION_CD
735                 ,EFTSU
736                 ,CREDIT_POINTS
737                 ,LOGICAL_DELETE_DATE
738                 ,CREATION_DATE
739                 ,CREATED_BY
740                 ,LAST_UPDATE_DATE
741                 ,LAST_UPDATED_BY
742                 ,LAST_UPDATE_LOGIN
743                 ,INVOICE_ID
744                 ,ORG_UNIT_CD
745                 ,CLASS_STANDING
746                 ,RESIDENCY_STATUS_CD
747                 ,uoo_id
748                 ,chg_rate,
749                 unit_set_cd,
750                 us_version_number,
751                 unit_type_id,
752                 unit_class,
753                 unit_mode,
754                 unit_level,
755                 scope_rul_sequence_num,
756                 elm_rng_order_name,
757                 max_chg_elements
758                 )
759        values  (
760                 NEW_REFERENCES.FEE_ASS_ITEM_ID
761                 ,NEW_REFERENCES.TRANSACTION_ID
762                 ,NEW_REFERENCES.PERSON_ID
763                 ,NEW_REFERENCES.STATUS
764                 ,NEW_REFERENCES.FEE_TYPE
765                 ,NEW_REFERENCES.FEE_CAT
766                 ,NEW_REFERENCES.FEE_CAL_TYPE
767                 ,NEW_REFERENCES.FEE_CI_SEQUENCE_NUMBER
768                 ,NEW_REFERENCES.RUL_SEQUENCE_NUMBER
769                 ,NEW_REFERENCES.S_CHG_METHOD_TYPE
770                 ,NEW_REFERENCES.DESCRIPTION
771                 ,NEW_REFERENCES.CHG_ELEMENTS
772                 ,NEW_REFERENCES.AMOUNT
773                 ,NEW_REFERENCES.FEE_EFFECTIVE_DT
774                 ,NEW_REFERENCES.COURSE_CD
775                 ,NEW_REFERENCES.CRS_VERSION_NUMBER
776                 ,NEW_REFERENCES.COURSE_ATTEMPT_STATUS
777                 ,NEW_REFERENCES.ATTENDANCE_MODE
778                 ,NEW_REFERENCES.ATTENDANCE_TYPE
779                 ,NEW_REFERENCES.UNIT_ATTEMPT_STATUS
780                 ,NEW_REFERENCES.LOCATION_CD
781                 ,NEW_REFERENCES.EFTSU
782                 ,NEW_REFERENCES.CREDIT_POINTS
783                 ,NEW_REFERENCES.LOGICAL_DELETE_DATE
784                 ,X_LAST_UPDATE_DATE
785                 ,X_LAST_UPDATED_BY
786                 ,X_LAST_UPDATE_DATE
787                 ,X_LAST_UPDATED_BY
788                 ,X_LAST_UPDATE_LOGIN
789                 ,NEW_REFERENCES.INVOICE_ID
790                 ,NEW_REFERENCES.ORG_UNIT_CD
791                 ,NEW_REFERENCES.CLASS_STANDING
792                 ,NEW_REFERENCES.RESIDENCY_STATUS_CD
793                 ,NEW_REFERENCES.UOO_ID
794                 ,NEW_REFERENCES.CHG_RATE,
795                 new_references.unit_set_cd,
796                 new_references.us_version_number,
797                 new_references.unit_type_id,
798                 new_references.unit_class,
799                 new_references.unit_mode,
800                 new_references.unit_level,
801                 new_references.scope_rul_sequence_num,
802                 new_references.elm_rng_order_name,
803                 new_references.max_chg_elements
804                 );
805                 open c;
806                  fetch c into X_ROWID;
807                 if (c%notfound) then
808                 close c;
809              raise no_data_found;
810                 end if;
811                 close c;
812     After_DML (
813                 p_action => 'INSERT' ,
814                 x_rowid => X_ROWID );
815 end INSERT_ROW;
816 
817 
818  procedure LOCK_ROW (
819       X_ROWID in  VARCHAR2,
820        x_FEE_ASS_ITEM_ID IN NUMBER,
821        x_TRANSACTION_ID IN NUMBER,
822        x_PERSON_ID IN NUMBER,
823        x_STATUS IN VARCHAR2,
824        x_FEE_TYPE IN VARCHAR2,
825        x_FEE_CAT IN VARCHAR2,
826        x_FEE_CAL_TYPE IN VARCHAR2,
827        x_FEE_CI_SEQUENCE_NUMBER IN NUMBER,
828        x_RUL_SEQUENCE_NUMBER IN NUMBER,
829        x_S_CHG_METHOD_TYPE IN VARCHAR2,
830        x_DESCRIPTION IN VARCHAR2,
831        x_CHG_ELEMENTS IN NUMBER,
832        x_AMOUNT IN NUMBER,
833        x_FEE_EFFECTIVE_DT IN DATE,
834        x_COURSE_CD IN VARCHAR2,
835        x_CRS_VERSION_NUMBER IN NUMBER,
836        x_COURSE_ATTEMPT_STATUS IN VARCHAR2,
837        x_ATTENDANCE_MODE IN VARCHAR2,
838        x_ATTENDANCE_TYPE IN VARCHAR2,
839        x_UNIT_ATTEMPT_STATUS IN VARCHAR2,
840        x_LOCATION_CD IN VARCHAR2,
841        x_EFTSU IN NUMBER,
842        x_CREDIT_POINTS IN NUMBER,
843        x_LOGICAL_DELETE_DATE IN DATE,
844        X_INVOICE_ID IN NUMBER,
845        X_ORG_UNIT_CD IN VARCHAR2,
846        X_CLASS_STANDING IN VARCHAR2,
847        X_RESIDENCY_STATUS_CD IN VARCHAR2,
848        X_UOO_ID IN NUMBER,
849        x_chg_rate IN VARCHAR2,
850        x_unit_set_cd         IN VARCHAR2,
851        x_us_version_number   IN NUMBER,
852        x_unit_type_id        IN NUMBER,
853        x_unit_class          IN VARCHAR2,
854        x_unit_mode           IN VARCHAR2,
855        x_unit_level          IN VARCHAR2,
856        x_scope_rul_sequence_num IN NUMBER,
857        x_elm_rng_order_name     IN VARCHAR2,
858        x_max_chg_elements       IN NUMBER
859  )AS
860   /*************************************************************
861   Created By :syam.krishnan
862   Date Created By :6-jul-2000
863   Purpose :
864   Know limitations, enhancements or remarks
865   Change History
866   Who             When            What
867   pathipat        10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
868                                   Added 2 new columns unit_set_cd and us_version_number
869   (reverse chronological order - newest change first)
870   ***************************************************************/
871 
872    cursor c1 is select
873       transaction_id ,
874       person_id,
875       status,
876       fee_type,
877       fee_cat,
878       fee_cal_type,
879       fee_ci_sequence_number,
880       rul_sequence_number,
881       s_chg_method_type,
882       description,
883       chg_elements,
884       amount,
885       fee_effective_dt,
886       course_cd,
887       crs_version_number,
888       course_attempt_status,
889       attendance_mode,
890       attendance_type,
891       unit_attempt_status,
892       location_cd,
893       eftsu,
894       credit_points,
895       logical_delete_date,
896       invoice_id,
897       org_unit_cd,
898       class_standing,
899       residency_status_cd,
900       uoo_id,
901       chg_rate,
902       unit_set_cd,
903       us_version_number,
904       unit_type_id,
905       unit_class,
906       unit_mode,
907       unit_level,
908       scope_rul_sequence_num,
909       elm_rng_order_name,
910       max_chg_elements
911     FROM igs_fi_fee_as_items
912     WHERE rowid = x_rowid
913     FOR UPDATE NOWAIT;
914     tlinfo c1%rowtype;
915 begin
916   open c1;
917   fetch c1 into tlinfo;
918   if (c1%notfound) then
919     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
920       IGS_GE_MSG_STACK.ADD;
921     close c1;
922     app_exception.raise_exception;
923     return;
924   end if;
925   close c1;
926 if (  (tlinfo.TRANSACTION_ID = X_TRANSACTION_ID)
927   AND (tlinfo.PERSON_ID = X_PERSON_ID)
928   AND (tlinfo.STATUS = X_STATUS)
929   AND (tlinfo.FEE_TYPE = X_FEE_TYPE)
930   AND ((tlinfo.FEE_CAT = X_FEE_CAT)
931             OR ((tlinfo.FEE_CAT is null)
932                 AND (X_FEE_CAT is null)))
933   AND (tlinfo.FEE_CAL_TYPE = X_FEE_CAL_TYPE)
934   AND (tlinfo.FEE_CI_SEQUENCE_NUMBER = X_FEE_CI_SEQUENCE_NUMBER)
935   AND ((tlinfo.RUL_SEQUENCE_NUMBER = X_RUL_SEQUENCE_NUMBER)
936             OR ((tlinfo.RUL_SEQUENCE_NUMBER is null)
937                 AND (X_RUL_SEQUENCE_NUMBER is null)))
938   AND (tlinfo.S_CHG_METHOD_TYPE = X_S_CHG_METHOD_TYPE)
939   AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
940             OR ((tlinfo.DESCRIPTION is null)
941                 AND (X_DESCRIPTION is null)))
942   AND ((tlinfo.CHG_ELEMENTS = X_CHG_ELEMENTS)
943             OR ((tlinfo.CHG_ELEMENTS is null)
944                 AND (X_CHG_ELEMENTS is null)))
945   AND ((tlinfo.AMOUNT = X_AMOUNT)
946             OR ((tlinfo.AMOUNT is null)
947                 AND (X_AMOUNT is null)))
948   AND ((tlinfo.FEE_EFFECTIVE_DT = X_FEE_EFFECTIVE_DT)
949             OR ((tlinfo.FEE_EFFECTIVE_DT is null)
950                 AND (X_FEE_EFFECTIVE_DT is null)))
951   AND ((tlinfo.COURSE_CD = X_COURSE_CD)
952             OR ((tlinfo.COURSE_CD is null)
953                 AND (X_COURSE_CD is null)))
954   AND ((tlinfo.CRS_VERSION_NUMBER = X_CRS_VERSION_NUMBER)
955             OR ((tlinfo.CRS_VERSION_NUMBER is null)
956                 AND (X_CRS_VERSION_NUMBER is null)))
957   AND ((tlinfo.COURSE_ATTEMPT_STATUS = X_COURSE_ATTEMPT_STATUS)
958             OR ((tlinfo.COURSE_ATTEMPT_STATUS is null)
959                 AND (X_COURSE_ATTEMPT_STATUS is null)))
960   AND ((tlinfo.ATTENDANCE_MODE = X_ATTENDANCE_MODE)
961             OR ((tlinfo.ATTENDANCE_MODE is null)
962                 AND (X_ATTENDANCE_MODE is null)))
963   AND ((tlinfo.ATTENDANCE_TYPE = X_ATTENDANCE_TYPE)
964             OR ((tlinfo.ATTENDANCE_TYPE is null)
965                 AND (X_ATTENDANCE_TYPE is null)))
966   AND ((tlinfo.UNIT_ATTEMPT_STATUS = X_UNIT_ATTEMPT_STATUS)
967             OR ((tlinfo.UNIT_ATTEMPT_STATUS is null)
968                 AND (X_UNIT_ATTEMPT_STATUS is null)))
969   AND ((tlinfo.LOCATION_CD = X_LOCATION_CD)
970             OR ((tlinfo.LOCATION_CD is null)
971                 AND (X_LOCATION_CD is null)))
972   AND ((tlinfo.EFTSU = X_EFTSU)
973             OR ((tlinfo.EFTSU is null)
974                 AND (X_EFTSU is null)))
975   AND ((tlinfo.CREDIT_POINTS = X_CREDIT_POINTS)
976             OR ((tlinfo.CREDIT_POINTS is null)
977                 AND (X_CREDIT_POINTS is null)))
978   AND ((tlinfo.LOGICAL_DELETE_DATE = X_LOGICAL_DELETE_DATE)
979             OR ((tlinfo.LOGICAL_DELETE_DATE is null)
980                 AND (X_LOGICAL_DELETE_DATE is null)))
981   AND ((tlinfo.INVOICE_ID = X_INVOICE_ID)
982             OR ((tlinfo.INVOICE_ID is null)
983                 AND (X_INVOICE_ID is null)))
984   AND ((tlinfo.ORG_UNIT_CD = X_ORG_UNIT_CD)
985             OR ((tlinfo.ORG_UNIT_CD is null)
986                 AND (X_ORG_UNIT_CD is null)))
987   AND ((tlinfo.CLASS_STANDING = X_CLASS_STANDING)
988             OR ((tlinfo.CLASS_STANDING is null)
989                 AND (X_CLASS_STANDING is null)))
990   AND ((tlinfo.RESIDENCY_STATUS_CD = X_RESIDENCY_STATUS_CD)
991             OR ((tlinfo.RESIDENCY_STATUS_CD is null)
992                 AND (X_RESIDENCY_STATUS_CD is null)))
993   AND ((tlinfo.UOO_ID = X_UOO_ID)
994             OR ((tlinfo.UOO_ID is null)
995                 AND (X_UOO_ID is null)))
996  AND ((tlinfo.CHG_RATE = X_CHG_RATE)
997             OR ((tlinfo.CHG_RATE is null)
998                 AND (X_CHG_RATE is null)))
999  AND ((tlinfo.unit_set_cd = x_unit_set_cd) OR ((tlinfo.unit_set_cd IS NULL) AND (x_unit_set_cd IS NULL)))
1000  AND ((tlinfo.us_version_number = x_us_version_number) OR ((tlinfo.us_version_number IS NULL) AND (x_us_version_number IS NULL)))
1001  AND ((tlinfo.unit_type_id = x_unit_type_id) OR ((tlinfo.unit_type_id IS NULL) AND (x_unit_type_id IS NULL)))
1002  AND ((tlinfo.unit_class = x_unit_class) OR ((tlinfo.unit_class IS NULL) AND (x_unit_class IS NULL)))
1003  AND ((tlinfo.unit_mode = x_unit_mode) OR ((tlinfo.unit_mode IS NULL) AND (x_unit_mode IS NULL)))
1004  AND ((tlinfo.unit_level = x_unit_level) OR ((tlinfo.unit_level IS NULL) AND (x_unit_level IS NULL)))
1005  AND ((tlinfo.scope_rul_sequence_num = x_scope_rul_sequence_num) OR ((tlinfo.scope_rul_sequence_num IS NULL) AND (x_scope_rul_sequence_num IS NULL)))
1006  AND ((tlinfo.elm_rng_order_name = x_elm_rng_order_name) OR ((tlinfo.elm_rng_order_name IS NULL) AND (x_elm_rng_order_name IS NULL)))
1007  AND ((tlinfo.max_chg_elements = x_max_chg_elements) OR ((tlinfo.max_chg_elements IS NULL) AND (x_max_chg_elements IS NULL)))
1008  ) THEN
1009     NULL;
1010   ELSE
1011       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
1012       igs_ge_msg_stack.add;
1013       app_exception.raise_exception;
1014   END IF;
1015   RETURN;
1016 END lock_row;
1017 
1018 
1019  Procedure UPDATE_ROW (
1020       X_ROWID in  VARCHAR2,
1021        x_FEE_ASS_ITEM_ID IN NUMBER,
1022        x_TRANSACTION_ID IN NUMBER,
1023        x_PERSON_ID IN NUMBER,
1024        x_STATUS IN VARCHAR2,
1025        x_FEE_TYPE IN VARCHAR2,
1026        x_FEE_CAT IN VARCHAR2,
1027        x_FEE_CAL_TYPE IN VARCHAR2,
1028        x_FEE_CI_SEQUENCE_NUMBER IN NUMBER,
1029        x_RUL_SEQUENCE_NUMBER IN NUMBER,
1030        x_S_CHG_METHOD_TYPE IN VARCHAR2,
1031        x_DESCRIPTION IN VARCHAR2,
1032        x_CHG_ELEMENTS IN NUMBER,
1033        x_AMOUNT IN NUMBER,
1034        x_FEE_EFFECTIVE_DT IN DATE,
1035        x_COURSE_CD IN VARCHAR2,
1036        x_CRS_VERSION_NUMBER IN NUMBER,
1037        x_COURSE_ATTEMPT_STATUS IN VARCHAR2,
1038        x_ATTENDANCE_MODE IN VARCHAR2,
1039        x_ATTENDANCE_TYPE IN VARCHAR2,
1040        x_UNIT_ATTEMPT_STATUS IN VARCHAR2,
1041        x_LOCATION_CD IN VARCHAR2,
1042        x_EFTSU IN NUMBER,
1043        x_CREDIT_POINTS IN NUMBER,
1044        x_LOGICAL_DELETE_DATE IN DATE,
1045        X_INVOICE_ID IN NUMBER,
1046        X_ORG_UNIT_CD IN VARCHAR2,
1047        X_CLASS_STANDING IN VARCHAR2,
1048        X_RESIDENCY_STATUS_CD IN VARCHAR2,
1049       X_MODE in VARCHAR2 ,
1050       X_UOO_ID IN NUMBER,
1051       X_CHG_RATE IN VARCHAR2,
1052        x_unit_set_cd         IN VARCHAR2,
1053        x_us_version_number   IN NUMBER,
1054        x_unit_type_id        IN NUMBER,
1055        x_unit_class          IN VARCHAR2,
1056        x_unit_mode           IN VARCHAR2,
1057        x_unit_level          IN VARCHAR2,
1058        x_scope_rul_sequence_num IN NUMBER,
1059        x_elm_rng_order_name     IN VARCHAR2,
1060        x_max_chg_elements       IN NUMBER
1061   ) AS
1062   /*************************************************************
1063   Created By :syam.krishnan
1064   Date Created By :6-jul-2000
1065   Purpose :
1066   Know limitations, enhancements or remarks
1067   Change History
1068   Who             When            What
1069   pathipat        10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
1070                                   Added 2 new columns unit_set_cd and us_version_number
1071   (reverse chronological order - newest change first)
1072   ***************************************************************/
1073 
1074      X_LAST_UPDATE_DATE DATE ;
1075      X_LAST_UPDATED_BY NUMBER ;
1076      X_LAST_UPDATE_LOGIN NUMBER ;
1077  begin
1078      X_LAST_UPDATE_DATE := SYSDATE;
1079       if(X_MODE = 'I') then
1080         X_LAST_UPDATED_BY := 1;
1081         X_LAST_UPDATE_LOGIN := 0;
1082          elsif (X_MODE = 'R') then
1083                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1084             if X_LAST_UPDATED_BY is NULL then
1085                 X_LAST_UPDATED_BY := -1;
1086             end if;
1087             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
1088          if X_LAST_UPDATE_LOGIN is NULL then
1089             X_LAST_UPDATE_LOGIN := -1;
1090           end if;
1091        else
1092         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
1093       IGS_GE_MSG_STACK.ADD;
1094           app_exception.raise_exception;
1095        end if;
1096    Before_DML(
1097                 p_action=>'UPDATE',
1098                 x_rowid=>X_ROWID,
1099                x_fee_ass_item_id=>X_FEE_ASS_ITEM_ID,
1100                x_transaction_id=>X_TRANSACTION_ID,
1101                x_person_id=>X_PERSON_ID,
1102                x_status=>X_STATUS,
1103                x_fee_type=>X_FEE_TYPE,
1104                x_fee_cat=>X_FEE_CAT,
1105                x_fee_cal_type=>X_FEE_CAL_TYPE,
1106                x_fee_ci_sequence_number=>X_FEE_CI_SEQUENCE_NUMBER,
1107                x_rul_sequence_number=>X_RUL_SEQUENCE_NUMBER,
1108                x_s_chg_method_type=>X_S_CHG_METHOD_TYPE,
1109                x_description=>X_DESCRIPTION,
1110                x_chg_elements=>X_CHG_ELEMENTS,
1111                x_amount=>X_AMOUNT,
1112                x_fee_effective_dt=>X_FEE_EFFECTIVE_DT,
1113                x_course_cd=>X_COURSE_CD,
1114                x_crs_version_number=>X_CRS_VERSION_NUMBER,
1115                x_course_attempt_status=>X_COURSE_ATTEMPT_STATUS,
1116                x_attendance_mode=>X_ATTENDANCE_MODE,
1117                x_attendance_type=>X_ATTENDANCE_TYPE,
1118                x_unit_attempt_status=>X_UNIT_ATTEMPT_STATUS,
1119                x_location_cd=>X_LOCATION_CD,
1120                x_eftsu=>X_EFTSU,
1121                x_credit_points=>X_CREDIT_POINTS,
1122                x_logical_delete_date=>X_LOGICAL_DELETE_DATE,
1123                x_invoice_id=>x_invoice_id,
1124                x_org_unit_cd =>x_org_unit_cd,
1125                x_class_standing =>x_class_standing,
1126                x_residency_status_cd =>x_residency_status_cd,
1127                x_creation_date=>X_LAST_UPDATE_DATE,
1128                x_created_by=>X_LAST_UPDATED_BY,
1129                x_last_update_date=>X_LAST_UPDATE_DATE,
1130                x_last_updated_by=>X_LAST_UPDATED_BY,
1131                x_last_update_login=>X_LAST_UPDATE_LOGIN,
1132                x_uoo_id => x_uoo_id,
1133                x_chg_rate =>x_chg_rate,
1134                x_unit_set_cd         => x_unit_set_cd,
1135                x_us_version_number   => x_us_version_number,
1136                x_unit_type_id        => x_unit_type_id,
1137                x_unit_class          => x_unit_class,
1138                x_unit_mode           => x_unit_mode,
1139                x_unit_level          => x_unit_level,
1140                x_scope_rul_sequence_num => x_scope_rul_sequence_num,
1141                x_elm_rng_order_name     => x_elm_rng_order_name,
1142                x_max_chg_elements       => x_max_chg_elements
1143                );
1144 
1145    update IGS_FI_FEE_AS_ITEMS set
1146       TRANSACTION_ID =  NEW_REFERENCES.TRANSACTION_ID,
1147       PERSON_ID =  NEW_REFERENCES.PERSON_ID,
1148       STATUS =  NEW_REFERENCES.STATUS,
1149       FEE_TYPE =  NEW_REFERENCES.FEE_TYPE,
1150       FEE_CAT =  NEW_REFERENCES.FEE_CAT,
1151       FEE_CAL_TYPE =  NEW_REFERENCES.FEE_CAL_TYPE,
1152       FEE_CI_SEQUENCE_NUMBER =  NEW_REFERENCES.FEE_CI_SEQUENCE_NUMBER,
1153       RUL_SEQUENCE_NUMBER =  NEW_REFERENCES.RUL_SEQUENCE_NUMBER,
1154       S_CHG_METHOD_TYPE =  NEW_REFERENCES.S_CHG_METHOD_TYPE,
1155       DESCRIPTION =  NEW_REFERENCES.DESCRIPTION,
1156       CHG_ELEMENTS =  NEW_REFERENCES.CHG_ELEMENTS,
1157       AMOUNT =  NEW_REFERENCES.AMOUNT,
1158       FEE_EFFECTIVE_DT =  NEW_REFERENCES.FEE_EFFECTIVE_DT,
1159       COURSE_CD =  NEW_REFERENCES.COURSE_CD,
1160       CRS_VERSION_NUMBER =  NEW_REFERENCES.CRS_VERSION_NUMBER,
1161       COURSE_ATTEMPT_STATUS =  NEW_REFERENCES.COURSE_ATTEMPT_STATUS,
1162       ATTENDANCE_MODE =  NEW_REFERENCES.ATTENDANCE_MODE,
1163       ATTENDANCE_TYPE =  NEW_REFERENCES.ATTENDANCE_TYPE,
1164       UNIT_ATTEMPT_STATUS =  NEW_REFERENCES.UNIT_ATTEMPT_STATUS,
1165       LOCATION_CD =  NEW_REFERENCES.LOCATION_CD,
1166       EFTSU =  NEW_REFERENCES.EFTSU,
1167       CREDIT_POINTS =  NEW_REFERENCES.CREDIT_POINTS,
1168       LOGICAL_DELETE_DATE =  NEW_REFERENCES.LOGICAL_DELETE_DATE,
1169       INVOICE_ID = NEW_REFERENCES.INVOICE_ID,
1170       ORG_UNIT_CD = NEW_REFERENCES.ORG_UNIT_CD,
1171       CLASS_STANDING = NEW_REFERENCES.CLASS_STANDING,
1172       RESIDENCY_STATUS_CD = NEW_REFERENCES.RESIDENCY_STATUS_CD,
1173       LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
1174       LAST_UPDATED_BY = X_LAST_UPDATED_BY,
1175       LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
1176       UOO_ID = NEW_REFERENCES.UOO_ID,
1177       CHG_RATE = NEW_REFERENCES.CHG_RATE,
1178       unit_set_cd = new_references.unit_set_cd,
1179       us_version_number = new_references.us_version_number,
1180       unit_type_id = new_references.unit_type_id,
1181       unit_class   = new_references.unit_class,
1182       unit_mode    = new_references.unit_mode,
1183       unit_level   = new_references.unit_level,
1184       scope_rul_sequence_num = new_references.scope_rul_sequence_num,
1185       elm_rng_order_name     = new_references.elm_rng_order_name,
1186       max_chg_elements       = new_references.max_chg_elements
1187     where ROWID = X_ROWID;
1188         if (sql%notfound) then
1189                 raise no_data_found;
1190         end if;
1191 
1192  After_DML (
1193         p_action => 'UPDATE' ,
1194         x_rowid => X_ROWID
1195         );
1196 END update_row;
1197 
1198 
1199  procedure ADD_ROW (
1200       X_ROWID in out NOCOPY VARCHAR2,
1201        x_FEE_ASS_ITEM_ID IN OUT NOCOPY NUMBER,
1202        x_TRANSACTION_ID IN NUMBER,
1203        x_PERSON_ID IN NUMBER,
1204        x_STATUS IN VARCHAR2,
1205        x_FEE_TYPE IN VARCHAR2,
1206        x_FEE_CAT IN VARCHAR2,
1207        x_FEE_CAL_TYPE IN VARCHAR2,
1208        x_FEE_CI_SEQUENCE_NUMBER IN NUMBER,
1209        x_RUL_SEQUENCE_NUMBER IN NUMBER,
1210        x_S_CHG_METHOD_TYPE IN VARCHAR2,
1211        x_DESCRIPTION IN VARCHAR2,
1212        x_CHG_ELEMENTS IN NUMBER,
1213        x_AMOUNT IN NUMBER,
1214        x_FEE_EFFECTIVE_DT IN DATE,
1215        x_COURSE_CD IN VARCHAR2,
1216        x_CRS_VERSION_NUMBER IN NUMBER,
1217        x_COURSE_ATTEMPT_STATUS IN VARCHAR2,
1218        x_ATTENDANCE_MODE IN VARCHAR2,
1219        x_ATTENDANCE_TYPE IN VARCHAR2,
1220        x_UNIT_ATTEMPT_STATUS IN VARCHAR2,
1221        x_LOCATION_CD IN VARCHAR2,
1222        x_EFTSU IN NUMBER,
1223        x_CREDIT_POINTS IN NUMBER,
1224        x_LOGICAL_DELETE_DATE IN DATE,
1225        X_INVOICE_ID IN NUMBER,
1226        X_ORG_UNIT_CD IN VARCHAR2,
1227        X_CLASS_STANDING IN VARCHAR2,
1228        X_RESIDENCY_STATUS_CD IN VARCHAR2,
1229        X_MODE in VARCHAR2,
1230        X_UOO_ID IN NUMBER,
1231        X_CHG_RATE in VARCHAR2 ,
1232        x_unit_set_cd         IN VARCHAR2,
1233        x_us_version_number   IN NUMBER,
1234        x_unit_type_id        IN NUMBER,
1235        x_unit_class          IN VARCHAR2,
1236        x_unit_mode           IN VARCHAR2,
1237        x_unit_level          IN VARCHAR2,
1238        x_scope_rul_sequence_num IN NUMBER,
1239        x_elm_rng_order_name     IN VARCHAR2,
1240        x_max_chg_elements       IN NUMBER
1241   ) AS
1242   /*************************************************************
1243   Created By :syam.krishnan
1244   Date Created By :06-jul-2000
1245   Purpose :
1246   Know limitations, enhancements or remarks
1247   Change History
1248   Who             When            What
1249   pathipat        10-Sep-2003     Enh 3108052 - Add Unit Sets to Rate Table
1250                                   Added 2 new columns unit_set_cd and us_version_number
1251   (reverse chronological order - newest change first)
1252   ***************************************************************/
1253   CURSOR c1 IS
1254     SELECT rowid FROM igs_fi_fee_as_items
1255     WHERE  fee_ass_item_id = x_fee_ass_item_id;
1256   BEGIN
1257         OPEN c1;
1258         FETCH c1 INTO x_rowid;
1259         IF (C1%NOTFOUND) THEN
1260            CLOSE c1;
1261            insert_row (
1262                x_rowid,
1263                x_fee_ass_item_id,
1264                x_transaction_id,
1265                x_person_id,
1266                x_status,
1267                x_fee_type,
1268                x_fee_cat,
1269                x_fee_cal_type,
1270                x_fee_ci_sequence_number,
1271                x_rul_sequence_number,
1272                x_s_chg_method_type,
1273                x_description,
1274                x_chg_elements,
1275                x_amount,
1276                x_fee_effective_dt,
1277                x_course_cd,
1278                x_crs_version_number,
1279                x_course_attempt_status,
1280                x_attendance_mode,
1281                x_attendance_type,
1282                x_unit_attempt_status,
1283                x_location_cd,
1284                x_eftsu,
1285                x_credit_points,
1286                x_logical_delete_date,
1287                x_invoice_id,
1288                x_org_unit_cd,
1289                x_class_standing,
1290                x_residency_status_cd,
1291                x_mode,
1292                x_uoo_id,
1293                x_chg_rate,
1294                x_unit_set_cd,
1295                x_us_version_number,
1296                x_unit_type_id,
1297                x_unit_class,
1298                x_unit_mode,
1299                x_unit_level,
1300                x_scope_rul_sequence_num,
1301                x_elm_rng_order_name,
1302                x_max_chg_elements
1303                );
1304              RETURN;
1305         END IF;
1306         CLOSE c1;
1307 
1308       update_row (
1309                x_rowid,
1310                x_fee_ass_item_id,
1311                x_transaction_id,
1312                x_person_id,
1313                x_status,
1314                x_fee_type,
1315                x_fee_cat,
1316                x_fee_cal_type,
1317                x_fee_ci_sequence_number,
1318                x_rul_sequence_number,
1319                x_s_chg_method_type,
1320                x_description,
1321                x_chg_elements,
1322                x_amount,
1323                x_fee_effective_dt,
1324                x_course_cd,
1325                x_crs_version_number,
1326                x_course_attempt_status,
1327                x_attendance_mode,
1328                x_attendance_type,
1329                x_unit_attempt_status,
1330                x_location_cd,
1331                x_eftsu,
1332                x_credit_points,
1333                x_logical_delete_date,
1334                x_invoice_id,
1335                x_org_unit_cd,
1336                x_class_standing,
1337                x_residency_status_cd,
1338                x_mode,
1339                x_uoo_id,
1340                x_chg_rate ,
1341                x_unit_set_cd,
1342                x_us_version_number,
1343                x_unit_type_id,
1344                x_unit_class,
1345                x_unit_mode,
1346                x_unit_level,
1347                x_scope_rul_sequence_num,
1348                x_elm_rng_order_name,
1349                x_max_chg_elements
1350                );
1351   END add_row;
1352 
1353 PROCEDURE delete_row ( x_rowid IN VARCHAR2 ) AS
1354   /*************************************************************
1355   Created By :syam.krishnan
1356   Date Created By :6-jul-2000
1357   Purpose :
1358   Know limitations, enhancements or remarks
1359   Change History
1360   Who             When            What
1361 
1362   (reverse chronological order - newest change first)
1363   ***************************************************************/
1364 BEGIN
1365    before_dml (
1366                p_action => 'DELETE',
1367                x_rowid => x_rowid
1368               );
1369 
1370    DELETE FROM igs_fi_fee_as_items
1371    WHERE rowid = x_rowid;
1372 
1373    IF (SQL%NOTFOUND) THEN
1374       RAISE NO_DATA_FOUND;
1375    END IF;
1376 
1377    after_dml (
1378               p_action => 'DELETE',
1379               x_rowid => x_rowid
1380             );
1381 END delete_row;
1382 
1383 PROCEDURE get_fk_igs_en_unit_set_all (
1384            x_unit_set_cd       IN VARCHAR2,
1385            x_us_version_number IN NUMBER ) AS
1386   /*************************************************************
1387   Created By : Priya Athipatla
1388   Date Created By : 18-Sep-2003
1389   Purpose : FK relation with igs_en_unit_set_all
1390   Know limitations, enhancements or remarks
1391   Change History
1392   Who             When            What
1393   (reverse chronological order - newest change first)
1394   ***************************************************************/
1395   CURSOR cur_rowid IS
1396     SELECT   rowid
1397     FROM     igs_fi_fee_as_items
1398     WHERE    unit_set_cd = x_unit_set_cd
1399     AND      us_version_number =  x_us_version_number;
1400 
1401   lv_rowid   cur_rowid%ROWTYPE;
1402 
1403 BEGIN
1404       OPEN cur_rowid;
1405       FETCH cur_rowid INTO lv_rowid;
1406       IF (cur_rowid%FOUND) THEN
1407         CLOSE cur_rowid;
1408         fnd_message.set_name('IGS', 'IGS_FI_FAI_EUS_FK');
1409         igs_ge_msg_stack.add;
1410         app_exception.raise_exception;
1411         RETURN;
1412       END IF;
1413       CLOSE cur_rowid;
1414 END get_fk_igs_en_unit_set_all;
1415 
1416 END igs_fi_fee_as_items_pkg;