1 PACKAGE BODY igs_fi_fee_as_rate_pkg AS
2 /* $Header: IGSSI68B.pls 120.4 2006/05/26 10:57:37 sapanigr ship $*/
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_FI_FEE_AS_RATE%RowType;
6 new_references IGS_FI_FEE_AS_RATE%RowType;
7 -- Forward declaring the private procedure to ensure compiling of the package
8 PROCEDURE beforerowupdate;
9
10 PROCEDURE Set_Column_Values (
11 p_action IN VARCHAR2,
12 x_rowid IN VARCHAR2 ,
13 x_far_id IN NUMBER ,
14 x_fee_type IN VARCHAR2 ,
15 x_fee_cal_type IN VARCHAR2 ,
16 x_fee_ci_sequence_number IN NUMBER ,
17 x_s_relation_type IN VARCHAR2 ,
18 x_rate_number IN NUMBER ,
19 x_fee_cat IN VARCHAR2 ,
20 x_location_cd IN VARCHAR2 ,
21 x_attendance_type IN VARCHAR2 ,
22 x_attendance_mode IN VARCHAR2 ,
23 x_order_of_precedence IN NUMBER ,
24 x_govt_hecs_payment_option IN VARCHAR2 ,
25 x_govt_hecs_cntrbtn_band IN NUMBER ,
26 x_chg_rate IN NUMBER ,
27 x_logical_delete_dt IN DATE ,
28 x_residency_status_cd IN VARCHAR2 ,
29 x_course_cd IN VARCHAR2 ,
30 x_version_number IN NUMBER ,
31 x_org_party_id IN NUMBER ,
32 x_class_standing IN VARCHAR2 ,
33 x_creation_date IN DATE ,
34 x_created_by IN NUMBER ,
35 x_last_update_date IN DATE ,
36 x_last_updated_by IN NUMBER ,
37 x_last_update_login IN NUMBER,
38 x_unit_set_cd IN VARCHAR2,
39 x_us_version_number IN NUMBER,
40 x_unit_cd IN VARCHAR2 ,
41 x_unit_version_number IN NUMBER ,
42 x_unit_level IN VARCHAR2 ,
43 x_unit_type_id IN NUMBER ,
44 x_unit_class IN VARCHAR2 ,
45 x_unit_mode IN VARCHAR2
46
47 ) AS
48 /*-----------------------------------------------------------------
49 || Created By :
50 || Created On :
51 || Purpose :
52 || Known limitations, enhancements or remarks :
53 || Change History :
54 || Who When What
55 || (reverse chronological order - newest change first)
56 || svuppala 31-MAY-2005 Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
57 || Unit Version and Unit Level
58 || pathipat 10-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
59 || Added 2 new columns unit_set_cd and us_version_number
60 --------------------------------------------------------------------*/
61 CURSOR cur_old_ref_values IS
62 SELECT *
63 FROM IGS_FI_FEE_AS_RATE
64 WHERE rowid = x_rowid;
65
66 BEGIN
67 l_rowid := x_rowid;
68 -- Code for setting the Old and New Reference Values.
69 -- Populate Old Values.
70 OPEN cur_old_ref_values;
71 FETCH cur_old_ref_values INTO old_references;
72 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
73 CLOSE cur_old_ref_values;
74 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
75 igs_ge_msg_stack.add;
76 app_exception.raise_exception;
77 RETURN;
78 END IF;
79 CLOSE cur_old_ref_values;
80
81 -- Populate New Values.
82 new_references.far_id := x_far_id;
83 new_references.fee_type := x_fee_type;
84 new_references.fee_cal_type := x_fee_cal_type;
85 new_references.fee_ci_sequence_number := x_fee_ci_sequence_number;
86 new_references.s_relation_type := x_s_relation_type;
87 new_references.rate_number := x_rate_number;
88 new_references.fee_cat := x_fee_cat;
89 new_references.location_cd := x_location_cd;
90 new_references.attendance_type := x_attendance_type;
91 new_references.attendance_mode := x_attendance_mode;
92 new_references.order_of_precedence := x_order_of_precedence;
93 new_references.govt_hecs_payment_option := x_govt_hecs_payment_option;
94 new_references.govt_hecs_cntrbtn_band := x_govt_hecs_cntrbtn_band;
95 new_references.chg_rate := x_chg_rate;
96 new_references.logical_delete_dt := x_logical_delete_dt;
97 new_references.residency_status_cd := x_residency_status_cd;
98 new_references.course_cd := x_course_cd;
99 new_references.version_number := x_version_number;
100 new_references.org_party_id := x_org_party_id;
101 new_references.class_standing := x_class_standing;
102 new_references.unit_set_cd := x_unit_set_cd;
103 new_references.us_version_number := x_us_version_number;
104 new_references.unit_cd := x_unit_cd ;
105 new_references.unit_version_number := x_unit_version_number ;
106 new_references.unit_level := x_unit_level ;
107 new_references.unit_type_id := x_unit_type_id ;
108 new_references.unit_class := x_unit_class ;
109 new_references.unit_mode := x_unit_mode ;
110
111
112 IF (p_action = 'UPDATE') THEN
113 new_references.creation_date := old_references.creation_date;
114 new_references.created_by := old_references.created_by;
115 ELSE
116 new_references.creation_date := x_creation_date;
117 new_references.created_by := x_created_by;
118 END IF;
119 new_references.last_update_date := x_last_update_date;
120 new_references.last_updated_by := x_last_updated_by;
121 new_references.last_update_login := x_last_update_login;
122
123 END set_column_values;
124
125
126 -- Trigger description
127 -- before insert or delete or update on IGS_FI_FEE_AS_RATE for each row
128 PROCEDURE BeforeRowInsertUpdateDelete1(
129 p_inserting IN BOOLEAN ,
130 p_updating IN BOOLEAN ,
131 p_deleting IN BOOLEAN
132 ) AS
133 /*-----------------------------------------------------------------
134 || Created By :
135 || Created On :
136 || Purpose :
137 || Known limitations, enhancements or remarks :
138 || Change History :
139 || Who When What
140 || (reverse chronological order - newest change first)
141 --------------------------------------------------------------------*/
142 v_message_name varchar2(30);
143 BEGIN
144 -- Validate Fee Assessment Rate can be created.
145 IF p_inserting THEN
146 -- If IGS_FI_FEE_TYPE.s_fee_trigger_cat = 'INSTITUTN' or
147 -- IGS_FI_FEE_TYPE.s_fee_type = 'HECS', then schedules can only
148 -- be defined against FTCI's.
149 IF new_references.s_relation_type <> 'FTCI' THEN
150 IF IGS_FI_VAL_FAR.finp_val_far_ins (
151 new_references.fee_type,
152 v_message_name) = FALSE THEN
153 Fnd_Message.Set_Name('IGS',v_message_name);
154 IGS_GE_MSG_STACK.ADD;
155 App_Exception.Raise_Exception;
156 END IF;
157 END IF;
158 END IF;
159 -- Validate that appropriate fields are set depending on the fee type.
160 IF p_inserting OR p_updating THEN
161 IF IGS_FI_VAL_FAR.finp_val_far_defntn (
162 new_references.fee_type,
163 new_references.location_cd,
164 new_references.attendance_type,
165 new_references.attendance_mode,
166 new_references.govt_hecs_payment_option,
167 new_references.govt_hecs_cntrbtn_band,
168 v_message_name) = FALSE THEN
169 Fnd_Message.Set_Name('IGS',v_message_name);
170 IGS_GE_MSG_STACK.ADD;
171 App_Exception.Raise_Exception;
172 END IF;
173 END IF;
174 -- Validate fee category is only set when the relation type = 'FCFL'.
175 IF p_inserting OR p_updating THEN
176 IF IGS_FI_VAL_FAR.finp_val_far_rltn (
177 new_references.s_relation_type,
178 new_references.fee_cat,
179 v_message_name) = FALSE THEN
180 Fnd_Message.Set_Name('IGS',v_message_name);
181 IGS_GE_MSG_STACK.ADD;
182 App_Exception.Raise_Exception;
183 END IF;
184 END IF;
185 -- Validate closed indicators.
186 IF p_inserting OR p_updating THEN
187 -- Validate for closed location.
188 IF IGS_FI_VAL_FAR.crsp_val_loc_cd (
189 new_references.location_cd,
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 -- Validate for closed attendance type.
196 -- change igs_fi_val_far.enrp_val_att_closed
197 -- to igs_en_val_pee.enrp_val_att_closed
198 --
199 IF IGS_EN_VAL_PEE.enrp_val_att_closed (
200 new_references.attendance_type,
201 v_message_name) = FALSE THEN
202 Fnd_Message.Set_Name('IGS',v_message_name);
203 IGS_GE_MSG_STACK.ADD;
204 App_Exception.Raise_Exception;
205 END IF;
206 -- Validate for closed attendance mode.
207 IF IGS_FI_VAL_FAR.enrp_val_am_closed (
208 new_references.attendance_mode,
209 v_message_name) = FALSE THEN
210 Fnd_Message.Set_Name('IGS',v_message_name);
211 IGS_GE_MSG_STACK.ADD;
212 App_Exception.Raise_Exception;
213 END IF;
214 END IF;
215 END BeforeRowInsertUpdateDelete1;
216
217
218 -- Trigger description :-
219 -- AFTER UPDATE ON IGS_FI_FEE_AS_RATE FOR EACH ROW
220 PROCEDURE AfterRowUpdate3(
221 p_inserting IN BOOLEAN ,
222 p_updating IN BOOLEAN ,
223 p_deleting IN BOOLEAN
224 ) AS
225 /*-----------------------------------------------------------------
226 || Created By :
227 || Created On :
228 || Purpose :
229 || Known limitations, enhancements or remarks :
230 || Change History :
231 || Who When What
232 || (reverse chronological order - newest change first)
233 || svuppala 31-MAY-2005 Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
234 || Unit Version and Unit Level
235 || pathipat 10-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
236 || Added 2 new columns unit_set_cd and us_version_number
237 || in call to finp_ins_far_hist
238 --------------------------------------------------------------------*/
239 BEGIN
240 -- create a history
241 igs_fi_gen_002.finp_ins_far_hist(old_references.fee_type,
242 old_references.fee_cal_type,
243 old_references.fee_ci_sequence_number,
244 old_references.s_relation_type,
245 old_references.rate_number,
246 new_references.fee_cat,
247 old_references.fee_cat,
248 new_references.location_cd,
249 old_references.location_cd,
250 new_references.attendance_type,
251 old_references.attendance_type,
252 new_references.attendance_mode,
253 old_references.attendance_mode,
254 new_references.order_of_precedence,
255 old_references.order_of_precedence,
256 new_references.govt_hecs_payment_option,
257 old_references.govt_hecs_payment_option,
258 new_references.govt_hecs_cntrbtn_band,
259 old_references.govt_hecs_cntrbtn_band,
260 new_references.chg_rate,
261 old_references.chg_rate,
262 new_references.unit_class ,
263 old_references.unit_class ,
264 new_references.residency_status_cd,
265 old_references.residency_status_cd,
266 new_references.course_cd,
267 old_references.course_cd,
268 new_references.version_number,
269 old_references.version_number,
270 new_references.org_party_id,
271 old_references.org_party_id,
272 new_references.class_standing,
273 old_references.class_standing,
274 new_references.last_updated_by,
275 old_references.last_updated_by,
276 new_references.last_update_date,
277 old_references.last_update_date,
278 new_references.unit_set_cd,
279 old_references.unit_set_cd,
280 new_references.us_version_number,
281 old_references.us_version_number,
282 new_references.unit_cd ,
283 old_references.unit_cd ,
284 new_references.unit_version_number,
285 old_references.unit_version_number,
286 new_references.unit_level ,
287 old_references.unit_level ,
288 new_references.unit_type_id,
289 old_references.unit_type_id,
290 new_references.unit_mode ,
291 old_references.unit_mode
292 );
293
294 END AfterRowUpdate3;
295
296
297 -- Trigger description :-
298 -- AFTER INSERT OR UPDATE ON IGS_FI_FEE_AS_RATE
299 PROCEDURE AfterStmtInsertUpdate4(
300 p_inserting IN BOOLEAN ,
301 p_updating IN BOOLEAN ,
302 p_deleting IN BOOLEAN
303 ) AS
304 /*-----------------------------------------------------------------
305 || Created By :
306 || Created On :
307 || Purpose :
308 || Known limitations, enhancements or remarks :
309 || Change History :
310 || Who When What
311 || (reverse chronological order - newest change first)
312 || pathipat 10-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
313 || Modified call to finp_val_far_unique - Added 2
314 || new columns unit_set_cd and us_version_number
315 --------------------------------------------------------------------*/
316 v_message_name varchar2(30);
317 v_message_string VARCHAR2(512);
318 BEGIN
319 -- Validate if fee_ass_rate can be created and if so, then
320 -- validate that it is unique and the order of precedence.
321 IF p_inserting OR p_updating THEN
322 IF IGS_FI_VAL_FAR.finp_val_far_create(new_references.fee_type,
323 new_references.fee_cal_type,
324 new_references.fee_ci_sequence_number,
325 new_references.s_relation_type,
326 v_message_name) = FALSE THEN
327 Fnd_Message.Set_Name('IGS',v_message_name);
328 IGS_GE_MSG_STACK.ADD;
329 App_Exception.Raise_Exception;
330 END IF;
331 IF igs_fi_val_far.finp_val_far_unique(new_references.fee_type,
332 new_references.fee_cal_type,
333 new_references.fee_ci_sequence_number,
334 new_references.s_relation_type,
335 new_references.rate_number,
336 new_references.fee_cat,
337 new_references.location_cd,
338 new_references.attendance_type,
339 new_references.attendance_mode,
340 new_references.govt_hecs_payment_option,
341 new_references.govt_hecs_cntrbtn_band,
342 new_references.chg_rate,
343 new_references.unit_class,
344 new_references.residency_status_cd,
345 new_references.course_cd,
346 new_references.version_number,
347 new_references.org_party_id,
348 new_references.class_standing,
349 v_message_name,
350 new_references.unit_set_cd,
351 new_references.us_version_number,
352 new_references.unit_cd ,
353 new_references.unit_version_number,
354 new_references.unit_level ,
355 new_references.unit_type_id,
356 new_references.unit_mode
357 ) = FALSE THEN
358 Fnd_Message.Set_Name('IGS',v_message_name);
359 IGS_GE_MSG_STACK.ADD;
360 App_Exception.Raise_Exception;
361 END IF;
362 IF IGS_FI_VAL_FAR.finp_val_far_order(new_references.fee_type,
363 new_references.fee_cal_type,
364 new_references.fee_ci_sequence_number,
365 new_references.s_relation_type,
366 new_references.rate_number,
367 new_references.fee_cat,
368 new_references.location_cd,
369 new_references.attendance_type,
370 new_references.attendance_mode,
371 new_references.govt_hecs_payment_option,
372 new_references.govt_hecs_cntrbtn_band,
373 new_references.order_of_precedence,
374 v_message_name) = FALSE THEN
375 Fnd_Message.Set_Name('IGS',v_message_name);
376 IGS_GE_MSG_STACK.ADD;
377 App_Exception.Raise_Exception;
378 END IF;
379 END IF;
380 END AfterStmtInsertUpdate4;
381
382
383 PROCEDURE Check_Constraints (
384 column_name IN VARCHAR2 ,
385 column_value IN VARCHAR2
386 ) AS
387 /*----------------------------------------------------------------------------
388 || Created By :
389 || Created On :
390 || Purpose :
391 || Known limitations, enhancements or remarks :
392 || Change History :
393 || Who When What
394 || (reverse chronological order - newest change first)
395 || sapanigr 26-May-2006 Enh 5217319. Removed highest value criteria for item 'CHG_RATE'
396 || svuppala 31-MAY-2005 Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
397 || Unit Version and Unit Level
398 || pathipat 10-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
399 || Added 2 new columns unit_set_cd and us_version_number
400 || vvutukur 21-Apr-2003 Bug#2885575.Changed the upper limit check to 999999999 for fields rate_number and order_of_precedence.
401 || SYKRISHn 10APR03 ORDER_OF_PRECEDENCE - Changes limit check to 9999
402 || vvutukur 12-May-2002 removed upper check constraint on fee category,fee type columns.bug#2344826.
403 ----------------------------------------------------------------------------*/
404 BEGIN
405 IF (column_name IS NULL) THEN
406 NULL;
407 ELSIF (UPPER (column_name) = 'ATTENDANCE_MODE') THEN
408 new_references.attendance_mode := column_value;
409 ELSIF (UPPER (column_name) = 'ATTENDANCE_TYPE') THEN
410 new_references.attendance_type := column_value;
411 ELSIF (UPPER (column_name) = 'FEE_CAL_TYPE') THEN
412 new_references.fee_cal_type := column_value;
413 ELSIF (UPPER (column_name) = 'GOVT_HECS_PAYMENT_OPTION') THEN
414 new_references.govt_hecs_payment_option := column_value;
415 ELSIF (UPPER (column_name) = 'LOCATION_CD') THEN
416 new_references.location_cd := column_value;
417 ELSIF (UPPER (column_name) = 'FEE_CI_SEQUENCE_NUMBER') THEN
418 new_references.fee_ci_sequence_number := igs_ge_number.To_Num (column_value);
419 ELSIF (UPPER (column_name) = 'S_RELATION_TYPE') THEN
420 new_references.s_relation_type := column_value;
421 ELSIF (UPPER (column_name) = 'RATE_NUMBER') THEN
422 new_references.rate_number := igs_ge_number.To_Num (column_value);
423 ELSIF (UPPER (column_name) = 'ORDER_OF_PRECEDENCE') THEN
424 new_references.order_of_precedence := igs_ge_number.To_Num (column_value);
425 ELSIF (UPPER (column_name) = 'CHG_RATE') THEN
426 new_references.chg_rate := igs_ge_number.to_num (column_value);
427 ELSIF (UPPER (column_name) = 'COURSE_CD') THEN
428 new_references.course_cd := column_value;
429 ELSIF (UPPER (column_name) = 'VERSION_NUMBER') THEN
430 new_references.version_number := igs_ge_number.to_num (column_value);
431 ELSIF (UPPER (column_name) = 'CLASS_STANDING') THEN
432 new_references.class_standing := column_value;
433 ELSIF (UPPER(column_name) = 'UNIT_SET_CD') THEN
434 new_references.unit_set_cd := column_value;
435 ELSIF (UPPER(column_name) = 'UNIT_VERSION_NUMBER') THEN
436 new_references.unit_version_number := igs_ge_number.to_num(column_value);
437 ELSIF (UPPER(column_name) = 'US_VERSION_NUMBER') THEN
438 new_references.us_version_number := igs_ge_number.to_num(column_value);
439 ELSIF (UPPER(column_name) = 'UNIT_TYPE_ID') THEN
440 new_references.unit_type_id := igs_ge_number.to_num(column_value);
441 ELSIF (UPPER (column_name) = 'UNIT_CD') THEN
442 new_references.unit_cd := column_value;
443 ELSIF (UPPER (column_name) = 'UNIT_LEVEL') THEN
444 new_references.unit_level := column_value;
445 ELSIF (UPPER (column_name) = 'UNIT_CLASS') THEN
446 new_references.unit_class := column_value;
447 ELSIF (UPPER(column_name) = 'UNIT_MODE') THEN
448 new_references.unit_mode := column_value;
449 END IF;
450
451 IF ((UPPER (column_name) = 'ATTENDANCE_MODE') OR (column_name IS NULL)) THEN
452 IF (new_references.attendance_mode <> UPPER (new_references.attendance_mode)) THEN
453 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
454 IGS_GE_MSG_STACK.ADD;
455 App_Exception.Raise_Exception;
456 END IF;
457 END IF;
458 IF ((UPPER (column_name) = 'ATTENDANCE_TYPE') OR (column_name IS NULL)) THEN
459 IF (new_references.attendance_type <> UPPER (new_references.attendance_type)) THEN
460 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
461 IGS_GE_MSG_STACK.ADD;
462 App_Exception.Raise_Exception;
463 END IF;
464 END IF;
465 IF ((UPPER (column_name) = 'FEE_CAL_TYPE') OR (column_name IS NULL)) THEN
466 IF (new_references.fee_cal_type <> UPPER (new_references.fee_cal_type)) THEN
467 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
468 IGS_GE_MSG_STACK.ADD;
469 App_Exception.Raise_Exception;
470 END IF;
471 END IF;
472 IF ((UPPER (column_name) = 'GOVT_HECS_PAYMENT_OPTION') OR (column_name IS NULL)) THEN
473 IF (new_references.govt_hecs_payment_option <> UPPER (new_references.govt_hecs_payment_option)) THEN
474 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
475 IGS_GE_MSG_STACK.ADD;
476 App_Exception.Raise_Exception;
477 END IF;
478 END IF;
479 IF ((UPPER (column_name) = 'LOCATION_CD') OR (column_name IS NULL)) THEN
480 IF (new_references.location_cd <> UPPER (new_references.location_cd)) THEN
481 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
482 IGS_GE_MSG_STACK.ADD;
483 App_Exception.Raise_Exception;
484 END IF;
485 END IF;
486 IF ((UPPER (column_name) = 'FEE_CI_SEQUENCE_NUMBER') OR (column_name IS NULL)) THEN
487 IF ((new_references.fee_ci_sequence_number < 1) OR (new_references.fee_ci_sequence_number > 999999)) THEN
488 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
489 IGS_GE_MSG_STACK.ADD;
490 App_Exception.Raise_Exception;
491 END IF;
492 END IF;
493 IF ((UPPER (column_name) = 'S_RELATION_TYPE') OR (column_name IS NULL)) THEN
494 IF (new_references.s_relation_type NOT IN ('FTCI', 'FCFL')) THEN
495 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
496 IGS_GE_MSG_STACK.ADD;
497 App_Exception.Raise_Exception;
498 END IF;
499 END IF;
500 IF ((UPPER (column_name) = 'RATE_NUMBER') OR (column_name IS NULL)) THEN
501 IF ((new_references.rate_number < 1) OR (new_references.rate_number > 999999999)) THEN
502 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
503 IGS_GE_MSG_STACK.ADD;
504 App_Exception.Raise_Exception;
505 END IF;
506 END IF;
507 IF ((UPPER (column_name) = 'ORDER_OF_PRECEDENCE') OR (column_name IS NULL)) THEN
508 IF ((new_references.order_of_precedence < 0) OR (new_references.order_of_precedence > 999999999)) THEN
509 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
510 IGS_GE_MSG_STACK.ADD;
511 App_Exception.Raise_Exception;
512 END IF;
513 END IF;
514 IF ((UPPER (column_name) = 'CHG_RATE') OR (column_name IS NULL)) THEN
515 IF (new_references.chg_rate < 0) THEN
516 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
517 IGS_GE_MSG_STACK.ADD;
518 App_Exception.Raise_Exception;
519 END IF;
520 END IF;
521 IF ((UPPER (column_name) = 'COURSE_CD') OR (column_name IS NULL)) THEN
522 IF (new_references.course_cd <> UPPER (new_references.course_cd)) THEN
523 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
524 IGS_GE_MSG_STACK.ADD;
525 App_Exception.Raise_Exception;
526 END IF;
527 END IF;
528 IF ((UPPER (column_name) = 'VERSION_NUMBER') OR (column_name IS NULL)) THEN
529 IF ((new_references.version_number < 0) OR (new_references.version_number > 999)) THEN
530 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
531 IGS_GE_MSG_STACK.ADD;
532 App_Exception.Raise_Exception;
533 END IF;
534 END IF;
535 IF ((UPPER (column_name) = 'CLASS_STANDING') OR (column_name IS NULL)) THEN
536 IF (new_references.class_standing <> UPPER (new_references.class_standing)) THEN
537 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
538 IGS_GE_MSG_STACK.ADD;
539 App_Exception.Raise_Exception;
540 END IF;
541 END IF;
542 IF ((UPPER(column_name) = 'UNIT_SET_CD') OR (column_name IS NULL)) THEN
543 IF (new_references.unit_set_cd <> UPPER(new_references.unit_set_cd)) THEN
544 fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
545 igs_ge_msg_stack.add;
546 app_exception.raise_exception;
547 END IF;
548 END IF;
549 IF ((UPPER(column_name) = 'US_VERSION_NUMBER') OR (column_name IS NULL)) THEN
550 IF ((new_references.us_version_number < 0) OR (new_references.us_version_number > 999)) THEN
551 fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
552 igs_ge_msg_stack.add;
553 app_exception.raise_exception;
554 END IF;
555 END IF;
556 IF ((UPPER(column_name) = 'UNIT_VERSION_NUMBER') OR (column_name IS NULL)) THEN
557 IF ((new_references.unit_version_number < 0) OR (new_references.unit_version_number > 999)) THEN
558 fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
559 igs_ge_msg_stack.add;
560 app_exception.raise_exception;
561 END IF;
562 END IF;
563 IF ((UPPER(column_name) = 'UNIT_TYPE_ID') OR (column_name IS NULL)) THEN
564 IF (new_references.unit_type_id < 0) THEN
565 fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
566 igs_ge_msg_stack.add;
567 app_exception.raise_exception;
568 END IF;
569 END IF;
570 IF ((UPPER (column_name) = 'UNIT_CD') OR (column_name IS NULL)) THEN
571 IF (new_references.unit_cd <> UPPER (new_references.unit_cd)) THEN
572 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
573 IGS_GE_MSG_STACK.ADD;
574 App_Exception.Raise_Exception;
575 END IF;
576 END IF;
577 IF ((UPPER(column_name) = 'UNIT_LEVEL') OR (column_name IS NULL)) THEN
578 IF (new_references.unit_level <> UPPER(new_references.unit_level)) THEN
579 fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
580 igs_ge_msg_stack.add;
581 app_exception.raise_exception;
582 END IF;
583 END IF;
584 IF ((UPPER (column_name) = 'UNIT_CLASS') OR (column_name IS NULL)) THEN
585 IF (new_references.unit_class <> UPPER (new_references.unit_class)) THEN
586 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
587 IGS_GE_MSG_STACK.ADD;
588 App_Exception.Raise_Exception;
589 END IF;
590 END IF;
591 IF ((UPPER(column_name) = 'UNIT_MODE') OR (column_name IS NULL)) THEN
592 IF (new_references.unit_mode <> UPPER(new_references.unit_mode)) THEN
593 fnd_message.set_name('IGS', 'IGS_GE_INVALID_VALUE');
594 igs_ge_msg_stack.add;
595 app_exception.raise_exception;
596 END IF;
597 END IF;
598
599 END Check_Constraints;
600
601
602 PROCEDURE Check_Uniqueness AS
603 /*-----------------------------------------------------------------
604 || Created By :
605 || Created On :
606 || Purpose :
607 || Known limitations, enhancements or remarks :
608 || Change History :
609 || Who When What
610 || (reverse chronological order - newest change first)
611 --------------------------------------------------------------------*/
612 BEGIN
613 IF (Get_UK1_For_Validation (
614 new_references.fee_type,
615 new_references.fee_cal_type,
616 new_references.fee_ci_sequence_number,
617 new_references.rate_number,
618 new_references.fee_cat
619 )) THEN
620 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
621 IGS_GE_MSG_STACK.ADD;
622 App_Exception.Raise_Exception;
623 END IF;
624 IF (Get_UK2_For_Validation (
625 new_references.fee_type,
626 new_references.fee_cal_type,
627 new_references.fee_ci_sequence_number,
628 new_references.s_relation_type,
629 new_references.rate_number,
630 new_references.fee_cat
631 )) THEN
632 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
633 IGS_GE_MSG_STACK.ADD;
634 App_Exception.Raise_Exception;
635 END IF;
636 END Check_Uniqueness;
637
638
639 PROCEDURE Check_Child_Existance AS
640 /*-----------------------------------------------------------------
641 || Created By :
642 || Created On :
643 || Purpose :
644 || Known limitations, enhancements or remarks :
645 || Change History :
646 || Who When What
647 || (reverse chronological order - newest change first)
648 || svuppala 23-JUN-2005 Bug 3392088 Modifications as part of CPF build
649 --------------------------------------------------------------------*/
650 BEGIN
651 igs_fi_elm_range_rt_pkg.get_ufk_igs_fi_fee_as_rate (
652 new_references.fee_type,
653 new_references.fee_cal_type,
654 new_references.fee_ci_sequence_number,
655 new_references.s_relation_type,
656 new_references.rate_number,
657 new_references.fee_cat
658 );
659
660 -- checking child
661 igs_fi_sub_er_rt_pkg.get_fk_igs_fi_fee_as_rate (
662 new_references.far_id
663 );
664 END Check_Child_Existance;
665
666
667 PROCEDURE Check_UK_Child_Existance AS
668 /*-----------------------------------------------------------------
669 || Created By :
670 || Created On :
671 || Purpose :
672 || Known limitations, enhancements or remarks :
673 || Change History :
674 || Who When What
675 || (reverse chronological order - newest change first)
676 --------------------------------------------------------------------*/
677 BEGIN
678 IF (((old_references.fee_type = new_references.fee_type) AND
679 (old_references.fee_cal_type = new_references.fee_cal_type) AND
680 (old_references.fee_ci_sequence_number = new_references.fee_ci_sequence_number) AND
681 (old_references.s_relation_type = new_references.s_relation_type) AND
682 (old_references.rate_number = new_references.rate_number) AND
683 (old_references.fee_cat = new_references.fee_cat)) OR
684 ((old_references.fee_type = Null) AND
685 (old_references.fee_cal_type = Null) AND
686 (old_references.fee_ci_sequence_number = Null) AND
687 (old_references.s_relation_type = Null) AND
688 (old_references.rate_number = Null) AND
689 (old_references.fee_cat = Null))) THEN
690 NULL;
691 ELSE
692 igs_fi_elm_range_rt_pkg.get_ufk_igs_fi_fee_as_rate(
693 old_references.fee_type,
694 old_references.fee_cal_type,
695 old_references.fee_ci_sequence_number,
696 old_references.s_relation_type,
697 old_references.rate_number,
698 old_references.fee_cat
699 );
700 END IF;
701 END Check_UK_Child_Existance;
702
703
704 PROCEDURE Check_Parent_Existance AS
705 /*-----------------------------------------------------------------
706 || Created By :
707 || Created On :
708 || Purpose :
709 || Known limitations, enhancements or remarks :
710 || Change History :
711 || Who When What
712 || (reverse chronological order - newest change first)
713 || pathipat 17-Sep-2003 Enh 3108052 - Unit Sets in Rate Table build
714 || Added call to igs_en_unit_set_pkg.get_pk_for_validation
715 --------------------------------------------------------------------*/
716 CURSOR cur1(p_party_id IN NUMBER) IS
717 SELECT 'X'
718 FROM hz_parties HP,
719 igs_pe_hz_parties PHP
720 WHERE HP.party_id = p_party_id
721 AND PHP.inst_org_ind = 'O'
722 AND HP.party_id = PHP.party_id;
723 BEGIN
724 IF (((old_references.attendance_mode = new_references.attendance_mode)) OR
725 ((new_references.attendance_mode IS NULL))) THEN
726 NULL;
727 ELSE
728 IF NOT IGS_EN_ATD_MODE_PKG.Get_PK_For_Validation (
729 new_references.attendance_mode
730 ) THEN
731 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
732 IGS_GE_MSG_STACK.ADD;
733 App_Exception.Raise_Exception;
734 END IF;
735 END IF;
736 IF (((old_references.attendance_type = new_references.attendance_type)) OR
737 ((new_references.attendance_type IS NULL))) THEN
738 NULL;
739 ELSE
740 IF NOT IGS_EN_ATD_TYPE_PKG.Get_PK_For_Validation (
741 new_references.attendance_type
742 ) THEN
743 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
744 IGS_GE_MSG_STACK.ADD;
745 App_Exception.Raise_Exception;
746 END IF;
747 END IF;
748 IF (((old_references.fee_cat = new_references.fee_cat) AND
749 (old_references.fee_cal_type = new_references.fee_cal_type) AND
750 (old_references.fee_ci_sequence_number = new_references.fee_ci_sequence_number) AND
751 (old_references.fee_type = new_references.fee_type)) OR
752 ((new_references.fee_cat IS NULL) OR
753 (new_references.fee_cal_type IS NULL) OR
754 (new_references.fee_ci_sequence_number IS NULL) OR
755 (new_references.fee_type IS NULL))) THEN
756 NULL;
757 ELSE
758 IF NOT IGS_FI_F_CAT_FEE_LBL_PKG.Get_PK_For_Validation (
759 new_references.fee_cat,
760 new_references.fee_cal_type,
761 new_references.fee_ci_sequence_number,
762 new_references.fee_type
763 ) THEN
764 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
765 IGS_GE_MSG_STACK.ADD;
766 App_Exception.Raise_Exception;
767 END IF;
768 END IF;
769 IF (((old_references.fee_type = new_references.fee_type) AND
770 (old_references.fee_cal_type = new_references.fee_cal_type) AND
771 (old_references.fee_ci_sequence_number = new_references.fee_ci_sequence_number)) OR
772 ((new_references.fee_type IS NULL) OR
773 (new_references.fee_cal_type IS NULL) OR
774 (new_references.fee_ci_sequence_number IS NULL))) THEN
775 NULL;
776 ELSE
777 IF NOT IGS_FI_F_TYP_CA_INST_PKG.Get_PK_For_Validation (
778 new_references.fee_type,
779 new_references.fee_cal_type,
780 new_references.fee_ci_sequence_number
781 ) THEN
782 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
783 IGS_GE_MSG_STACK.ADD;
784 App_Exception.Raise_Exception;
785 END IF;
786 END IF;
787 IF (((old_references.govt_hecs_cntrbtn_band = new_references.govt_hecs_cntrbtn_band)) OR
788 ((new_references.govt_hecs_cntrbtn_band IS NULL))) THEN
789 NULL;
790 ELSE
791 IF NOT IGS_FI_GOVT_HEC_CNTB_PKG.Get_PK_For_Validation (
792 new_references.govt_hecs_cntrbtn_band
793 ) THEN
794 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
795 IGS_GE_MSG_STACK.ADD;
796 App_Exception.Raise_Exception;
797 END IF;
798 END IF;
799 IF (((old_references.govt_hecs_payment_option = new_references.govt_hecs_payment_option)) OR
800 ((new_references.govt_hecs_payment_option IS NULL))) THEN
801 NULL;
802 ELSE
803 IF NOT IGS_FI_GOV_HEC_PA_OP_PKG.Get_PK_For_Validation (
804 new_references.govt_hecs_payment_option
805 ) THEN
806 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
807 IGS_GE_MSG_STACK.ADD;
808 App_Exception.Raise_Exception;
809 END IF;
810 END IF;
811 IF (((old_references.location_cd = new_references.location_cd)) OR
812 ((new_references.location_cd IS NULL))) THEN
813 NULL;
814 ELSE
815 IF NOT IGS_AD_LOCATION_PKG.Get_PK_For_Validation (
816 new_references.location_cd ,
817 'N'
818 ) THEN
819 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
820 IGS_GE_MSG_STACK.ADD;
821 App_Exception.Raise_Exception;
822 END IF;
823 END IF;
824
825 IF (((old_references.residency_status_cd = new_references.residency_status_cd)) OR
826 ((new_references.residency_status_cd IS NULL))) THEN
827 NULL;
828 ELSE
829 IF NOT IGS_LOOKUPS_VIEW_PKG.Get_PK_For_Validation (
830 'PE_RES_STATUS',new_references.residency_status_cd
831 ) THEN
832 Fnd_Message.Set_Name ('FND' , 'FORM_RECORD_DELETED');
833 IGS_GE_MSG_STACK.ADD;
834 App_Exception.Raise_Exception;
835 END IF;
836 END IF;
837 IF (((old_references.course_cd = new_references.course_cd) AND
838 (old_references.version_number = new_references.version_number)) OR
839 ((new_references.course_cd IS NULL) OR
840 (new_references.version_number IS NULL))) THEN
841 NULL;
842 ELSE
843 IF NOT IGS_PS_VER_PKG.Get_PK_For_Validation (
844 new_references.course_cd,
845 new_references.version_number
846 ) THEN
847 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
848 IGS_GE_MSG_STACK.ADD;
849 App_Exception.Raise_Exception;
850 END IF;
851 END IF;
852 IF (((old_references.org_party_id = new_references.org_party_id) OR
853 (new_references.org_party_id IS NULL))) THEN
854 NULL;
855 ELSE
856 OPEN cur1(new_references.org_party_id);
857 IF (cur1%NOTFOUND) THEN
858 CLOSE cur1;
859 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
860 IGS_GE_MSG_STACK.ADD;
861 App_Exception.Raise_Exception;
862 END IF;
863 CLOSE cur1;
864 END IF;
865
866 IF (((old_references.class_standing = new_references.class_standing) OR
867 (new_references.class_standing IS NULL)))THEN
868 NULL;
869 ELSE
870 IF NOT IGS_PR_CLASS_STD_PKG.Get_UK_For_Validation (
871 new_references.class_standing
872 ) THEN
873 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
874 IGS_GE_MSG_STACK.ADD;
875 App_Exception.Raise_Exception;
876 END IF;
877 END IF;
878
879 IF (((old_references.unit_set_cd = new_references.unit_set_cd) AND
880 (old_references.us_version_number = new_references.us_version_number)) OR
881 ((new_references.unit_set_cd IS NULL) OR
882 (new_references.us_version_number IS NULL))) THEN
883 NULL;
884 ELSE
885 IF NOT igs_en_unit_set_pkg.get_pk_for_validation(
886 new_references.unit_set_cd,
887 new_references.us_version_number
888 ) THEN
889 fnd_message.set_name ('FND','FORM_RECORD_DELETED');
890 igs_ge_msg_stack.add;
891 app_exception.raise_exception;
892 END IF;
893 END IF;
894
895
896 END Check_Parent_Existance;
897
898
899 FUNCTION Get_PK_For_Validation (
900 x_far_id NUMBER
901 ) RETURN BOOLEAN AS
902 /*-----------------------------------------------------------------
903 || Created By :
904 || Created On :
905 || Purpose :
906 || Known limitations, enhancements or remarks :
907 || Change History :
908 || Who When What
909 || (reverse chronological order - newest change first)
910 --------------------------------------------------------------------*/
911 CURSOR cur_rowid IS
912 SELECT rowid
913 FROM IGS_FI_FEE_AS_RATE
914 WHERE far_id = x_far_id
915 FOR UPDATE NOWAIT;
916
917 lv_rowid cur_rowid%RowType;
918
919 BEGIN
920 Open cur_rowid;
921 Fetch cur_rowid INTO lv_rowid;
922 IF (cur_rowid%FOUND) THEN
923 Close cur_rowid;
924 Return (TRUE);
925 ELSE
926 Close cur_rowid;
927 Return (FALSE);
928 END IF;
929 END Get_PK_For_Validation;
930
931
932 FUNCTION Get_UK1_For_Validation (
933 x_fee_type IN VARCHAR2,
934 x_fee_cal_type IN VARCHAR2,
935 x_fee_ci_sequence_number IN NUMBER,
936 x_rate_number IN NUMBER,
937 x_fee_cat IN VARCHAR2
938 ) RETURN BOOLEAN AS
939 /*-----------------------------------------------------------------
940 || Created By :
941 || Created On :
942 || Purpose :
943 || Known limitations, enhancements or remarks :
944 || Change History :
945 || Who When What
946 || (reverse chronological order - newest change first)
947 --------------------------------------------------------------------*/
948 CURSOR cur_rowid IS
949 SELECT rowid
950 FROM IGS_FI_FEE_AS_RATE
951 WHERE fee_type = x_fee_type
952 AND fee_cal_type = x_fee_cal_type
953 AND fee_ci_sequence_number = x_fee_ci_sequence_number
954 AND rate_number = x_rate_number
955 AND fee_cat = x_fee_cat
956 AND ((l_rowid IS NULL) OR (rowid <> l_rowid))
957 FOR UPDATE NOWAIT;
958 lv_rowid cur_rowid%RowType;
959 BEGIN
960 Open cur_rowid;
961 Fetch cur_rowid INTO lv_rowid;
962 IF (cur_rowid%FOUND) THEN
963 Close cur_rowid;
964 Return (TRUE);
965 ELSE
966 Close cur_rowid;
967 Return (FALSE);
968 END IF;
969 END Get_UK1_For_Validation;
970
971
972 FUNCTION Get_UK2_For_Validation (
973 x_fee_type IN VARCHAR2,
974 x_fee_cal_type IN VARCHAR2,
975 x_fee_ci_sequence_number IN NUMBER,
976 x_s_relation_type IN VARCHAR2,
977 x_rate_number IN NUMBER,
978 x_fee_cat IN VARCHAR2
979 ) RETURN BOOLEAN AS
980 /*-----------------------------------------------------------------
981 || Created By :
982 || Created On :
983 || Purpose :
984 || Known limitations, enhancements or remarks :
985 || Change History :
986 || Who When What
987 || (reverse chronological order - newest change first)
988 --------------------------------------------------------------------*/
989 CURSOR cur_rowid IS
990 SELECT rowid
991 FROM IGS_FI_FEE_AS_RATE
992 WHERE fee_type = x_fee_type
993 AND fee_cal_type = x_fee_cal_type
994 AND fee_ci_sequence_number = x_fee_ci_sequence_number
995 AND s_relation_type = x_s_relation_type
996 AND rate_number = x_rate_number
997 AND (fee_cat = x_fee_cat or fee_cat is null)
998 AND ((l_rowid IS NULL) OR (rowid <> l_rowid))
999 FOR UPDATE NOWAIT;
1000 lv_rowid cur_rowid%RowType;
1001 BEGIN
1002 Open cur_rowid;
1003 Fetch cur_rowid INTO lv_rowid;
1004 IF (cur_rowid%FOUND) THEN
1005 Close cur_rowid;
1006 Return (TRUE);
1007 ELSE
1008 Close cur_rowid;
1009 Return (FALSE);
1010 END IF;
1011 END Get_UK2_For_Validation;
1012
1013
1014 PROCEDURE get_fk_igs_as_unit_mode (
1015 x_unit_mode IN VARCHAR2
1016 ) AS
1017 /*-------------------------------------------------------
1018 || Created By : svuppala
1019 || Created On : 01-JUN-2005
1020 || Purpose : Validates the Foreign Keys for the table.
1021 || Known limitations, enhancements or remarks :
1022 || Change History :
1023 || Who When What
1024 || (reverse chronological order - newest change first)
1025 ------------------------------------------------------------
1026 */
1027 CURSOR cur_rowid IS
1028 SELECT rowid
1029 FROM igs_fi_fee_as_rate
1030 WHERE (unit_mode = x_unit_mode);
1031
1032 lv_rowid cur_rowid%RowType;
1033
1034 BEGIN
1035
1036 OPEN cur_rowid;
1037 FETCH cur_rowid INTO lv_rowid;
1038 IF (cur_rowid%FOUND) THEN
1039 CLOSE cur_rowid;
1040 fnd_message.set_name ('IGS', 'IGS_FI_FAR_UM_FK');
1041 igs_ge_msg_stack.add;
1042 app_exception.raise_exception;
1043 RETURN;
1044 END IF;
1045 CLOSE cur_rowid;
1046
1047 END get_fk_igs_as_unit_mode;
1048
1049 PROCEDURE GET_FK_IGS_EN_ATD_MODE (
1050 x_attendance_mode IN VARCHAR2
1051 ) AS
1052 /*-----------------------------------------------------------------
1053 || Created By :
1054 || Created On :
1055 || Purpose :
1056 || Known limitations, enhancements or remarks :
1057 || Change History :
1058 || Who When What
1059 || (reverse chronological order - newest change first)
1060 --------------------------------------------------------------------*/
1061 CURSOR cur_rowid IS
1062 SELECT rowid
1063 FROM IGS_FI_FEE_AS_RATE
1064 WHERE attendance_mode = x_attendance_mode ;
1065 lv_rowid cur_rowid%RowType;
1066 BEGIN
1067 Open cur_rowid;
1068 Fetch cur_rowid INTO lv_rowid;
1069 IF (cur_rowid%FOUND) THEN
1070 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FAR_AM_FK');
1071 IGS_GE_MSG_STACK.ADD;
1072 App_Exception.Raise_Exception;
1073 Close cur_rowid;
1074 Return;
1075 END IF;
1076 Close cur_rowid;
1077 END GET_FK_IGS_EN_ATD_MODE;
1078
1079
1080 PROCEDURE GET_FK_IGS_EN_ATD_TYPE (
1081 x_attendance_type IN VARCHAR2
1082 ) AS
1083 /*-----------------------------------------------------------------
1084 || Created By :
1085 || Created On :
1086 || Purpose :
1087 || Known limitations, enhancements or remarks :
1088 || Change History :
1089 || Who When What
1090 || (reverse chronological order - newest change first)
1091 --------------------------------------------------------------------*/
1092 CURSOR cur_rowid IS
1093 SELECT rowid
1094 FROM IGS_FI_FEE_AS_RATE
1095 WHERE attendance_type = x_attendance_type ;
1096 lv_rowid cur_rowid%RowType;
1097 BEGIN
1098 Open cur_rowid;
1099 Fetch cur_rowid INTO lv_rowid;
1100 IF (cur_rowid%FOUND) THEN
1101 Close cur_rowid;
1102 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FAR_ATT_FK');
1103 IGS_GE_MSG_STACK.ADD;
1104 App_Exception.Raise_Exception;
1105 Return;
1106 END IF;
1107 Close cur_rowid;
1108 END GET_FK_IGS_EN_ATD_TYPE;
1109
1110
1111 PROCEDURE GET_FK_IGS_FI_GOVT_HEC_CNTB (
1112 x_govt_hecs_cntrbtn_band IN NUMBER
1113 ) AS
1114 /*-----------------------------------------------------------------
1115 || Created By :
1116 || Created On :
1117 || Purpose :
1118 || Known limitations, enhancements or remarks :
1119 || Change History :
1120 || Who When What
1121 || (reverse chronological order - newest change first)
1122 --------------------------------------------------------------------*/
1123 CURSOR cur_rowid IS
1124 SELECT rowid
1125 FROM IGS_FI_FEE_AS_RATE
1126 WHERE govt_hecs_cntrbtn_band = x_govt_hecs_cntrbtn_band ;
1127 lv_rowid cur_rowid%RowType;
1128 BEGIN
1129 Open cur_rowid;
1130 Fetch cur_rowid INTO lv_rowid;
1131 IF (cur_rowid%FOUND) THEN
1132 Close cur_rowid;
1133 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FAR_GHC_FK');
1134 IGS_GE_MSG_STACK.ADD;
1135 App_Exception.Raise_Exception;
1136 Return;
1137 END IF;
1138 Close cur_rowid;
1139 END GET_FK_IGS_FI_GOVT_HEC_CNTB;
1140
1141
1142 PROCEDURE GET_FK_IGS_FI_GOV_HEC_PA_OP (
1143 x_govt_hecs_payment_option IN VARCHAR2
1144 ) AS
1145 /*-----------------------------------------------------------------
1146 || Created By :
1147 || Created On :
1148 || Purpose :
1149 || Known limitations, enhancements or remarks :
1150 || Change History :
1151 || Who When What
1152 || (reverse chronological order - newest change first)
1153 --------------------------------------------------------------------*/
1154 CURSOR cur_rowid IS
1155 SELECT rowid
1156 FROM IGS_FI_FEE_AS_RATE
1157 WHERE govt_hecs_payment_option = x_govt_hecs_payment_option ;
1158 lv_rowid cur_rowid%RowType;
1159 BEGIN
1160 Open cur_rowid;
1161 Fetch cur_rowid INTO lv_rowid;
1162 IF (cur_rowid%FOUND) THEN
1163 Close cur_rowid;
1164 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FAR_GHPO_FK');
1165 IGS_GE_MSG_STACK.ADD;
1166 App_Exception.Raise_Exception;
1167 Return;
1168 END IF;
1169 Close cur_rowid;
1170 END GET_FK_IGS_FI_GOV_HEC_PA_OP;
1171
1172
1173 PROCEDURE GET_FK_IGS_AD_LOCATION (
1174 x_location_cd IN VARCHAR2
1175 ) AS
1176 /*-----------------------------------------------------------------
1177 || Created By :
1178 || Created On :
1179 || Purpose :
1180 || Known limitations, enhancements or remarks :
1181 || Change History :
1182 || Who When What
1183 || (reverse chronological order - newest change first)
1184 --------------------------------------------------------------------*/
1185 CURSOR cur_rowid IS
1186 SELECT rowid
1187 FROM IGS_FI_FEE_AS_RATE
1188 WHERE location_cd = x_location_cd ;
1189 lv_rowid cur_rowid%RowType;
1190 BEGIN
1191 Open cur_rowid;
1192 Fetch cur_rowid INTO lv_rowid;
1193 IF (cur_rowid%FOUND) THEN
1194 Close cur_rowid;
1195 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FAR_LOC_FK');
1196 IGS_GE_MSG_STACK.ADD;
1197 App_Exception.Raise_Exception;
1198 Return;
1199 END IF;
1200 Close cur_rowid;
1201 END GET_FK_IGS_AD_LOCATION;
1202
1203
1204 PROCEDURE GET_FK_IGS_PS_VER(
1205 x_course_cd IN VARCHAR2,
1206 x_version_number IN NUMBER
1207 ) AS
1208 /*-----------------------------------------------------------------
1209 || Created By :
1210 || Created On :
1211 || Purpose :
1212 || Known limitations, enhancements or remarks :
1213 || Change History :
1214 || Who When What
1215 || (reverse chronological order - newest change first)
1216 --------------------------------------------------------------------*/
1217 CURSOR cur_rowid IS
1218 SELECT rowid
1219 FROM IGS_FI_FEE_AS_RATE
1220 WHERE course_cd = x_course_cd
1221 AND version_number = x_version_number;
1222 lv_rowid cur_rowid%RowType;
1223 BEGIN
1224 Open cur_rowid;
1225 Fetch cur_rowid INTO lv_rowid;
1226 IF(cur_rowid%FOUND) THEN
1227 Close cur_rowid;
1228 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FAR_CRV_FK');
1229 IGS_GE_MSG_STACK.ADD;
1230 App_Exception.Raise_Exception;
1231 Return;
1232 END IF;
1233 Close cur_rowid;
1234 END GET_FK_IGS_PS_VER;
1235
1236
1237 PROCEDURE GET_UFK_IGS_PR_CLASS_STD(
1238 x_class_standing IN VARCHAR2
1239 ) AS
1240 /*-----------------------------------------------------------------
1241 || Created By :
1242 || Created On :
1243 || Purpose :
1244 || Known limitations, enhancements or remarks :
1245 || Change History :
1246 || Who When What
1247 || (reverse chronological order - newest change first)
1248 --------------------------------------------------------------------*/
1249 -- Modified cur_rowid to fetch records from igs_fi_fee_as_rate instead of fetching from
1250 -- IGS_PR_CLASS_STD. This has been done as per Bug# 2637262.
1251 CURSOR cur_rowid IS
1252 SELECT rowid
1253 FROM IGS_FI_FEE_AS_RATE
1254 WHERE class_standing = x_class_standing;
1255 lv_rowid cur_rowid%RowType;
1256 BEGIN
1257 Open cur_rowid;
1258 Fetch cur_rowid INTO lv_rowid;
1259 IF(cur_rowid%FOUND) THEN
1260 Close cur_rowid;
1261 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FAR_PCS_FK');
1262 IGS_GE_MSG_STACK.ADD;
1263 App_Exception.Raise_Exception;
1264 Return;
1265 END IF;
1266 Close cur_rowid;
1267 END GET_UFK_IGS_PR_CLASS_STD;
1268
1269
1270 PROCEDURE Before_DML (
1271 p_action IN VARCHAR2,
1272 x_rowid IN VARCHAR2 ,
1273 x_far_id IN NUMBER ,
1274 x_fee_type IN VARCHAR2 ,
1275 x_fee_cal_type IN VARCHAR2 ,
1276 x_fee_ci_sequence_number IN NUMBER ,
1277 x_s_relation_type IN VARCHAR2 ,
1278 x_rate_number IN NUMBER ,
1279 x_fee_cat IN VARCHAR2 ,
1280 x_location_cd IN VARCHAR2 ,
1281 x_attendance_type IN VARCHAR2 ,
1282 x_attendance_mode IN VARCHAR2 ,
1283 x_order_of_precedence IN NUMBER ,
1284 x_govt_hecs_payment_option IN VARCHAR2 ,
1285 x_govt_hecs_cntrbtn_band IN NUMBER ,
1286 x_chg_rate IN NUMBER ,
1287 x_logical_delete_dt IN DATE ,
1288 x_residency_status_cd IN VARCHAR2 ,
1289 x_course_cd IN VARCHAR2 ,
1290 x_version_number IN NUMBER ,
1291 x_org_party_id IN NUMBER ,
1292 x_class_standing IN VARCHAR2 ,
1293 x_creation_date IN DATE ,
1294 x_created_by IN NUMBER ,
1295 x_last_update_date IN DATE ,
1296 x_last_updated_by IN NUMBER ,
1297 x_last_update_login IN NUMBER,
1298 x_unit_set_cd IN VARCHAR2,
1299 x_us_version_number IN NUMBER,
1300 x_unit_cd IN VARCHAR2 ,
1301 x_unit_version_number IN NUMBER ,
1302 x_unit_level IN VARCHAR2 ,
1303 x_unit_type_id IN NUMBER ,
1304 x_unit_class IN VARCHAR2 ,
1305 x_unit_mode IN VARCHAR2
1306 ) AS
1307 /*-----------------------------------------------------------------
1308 || Created By :
1309 || Created On :
1310 || Purpose :
1311 || Known limitations, enhancements or remarks :
1312 || Change History :
1313 || Who When What
1314 || (reverse chronological order - newest change first)
1315 || svuppala 31-MAY-2005 Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
1316 || Unit Version and Unit Level
1317 || pathipat 10-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
1318 || Added 2 new columns unit_set_cd and us_version_number
1319 --------------------------------------------------------------------*/
1320 BEGIN
1321 Set_Column_Values (
1322 p_action,
1323 x_rowid,
1324 x_far_id,
1325 x_fee_type,
1326 x_fee_cal_type,
1327 x_fee_ci_sequence_number,
1328 x_s_relation_type,
1329 x_rate_number,
1330 x_fee_cat,
1331 x_location_cd,
1332 x_attendance_type,
1333 x_attendance_mode,
1334 x_order_of_precedence,
1335 x_govt_hecs_payment_option,
1336 x_govt_hecs_cntrbtn_band,
1337 x_chg_rate,
1338 x_logical_delete_dt,
1339 x_residency_status_cd,
1340 x_course_cd,
1341 x_version_number,
1342 x_org_party_id,
1343 x_class_standing,
1344 x_creation_date,
1345 x_created_by,
1346 x_last_update_date,
1347 x_last_updated_by,
1348 x_last_update_login,
1349 x_unit_set_cd,
1350 x_us_version_number,
1351 x_unit_cd ,
1352 x_unit_version_number,
1353 x_unit_level,
1354 x_unit_type_id,
1355 x_unit_class,
1356 x_unit_mode
1357
1358 );
1359
1360 IF (p_action = 'INSERT') THEN
1361 -- Call all the procedures related to Before Insert.
1362 BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE ,p_updating => FALSE , p_deleting => FALSE );
1363 IF (Get_PK_For_Validation (
1364 new_references.far_id
1365 )) THEN
1366 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
1367 IGS_GE_MSG_STACK.ADD;
1368 App_Exception.Raise_Exception;
1369 END IF;
1370 Check_Uniqueness;
1371 Check_Constraints;
1372 Check_Parent_Existance;
1373 ELSIF (p_action = 'UPDATE') THEN
1374 -- Call all the procedures related to Before Update.
1375 BeforeRowInsertUpdateDelete1 ( p_inserting => FALSE , p_updating => TRUE ,p_deleting => FALSE);
1376 beforerowupdate;
1377 Check_Parent_Existance;
1378 Check_UK_Child_Existance;
1379
1380 ELSIF (p_action = 'DELETE') THEN
1381 -- Call all the procedures related to Before Delete.
1382 BeforeRowInsertUpdateDelete1 ( p_inserting => FALSE, p_updating => FALSE , p_deleting => TRUE );
1383 Check_Child_Existance;
1384
1385 ELSIF (p_action = 'VALIDATE_INSERT') THEN
1386 IF (Get_PK_For_Validation (
1387 new_references.far_id
1388 )) THEN
1389 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
1390 IGS_GE_MSG_STACK.ADD;
1391 App_Exception.Raise_Exception;
1392 END IF;
1393 Check_Uniqueness;
1394 Check_Constraints;
1395
1396 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
1397 Check_Uniqueness;
1398 Check_Constraints;
1399 Check_UK_Child_Existance;
1400
1401 ELSIF (p_action = 'VALIDATE_DELETE') THEN
1402 Check_Child_Existance;
1403 END IF;
1404
1405 END Before_DML;
1406
1407
1408 PROCEDURE After_DML (
1409 p_action IN VARCHAR2,
1410 x_rowid IN VARCHAR2
1411 ) AS
1412 /*-----------------------------------------------------------------
1413 || Created By :
1414 || Created On :
1415 || Purpose :
1416 || Known limitations, enhancements or remarks :
1417 || Change History :
1418 || Who When What
1419 || (reverse chronological order - newest change first)
1420 --------------------------------------------------------------------*/
1421 BEGIN
1422 l_rowid := x_rowid;
1423 IF (p_action = 'INSERT') THEN
1424 -- Call all the procedures related to After Insert.
1425 AfterStmtInsertUpdate4 ( p_inserting => TRUE ,p_updating => FALSE , p_deleting => FALSE );
1426 ELSIF (p_action = 'UPDATE') THEN
1427 -- Call all the procedures related to After Update.
1428 AfterRowUpdate3 ( p_inserting => FALSE , p_updating => TRUE ,p_deleting => FALSE);
1429 AfterStmtInsertUpdate4 ( p_inserting => FALSE , p_updating => TRUE ,p_deleting => FALSE);
1430 END IF;
1431 l_rowid := NULL;
1432 END After_DML;
1433
1434
1435 PROCEDURE insert_row (
1436 x_rowid IN OUT NOCOPY VARCHAR2,
1437 x_far_id IN OUT NOCOPY NUMBER,
1438 x_fee_type IN VARCHAR2,
1439 x_fee_cal_type IN VARCHAR2,
1440 x_fee_ci_sequence_number IN NUMBER,
1441 x_s_relation_type IN VARCHAR2,
1442 x_rate_number IN NUMBER,
1443 x_fee_cat IN VARCHAR2,
1444 x_location_cd IN VARCHAR2,
1445 x_attendance_type IN VARCHAR2,
1446 x_attendance_mode IN VARCHAR2,
1447 x_order_of_precedence IN NUMBER,
1448 x_govt_hecs_payment_option IN VARCHAR2,
1449 x_govt_hecs_cntrbtn_band IN NUMBER,
1450 x_chg_rate IN NUMBER,
1451 x_logical_delete_dt IN DATE,
1452 x_residency_status_cd IN VARCHAR2 ,
1453 x_course_cd IN VARCHAR2 ,
1454 x_version_number IN NUMBER ,
1455 x_org_party_id IN NUMBER ,
1456 x_class_standing IN VARCHAR2 ,
1457 x_mode IN VARCHAR2,
1458 x_unit_set_cd IN VARCHAR2,
1459 x_us_version_number IN NUMBER,
1460 x_unit_cd IN VARCHAR2 ,
1461 x_unit_version_number IN NUMBER ,
1462 x_unit_level IN VARCHAR2 ,
1463 x_unit_type_id IN NUMBER ,
1464 x_unit_class IN VARCHAR2 ,
1465 x_unit_mode IN VARCHAR2
1466 ) AS
1467 /*-----------------------------------------------------------------
1468 || Created By :
1469 || Created On :
1470 || Purpose :
1471 || Known limitations, enhancements or remarks :
1472 || Change History :
1473 || Who When What
1474 || (reverse chronological order - newest change first)
1475 || svuppala 31-MAY-2005 Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
1476 || Unit Version and Unit Level
1477 || pathipat 10-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
1478 || Added 2 new columns unit_set_cd and us_version_number
1479 --------------------------------------------------------------------*/
1480 CURSOR C (cp_range_id IN NUMBER) is select ROWID from IGS_FI_FEE_AS_RATE
1481 where far_id = cp_range_id;
1482
1483 X_LAST_UPDATE_DATE DATE;
1484 X_LAST_UPDATED_BY NUMBER;
1485 X_LAST_UPDATE_LOGIN NUMBER;
1486 X_REQUEST_ID NUMBER;
1487 X_PROGRAM_ID NUMBER;
1488 X_PROGRAM_APPLICATION_ID NUMBER;
1489 X_PROGRAM_UPDATE_DATE DATE;
1490
1491 BEGIN
1492 x_last_update_date := SYSDATE;
1493 IF(x_mode = 'I') THEN
1494 x_last_updated_by := 1;
1495 x_last_update_login := 0;
1496 ELSIF (x_mode = 'R') THEN
1497 x_last_updated_by := fnd_global.USER_ID;
1498 IF x_last_updated_by IS NULL THEN
1499 x_last_updated_by := -1;
1500 END IF;
1501 x_last_update_login :=fnd_global.login_id;
1502 IF x_last_update_login IS NULL THEN
1503 x_last_update_login := -1;
1504 END IF;
1505 x_request_id := fnd_global.conc_request_id;
1506 x_program_id := fnd_global.conc_program_id;
1507 x_program_application_id := fnd_global.prog_appl_id;
1508 IF (x_request_id = -1 ) THEN
1509 x_request_id := NULL;
1510 x_program_id := NULL;
1511 x_program_application_id := NULL;
1512 x_program_update_date := NULL;
1513 ELSE
1514 x_program_update_date:=SYSDATE;
1515 END IF;
1516 ELSE
1517 fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
1518 igs_ge_msg_stack.add;
1519 app_exception.raise_exception;
1520 END IF;
1521
1522 SELECT igs_fi_fee_as_rate_far_id_s.nextval
1523 INTO x_far_id
1524 FROM dual;
1525
1526 Before_DML(
1527 p_action =>'INSERT',
1528 x_rowid => x_rowid,
1529 x_far_id => x_far_id,
1530 x_attendance_mode => x_attendance_mode,
1531 x_attendance_type => x_attendance_type,
1532 x_chg_rate => x_chg_rate,
1533 x_fee_cal_type => x_fee_cal_type,
1534 x_fee_cat => x_fee_cat,
1535 x_fee_ci_sequence_number => x_fee_ci_sequence_number,
1536 x_fee_type => x_fee_type,
1537 x_govt_hecs_cntrbtn_band => x_govt_hecs_cntrbtn_band,
1538 x_govt_hecs_payment_option => x_govt_hecs_payment_option,
1539 x_location_cd => x_location_cd,
1540 x_logical_delete_dt => x_logical_delete_dt,
1541 x_order_of_precedence => x_order_of_precedence,
1542 x_rate_number => x_rate_number,
1543 x_s_relation_type => x_s_relation_type,
1544 x_residency_status_cd => x_residency_status_cd,
1545 x_course_cd => x_course_cd,
1546 x_version_number => x_version_number,
1547 x_org_party_id => x_org_party_id,
1548 x_class_standing => x_class_standing,
1549 x_creation_date => x_last_update_date,
1550 x_created_by => x_last_updated_by,
1551 x_last_update_date => x_last_update_date,
1552 x_last_updated_by => x_last_updated_by,
1553 x_last_update_login => x_last_update_login,
1554 x_unit_set_cd => x_unit_set_cd,
1555 x_us_version_number => x_us_version_number,
1556 x_unit_cd => x_unit_cd,
1557 x_unit_version_number => x_unit_version_number,
1558 x_unit_level => x_unit_level ,
1559 x_unit_type_id => x_unit_type_id,
1560 x_unit_class => x_unit_class ,
1561 x_unit_mode => x_unit_mode
1562 );
1563
1564 INSERT INTO igs_fi_fee_as_rate (
1565 far_id,
1566 fee_type,
1567 fee_cal_type,
1568 fee_ci_sequence_number,
1569 s_relation_type,
1570 rate_number,
1571 fee_cat,
1572 location_cd,
1573 attendance_type,
1574 attendance_mode,
1575 order_of_precedence,
1576 govt_hecs_payment_option,
1577 govt_hecs_cntrbtn_band,
1578 chg_rate,
1579 logical_delete_dt,
1580 residency_status_cd,
1581 course_cd,
1582 version_number,
1583 org_party_id,
1584 class_standing,
1585 creation_date,
1586 created_by,
1587 last_update_date,
1588 last_updated_by,
1589 last_update_login,
1590 request_id,
1591 program_id,
1592 program_application_id,
1593 program_update_date,
1594 unit_set_cd,
1595 us_version_number,
1596 unit_cd ,
1597 unit_version_number,
1598 unit_level ,
1599 unit_type_id,
1600 unit_class ,
1601 unit_mode
1602 ) VALUES (
1603 new_references.far_id,
1604 new_references.fee_type,
1605 new_references.fee_cal_type,
1606 new_references.fee_ci_sequence_number,
1607 new_references.s_relation_type,
1608 new_references.rate_number,
1609 new_references.fee_cat,
1610 new_references.location_cd,
1611 new_references.attendance_type,
1612 new_references.attendance_mode,
1613 new_references.order_of_precedence,
1614 new_references.govt_hecs_payment_option,
1615 new_references.govt_hecs_cntrbtn_band,
1616 new_references.chg_rate,
1617 new_references.logical_delete_dt,
1618 new_references.residency_status_cd,
1619 new_references.course_cd,
1620 new_references.version_number,
1621 new_references.org_party_id,
1622 new_references.class_standing,
1623 x_last_update_date,
1624 x_last_updated_by,
1625 x_last_update_date,
1626 x_last_updated_by,
1627 x_last_update_login,
1628 x_request_id,
1629 x_program_id,
1630 x_program_application_id,
1631 x_program_update_date,
1632 new_references.unit_set_cd,
1633 new_references.us_version_number,
1634 new_references.unit_cd,
1635 new_references.unit_version_number,
1636 new_references.unit_level ,
1637 new_references.unit_type_id ,
1638 new_references.unit_class,
1639 new_references.unit_mode
1640 );
1641
1642 OPEN c (x_far_id);
1643 FETCH c INTO x_rowid;
1644 IF (c%NOTFOUND) THEN
1645 CLOSE c;
1646 RAISE NO_DATA_FOUND;
1647 END IF;
1648 CLOSE c;
1649
1650 After_DML(
1651 p_action =>'INSERT',
1652 x_rowid => x_rowid
1653 );
1654
1655 END insert_row;
1656
1657
1658 PROCEDURE lock_row (
1659 x_rowid IN VARCHAR2,
1660 x_far_id IN NUMBER,
1661 x_fee_type IN VARCHAR2,
1662 x_fee_cal_type IN VARCHAR2,
1663 x_fee_ci_sequence_number IN NUMBER,
1664 x_s_relation_type IN VARCHAR2,
1665 x_rate_number IN NUMBER,
1666 x_fee_cat IN VARCHAR2,
1667 x_location_cd IN VARCHAR2,
1668 x_attendance_type IN VARCHAR2,
1669 x_attendance_mode IN VARCHAR2,
1670 x_order_of_precedence IN NUMBER,
1671 x_govt_hecs_payment_option IN VARCHAR2,
1672 x_govt_hecs_cntrbtn_band IN NUMBER,
1673 x_chg_rate IN NUMBER,
1674 x_logical_delete_dt IN DATE,
1675 x_residency_status_cd IN VARCHAR2 ,
1676 x_course_cd IN VARCHAR2 ,
1677 x_version_number IN NUMBER ,
1678 x_org_party_id IN NUMBER ,
1679 x_class_standing IN VARCHAR2,
1680 x_unit_set_cd IN VARCHAR2,
1681 x_us_version_number IN NUMBER,
1682 x_unit_cd IN VARCHAR2 ,
1683 x_unit_version_number IN NUMBER ,
1684 x_unit_level IN VARCHAR2 ,
1685 x_unit_type_id IN NUMBER ,
1686 x_unit_class IN VARCHAR2 ,
1687 x_unit_mode IN VARCHAR2
1688 ) AS
1689 /*-----------------------------------------------------------------
1690 || Created By :
1691 || Created On :
1692 || Purpose :
1693 || Known limitations, enhancements or remarks :
1694 || Change History :
1695 || Who When What
1696 || (reverse chronological order - newest change first)
1697 || svuppala 31-MAY-2005 Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
1698 || Unit Version and Unit Level
1699 || pathipat 10-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
1700 || Added 2 new columns unit_set_cd and us_version_number
1701 --------------------------------------------------------------------*/
1702 CURSOR c1 IS
1703 SELECT far_id,
1704 fee_cal_type,
1705 fee_ci_sequence_number,
1706 s_relation_type,
1707 rate_number,
1708 fee_cat,
1709 location_cd,
1710 attendance_type,
1711 attendance_mode,
1712 order_of_precedence,
1713 govt_hecs_payment_option,
1714 govt_hecs_cntrbtn_band,
1715 chg_rate,
1716 logical_delete_dt,
1717 residency_status_cd,
1718 course_cd,
1719 version_number,
1720 org_party_id,
1721 class_standing,
1722 unit_set_cd,
1723 us_version_number,
1724 unit_cd,
1725 unit_version_number,
1726 unit_level ,
1727 unit_type_id ,
1728 unit_class ,
1729 unit_mode
1730 FROM igs_fi_fee_as_rate
1731 WHERE rowid = x_rowid
1732 FOR UPDATE NOWAIT;
1733
1734 tlinfo c1%ROWTYPE;
1735
1736 BEGIN
1737
1738 OPEN c1;
1739 FETCH c1 INTO tlinfo;
1740 IF (c1%NOTFOUND) THEN
1741 CLOSE c1;
1742 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
1743 igs_ge_msg_stack.add;
1744 app_exception.raise_exception;
1745 RETURN;
1746 END IF;
1747 CLOSE c1;
1748 IF ( (tlinfo.fee_cal_type = x_fee_cal_type)
1749 AND (tlinfo.far_id = x_far_id)
1750 AND (tlinfo.fee_ci_sequence_number = x_fee_ci_sequence_number)
1751 AND (tlinfo.s_relation_type = x_s_relation_type)
1752 AND (tlinfo.rate_number = x_rate_number)
1753 AND ((tlinfo.fee_cat = x_fee_cat) OR ((tlinfo.fee_cat IS NULL) AND (x_fee_cat IS NULL)))
1754 AND ((tlinfo.location_cd = x_location_cd) OR ((tlinfo.LOCATION_CD is null) AND (x_location_cd IS NULL)))
1755 AND ((tlinfo.attendance_type = x_attendance_type) OR ((tlinfo.attendance_type IS NULL) AND (x_attendance_type IS NULL)))
1756 AND ((tlinfo.attendance_mode = x_attendance_mode) OR ((tlinfo.attendance_mode IS NULL) AND (x_attendance_mode IS NULL)))
1757 AND ((tlinfo.order_of_precedence = x_order_of_precedence) OR ((tlinfo.order_of_precedence IS NULL) AND (x_order_of_precedence IS NULL)))
1758 AND ((tlinfo.govt_hecs_payment_option = x_govt_hecs_payment_option) OR ((tlinfo.govt_hecs_payment_option IS NULL) AND (x_govt_hecs_payment_option IS NULL)))
1759 AND ((tlinfo.govt_hecs_cntrbtn_band = x_govt_hecs_cntrbtn_band) OR ((tlinfo.govt_hecs_cntrbtn_band IS NULL) AND (x_govt_hecs_cntrbtn_band IS NULL)))
1760 AND (tlinfo.chg_rate = x_chg_rate)
1761 AND ((tlinfo.logical_delete_dt = x_logical_delete_dt) OR ((tlinfo.logical_delete_dt IS NULL) AND (x_logical_delete_dt IS NULL)))
1762 AND ((tlinfo.residency_status_cd = x_residency_status_cd) OR ((tlinfo.residency_status_cd IS NULL) AND (x_residency_status_cd IS NULL)))
1763 AND ((tlinfo.course_cd = x_course_cd) OR ((tlinfo.course_cd IS NULL) AND (x_course_cd IS NULL)))
1764 AND ((tlinfo.version_number = x_version_number) OR ((tlinfo.version_number IS NULL) AND (x_version_number IS NULL)))
1765 AND ((tlinfo.org_party_id = x_org_party_id) OR ((tlinfo.org_party_id IS NULL) AND (x_org_party_id IS NULL)))
1766 AND ((tlinfo.class_standing = x_class_standing) OR ((tlinfo.class_standing IS NULL) AND (x_class_standing IS NULL)))
1767 AND ((tlinfo.unit_set_cd = x_unit_set_cd) OR ((tlinfo.unit_set_cd IS NULL) AND (x_unit_set_cd IS NULL)))
1768 AND ((tlinfo.us_version_number = x_us_version_number) OR ((tlinfo.us_version_number IS NULL) AND (x_us_version_number IS NULL)))
1769 AND ((tlinfo.unit_cd = x_unit_cd) OR ((tlinfo.unit_cd IS NULL) AND (x_unit_cd IS NULL)))
1770 AND ((tlinfo.unit_version_number = x_unit_version_number) OR ((tlinfo.unit_version_number IS NULL) AND (x_unit_version_number IS NULL)))
1771 AND ((tlinfo.unit_level = x_unit_level) OR ((tlinfo.unit_level IS NULL) AND (x_unit_level IS NULL)))
1772 AND ((tlinfo.unit_type_id = x_unit_type_id) OR ((tlinfo.unit_type_id IS NULL) AND (x_unit_type_id IS NULL)))
1773 AND ((tlinfo.unit_class = x_unit_class) OR ((tlinfo.unit_class IS NULL) AND (x_unit_class IS NULL)))
1774 AND ((tlinfo.unit_mode = x_unit_mode) OR ((tlinfo.unit_mode IS NULL) AND (x_unit_mode IS NULL)))
1775 ) THEN
1776 NULL;
1777 ELSE
1778 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
1779 igs_ge_msg_stack.add;
1780 app_exception.raise_exception;
1781 END IF;
1782
1783 RETURN;
1784
1785 END lock_row;
1786
1787
1788 PROCEDURE update_row (
1789 x_rowid IN VARCHAR2,
1790 x_far_id IN NUMBER,
1791 x_fee_type IN VARCHAR2,
1792 x_fee_cal_type IN VARCHAR2,
1793 x_fee_ci_sequence_number IN NUMBER,
1794 x_s_relation_type IN VARCHAR2,
1795 x_rate_number IN NUMBER,
1796 x_fee_cat IN VARCHAR2,
1797 x_location_cd IN VARCHAR2,
1798 x_attendance_type IN VARCHAR2,
1799 x_attendance_mode IN VARCHAR2,
1800 x_order_of_precedence IN NUMBER,
1801 x_govt_hecs_payment_option IN VARCHAR2,
1802 x_govt_hecs_cntrbtn_band IN NUMBER,
1803 x_chg_rate IN NUMBER,
1804 x_logical_delete_dt IN DATE,
1805 x_residency_status_cd IN VARCHAR2 ,
1806 x_course_cd IN VARCHAR2 ,
1807 x_version_number IN NUMBER ,
1808 x_org_party_id IN NUMBER ,
1809 x_class_standing IN VARCHAR2 ,
1810 x_mode IN VARCHAR2,
1811 x_unit_set_cd IN VARCHAR2,
1812 x_us_version_number IN NUMBER,
1813 x_unit_cd IN VARCHAR2 ,
1814 x_unit_version_number IN NUMBER ,
1815 x_unit_level IN VARCHAR2 ,
1816 x_unit_type_id IN NUMBER ,
1817 x_unit_class IN VARCHAR2 ,
1818 x_unit_mode IN VARCHAR2
1819 ) AS
1820 /*-----------------------------------------------------------------
1821 || Created By :
1822 || Created On :
1823 || Purpose :
1824 || Known limitations, enhancements or remarks :
1825 || Change History :
1826 || Who When What
1827 || (reverse chronological order - newest change first)
1828 || svuppala 31-MAY-2005 Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
1829 || Unit Version and Unit Level
1830 || pathipat 10-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
1831 || Added 2 new columns unit_set_cd and us_version_number
1832 --------------------------------------------------------------------*/
1833 x_last_update_date DATE;
1834 x_last_updated_by NUMBER;
1835 x_last_update_login NUMBER;
1836 x_request_id NUMBER;
1837 x_program_id NUMBER;
1838 x_program_application_id NUMBER;
1839 x_program_update_date DATE;
1840
1841 BEGIN
1842
1843 x_last_update_date := SYSDATE;
1844
1845 IF(x_mode = 'I') THEN
1846 x_last_updated_by := 1;
1847 x_last_update_login := 0;
1848 ELSIF (x_mode = 'R') THEN
1849 x_last_updated_by := fnd_global.user_id;
1850 IF x_last_updated_by IS NULL THEN
1851 x_last_updated_by := -1;
1852 END IF;
1853 x_last_update_login :=fnd_global.login_id;
1854 IF x_last_update_login IS NULL THEN
1855 x_last_update_login := -1;
1856 END IF;
1857 x_request_id := fnd_global.conc_request_id;
1858 x_program_id := fnd_global.conc_program_id;
1859 x_program_application_id := fnd_global.prog_appl_id;
1860 IF (x_request_id = -1 ) THEN
1861 x_request_id := old_references.request_id;
1862 x_program_id := old_references.program_id;
1863 x_program_application_id := old_references.program_application_id;
1864 x_program_update_date := old_references.program_update_date;
1865 ELSE
1866 x_program_update_date := SYSDATE;
1867 END IF;
1868 ELSE
1869 fnd_message.set_name('FND', 'SYSTEM-INVALID ARGS');
1870 igs_ge_msg_stack.add;
1871 app_exception.raise_exception;
1872 END IF;
1873
1874 Before_DML(
1875 p_action => 'UPDATE',
1876 x_rowid => x_rowid,
1877 x_far_id => x_far_id,
1878 x_attendance_mode => x_attendance_mode,
1879 x_attendance_type => x_attendance_type,
1880 x_chg_rate => x_chg_rate,
1881 x_fee_cal_type => x_fee_cal_type,
1882 x_fee_cat => x_fee_cat,
1883 x_fee_ci_sequence_number => x_fee_ci_sequence_number,
1884 x_fee_type => x_fee_type,
1885 x_govt_hecs_cntrbtn_band => x_govt_hecs_cntrbtn_band,
1886 x_govt_hecs_payment_option => x_govt_hecs_payment_option,
1887 x_location_cd => x_location_cd,
1888 x_logical_delete_dt => x_logical_delete_dt,
1889 x_order_of_precedence => x_order_of_precedence,
1890 x_rate_number => x_rate_number,
1891 x_s_relation_type => x_s_relation_type,
1892 x_residency_status_cd => x_residency_status_cd,
1893 x_course_cd => x_course_cd,
1894 x_version_number => x_version_number,
1895 x_org_party_id => x_org_party_id,
1896 x_class_standing => x_class_standing,
1897 x_creation_date => x_last_update_date,
1898 x_created_by => x_last_updated_by,
1899 x_last_update_date => x_last_update_date,
1900 x_last_updated_by => x_last_updated_by,
1901 x_last_update_login => x_last_update_login,
1902 x_unit_set_cd => x_unit_set_cd,
1903 x_us_version_number => x_us_version_number,
1904 x_unit_cd => x_unit_cd,
1905 x_unit_version_number => x_unit_version_number,
1906 x_unit_level => x_unit_level ,
1907 x_unit_type_id => x_unit_type_id,
1908 x_unit_class => x_unit_class ,
1909 x_unit_mode => x_unit_mode
1910 );
1911
1912 UPDATE igs_fi_fee_as_rate
1913 SET
1914 far_id = far_id,
1915 fee_cal_type = new_references.fee_cal_type,
1916 fee_ci_sequence_number = new_references.fee_ci_sequence_number,
1917 s_relation_type = new_references.s_relation_type,
1918 rate_number = new_references.rate_number,
1919 fee_cat = new_references.fee_cat,
1920 location_cd = new_references.location_cd,
1921 attendance_type = new_references.attendance_type,
1922 attendance_mode = new_references.attendance_mode,
1923 order_of_precedence = new_references.order_of_precedence,
1924 govt_hecs_payment_option = new_references.govt_hecs_payment_option,
1925 govt_hecs_cntrbtn_band = new_references.govt_hecs_cntrbtn_band,
1926 chg_rate = new_references.chg_rate,
1927 logical_delete_dt = new_references.logical_delete_dt,
1928 residency_status_cd = new_references.residency_status_cd,
1929 course_cd = new_references.course_cd,
1930 version_number = new_references.version_number,
1931 org_party_id = new_references.org_party_id,
1932 class_standing = new_references.class_standing,
1933 last_update_date = x_last_update_date,
1934 last_updated_by = x_last_updated_by,
1935 last_update_login = x_last_update_login,
1936 request_id = x_request_id,
1937 program_id = x_program_id,
1938 program_application_id = x_program_application_id,
1939 program_update_date = x_program_update_date,
1940 unit_set_cd = new_references.unit_set_cd,
1941 us_version_number = new_references.us_version_number,
1942 unit_cd = new_references.unit_cd,
1943 unit_version_number = new_references.unit_version_number,
1944 unit_level = new_references.unit_level ,
1945 unit_type_id = new_references.unit_type_id,
1946 unit_class = new_references.unit_class ,
1947 unit_mode = new_references.unit_mode
1948 WHERE rowid = x_rowid ;
1949
1950 IF (SQL%NOTFOUND) THEN
1951 RAISE NO_DATA_FOUND;
1952 END IF;
1953
1954 after_dml(
1955 p_action =>'UPDATE',
1956 x_rowid => x_rowid
1957 );
1958
1959 END update_row;
1960
1961
1962 PROCEDURE add_row (
1963 x_rowid IN OUT NOCOPY VARCHAR2,
1964 x_far_id IN OUT NOCOPY NUMBER,
1965 x_fee_type IN VARCHAR2,
1966 x_fee_cal_type IN VARCHAR2,
1967 x_fee_ci_sequence_number IN NUMBER,
1968 x_s_relation_type IN VARCHAR2,
1969 x_rate_number IN NUMBER,
1970 x_fee_cat IN VARCHAR2,
1971 x_location_cd IN VARCHAR2,
1972 x_attendance_type IN VARCHAR2,
1973 x_attendance_mode IN VARCHAR2,
1974 x_order_of_precedence IN NUMBER,
1975 x_govt_hecs_payment_option IN VARCHAR2,
1976 x_govt_hecs_cntrbtn_band IN NUMBER,
1977 x_chg_rate IN NUMBER,
1978 x_logical_delete_dt IN DATE,
1979 x_residency_status_cd IN VARCHAR2 ,
1980 x_course_cd IN VARCHAR2 ,
1981 x_version_number IN NUMBER ,
1982 x_org_party_id IN NUMBER ,
1983 x_class_standing IN VARCHAR2 ,
1984 x_mode IN VARCHAR2 ,
1985 x_unit_set_cd IN VARCHAR2,
1986 x_us_version_number IN NUMBER,
1987 x_unit_cd IN VARCHAR2 ,
1988 x_unit_version_number IN NUMBER ,
1989 x_unit_level IN VARCHAR2 ,
1990 x_unit_type_id IN NUMBER ,
1991 x_unit_class IN VARCHAR2 ,
1992 x_unit_mode IN VARCHAR2
1993 ) AS
1994 /*-----------------------------------------------------------------
1995 || Created By :
1996 || Created On :
1997 || Purpose :
1998 || Known limitations, enhancements or remarks :
1999 || Change History :
2000 || Who When What
2001 || (reverse chronological order - newest change first)
2002 || svuppala 31-MAY-2005 Enh 3442712: Added Unit Program Type Level, Unit Mode, Unit Class, Unit Code,
2003 || Unit Version and Unit Level
2004 || pathipat 10-Sep-2003 Enh 3108052 - Add Unit Sets to Rate Table
2005 || Added 2 new columns unit_set_cd and us_version_number
2006 --------------------------------------------------------------------*/
2007 CURSOR c1 IS
2008 SELECT rowid
2009 FROM igs_fi_fee_as_rate
2010 WHERE far_id = x_far_id ;
2011 BEGIN
2012 OPEN c1;
2013 FETCH c1 INTO x_rowid;
2014 IF (c1%NOTFOUND) THEN
2015 CLOSE c1;
2016 insert_row (
2017 x_rowid,
2018 x_far_id,
2019 x_fee_type,
2020 x_fee_cal_type,
2021 x_fee_ci_sequence_number,
2022 x_s_relation_type,
2023 x_rate_number,
2024 x_fee_cat,
2025 x_location_cd,
2026 x_attendance_type,
2027 x_attendance_mode,
2028 x_order_of_precedence,
2029 x_govt_hecs_payment_option,
2030 x_govt_hecs_cntrbtn_band,
2031 x_chg_rate,
2032 x_logical_delete_dt,
2033 x_residency_status_cd,
2034 x_course_cd,
2035 x_version_number,
2036 x_org_party_id,
2037 x_class_standing,
2038 x_mode,
2039 x_unit_set_cd,
2040 x_us_version_number,
2041 x_unit_cd,
2042 x_unit_version_number,
2043 x_unit_level,
2044 x_unit_type_id,
2045 x_unit_class,
2046 x_unit_mode
2047 );
2048 RETURN;
2049 END IF;
2050 CLOSE c1;
2051
2052 update_row (
2053 x_rowid,
2054 x_far_id,
2055 x_fee_type,
2056 x_fee_cal_type,
2057 x_fee_ci_sequence_number,
2058 x_s_relation_type,
2059 x_rate_number,
2060 x_fee_cat,
2061 x_location_cd,
2062 x_attendance_type,
2063 x_attendance_mode,
2064 x_order_of_precedence,
2065 x_govt_hecs_payment_option,
2066 x_govt_hecs_cntrbtn_band,
2067 x_chg_rate,
2068 x_logical_delete_dt,
2069 x_residency_status_cd,
2070 x_course_cd,
2071 x_version_number,
2072 x_org_party_id,
2073 x_class_standing,
2074 x_mode,
2075 x_unit_set_cd,
2076 x_us_version_number,
2077 x_unit_cd,
2078 x_unit_version_number,
2079 x_unit_level,
2080 x_unit_type_id,
2081 x_unit_class,
2082 x_unit_mode
2083 );
2084 END add_row;
2085
2086
2087 PROCEDURE delete_row (
2088 x_rowid IN VARCHAR2
2089 ) AS
2090 /*-----------------------------------------------------------------
2091 || Created By :
2092 || Created On :
2093 || Purpose :
2094 || Known limitations, enhancements or remarks :
2095 || Change History :
2096 || Who When What
2097 || (reverse chronological order - newest change first)
2098 --------------------------------------------------------------------*/
2099 BEGIN
2100 Before_DML( p_action =>'DELETE',
2101 x_rowid => X_ROWID
2102 );
2103 DELETE FROM igs_fi_fee_as_rate
2104 WHERE rowid = x_rowid;
2105 IF (SQL%NOTFOUND) THEN
2106 RAISE NO_DATA_FOUND;
2107 END IF;
2108 END delete_row;
2109
2110
2111 PROCEDURE beforerowupdate AS
2112 /*----------------------------------------------------------------------------
2113 || Created By : vchappid
2114 || Created On : 02-Jul-2002
2115 || Purpose : Will not allow any updation of attributes when the logical delete date is set.
2116 || Known limitations, enhancements or remarks :
2117 || Change History :
2118 || Who When What
2119 || (reverse chronological order - newest change first)
2120 ----------------------------------------------------------------------------*/
2121 BEGIN
2122 -- Bug#2409567, Will not allow any updation of attributes when the logical delete date is set.
2123 IF old_references.logical_delete_dt IS NOT NULL THEN
2124 fnd_message.set_name('IGS','IGS_FI_LOG_DEL_UPD_NOT_ALLOWED');
2125 IGS_GE_MSG_STACK.ADD;
2126 app_exception.raise_exception;
2127 END IF;
2128 END beforerowupdate;
2129
2130 PROCEDURE get_fk_igs_en_unit_set_all(
2131 x_unit_set_cd IN VARCHAR2,
2132 x_us_version_number IN NUMBER
2133 ) AS
2134 /*-----------------------------------------------------------------
2135 || Created By : Priya Athipatla
2136 || Created On : 17-Sep-2003
2137 || Purpose : To validate FK with igs_en_unit_set_all
2138 || Known limitations, enhancements or remarks :
2139 || Change History :
2140 || Who When What
2141 || (reverse chronological order - newest change first)
2142 --------------------------------------------------------------------*/
2143 CURSOR cur_rowid IS
2144 SELECT rowid
2145 FROM igs_fi_fee_as_rate
2146 WHERE unit_set_cd = x_unit_set_cd
2147 AND us_version_number = x_us_version_number;
2148
2149 lv_rowid cur_rowid%ROWTYPE;
2150
2151 BEGIN
2152
2153 OPEN cur_rowid;
2154 FETCH cur_rowid INTO lv_rowid;
2155 IF(cur_rowid%FOUND) THEN
2156 CLOSE cur_rowid;
2157 fnd_message.set_name('IGS', 'IGS_FI_FAR_EUS_FK');
2158 igs_ge_msg_stack.add;
2159 app_exception.raise_exception;
2160 RETURN;
2161 END IF;
2162 CLOSE cur_rowid;
2163 END get_fk_igs_en_unit_set_all;
2164
2165 END igs_fi_fee_as_rate_pkg;