[Home] [Help]
PACKAGE BODY: APPS.IGS_PE_LANGUAGES_PKG
Source
1 PACKAGE BODY Igs_Pe_languages_Pkg AS
2 /* $Header: IGSNI75B.pls 120.2 2005/10/10 04:33:01 appldev ship $ */
3
4 PROCEDURE Languages(
5 p_action IN VARCHAR2 ,
6 P_LANGUAGE_NAME IN VARCHAR2,
7 p_DESCRIPTION IN VARCHAR2,
8 p_PARTY_ID IN NUMBER,
9 p_native_language IN VARCHAR2,
10 p_primary_language_indicator IN VARCHAR2,
11 P_READS_LEVEL IN VARCHAR2,
12 P_SPEAKS_LEVEL IN VARCHAR2,
13 P_WRITES_LEVEL IN VARCHAR2,
14 p_END_DATE IN DATE,
15 p_status IN VARCHAR2 DEFAULT 'A',
16 p_understand_level IN VARCHAR2 DEFAULT NULL,
17 p_last_update_date IN OUT NOCOPY DATE,
18 p_return_status OUT NOCOPY VARCHAR2 ,
19 p_msg_count OUT NOCOPY VARCHAR2 ,
20 p_msg_data OUT NOCOPY VARCHAR2,
21 P_language_use_reference_id IN OUT NOCOPY NUMBER,
22 p_language_ovn IN OUT NOCOPY NUMBER,
23 p_source IN VARCHAR2 DEFAULT NULL
24 ) AS
25
26 -- CURSOR langcursor is SELECT IGS_PE_HZ_LANGUAGES_S.NEXTVAL S from DUAL;
27
28 lv_init_msg_list VARCHAR2(1) := FND_API.G_FALSE;
29 lv_language_use_reference_id1 NUMBER;
30 lv_commit VARCHAR2(1) := FND_API.G_FALSE ;
31 lv_language_use_reference_id NUMBER;
32
33 -- V2API uptake
34
35 lv_per_language_rec_type HZ_PERSON_INFO_V2PUB.person_language_rec_type;
36
37 lv_last_update_date DATE := p_last_update_date;
38
39 lv_object_version_number hz_person_language.OBJECT_VERSION_NUMBER%TYPE;
40
41 tmp_var VARCHAR2(2000);
42 tmp_var1 VARCHAR2(2000);
43 l_action VARCHAR2(30);
44
45 CURSOR dup_lang_cur (cp_language_name hz_person_language.language_name%TYPE,
46 cp_status hz_person_language.status%TYPE,
47 cp_party_id hz_person_language.party_id%TYPE) IS
48 SELECT language_use_reference_id, object_version_number
49 FROM hz_person_language
50 WHERE language_name = cp_language_name AND
51 status = cp_status AND
52 party_id = cp_party_id;
53
54 dup_lang_rec dup_lang_cur%ROWTYPE;
55 BEGIN
56
57 lv_language_use_reference_id := p_language_use_reference_id;
58 lv_object_version_number := p_language_ovn;
59 l_action := p_action;
60
61 IF l_action = 'INSERT' AND p_source = 'SS' THEN
62
63 OPEN dup_lang_cur(P_LANGUAGE_NAME,'A',p_party_id);
64 FETCH dup_lang_cur INTO dup_lang_rec;
65
66 IF (dup_lang_cur%FOUND) THEN
67 CLOSE dup_lang_cur;
68 FND_MESSAGE.SET_NAME('IGS','IGS_PE_DUP_LANG_CODE');
69 IGS_GE_MSG_STACK.ADD;
70 RAISE FND_API.G_EXC_ERROR;
71 END IF;
72 CLOSE dup_lang_cur;
73
74
75 OPEN dup_lang_cur(P_LANGUAGE_NAME,'I',p_party_id);
76 FETCH dup_lang_cur INTO dup_lang_rec;
77 CLOSE dup_lang_cur;
78
79 IF dup_lang_rec.language_use_reference_id IS NOT NULL THEN
80 l_action := 'UPDATE';
81 lv_language_use_reference_id := dup_lang_rec.language_use_reference_id;
82 lv_object_version_number := dup_lang_rec.object_version_number;
83 END IF;
84 END IF;
85
86 IF l_action='INSERT' THEN
87
88 lv_per_language_rec_type.language_name := p_language_name;
89 lv_per_language_rec_type.party_id := p_party_id;
90 lv_per_language_rec_type.native_language := p_native_language;
91 lv_per_language_rec_type.primary_language_indicator := p_primary_language_indicator;
92 lv_per_language_rec_type.reads_level := p_reads_level;
93 lv_per_language_rec_type.speaks_level := p_speaks_level;
94 lv_per_language_rec_type.writes_level := P_writes_level;
95 lv_per_language_rec_type.created_by_module := 'IGS';
96 lv_per_language_rec_type.spoken_comprehension_level := p_understand_level;
97 lv_per_language_rec_type.status := p_status;
98
99
100 HZ_PERSON_INFO_V2PUB.create_person_language(
101 p_init_msg_list => lv_init_msg_list,
102 p_person_language_rec => lv_per_language_rec_type,
103 x_language_use_reference_id => P_language_use_reference_id,
104 x_return_status => p_return_status,
105 x_msg_count => p_msg_count ,
106 x_msg_data => p_msg_data );
107
108 IF p_return_status IN ('E','U') THEN
109
110 -- ssawhney bug 2338473
111 IF p_msg_count > 1 THEN
112 FOR i IN 1..p_msg_count LOOP
113 tmp_var := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
114 tmp_var1 := tmp_var1 || ' '|| tmp_var;
115 END LOOP;
116 p_msg_data := tmp_var1;
117 END IF;
118 RETURN;
119 END IF;
120
121 -- after successful insert, pass OVN out as 1.
122 p_language_ovn :=1;
123
124 ELSIF l_action = 'UPDATE' THEN
125
126 lv_per_language_rec_type.language_name := p_language_name;
127 lv_per_language_rec_type.party_id := p_party_id;
128 lv_per_language_rec_type.native_language := NVL(p_native_language,FND_API.G_MISS_CHAR);
129 lv_per_language_rec_type.primary_language_indicator := NVL(p_primary_language_indicator,FND_API.G_MISS_CHAR);
130 lv_per_language_rec_type.reads_level := NVL(p_reads_level,FND_API.G_MISS_CHAR);
131 lv_per_language_rec_type.speaks_level := NVL(p_speaks_level,FND_API.G_MISS_CHAR);
132 lv_per_language_rec_type.writes_level := NVL(P_writes_level,FND_API.G_MISS_CHAR);
133 lv_per_language_rec_type.language_use_reference_id := lv_language_use_reference_id;
134 -- lv_per_language_rec_type.created_by_module := 'IGS';
135 lv_per_language_rec_type.spoken_comprehension_level := NVL(p_understand_level,FND_API.G_MISS_CHAR);
136 lv_per_language_rec_type.status := NVL(p_status,FND_API.G_MISS_CHAR);
137
138
139 HZ_PERSON_INFO_V2PUB.update_person_language(
140 p_init_msg_list => lv_init_msg_list,
141 p_person_language_rec => lv_per_language_rec_type,
142 p_object_version_number => lv_object_version_number,
143 x_return_status => p_return_status ,
144 x_msg_count => p_msg_count,
145 x_msg_data => p_msg_data);
146
147
148
149 IF p_return_status IN ('E','U') THEN
150
151 -- ssawhney bug 2338473
152 IF p_msg_count > 1 THEN
153 FOR i IN 1..p_msg_count LOOP
154 tmp_var := fnd_msg_pub.get(p_encoded => fnd_api.g_false);
155 tmp_var1 := tmp_var1 || ' '|| tmp_var;
156 END LOOP;
157 p_msg_data := tmp_var1;
158 END IF;
159 RETURN;
160 END IF;
161
162 END IF;
163
164
165 EXCEPTION
166 WHEN FND_API.G_EXC_ERROR THEN
167 p_return_status := FND_API.G_RET_STS_ERROR;
168 p_msg_data := SQLERRM;
169 WHEN OTHERS THEN
170 p_return_status := FND_API.G_RET_STS_ERROR;
171 p_msg_data := SQLERRM;
172 RAISE ;
173 END Languages;
174 END IGS_PE_LANGUAGES_PKG;