DBA Data[Home] [Help]

PACKAGE BODY: APPS.OZF_CLAIM_UTILITY_PVT

Source


1 PACKAGE BODY OZF_claim_Utility_pvt as
2 /* $Header: ozfvcutb.pls 120.2 2005/09/25 02:56:39 kdhulipa ship $ */
3 -- Start of Comments
4 -- Package name     : OZF_claim_Utility_pvt
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 G_PKG_NAME             CONSTANT  VARCHAR2(30) := 'OZF_CLAIM_UTILITY_PVT';
11 
12 G_FILE_NAME            CONSTANT VARCHAR2(12) := 'ozfvcutb.pls';
13 
14 OZF_DEBUG_HIGH_ON      CONSTANT BOOLEAN := FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_debug_high);
15 
16 --   *******************************************************
17 --    Start of Comments
18 --   *******************************************************
19 --   API Name:  Check_Claim_Access
20 --   Type    :  Public
21 --   Pre-Req :
22 --   Parameters:
23 --   IN
24 --       p_api_version_number      IN   NUMBER     Required
25 --       p_init_msg_list           IN   VARCHAR2   Optional  Default = FND_API_G_FALSE
26 --       p_commit                  IN   VARCHAR2   Optional  Default = FND_API.G_FALSE
27 --       p_validation_level        IN   NUMBER     Optional  Default = FND_API.G_VALID_LEVEL_FULL
28 --       P_object_id               IN   NUMBER
29 --       P_object_type             IN   VARCHAR2
30 --       P_user_id                 IN   NUMBER
31 --
32 --   OUT:
33 --       x_return_status           OUT  VARCHAR2
34 --       x_msg_count               OUT  NUMBER
35 --       x_msg_data                OUT  VARCHAR2
36 --       x_access                  OUT  VARCHAR2  F : FULL: User can update any data
37 --                                                R : RESTRICTED : User can only update data other than owner
38 --                                                N : NULL : User has no update priviledge
39 --   Version : Current version 1.0
40 --
41 --   Note: This procedure checks security access to a claim of a user
42 --
43 --   End of Comments
44 --
45 PROCEDURE Check_Claim_access(
46     P_Api_Version_Number         IN   NUMBER,
47     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
48     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
49     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
50 	 P_object_id                  IN   NUMBER,
51     P_object_type                IN   VARCHAR2,
52 	 P_user_id                    IN   NUMBER,
53 
54     X_Return_Status              OUT NOCOPY  VARCHAR2,
55     X_Msg_Count                  OUT NOCOPY  NUMBER,
56     X_Msg_Data                   OUT NOCOPY  VARCHAR2,
57     x_access                     OUT NOCOPY  VARCHAR2
58     )
59 IS
60 l_api_name                CONSTANT VARCHAR2(30) := 'Check_Claim_access';
61 l_api_version_number      CONSTANT NUMBER   := 1.0;
62 l_full_name               CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
63 l_profile_value           VARCHAR2(30);
64 
65 l_access varchar2(1) :='N';  --  F : FULL: User can update sensitive metric data
66                              --  R : RESTRICTED : User can only update data other than sensitive metric data
67                              --  N : NULL : User is no
68 BEGIN
69    -- Standard Start of API savepoint
70    SAVEPOINT Check_Claim_ACC;
71 
72    IF OZF_DEBUG_HIGH_ON THEN
73       OZF_Utility_PVT.debug_message(l_full_name||': start');
74    END IF;
75 
76    -- Standard call to check for call compatibility.
77    IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
78                                         p_api_version_number,
79                                         l_api_name,
80                                         G_PKG_NAME)
81    THEN
82        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
83    END IF;
84 
85    -- Initialize message list if p_init_msg_list is set to TRUE.
86    IF FND_API.to_Boolean( p_init_msg_list )
87    THEN
88        FND_MSG_PUB.initialize;
89    END IF;
90 
91    -- Initialize API return status to SUCCESS
92    x_return_status := FND_API.G_RET_STS_SUCCESS;
93 
94  /*     IF AMS_access_PVT.check_owner(
95    p_object_id         IN  NUMBER,
96    p_object_type       IN  VARCHAR2,
97    p_user_or_role_id   IN  NUMBER,
98    p_user_or_role_type ) OR
99 */
100    -- There is no need to check the owner since owner and group memeber has the same update priviledge.
101    l_access :=AMS_access_PVT.check_update_access(
102       p_object_id         => P_object_id,
103       p_object_type       => P_object_type,
104       p_user_or_role_id   => p_user_id,
105       p_user_or_role_type => 'USER'
106    );
107 
108    IF l_access = 'F' OR AMS_access_PVT.Check_Admin_access(p_resource_id => p_user_id) THEN
109       x_access := 'F';
110    ELSE
111       l_profile_value :=  NVL(fnd_profile.value('OZF_CLAIM_UPDATE_ACCESS'), 'VIEW');
112       IF l_profile_value = 'UPDATE' THEN
113               x_access := 'R';
114       ELSE
115               x_access := 'N';
116       END IF;
117    END IF;
118 
119    IF OZF_DEBUG_HIGH_ON THEN
120       OZF_Utility_PVT.debug_message('user_id='||p_user_id||' update_access is '||l_access);
121       OZF_Utility_PVT.debug_message('claim access is '||x_access);
122    END IF;
123 
124    --
125    -- End of API body
126    --
127    -- Standard check for p_commit
128    IF FND_API.to_Boolean( p_commit )
129    THEN
130        COMMIT WORK;
131    END IF;
132 
133    IF OZF_DEBUG_HIGH_ON THEN
134       OZF_Utility_PVT.debug_message(l_full_name||': end');
135    END IF;
136 
137    -- Standard call to get message count and if count is 1, get message info.
138    FND_MSG_PUB.Count_And_Get
139      (p_count          =>   x_msg_count,
140       p_data           =>   x_msg_data
141    );
142 EXCEPTION
143    WHEN FND_API.G_EXC_ERROR THEN
144     ROLLBACK TO Check_Claim_ACC;
145     x_return_status := FND_API.G_RET_STS_ERROR;
146     -- Standard call to get message count and if count=1, get the message
147     FND_MSG_PUB.Count_And_Get (
148             p_encoded => FND_API.G_FALSE,
149             p_count => x_msg_count,
150             p_data  => x_msg_data
151     );
152    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
153     ROLLBACK TO Check_Claim_ACC;
154     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
155     -- Standard call to get message count and if count=1, get the message
156     FND_MSG_PUB.Count_And_Get (
157             p_encoded => FND_API.G_FALSE,
158             p_count => x_msg_count,
159             p_data  => x_msg_data
160     );
161    WHEN OTHERS THEN
162     ROLLBACK TO Check_Claim_ACC;
163     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
164     IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
165        FND_MESSAGE.set_name('OZF', 'OZF_CLAIM_CHK_ACS_ERR');
166        FND_MSG_PUB.add;
167     END IF;
168     -- Standard call to get message count and if count=1, get the message
169     FND_MSG_PUB.Count_And_Get (
170             p_encoded => FND_API.G_FALSE,
171             p_count => x_msg_count,
172             p_data  => x_msg_data
173     );
174 End Check_Claim_access;
175 
176 --   *******************************************************
177 --    Start of Comments
178 --   *******************************************************
179 --   API Name:  Normalize_Customer_Reference
180 --   Type    :  Public
181 --   Pre-Req :
182 --   Parameters:
183 --   IN
184 --       p_customer_reference      IN   VARCHAR2
185 --
186 --   OUT:
187 --       x_normalized_reference    OUT  VARCHAR2
188 --   Version : Current version 1.0
189 --
190 --   Note: This procedure normalizes the customer reference number.
191 --
192 --   End of Comments
193 --
194 PROCEDURE  Normalize_Customer_Reference (
195     p_customer_reference       IN   VARCHAR2
196    ,x_normalized_reference     OUT NOCOPY  VARCHAR2
197    )
198 IS
199 
200 l_normalized_reference VARCHAR2(30) := '';
201 l_char                 VARCHAR2(1);
202 
203 BEGIN
204    -- loop over all characters
205    FOR i IN 1..LENGTH(p_customer_reference) LOOP
206       l_char := SUBSTRB(p_customer_reference, i, 1);
207 
208       -- change 'O' and 'o' to '0'
209       IF l_char = 'O' OR l_char = 'o' THEN
210          l_normalized_reference := l_normalized_reference || '0';
211 
212       -- change 'I' and 'l' to '1'
213       ELSIF l_char = 'I' OR l_char = 'l' THEN
214          l_normalized_reference := l_normalized_reference || '1';
215 
216       -- ignore special characters; change characters to upper case
217       ELSIF INSTR(' !"#$%&''()*+,-./:;<>=?@[\]^{|}~', l_char) = 0 THEN
218          l_normalized_reference := l_normalized_reference || UPPER(l_char);
219       END IF;
220    END LOOP;
221 
222    -- remove prefix 'DM'
223    l_normalized_reference := LTRIM(l_normalized_reference, 'DM');
224 
225    -- remove leading '0's
226    l_normalized_reference := LTRIM(l_normalized_reference, '0');
227 
228    x_normalized_reference := l_normalized_reference;
229 END Normalize_Customer_Reference;
230 
231 End OZF_claim_Utility_pvt;