DBA Data[Home] [Help]

PACKAGE BODY: APPS.AS_ACCESS_PUB

Source


1 PACKAGE BODY AS_ACCESS_PUB as
2 /* $Header: asxpacsb.pls 120.2 2005/08/10 04:22:58 appldev ship $ */
3 --
4 -- NAME
5 -- AS_ACCESS_PUB
6 --
7 -- HISTORY
8 --   8/28/98            JKORNBER     CREATED
9 --   9/18/98		AWU          UPDATED
10 --
11 
12 G_PKG_NAME      CONSTANT VARCHAR2(30):='AS_ACCESS_PUB';
13 G_FILE_NAME     CONSTANT VARCHAR2(12):='asxpacsb.pls';
14 
15 /*
16 procedure get_person_id(p_salesforce_id in varchar2,
17 			  x_person_id OUT NOCOPY varchar2)
18 
19 is
20 	cursor get_person_id_csr is
21 	select employee_person_id
22 	from as_salesforce
23 	where salesforce_id = p_salesforce_id;
24 
25 begin
26 	open get_person_id_csr;
27 	fetch get_person_id_csr into x_person_id;
28 
29 	if (get_person_id_csr%NOTFOUND)
30 	then
31 		IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
32 		THEN
33 			FND_MESSAGE.Set_Name('AS', 'API_INVALID_ID');
34 			FND_MESSAGE.Set_Token('COLUMN', 'SALESFORCE_ID', FALSE);
35 			fnd_message.set_token('VALUE', p_salesforce_id, FALSE);
36 			FND_MSG_PUB.ADD;
37 		END IF;
38 		 raise FND_API.G_EXC_ERROR;
39 	end if;
40 	close get_person_id_csr;
41 end;
42 */
43 
44 Procedure Convert_Pub_Sales_Team_To_Pvt(pub_rec IN AS_ACCESS_PUB.SALES_TEAM_REC_TYPE,
45                                         pvt_rec OUT NOCOPY AS_ACCESS_PVT.SALES_TEAM_REC_TYPE) IS
46 Begin
47 
48    pvt_rec.access_id := pub_rec.access_id;
49    pvt_rec.freeze_flag := pub_rec.freeze_flag;
50    pvt_rec.reassign_flag := pub_rec.reassign_flag;
51    pvt_rec.team_leader_flag := pub_rec.team_leader_flag;
52    pvt_rec.customer_id := pub_rec.customer_id;
53    pvt_rec.address_id := pub_rec.address_id;
54    pvt_rec.salesforce_id := pub_rec.salesforce_id;
55    pvt_rec.partner_customer_id := pub_rec.partner_customer_id;
56    pvt_rec.partner_address_id := pub_rec.partner_address_id;
57    pvt_rec.lead_id := pub_rec.lead_id;
58    pvt_rec.person_id := pub_rec.person_id;
59    pvt_rec.freeze_date := pub_rec.freeze_date;
60    pvt_rec.reassign_reason := pub_rec.reassign_reason;
61    pvt_rec.reassign_request_date := pub_rec.reassign_request_date;
62    pvt_rec.reassign_requested_person_id := pub_rec.reassign_requested_person_id;
63    pvt_rec.downloadable_flag := pub_rec.downloadable_flag;
64    pvt_rec.attribute_category := pub_rec.attribute_category;
65    pvt_rec.attribute1 := pub_rec.attribute1;
66    pvt_rec.attribute2 := pub_rec.attribute2;
67    pvt_rec.attribute3 := pub_rec.attribute3;
68    pvt_rec.attribute4 := pub_rec.attribute4;
69    pvt_rec.attribute5 := pub_rec.attribute5;
70    pvt_rec.attribute6 := pub_rec.attribute6;
71    pvt_rec.attribute7 := pub_rec.attribute7;
72    pvt_rec.attribute8 := pub_rec.attribute8;
73    pvt_rec.attribute9 := pub_rec.attribute9;
74    pvt_rec.attribute10 := pub_rec.attribute10;
75    pvt_rec.attribute11 := pub_rec.attribute11;
76    pvt_rec.attribute12 := pub_rec.attribute12;
77    pvt_rec.attribute13 := pub_rec.attribute13;
78    pvt_rec.attribute14 := pub_rec.attribute14;
79    pvt_rec.attribute15 := pub_rec.attribute15;
80    pvt_rec.last_update_date	:= pub_rec.last_update_date;
81    pvt_rec.last_updated_by	:= pub_rec.last_updated_by;
82    pvt_rec.creation_date	:= pub_rec.creation_date;
83    pvt_rec.created_by		:= pub_rec.created_by;
84    pvt_rec.last_update_login    := pub_rec.last_update_login;
85    pvt_rec.sales_group_id := pub_rec.sales_group_id;
86    pvt_rec.sales_lead_id := pub_rec.sales_lead_id;
87    pvt_rec.salesforce_role_code := pub_rec.salesforce_role_code;
88    pvt_rec.salesforce_relationship_code := pub_rec.salesforce_relationship_code;
89    pvt_rec.partner_cont_party_id := pub_rec.partner_cont_party_id;
90    pvt_rec.owner_flag := pub_rec.owner_flag;
91    pvt_rec.created_by_tap_flag := pub_rec.created_by_tap_flag;
92    pvt_rec.prm_keep_flag := pub_rec.prm_keep_flag;
93    pvt_rec.contributor_flag := pub_rec.contributor_flag; -- Added for ASNB
94 End Convert_Pub_Sales_Team_To_Pvt;
95 
96 
97 PROCEDURE Create_SalesTeam
98 (       p_api_version_number            IN      NUMBER,
99         p_init_msg_list                 IN      VARCHAR2 DEFAULT  FND_API.G_FALSE,
100         p_commit                        IN      VARCHAR2 DEFAULT  FND_API.G_FALSE,
101 	p_validation_level		IN	NUMBER
102 						DEFAULT  FND_API.G_VALID_LEVEL_FULL,
103          p_access_profile_rec	IN access_profile_rec_type,
104 	p_check_access_flag             IN      VARCHAR2,
105 	   p_admin_flag                    IN      VARCHAR2,
106 	   p_admin_group_id                IN      NUMBER,
107 	   p_identity_salesforce_id        IN      NUMBER,
108         p_sales_team_rec                IN      SALES_TEAM_REC_TYPE,
109         x_return_status                 OUT NOCOPY     VARCHAR2,
110         x_msg_count                     OUT NOCOPY     NUMBER,
111         x_msg_data                      OUT NOCOPY     VARCHAR2,
112         x_access_id                     OUT NOCOPY     NUMBER
113 ) is
114   l_api_name            CONSTANT VARCHAR2(30) := 'Create_SalesTeam';
115   l_api_version_number  CONSTANT NUMBER       := 2.0;
116   l_pvt_sales_team_rec  AS_ACCESS_PVT.Sales_Team_Rec_Type;
117   l_sales_team_rec sales_team_rec_type;
118   l_access_id number;
119   l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.Create_SalesTeam';
120 BEGIN
121 	SAVEPOINT CREATE_SALESTEAM_PUB;
122         -- Standard call to check for call compatibility.
123         IF NOT FND_API.Compatible_API_Call (l_api_version_number,
124                                         p_api_version_number,
125                                         l_api_name,
126                                         G_PKG_NAME)
127         THEN
128                 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
129                 THEN
130                         FND_MESSAGE.Set_Name('AS', 'API_UNEXP_ERROR_IN_PROCESSING');
131                         FND_MESSAGE.Set_Token('ROW', 'AS_ACCESS', TRUE);
132                         FND_MSG_PUB.ADD;
133                 END IF;
134                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
135         END IF;
136 
137 	 -- Initialize message list if p_init_msg_list is set to TRUE.
138        IF FND_API.to_Boolean( p_init_msg_list )
139        THEN
140           FND_MSG_PUB.initialize;
141        END IF;
142 
143         --  Initialize API return status to success
144         --
145         x_return_status := FND_API.G_RET_STS_SUCCESS;
146     l_sales_team_rec := p_sales_team_rec;
147     Convert_Pub_Sales_Team_To_Pvt(l_sales_team_rec, l_pvt_sales_team_rec);
148  --   get_person_id(l_sales_team_rec.salesforce_id, l_pvt_sales_team_rec.person_id);
149 
150 
151 
152        AS_ACCESS_PVT.Create_SalesTeam
153        (    p_api_version_number    =>  2.0,
154             p_commit                =>  p_commit,
155 	    p_validation_level      =>  p_validation_level,
156 	     p_access_profile_rec	  =>  p_access_profile_rec,
157             p_check_access_flag     =>  p_check_access_flag,
158 	       p_admin_flag            =>  p_admin_flag,
159 	       p_admin_group_id        =>  p_admin_group_id,
160 	       p_identity_salesforce_id => p_identity_salesforce_id,
161             p_sales_team_rec        =>  l_pvt_sales_team_rec,
162             x_return_status         =>  x_return_status,
163             x_msg_count             =>  x_msg_count,
164             x_msg_data              =>  x_msg_data,
165             x_access_id             =>  x_access_id
166        );
167 
168 
169        IF (x_return_status = fnd_api.g_ret_sts_error) THEN
170           RAISE fnd_api.g_exc_error;
171        ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
172 		RAISE fnd_api.g_exc_unexpected_error;
173        END IF;
174 
175     -- Assign return access_id to rec type so that it can pass the created access_id
176     -- to post User_Hook
177 
178 	  l_pvt_sales_team_rec.access_id := x_access_id;
179 
180 
181  EXCEPTION
182           WHEN FND_API.G_EXC_ERROR THEN
183               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
184                    P_MODULE => l_module
185                   ,P_API_NAME => L_API_NAME
186                   ,P_PKG_NAME => G_PKG_NAME
187                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
188                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
189                   ,X_MSG_COUNT => X_MSG_COUNT
190                   ,X_MSG_DATA => X_MSG_DATA
191                   ,X_RETURN_STATUS => X_RETURN_STATUS);
192 
193           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
194               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
195                    P_MODULE => l_module
196                   ,P_API_NAME => L_API_NAME
197                   ,P_PKG_NAME => G_PKG_NAME
198                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
199                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
200                   ,X_MSG_COUNT => X_MSG_COUNT
201                   ,X_MSG_DATA => X_MSG_DATA
202                   ,X_RETURN_STATUS => X_RETURN_STATUS);
203 
204           WHEN OTHERS THEN
205               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
206                    P_MODULE => l_module
207                   ,P_API_NAME => L_API_NAME
208                   ,P_PKG_NAME => G_PKG_NAME
209                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
210 		  ,P_SQLCODE => SQLCODE
211 		   ,P_SQLERRM => SQLERRM
212                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
213                   ,X_MSG_COUNT => X_MSG_COUNT
214                   ,X_MSG_DATA => X_MSG_DATA
215                   ,X_RETURN_STATUS => X_RETURN_STATUS);
216 
217 
218 END Create_SalesTeam;
219 
220 
221 PROCEDURE Update_SalesTeam
222 (       p_api_version_number              IN      NUMBER,
223         p_init_msg_list                 IN      VARCHAR2
224                                                 DEFAULT  FND_API.G_FALSE,
225         p_commit                        IN      VARCHAR2
226                                                 DEFAULT  FND_API.G_FALSE,
227 	p_validation_level		IN	NUMBER
228 						DEFAULT  FND_API.G_VALID_LEVEL_FULL,
229         p_access_profile_rec	IN access_profile_rec_type,
230 	p_check_access_flag             IN      VARCHAR2,
231 	   p_admin_flag                    IN      VARCHAR2,
232 	   p_admin_group_id                IN      NUMBER,
233 	   p_identity_salesforce_id        IN      NUMBER,
234         p_sales_team_rec                IN      SALES_TEAM_REC_TYPE,
235         x_return_status                 OUT NOCOPY     VARCHAR2,
236         x_msg_count                     OUT NOCOPY     NUMBER,
237         x_msg_data                      OUT NOCOPY     VARCHAR2,
238         x_access_id                     OUT NOCOPY     NUMBER
239 ) is
240   l_api_name            CONSTANT VARCHAR2(30) := 'Update_SalesTeam';
241   l_api_version_number  CONSTANT NUMBER       := 2.0;
242   l_pvt_sales_team_rec  AS_ACCESS_PVT.Sales_Team_Rec_Type;
243   l_access_id number;
244   l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.Update_SalesTeam';
245 BEGIN
246 	SAVEPOINT UPDATE_SALESTEAM_PUB;
247         -- Standard call to check for call compatibility.
248         IF NOT FND_API.Compatible_API_Call (l_api_version_number,
249                                         p_api_version_number,
250                                         l_api_name,
251                                         G_PKG_NAME)
252         THEN
253                 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
254                 THEN
255                         FND_MESSAGE.Set_Name('AS', 'API_UNEXP_ERROR_IN_PROCESSING');
256                         FND_MESSAGE.Set_Token('ROW', 'AS_ACCESS', TRUE);
257                         FND_MSG_PUB.ADD;
258                 END IF;
259                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
260         END IF;
261 
262 	 -- Initialize message list if p_init_msg_list is set to TRUE.
263        IF FND_API.to_Boolean( p_init_msg_list )
264        THEN
265           FND_MSG_PUB.initialize;
266        END IF;
267 
268         --  Initialize API return status to success
269         --
270         x_return_status := FND_API.G_RET_STS_SUCCESS;
271 
272     Convert_Pub_Sales_Team_To_Pvt(p_sales_team_rec, l_pvt_sales_team_rec);
273 --    get_person_id(p_sales_team_rec.salesforce_id, l_pvt_sales_team_rec.person_id);
274 
275        AS_ACCESS_PVT.Update_SalesTeam
276        (       p_api_version_number    =>  2.0,
277 	      p_commit                =>  p_commit,
278             p_validation_level      =>  p_validation_level,
279 	    p_access_profile_rec	  =>  p_access_profile_rec,
280             p_check_access_flag     =>  p_check_access_flag,
281 	       p_admin_flag            =>  p_admin_flag,
282 	       p_admin_group_id        =>  p_admin_group_id,
283 	       p_identity_salesforce_id => p_identity_salesforce_id,
284             p_sales_team_rec        =>  l_pvt_sales_team_rec,
285             x_return_status         =>  x_return_status,
286             x_msg_count             =>  x_msg_count,
287             x_msg_data              =>  x_msg_data,
288             x_access_id             =>  x_access_id
289        );
290 
291        IF (x_return_status = fnd_api.g_ret_sts_error) THEN
292           RAISE fnd_api.g_exc_error;
293        ELSIF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
294 		RAISE fnd_api.g_exc_unexpected_error;
295        END IF;
296 
297 
298 
299 
300       EXCEPTION
301           WHEN FND_API.G_EXC_ERROR THEN
302               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
303                    P_MODULE => l_module
304                   ,P_API_NAME => L_API_NAME
305                   ,P_PKG_NAME => G_PKG_NAME
306                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
307                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
308                   ,X_MSG_COUNT => X_MSG_COUNT
309                   ,X_MSG_DATA => X_MSG_DATA
310                   ,X_RETURN_STATUS => X_RETURN_STATUS);
311 
312           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
313               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
314                    P_MODULE => l_module
315                   ,P_API_NAME => L_API_NAME
316                   ,P_PKG_NAME => G_PKG_NAME
317                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
318                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
319                   ,X_MSG_COUNT => X_MSG_COUNT
320                   ,X_MSG_DATA => X_MSG_DATA
321                   ,X_RETURN_STATUS => X_RETURN_STATUS);
322 
323           WHEN OTHERS THEN
324               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
325                    P_MODULE => l_module
326                   ,P_API_NAME => L_API_NAME
327                   ,P_PKG_NAME => G_PKG_NAME
328                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
329 		  ,P_SQLCODE => SQLCODE
330 		   ,P_SQLERRM => SQLERRM
331                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
332                   ,X_MSG_COUNT => X_MSG_COUNT
333                   ,X_MSG_DATA => X_MSG_DATA
334                   ,X_RETURN_STATUS => X_RETURN_STATUS);
335 
336 
337 END Update_SalesTeam;
338 
339 
340 -- Start of Comments
341 --
342 --      API name        : Delete_SalesTeam
343 --      Type            : Public
344 --      Function        : Delete sales team member records from the
345 --			  sales team (access table)
346 --
347 --      Pre-reqs        : Existing sales team record
348 --
349 --      Paramaeters     :
350 --      IN              :
351 --			p_api_version_number          	IN      NUMBER,
352 --		        p_init_msg_list                 IN      VARCHAR2
353 --		        p_commit                        IN      VARCHAR2
354 --    		        p_validation_level		IN	NUMBER
355 --      OUT             :
356 --                      x_return_status         OUT NOCOPY     VARCHAR2(1)
357 --                      x_msg_count             OUT NOCOPY     NUMBER
358 --                      x_msg_data              OUT NOCOPY     VARCHAR2(2000)
359 --
360 --
361 --      Version :       Current version 2.0
362 --                              Initial Version
363 --                      Initial version         1.0
364 --
365 --      Notes:          API for delete either an customer or opportunity
366 --			sales team
367 --
368 --
369 -- End of Comments
370 
371 PROCEDURE Delete_SalesTeam
372 (       p_api_version_number          	IN      NUMBER,
373         p_init_msg_list                 IN      VARCHAR2
374                                                 DEFAULT  FND_API.G_FALSE,
375         p_commit                        IN      VARCHAR2
376                                                 DEFAULT  FND_API.G_FALSE,
377 	p_validation_level		IN	NUMBER
378 						DEFAULT  FND_API.G_VALID_LEVEL_FULL,
379 	p_access_profile_rec	IN access_profile_rec_type,
380         p_check_access_flag             IN      VARCHAR2,
381 	   p_admin_flag                    IN      VARCHAR2,
382 	   p_admin_group_id                IN      NUMBER,
383 	   p_identity_salesforce_id        IN      NUMBER,
384         p_sales_team_rec                IN      SALES_TEAM_REC_TYPE,
385         x_return_status                 OUT NOCOPY     VARCHAR2,
386         x_msg_count                     OUT NOCOPY     NUMBER,
387         x_msg_data                      OUT NOCOPY     VARCHAR2
388 ) is
389  l_api_name            CONSTANT VARCHAR2(30) := 'Delete_SalesTeam';
390  l_api_version_number  CONSTANT NUMBER       := 2.0;
391  l_pvt_sales_team_rec  AS_ACCESS_PVT.Sales_Team_Rec_Type;
392  l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
393  l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.Delete_SalesTeam';
394 
395 begin
396 	SAVEPOINT DELETE_SALESTEAM_PUB;
397 	 -- Standard call to check for call compatibility.
398       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
399                                            p_api_version_number,
400                                            l_api_name,
401                                            G_PKG_NAME)
402       THEN
403           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
404       END IF;
405 
406       -- Initialize message list if p_init_msg_list is set to TRUE.
407       IF FND_API.to_Boolean( p_init_msg_list )
408       THEN
409           FND_MSG_PUB.initialize;
410       END IF;
411 
412       -- Debug Message
413       IF l_debug THEN
414       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
415                                    'Public API: ' || l_api_name || 'start');
416 
417       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
418                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
419       END IF;
420 
421       -- Initialize API return status to SUCCESS
422       x_return_status := FND_API.G_RET_STS_SUCCESS;
423 
424       --
425       -- API body
426       --
427 
428       IF l_debug THEN
429       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
430                    'Public API: Calling AS_ACCESS_PVT.delete_salesTeam');
431       END IF;
432                 Convert_Pub_Sales_Team_To_Pvt(p_sales_team_rec, l_pvt_sales_team_rec);
433 
434 
435 
436        as_access_pvt.Delete_SalesTeam
437 		(P_Api_Version_Number         => 2.0,
438 		P_Init_Msg_List              => FND_API.G_FALSE,
439 		P_Commit                     => FND_API.G_FALSE,
440 		p_validation_level	     => P_Validation_Level,
441 		p_access_profile_rec	  =>  p_access_profile_rec,
442 		p_check_access_flag          => p_check_access_flag,
443 		 p_admin_flag                => p_admin_flag,
444 		p_admin_group_id             => p_admin_group_id,
445 		p_identity_salesforce_id     => p_identity_salesforce_id,
446 		p_sales_team_rec             => l_pvt_sales_team_rec,
447 		x_return_status              => x_return_status,
448 		x_msg_count                  => x_msg_count,
449 		x_msg_data                   => x_msg_data
450 		);
451 	 IF x_return_status = FND_API.G_RET_STS_ERROR then
452                 raise FND_API.G_EXC_ERROR;
453       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
454                raise FND_API.G_EXC_UNEXPECTED_ERROR;
455       END IF;
456 
457 
458 
459       --
460       -- End of API body.
461       --
462 
463       IF FND_API.to_Boolean( p_commit )
464       THEN
465           COMMIT WORK;
466       END IF;
467 
468 
469       -- Debug Message
470       IF l_debug THEN
471       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
472                                    'Public API: ' || l_api_name || 'end');
473 
474       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
475                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
476       END IF;
477 
478 
479       FND_MSG_PUB.Count_And_Get
480       (  p_count          =>   x_msg_count,
481          p_data           =>   x_msg_data
482       );
483 
484       EXCEPTION
485           WHEN FND_API.G_EXC_ERROR THEN
486               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
487                    P_MODULE => l_module
488                   ,P_API_NAME => L_API_NAME
489                   ,P_PKG_NAME => G_PKG_NAME
490                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
491                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
492                   ,X_MSG_COUNT => X_MSG_COUNT
493                   ,X_MSG_DATA => X_MSG_DATA
494                   ,X_RETURN_STATUS => X_RETURN_STATUS);
495 
496           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
497               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
498                    P_MODULE => l_module
499                   ,P_API_NAME => L_API_NAME
500                   ,P_PKG_NAME => G_PKG_NAME
501                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
502                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
503                   ,X_MSG_COUNT => X_MSG_COUNT
504                   ,X_MSG_DATA => X_MSG_DATA
505                   ,X_RETURN_STATUS => X_RETURN_STATUS);
506 
507           WHEN OTHERS THEN
508               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
509                    P_MODULE => l_module
510                   ,P_API_NAME => L_API_NAME
511                   ,P_PKG_NAME => G_PKG_NAME
512                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
513 		  ,P_SQLCODE => SQLCODE
514 		   ,P_SQLERRM => SQLERRM
515                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
516                   ,X_MSG_COUNT => X_MSG_COUNT
517                   ,X_MSG_DATA => X_MSG_DATA
518                   ,X_RETURN_STATUS => X_RETURN_STATUS);
519 
520 End delete_salesteam;
521 
522 Procedure validate_accessProfiles
523 (	p_init_msg_list       IN       VARCHAR2 DEFAULT  FND_API.G_FALSE,
524 	p_access_profile_rec IN ACCESS_PROFILE_REC_TYPE,
525 	x_return_status       OUT NOCOPY      VARCHAR2,
526         x_msg_count           OUT NOCOPY      NUMBER,
527         x_msg_data            OUT NOCOPY      VARCHAR2
528 ) is
529 
530 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
531 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.validate_accessProfiles';
532 
533 begin
534 	IF l_debug THEN
535 	AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
536                                    'Val Access Profile start');
537 	END IF;
538 	x_return_status := FND_API.G_RET_STS_SUCCESS;
539 
540 	 if p_access_profile_rec.cust_access_profile_value = 'T'
541                and (p_access_profile_rec.lead_access_profile_value in ('F', 'P')
542 	or p_access_profile_rec.opp_access_profile_value in ('F', 'P'))
543 	then
544  		x_return_status := FND_API.G_RET_STS_ERROR;
545 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
546 		THEN
547 			FND_MESSAGE.Set_Name('AS', 'API_INVALID_COMINATION');
548 			FND_MSG_PUB.ADD;
549 		END IF;
550 	end if;
551 
552 	IF l_debug THEN
553 	AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
554                                    'Val Access Profile end');
555 	END IF;
556 
557 	FND_MSG_PUB.Count_And_Get
558       (  p_count          =>   x_msg_count,
559          p_data           =>   x_msg_data );
560 
561 end;
562 
563 
564 
565 procedure has_viewCustomerAccess
566 (	p_api_version_number	IN NUMBER
567 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
568 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
569 	,p_access_profile_rec	IN access_profile_rec_type
570 	,p_admin_flag		IN VARCHAR2
571 	,p_admin_group_id	IN NUMBER
572 	,p_person_id		IN NUMBER
573 	,p_customer_id		IN NUMBER
574 	,p_check_access_flag       IN VARCHAR2
575 	,p_identity_salesforce_id  IN NUMBER
576 	,p_partner_cont_party_id   IN NUMBER
577 	,x_return_status	OUT NOCOPY VARCHAR2
578 	,x_msg_count		OUT NOCOPY NUMBER
579 	,x_msg_data		OUT NOCOPY VARCHAR2
580 	,x_view_access_flag	OUT NOCOPY VARCHAR2
581 ) is
582 l_api_name            CONSTANT VARCHAR2(30) := 'has_viewCustomerAccess';
583 l_api_version_number  CONSTANT NUMBER       := 2.0;
584 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
585 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_viewCustomerAccess';
586 
587 begin
588 	-- Standard call to check for call compatibility.
589  IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
590                                            p_api_version_number,
591                                            l_api_name,
592                                            G_PKG_NAME)
593       THEN
594           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
595       END IF;
596 
597       -- Initialize message list if p_init_msg_list is set to TRUE.
598       IF FND_API.to_Boolean( p_init_msg_list )
599       THEN
600           FND_MSG_PUB.initialize;
601       END IF;
602 
603       -- Debug Message
604       IF l_debug THEN
605       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
606                                    'Public API: ' || l_api_name || 'start');
607 
608       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
609                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
610       END IF;
611 
612       -- Initialize API return status to SUCCESS
613       x_return_status := FND_API.G_RET_STS_SUCCESS;
614 
615       IF l_debug THEN
616       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
617                    'Public API: Calling as_access_pvt.has_viewCustomerAccess');
618       END IF;
619 
620 
621 	as_access_pvt.has_viewCustomerAccess
622 	(p_api_version_number	=> 2.0
623 	,p_init_msg_list        => FND_API.G_FALSE
624 	,p_validation_level	=> p_validation_level
625 	,p_access_profile_rec	=> p_access_profile_rec
626 	,p_admin_flag		=> p_admin_flag
627 	,p_admin_group_id	=> p_admin_group_id
628 	,p_person_id		=> p_person_id
629 	,p_customer_id		=> p_customer_id
630 	,p_check_access_flag    => p_check_access_flag
631 	,p_identity_salesforce_id =>p_identity_salesforce_id
632 	,p_partner_cont_party_id  =>p_partner_cont_party_id
633 	,x_return_status	  =>x_return_status
634 	,x_msg_count		=> x_msg_count
635 	,x_msg_data		=> x_msg_data
636 	,x_view_access_flag	=> x_view_access_flag);
637 
638         IF x_return_status = FND_API.G_RET_STS_ERROR then
639                 raise FND_API.G_EXC_ERROR;
640       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
641                raise FND_API.G_EXC_UNEXPECTED_ERROR;
642       END IF;
643 
644 
645       --
646       -- End of API body.
647       --
648 
649       -- Debug Message
650       IF l_debug THEN
651       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
652                                    'Public API: ' || l_api_name || 'end');
653 
654       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
655                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
656       END IF;
657 
658 
659       FND_MSG_PUB.Count_And_Get
660       (  p_count          =>   x_msg_count,
661          p_data           =>   x_msg_data
662       );
663 
664       EXCEPTION
665           WHEN FND_API.G_EXC_ERROR THEN
666               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
667                    P_MODULE => l_module
668                   ,P_API_NAME => L_API_NAME
669                   ,P_PKG_NAME => G_PKG_NAME
670                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
671                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
672 		  , P_ROLLBACK_FLAG  => 'N'
673                   ,X_MSG_COUNT => X_MSG_COUNT
674                   ,X_MSG_DATA => X_MSG_DATA
675                   ,X_RETURN_STATUS => X_RETURN_STATUS);
676 
677           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
678               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
679                    P_MODULE => l_module
680                   ,P_API_NAME => L_API_NAME
681                   ,P_PKG_NAME => G_PKG_NAME
682                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
683                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
684 		  , P_ROLLBACK_FLAG  => 'N'
685                   ,X_MSG_COUNT => X_MSG_COUNT
686                   ,X_MSG_DATA => X_MSG_DATA
687                   ,X_RETURN_STATUS => X_RETURN_STATUS);
688 
689           WHEN OTHERS THEN
690               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
691                    P_MODULE => l_module
692                   ,P_API_NAME => L_API_NAME
693                   ,P_PKG_NAME => G_PKG_NAME
694                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
695 		 ,P_SQLCODE => SQLCODE
696 		   ,P_SQLERRM => SQLERRM
697                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
698 		 , P_ROLLBACK_FLAG  => 'N'
699                   ,X_MSG_COUNT => X_MSG_COUNT
700                   ,X_MSG_DATA => X_MSG_DATA
701                   ,X_RETURN_STATUS => X_RETURN_STATUS);
702 
703 
704 end has_viewCustomerAccess ;
705 
706 procedure has_updateCustomerAccess
707 (	p_api_version_number	IN NUMBER
708 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
709 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
710 	,p_access_profile_rec	IN access_profile_rec_type
711 	,p_admin_flag		IN VARCHAR2
712 	,p_admin_group_id	IN NUMBER
713 	,p_person_id		IN NUMBER
714 	,p_customer_id		IN NUMBER
715 	,p_check_access_flag       IN VARCHAR2
716 	,p_identity_salesforce_id  IN NUMBER
717 	,p_partner_cont_party_id   IN NUMBER
718 	,x_return_status	OUT NOCOPY VARCHAR2
719 	,x_msg_count		OUT NOCOPY NUMBER
720 	,x_msg_data		OUT NOCOPY VARCHAR2
721 	,x_update_access_flag	OUT NOCOPY VARCHAR2
722 )is
723 l_api_name            CONSTANT VARCHAR2(30) := 'has_updateCustomerAccess';
724 l_api_version_number  CONSTANT NUMBER       := 2.0;
725 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
726 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_updateCustomerAccess';
727 
728 begin
729 -- Standard call to check for call compatibility.
730       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
731                                            p_api_version_number,
732                                            l_api_name,
733                                            G_PKG_NAME)
734       THEN
735           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
736       END IF;
737 
738       -- Initialize message list if p_init_msg_list is set to TRUE.
739       IF FND_API.to_Boolean( p_init_msg_list )
740       THEN
741           FND_MSG_PUB.initialize;
742       END IF;
743 
744       -- Debug Message
745       IF l_debug THEN
746       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
747                                    'Public API: ' || l_api_name || 'start');
748 
749       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
750                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
751       END IF;
752 
753       -- Initialize API return status to SUCCESS
754       x_return_status := FND_API.G_RET_STS_SUCCESS;
755 
756 
757       IF l_debug THEN
758       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
759                    'Public API: Calling as_access_pvt.has_updateCustomerAccess');
760       END IF;
761 
762 
763 	as_access_pvt.has_updateCustomerAccess
764 	(p_api_version_number	=> 2.0
765 	,p_init_msg_list        => FND_API.G_FALSE
766 	,p_validation_level	=> p_validation_level
767 	,p_access_profile_rec	=> p_access_profile_rec
768 	,p_admin_flag		=> p_admin_flag
769 	,p_admin_group_id	=> p_admin_group_id
770 	,p_person_id		=> p_person_id
771 	,p_customer_id		=> p_customer_id
772 	,p_check_access_flag    => p_check_access_flag
773 	,p_identity_salesforce_id =>p_identity_salesforce_id
774 	,p_partner_cont_party_id  =>p_partner_cont_party_id
775 	,x_return_status	  =>x_return_status
776 	,x_msg_count		=> x_msg_count
777 	,x_msg_data		=> x_msg_data
778 	,x_update_access_flag	=> x_update_access_flag);
779 
780         IF x_return_status = FND_API.G_RET_STS_ERROR then
781                 raise FND_API.G_EXC_ERROR;
782       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
783                raise FND_API.G_EXC_UNEXPECTED_ERROR;
784       END IF;
785 
786 
787       --
788       -- End of API body.
789       --
790 
791       -- Debug Message
792       IF l_debug THEN
793       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
794                                    'Public API: ' || l_api_name || 'end');
795 
796       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
797                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
798       END IF;
799 
800 
801       FND_MSG_PUB.Count_And_Get
802       (  p_count          =>   x_msg_count,
803          p_data           =>   x_msg_data
804       );
805 
806       EXCEPTION
807           WHEN FND_API.G_EXC_ERROR THEN
808               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
809                    P_MODULE => l_module
810                   ,P_API_NAME => L_API_NAME
811                   ,P_PKG_NAME => G_PKG_NAME
812                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
813                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
814 		  , P_ROLLBACK_FLAG  => 'N'
815                   ,X_MSG_COUNT => X_MSG_COUNT
816                   ,X_MSG_DATA => X_MSG_DATA
817                   ,X_RETURN_STATUS => X_RETURN_STATUS);
818 
819           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
820               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
821                    P_MODULE => l_module
822                   ,P_API_NAME => L_API_NAME
823                   ,P_PKG_NAME => G_PKG_NAME
824                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
825                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
826 		  , P_ROLLBACK_FLAG  => 'N'
827                   ,X_MSG_COUNT => X_MSG_COUNT
828                   ,X_MSG_DATA => X_MSG_DATA
829                   ,X_RETURN_STATUS => X_RETURN_STATUS);
830 
831           WHEN OTHERS THEN
832               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
833                    P_MODULE => l_module
834                   ,P_API_NAME => L_API_NAME
835                   ,P_PKG_NAME => G_PKG_NAME
836                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
837 		 ,P_SQLCODE => SQLCODE
838 		   ,P_SQLERRM => SQLERRM
839                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
840 		 , P_ROLLBACK_FLAG  => 'N'
841                   ,X_MSG_COUNT => X_MSG_COUNT
842                   ,X_MSG_DATA => X_MSG_DATA
843                   ,X_RETURN_STATUS => X_RETURN_STATUS);
844 
845 
846 end  has_updateCustomerAccess;
847 
848 procedure has_updateLeadAccess
849 (	p_api_version_number	IN NUMBER
850 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
851 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
852 	,p_access_profile_rec	IN access_profile_rec_type
853 	,p_admin_flag		IN VARCHAR2
854 	,p_admin_group_id	IN NUMBER
855 	,p_person_id		IN NUMBER
856 	,p_sales_lead_id		IN NUMBER
857 	,p_check_access_flag       IN VARCHAR2
858 	,p_identity_salesforce_id  IN NUMBER
859 	,p_partner_cont_party_id   IN NUMBER
860 	,x_return_status	OUT NOCOPY VARCHAR2
861 	,x_msg_count		OUT NOCOPY NUMBER
862 	,x_msg_data		OUT NOCOPY VARCHAR2
863 	,x_update_access_flag	OUT NOCOPY VARCHAR2
864 ) is
865 l_api_name            CONSTANT VARCHAR2(30) := 'has_updateLeadAccess';
866 l_api_version_number  CONSTANT NUMBER       := 2.0;
867 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
868 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_updateLeadAccess';
869 
870 begin
871 	-- Standard call to check for call compatibility.
872       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
873                                            p_api_version_number,
874                                            l_api_name,
875                                            G_PKG_NAME)
876       THEN
877           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
878       END IF;
879 
880       -- Initialize message list if p_init_msg_list is set to TRUE.
881       IF FND_API.to_Boolean( p_init_msg_list )
882       THEN
883           FND_MSG_PUB.initialize;
884       END IF;
885 
886       -- Debug Message
887       IF l_debug THEN
888       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
889                                    'Public API: ' || l_api_name || 'start');
890 
891       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
892                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
893       END IF;
894 
895       -- Initialize API return status to SUCCESS
896       x_return_status := FND_API.G_RET_STS_SUCCESS;
897 
898 
899       IF l_debug THEN
900       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
901                    'Public API: Calling as_access_pvt.has_updateLeadAccess');
902       END IF;
903 
904 
905 	as_access_pvt.has_updateLeadAccess
906 	(p_api_version_number	=> 2.0
907 	,p_init_msg_list        => FND_API.G_FALSE
908 	,p_validation_level	=> p_validation_level
909 	,p_access_profile_rec	=> p_access_profile_rec
910 	,p_admin_flag		=> p_admin_flag
911 	,p_admin_group_id	=> p_admin_group_id
912 	,p_person_id		=> p_person_id
913 	,p_sales_lead_id	=> p_sales_lead_id
914 	,p_check_access_flag    => p_check_access_flag
915 	,p_identity_salesforce_id =>p_identity_salesforce_id
916 	,p_partner_cont_party_id  =>p_partner_cont_party_id
917 	,x_return_status	  =>x_return_status
918 	,x_msg_count		=> x_msg_count
919 	,x_msg_data		=> x_msg_data
920 	,x_update_access_flag	=> x_update_access_flag);
921 
922         IF x_return_status = FND_API.G_RET_STS_ERROR then
923                 raise FND_API.G_EXC_ERROR;
924       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
925                raise FND_API.G_EXC_UNEXPECTED_ERROR;
926       END IF;
927 
928 
929       --
930       -- End of API body.
931       --
932 
933       -- Debug Message
934       IF l_debug THEN
935       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
936                                    'Public API: ' || l_api_name || 'end');
937 
938       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
939                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
940       END IF;
941 
942       FND_MSG_PUB.Count_And_Get
943       (  p_count          =>   x_msg_count,
944          p_data           =>   x_msg_data
945       );
946 
947       EXCEPTION
948           WHEN FND_API.G_EXC_ERROR THEN
949               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
950                    P_MODULE => l_module
951                   ,P_API_NAME => L_API_NAME
952                   ,P_PKG_NAME => G_PKG_NAME
953                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
954                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
955 		  , P_ROLLBACK_FLAG  => 'N'
956                   ,X_MSG_COUNT => X_MSG_COUNT
957                   ,X_MSG_DATA => X_MSG_DATA
958                   ,X_RETURN_STATUS => X_RETURN_STATUS);
959 
960           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
961               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
962                    P_MODULE => l_module
963                   ,P_API_NAME => L_API_NAME
964                   ,P_PKG_NAME => G_PKG_NAME
965                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
966                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
967 		  , P_ROLLBACK_FLAG  => 'N'
968                   ,X_MSG_COUNT => X_MSG_COUNT
969                   ,X_MSG_DATA => X_MSG_DATA
970                   ,X_RETURN_STATUS => X_RETURN_STATUS);
971 
972           WHEN OTHERS THEN
973               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
974                    P_MODULE => l_module
975                   ,P_API_NAME => L_API_NAME
976                   ,P_PKG_NAME => G_PKG_NAME
977                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
978 		 ,P_SQLCODE => SQLCODE
979 		   ,P_SQLERRM => SQLERRM
980                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
981 		 , P_ROLLBACK_FLAG  => 'N'
982                   ,X_MSG_COUNT => X_MSG_COUNT
983                   ,X_MSG_DATA => X_MSG_DATA
984                   ,X_RETURN_STATUS => X_RETURN_STATUS);
985 
986 
987 end has_updateLeadAccess;
988 
989 procedure has_updateOpportunityAccess
990 (	p_api_version_number	IN NUMBER
991 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
992 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
993 	,p_access_profile_rec	IN access_profile_rec_type
994 	,p_admin_flag		IN VARCHAR2
995 	,p_admin_group_id	IN NUMBER
996 	,p_person_id		IN NUMBER
997 	,p_opportunity_id	IN NUMBER
998 	,p_check_access_flag       IN VARCHAR2
999 	,p_identity_salesforce_id  IN NUMBER
1000 	,p_partner_cont_party_id   IN NUMBER
1001 	,x_return_status	OUT NOCOPY VARCHAR2
1002 	,x_msg_count		OUT NOCOPY NUMBER
1003 	,x_msg_data		OUT NOCOPY VARCHAR2
1004 	,x_update_access_flag	OUT NOCOPY VARCHAR2
1005 ) is
1006 l_api_name            CONSTANT VARCHAR2(30) := 'has_updateOpportunityAccess';
1007 l_api_version_number  CONSTANT NUMBER       := 2.0;
1008 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1009 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_updateOpportunityAccess';
1010 
1011 begin
1012 
1013 		-- Standard call to check for call compatibility.
1014       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1015                                            p_api_version_number,
1016                                            l_api_name,
1017                                            G_PKG_NAME)
1018       THEN
1019           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1020       END IF;
1021 
1022       -- Initialize message list if p_init_msg_list is set to TRUE.
1023       IF FND_API.to_Boolean( p_init_msg_list )
1024       THEN
1025           FND_MSG_PUB.initialize;
1026       END IF;
1027 
1028       -- Debug Message
1029       IF l_debug THEN
1030       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1031                                    'Public API: ' || l_api_name || 'start');
1032 
1033       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1034                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1035       END IF;
1036 
1037       -- Initialize API return status to SUCCESS
1038       x_return_status := FND_API.G_RET_STS_SUCCESS;
1039 
1040 
1041       IF l_debug THEN
1042       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1043                    'Public API: Calling as_access_pvt.has_updateOpportunityAccess');
1044       END IF;
1045 
1046 
1047 	as_access_pvt.has_updateOpportunityAccess
1048 	(p_api_version_number	=> 2.0
1049 	,p_init_msg_list        => FND_API.G_FALSE
1050 	,p_validation_level	=> p_validation_level
1051 	,p_access_profile_rec	=> p_access_profile_rec
1052 	,p_admin_flag		=> p_admin_flag
1053 	,p_admin_group_id	=> p_admin_group_id
1054 	,p_person_id		=> p_person_id
1055 	,p_opportunity_id	=> p_opportunity_id
1056 	,p_check_access_flag    => p_check_access_flag
1057 	,p_identity_salesforce_id =>p_identity_salesforce_id
1058 	,p_partner_cont_party_id  =>p_partner_cont_party_id
1059 	,x_return_status	  =>x_return_status
1060 	,x_msg_count		=> x_msg_count
1061 	,x_msg_data		=> x_msg_data
1062 	,x_update_access_flag	=> x_update_access_flag);
1063 
1064         IF x_return_status = FND_API.G_RET_STS_ERROR then
1065                 raise FND_API.G_EXC_ERROR;
1066       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1067                raise FND_API.G_EXC_UNEXPECTED_ERROR;
1068       END IF;
1069 
1070 
1071       --
1072       -- End of API body.
1073       --
1074 
1075       -- Debug Message
1076       IF l_debug THEN
1077       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1078                                    'Public API: ' || l_api_name || 'end');
1079 
1080       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
1081                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1082       END IF;
1083 
1084 
1085       FND_MSG_PUB.Count_And_Get
1086       (  p_count          =>   x_msg_count,
1087          p_data           =>   x_msg_data
1088       );
1089 
1090       EXCEPTION
1091           WHEN FND_API.G_EXC_ERROR THEN
1092               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1093                    P_MODULE => l_module
1094                   ,P_API_NAME => L_API_NAME
1095                   ,P_PKG_NAME => G_PKG_NAME
1096                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1097                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1098 		  , P_ROLLBACK_FLAG  => 'N'
1099                   ,X_MSG_COUNT => X_MSG_COUNT
1100                   ,X_MSG_DATA => X_MSG_DATA
1101                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1102 
1103           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1104               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1105                    P_MODULE => l_module
1106                   ,P_API_NAME => L_API_NAME
1107                   ,P_PKG_NAME => G_PKG_NAME
1108                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1109                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1110 		  , P_ROLLBACK_FLAG  => 'N'
1111                   ,X_MSG_COUNT => X_MSG_COUNT
1112                   ,X_MSG_DATA => X_MSG_DATA
1113                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1114 
1115           WHEN OTHERS THEN
1116               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1117                    P_MODULE => l_module
1118                   ,P_API_NAME => L_API_NAME
1119                   ,P_PKG_NAME => G_PKG_NAME
1120                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
1121 		 ,P_SQLCODE => SQLCODE
1122 		   ,P_SQLERRM => SQLERRM
1123                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1124 		 , P_ROLLBACK_FLAG  => 'N'
1125                   ,X_MSG_COUNT => X_MSG_COUNT
1126                   ,X_MSG_DATA => X_MSG_DATA
1127                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1128 
1129 end has_updateOpportunityAccess;
1130 
1131 procedure validate_id_combination(p_security_id	IN NUMBER
1132         ,p_security_type        IN VARCHAR2
1133         ,p_person_party_id      IN NUMBER
1134 	,x_valid_flag    OUT NOCOPY VARCHAR2) is
1135 
1136 	cursor org_contact_exist_csr is
1137 		select 'x'
1138 		from hz_relationships
1139 		where subject_id = p_person_party_id
1140 		 and object_id = p_security_id
1141 		 and SUBJECT_TABLE_NAME = 'HZ_PARTIES'
1142 		 AND   OBJECT_TABLE_NAME = 'HZ_PARTIES';
1143 
1144 	cursor opp_contact_exist_csr is
1145 		select 'x'
1146 		from as_lead_contacts cont,
1147 		     hz_relationships rel
1148 		where cont.contact_party_id = rel.party_id
1149 		  and rel.subject_id = p_person_party_id
1150 		  and cont.lead_id = p_security_id
1151 		and SUBJECT_TABLE_NAME = 'HZ_PARTIES'
1152 		 AND   OBJECT_TABLE_NAME = 'HZ_PARTIES';
1153 	cursor lead_contact_exist_csr is
1154 		select 'x'
1155 		from as_sales_lead_contacts cont,
1156 		     hz_relationships rel
1157 		where cont.contact_party_id = rel.party_id
1158 		  and rel.subject_id = p_person_party_id
1159 		  and cont.sales_lead_id = p_security_id
1160 		and SUBJECT_TABLE_NAME = 'HZ_PARTIES'
1161 		 AND   OBJECT_TABLE_NAME = 'HZ_PARTIES';
1162 l_var varchar2(1);
1163 begin
1164 	x_valid_flag := 'Y';
1165 	if p_security_type = 'ORGANIZATION'
1166 	   and FND_PROFILE.Value('AS_CUST_ACCESS') <> 'F'
1167 	then
1168 		open org_contact_exist_csr;
1169 		fetch  org_contact_exist_csr into l_var;
1170 		if  org_contact_exist_csr%FOUND
1171 		then
1172 			x_valid_flag := 'Y';
1173 		else
1174 			x_valid_flag := 'N';
1175 
1176 		end if;
1177 		close org_contact_exist_csr;
1178 	elsif  p_security_type = 'OPPORTUNITY'
1179 		and FND_PROFILE.Value('AS_OPP_ACCESS') <> 'F'
1180 	then
1181 		open opp_contact_exist_csr;
1182 		fetch  opp_contact_exist_csr into l_var;
1183 		if  opp_contact_exist_csr%FOUND
1184 		then
1185 			x_valid_flag := 'Y';
1186 		else
1187 			x_valid_flag := 'N';
1188 
1189 		end if;
1190 		close opp_contact_exist_csr;
1191 	elsif  p_security_type = 'LEAD'
1192 		and FND_PROFILE.Value('AS_LEAD_ACCESS') <> 'F'
1193 	then
1194 		open lead_contact_exist_csr;
1195 		fetch  lead_contact_exist_csr into l_var;
1196 		if  lead_contact_exist_csr%FOUND
1197 		then
1198 			x_valid_flag := 'Y';
1199 		else
1200 			x_valid_flag := 'N';
1201 
1202 		end if;
1203 		close lead_contact_exist_csr;
1204 	elsif p_security_type is NULL -- for consumer, no validation needed
1205 	then
1206 		x_valid_flag := 'Y';
1207 	end if;
1208 end validate_id_combination;
1209 
1210 /*
1211 has_updatePersonAccess:
1212 p_security_id is the id which has relationship to the p_person_party_id.
1213 For example, to check access for contact person(1000) of opportunity (2222),
1214 you need to pass in p_security_id = 2222, p_security_type = 'OPPORTUNITY'
1215 and p_person_party_id = 1000
1216 values allowed for p_security_id are org party_id, opportunity_id,sales_lead_id
1217 and null.
1218 p_security_type allowed are 'ORGANIZATION', 'OPPORTUNITY','LEAD' and null
1219 p_person_party_id is person's party id. This id is required to check person's
1220 update access. To check consumer access, you can pass in null for
1221 p_security_id and p_security_type */
1222 procedure has_updatePersonAccess
1223 (	p_api_version_number	IN NUMBER
1224 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
1225 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
1226 	,p_access_profile_rec	IN access_profile_rec_type
1227 	,p_admin_flag		IN VARCHAR2
1228 	,p_admin_group_id	IN NUMBER
1229 	,p_person_id		IN NUMBER
1230 	,p_security_id		IN NUMBER
1231         ,p_security_type        IN VARCHAR2
1232         ,p_person_party_id      IN NUMBER
1233 	,p_check_access_flag      IN VARCHAR2
1234 	,p_identity_salesforce_id IN NUMBER
1235 	,p_partner_cont_party_id  IN NUMBER
1236 	,x_return_status	OUT NOCOPY VARCHAR2
1237 	,x_msg_count		OUT NOCOPY NUMBER
1238 	,x_msg_data		OUT NOCOPY VARCHAR2
1239 	,x_update_access_flag	OUT NOCOPY VARCHAR2
1240 ) is
1241 l_api_name            CONSTANT VARCHAR2(30) := 'has_updatePersonAccess';
1242 l_api_version_number  CONSTANT NUMBER       := 2.0;
1243 l_valid_flag varchar2(1);
1244 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1245 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_updatePersonAccess';
1246 
1247 begin
1248 
1249 		-- Standard call to check for call compatibility.
1250       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1251                                            p_api_version_number,
1252                                            l_api_name,
1253                                            G_PKG_NAME)
1254       THEN
1255           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1256       END IF;
1257 
1258       -- Initialize message list if p_init_msg_list is set to TRUE.
1259       IF FND_API.to_Boolean( p_init_msg_list )
1260       THEN
1261           FND_MSG_PUB.initialize;
1262       END IF;
1263 
1264       -- Debug Message
1265       IF l_debug THEN
1266       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1267                                    'Public API: ' || l_api_name || 'start');
1268 
1269       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1270                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1271       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1272                     'p_security_id: ' || p_security_id);
1273       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1274                     'p_security_type: ' || p_security_type);
1275       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1276                     'p_person_party_id: ' || p_person_party_id);
1277      END IF;
1278 
1279       -- Initialize API return status to SUCCESS
1280       x_return_status := FND_API.G_RET_STS_SUCCESS;
1281       x_update_access_flag := 'N';
1282 	 validate_id_combination(p_security_id => p_security_id
1283 				,p_security_type => p_security_type
1284 				,p_person_party_id => p_person_party_id
1285 				,x_valid_flag   => l_valid_flag);
1286 	IF l_debug THEN
1287 	AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1288                     'valid id flag: ' || l_valid_flag);
1289 	END IF;
1290 	if l_valid_flag = 'N'
1291 	then
1292 		x_update_access_flag := 'N';
1293 	else
1294 		if p_security_type = 'ORGANIZATION'
1295 		then
1296 			as_access_pvt.has_updateCustomerAccess
1297 			(p_api_version_number	=> 2.0
1298 			,p_init_msg_list        => FND_API.G_FALSE
1299 			,p_validation_level	=> p_validation_level
1300 			,p_access_profile_rec	=> p_access_profile_rec
1301 			,p_admin_flag		=> p_admin_flag
1302 			,p_admin_group_id	=> p_admin_group_id
1303 			,p_person_id		=> p_person_id
1304 			,p_customer_id   	=> p_security_id
1305 			,p_check_access_flag    => p_check_access_flag
1306 			,p_identity_salesforce_id =>p_identity_salesforce_id
1307 			,p_partner_cont_party_id  =>p_partner_cont_party_id
1308 			,x_return_status	  =>x_return_status
1309 			,x_msg_count		=> x_msg_count
1310 			,x_msg_data		=> x_msg_data
1311 			,x_update_access_flag	=> x_update_access_flag);
1312 
1313 			IF x_return_status = FND_API.G_RET_STS_ERROR then
1314 				raise FND_API.G_EXC_ERROR;
1315 			elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1316 				raise FND_API.G_EXC_UNEXPECTED_ERROR;
1317 			end if;
1318 		elsif p_security_type = 'OPPORTUNITY'
1319 		then
1320 			as_access_pvt.has_updateOpportunityAccess
1321 			(p_api_version_number	=> 2.0
1322 			,p_init_msg_list        => FND_API.G_FALSE
1323 			,p_validation_level	=> p_validation_level
1324 			,p_access_profile_rec	=> p_access_profile_rec
1325 			,p_admin_flag		=> p_admin_flag
1326 			,p_admin_group_id	=> p_admin_group_id
1327 			,p_person_id		=> p_person_id
1328 			,p_opportunity_id   	=> p_security_id
1329 			,p_check_access_flag    => p_check_access_flag
1330 			,p_identity_salesforce_id =>p_identity_salesforce_id
1331 			,p_partner_cont_party_id  =>p_partner_cont_party_id
1332 			,x_return_status	  =>x_return_status
1333 			,x_msg_count		=> x_msg_count
1334 			,x_msg_data		=> x_msg_data
1335 			,x_update_access_flag	=> x_update_access_flag);
1336 
1337 			IF x_return_status = FND_API.G_RET_STS_ERROR then
1338 				raise FND_API.G_EXC_ERROR;
1339 			elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1340 				raise FND_API.G_EXC_UNEXPECTED_ERROR;
1341 			end if;
1342 		elsif p_security_type = 'LEAD'
1343 		then
1344 			as_access_pvt.has_updateLeadAccess
1345 			(p_api_version_number	=> 2.0
1346 			,p_init_msg_list        => FND_API.G_FALSE
1347 			,p_validation_level	=> p_validation_level
1348 			,p_access_profile_rec	=> p_access_profile_rec
1349 			,p_admin_flag		=> p_admin_flag
1350 			,p_admin_group_id	=> p_admin_group_id
1351 			,p_person_id		=> p_person_id
1352 			,p_sales_lead_id   	=> p_security_id
1353 			,p_check_access_flag    => p_check_access_flag
1354 			,p_identity_salesforce_id =>p_identity_salesforce_id
1355 			,p_partner_cont_party_id  =>p_partner_cont_party_id
1356 			,x_return_status	  =>x_return_status
1357 			,x_msg_count		=> x_msg_count
1358 			,x_msg_data		=> x_msg_data
1359 			,x_update_access_flag	=> x_update_access_flag);
1360 
1361 			IF x_return_status = FND_API.G_RET_STS_ERROR then
1362 				raise FND_API.G_EXC_ERROR;
1363 			elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1364 				raise FND_API.G_EXC_UNEXPECTED_ERROR;
1365 			end if;
1366 		elsif p_security_type is null and p_security_id is null
1367 		then
1368 			as_access_pvt.has_updateCustomerAccess
1369 			(p_api_version_number	=> 2.0
1370 			,p_init_msg_list        => FND_API.G_FALSE
1371 			,p_validation_level	=> p_validation_level
1372 			,p_access_profile_rec	=> p_access_profile_rec
1373 			,p_admin_flag		=> p_admin_flag
1374 			,p_admin_group_id	=> p_admin_group_id
1375 			,p_person_id		=> p_person_id
1376 			,p_customer_id   	=> p_person_party_id
1377 			,p_check_access_flag    => p_check_access_flag
1378 			,p_identity_salesforce_id =>p_identity_salesforce_id
1379 			,p_partner_cont_party_id  =>p_partner_cont_party_id
1380 			,x_return_status	  =>x_return_status
1381 			,x_msg_count		=> x_msg_count
1382 			,x_msg_data		=> x_msg_data
1383 			,x_update_access_flag	=> x_update_access_flag);
1384 
1385 			IF x_return_status = FND_API.G_RET_STS_ERROR then
1386 				raise FND_API.G_EXC_ERROR;
1387 			elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1388 				raise FND_API.G_EXC_UNEXPECTED_ERROR;
1389 			end if;
1390 	       END IF; -- if p_security_type = 'ORGANIZATION'
1391 	end if; --if l_valid_flag = 'N'
1392 
1393       --
1394       -- End of API body.
1395       --
1396 
1397       -- Debug Message
1398       IF l_debug THEN
1399       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1400                                    'Public API: ' || l_api_name || 'end');
1401 
1402       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
1403                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1404       END IF;
1405 
1406 
1407       FND_MSG_PUB.Count_And_Get
1408       (  p_count          =>   x_msg_count,
1409          p_data           =>   x_msg_data
1410       );
1411 
1412       EXCEPTION
1413           WHEN FND_API.G_EXC_ERROR THEN
1414               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1415                    P_MODULE => l_module
1416                   ,P_API_NAME => L_API_NAME
1417                   ,P_PKG_NAME => G_PKG_NAME
1418                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1419                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1420 		  , P_ROLLBACK_FLAG  => 'N'
1421                   ,X_MSG_COUNT => X_MSG_COUNT
1422                   ,X_MSG_DATA => X_MSG_DATA
1423                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1424 
1425           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1426               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1427                    P_MODULE => l_module
1428                   ,P_API_NAME => L_API_NAME
1429                   ,P_PKG_NAME => G_PKG_NAME
1430                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1431                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1432 		  , P_ROLLBACK_FLAG  => 'N'
1433                   ,X_MSG_COUNT => X_MSG_COUNT
1434                   ,X_MSG_DATA => X_MSG_DATA
1435                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1436 
1437           WHEN OTHERS THEN
1438               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1439                    P_MODULE => l_module
1440                   ,P_API_NAME => L_API_NAME
1441                   ,P_PKG_NAME => G_PKG_NAME
1442                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
1443 		 ,P_SQLCODE => SQLCODE
1444 		   ,P_SQLERRM => SQLERRM
1445                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1446 		 , P_ROLLBACK_FLAG  => 'N'
1447                   ,X_MSG_COUNT => X_MSG_COUNT
1448                   ,X_MSG_DATA => X_MSG_DATA
1449                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1450 
1451 end has_updatePersonAccess;
1452 
1453 procedure has_viewPersonAccess
1454 (	p_api_version_number	IN NUMBER
1455 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
1456 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
1457 	,p_access_profile_rec	IN access_profile_rec_type
1458 	,p_admin_flag		IN VARCHAR2
1459 	,p_admin_group_id	IN NUMBER
1460 	,p_person_id		IN NUMBER
1461 	,p_security_id		IN NUMBER
1462         ,p_security_type        IN VARCHAR2
1463         ,p_person_party_id      IN NUMBER
1464 	,p_check_access_flag      IN VARCHAR2
1465 	,p_identity_salesforce_id IN NUMBER
1466 	,p_partner_cont_party_id  IN NUMBER
1467 	,x_return_status	OUT NOCOPY VARCHAR2
1468 	,x_msg_count		OUT NOCOPY NUMBER
1469 	,x_msg_data		OUT NOCOPY VARCHAR2
1470 	,x_view_access_flag	OUT NOCOPY VARCHAR2
1471 ) is
1472 l_api_name            CONSTANT VARCHAR2(30) := 'has_viewPersonAccess';
1473 l_api_version_number  CONSTANT NUMBER       := 2.0;
1474 l_valid_flag varchar2(1);
1475 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1476 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_viewPersonAccess';
1477 
1478 begin
1479 
1480 		-- Standard call to check for call compatibility.
1481       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1482                                            p_api_version_number,
1483                                            l_api_name,
1484                                            G_PKG_NAME)
1485       THEN
1486           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1487       END IF;
1488 
1489       -- Initialize message list if p_init_msg_list is set to TRUE.
1490       IF FND_API.to_Boolean( p_init_msg_list )
1491       THEN
1492           FND_MSG_PUB.initialize;
1493       END IF;
1494 
1495       -- Debug Message
1496       IF l_debug THEN
1497       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1498                                    'Public API: ' || l_api_name || 'start');
1499 
1500       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1501                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1502       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1503                     'p_security_id: ' || p_security_id);
1504 	AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1505                     'p_security_type: ' || p_security_type);
1506 	AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1507                     'p_person_party_id: ' || p_person_party_id);
1508      END IF;
1509 
1510       -- Initialize API return status to SUCCESS
1511       x_return_status := FND_API.G_RET_STS_SUCCESS;
1512       x_view_access_flag := 'N';
1513 	 validate_id_combination(p_security_id => p_security_id
1514 				,p_security_type => p_security_type
1515 				,p_person_party_id => p_person_party_id
1516 				,x_valid_flag   => l_valid_flag);
1517 	IF l_debug THEN
1518 	AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1519                     'valid id flag: ' || l_valid_flag);
1520 	END IF;
1521 
1522 	if l_valid_flag = 'N'
1523 	then
1524 		x_view_access_flag := 'N';
1525 	else
1526 		if p_security_type = 'ORGANIZATION'
1527 		then
1528 			as_access_pvt.has_viewCustomerAccess
1529 			(p_api_version_number	=> 2.0
1530 			,p_init_msg_list        => FND_API.G_FALSE
1531 			,p_validation_level	=> p_validation_level
1532 			,p_access_profile_rec	=> p_access_profile_rec
1533 			,p_admin_flag		=> p_admin_flag
1534 			,p_admin_group_id	=> p_admin_group_id
1535 			,p_person_id		=> p_person_id
1536 			,p_customer_id   	=> p_security_id
1537 			,p_check_access_flag    => p_check_access_flag
1538 			,p_identity_salesforce_id =>p_identity_salesforce_id
1539 			,p_partner_cont_party_id  =>p_partner_cont_party_id
1540 			,x_return_status	  =>x_return_status
1541 			,x_msg_count		=> x_msg_count
1542 			,x_msg_data		=> x_msg_data
1543 			,x_view_access_flag	=> x_view_access_flag);
1544 
1545 			IF x_return_status = FND_API.G_RET_STS_ERROR then
1546 				raise FND_API.G_EXC_ERROR;
1547 			elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1548 				raise FND_API.G_EXC_UNEXPECTED_ERROR;
1549 			end if;
1550 		elsif p_security_type = 'OPPORTUNITY'
1551 		then
1552 			as_access_pvt.has_viewOpportunityAccess
1553 			(p_api_version_number	=> 2.0
1554 			,p_init_msg_list        => FND_API.G_FALSE
1555 			,p_validation_level	=> p_validation_level
1556 			,p_access_profile_rec	=> p_access_profile_rec
1557 			,p_admin_flag		=> p_admin_flag
1558 			,p_admin_group_id	=> p_admin_group_id
1559 			,p_person_id		=> p_person_id
1560 			,p_opportunity_id   	=> p_security_id
1561 			,p_check_access_flag    => p_check_access_flag
1562 			,p_identity_salesforce_id =>p_identity_salesforce_id
1563 			,p_partner_cont_party_id  =>p_partner_cont_party_id
1564 			,x_return_status	  =>x_return_status
1565 			,x_msg_count		=> x_msg_count
1566 			,x_msg_data		=> x_msg_data
1567 			,x_view_access_flag	=> x_view_access_flag);
1568 
1569 			IF x_return_status = FND_API.G_RET_STS_ERROR then
1570 				raise FND_API.G_EXC_ERROR;
1571 			elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1572 				raise FND_API.G_EXC_UNEXPECTED_ERROR;
1573 			end if;
1574 		elsif p_security_type = 'LEAD'
1575 		then
1576 			as_access_pvt.has_viewLeadAccess
1577 			(p_api_version_number	=> 2.0
1578 			,p_init_msg_list        => FND_API.G_FALSE
1579 			,p_validation_level	=> p_validation_level
1580 			,p_access_profile_rec	=> p_access_profile_rec
1581 			,p_admin_flag		=> p_admin_flag
1582 			,p_admin_group_id	=> p_admin_group_id
1583 			,p_person_id		=> p_person_id
1584 			,p_sales_lead_id   	=> p_security_id
1585 			,p_check_access_flag    => p_check_access_flag
1586 			,p_identity_salesforce_id =>p_identity_salesforce_id
1587 			,p_partner_cont_party_id  =>p_partner_cont_party_id
1588 			,x_return_status	  =>x_return_status
1589 			,x_msg_count		=> x_msg_count
1590 			,x_msg_data		=> x_msg_data
1591 			,x_view_access_flag	=> x_view_access_flag);
1592 
1593 			IF x_return_status = FND_API.G_RET_STS_ERROR then
1594 				raise FND_API.G_EXC_ERROR;
1595 			elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1596 				raise FND_API.G_EXC_UNEXPECTED_ERROR;
1597 			end if;
1598 		elsif p_security_type is null and p_security_id is null
1599 		then
1600 			as_access_pvt.has_viewCustomerAccess
1601 			(p_api_version_number	=> 2.0
1602 			,p_init_msg_list        => FND_API.G_FALSE
1603 			,p_validation_level	=> p_validation_level
1604 			,p_access_profile_rec	=> p_access_profile_rec
1605 			,p_admin_flag		=> p_admin_flag
1606 			,p_admin_group_id	=> p_admin_group_id
1607 			,p_person_id		=> p_person_id
1608 			,p_customer_id   	=> p_person_party_id
1609 			,p_check_access_flag    => p_check_access_flag
1610 			,p_identity_salesforce_id =>p_identity_salesforce_id
1611 			,p_partner_cont_party_id  =>p_partner_cont_party_id
1612 			,x_return_status	  =>x_return_status
1613 			,x_msg_count		=> x_msg_count
1614 			,x_msg_data		=> x_msg_data
1615 			,x_view_access_flag	=> x_view_access_flag);
1616 
1617 			IF x_return_status = FND_API.G_RET_STS_ERROR then
1618 				raise FND_API.G_EXC_ERROR;
1619 			elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1620 				raise FND_API.G_EXC_UNEXPECTED_ERROR;
1621 			end if;
1622 	       END IF; -- if p_security_type = 'ORGANIZATION'
1623 	end if; --if l_valid_flag = 'N'
1624 
1625       --
1626       -- End of API body.
1627       --
1628 
1629       -- Debug Message
1630       IF l_debug THEN
1631       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1632                                    'Public API: ' || l_api_name || 'end');
1633 
1634       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
1635                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1636       END IF;
1637 
1638 
1639       FND_MSG_PUB.Count_And_Get
1640       (  p_count          =>   x_msg_count,
1641          p_data           =>   x_msg_data
1642       );
1643 
1644       EXCEPTION
1645           WHEN FND_API.G_EXC_ERROR THEN
1646               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1647                    P_MODULE => l_module
1648                   ,P_API_NAME => L_API_NAME
1649                   ,P_PKG_NAME => G_PKG_NAME
1650                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1651                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1652 		  , P_ROLLBACK_FLAG  => 'N'
1653                   ,X_MSG_COUNT => X_MSG_COUNT
1654                   ,X_MSG_DATA => X_MSG_DATA
1655                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1656 
1657           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1658               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1659                    P_MODULE => l_module
1660                   ,P_API_NAME => L_API_NAME
1661                   ,P_PKG_NAME => G_PKG_NAME
1662                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1663                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1664 		  , P_ROLLBACK_FLAG  => 'N'
1665                   ,X_MSG_COUNT => X_MSG_COUNT
1666                   ,X_MSG_DATA => X_MSG_DATA
1667                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1668 
1669           WHEN OTHERS THEN
1670               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1671                    P_MODULE => l_module
1672                   ,P_API_NAME => L_API_NAME
1673                   ,P_PKG_NAME => G_PKG_NAME
1674                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
1675 		 ,P_SQLCODE => SQLCODE
1676 		   ,P_SQLERRM => SQLERRM
1677                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1678 		 , P_ROLLBACK_FLAG  => 'N'
1679                   ,X_MSG_COUNT => X_MSG_COUNT
1680                   ,X_MSG_DATA => X_MSG_DATA
1681                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1682 
1683 end has_viewPersonAccess;
1684 
1685 
1686 procedure has_viewLeadAccess
1687 (	p_api_version_number	IN NUMBER
1688 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
1689 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
1690 	,p_access_profile_rec	IN access_profile_rec_type
1691 	,p_admin_flag		IN VARCHAR2
1692 	,p_admin_group_id	IN NUMBER
1693 	,p_person_id		IN NUMBER
1694 	,p_sales_lead_id		IN NUMBER
1695 	,p_check_access_flag       IN VARCHAR2
1696 	,p_identity_salesforce_id  IN NUMBER
1697 	,p_partner_cont_party_id   IN NUMBER
1698 	,x_return_status	OUT NOCOPY VARCHAR2
1699 	,x_msg_count		OUT NOCOPY NUMBER
1700 	,x_msg_data		OUT NOCOPY VARCHAR2
1701 	,x_view_access_flag	OUT NOCOPY VARCHAR2
1702 ) is
1703 l_api_name            CONSTANT VARCHAR2(30) := 'has_viewLeadAccess';
1704 l_api_version_number  CONSTANT NUMBER       := 2.0;
1705 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1706 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_viewLeadAccess';
1707 
1708 begin
1709 	-- Standard call to check for call compatibility.
1710       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1711                                            p_api_version_number,
1712                                            l_api_name,
1713                                            G_PKG_NAME)
1714       THEN
1715           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1716       END IF;
1717 
1718       -- Initialize message list if p_init_msg_list is set to TRUE.
1719       IF FND_API.to_Boolean( p_init_msg_list )
1720       THEN
1721           FND_MSG_PUB.initialize;
1722       END IF;
1723 
1724       -- Debug Message
1725       IF l_debug THEN
1726       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1727                                    'Public API: ' || l_api_name || 'start');
1728 
1729       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1730                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1731       END IF;
1732 
1733       -- Initialize API return status to SUCCESS
1734       x_return_status := FND_API.G_RET_STS_SUCCESS;
1735 
1736 
1737       IF l_debug THEN
1738       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1739                    'Public API: Calling as_access_pvt.has_viewLeadAccess');
1740       END IF;
1741 
1742 
1743 	as_access_pvt.has_viewLeadAccess
1744 	(p_api_version_number	=> 2.0
1745 	,p_init_msg_list        => FND_API.G_FALSE
1746 	,p_validation_level	=> p_validation_level
1747 	,p_access_profile_rec	=> p_access_profile_rec
1748 	,p_admin_flag		=> p_admin_flag
1749 	,p_admin_group_id	=> p_admin_group_id
1750 	,p_person_id		=> p_person_id
1751 	,p_sales_lead_id	=> p_sales_lead_id
1752 	,p_check_access_flag    => p_check_access_flag
1753 	,p_identity_salesforce_id =>p_identity_salesforce_id
1754 	,p_partner_cont_party_id  =>p_partner_cont_party_id
1755 	,x_return_status	  =>x_return_status
1756 	,x_msg_count		=> x_msg_count
1757 	,x_msg_data		=> x_msg_data
1758 	,x_view_access_flag	=> x_view_access_flag);
1759 
1760         IF x_return_status = FND_API.G_RET_STS_ERROR then
1761                 raise FND_API.G_EXC_ERROR;
1762       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1763                raise FND_API.G_EXC_UNEXPECTED_ERROR;
1764       END IF;
1765 
1766 
1767       --
1768       -- End of API body.
1769       --
1770 
1771       -- Debug Message
1772       IF l_debug THEN
1773       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1774                                    'Public API: ' || l_api_name || 'end');
1775 
1776       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
1777                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1778       END IF;
1779 
1780 
1781       FND_MSG_PUB.Count_And_Get
1782       (  p_count          =>   x_msg_count,
1783          p_data           =>   x_msg_data
1784       );
1785 
1786       EXCEPTION
1787           WHEN FND_API.G_EXC_ERROR THEN
1788               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1789                    P_MODULE => l_module
1790                   ,P_API_NAME => L_API_NAME
1791                   ,P_PKG_NAME => G_PKG_NAME
1792                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1793                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1794 		  , P_ROLLBACK_FLAG  => 'N'
1795                   ,X_MSG_COUNT => X_MSG_COUNT
1796                   ,X_MSG_DATA => X_MSG_DATA
1797                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1798 
1799           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1800               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1801                    P_MODULE => l_module
1802                   ,P_API_NAME => L_API_NAME
1803                   ,P_PKG_NAME => G_PKG_NAME
1804                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1805                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1806 		  , P_ROLLBACK_FLAG  => 'N'
1807                   ,X_MSG_COUNT => X_MSG_COUNT
1808                   ,X_MSG_DATA => X_MSG_DATA
1809                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1810 
1811           WHEN OTHERS THEN
1812               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1813                    P_MODULE => l_module
1814                   ,P_API_NAME => L_API_NAME
1815                   ,P_PKG_NAME => G_PKG_NAME
1816                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
1817 		 ,P_SQLCODE => SQLCODE
1818 		   ,P_SQLERRM => SQLERRM
1819                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1820 		 , P_ROLLBACK_FLAG  => 'N'
1821                   ,X_MSG_COUNT => X_MSG_COUNT
1822                   ,X_MSG_DATA => X_MSG_DATA
1823                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1824 
1825 
1826 end has_viewLeadAccess;
1827 
1828 procedure has_viewOpportunityAccess
1829 (	p_api_version_number	IN NUMBER
1830 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
1831 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
1832 	,p_access_profile_rec	IN access_profile_rec_type
1833 	,p_admin_flag		IN VARCHAR2
1834 	,p_admin_group_id	IN NUMBER
1835 	,p_person_id		IN NUMBER
1836 	,p_opportunity_id	IN NUMBER
1837 	,p_check_access_flag       IN VARCHAR2
1838 	,p_identity_salesforce_id  IN NUMBER
1839 	,p_partner_cont_party_id   IN NUMBER
1840 	,x_return_status	OUT NOCOPY VARCHAR2
1841 	,x_msg_count		OUT NOCOPY NUMBER
1842 	,x_msg_data		OUT NOCOPY VARCHAR2
1843 	,x_view_access_flag	OUT NOCOPY VARCHAR2
1844 ) is
1845 l_api_name            CONSTANT VARCHAR2(30) := 'has_viewOpportunityAccess';
1846 l_api_version_number  CONSTANT NUMBER       := 2.0;
1847 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1848 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_viewOpportunityAccess';
1849 
1850 begin
1851 
1852 		-- Standard call to check for call compatibility.
1853       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1854                                            p_api_version_number,
1855                                            l_api_name,
1856                                            G_PKG_NAME)
1857       THEN
1858           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1859       END IF;
1860 
1861       -- Initialize message list if p_init_msg_list is set to TRUE.
1862       IF FND_API.to_Boolean( p_init_msg_list )
1863       THEN
1864           FND_MSG_PUB.initialize;
1865       END IF;
1866 
1867       -- Debug Message
1868       IF l_debug THEN
1869       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1870                                    'Public API: ' || l_api_name || 'start');
1871 
1872       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1873                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1874       END IF;
1875 
1876       -- Initialize API return status to SUCCESS
1877       x_return_status := FND_API.G_RET_STS_SUCCESS;
1878 
1879 
1880       IF l_debug THEN
1881       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1882                    'Public API: Calling as_access_pvt.has_viewOpportunityAccess');
1883       END IF;
1884 
1885 
1886 	as_access_pvt.has_viewOpportunityAccess
1887 	(p_api_version_number	=> 2.0
1888 	,p_init_msg_list        => FND_API.G_FALSE
1889 	,p_validation_level	=> p_validation_level
1890 	,p_access_profile_rec	=> p_access_profile_rec
1891 	,p_admin_flag		=> p_admin_flag
1892 	,p_admin_group_id	=> p_admin_group_id
1893 	,p_person_id		=> p_person_id
1894 	,p_opportunity_id	=> p_opportunity_id
1895 	,p_check_access_flag    => p_check_access_flag
1896 	,p_identity_salesforce_id =>p_identity_salesforce_id
1897 	,p_partner_cont_party_id  =>p_partner_cont_party_id
1898 	,x_return_status	  =>x_return_status
1899 	,x_msg_count		=> x_msg_count
1900 	,x_msg_data		=> x_msg_data
1901 	,x_view_access_flag	=> x_view_access_flag);
1902 
1903         IF x_return_status = FND_API.G_RET_STS_ERROR then
1904                 raise FND_API.G_EXC_ERROR;
1905       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
1906                raise FND_API.G_EXC_UNEXPECTED_ERROR;
1907       END IF;
1908 
1909 
1910       --
1911       -- End of API body.
1912       --
1913 
1914       -- Debug Message
1915       IF l_debug THEN
1916       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
1917                                    'Public API: ' || l_api_name || 'end');
1918 
1919       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
1920                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
1921       END IF;
1922 
1923 
1924       FND_MSG_PUB.Count_And_Get
1925       (  p_count          =>   x_msg_count,
1926          p_data           =>   x_msg_data
1927       );
1928 
1929       EXCEPTION
1930           WHEN FND_API.G_EXC_ERROR THEN
1931               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1932                    P_MODULE => l_module
1933                   ,P_API_NAME => L_API_NAME
1934                   ,P_PKG_NAME => G_PKG_NAME
1935                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1936                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1937 		  , P_ROLLBACK_FLAG  => 'N'
1938                   ,X_MSG_COUNT => X_MSG_COUNT
1939                   ,X_MSG_DATA => X_MSG_DATA
1940                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1941 
1942           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1943               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1944                    P_MODULE => l_module
1945                   ,P_API_NAME => L_API_NAME
1946                   ,P_PKG_NAME => G_PKG_NAME
1947                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1948                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1949 		  , P_ROLLBACK_FLAG  => 'N'
1950                   ,X_MSG_COUNT => X_MSG_COUNT
1951                   ,X_MSG_DATA => X_MSG_DATA
1952                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1953 
1954           WHEN OTHERS THEN
1955               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1956                    P_MODULE => l_module
1957                   ,P_API_NAME => L_API_NAME
1958                   ,P_PKG_NAME => G_PKG_NAME
1959                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
1960 		 ,P_SQLCODE => SQLCODE
1961 		   ,P_SQLERRM => SQLERRM
1962                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
1963 		 , P_ROLLBACK_FLAG  => 'N'
1964                   ,X_MSG_COUNT => X_MSG_COUNT
1965                   ,X_MSG_DATA => X_MSG_DATA
1966                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1967 
1968 end has_viewOpportunityAccess;
1969 
1970 /*
1971  This API is used for checking if login user has access for the pass in
1972 organization party id. x_access_privilege might return one of the following
1973 three values: 'N'(no access), 'R'(read only access) and 'F'(read/update access)
1974 */
1975 
1976 procedure has_organizationAccess
1977 (	p_api_version_number	IN NUMBER
1978 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
1979 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
1980 	,p_access_profile_rec	IN access_profile_rec_type
1981 	,p_admin_flag		IN VARCHAR2
1982 	,p_admin_group_id	IN NUMBER
1983 	,p_person_id		IN NUMBER
1984 	,p_customer_id		IN NUMBER
1985 	,p_check_access_flag      IN VARCHAR2
1986 	,p_identity_salesforce_id IN NUMBER
1987 	,p_partner_cont_party_id  IN NUMBER
1988 	,x_return_status	OUT NOCOPY VARCHAR2
1989 	,x_msg_count		OUT NOCOPY NUMBER
1990 	,x_msg_data		OUT NOCOPY VARCHAR2
1991 	,x_access_privilege	OUT NOCOPY VARCHAR2
1992 ) is
1993 l_api_name            CONSTANT VARCHAR2(30) := 'has_organizationAccess';
1994 l_api_version_number  CONSTANT NUMBER       := 2.0;
1995 l_view_access_flag varchar2(1);
1996 l_update_access_flag varchar2(1);
1997 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
1998 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_organizationAccess';
1999 
2000 begin
2001 	-- Standard call to check for call compatibility.
2002  IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2003                                            p_api_version_number,
2004                                            l_api_name,
2005                                            G_PKG_NAME)
2006       THEN
2007           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2008       END IF;
2009 
2010       -- Initialize message list if p_init_msg_list is set to TRUE.
2011       IF FND_API.to_Boolean( p_init_msg_list )
2012       THEN
2013           FND_MSG_PUB.initialize;
2014       END IF;
2015 
2016       -- Debug Message
2017       IF l_debug THEN
2018       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2019                                    'Public API: ' || l_api_name || 'start');
2020 
2021       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2022                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
2023       END IF;
2024 
2025       -- Initialize API return status to SUCCESS
2026       x_return_status := FND_API.G_RET_STS_SUCCESS;
2027 
2028       IF l_debug THEN
2029       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2030                    'Public API: Calling as_access_pvt.has_viewCustomerAccess');
2031       END IF;
2032 
2033 	x_access_privilege := 'N';
2034 	as_access_pvt.has_viewCustomerAccess
2035 	(p_api_version_number	=> 2.0
2036 	,p_init_msg_list        => FND_API.G_FALSE
2037 	,p_validation_level	=> p_validation_level
2038 	,p_access_profile_rec	=> p_access_profile_rec
2039 	,p_admin_flag		=> p_admin_flag
2040 	,p_admin_group_id	=> p_admin_group_id
2041 	,p_person_id		=> p_person_id
2042 	,p_customer_id		=> p_customer_id
2043 	,p_check_access_flag    => p_check_access_flag
2044 	,p_identity_salesforce_id =>p_identity_salesforce_id
2045 	,p_partner_cont_party_id  =>p_partner_cont_party_id
2046 	,x_return_status	  =>x_return_status
2047 	,x_msg_count		=> x_msg_count
2048 	,x_msg_data		=> x_msg_data
2049 	,x_view_access_flag	=> l_view_access_flag);
2050 
2051       IF x_return_status = FND_API.G_RET_STS_ERROR then
2052                 raise FND_API.G_EXC_ERROR;
2053       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2054                raise FND_API.G_EXC_UNEXPECTED_ERROR;
2055       END IF;
2056 
2057 	if l_view_access_flag = 'Y'
2058 	then
2059 		x_access_privilege := 'R';
2060 		as_access_pvt.has_updateCustomerAccess
2061 		(p_api_version_number	=> 2.0
2062 		,p_init_msg_list        => FND_API.G_FALSE
2063 		,p_validation_level	=> p_validation_level
2064 		,p_access_profile_rec	=> p_access_profile_rec
2065 		,p_admin_flag		=> p_admin_flag
2066 		,p_admin_group_id	=> p_admin_group_id
2067 		,p_person_id		=> p_person_id
2068 		,p_customer_id		=> p_customer_id
2069 		,p_check_access_flag    => p_check_access_flag
2070 		,p_identity_salesforce_id =>p_identity_salesforce_id
2071 		,p_partner_cont_party_id  =>p_partner_cont_party_id
2072 		,x_return_status	  =>x_return_status
2073 		,x_msg_count		=> x_msg_count
2074 		,x_msg_data		=> x_msg_data
2075 		,x_update_access_flag	=> l_update_access_flag);
2076 
2077 		IF x_return_status = FND_API.G_RET_STS_ERROR then
2078 			raise FND_API.G_EXC_ERROR;
2079 		elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2080 			raise FND_API.G_EXC_UNEXPECTED_ERROR;
2081 		END IF;
2082 
2083 		if l_update_access_flag = 'Y'
2084 		then
2085 			x_access_privilege := 'F';
2086 		end if;
2087 	end if; -- l_view_access_flag = 'Y'
2088 
2089       --
2090       -- End of API body.
2091       --
2092 
2093       -- Debug Message
2094       IF l_debug THEN
2095       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2096                                    'Public API: ' || l_api_name || 'end');
2097 
2098       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
2099                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
2100       END IF;
2101 
2102 
2103       FND_MSG_PUB.Count_And_Get
2104       (  p_count          =>   x_msg_count,
2105          p_data           =>   x_msg_data
2106       );
2107 
2108       EXCEPTION
2109           WHEN FND_API.G_EXC_ERROR THEN
2110               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2111                    P_MODULE => l_module
2112                   ,P_API_NAME => L_API_NAME
2113                   ,P_PKG_NAME => G_PKG_NAME
2114                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
2115                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2116 		  , P_ROLLBACK_FLAG  => 'N'
2117                   ,X_MSG_COUNT => X_MSG_COUNT
2118                   ,X_MSG_DATA => X_MSG_DATA
2119                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2120 
2121           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2122               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2123                    P_MODULE => l_module
2124                   ,P_API_NAME => L_API_NAME
2125                   ,P_PKG_NAME => G_PKG_NAME
2126                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
2127                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2128 		  , P_ROLLBACK_FLAG  => 'N'
2129                   ,X_MSG_COUNT => X_MSG_COUNT
2130                   ,X_MSG_DATA => X_MSG_DATA
2131                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2132 
2133           WHEN OTHERS THEN
2134               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2135                    P_MODULE => l_module
2136                   ,P_API_NAME => L_API_NAME
2137                   ,P_PKG_NAME => G_PKG_NAME
2138                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
2139 		 ,P_SQLCODE => SQLCODE
2140 		   ,P_SQLERRM => SQLERRM
2141                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2142 		 , P_ROLLBACK_FLAG  => 'N'
2143                   ,X_MSG_COUNT => X_MSG_COUNT
2144                   ,X_MSG_DATA => X_MSG_DATA
2145                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2146 
2147 
2148 end has_organizationAccess ;
2149 
2150 procedure has_opportunityAccess
2151 (	p_api_version_number	IN NUMBER
2152 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
2153 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
2154 	,p_access_profile_rec	IN access_profile_rec_type
2155 	,p_admin_flag		IN VARCHAR2
2156 	,p_admin_group_id	IN NUMBER
2157 	,p_person_id		IN NUMBER
2158 	,p_opportunity_id	IN NUMBER
2159 	,p_check_access_flag      IN VARCHAR2
2160 	,p_identity_salesforce_id IN NUMBER
2161 	,p_partner_cont_party_id  IN NUMBER
2162 	,x_return_status	OUT NOCOPY VARCHAR2
2163 	,x_msg_count		OUT NOCOPY NUMBER
2164 	,x_msg_data		OUT NOCOPY VARCHAR2
2165 	,x_access_privilege	OUT NOCOPY VARCHAR2
2166 ) is
2167 l_api_name            CONSTANT VARCHAR2(30) := 'has_opportunityAccess';
2168 l_api_version_number  CONSTANT NUMBER       := 2.0;
2169 l_view_access_flag varchar2(1);
2170 l_update_access_flag varchar2(1);
2171 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
2172 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_opportunityAccess';
2173 
2174 begin
2175 	-- Standard call to check for call compatibility.
2176  IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2177                                            p_api_version_number,
2178                                            l_api_name,
2179                                            G_PKG_NAME)
2180       THEN
2181           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2182       END IF;
2183 
2184       -- Initialize message list if p_init_msg_list is set to TRUE.
2185       IF FND_API.to_Boolean( p_init_msg_list )
2186       THEN
2187           FND_MSG_PUB.initialize;
2188       END IF;
2189 
2190       -- Debug Message
2191       IF l_debug THEN
2192       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2193                                    'Public API: ' || l_api_name || 'start');
2194 
2195       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2196                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
2197       END IF;
2198 
2199       -- Initialize API return status to SUCCESS
2200       x_return_status := FND_API.G_RET_STS_SUCCESS;
2201 
2202       IF l_debug THEN
2203       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2204                    'Public API: Calling as_access_pvt.has_viewCustomerAccess');
2205       END IF;
2206 
2207 	x_access_privilege := 'N';
2208 	as_access_pvt.has_viewOpportunityAccess
2209 	(p_api_version_number	=> 2.0
2210 	,p_init_msg_list        => FND_API.G_FALSE
2211 	,p_validation_level	=> p_validation_level
2212 	,p_access_profile_rec	=> p_access_profile_rec
2213 	,p_admin_flag		=> p_admin_flag
2214 	,p_admin_group_id	=> p_admin_group_id
2215 	,p_person_id		=> p_person_id
2216 	,p_opportunity_id	=> p_opportunity_id
2217 	,p_check_access_flag    => p_check_access_flag
2218 	,p_identity_salesforce_id =>p_identity_salesforce_id
2219 	,p_partner_cont_party_id  =>p_partner_cont_party_id
2220 	,x_return_status	  =>x_return_status
2221 	,x_msg_count		=> x_msg_count
2222 	,x_msg_data		=> x_msg_data
2223 	,x_view_access_flag	=> l_view_access_flag);
2224 
2225       IF x_return_status = FND_API.G_RET_STS_ERROR then
2226                 raise FND_API.G_EXC_ERROR;
2227       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2228                raise FND_API.G_EXC_UNEXPECTED_ERROR;
2229       END IF;
2230 
2231 	if l_view_access_flag = 'Y'
2232 	then
2233 		x_access_privilege := 'R';
2234 		as_access_pvt.has_updateOpportunityAccess
2235 		(p_api_version_number	=> 2.0
2236 		,p_init_msg_list        => FND_API.G_FALSE
2237 		,p_validation_level	=> p_validation_level
2238 		,p_access_profile_rec	=> p_access_profile_rec
2239 		,p_admin_flag		=> p_admin_flag
2240 		,p_admin_group_id	=> p_admin_group_id
2241 		,p_person_id		=> p_person_id
2242 		,p_opportunity_id	=> p_opportunity_id
2243 		,p_check_access_flag    => p_check_access_flag
2244 		,p_identity_salesforce_id =>p_identity_salesforce_id
2245 		,p_partner_cont_party_id  =>p_partner_cont_party_id
2246 		,x_return_status	  =>x_return_status
2247 		,x_msg_count		=> x_msg_count
2248 		,x_msg_data		=> x_msg_data
2249 		,x_update_access_flag	=> l_update_access_flag);
2250 
2251 		IF x_return_status = FND_API.G_RET_STS_ERROR then
2252 			raise FND_API.G_EXC_ERROR;
2253 		elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2254 			raise FND_API.G_EXC_UNEXPECTED_ERROR;
2255 		END IF;
2256 
2257 		if l_update_access_flag = 'Y'
2258 		then
2259 			x_access_privilege := 'F';
2260 		end if;
2261 	end if; -- l_view_access_flag = 'Y'
2262 
2263       --
2264       -- End of API body.
2265       --
2266 
2267       -- Debug Message
2268       IF l_debug THEN
2269       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2270                                    'Public API: ' || l_api_name || 'end');
2271 
2272       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
2273                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
2274       END IF;
2275 
2276 
2277       FND_MSG_PUB.Count_And_Get
2278       (  p_count          =>   x_msg_count,
2279          p_data           =>   x_msg_data
2280       );
2281 
2282       EXCEPTION
2283           WHEN FND_API.G_EXC_ERROR THEN
2284               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2285                    P_MODULE => l_module
2286                   ,P_API_NAME => L_API_NAME
2287                   ,P_PKG_NAME => G_PKG_NAME
2288                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
2289                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2290 		  , P_ROLLBACK_FLAG  => 'N'
2291                   ,X_MSG_COUNT => X_MSG_COUNT
2292                   ,X_MSG_DATA => X_MSG_DATA
2293                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2294 
2295           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2296               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2297                    P_MODULE => l_module
2298                   ,P_API_NAME => L_API_NAME
2299                   ,P_PKG_NAME => G_PKG_NAME
2300                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
2301                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2302 		  , P_ROLLBACK_FLAG  => 'N'
2303                   ,X_MSG_COUNT => X_MSG_COUNT
2304                   ,X_MSG_DATA => X_MSG_DATA
2305                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2306 
2307           WHEN OTHERS THEN
2308               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2309                    P_MODULE => l_module
2310                   ,P_API_NAME => L_API_NAME
2311                   ,P_PKG_NAME => G_PKG_NAME
2312                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
2313 		 ,P_SQLCODE => SQLCODE
2314 		   ,P_SQLERRM => SQLERRM
2315                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2316 		 , P_ROLLBACK_FLAG  => 'N'
2317                   ,X_MSG_COUNT => X_MSG_COUNT
2318                   ,X_MSG_DATA => X_MSG_DATA
2319                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2320 
2321 
2322 end has_opportunityAccess ;
2323 
2324 procedure has_leadAccess
2325 (	p_api_version_number	IN NUMBER
2326 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
2327 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
2328 	,p_access_profile_rec	IN access_profile_rec_type
2329 	,p_admin_flag		IN VARCHAR2
2330 	,p_admin_group_id	IN NUMBER
2331 	,p_person_id		IN NUMBER
2332 	,p_sales_lead_id	IN NUMBER
2333 	,p_check_access_flag      IN VARCHAR2
2334 	,p_identity_salesforce_id IN NUMBER
2335 	,p_partner_cont_party_id  IN NUMBER
2336 	,x_return_status	OUT NOCOPY VARCHAR2
2337 	,x_msg_count		OUT NOCOPY NUMBER
2338 	,x_msg_data		OUT NOCOPY VARCHAR2
2339 	,x_access_privilege	OUT NOCOPY VARCHAR2
2340 ) is
2341 l_api_name            CONSTANT VARCHAR2(30) := 'has_leadAccess';
2342 l_api_version_number  CONSTANT NUMBER       := 2.0;
2343 l_view_access_flag varchar2(1);
2344 l_update_access_flag varchar2(1);
2345 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
2346 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_leadAccess';
2347 
2348 begin
2349 	-- Standard call to check for call compatibility.
2350  IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2351                                            p_api_version_number,
2352                                            l_api_name,
2353                                            G_PKG_NAME)
2354       THEN
2355           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2356       END IF;
2357 
2358       -- Initialize message list if p_init_msg_list is set to TRUE.
2359       IF FND_API.to_Boolean( p_init_msg_list )
2360       THEN
2361           FND_MSG_PUB.initialize;
2362       END IF;
2363 
2364       -- Debug Message
2365       IF l_debug THEN
2366       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2367                                    'Public API: ' || l_api_name || 'start');
2368 
2369       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2370                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
2371       END IF;
2372 
2373       -- Initialize API return status to SUCCESS
2374       x_return_status := FND_API.G_RET_STS_SUCCESS;
2375 
2376       IF l_debug THEN
2377       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2378                    'Public API: Calling as_access_pvt.has_viewCustomerAccess');
2379       END IF;
2380 
2381 	x_access_privilege := 'N';
2382 	as_access_pvt.has_viewLeadAccess
2383 	(p_api_version_number	=> 2.0
2384 	,p_init_msg_list        => FND_API.G_FALSE
2385 	,p_validation_level	=> p_validation_level
2386 	,p_access_profile_rec	=> p_access_profile_rec
2387 	,p_admin_flag		=> p_admin_flag
2388 	,p_admin_group_id	=> p_admin_group_id
2389 	,p_person_id		=> p_person_id
2390 	,p_sales_lead_id	=> p_sales_lead_id
2391 	,p_check_access_flag    => p_check_access_flag
2392 	,p_identity_salesforce_id =>p_identity_salesforce_id
2393 	,p_partner_cont_party_id  =>p_partner_cont_party_id
2394 	,x_return_status	  =>x_return_status
2395 	,x_msg_count		=> x_msg_count
2396 	,x_msg_data		=> x_msg_data
2397 	,x_view_access_flag	=> l_view_access_flag);
2398 
2399       IF x_return_status = FND_API.G_RET_STS_ERROR then
2400                 raise FND_API.G_EXC_ERROR;
2401       elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2402                raise FND_API.G_EXC_UNEXPECTED_ERROR;
2403       END IF;
2404 
2405 	if l_view_access_flag = 'Y'
2406 	then
2407 		x_access_privilege := 'R';
2408 		as_access_pvt.has_updateLeadAccess
2409 		(p_api_version_number	=> 2.0
2410 		,p_init_msg_list        => FND_API.G_FALSE
2411 		,p_validation_level	=> p_validation_level
2412 		,p_access_profile_rec	=> p_access_profile_rec
2413 		,p_admin_flag		=> p_admin_flag
2414 		,p_admin_group_id	=> p_admin_group_id
2415 		,p_person_id		=> p_person_id
2416 		,p_sales_lead_id	=> p_sales_lead_id
2417 		,p_check_access_flag    => p_check_access_flag
2418 		,p_identity_salesforce_id =>p_identity_salesforce_id
2419 		,p_partner_cont_party_id  =>p_partner_cont_party_id
2420 		,x_return_status	  =>x_return_status
2421 		,x_msg_count		=> x_msg_count
2422 		,x_msg_data		=> x_msg_data
2423 		,x_update_access_flag	=> l_update_access_flag);
2424 
2425 		IF x_return_status = FND_API.G_RET_STS_ERROR then
2426 			raise FND_API.G_EXC_ERROR;
2427 		elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2428 			raise FND_API.G_EXC_UNEXPECTED_ERROR;
2429 		END IF;
2430 
2431 		if l_update_access_flag = 'Y'
2432 		then
2433 			x_access_privilege := 'F';
2434 		end if;
2435 	end if; -- l_view_access_flag = 'Y'
2436 
2437       --
2438       -- End of API body.
2439       --
2440 
2441       -- Debug Message
2442       IF l_debug THEN
2443       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2444                                    'Public API: ' || l_api_name || 'end');
2445 
2446       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
2447                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
2448       END IF;
2449 
2450 
2451       FND_MSG_PUB.Count_And_Get
2452       (  p_count          =>   x_msg_count,
2453          p_data           =>   x_msg_data
2454       );
2455 
2456       EXCEPTION
2457           WHEN FND_API.G_EXC_ERROR THEN
2458               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2459                    P_MODULE => l_module
2460                   ,P_API_NAME => L_API_NAME
2461                   ,P_PKG_NAME => G_PKG_NAME
2462                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
2463                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2464 		  , P_ROLLBACK_FLAG  => 'N'
2465                   ,X_MSG_COUNT => X_MSG_COUNT
2466                   ,X_MSG_DATA => X_MSG_DATA
2467                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2468 
2469           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2470               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2471                    P_MODULE => l_module
2472                   ,P_API_NAME => L_API_NAME
2473                   ,P_PKG_NAME => G_PKG_NAME
2474                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
2475                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2476 		  , P_ROLLBACK_FLAG  => 'N'
2477                   ,X_MSG_COUNT => X_MSG_COUNT
2478                   ,X_MSG_DATA => X_MSG_DATA
2479                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2480 
2481           WHEN OTHERS THEN
2482               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2483                    P_MODULE => l_module
2484                   ,P_API_NAME => L_API_NAME
2485                   ,P_PKG_NAME => G_PKG_NAME
2486                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
2487 		 ,P_SQLCODE => SQLCODE
2488 		   ,P_SQLERRM => SQLERRM
2489                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2490 		 , P_ROLLBACK_FLAG  => 'N'
2491                   ,X_MSG_COUNT => X_MSG_COUNT
2492                   ,X_MSG_DATA => X_MSG_DATA
2493                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2494 
2495 
2496 end has_leadAccess ;
2497 
2498 procedure has_personAccess
2499 (	p_api_version_number	IN NUMBER
2500 	,p_init_msg_list        IN VARCHAR2	DEFAULT  FND_API.G_FALSE
2501 	,p_validation_level	IN NUMBER	DEFAULT  FND_API.G_VALID_LEVEL_FULL
2502 	,p_access_profile_rec	IN access_profile_rec_type
2503 	,p_admin_flag		IN VARCHAR2
2504 	,p_admin_group_id	IN NUMBER
2505 	,p_person_id		IN NUMBER
2506 	,p_security_id		IN NUMBER
2507         ,p_security_type        IN VARCHAR2
2508         ,p_person_party_id      IN NUMBER
2509 	,p_check_access_flag      IN VARCHAR2
2510 	,p_identity_salesforce_id IN NUMBER
2511 	,p_partner_cont_party_id  IN NUMBER
2512 	,x_return_status	OUT NOCOPY VARCHAR2
2513 	,x_msg_count		OUT NOCOPY NUMBER
2514 	,x_msg_data		OUT NOCOPY VARCHAR2
2515 	,x_access_privilege	OUT NOCOPY VARCHAR2
2516 ) is
2517 l_api_name            CONSTANT VARCHAR2(30) := 'has_personAccess';
2518 l_api_version_number  CONSTANT NUMBER       := 2.0;
2519 l_view_access_flag varchar2(1);
2520 l_update_access_flag varchar2(1);
2521 l_debug BOOLEAN := FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
2522 l_module CONSTANT VARCHAR2(255) := 'as.plsql.acpub.has_personAccess';
2523 
2524 begin
2525 	-- Standard call to check for call compatibility.
2526  IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
2527                                            p_api_version_number,
2528                                            l_api_name,
2529                                            G_PKG_NAME)
2530       THEN
2531           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2532       END IF;
2533 
2534       -- Initialize message list if p_init_msg_list is set to TRUE.
2535       IF FND_API.to_Boolean( p_init_msg_list )
2536       THEN
2537           FND_MSG_PUB.initialize;
2538       END IF;
2539 
2540       -- Debug Message
2541       IF l_debug THEN
2542       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2543                                    'Public API: ' || l_api_name || 'start');
2544 
2545       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2546                            'Start time: ' || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
2547       END IF;
2548 
2549       -- Initialize API return status to SUCCESS
2550       x_return_status := FND_API.G_RET_STS_SUCCESS;
2551 
2552 	x_access_privilege := 'N';
2553 	as_access_pub.has_viewPersonAccess
2554 		(p_api_version_number	=> 2.0
2555 		,p_init_msg_list        => FND_API.G_FALSE
2556 		,p_validation_level	=> p_validation_level
2557 		,p_access_profile_rec	=> p_access_profile_rec
2558 		,p_admin_flag		=> p_admin_flag
2559 		,p_admin_group_id	=> p_admin_group_id
2560 		,p_person_id		=> p_person_id
2561 		,p_security_id		=> p_security_id
2562 		,p_security_type        => p_security_type
2563 		,p_person_party_id      => p_person_party_id
2564 		,p_check_access_flag    => p_check_access_flag
2565 		,p_identity_salesforce_id =>p_identity_salesforce_id
2566 		,p_partner_cont_party_id  =>p_partner_cont_party_id
2567 		,x_return_status	  =>x_return_status
2568 		,x_msg_count		=> x_msg_count
2569 		,x_msg_data		=> x_msg_data
2570 		,x_view_access_flag	=> l_view_access_flag);
2571 
2572 		IF x_return_status = FND_API.G_RET_STS_ERROR then
2573 			raise FND_API.G_EXC_ERROR;
2574 		elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2575 			raise FND_API.G_EXC_UNEXPECTED_ERROR;
2576 		END IF;
2577 
2578 	if l_view_access_flag = 'Y'
2579 	then
2580 		x_access_privilege := 'R';
2581 		as_access_pub.has_updatePersonAccess
2582 		(p_api_version_number	=> 2.0
2583 		,p_init_msg_list        => FND_API.G_FALSE
2584 		,p_validation_level	=> p_validation_level
2585 		,p_access_profile_rec	=> p_access_profile_rec
2586 		,p_admin_flag		=> p_admin_flag
2587 		,p_admin_group_id	=> p_admin_group_id
2588 		,p_person_id		=> p_person_id
2589 		,p_security_id		=> p_security_id
2590 		,p_security_type        => p_security_type
2591 		,p_person_party_id      => p_person_party_id
2592 		,p_check_access_flag    => p_check_access_flag
2593 		,p_identity_salesforce_id =>p_identity_salesforce_id
2594 		,p_partner_cont_party_id  =>p_partner_cont_party_id
2595 		,x_return_status	  =>x_return_status
2596 		,x_msg_count		=> x_msg_count
2597 		,x_msg_data		=> x_msg_data
2598 		,x_update_access_flag	=> l_update_access_flag);
2599 
2600 		IF x_return_status = FND_API.G_RET_STS_ERROR then
2601 			raise FND_API.G_EXC_ERROR;
2602 		elsif x_return_status = FND_API.G_RET_STS_UNEXP_ERROR then
2603 			raise FND_API.G_EXC_UNEXPECTED_ERROR;
2604 		END IF;
2605 
2606 		if l_update_access_flag = 'Y'
2607 		then
2608 			x_access_privilege := 'F';
2609 		end if;
2610 	end if; -- l_view_access_flag = 'Y'
2611 
2612       --
2613       -- End of API body.
2614       --
2615 
2616       -- Debug Message
2617       IF l_debug THEN
2618       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW,
2619                                    'Public API: ' || l_api_name || 'end');
2620 
2621       AS_UTILITY_PVT.Debug_Message(l_module, FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'End time:'
2622                                    || TO_CHAR(SYSDATE, 'HH24:MI:SSSSS'));
2623       END IF;
2624 
2625 
2626       FND_MSG_PUB.Count_And_Get
2627       (  p_count          =>   x_msg_count,
2628          p_data           =>   x_msg_data
2629       );
2630 
2631       EXCEPTION
2632           WHEN FND_API.G_EXC_ERROR THEN
2633               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2634                    P_MODULE => l_module
2635                   ,P_API_NAME => L_API_NAME
2636                   ,P_PKG_NAME => G_PKG_NAME
2637                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
2638                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2639 		  , P_ROLLBACK_FLAG  => 'N'
2640                   ,X_MSG_COUNT => X_MSG_COUNT
2641                   ,X_MSG_DATA => X_MSG_DATA
2642                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2643 
2644           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2645               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2646                    P_MODULE => l_module
2647                   ,P_API_NAME => L_API_NAME
2648                   ,P_PKG_NAME => G_PKG_NAME
2649                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
2650                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2651 		  , P_ROLLBACK_FLAG  => 'N'
2652                   ,X_MSG_COUNT => X_MSG_COUNT
2653                   ,X_MSG_DATA => X_MSG_DATA
2654                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2655 
2656           WHEN OTHERS THEN
2657               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
2658                    P_MODULE => l_module
2659                   ,P_API_NAME => L_API_NAME
2660                   ,P_PKG_NAME => G_PKG_NAME
2661                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
2662 		 ,P_SQLCODE => SQLCODE
2663 		   ,P_SQLERRM => SQLERRM
2664                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PUB
2665 		 , P_ROLLBACK_FLAG  => 'N'
2666                   ,X_MSG_COUNT => X_MSG_COUNT
2667                   ,X_MSG_DATA => X_MSG_DATA
2668                   ,X_RETURN_STATUS => X_RETURN_STATUS);
2669 
2670 
2671 end has_personAccess ;
2672 
2673 END AS_ACCESS_PUB;