[Home] [Help]
PACKAGE BODY: APPS.AS_OPPORTUNITY_VUHK
Source
1 package body AS_OPPORTUNITY_VUHK as
2 /* $Header: pvxvhopb.pls 115.21 2002/12/26 15:59:57 vansub ship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):='AS_OPPORTUNITY_VUHK';
5 G_FILE_NAME CONSTANT VARCHAR2(12):='pvxvhopb.pls';
6
7 PROCEDURE Create_opp_header_Post(
8 P_Api_Version_Number IN NUMBER,
9 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
10 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
11 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
12 P_Check_Access_Flag IN VARCHAR2 := FND_API.G_FALSE,
13 P_Admin_Flag IN VARCHAR2 := FND_API.G_FALSE,
14 P_Admin_Group_Id IN NUMBER,
15 P_Identity_Salesforce_Id IN NUMBER := NULL,
16 P_salesgroup_id IN NUMBER := NULL,
17 P_profile_tbl IN AS_UTILITY_PUB.PROFILE_TBL_TYPE,
18 P_Partner_Cont_Party_id IN NUMBER := FND_API.G_MISS_NUM,
19 P_Header_Rec IN AS_OPPORTUNITY_PUB.Header_Rec_Type
20 := AS_OPPORTUNITY_PUB.G_MISS_Header_REC,
21 X_LEAD_ID OUT NOCOPY NUMBER,
22 X_Return_Status OUT NOCOPY VARCHAR2,
23 X_Msg_Count OUT NOCOPY NUMBER,
24 X_Msg_Data OUT NOCOPY VARCHAR2
25 ) IS
26
27 l_api_name CONSTANT VARCHAR2(30) := 'create_opp_header_post';
28 l_api_version_number CONSTANT NUMBER := 2.0;
29
30 BEGIN
31
32 -- Standard call to check for call compatibility.
33 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
34 p_api_version_number,
35 l_api_name,
36 G_PKG_NAME)
37 THEN
38 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
39 END IF;
40
41 -- Initialize message list if p_init_msg_list is set to TRUE.
42 IF FND_API.to_Boolean( p_init_msg_list )
43 THEN
44 FND_MSG_PUB.initialize;
45 END IF;
46
47 x_return_status := FND_API.G_RET_STS_SUCCESS ;
48
49 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
50 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
51 fnd_message.Set_Token('TEXT', ' ********* Before calling PV_OPPORTUNITY_VHUK.Create_Opportunity_Post');
52 fnd_msg_pub.Add;
53 END IF;
54
55 PV_OPPORTUNITY_VHUK.Create_Opportunity_Post (
56 p_api_version_number => 1.0,
57 p_init_msg_list => p_init_msg_list,
58 p_commit => p_commit,
59 p_validation_level => p_validation_level,
60 p_oppty_header_rec => P_Header_Rec ,
61 p_salesforce_id => P_Identity_Salesforce_Id,
62 x_return_status => x_return_status,
63 x_msg_count => x_msg_count,
64 x_msg_data => x_msg_data);
65
66 IF fnd_msg_pub.Check_Msg_Level (fnd_msg_pub.G_MSG_LVL_DEBUG_LOW) THEN
67 fnd_message.Set_Name('PV', 'PV_DEBUG_MESSAGE');
68 fnd_message.Set_Token('TEXT', '********* After calling PV_OPPORTUNITY_VHUK.Create_Opportunity_Post');
69 fnd_msg_pub.Add;
70 END IF;
71
72 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
73 RAISE FND_API.G_EXC_ERROR;
74 END IF;
75
76 EXCEPTION
77 WHEN FND_API.G_EXC_ERROR THEN
78 x_return_status := FND_API.G_RET_STS_ERROR ;
79 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
80 p_count => x_msg_count,
81 p_data => x_msg_data);
82 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
83 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
84 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
85 p_count => x_msg_count,
86 p_data => x_msg_data);
87 WHEN OTHERS THEN
88 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
89 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
90 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
91 p_count => x_msg_count,
92 p_data => x_msg_data);
93
94 END Create_opp_header_Post;
95
96
97 PROCEDURE Update_Opp_Header_Pre
98 ( p_api_version_number IN NUMBER,
99 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
100 p_commit IN VARCHAR2 := FND_API.G_FALSE,
101 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
102 p_check_access_flag IN VARCHAR2,
103 p_admin_flag IN VARCHAR2,
104 p_admin_group_id IN NUMBER,
105 p_identity_salesforce_id IN NUMBER,
106 p_profile_tbl IN AS_UTILITY_PUB.PROFILE_TBL_TYPE,
107 p_partner_cont_party_id IN NUMBER,
108 p_header_rec IN AS_OPPORTUNITY_PUB.Header_Rec_Type,
109 x_return_status OUT NOCOPY VARCHAR2,
110 x_msg_count OUT NOCOPY NUMBER,
111 x_msg_data OUT NOCOPY VARCHAR2
112 )
113 IS
114 l_api_name CONSTANT VARCHAR2(30) := 'update_opp_header_pre';
115 l_api_version_number CONSTANT NUMBER := 2.0;
116
117 cursor lc_get_channel_type (pc_lead_id number) is
118 select fnd_profile.value('PV_USER_TYPE'),
119 a.channel_code,
120 decode(nvl(c.channel_lookup_code,'0'), '0', 'N', c.indirect_channel_flag ),
121 a.prm_assignment_type
122 from as_leads_all a, pv_channel_types c
123 where a.lead_id = pc_lead_id
124 and a.channel_code = c.channel_lookup_code(+)
125 and c.channel_lookup_type (+) = 'SALES_CHANNEL';
126
127
128 cursor lc_chk_channel_code (pc_code varchar2) is
129 select
130 a.meaning,
131 nvl(b.indirect_channel_flag, 'N')
132 from oe_lookups a, pv_channel_types b
133 where a.lookup_type = 'SALES_CHANNEL'
134 and a.lookup_code = pc_code
135 and a.lookup_type = b.channel_lookup_type (+)
136 and a.lookup_code = b.channel_lookup_code (+);
137
138 l_temp varchar2(30);
139 l_user_type varchar2(30);
140 l_curr_channel_code varchar2(30);
141 l_curr_indirect_flag varchar2(1);
142 l_to_indirect_flag varchar2(1);
143 l_to_channel_meaning varchar2(80);
144 l_prm_assignment_type varchar2(80);
145
146 BEGIN
147
148 -- Standard call to check for call compatibility.
149 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
150 p_api_version_number,
151 l_api_name,
152 G_PKG_NAME)
153 THEN
154 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
155 END IF;
156
157 -- Initialize message list if p_init_msg_list is set to TRUE.
158
159 IF FND_API.to_Boolean( p_init_msg_list )
160 THEN
161 FND_MSG_PUB.initialize;
162 END IF;
163
164 x_return_status := FND_API.G_RET_STS_SUCCESS ;
165
166 open lc_get_channel_type (pc_lead_id => p_header_rec.lead_id);
167 fetch lc_get_channel_type into l_user_type,
168 l_curr_channel_code,
169 l_curr_indirect_flag,
170 l_prm_assignment_type;
171
172 if lc_get_channel_type%NOTFOUND then
173
174 close lc_get_channel_type;
175
176 FND_MESSAGE.Set_Name('PV', 'PV_LEAD_NOT_FOUND');
177 FND_MESSAGE.Set_Token('LEAD_ID', p_header_rec.lead_id);
178 FND_MSG_PUB.Add;
179 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
180
181 end if;
182
183 close lc_get_channel_type;
184
185 if l_curr_indirect_flag = 'Y' then
186
187 -- channel_code in the record type may be null if user has decided not to display
188 -- the column in the opportunity summary page. In that case it will be G_MISS_CHAR
189
190 if p_header_rec.channel_code <> FND_API.G_MISS_CHAR and p_header_rec.channel_code <> l_curr_channel_code then
191
192 open lc_chk_channel_code(pc_code => p_header_rec.channel_code);
193
194 fetch lc_chk_channel_code into l_to_channel_meaning,
195 l_to_indirect_flag;
196
197 if lc_chk_channel_code%NOTFOUND then
198
199 close lc_chk_channel_code;
200
201 FND_MESSAGE.Set_Name('PV', 'PV_INVALID_CHANNEL_CODE');
202 FND_MESSAGE.Set_Token('P_CHANNEL', p_header_rec.channel_code);
203 FND_MSG_PUB.Add;
204
205 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
206
207 end if;
208
209 close lc_chk_channel_code;
210
211 if l_to_indirect_flag <> 'Y'
212 and (l_prm_assignment_type <> 'UNASSIGNED')
213 then
214
215 FND_MESSAGE.Set_Name('PV', 'PV_OPP_ALREADY_ASSIGNED');
216 FND_MESSAGE.Set_Token('P_CHANNEL', l_to_channel_meaning);
217 FND_MSG_PUB.Add;
218
219 RAISE FND_API.G_EXC_ERROR;
220
221 end if;
222
223 end if;
224 end if;
225
226 -- Added by Ajoy for user hook.
227 PV_OPPORTUNITY_VHUK.Update_Opportunity_Pre (
228 p_api_version_number => 1.0,
229 p_init_msg_list => p_init_msg_list,
230 p_commit => p_commit,
231 p_validation_level => p_validation_level,
232 p_oppty_header_rec => P_Header_Rec ,
233 p_salesforce_id => P_Identity_Salesforce_Id,
234 x_return_status => x_return_status,
235 x_msg_count => x_msg_count,
236 x_msg_data => x_msg_data);
237
238
239 -- Standard call to get message count and if count is 1, get message info.
240 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
241 p_count => x_msg_count,
242 p_data => x_msg_data);
243
244 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
245 RAISE FND_API.G_EXC_ERROR;
246 END IF;
247
248 EXCEPTION
249
250 WHEN FND_API.G_EXC_ERROR THEN
251 x_return_status := FND_API.G_RET_STS_ERROR ;
252 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
253 p_count => x_msg_count,
254 p_data => x_msg_data);
255
256 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
257 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
258 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
259 p_count => x_msg_count,
260 p_data => x_msg_data);
261 WHEN OTHERS THEN
262 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
263 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
264 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
265 p_count => x_msg_count,
266 p_data => x_msg_data);
267 END update_opp_header_pre;
268
269 -- Added by Ajoy
270 -- Post hook is not used
271 PROCEDURE Update_Opp_Header_Post
272 ( p_api_version_number IN NUMBER,
273 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
274 p_commit IN VARCHAR2 := FND_API.G_FALSE,
275 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
276 p_check_access_flag IN VARCHAR2,
277 p_admin_flag IN VARCHAR2,
278 p_admin_group_id IN NUMBER,
279 p_identity_salesforce_id IN NUMBER,
280 p_profile_tbl IN AS_UTILITY_PUB.PROFILE_TBL_TYPE,
281 p_partner_cont_party_id IN NUMBER,
282 p_header_rec IN AS_OPPORTUNITY_PUB.Header_Rec_Type,
283 x_return_status OUT NOCOPY VARCHAR2,
284 x_msg_count OUT NOCOPY NUMBER,
285 x_msg_data OUT NOCOPY VARCHAR2
286 )
287 IS
288 l_api_name CONSTANT VARCHAR2(30) := 'update_opp_header_pre';
289 l_api_version_number CONSTANT NUMBER := 2.0;
290
291 BEGIN
292
293 /*
294 PV_OPPORTUNITY_VHUK.Update_Opportunity_Post (
295 p_api_version_number => 1.0,
296 p_init_msg_list => p_init_msg_list,
297 p_commit => p_commit,
298 p_validation_level => p_validation_level,
299 p_oppty_header_rec => P_Header_Rec ,
300 p_salesforce_id => P_Identity_Salesforce_Id,
301 x_return_status => x_return_status,
302 x_msg_count => x_msg_count,
303 x_msg_data => x_msg_data);
304
305
306 IF FND_API.To_Boolean ( p_commit ) THEN
307 COMMIT WORK;
308 END IF;
309 */
310
311 -- Added this code for bugfix : 1975105
312 x_return_status := FND_API.G_RET_STS_SUCCESS ;
313
314 -- Standard call to get message count and if count is 1, get message info.
315 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
316 p_count => x_msg_count,
317 p_data => x_msg_data);
318 EXCEPTION
319
320 WHEN FND_API.G_EXC_ERROR THEN
321 x_return_status := FND_API.G_RET_STS_ERROR ;
322 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
323 p_count => x_msg_count,
324 p_data => x_msg_data);
325 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
326 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
327 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
328 p_count => x_msg_count,
329 p_data => x_msg_data);
330 WHEN OTHERS THEN
331 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
332 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
333 fnd_msg_pub.Count_And_Get( p_encoded => FND_API.G_FALSE,
334 p_count => x_msg_count,
335 p_data => x_msg_data);
336 END update_opp_header_post;
337
338 end AS_OPPORTUNITY_VUHK;
339