DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_EN_VAL_DIT

Source


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;