1 PACKAGE BODY IGS_PR_VAL_SOPCA AS
2 /* $Header: IGSPR13B.pls 115.4 2002/11/29 02:47:05 nsidana ship $ */
3 -------------------------------------------------------------------------------------------
4 --Change History:
5 --Who When What
6 --smadathi 26-AUG-2001 Bug No. 1956374 .The function prgp_val_cfg_cat removed
7 -------------------------------------------------------------------------------------------
8 --
9 --
10 -- Validate the show cause period length of the s_ou_prg_cal record.
11 FUNCTION prgp_val_sopca_cause(
12 p_org_unit_cd IN VARCHAR2 ,
13 p_ou_start_dt IN DATE ,
14 p_show_cause_length IN NUMBER ,
15 p_message_name OUT NOCOPY VARCHAR2 )
16 RETURN BOOLEAN AS
17 gv_other_detail VARCHAR2(255);
18 BEGIN -- prgp_val_sopca_cause
19 -- Validate the show cause period length of the s_ou_prg_cal record, checking
20 -- for :
21 -- * Cannot be set if s_ou_prg_conf.show_cause_ind is N
22 -- * Warn if not set if s_ou_prg_conf.show_cause_ind is Y
23 DECLARE
24 v_show_cause_ind IGS_PR_S_OU_PRG_CONF.show_cause_ind%TYPE;
25 CURSOR c_sopc IS
26 SELECT sopc.show_cause_ind
27 FROM IGS_PR_S_OU_PRG_CONF sopc
28 WHERE sopc.org_unit_cd = p_org_unit_cd AND
29 sopc.ou_start_dt = p_ou_start_dt;
30 BEGIN
31 -- Set the default message name
32 p_message_name := Null;
33 OPEN c_sopc;
34 FETCH c_sopc INTO v_show_cause_ind;
35 IF c_sopc%FOUND THEN
36 CLOSE c_sopc;
37 IF v_show_cause_ind = 'Y' AND
38 p_show_cause_length IS NULL THEN
39 p_message_name := 'IGS_PR_SET_SHOW_CAUSE_LEN';
40 -- warning only
41 RETURN TRUE;
42 END IF;
43 IF v_show_cause_ind = 'N' AND
44 p_show_cause_length IS NOT NULL THEN
45 p_message_name := 'IGS_PR_CANT_SET_SHOW_CAUS_LEN';
46 RETURN FALSE;
47 END IF;
48 ELSE
49 CLOSE c_sopc;
50 END IF;
51 RETURN TRUE;
52 EXCEPTION
53 WHEN OTHERS THEN
54 IF c_sopc%ISOPEN THEN
55 CLOSE c_sopc;
56 END IF;
57 RAISE;
58 END;
59 EXCEPTION
60 WHEN OTHERS THEN
61 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
62 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_SOPCA.PRGP_VAL_SOPCA_CAUSE');
63 IGS_GE_MSG_STACK.ADD;
64 App_Exception.Raise_Exception;
65 END prgp_val_sopca_cause;
66 --
67 -- Validate the appeal period length of the s_ou_prg_cal record.
68 FUNCTION prgp_val_sopca_apl(
69 p_org_unit_cd IN VARCHAR2 ,
70 p_ou_start_dt IN DATE ,
71 p_appeal_length IN NUMBER ,
72 p_message_name OUT NOCOPY VARCHAR2 )
73 RETURN BOOLEAN AS
74 gv_other_detail VARCHAR2(255);
75 BEGIN -- prgp_val_sopca_apl
76 -- Validate the appeal period length of the s_ou_prg_cal record, checking for:
77 -- * Cannot be set if s_ou_prg_conf.appeal_ind is N
78 -- * Warn if not set if s_ou_prg_conf.appeal_ind is Y
79 DECLARE
80 v_appeal_ind IGS_PR_S_OU_PRG_CONF.appeal_ind%TYPE;
81 CURSOR c_sopc IS
82 SELECT sopc.appeal_ind
83 FROM IGS_PR_S_OU_PRG_CONF sopc
84 WHERE sopc.org_unit_cd = p_org_unit_cd AND
85 sopc.ou_start_dt = p_ou_start_dt;
86 BEGIN
87 -- Set the default message name
88 p_message_name := Null;
89 OPEN c_sopc;
90 FETCH c_sopc INTO v_appeal_ind;
91 IF c_sopc%FOUND THEN
92 CLOSE c_sopc;
93 IF v_appeal_ind = 'Y' AND
94 p_appeal_length IS NULL THEN
95 p_message_name := 'IGS_PR_SET_APPEAL_LEN';
96 -- warning only
97 RETURN TRUE;
98 END IF;
99 IF v_appeal_ind = 'N' AND
100 p_appeal_length IS NOT NULL THEN
101 p_message_name := 'IGS_PR_CANT_SET_APPEAL_LEN';
102 RETURN FALSE;
103 END IF;
104 ELSE
105 CLOSE c_sopc;
106 END IF;
107 RETURN TRUE;
108 EXCEPTION
109 WHEN OTHERS THEN
110 IF c_sopc%ISOPEN THEN
111 CLOSE c_sopc;
112 END IF;
113 RAISE;
114 END;
115 EXCEPTION
116 WHEN OTHERS THEN
117 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
118 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_SOPCA.PRGP_VAL_SOPCA_APL');
119 IGS_GE_MSG_STACK.ADD;
120 App_Exception.Raise_Exception;
121 END prgp_val_sopca_apl;
122 END IGS_PR_VAL_SOPCA;