1 PACKAGE BODY IGS_EN_VAL_DIT AS
2 /* $Header: IGSEN31B.pls 115.4 2002/11/28 23:56:46 nsidana ship $ */
3 --
4 /* Bug 1956374
5 Who msrinivi
6 What duplicate removal Rremoved genp_prc_clear_rowid,genp_set_row_id
7 */
8 -- Routine to process dit rowids in a PL/SQL TABLE for the current commit
9 FUNCTION enrp_prc_dit_rowids(
10 p_inserting IN BOOLEAN ,
11 p_updating IN BOOLEAN ,
12 p_deleting IN BOOLEAN ,
13 p_message_name OUT NOCOPY VARCHAR2)
14 RETURN BOOLEAN AS
15 v_index BINARY_INTEGER;
16 v_other_detail VARCHAR(255);
17 r_disability_type IGS_AD_DISBL_TYPE%ROWTYPE;
18 BEGIN
19 -- Process saved rows.
20 FOR v_index IN 1..gv_table_index - 1
21 LOOP
22 BEGIN
23 SELECT *
24 INTO r_disability_type
25 FROM IGS_AD_DISBL_TYPE
26 WHERE rowid = gt_rowid_table(v_index);
27 EXCEPTION
28 WHEN OTHERS THEN
29 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
30 FND_MESSAGE.SET_TOKEN('NAME','IGS_EN_VAL_DIT.enrp_prc_dit_rowids');
31 IGS_GE_MSG_STACK.ADD;
32 App_Exception.Raise_Exception;
33
34 END;
35 -- Validate for open IGS_AD_DISBL_TYPE records.
36 IF r_disability_type.closed_ind = 'N' THEN
37 IF IGS_EN_VAL_DIT.enrp_val_dit_open (
38 r_disability_type.disability_type,
39 r_disability_type.govt_disability_type,
40 p_message_name) = FALSE THEN
41 RETURN FALSE;
42 END IF;
43 END IF;
44 END LOOP;
45 RETURN TRUE;
46 END enrp_prc_dit_rowids;
47 --
48 -- Validate the disability type.
49 FUNCTION enrp_val_dit_open(
50 p_disability_type IN VARCHAR2 ,
51 p_govt_disability_type IN VARCHAR2 ,
52 p_message_name OUT NOCOPY VARCHAR2)
53 RETURN BOOLEAN AS
54 BEGIN
55 DECLARE
56 gv_other_detail VARCHAR(255);
57 CURSOR gc_dit(
58 cp_disability_type IGS_AD_DISBL_TYPE.disability_type%TYPE,
59 cp_govt_disability_type IGS_AD_DISBL_TYPE.govt_disability_type%TYPE)
60 IS
61 SELECT IGS_AD_DISBL_TYPE.closed_ind
62 FROM IGS_AD_DISBL_TYPE
63 WHERE IGS_AD_DISBL_TYPE.disability_type <> cp_disability_type AND
64 IGS_AD_DISBL_TYPE.govt_disability_type = cp_govt_disability_type AND
65 IGS_AD_DISBL_TYPE.closed_ind = 'N';
66 BEGIN
67 -- this module validates that there are no other "open" IGS_AD_DISBL_TYPE
68 -- records for the nominated government disability_type (IGS_AD_DISBL_TYPE)
69 p_message_name := null;
70 FOR gc_dit_rec IN gc_dit(
71 p_disability_type,
72 p_govt_disability_type) LOOP
73 IF gc_dit_rec.closed_ind = 'N' THEN
74 p_message_name := 'IGS_EN_ONE_DISABILIT_TYP_EXIS';
75 RETURN FALSE;
76 END IF;
77 END LOOP;
78 RETURN TRUE;
79 EXCEPTION
80 WHEN OTHERS THEN
81 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
82 FND_MESSAGE.SET_TOKEN('NAME','IGS_EN_VAL_DIT.enrp_val_dit_open');
83 IGS_GE_MSG_STACK.ADD;
84 App_Exception.Raise_Exception;
85
86 END;
87 END enrp_val_dit_open;
88 END IGS_EN_VAL_DIT;