DBA Data[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