DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_FI_F_CAT_FEE_LBL_PKG

Source


1 package body IGS_FI_F_CAT_FEE_LBL_PKG AS
2 /* $Header: IGSSI45B.pls 120.1 2005/07/28 07:04:52 appldev ship $ */
3   l_rowid VARCHAR2(25);
4   old_references IGS_FI_F_CAT_FEE_LBL_ALL%RowType;
5   new_references IGS_FI_F_CAT_FEE_LBL_ALL%RowType;
6   PROCEDURE Set_Column_Values (
7     p_action IN VARCHAR2,
8     x_rowid IN VARCHAR2 ,
9     x_fee_cat IN VARCHAR2 ,
10     x_fee_cal_type IN VARCHAR2 ,
11     x_fee_ci_sequence_number IN NUMBER ,
12     x_fee_type IN VARCHAR2 ,
13     x_fee_liability_status IN VARCHAR2 ,
14     x_start_dt_alias IN VARCHAR2 ,
15     x_start_dai_sequence_number IN NUMBER ,
16     x_s_chg_method_type IN VARCHAR2 ,
17     x_rul_sequence_number IN NUMBER ,
18     x_org_id IN NUMBER ,
19     x_creation_date IN DATE ,
20     x_created_by IN NUMBER ,
21     x_last_update_date IN DATE ,
22     x_last_updated_by IN NUMBER ,
23     x_last_update_login IN NUMBER,
24     x_waiver_calc_flag IN VARCHAR2
25   ) AS
26   /*----------------------------------------------------------------------------
27   ||  Created By :
28   ||  Created On :
29   ||  Purpose :
30   ||  Known limitations, enhancements or remarks :
31   ||  Change History :
32   ||  Who             When            What
33   ||  (reverse chronological order - newest change first)
34   ||  smvk            02-Sep-2002  Default values are removed from the signature of this procedure to overcome
35   ||                               File.Pkg.22 gscc warning.As a part of Build SFCR005_Cleanup_Build (Enhancement Bug # 2531390)
36   ||  vvutukur        19-Jul-2002  Bug#2425767.removed parameter x_payment_hierarchy_rank
37   ||                               and its reference in copying old_references value
38   ||                               into new_references value.
39   ----------------------------------------------------------------------------*/
40     CURSOR cur_old_ref_values IS
41       SELECT   *
42       FROM     IGS_FI_F_CAT_FEE_LBL_ALL
43       WHERE    rowid = x_rowid;
44   BEGIN
45     l_rowid := x_rowid;
46     -- Code for setting the Old and New Reference Values.
47     -- Populate Old Values.
48     Open cur_old_ref_values;
49     Fetch cur_old_ref_values INTO old_references;
50     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
51       Close cur_old_ref_values;
52       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
53 	IGS_GE_MSG_STACK.ADD;
54       App_Exception.Raise_Exception;
55       Return;
56     END IF;
57     Close cur_old_ref_values;
58     -- Populate New Values.
59     new_references.fee_cat := x_fee_cat;
60     new_references.fee_cal_type := x_fee_cal_type;
61     new_references.fee_ci_sequence_number := x_fee_ci_sequence_number;
62     new_references.fee_type := x_fee_type;
63     new_references.fee_liability_status := x_fee_liability_status;
64     new_references.start_dt_alias := x_start_dt_alias;
65     new_references.start_dai_sequence_number := x_start_dai_sequence_number;
66     new_references.s_chg_method_type := x_s_chg_method_type;
67     new_references.rul_sequence_number := x_rul_sequence_number;
68     IF (p_action = 'UPDATE') THEN
69       new_references.creation_date := old_references.creation_date;
70       new_references.created_by := old_references.created_by;
71     ELSE
72       new_references.creation_date := x_creation_date;
73       new_references.created_by := x_created_by;
74     END IF;
75     new_references.org_id := x_org_id;
76     new_references.last_update_date := x_last_update_date;
77     new_references.last_updated_by := x_last_updated_by;
78     new_references.last_update_login := x_last_update_login;
79     new_references.waiver_calc_flag := x_waiver_calc_flag;
80   END Set_Column_Values;
81 
82   -- Trigger description :-
83   -- BEFORE INSERT OR DELETE OR UPDATE
84   -- ON IGS_FI_F_CAT_FEE_LBL_ALL
85   -- FOR EACH ROW
86   PROCEDURE BeforeRowInsertUpdateDelete1(
87     p_inserting IN BOOLEAN ,
88     p_updating IN BOOLEAN ,
89     p_deleting IN BOOLEAN
90     ) AS
91   /*************************************************************
92   Created By :
93   Date Created By :
94   Purpose :
95   Know limitations, enhancements or remarks
96   Change History
97   Who             When            What
98   shtatiko        10-FEB-2003     Enh# 2747325, Removed the code of handling p_deleting = 'TRUE' case as deletion of
99                                   Fee Category Fee Liability records is not allowed.
100   smvk            02-Sep-2002     Default values are removed from the signature of this procedure to overcome
101                                   File.Pkg.22 gscc warning.As a part of Build SFCR005_Cleanup_Build (Enhancement Bug # 2531390)
102   smvk            14-Mar-2002     Check for system fee type refund
103                                   as its invalid for Fee Category Fee
104 				  Liability w.r.t Bug # 2144600
105   SCHODAVA	  13-OCT-2001     Bug # 2021281
106 				  Added IF condition for
107 				  p_deleting
108   (reverse chronological order - newest change first)
109   ***************************************************************/
110 
111 	-- Returns the system fee trigger category of a fee type
112 	CURSOR c_ft(cp_fee_type IN igs_fi_fee_type.fee_type%TYPE ) IS
113 	SELECT s_fee_trigger_cat
114 	FROM   igs_fi_fee_type
115 	WHERE  fee_type = cp_fee_type;
116 
117 	-- checks if there are records in the IGS_FI_FEE_AS table
118 	-- for the input FTCI and a NULL fee Category.
119 	CURSOR c_ftci(cp_fee_type IN igs_fi_fee_as.fee_type%TYPE,
120 		      cp_fee_cal_type IN igs_fi_fee_as.fee_cal_type%TYPE,
121 		      cp_fee_ci_sequence_number IN igs_fi_fee_as.fee_ci_sequence_number%TYPE
122 		     ) IS
123 	SELECT 'x'
124 	FROM   igs_fi_fee_as
125 	WHERE  fee_type = cp_fee_type
126 	AND    fee_cal_type = cp_fee_cal_type
127 	AND    fee_ci_sequence_number = cp_fee_ci_sequence_number
128 	AND    fee_cat IS NULL;
129 
130 	-- Returns the system fee type of a fee type w.r.t Bug # 2144600
131 	CURSOR c_sft(cp_fee_type IN igs_fi_fee_type.fee_type%TYPE) IS
132 	SELECT s_fee_type
133 	FROM  igs_fi_fee_type
134 	WHERE fee_type = cp_fee_type;
135 
136 	v_message_name varchar2(30);
137 	l_s_fee_trigger_cat igs_fi_fee_type.s_fee_trigger_cat%TYPE;
138 	l_s_fee_type igs_fi_fee_type.s_fee_type%TYPE;   -- added for Bug # 2144600
139 	l_institution  CONSTANT VARCHAR2(30)  := 'INSTITUTN';
140   BEGIN
141 	-- Validate system fee type associated with this fee type is not refund w.r.t. Bug # 2144600
142         IF( p_inserting OR p_updating) THEN
143                 OPEN c_sft(new_references.fee_type);
144                 FETCH c_sft INTO l_s_fee_type;
145                 CLOSE c_sft;
146                 IF( l_s_fee_type = 'REFUND') THEN
147                         Fnd_Message.Set_Name('IGS','IGS_FI_INVALID_REFUND_FCFL');
148                         IGS_GE_MSG_STACK.ADD;
149                         App_Exception.Raise_Exception;
150                 END IF;
151 	END IF;
152 	-- Validate Fee Liability Status.
153 	IF (p_inserting OR (old_references.fee_liability_status) <>
154 			(new_references.fee_liability_status)) THEN
155 		IF IGS_FI_VAL_FCCI.finp_val_fss_closed (
156 					new_references.fee_liability_status,
157 					v_message_name) = FALSE THEN
158 			Fnd_Message.Set_Name('IGS',v_message_name);
159 			IGS_GE_MSG_STACK.ADD;
160 			App_Exception.Raise_Exception;
161 		END IF;
162 		-- Validate status can be set to 'ACTIVE'
163 		IF IGS_FI_VAL_FCFL.finp_val_fcfl_active (
164 				new_references.fee_liability_status,
165 				new_references.fee_cal_type,
166 				new_references.fee_ci_sequence_number,
167 				v_message_name) = FALSE THEN
168 			Fnd_Message.Set_Name('IGS',v_message_name);
169 			IGS_GE_MSG_STACK.ADD;
170 			App_Exception.Raise_Exception;
171 		END IF;
172 		IF IGS_FI_VAL_FCFL.finp_val_fcfl_status (
173 				new_references.fee_cal_type,
174 				new_references.fee_ci_sequence_number,
175 				new_references.fee_cat,
176 				new_references.fee_type,
177 				new_references.fee_liability_status,
178 				v_message_name) = FALSE THEN
179 			Fnd_Message.Set_Name('IGS',v_message_name);
180 			IGS_GE_MSG_STACK.ADD;
181 			App_Exception.Raise_Exception;
182 		END IF;
183 	END IF;
184 	-- Validate Fee Liability Charge Method Type and Rule Sequence Number.
185 	IF p_inserting OR p_updating THEN
186 		IF IGS_FI_VAL_FCFL.finp_val_fcfl_rqrd (
187 					new_references.fee_cal_type,
188 					new_references.fee_ci_sequence_number,
189 					new_references.fee_type,
190 					new_references.s_chg_method_type,
191 					new_references.rul_sequence_number,
192 					v_message_name) = FALSE THEN
193 			Fnd_Message.Set_Name('IGS',v_message_name);
194 			IGS_GE_MSG_STACK.ADD;
195 			App_Exception.Raise_Exception;
196 		END IF;
197 	END IF;
198 	-- Validate fee category currency with details inherited from FTCI
199 	IF p_inserting THEN
200 		IF IGS_FI_VAL_FCFL.finp_val_fcfl_cur (
201 					new_references.fee_cal_type,
202 					new_references.fee_ci_sequence_number,
203 					new_references.fee_type,
204 					new_references.fee_cat,
205 					v_message_name) = FALSE THEN
206 			Fnd_Message.Set_Name('IGS',v_message_name);
207 			IGS_GE_MSG_STACK.ADD;
208 			App_Exception.Raise_Exception;
209 		END IF;
210 	END IF;
211 
212           -- Enh# 2747325, Removed the case for p_deleting as deletion is disabled as part of Locking Issues Build.
213 	  -- Bug # 2021281
214 	  -- added by schodava
215 	  -- If the system Fee trigger category is 'INSTITUTION' then,
216 	  -- Check whether the fee type calendar instance is present in the Fee Assessment table.
217 	  -- If it is, then restrict deletion of the Fee type from the IGS_FI_F_CAT_FEE_LBL_ALL table.
218 	  -- This is introduced to implement the foreign key IGS_FI_FEE_AS_PKG.GET_FK_IGS_FI_F_CAT_FEE_LBL
219 	  -- for a null fee_cat in the IGS_FI_FEE_AS table.
220 
221   END BeforeRowInsertUpdateDelete1;
222 
223   -- Trigger description :-
224   -- AFTER UPDATE
225   -- ON IGS_FI_F_CAT_FEE_LBL_ALL
226   -- FOR EACH ROW
227   PROCEDURE AfterRowUpdate3(
228     p_inserting IN BOOLEAN ,
229     p_updating IN BOOLEAN ,
230     p_deleting IN BOOLEAN
231     ) AS
232   /*----------------------------------------------------------------------------
233   ||  Created By :
234   ||  Created On :
235   ||  Purpose :
236   ||  Known limitations, enhancements or remarks :
237   ||  Change History :
238   ||  Who             When            What
239   ||  (reverse chronological order - newest change first)
240   ||  smvk            02-Sep-2002  Default values are removed from the signature of this procedure to overcome
241   ||                               File.Pkg.22 gscc warning.As a part of Build SFCR005_Cleanup_Build (Enhancement Bug # 2531390)
242   ||  vvutukur        19-Jul-2002  Bug#2425767.removed parameters new_references.payment_hierarchy_rank,
243   ||                               new_references.payment_hierarchy_rank,from the call to
244   ||                               IGS_FI_GEN_002.FINP_INS_FCFL_HIST.
245   ----------------------------------------------------------------------------*/
246   BEGIN
247 	-- create a history
248 	IGS_FI_GEN_002.FINP_INS_FCFL_HIST (old_references.fee_cat,
249 		old_references.fee_cal_type,
250 		old_references.fee_ci_sequence_number,
251 		old_references.fee_type,
252 		new_references.fee_liability_status,
253 		old_references.fee_liability_status,
254 		new_references.start_dt_alias,
255 		old_references.start_dt_alias,
256 		new_references.start_dai_sequence_number,
257 		old_references.start_dai_sequence_number,
258 		new_references.s_chg_method_type,
259 		old_references.s_chg_method_type,
260 		new_references.rul_sequence_number,
261 		old_references.rul_sequence_number,
262 		new_references.last_updated_by,
263 		old_references.last_updated_by,
264 		new_references.last_update_date,
265 		old_references.last_update_date);
266   END AfterRowUpdate3;
267 
268  -- Following procedure commented as part of bug#2403209
269 
270   -- Trigger description :-
271   -- AFTER INSERT OR UPDATE
272   -- ON IGS_FI_F_CAT_FEE_LBL_ALL
273 
274   PROCEDURE Check_Uniqueness AS
275   BEGIN
276     IF Get_UK1_For_Validation (
277          new_references.fee_cat,
278          new_references.fee_cal_type,
279          new_references.fee_ci_sequence_number,
280          new_references.fee_type,
281          new_references.s_chg_method_type
282          ) THEN
283        Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
284 	IGS_GE_MSG_STACK.ADD;
285        App_Exception.Raise_Exception;
286     END IF;
287   END Check_Uniqueness;
288   PROCEDURE Check_Constraints (
289     column_name  IN  VARCHAR2,
290     column_value IN  VARCHAR2
291   ) AS
292   /*----------------------------------------------------------------------------
293   ||  Created By :
294   ||  Created On :
295   ||  Purpose :
296   ||  Known limitations, enhancements or remarks :
297   ||  Change History :
298   ||  Who             When            What
299   ||  (reverse chronological order - newest change first)
300   ||  vvutukur        20-May-2002  removed upper check on fee_type,fee_cat,
301   ||                               fee_liability_status(alias of fee_structure_status) columns.bug#2344826.
302   ----------------------------------------------------------------------------*/
303   BEGIN
304     IF (column_name IS NULL) THEN
305       NULL;
306     ELSIF (UPPER (column_name) = 'START_DAI_SEQUENCE_NUMBER') THEN
307       new_references.start_dai_sequence_number := igs_ge_number.to_num (column_value);
308     ELSIF (UPPER (column_name) = 'RUL_SEQUENCE_NUMBER') THEN
309       new_references.rul_sequence_number := igs_ge_number.to_num (column_value);
310     ELSIF (UPPER (column_name) = 'FEE_CI_SEQUENCE_NUMBER') THEN
311       new_references.fee_ci_sequence_number := igs_ge_number.to_num (column_value);
312     ELSIF (UPPER (column_name) = 'FEE_CAL_TYPE') THEN
313       new_references.fee_cal_type := column_value;
314     ELSIF (UPPER (column_name) = 'START_DT_ALIAS') THEN
315       new_references.start_dt_alias := column_value;
316     ELSIF (UPPER (column_name) = 'S_CHG_METHOD_TYPE') THEN
317       new_references.s_chg_method_type := column_value;
318     END IF;
319     IF ((UPPER (column_name) = 'START_DAI_SEQUENCE_NUMBER') OR (column_name IS NULL)) THEN
320       IF ((new_references.start_dai_sequence_number < 1) OR (new_references.start_dai_sequence_number > 999999)) THEN
321         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
322 	IGS_GE_MSG_STACK.ADD;
323         App_Exception.Raise_Exception;
327       IF ((new_references.rul_sequence_number < 1) OR (new_references.rul_sequence_number > 999999)) THEN
324       END IF;
325     END IF;
326     IF ((UPPER (column_name) = 'RUL_SEQUENCE_NUMBER') OR (column_name IS NULL)) THEN
328         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
329 	IGS_GE_MSG_STACK.ADD;
330         App_Exception.Raise_Exception;
331       END IF;
332     END IF;
333     IF ((UPPER (column_name) = 'FEE_CI_SEQUENCE_NUMBER') OR (column_name IS NULL)) THEN
334       IF ((new_references.fee_ci_sequence_number < 1) OR (new_references.fee_ci_sequence_number > 999999)) THEN
335         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
336 	IGS_GE_MSG_STACK.ADD;
337         App_Exception.Raise_Exception;
338       END IF;
339     END IF;
340     IF ((UPPER (column_name) = 'FEE_CAL_TYPE') OR (column_name IS NULL)) THEN
341       IF (new_references.fee_cal_type <> UPPER (new_references.fee_cal_type)) THEN
342         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
343 	IGS_GE_MSG_STACK.ADD;
344         App_Exception.Raise_Exception;
345       END IF;
346     END IF;
347     IF ((UPPER (column_name) = 'START_DT_ALIAS') OR (column_name IS NULL)) THEN
348       IF (new_references.start_dt_alias <> UPPER (new_references.start_dt_alias)) THEN
349         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
350 	IGS_GE_MSG_STACK.ADD;
351         App_Exception.Raise_Exception;
352       END IF;
353     END IF;
354     IF ((UPPER (column_name) = 'S_CHG_METHOD_TYPE') OR (column_name IS NULL)) THEN
355       IF (new_references.s_chg_method_type <> UPPER (new_references.s_chg_method_type)) THEN
356         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
357 	IGS_GE_MSG_STACK.ADD;
358         App_Exception.Raise_Exception;
359       END IF;
360     END IF;
361   END Check_Constraints;
362   PROCEDURE Check_Parent_Existance AS
363   BEGIN
364     IF (((old_references.start_dt_alias = new_references.start_dt_alias) AND
365          (old_references.start_dai_sequence_number = new_references.start_dai_sequence_number) AND
366          (old_references.fee_cal_type = new_references.fee_cal_type) AND
367          (old_references.fee_ci_sequence_number = new_references.fee_ci_sequence_number)) OR
368         ((new_references.start_dt_alias IS NULL) OR
369          (new_references.start_dai_sequence_number IS NULL) OR
370          (new_references.fee_cal_type IS NULL) OR
371          (new_references.fee_ci_sequence_number IS NULL))) THEN
372       NULL;
373     ELSE
374       IF NOT IGS_CA_DA_INST_PKG.Get_PK_For_Validation (
375         new_references.start_dt_alias,
376         new_references.start_dai_sequence_number,
377         new_references.fee_cal_type,
378         new_references.fee_ci_sequence_number
379         ) THEN
380         Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
381 	IGS_GE_MSG_STACK.ADD;
382         App_Exception.Raise_Exception;
383       END IF;
384     END IF;
385     IF (((old_references.fee_cat = new_references.fee_cat) AND
386          (old_references.fee_cal_type = new_references.fee_cal_type) AND
387          (old_references.fee_ci_sequence_number = new_references.fee_ci_sequence_number)) OR
388         ((new_references.fee_cat IS NULL) OR
389          (new_references.fee_cal_type IS NULL) OR
390          (new_references.fee_ci_sequence_number IS NULL))) THEN
391       NULL;
392     ELSE
393       IF NOT IGS_FI_F_CAT_CA_INST_PKG.Get_PK_For_Validation (
394         new_references.fee_cat,
395         new_references.fee_cal_type,
396         new_references.fee_ci_sequence_number
397         ) THEN
398         Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
399 	IGS_GE_MSG_STACK.ADD;
400         App_Exception.Raise_Exception;
401       END IF;
402     END IF;
403     IF (((old_references.fee_liability_status = new_references.fee_liability_status)) OR
404         ((new_references.fee_liability_status IS NULL))) THEN
405       NULL;
406     ELSE
407       IF NOT IGS_FI_FEE_STR_STAT_PKG.Get_PK_For_Validation (
408         new_references.fee_liability_status
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     IF (((old_references.rul_sequence_number = new_references.rul_sequence_number)) OR
434         ((new_references.rul_sequence_number IS NULL))) THEN
435       NULL;
436     ELSE
437       IF NOT IGS_RU_RULE_PKG.Get_PK_For_Validation (
438         new_references.rul_sequence_number
442         App_Exception.Raise_Exception;
439         ) THEN
440         Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
441 	IGS_GE_MSG_STACK.ADD;
443       END IF;
444     END IF;
445   END Check_Parent_Existance;
446 
447   -- Removed FOR UPDATE NOWAIT clause from the cur_rowid to avoid locking problems.
448   -- This has been done as part of Enh# 2747325, Locking Issues.
449   FUNCTION Get_PK_For_Validation (
450     x_fee_cat IN VARCHAR2,
451     x_fee_cal_type IN VARCHAR2,
452     x_fee_ci_sequence_number IN NUMBER,
453     x_fee_type IN VARCHAR2
454     ) RETURN BOOLEAN AS
455     CURSOR cur_rowid IS
456       SELECT   rowid
457       FROM     IGS_FI_F_CAT_FEE_LBL_ALL
458       WHERE    fee_cat = x_fee_cat
459       AND      fee_cal_type = x_fee_cal_type
460       AND      fee_ci_sequence_number = x_fee_ci_sequence_number
461       AND      fee_type = x_fee_type;
462     lv_rowid cur_rowid%RowType;
463   BEGIN
464     Open cur_rowid;
465     Fetch cur_rowid INTO lv_rowid;
466     IF (cur_rowid%FOUND) THEN
467       Close cur_rowid;
468       Return (TRUE);
469     ELSE
470       Close cur_rowid;
471       Return (FALSE);
472     END IF;
473   END Get_PK_For_Validation;
474 
475   FUNCTION Get_UK1_For_Validation (
476     x_fee_cat IN VARCHAR2,
477     x_fee_cal_type IN VARCHAR2,
478     x_fee_ci_sequence_number IN NUMBER,
479     x_fee_type IN VARCHAR2,
480     x_s_chg_method_type IN VARCHAR2
481     ) RETURN BOOLEAN AS
482     CURSOR cur_rowid IS
483       SELECT   rowid
484       FROM     IGS_FI_F_CAT_FEE_LBL_ALL
485       WHERE    fee_cat = x_fee_cat
486       AND      fee_cal_type = x_fee_cal_type
487       AND      fee_ci_sequence_number = x_fee_ci_sequence_number
488       AND      fee_type = x_fee_type
489       AND      s_chg_method_type = x_s_chg_method_type
490       AND      ((l_rowid IS NULL) OR (rowid <> l_rowid))
491       FOR UPDATE NOWAIT;
492     lv_rowid cur_rowid%RowType;
493   BEGIN
494     Open cur_rowid;
495     Fetch cur_rowid INTO lv_rowid;
496     IF (cur_rowid%FOUND) THEN
497       Close cur_rowid;
498       Return (TRUE);
499     ELSE
500       Close cur_rowid;
501       Return (FALSE);
502     END IF;
503   END Get_UK1_For_Validation;
504   PROCEDURE GET_FK_IGS_CA_DA_INST (
505     x_dt_alias IN VARCHAR2,
506     x_sequence_number IN NUMBER,
507     x_cal_type IN VARCHAR2,
508     x_ci_sequence_number IN NUMBER
509     ) AS
510     CURSOR cur_rowid IS
511       SELECT   rowid
512       FROM     IGS_FI_F_CAT_FEE_LBL_ALL
513       WHERE    start_dt_alias = x_dt_alias
514       AND      start_dai_sequence_number = x_sequence_number
515       AND      fee_cal_type = x_cal_type
516       AND      fee_ci_sequence_number = x_ci_sequence_number ;
517     lv_rowid cur_rowid%RowType;
518   BEGIN
519     Open cur_rowid;
520     Fetch cur_rowid INTO lv_rowid;
521     IF (cur_rowid%FOUND) THEN
522       Close cur_rowid;
523       Fnd_Message.Set_Name ('IGS', 'IGS_FI_FCFL_DAI_FK');
524 	IGS_GE_MSG_STACK.ADD;
525       App_Exception.Raise_Exception;
526       Return;
527     END IF;
528     Close cur_rowid;
529   END GET_FK_IGS_CA_DA_INST;
530   PROCEDURE GET_FK_IGS_FI_F_CAT_CA_INST (
531     x_fee_cat IN VARCHAR2,
532     x_fee_cal_type IN VARCHAR2,
533     x_fee_ci_sequence_number IN NUMBER
534     ) AS
535     CURSOR cur_rowid IS
536       SELECT   rowid
537       FROM     IGS_FI_F_CAT_FEE_LBL_ALL
538       WHERE    fee_cat = x_fee_cat
539       AND      fee_cal_type = x_fee_cal_type
540       AND      fee_ci_sequence_number = x_fee_ci_sequence_number ;
541     lv_rowid cur_rowid%RowType;
542   BEGIN
543     Open cur_rowid;
544     Fetch cur_rowid INTO lv_rowid;
545     IF (cur_rowid%FOUND) THEN
546       Close cur_rowid;
547       Fnd_Message.Set_Name ('IGS', 'IGS_FI_FCFL_FCCI_FK');
548 	IGS_GE_MSG_STACK.ADD;
549       App_Exception.Raise_Exception;
550       Return;
551     END IF;
552     Close cur_rowid;
553   END GET_FK_IGS_FI_F_CAT_CA_INST;
554   PROCEDURE GET_FK_IGS_FI_FEE_STR_STAT (
555     x_fee_structure_status IN VARCHAR2
556     ) AS
557     CURSOR cur_rowid IS
558       SELECT   rowid
559       FROM     IGS_FI_F_CAT_FEE_LBL_ALL
560       WHERE    fee_liability_status = x_fee_structure_status ;
561     lv_rowid cur_rowid%RowType;
562   BEGIN
563     Open cur_rowid;
564     Fetch cur_rowid INTO lv_rowid;
565     IF (cur_rowid%FOUND) THEN
566       Close cur_rowid;
567       Fnd_Message.Set_Name ('IGS', 'IGS_FI_FCFL_FSST_FK');
568 	IGS_GE_MSG_STACK.ADD;
569       App_Exception.Raise_Exception;
570       Return;
571     END IF;
572     Close cur_rowid;
573   END GET_FK_IGS_FI_FEE_STR_STAT;
574 
575   PROCEDURE GET_FK_IGS_RU_RULE (
576     x_sequence_number IN NUMBER
577     ) AS
578     CURSOR cur_rowid IS
579       SELECT   rowid
580       FROM     IGS_FI_F_CAT_FEE_LBL_ALL
581       WHERE    rul_sequence_number = x_sequence_number ;
582     lv_rowid cur_rowid%RowType;
583   BEGIN
584     Open cur_rowid;
585     Fetch cur_rowid INTO lv_rowid;
586     IF (cur_rowid%FOUND) THEN
587       Close cur_rowid;
591       Return;
588       Fnd_Message.Set_Name ('IGS', 'IGS_FI_FCFL_RUL_FK');
589 	IGS_GE_MSG_STACK.ADD;
590       App_Exception.Raise_Exception;
592     END IF;
593     Close cur_rowid;
594   END GET_FK_IGS_RU_RULE;
595   PROCEDURE GET_FK_IGS_LOOKUPS_VIEW (
596     x_s_chg_method_type IN VARCHAR2
597     ) AS
598     CURSOR cur_rowid IS
599       SELECT   rowid
600       FROM     IGS_FI_F_CAT_FEE_LBL_ALL
601       WHERE    s_chg_method_type = x_s_chg_method_type ;
602     lv_rowid cur_rowid%RowType;
603   BEGIN
604     Open cur_rowid;
605     Fetch cur_rowid INTO lv_rowid;
606     IF (cur_rowid%FOUND) THEN
607       Close cur_rowid;
608       Fnd_Message.Set_Name ('IGS', 'IGS_FI_FCFL_LKUP_FK');
609 	IGS_GE_MSG_STACK.ADD;
610       App_Exception.Raise_Exception;
611       Return;
612     END IF;
613     Close cur_rowid;
614   END GET_FK_IGS_LOOKUPS_VIEW;
615 
616   PROCEDURE Before_DML (
617     p_action IN VARCHAR2,
618     x_rowid IN  VARCHAR2,
619     x_fee_cat IN VARCHAR2,
620     x_fee_cal_type IN VARCHAR2,
621     x_fee_ci_sequence_number IN NUMBER,
622     x_fee_type IN VARCHAR2,
623     x_fee_liability_status IN VARCHAR2,
624     x_start_dt_alias IN VARCHAR2,
625     x_start_dai_sequence_number IN NUMBER,
626     x_s_chg_method_type IN VARCHAR2,
627     x_rul_sequence_number IN NUMBER,
628     x_org_id IN NUMBER,
629     x_creation_date IN DATE,
630     x_created_by IN NUMBER,
631     x_last_update_date IN DATE,
632     x_last_updated_by IN NUMBER,
633     x_last_update_login IN NUMBER,
634     x_waiver_calc_flag  IN VARCHAR2
635   ) AS
636   /*************************************************************
637   Created By :
638   Date Created By :
639   Purpose :
640   Know limitations, enhancements or remarks
641   Change History
642   Who             When            What
643   shtatiko        10-FEB-2003     Enh# 2747325, Removed cases for p_action = 'DELETE' and
644                                   p_action = 'VALIDATE_DELETE'
645   vvutukur        19-Jul-2002     Bug#2425767.removed parameter x_payment_hierarchy_rank and its reference
646                                   from the call to set_column_values.
647   SCHODAVA	  13-OCT-2001     Bug # 2021281
648 				  Added the call to
649 				  BeforeRowInsertUpdateDelete1
650 				  for p_action = 'VALIDATE_DELETE'
651   (reverse chronological order - newest change first)
652   ***************************************************************/
653 
654   BEGIN
655     Set_Column_Values (
656       p_action,
657       x_rowid,
658       x_fee_cat,
659       x_fee_cal_type,
660       x_fee_ci_sequence_number,
661       x_fee_type,
662       x_fee_liability_status,
663       x_start_dt_alias,
664       x_start_dai_sequence_number,
665       x_s_chg_method_type,
666       x_rul_sequence_number,
667       x_org_id,
668       x_creation_date,
669       x_created_by,
670       x_last_update_date,
671       x_last_updated_by,
672       x_last_update_login,
673       x_waiver_calc_flag
674     );
675     IF (p_action = 'INSERT') THEN
676       -- Call all the procedures related to Before Insert.
677       BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE, p_updating =>FALSE ,  p_deleting => FALSE );
678       IF (Get_PK_For_Validation (
679             x_fee_cat,
680             x_fee_cal_type,
681             x_fee_ci_sequence_number,
682             x_fee_type
683           )) THEN
684         Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
685 	IGS_GE_MSG_STACK.ADD;
686         App_Exception.Raise_Exception;
687       END IF;
688       Check_Uniqueness;
689       Check_Constraints;
690       Check_Parent_Existance;
691     ELSIF (p_action = 'UPDATE') THEN
692       -- Call all the procedures related to Before Update.
693       BeforeRowInsertUpdateDelete1 ( p_inserting => FALSE, p_updating => TRUE ,  p_deleting => FALSE );
694       Check_Uniqueness;
695       Check_Constraints;
696       Check_Parent_Existance;
697     ELSIF (p_action = 'VALIDATE_INSERT') THEN
698       IF (Get_PK_For_Validation (
699             x_fee_cat,
700             x_fee_cal_type,
701             x_fee_ci_sequence_number,
702             x_fee_type
703           )) THEN
704         Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
705 	IGS_GE_MSG_STACK.ADD;
706         App_Exception.Raise_Exception;
707       END IF;
708       Check_Uniqueness;
709       Check_Constraints;
710     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
711       Check_Uniqueness;
712       Check_Constraints;
713     END IF;
714   END Before_DML;
715 
716   PROCEDURE After_DML (
717     p_action IN VARCHAR2,
718     x_rowid IN VARCHAR2
719   ) AS
720  /*----------------------------------------------------------------------------
721   ||  Created By :
722   ||  Created On :
723   ||  Purpose :
724   ||  Known limitations, enhancements or remarks :
725   ||  Change History :
726   ||  Who             When            What
727   ||  (reverse chronological order - newest change first)
728   ||  smvk            02-Sep-2002  Call to AfterRowUpdate3 is updated to pass all the parameter as per the Apps
729   ||                               standard. As a part of Build SFCR005_Cleanup_Build (Enhancement Bug # 2531390)
733   ||                               ii)p_action='DELETE' as no code exists in those conditions.
730   ||  vvutukur        19-Jul-2002  Bug#2425767.removed (earlier commented) calls to AfterStmtInsertUpdate4
731   ||                               procedure if p_action='INSERT' or 'UPDATE' as this procedure itself is
732   ||                               removed from this package body.Removed if conditions i)if p_action='INSERT'
734   ----------------------------------------------------------------------------*/
735   BEGIN
736     l_rowid := x_rowid;
737     IF (p_action = 'UPDATE') THEN
738       -- Call all the procedures related to After Update.
739       AfterRowUpdate3 (p_inserting  => FALSE, p_updating => TRUE, p_deleting =>FALSE );
740     END IF;
741   END After_DML;
742 
743 procedure INSERT_ROW (
744   X_ROWID in out NOCOPY VARCHAR2,
745   X_FEE_CAT in VARCHAR2,
746   X_FEE_CI_SEQUENCE_NUMBER in NUMBER,
747   X_FEE_TYPE in VARCHAR2,
748   X_FEE_CAL_TYPE in VARCHAR2,
749   X_FEE_LIABILITY_STATUS in VARCHAR2,
750   X_START_DT_ALIAS in VARCHAR2,
751   X_START_DAI_SEQUENCE_NUMBER in NUMBER,
752   X_S_CHG_METHOD_TYPE in VARCHAR2,
753   X_RUL_SEQUENCE_NUMBER in NUMBER,
754   X_ORG_ID in NUMBER,
755   X_MODE in VARCHAR2,
756   X_WAIVER_CALC_FLAG IN VARCHAR2
757   ) is
758   /************************************************************************************
759   vvutukur      19-Jul-2002     Bug#2425767.removed parameter x_payment_hierarchy_rank and from call to
760                                 before_dml and from insert statement.
761   sbaliga 	13-feb-2002	Assigned igs_ge_gen_003.get_org_id  to x_org_id
762   				in call to before_dml as part of SWCR006 build.
763   *****************************************************************************/
764     cursor C is select ROWID from IGS_FI_F_CAT_FEE_LBL_ALL
765       where FEE_CAT = X_FEE_CAT
766       and FEE_CI_SEQUENCE_NUMBER = X_FEE_CI_SEQUENCE_NUMBER
767       and FEE_TYPE = X_FEE_TYPE
768       and FEE_CAL_TYPE = X_FEE_CAL_TYPE;
769     X_LAST_UPDATE_DATE DATE;
770     X_LAST_UPDATED_BY NUMBER;
771     X_LAST_UPDATE_LOGIN NUMBER;
772     X_REQUEST_ID NUMBER;
773     X_PROGRAM_ID NUMBER;
774     X_PROGRAM_APPLICATION_ID NUMBER;
775     X_PROGRAM_UPDATE_DATE DATE;
776 begin
777   X_LAST_UPDATE_DATE := SYSDATE;
778   if(X_MODE = 'I') then
779     X_LAST_UPDATED_BY := 1;
780     X_LAST_UPDATE_LOGIN := 0;
781   elsif (X_MODE = 'R') then
782     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
783     if X_LAST_UPDATED_BY is NULL then
784       X_LAST_UPDATED_BY := -1;
785     end if;
786     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
787     if X_LAST_UPDATE_LOGIN is NULL then
788       X_LAST_UPDATE_LOGIN := -1;
789     end if;
790     X_REQUEST_ID:=FND_GLOBAL.CONC_REQUEST_ID;
791     X_PROGRAM_ID:=FND_GLOBAL.CONC_PROGRAM_ID;
792     X_PROGRAM_APPLICATION_ID:=FND_GLOBAL.PROG_APPL_ID;
793     if (X_REQUEST_ID = -1 ) then
794       X_REQUEST_ID:=NULL;
795       X_PROGRAM_ID:=NULL;
796       X_PROGRAM_APPLICATION_ID:=NULL;
797       X_PROGRAM_UPDATE_DATE:=NULL;
798     else
799       X_PROGRAM_UPDATE_DATE:=SYSDATE;
800     end if;
801   else
802     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
803 	IGS_GE_MSG_STACK.ADD;
804     app_exception.raise_exception;
805  end if;
806 Before_DML(
807  p_action=>'INSERT',
808  x_rowid=>X_ROWID,
809  x_fee_cal_type=>X_FEE_CAL_TYPE,
810  x_fee_cat=>X_FEE_CAT,
811  x_fee_ci_sequence_number=>X_FEE_CI_SEQUENCE_NUMBER,
812  x_fee_liability_status=>X_FEE_LIABILITY_STATUS,
813  x_fee_type=>X_FEE_TYPE,
814  x_rul_sequence_number=>X_RUL_SEQUENCE_NUMBER,
815  x_s_chg_method_type=>X_S_CHG_METHOD_TYPE,
816  x_start_dai_sequence_number=>X_START_DAI_SEQUENCE_NUMBER,
817  x_start_dt_alias=>X_START_DT_ALIAS,
818  x_org_id=>igs_ge_gen_003.get_org_id,
819  x_creation_date=>X_LAST_UPDATE_DATE,
820  x_created_by=>X_LAST_UPDATED_BY,
821  x_last_update_date=>X_LAST_UPDATE_DATE,
822  x_last_updated_by=>X_LAST_UPDATED_BY,
823  x_last_update_login=>X_LAST_UPDATE_LOGIN,
824  x_waiver_calc_flag => X_WAIVER_CALC_FLAG
825 );
826   insert into IGS_FI_F_CAT_FEE_LBL_ALL (
827     FEE_CAT,
828     FEE_CAL_TYPE,
829     FEE_CI_SEQUENCE_NUMBER,
830     FEE_TYPE,
831     FEE_LIABILITY_STATUS,
832     START_DT_ALIAS,
833     START_DAI_SEQUENCE_NUMBER,
834     S_CHG_METHOD_TYPE,
835     RUL_SEQUENCE_NUMBER,
836     ORG_ID,
837     CREATION_DATE,
838     CREATED_BY,
839     LAST_UPDATE_DATE,
840     LAST_UPDATED_BY,
841     LAST_UPDATE_LOGIN,
842     REQUEST_ID,
843     PROGRAM_ID,
844     PROGRAM_APPLICATION_ID,
845     PROGRAM_UPDATE_DATE,
846     WAIVER_CALC_FLAG
847   ) values (
848     NEW_REFERENCES.FEE_CAT,
849     NEW_REFERENCES.FEE_CAL_TYPE,
850     NEW_REFERENCES.FEE_CI_SEQUENCE_NUMBER,
851     NEW_REFERENCES.FEE_TYPE,
852     NEW_REFERENCES.FEE_LIABILITY_STATUS,
853     NEW_REFERENCES.START_DT_ALIAS,
854     NEW_REFERENCES.START_DAI_SEQUENCE_NUMBER,
855     NEW_REFERENCES.S_CHG_METHOD_TYPE,
856     NEW_REFERENCES.RUL_SEQUENCE_NUMBER,
857     NEW_REFERENCES.ORG_ID,
858     X_LAST_UPDATE_DATE,
859     X_LAST_UPDATED_BY,
860     X_LAST_UPDATE_DATE,
861     X_LAST_UPDATED_BY,
862     X_LAST_UPDATE_LOGIN,
863     X_REQUEST_ID,
864     X_PROGRAM_ID,
865     X_PROGRAM_APPLICATION_ID,
869   open c;
866     X_PROGRAM_UPDATE_DATE,
867     NEW_REFERENCES.WAIVER_CALC_FLAG
868   );
870   fetch c into X_ROWID;
871   if (c%notfound) then
872     close c;
873     raise no_data_found;
874   end if;
875   close c;
876 After_DML (
877  p_action => 'INSERT',
878  x_rowid => X_ROWID
879 );
880 end INSERT_ROW;
881 procedure LOCK_ROW (
882   X_ROWID in VARCHAR2,
883   X_FEE_CAT in VARCHAR2,
884   X_FEE_CI_SEQUENCE_NUMBER in NUMBER,
885   X_FEE_TYPE in VARCHAR2,
886   X_FEE_CAL_TYPE in VARCHAR2,
887   X_FEE_LIABILITY_STATUS in VARCHAR2,
888   X_START_DT_ALIAS in VARCHAR2,
889   X_START_DAI_SEQUENCE_NUMBER in NUMBER,
890   X_S_CHG_METHOD_TYPE in VARCHAR2,
891   X_RUL_SEQUENCE_NUMBER in NUMBER,
892   X_WAIVER_CALC_FLAG IN VARCHAR2
893 ) is
894   /*----------------------------------------------------------------------------
895   ||  Created By :
896   ||  Created On :
897   ||  Purpose :
898   ||  Known limitations, enhancements or remarks :
899   ||  Change History :
900   ||  Who             When            What
901   ||  (reverse chronological order - newest change first)
902   ||  vvutukur        19-Jul-2002  Bug#2425767.removed parameter x_payment_hierarchy_rank
903   ||                               and its reference from cursor c1 and from if condition.
904   ----------------------------------------------------------------------------*/
905   cursor c1 is select
906       FEE_LIABILITY_STATUS,
907       START_DT_ALIAS,
908       START_DAI_SEQUENCE_NUMBER,
909       S_CHG_METHOD_TYPE,
910       RUL_SEQUENCE_NUMBER,
911       WAIVER_CALC_FLAG
912     from IGS_FI_F_CAT_FEE_LBL_ALL
913     where ROWID=X_ROWID
914     for update nowait;
915   tlinfo c1%rowtype;
916 begin
917   open c1;
918   fetch c1 into tlinfo;
919   if (c1%notfound) then
920     close c1;
921     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
922 	IGS_GE_MSG_STACK.ADD;
923     app_exception.raise_exception;
924     return;
925   end if;
926   close c1;
927   if ( (tlinfo.FEE_LIABILITY_STATUS = X_FEE_LIABILITY_STATUS)
928       AND ((tlinfo.START_DT_ALIAS = X_START_DT_ALIAS)
929            OR ((tlinfo.START_DT_ALIAS is null)
930                AND (X_START_DT_ALIAS is null)))
931       AND ((tlinfo.START_DAI_SEQUENCE_NUMBER = X_START_DAI_SEQUENCE_NUMBER)
932            OR ((tlinfo.START_DAI_SEQUENCE_NUMBER is null)
933                AND (X_START_DAI_SEQUENCE_NUMBER is null)))
934       AND ((tlinfo.S_CHG_METHOD_TYPE = X_S_CHG_METHOD_TYPE)
935            OR ((tlinfo.S_CHG_METHOD_TYPE is null)
936                AND (X_S_CHG_METHOD_TYPE is null)))
937       AND ((tlinfo.RUL_SEQUENCE_NUMBER = X_RUL_SEQUENCE_NUMBER)
938            OR ((tlinfo.RUL_SEQUENCE_NUMBER is null)
939                AND (X_RUL_SEQUENCE_NUMBER is null)))
940       AND ((tlinfo.WAIVER_CALC_FLAG = X_WAIVER_CALC_FLAG)
941            OR ((tlinfo.WAIVER_CALC_FLAG is null)
942                AND (X_WAIVER_CALC_FLAG is null)))
943   ) then
944     null;
945   else
946     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
947 	IGS_GE_MSG_STACK.ADD;
948     app_exception.raise_exception;
949   end if;
950   return;
951 end LOCK_ROW;
952 procedure UPDATE_ROW (
953   X_ROWID in VARCHAR2,
954   X_FEE_CAT in VARCHAR2,
955   X_FEE_CI_SEQUENCE_NUMBER in NUMBER,
956   X_FEE_TYPE in VARCHAR2,
957   X_FEE_CAL_TYPE in VARCHAR2,
958   X_FEE_LIABILITY_STATUS in VARCHAR2,
959   X_START_DT_ALIAS in VARCHAR2,
960   X_START_DAI_SEQUENCE_NUMBER in NUMBER,
961   X_S_CHG_METHOD_TYPE in VARCHAR2,
962   X_RUL_SEQUENCE_NUMBER in NUMBER,
963   X_MODE in VARCHAR2,
964   X_WAIVER_CALC_FLAG IN VARCHAR2
965   ) is
966   /*----------------------------------------------------------------------------
967   ||  Created By :
968   ||  Created On :
969   ||  Purpose :
970   ||  Known limitations, enhancements or remarks :
971   ||  Change History :
972   ||  Who             When            What
973   ||  (reverse chronological order - newest change first)
974   ||  vvutukur        19-Jul-2002  Bug#2425767.removed parameter x_payment_hierarchy_rank
975   ||                               and from call to before_dml and from update statement.
976   ----------------------------------------------------------------------------*/
977     X_LAST_UPDATE_DATE DATE;
978     X_LAST_UPDATED_BY NUMBER;
979     X_LAST_UPDATE_LOGIN NUMBER;
980     X_REQUEST_ID NUMBER;
981     X_PROGRAM_ID NUMBER;
982     X_PROGRAM_APPLICATION_ID NUMBER;
983     X_PROGRAM_UPDATE_DATE DATE;
984 begin
985   X_LAST_UPDATE_DATE := SYSDATE;
986   if(X_MODE = 'I') then
987     X_LAST_UPDATED_BY := 1;
988     X_LAST_UPDATE_LOGIN := 0;
989   elsif (X_MODE = 'R') then
990     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
991     if X_LAST_UPDATED_BY is NULL then
992       X_LAST_UPDATED_BY := -1;
993     end if;
994     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
995     if X_LAST_UPDATE_LOGIN is NULL then
996       X_LAST_UPDATE_LOGIN := -1;
997     end if;
998     X_REQUEST_ID:=FND_GLOBAL.CONC_REQUEST_ID;
999     X_PROGRAM_ID:=FND_GLOBAL.CONC_PROGRAM_ID;
1000     X_PROGRAM_APPLICATION_ID:=FND_GLOBAL.PROG_APPL_ID;
1001     if (X_REQUEST_ID = -1 ) then
1002       X_REQUEST_ID:=OLD_REFERENCES.REQUEST_ID;
1003       X_PROGRAM_ID:=OLD_REFERENCES.PROGRAM_ID;
1004       X_PROGRAM_APPLICATION_ID:=OLD_REFERENCES.PROGRAM_APPLICATION_ID;
1005       X_PROGRAM_UPDATE_DATE:=OLD_REFERENCES.PROGRAM_UPDATE_DATE;
1006     else
1007       X_PROGRAM_UPDATE_DATE:=SYSDATE;
1008     end if;
1009   else
1010     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
1011 	IGS_GE_MSG_STACK.ADD;
1012     app_exception.raise_exception;
1013   end if;
1014 Before_DML(
1015  p_action=>'UPDATE',
1016  x_rowid=>X_ROWID,
1017  x_fee_cal_type=>X_FEE_CAL_TYPE,
1018  x_fee_cat=>X_FEE_CAT,
1019  x_fee_ci_sequence_number=>X_FEE_CI_SEQUENCE_NUMBER,
1020  x_fee_liability_status=>X_FEE_LIABILITY_STATUS,
1021  x_fee_type=>X_FEE_TYPE,
1022  x_rul_sequence_number=>X_RUL_SEQUENCE_NUMBER,
1023  x_s_chg_method_type=>X_S_CHG_METHOD_TYPE,
1024  x_start_dai_sequence_number=>X_START_DAI_SEQUENCE_NUMBER,
1025  x_start_dt_alias=>X_START_DT_ALIAS,
1026  x_creation_date=>X_LAST_UPDATE_DATE,
1027  x_created_by=>X_LAST_UPDATED_BY,
1028  x_last_update_date=>X_LAST_UPDATE_DATE,
1029  x_last_updated_by=>X_LAST_UPDATED_BY,
1030  x_last_update_login=>X_LAST_UPDATE_LOGIN,
1031  x_waiver_calc_flag => X_WAIVER_CALC_FLAG
1032 );
1033   update IGS_FI_F_CAT_FEE_LBL_ALL set
1034     FEE_LIABILITY_STATUS = NEW_REFERENCES.FEE_LIABILITY_STATUS,
1035     START_DT_ALIAS = NEW_REFERENCES.START_DT_ALIAS,
1036     START_DAI_SEQUENCE_NUMBER = NEW_REFERENCES.START_DAI_SEQUENCE_NUMBER,
1037     S_CHG_METHOD_TYPE = NEW_REFERENCES.S_CHG_METHOD_TYPE,
1038     RUL_SEQUENCE_NUMBER = NEW_REFERENCES.RUL_SEQUENCE_NUMBER,
1039     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
1040     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
1041     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
1042     REQUEST_ID=X_REQUEST_ID,
1043     PROGRAM_ID=X_PROGRAM_ID,
1044     PROGRAM_APPLICATION_ID=X_PROGRAM_APPLICATION_ID,
1045     PROGRAM_UPDATE_DATE=X_PROGRAM_UPDATE_DATE,
1046     WAIVER_CALC_FLAG=X_WAIVER_CALC_FLAG
1047   where ROWID=X_ROWID
1048   ;
1049   if (sql%notfound) then
1050     raise no_data_found;
1051   end if;
1052 After_DML (
1053  p_action => 'UPDATE',
1054  x_rowid => X_ROWID
1055 );
1056 end UPDATE_ROW;
1057 procedure ADD_ROW (
1058   X_ROWID in out NOCOPY VARCHAR2,
1059   X_FEE_CAT in VARCHAR2,
1060   X_FEE_CI_SEQUENCE_NUMBER in NUMBER,
1061   X_FEE_TYPE in VARCHAR2,
1062   X_FEE_CAL_TYPE in VARCHAR2,
1063   X_FEE_LIABILITY_STATUS in VARCHAR2,
1064   X_START_DT_ALIAS in VARCHAR2,
1065   X_START_DAI_SEQUENCE_NUMBER in NUMBER,
1066   X_S_CHG_METHOD_TYPE in VARCHAR2,
1067   X_RUL_SEQUENCE_NUMBER in NUMBER,
1068   X_ORG_ID in NUMBER,
1069   X_MODE in VARCHAR2,
1070   X_WAIVER_CALC_FLAG IN VARCHAR2
1071   ) is
1072   /*----------------------------------------------------------------------------
1073   ||  Created By :
1074   ||  Created On :
1075   ||  Purpose :
1076   ||  Known limitations, enhancements or remarks :
1077   ||  Change History :
1078   ||  Who             When            What
1079   ||  (reverse chronological order - newest change first)
1080   ||  vvutukur        19-Jul-2002  Bug#2425767.removed parameter x_payment_hierarchy_rank
1081   ||                               and from calls to insert_row and update_row.
1082   ----------------------------------------------------------------------------*/
1083   cursor c1 is select rowid from IGS_FI_F_CAT_FEE_LBL_ALL
1084      where FEE_CAT = X_FEE_CAT
1085      and FEE_CI_SEQUENCE_NUMBER = X_FEE_CI_SEQUENCE_NUMBER
1086      and FEE_TYPE = X_FEE_TYPE
1087      and FEE_CAL_TYPE = X_FEE_CAL_TYPE
1088   ;
1089 begin
1090   open c1;
1091   fetch c1 into X_ROWID;
1092   if (c1%notfound) then
1093     close c1;
1094     INSERT_ROW (
1095      X_ROWID,
1096      X_FEE_CAT,
1097      X_FEE_CI_SEQUENCE_NUMBER,
1098      X_FEE_TYPE,
1099      X_FEE_CAL_TYPE,
1100      X_FEE_LIABILITY_STATUS,
1101      X_START_DT_ALIAS,
1102      X_START_DAI_SEQUENCE_NUMBER,
1103      X_S_CHG_METHOD_TYPE,
1104      X_RUL_SEQUENCE_NUMBER,
1105      X_ORG_ID,
1106      X_MODE,
1107      X_WAIVER_CALC_FLAG
1108      );
1109     return;
1110   end if;
1111   close c1;
1112   UPDATE_ROW (
1113    X_ROWID,
1114    X_FEE_CAT,
1115    X_FEE_CI_SEQUENCE_NUMBER,
1116    X_FEE_TYPE,
1117    X_FEE_CAL_TYPE,
1118    X_FEE_LIABILITY_STATUS,
1119    X_START_DT_ALIAS,
1120    X_START_DAI_SEQUENCE_NUMBER,
1121    X_S_CHG_METHOD_TYPE,
1122    X_RUL_SEQUENCE_NUMBER,
1123    X_MODE,
1124    X_WAIVER_CALC_FLAG
1125    );
1126 end ADD_ROW;
1127 
1128 end IGS_FI_F_CAT_FEE_LBL_PKG;