1 package body IGS_FI_FEE_TYPE_PKG AS
2 /* $Header: IGSSI37B.pls 120.3 2005/09/22 05:43:39 appldev ship $*/
3
4
5 l_rowid VARCHAR2(25);
6 old_references IGS_FI_FEE_TYPE_ALL%RowType;
7 new_references IGS_FI_FEE_TYPE_ALL%RowType;
8
9 PROCEDURE Set_Column_Values (
10 p_action IN VARCHAR2,
11 x_rowid IN VARCHAR2 ,
12 x_fee_type IN VARCHAR2 ,
13 x_s_fee_type IN VARCHAR2 ,
14 x_s_fee_trigger_cat IN VARCHAR2 ,
15 x_description IN VARCHAR2 ,
16 x_optional_payment_ind IN VARCHAR2 ,
17 x_closed_ind IN VARCHAR2 ,
18 x_comments IN VARCHAR2 ,
19 x_org_id IN NUMBER ,
20 x_fee_class IN VARCHAR2 , --Bug 2175865
21 x_designated_payment_flag IN VARCHAR2,
22 x_creation_date IN DATE ,
23 x_created_by IN NUMBER ,
24 x_last_update_date IN DATE ,
25 x_last_updated_by IN NUMBER ,
26 x_last_update_login IN NUMBER
27 ) AS
28 /*----------------------------------------------------------------------------
29 || Created By :
30 || Created On :
31 || Purpose :
32 || Known limitations, enhancements or remarks :
33 || Change History :
34 || Who When What
35 || (reverse chronological order - newest change first)
36 || shtatiko 30-MAY-2003 Enh# 2831582, Added new column designated_payment_flag
37 || smvk 02-Sep-2002 Removed the Default value in the parameters to overcome File.Pkg.22 gscc warnings.
38 || As a part of Build SFCR005_Cleanup_Build (Enhancement Bug # 2531390)
39 ----------------------------------------------------------------------------*/
40
41 CURSOR cur_old_ref_values IS
42 SELECT *
43 FROM IGS_FI_FEE_TYPE_ALL
44 WHERE rowid = x_rowid;
45
46 BEGIN
47
48 l_rowid := x_rowid;
49
50 -- Code for setting the Old and New Reference Values.
51 -- Populate Old Values.
52
53 Open cur_old_ref_values;
54 Fetch cur_old_ref_values INTO old_references;
55 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
56 Close cur_old_ref_values;
57 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
58 IGS_GE_MSG_STACK.ADD;
59 App_Exception.Raise_Exception;
60 Return;
61 END IF;
62 Close cur_old_ref_values;
63
64 -- Populate New Values.
65 new_references.fee_type := x_fee_type;
66 new_references.s_fee_type := x_s_fee_type;
67 new_references.s_fee_trigger_cat := x_s_fee_trigger_cat;
68 new_references.description := x_description;
69 new_references.optional_payment_ind := x_optional_payment_ind;
70 new_references.closed_ind := x_closed_ind;
71 new_references.comments := x_comments;
72 new_references.org_id := x_org_id;
73 new_references.fee_class := x_fee_class; --Bug 2175865
74 new_references.designated_payment_flag := x_designated_payment_flag;
75 IF (p_action = 'UPDATE') THEN
76 new_references.creation_date := old_references.creation_date;
77 new_references.created_by := old_references.created_by;
78 ELSE
79 new_references.creation_date := x_creation_date;
80 new_references.created_by := x_created_by;
81 END IF;
82 new_references.last_update_date := x_last_update_date;
83 new_references.last_updated_by := x_last_updated_by;
84 new_references.last_update_login := x_last_update_login;
85
86 END Set_Column_Values;
87
88 -- Trigger description :-
89
90 -- "OSS_TST".trg_ft_br_iud
91
92 -- BEFORE INSERT OR DELETE OR UPDATE
93
94 -- ON IGS_FI_FEE_TYPE_ALL
95
96 -- FOR EACH ROW
97
98 PROCEDURE BeforeRowInsertUpdateDelete1(
99 p_inserting IN BOOLEAN ,
100 p_updating IN BOOLEAN ,
101 p_deleting IN BOOLEAN
102
103 ) AS
104 /*---------------------------------------------------------------------------
105 CHANGE HISTORY:
106 WHO WHEN WHAT
107 svuppala 09-SEP-2005 Bug#3286824 Modify cursors cur_docactiveft_count and c_ft to have one cursor c_act_ft
108 Made check for DOCUMENT and REFUND once.
109 vvutukur 03-Dec-2003 Bug#3249288.Modified cursor cur_optfeeflag_set to remove additional condition
110 on optional_fee_flag.
111 uudayapr 15-oct-2003 Enh #3117341 Modified by adding the token to IGS_FI_ANC_TRG_CAT message
112 smvk 02-Sep-2002 Removed the Default value in the parameters to overcome File.Pkg.22 gscc warnings.
113 As a part of Build SFCR005_Cleanup_Build (Enhancement Bug # 2531390)
114 vvutukur 24-Jun-2002 Added cursor cur_docactiveft_count and related validation
115 to throw error message if user tries to save two active fee type
116 records with system fee type 'DOCUMENT'.
117 smvk 13-Mar-2002 checking System Fee Trigger Category as INSTITUTN and
118 and only one active fee type having system fee type as
119 Refunds for a subaccount w.r.t Bug # 2144600
120 ----------------------------------------------------------------------------*/
121
122 CURSOR cur_optfeeflag_set(p_fee_type varchar2) is
123 SELECT 'x'
124 FROM igs_fi_inv_int
125 WHERE fee_type = p_fee_type;
126
127 ---cursor to get the number of active fee types of system fee type 'DOCUMENT' and 'REFUND' system fee type
128 CURSOR cur_act_ft(cp_s_fee_type IN igs_fi_fee_type.s_fee_type%TYPE,
129 cp_fee_type IN igs_fi_fee_type.fee_type%TYPE) IS
130 SELECT count('x')
131 FROM igs_fi_fee_type
132 WHERE s_fee_type = cp_s_fee_type
133 AND fee_type <> cp_fee_type
134 AND closed_ind='N';
135
136
137 -- Added for Refunds Build Enh BugNo:2144600
138 l_count NUMBER;
139 l_optfeeflag cur_optfeeflag_set%rowtype;
140 v_message_name varchar2(30);
141
142 l_desc igs_lookup_values.meaning%TYPE;
143
144 BEGIN
145 -- Validate Fee Type system trigger category
146
147 IF (p_updating AND (old_references.s_fee_trigger_cat) <>
148 (new_references.s_fee_trigger_cat) ) THEN
149 IF IGS_FI_VAL_FT.finp_val_ft_trig (
150 new_references.fee_type,
151 new_references.s_fee_trigger_cat,
152 old_references.s_fee_trigger_cat,
153 v_message_name) = FALSE THEN
154 Fnd_Message.Set_Name('IGS',v_message_name);
155 IGS_GE_MSG_STACK.ADD;
156 App_Exception.Raise_Exception;
157 END IF;
158 IF IGS_FI_VAL_FT.finp_val_ft_sftc (
159 new_references.fee_type,
160 new_references.s_fee_trigger_cat,
161 old_references.s_fee_trigger_cat,
162 v_message_name) = FALSE THEN
163 Fnd_Message.Set_Name('IGS',v_message_name);
164 IGS_GE_MSG_STACK.ADD;
165 App_Exception.Raise_Exception;
166 END IF;
167 END IF;
168
169 -- Validate Fee Type system fee type and system trigger category
170 IF (p_inserting OR (p_updating AND
171 (((old_references.s_fee_type) <> (new_references.s_fee_type)) OR
172 ((old_references.s_fee_trigger_cat) <> (new_references.s_fee_trigger_cat))))) THEN
173 IF IGS_FI_VAL_FT.finp_val_ft_sft_trig (
174 new_references.s_fee_type,
175 new_references.s_fee_trigger_cat,
176 v_message_name) = FALSE THEN
177 Fnd_Message.Set_Name('IGS',v_message_name);
178 IGS_GE_MSG_STACK.ADD;
179 App_Exception.Raise_Exception;
180 END IF;
181 END IF;
182
183 -- Validate Fee Type optional payment indicator
184
185 IF (p_updating AND (old_references.optional_payment_ind) <>
186 (new_references.optional_payment_ind) ) THEN
187 IF IGS_FI_VAL_FT.finp_val_ft_opt_pymt (
188 new_references.fee_type,
189 new_references.optional_payment_ind,
190 v_message_name) = FALSE THEN
191 Fnd_Message.Set_Name('IGS',v_message_name);
192 IGS_GE_MSG_STACK.ADD;
193 App_Exception.Raise_Exception;
194 END IF;
195 /* Bug- 1989694, SF012_DLD-Account History and Payment
196 When Optional_Fee_Flag column in IGS_INV_INT_ALL Table is set then error out NOCOPY
197 that Optional_Payment_ind cannot be changed */
198
199 Open cur_optfeeflag_set(new_references.fee_type);
200 fetch cur_optfeeflag_set into l_optfeeflag;
201 IF cur_optfeeflag_set%FOUND THEN
202 CLOSE cur_optfeeflag_set;
203 Fnd_Message.Set_Name('IGS','IGS_FI_CANT_MODIFY_OPT_IND');
204 IGS_GE_MSG_STACK.ADD;
205 App_Exception.Raise_Exception;
206 END IF;
207 CLOSE cur_optfeeflag_set;
208 END IF;
209
210 --Throw error in case if more than one active fee types can exist with system fee type as 'DOCUMENT' or 'REFUND'.
211 IF (p_inserting OR (p_updating AND old_references.closed_ind <> new_references.closed_ind)) THEN
212
213 IF new_references.s_fee_type IN ('DOCUMENT','REFUND') AND
214 new_references.closed_ind='N' THEN
215
216 OPEN cur_act_ft(cp_s_fee_type => new_references.s_fee_type,
217 cp_fee_type => new_references.fee_type);
218 FETCH cur_act_ft INTO l_count;
219 CLOSE cur_act_ft;
220
221 IF NVL(l_count,0) >= 1 THEN
222 --If system fee type is of Refund
223 IF new_references.s_fee_type = 'REFUND' THEN
224 fnd_message.set_name('IGS','IGS_FI_REFUND_FEE');
225 --If system fee type is of Document
226 ELSIF new_references.s_fee_type = 'DOCUMENT' THEN
227 fnd_message.set_name('IGS','IGS_FI_DOC_TYP_NOT_MORE_ONE');
228 END IF;
229 igs_ge_msg_stack.add;
230 app_exception.raise_exception;
231 END IF;
232 END IF;
233 END IF;
234
235 -- Checking for System Fee Type Refund to have System Fee Trigger Category as 'INSTITUTN' only
236 IF p_inserting OR p_updating THEN
237 IF new_references.s_fee_type = 'REFUND' THEN
238 IF new_references.s_fee_trigger_cat <> 'INSTITUTN' THEN
239 --got the lookup meaning and added token to the
240 --message IGS_FI_ANC_TRG_CAT.
241 fnd_Message.Set_Name('IGS','IGS_FI_ANC_TRG_CAT');
242 fnd_message.set_token('S_FEE_TRIG_CAT', igs_fi_gen_gl.get_lkp_meaning(p_v_lookup_type => 'IGS_FI_LOCKBOX',
243 p_v_lookup_code => 'INSTITUTION'));
244 IGS_GE_MSG_STACK.ADD;
245 App_Exception.Raise_Exception;
246 END IF;
247 END IF;
248 END IF;
249
250
251 END BeforeRowInsertUpdateDelete1;
252
253 PROCEDURE BeforeRowInsertUpdate2(
254 p_inserting IN BOOLEAN ,
255 p_updating IN BOOLEAN ,
256 p_deleteing IN BOOLEAN
257 )AS
258
259 --HISTORY
260 --Who When What
261 --smvk 02-Sep-200 Removed the Default value in the parameters to overcome File.Pkg.22 gscc warnings.
262 -- As a part of Build SFCR005_Cleanup_Build (Enhancement Bug # 2531390)
263 --vvutukur 15-Jul-2002 Removed cursor cur_ft and related code as multiple fee classes can be attached to the
264 -- single subaccount that exists in the system,for bug#2432134.
265 --vvutukur 15-1-2002 created the procedure for Bug 2175865
266
267
268 --Cursor to check if the fee type has been used for creation of charge.
269 CURSOR cur_ft_chrg(
270 cp_new_fee_type VARCHAR2
271 ) IS
272 SELECT 'x'
273 FROM igs_fi_inv_int
274 WHERE fee_type = cp_new_fee_type;
275
276 l_var VARCHAR2(1);
277 BEGIN
278
279 --Validate if the fee type has been used for creation of a charge
280 IF(p_updating) THEN
281 --Validations if the fee type has been used for creation of a charge if fee class is modified.
282 IF (NVL(new_references.fee_class,'NULL') <> NVL(old_references.fee_class,'NULL')) THEN
283 OPEN cur_ft_chrg(new_references.fee_type);
284 FETCH cur_ft_chrg INTO l_var;
285 IF(cur_ft_chrg%FOUND) THEN
286 CLOSE cur_ft_chrg;
287 FND_MESSAGE.SET_NAME('IGS','IGS_FI_FEE_CLASS_USED');
288 IGS_GE_MSG_STACK.ADD;
289 APP_EXCEPTION.RAISE_EXCEPTION;
290 END IF;
291 CLOSE cur_ft_chrg;
292 END IF;
293 END IF;
294
295 END BeforeRowInsertUpdate2;
296
297 -- Trigger description :-
298 -- "OSS_TST".trg_ft_ar_u_hist
299 -- AFTER UPDATE
300 -- ON IGS_FI_FEE_TYPE_ALL
301 -- FOR EACH ROW
302
303 PROCEDURE AfterRowUpdate2(
304 p_inserting IN BOOLEAN ,
305 p_updating IN BOOLEAN ,
306 p_deleting IN BOOLEAN
307 ) AS
308 /*----------------------------------------------------------------------------
309 || Created By :
310 || Created On :
311 || Purpose :
312 || Known limitations, enhancements or remarks :
313 || Change History :
314 || Who When What
315 || (reverse chronological order - newest change first)
316 || shtatiko 30-MAY-2003 Enh# 2831582, Added new column designated_payment_flag
317 || smvk 02-Sep-2002 Removed the Default value in the parameters to overcome File.Pkg.22 gscc warnings.
318 || As a part of Build SFCR005_Cleanup_Build (Enhancement Bug # 2531390)
319 ----------------------------------------------------------------------------*/
320
321 BEGIN
322 -- create a history
323
324 IGS_FI_GEN_002.FINP_INS_FT_HIST(old_references.fee_type,
325 new_references.s_fee_type,
326 old_references.s_fee_type,
327 new_references.s_fee_trigger_cat,
328 old_references.s_fee_trigger_cat,
329 new_references.description,
330 old_references.description,
331 new_references.optional_payment_ind,
332 old_references.optional_payment_ind,
333 new_references.closed_ind,
334 old_references.closed_ind,
335 new_references.fee_class,
336 old_references.fee_class,
337 new_references.designated_payment_flag,
338 old_references.designated_payment_flag,
339 new_references.last_updated_by,
340 old_references.last_updated_by,
341 new_references.last_update_date,
342 old_references.last_update_date,
343 new_references.comments,
344 old_references.comments);
345
346 END AfterRowUpdate2;
347
348 PROCEDURE Check_Constraints (
349 Column_Name IN VARCHAR2,
350 Column_Value IN VARCHAR2
351 )AS
352 /*---------------------------------------------------------------------------
353 CHANGE HISTORY:
354 WHO WHEN WHAT
355 pmarada 28-jul-2005 Enh 3392095, added waiver_adj to the system fee type validation
359 of valid system fee types.
356 uudayapr 15-oct-2003 Enh# 3117341.Audit and special fees build added AUDIT,SPECIAL in
357 the list of valid values of system fee type and system fee trigger category.
358 vvutukur 06-Sep-2003 Enh#3045007.Payment Plans Build. Added PAY_PLAN also in the list
360 shtatiko 02-JUN-2003 Enh# 2831582, Added check for new column designated_payment_flag.
361 vvutukur 13-may-2002 removed upper case check on fee_type column.bug#2344826.
362 agairola 22-Mar-2002 Added the validation for System Fee Types LATE, FINANCE, REFUND, DOCUMENT,
363 AID_ADJ to have the Optional Payment Indicator as Y
364 smvk 13-Mar-2002 Added REFUND as valid System fee Type, checking SFTC as INSTITUTN and
365 and only one active fee type having system fee type for a subaccount
366 w.r.t Bug # 2144600
367 vvutukur 21-feb-2002 removed comments part for bug:2107967.
368 ----------------------------------------------------------------------------*/
369 BEGIN
370 IF Column_Name is NULL THEN
371 NULL;
372 ELSIF upper(Column_Name) = 'S_FEE_TYPE' then
373 new_references.s_fee_type := Column_Value;
374 ELSIF upper(Column_Name) = 'OPTIONAL_PAYMENT_IND' then
375 new_references.optional_payment_ind := Column_Value;
376 ELSIF upper(Column_Name) = 'CLOSED_IND' then
377 new_references.closed_ind := Column_Value;
378 ELSIF upper(Column_Name) = 'DESCRIPTION' then
379 new_references.description:= Column_Value;
380 ELSIF upper(Column_Name) = 'OPTIONAL_PAYMENT_IND' then
381 new_references.optional_payment_ind := Column_Value;
382 ELSIF upper(Column_Name) = 'S_FEE_TRIGGER_CAT' then
383 new_references.s_fee_trigger_cat := Column_Value;
384 ELSIF UPPER(column_name) = 'DESIGNATED_PAYMENT_FLAG' THEN
385 new_references.designated_payment_flag := column_value;
386 END IF;
387
388 -- As part of the enhancement bug #1715208 new_references.s_fee_type <> 'ANCILLARY' was also added in the
389 -- And condition of the IF statement.Thus making ANCILLARY a valid System fee type.
390 -- 'REFUND' is also added as per the Enhancement Bug no: 2144600
391
392 IF upper(Column_Name) = 'S_FEE_TYPE' OR
393 column_name is NULL THEN
394 IF new_references.s_fee_type <> 'HECS' AND
395 new_references.s_fee_type <> 'TUITION' AND
396 new_references.s_fee_type <> 'OTHER' AND
397 new_references.s_fee_type <> 'TUTNFEE' AND
398 new_references.s_fee_type <> 'EXTERNAL' AND
399 new_references.s_fee_type <> 'LATE' AND
400 new_references.s_fee_type <> 'INTEREST' AND
401 new_references.s_fee_type <> 'ANCILLARY' AND
402 new_references.s_fee_type <> 'DOCUMENT' AND -- add by kkillams w.r.t. bug no:2212964
403 new_references.s_fee_type <> 'REFUND' AND -- added w.r.t. Bug No: 2144600
404 new_references.s_fee_type <> 'SPONSOR' AND
405 new_references.s_fee_type <> 'AID_ADJ' AND
406 new_references.s_fee_type <> 'PAY_PLAN' AND
407 new_references.s_fee_type <> 'AUDIT' AND
408 new_references.s_fee_type <> 'SPECIAL' AND
409 new_references.s_fee_type <> 'WAIVER_ADJ' THEN
410 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
411 IGS_GE_MSG_STACK.ADD;
412 App_Exception.Raise_Exception;
413 END IF;
414 END IF;
415 IF (upper(Column_Name) = 'OPTIONAL_PAYMENT_IND' OR
416 column_name is NULL) THEN
417 IF new_references.optional_payment_ind <> 'Y' AND
418 new_references.optional_payment_ind <> 'N'
419 THEN
420 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
421 IGS_GE_MSG_STACK.ADD;
422 App_Exception.Raise_Exception;
423 END IF;
424 END IF;
425 IF (upper(Column_Name) = 'CLOSED_IND' OR
426 column_name is NULL) THEN
427 IF(new_references.closed_ind <> 'Y' AND
428 new_references.closed_ind <> 'N') THEN
429 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
430 IGS_GE_MSG_STACK.ADD;
431 App_Exception.Raise_Exception;
432 END IF;
433 END IF;
434 IF (upper(Column_Name) = 'S_FEE_TRIGGER_CAT' OR
435 column_name is NULL) THEN
436 IF new_references.s_fee_trigger_cat <> 'INSTITUTN' AND
437 new_references.s_fee_trigger_cat <> 'COURSE' AND
438 new_references.s_fee_trigger_cat <> 'UNIT' AND
439 new_references.s_fee_trigger_cat <> 'COMPOSITE' AND
440 new_references.s_fee_trigger_cat <> 'UNITSET' AND
441 new_references.s_fee_trigger_cat <> 'AUDIT' AND
442 new_references.s_fee_trigger_cat <> 'SPECIAL' THEN
443
444 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
445 IGS_GE_MSG_STACK.ADD;
446 App_Exception.Raise_Exception;
447 END IF;
448 END IF;
449
450 -- If the Optional Payment Indicator is set for Refunds,Finance, Late Charges etc. System Fee Types
454 IF new_references.optional_payment_ind = 'Y' THEN
451 -- then raise error
452 IF (upper(Column_Name) = 'OPTIONAL_PAYMENT_IND' OR
453 column_name IS NULL) THEN
455 IF new_references.s_fee_type IN ('REFUND',
456 'LATE',
457 'INTEREST',
458 'SPONSOR',
459 'AID_ADJ',
460 'DOCUMENT') THEN
461 fnd_message.set_name('IGS',
462 'IGS_FI_CANNOT_SET_OPT');
463 igs_ge_msg_stack.add;
464 app_exception.raise_exception;
465 END IF;
466 END IF;
467 END IF;
468
469 IF ( UPPER(column_name) = 'DESIGNATED_PAYMENT_FLAG'
470 OR column_name is NULL) THEN
471 IF( new_references.designated_payment_flag <> 'Y'
472 AND new_references.designated_payment_flag <> 'N' ) THEN
473 fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
474 igs_ge_msg_stack.ADD;
475 app_exception.raise_exception;
476 END IF;
477 END IF;
478
479 END Check_Constraints;
480
481
482 --created procedure as part of Bug 2175865
483 PROCEDURE check_parent_existance AS
484
485 --HISTORY
486 --Created by : vvutukur
487 --Purpose : for Bug 2175865
488 --Who When What
489 --
490
491 BEGIN
492
493 -- Check for parent existance of fee class
494 IF ((old_references.fee_class = new_references.fee_class)
495 OR (new_references.fee_class IS NULL)) THEN
496 NULL;
497 ELSE
498 IF NOT igs_lookups_view_pkg.get_pk_for_validation('FEE_CLASS',
499 new_references.fee_class) THEN
500 FND_MESSAGE.SET_NAME('FND','FORM_RECORD_DELETED');
501 IGS_GE_MSG_STACK.ADD;
502 APP_EXCEPTION.RAISE_EXCEPTION;
503 END IF;
504 END IF;
505 END check_parent_existance;
506
507
508 FUNCTION get_pk_for_validation (
509 x_fee_type IN VARCHAR2
510 ) RETURN BOOLEAN AS
511 ------------------------------------------------------------------
512 --Change History:
513 --Who When What
514 --pathipat 11-Feb-2003 Enh 2747325 - Locking Issues build
515 -- Removed FOR UPDATE NOWAIT clause in cur_rowid
516 -------------------------------------------------------------------
517 CURSOR cur_rowid IS
518 SELECT rowid
519 FROM igs_fi_fee_type_all
520 WHERE fee_type = x_fee_type ;
521
522 lv_rowid cur_rowid%ROWTYPE;
523
524 BEGIN
525 OPEN cur_rowid;
526 FETCH cur_rowid INTO lv_rowid;
527 IF (cur_rowid%FOUND) THEN
528 CLOSE cur_rowid;
529 RETURN(TRUE);
530 ELSE
531 CLOSE cur_rowid;
532 RETURN(FALSE);
533 END IF;
534 END get_pk_for_validation;
535
536
537 PROCEDURE Before_DML (
538 p_action IN VARCHAR2,
539 x_rowid IN VARCHAR2,
540 x_fee_type IN VARCHAR2,
541 x_s_fee_type IN VARCHAR2,
542 x_s_fee_trigger_cat IN VARCHAR2,
543 x_description IN VARCHAR2,
544 x_optional_payment_ind IN VARCHAR2,
545 x_closed_ind IN VARCHAR2,
546 x_comments IN VARCHAR2,
547 x_org_id IN NUMBER,
548 x_fee_class IN VARCHAR2, --Bug 2175865
549 x_designated_payment_flag IN VARCHAR2,
550 x_creation_date IN DATE,
551 x_created_by IN NUMBER,
552 x_last_update_date IN DATE,
553 x_last_updated_by IN NUMBER,
554 x_last_update_login IN NUMBER
555 ) AS
556 ------------------------------------------------------------------
557 --Change History:
558 --Who When What
559 --shtatiko 30-MAY-2003 Enh# 2831582, Added new column designated_payment_flag
560 --pathipat 11-Feb-2003 Enh 2747325 - Locking Issues build
561 -- Removed code for p_action = 'DELETE' and
562 -- 'VALIDATE_DELETE'
563 -------------------------------------------------------------------
564
565 BEGIN
566
567 Set_Column_Values (
568 p_action,
569 x_rowid,
570 x_fee_type,
571 x_s_fee_type,
572 x_s_fee_trigger_cat,
573 x_description,
574 x_optional_payment_ind,
575 x_closed_ind,
576 x_comments,
577 x_org_id,
578 x_fee_class, --Bug 2175865
579 x_designated_payment_flag,
580 x_creation_date,
581 x_created_by,
582 x_last_update_date,
583 x_last_updated_by,
584 x_last_update_login
585 );
586
587 IF (p_action = 'INSERT') THEN
588 -- Call all the procedures related to Before Insert.
589 BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE, p_updating =>FALSE , p_deleting =>FALSE);
590 IF Get_PK_For_Validation ( new_references.fee_type )THEN
591 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
592 IGS_GE_MSG_STACK.ADD;
593 App_Exception.Raise_Exception;
594 END IF;
595
596 --by vvutukur for Bug 2175865
597
601 ELSIF (p_action = 'UPDATE') THEN
598 BeforeRowInsertUpdate2 ( p_inserting => TRUE, p_updating => FALSE, p_deleteing =>FALSE);
599 Check_Constraints;
600 check_parent_existance; --Bug 2175865
602 -- Call all the procedures related to Before Update.
603 BeforeRowInsertUpdateDelete1 ( p_inserting => FALSE, p_updating => TRUE , p_deleting =>FALSE);
604
605 --by vvutukur for Bug 2175865
606 BeforeRowInsertUpdate2 ( p_inserting => FALSE, p_updating => TRUE, p_deleteing =>FALSE);
607
608 Check_Constraints;
609 check_parent_existance; --Bug 2175865
610 ELSIF (p_action = 'VALIDATE_INSERT') THEN
611 -- Call all the procedures related to Before Insert.
612 IF Get_PK_For_Validation ( new_references.fee_type ) THEN
613 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
614 IGS_GE_MSG_STACK.ADD;
615 App_Exception.Raise_Exception;
616 END IF;
617 Check_Constraints;
618 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
619 Check_Constraints;
620 END IF;
621 END Before_DML;
622
623
624 PROCEDURE After_DML (
625
626 p_action IN VARCHAR2,
627
628 x_rowid IN VARCHAR2
629
630 ) AS
631
632 BEGIN
633
634
635
636 l_rowid := x_rowid;
637
638 IF (p_action = 'UPDATE') THEN
639
640 -- Call all the procedures related to After Update.
641
642 AfterRowUpdate2 (p_inserting => FALSE, p_updating => TRUE, p_deleting => FALSE);
643 END IF;
644 END After_DML;
645
646
647 -- shtatiko 30-MAY-2003 Enh# 2831582, Added new column designated_payment_flag
648 procedure INSERT_ROW (
649 X_ROWID in out NOCOPY VARCHAR2,
650 X_FEE_TYPE in VARCHAR2,
651 X_S_FEE_TYPE in VARCHAR2,
652 X_S_FEE_TRIGGER_CAT in VARCHAR2,
653 X_DESCRIPTION in VARCHAR2,
654 X_OPTIONAL_PAYMENT_IND in VARCHAR2,
655 X_CLOSED_IND in VARCHAR2,
656 X_COMMENTS in VARCHAR2,
657 X_MODE in VARCHAR2,
658 X_ORG_ID in NUMBER,
659 X_FEE_CLASS in VARCHAR2, --Bug 2175865
660 X_DESIGNATED_PAYMENT_FLAG IN VARCHAR2
661 ) AS
662 cursor C is select ROWID from IGS_FI_FEE_TYPE_ALL
663 where FEE_TYPE = X_FEE_TYPE;
664 X_LAST_UPDATE_DATE DATE;
665 X_LAST_UPDATED_BY NUMBER;
666 X_LAST_UPDATE_LOGIN NUMBER;
667 begin
668 X_LAST_UPDATE_DATE := SYSDATE;
669 if (X_MODE = 'I') then
670 X_LAST_UPDATED_BY := 1;
671 X_LAST_UPDATE_LOGIN := 0;
672 elsif (X_MODE = 'R') then
673 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
674 if X_LAST_UPDATED_BY is NULL then
675 X_LAST_UPDATED_BY := -1;
676 end if;
677 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
678 if X_LAST_UPDATE_LOGIN is NULL then
679 X_LAST_UPDATE_LOGIN := -1;
680 end if;
681 else
682 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
683 IGS_GE_MSG_STACK.ADD;
684 app_exception.raise_exception;
685 end if;
686
687
688
689 Before_DML(
690 p_action=>'INSERT',
691 x_rowid=>X_ROWID,
692 x_closed_ind=>NVL(X_CLOSED_IND,'N'),
693 x_comments=>X_COMMENTS,
694 x_description=>X_DESCRIPTION,
695 x_fee_type=>X_FEE_TYPE,
696 x_optional_payment_ind=>NVL(X_OPTIONAL_PAYMENT_IND,'N'),
697 x_s_fee_trigger_cat=>NVL(X_S_FEE_TRIGGER_CAT,'INSTITUTN'),
698 x_s_fee_type=>NVL(X_S_FEE_TYPE,'OTHER'),
699 x_org_id => igs_ge_gen_003.get_org_id,
700 x_fee_class => X_FEE_CLASS, --Bug 2175865
701 x_designated_payment_flag => x_designated_payment_flag,
702 x_creation_date=>X_LAST_UPDATE_DATE,
703 x_created_by=>X_LAST_UPDATED_BY,
704 x_last_update_date=>X_LAST_UPDATE_DATE,
705 x_last_updated_by=>X_LAST_UPDATED_BY,
706 x_last_update_login=>X_LAST_UPDATE_LOGIN
707 );
708
709 insert into IGS_FI_FEE_TYPE_ALL (
710 FEE_TYPE,
711 S_FEE_TYPE,
712 S_FEE_TRIGGER_CAT,
713 DESCRIPTION,
714 OPTIONAL_PAYMENT_IND,
715 CLOSED_IND,
716 COMMENTS,
717 ORG_ID,
718 FEE_CLASS, --Bug 2175865
719 DESIGNATED_PAYMENT_FLAG,
720 CREATION_DATE,
721 CREATED_BY,
722 LAST_UPDATE_DATE,
723 LAST_UPDATED_BY,
724 LAST_UPDATE_LOGIN
725 ) values (
726 NEW_REFERENCES.FEE_TYPE,
727 NEW_REFERENCES.S_FEE_TYPE,
728 NEW_REFERENCES.S_FEE_TRIGGER_CAT,
729 NEW_REFERENCES.DESCRIPTION,
730 NEW_REFERENCES.OPTIONAL_PAYMENT_IND,
731 NEW_REFERENCES.CLOSED_IND,
732 NEW_REFERENCES.COMMENTS,
733 NEW_REFERENCES.ORG_ID,
734 NEW_REFERENCES.FEE_CLASS, --Bug 2175865
735 NEW_REFERENCES.DESIGNATED_PAYMENT_FLAG,
736 X_LAST_UPDATE_DATE,
737 X_LAST_UPDATED_BY,
738 X_LAST_UPDATE_DATE,
739 X_LAST_UPDATED_BY,
740 X_LAST_UPDATE_LOGIN
741 );
742
743 open c;
744 fetch c into X_ROWID;
745 if (c%notfound) then
746 close c;
747 raise no_data_found;
748 end if;
749 close c;
750
751 end INSERT_ROW;
752
753 -- shtatiko 30-MAY-2003 Enh# 2831582, Added new column designated_payment_flag
754 procedure LOCK_ROW (
755 X_ROWID in VARCHAR2,
756 X_FEE_TYPE in VARCHAR2,
760 X_OPTIONAL_PAYMENT_IND in VARCHAR2,
757 X_S_FEE_TYPE in VARCHAR2,
758 X_S_FEE_TRIGGER_CAT in VARCHAR2,
759 X_DESCRIPTION in VARCHAR2,
761 X_CLOSED_IND in VARCHAR2,
762 X_COMMENTS in VARCHAR2,
763 X_FEE_CLASS IN VARCHAR2, --Bug 2175865
764 X_DESIGNATED_PAYMENT_FLAG IN VARCHAR2
765 ) AS
766 cursor c1 is select
767 S_FEE_TYPE,
768 S_FEE_TRIGGER_CAT,
769 DESCRIPTION,
770 OPTIONAL_PAYMENT_IND,
771 CLOSED_IND,
772 COMMENTS,
773 FEE_CLASS, --Bug 2175865
774 designated_payment_flag
775 from IGS_FI_FEE_TYPE_ALL
776 where ROWID = X_ROWID
777 for update nowait;
778 tlinfo c1%rowtype;
779
780 begin
781 open c1;
782 fetch c1 into tlinfo;
783 if (c1%notfound) then
784 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
785 IGS_GE_MSG_STACK.ADD;
786 app_exception.raise_exception;
787 close c1;
788 return;
789 end if;
790 close c1;
791
792 if ( (tlinfo.S_FEE_TYPE = X_S_FEE_TYPE)
793 AND (tlinfo.S_FEE_TRIGGER_CAT = X_S_FEE_TRIGGER_CAT)
794 AND (tlinfo.DESCRIPTION = X_DESCRIPTION)
795 AND (tlinfo.OPTIONAL_PAYMENT_IND = X_OPTIONAL_PAYMENT_IND)
796 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
797 AND ((tlinfo.COMMENTS = X_COMMENTS)
798 OR ((tlinfo.COMMENTS is null)
799 AND (X_COMMENTS is null)))
800 -- BUG 2175865 by vvutukur
801 AND ((tlinfo.FEE_CLASS = X_FEE_CLASS)
802 OR ((tlinfo.FEE_CLASS IS NULL) AND (X_FEE_CLASS IS NULL)))
803 AND ((tlinfo.DESIGNATED_PAYMENT_FLAG = X_DESIGNATED_PAYMENT_FLAG)
804 OR ((tlinfo.DESIGNATED_PAYMENT_FLAG IS NULL) AND (X_DESIGNATED_PAYMENT_FLAG IS NULL)))
805 ) then
806 null;
807 else
808 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
809 IGS_GE_MSG_STACK.ADD;
810 app_exception.raise_exception;
811 end if;
812 return;
813 end LOCK_ROW;
814
815 -- shtatiko 30-MAY-2003 Enh# 2831582, Added new column designated_payment_flag
816 procedure UPDATE_ROW (
817 X_ROWID in VARCHAR2,
818 X_FEE_TYPE in VARCHAR2,
819 X_S_FEE_TYPE in VARCHAR2,
820 X_S_FEE_TRIGGER_CAT in VARCHAR2,
821 X_DESCRIPTION in VARCHAR2,
822 X_OPTIONAL_PAYMENT_IND in VARCHAR2,
823 X_CLOSED_IND in VARCHAR2,
824 X_COMMENTS in VARCHAR2,
825 X_MODE in VARCHAR2,
826 X_FEE_CLASS in VARCHAR2, --Bug 2175865
827 X_DESIGNATED_PAYMENT_FLAG IN VARCHAR2
828 ) is
829 X_LAST_UPDATE_DATE DATE;
830 X_LAST_UPDATED_BY NUMBER;
831 X_LAST_UPDATE_LOGIN NUMBER;
832 begin
833 X_LAST_UPDATE_DATE := SYSDATE;
834 if(X_MODE = 'I') then
835 X_LAST_UPDATED_BY := 1;
836 X_LAST_UPDATE_LOGIN := 0;
837 elsif (X_MODE = 'R') then
838 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
839 if X_LAST_UPDATED_BY is NULL then
840 X_LAST_UPDATED_BY := -1;
841 end if;
842 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
843 if X_LAST_UPDATE_LOGIN is NULL then
844 X_LAST_UPDATE_LOGIN := -1;
845 end if;
846 else
847 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
848 IGS_GE_MSG_STACK.ADD;
849 app_exception.raise_exception;
850 end if;
851
852
853
854 Before_DML(
855 p_action=>'UPDATE',
856 x_rowid=>X_ROWID,
857 x_closed_ind=>X_CLOSED_IND,
858 x_comments=>X_COMMENTS,
859 x_description=>X_DESCRIPTION,
860 x_fee_type=>X_FEE_TYPE,
861 x_optional_payment_ind=>X_OPTIONAL_PAYMENT_IND,
862 x_s_fee_trigger_cat=>X_S_FEE_TRIGGER_CAT,
863 x_s_fee_type=>X_S_FEE_TYPE,
864 x_fee_class => X_FEE_CLASS, --Bug 2175865
865 x_designated_payment_flag => x_designated_payment_flag,
866 x_creation_date=>X_LAST_UPDATE_DATE,
867 x_created_by=>X_LAST_UPDATED_BY,
868 x_last_update_date=>X_LAST_UPDATE_DATE,
869 x_last_updated_by=>X_LAST_UPDATED_BY,
870 x_last_update_login=>X_LAST_UPDATE_LOGIN
871 );
872
873
874 update IGS_FI_FEE_TYPE_ALL set
875 S_FEE_TYPE = NEW_REFERENCES.S_FEE_TYPE,
876 S_FEE_TRIGGER_CAT = NEW_REFERENCES.S_FEE_TRIGGER_CAT,
877 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
878 OPTIONAL_PAYMENT_IND = NEW_REFERENCES.OPTIONAL_PAYMENT_IND,
879 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
880 COMMENTS = NEW_REFERENCES.COMMENTS,
881 FEE_CLASS = NEW_REFERENCES.FEE_CLASS, --Bug 2175865
882 designated_payment_flag = new_references.designated_payment_flag,
883 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
884 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
885 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
886 where ROWID = X_ROWID;
887 if (sql%notfound) then
888 raise no_data_found;
889 end if;
890
891
892
893 After_DML (
894 p_action => 'UPDATE',
895 x_rowid => X_ROWID
896 );
897 END update_row;
898
899 -- shtatiko 30-MAY-2003 Enh# 2831582, Added new column designated_payment_flag
900 procedure ADD_ROW (
901 X_ROWID in out NOCOPY VARCHAR2,
902 X_FEE_TYPE in VARCHAR2,
903 X_S_FEE_TYPE in VARCHAR2,
904 X_S_FEE_TRIGGER_CAT in VARCHAR2,
905 X_DESCRIPTION in VARCHAR2,
906 X_OPTIONAL_PAYMENT_IND in VARCHAR2,
907 X_CLOSED_IND in VARCHAR2,
908 X_COMMENTS in VARCHAR2,
909 X_MODE in VARCHAR2,
910 X_ORG_ID in NUMBER,
911 X_FEE_CLASS in VARCHAR2, --Bug 2175865
912 X_DESIGNATED_PAYMENT_FLAG IN VARCHAR2
913 ) AS
914 CURSOR c1 is SELECT rowid FROM igs_fi_fee_type_all
915 WHERE FEE_TYPE = X_FEE_TYPE
916 ;
917 begin
918 OPEN c1;
919 FETCH c1 INTO X_ROWID;
920 IF (c1%NOTFOUND) THEN
921 close c1;
922 INSERT_ROW (
923 X_ROWID,
924 X_FEE_TYPE,
925 X_S_FEE_TYPE,
926 X_S_FEE_TRIGGER_CAT,
927 X_DESCRIPTION,
928 X_OPTIONAL_PAYMENT_IND,
929 X_CLOSED_IND,
930 X_COMMENTS,
931 X_MODE,
932 X_ORG_ID,
933 X_FEE_CLASS, --Bug 2175865
934 X_DESIGNATED_PAYMENT_FLAG );
935 RETURN;
936 END IF;
937 CLOSE c1;
938 UPDATE_ROW (
939 X_ROWID,
940 X_FEE_TYPE,
941 X_S_FEE_TYPE,
942 X_S_FEE_TRIGGER_CAT,
943 X_DESCRIPTION,
944 X_OPTIONAL_PAYMENT_IND,
945 X_CLOSED_IND,
946 X_COMMENTS,
947 X_MODE,
948 X_FEE_CLASS, --Bug 2175865
949 X_DESIGNATED_PAYMENT_FLAG );
950 END add_row;
951
952
953 END igs_fi_fee_type_pkg;