1 PACKAGE BODY igs_ad_val_pe AS
2 /* $Header: IGSAD66B.pls 115.5 2003/12/05 11:51:48 rboddu ship $ */
3
4 --
5 -- To validate duplicate person records using surname and birthdate
6 FUNCTION admp_val_pe_dplct(
7 p_person_id IN NUMBER ,
8 p_surname IN VARCHAR2 ,
9 p_birth_dt IN DATE ,
10 p_message_name OUT NOCOPY VARCHAR2 )
11 RETURN boolean AS
12 BEGIN
13 DECLARE
14 v_person_id IGS_PE_PERSON.person_id%TYPE;
15 CURSOR c_pe IS
16 SELECT pe.person_id
17 FROM igs_pe_person_base_v pe /* Replaced IGS_PE_PERSON with igs_pe_person_base_v Bug 3150054 */
18 WHERE pe.person_id = p_person_id AND
19 pe.last_name = p_surname AND
20 pe.birth_date = p_birth_dt;
21
22 BEGIN
23 -- Check for a duplicate person by checking for another person record with the
24 -- same surname and date of birth. Note: this routine is only treated as a
25 -- warning.
26 p_message_name := null;
27 -- 1. The check cannot be applied if all parameters are not set.
28 IF (p_birth_dt IS NULL) OR
29 (p_surname IS NULL) OR
30 (p_birth_dt IS NULL) THEN
31 p_message_name := null;
32 RETURN TRUE;
33 END IF;
34 OPEN c_pe;
35 FETCH c_pe INTO v_person_id;
36 IF (c_pe%FOUND) THEN
37 CLOSE c_pe;
38 p_message_name := 'IGS_AD_PEREXT_SAME_SURNAM_DOB';
39 RETURN FALSE;
40 END IF;
41 CLOSE c_pe;
42 RETURN TRUE;
43 END;
44 EXCEPTION
45 WHEN OTHERS THEN
46 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
47 FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_PE.admp_val_pe_dplct');
48 IGS_GE_MSG_STACK.ADD;
49 App_Exception.Raise_Exception;
50 END admp_val_pe_dplct;
51 --
52 -- Validate the person deceased indicator.
53 FUNCTION admp_val_pe_deceased(
54 p_deceased_ind IN VARCHAR2 DEFAULT 'N',
55 p_message_name OUT NOCOPY VARCHAR2 )
56 RETURN BOOLEAN AS
57 BEGIN -- admp_val_pe_deceased
58 -- Validate the person deceased indicator. On creation of a person record the
59 -- deceased indicator cannot be set to Yes.
60 BEGIN
61 -- Set the default message number
62 p_message_name := null;
63 IF (p_deceased_ind = 'Y') THEN
64 p_message_name := 'IGS_AD_CANNOT_CREATE_DEADPRSN';
65 RETURN FALSE;
66 END IF;
67 --- Return no error
68 RETURN TRUE;
69 END;
70 EXCEPTION
71 WHEN OTHERS THEN
72 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
73 FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_PE.admp_val_pe_deceased');
74 IGS_GE_MSG_STACK.ADD;
75 App_Exception.Raise_Exception;
76 END admp_val_pe_deceased;
77 --
78 END igs_ad_val_pe;