DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTF_IH_CORE_UTIL_PVT

Source


1 PACKAGE BODY JTF_IH_Core_UTIL_PVT AS
2 /* $Header: JTFIHCRB.pls 120.1 2005/07/02 02:05:44 appldev ship $ */
3 
4 ------------------------------------------------------------------------------
5 --  Procedure	: Add_Desc_Flex_Msg
6 ------------------------------------------------------------------------------
7 
8 PROCEDURE Add_Desc_Flex_Msg
9   ( p_token_an	IN	VARCHAR2,
10     p_token_dfm	IN	VARCHAR2 )
11   IS
12 BEGIN
13    IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
14       fnd_message.set_name('JTF', 'JTF_API_SR_DESC_FLEX_ERROR');
15       fnd_message.set_token('API_NAME', p_token_an);
16       fnd_message.set_token('DESC_FLEX_MSG', p_token_dfm);
17       fnd_msg_pub.add;
18    END IF;
19 END Add_Desc_Flex_Msg;
20 
21 ------------------------------------------------------------------------------
22 --  Procedure	: Add_Duplicate_Value_Msg
23 ------------------------------------------------------------------------------
24 
25 PROCEDURE Add_Duplicate_Value_Msg
26   ( p_token_an	IN	VARCHAR2,
27     p_token_p	IN	VARCHAR2 )
28   IS
29 BEGIN
30    IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
31       fnd_message.set_name('JTF', 'JTF_API_ALL_DUPLICATE_VALUE');
32       fnd_message.set_token('API_NAME', p_token_an);
33       fnd_message.set_token('DUPLICATE_VAL_PARAM', p_token_p);
34       fnd_msg_pub.add;
35    END IF;
36 END Add_Duplicate_Value_Msg;
37 
38 ------------------------------------------------------------------------------
39 --  Procedure	: Add_Invalid_Argument_Msg
40 ------------------------------------------------------------------------------
41 
42 PROCEDURE Add_Invalid_Argument_Msg
43   ( p_token_an IN VARCHAR2,
44     p_token_v IN VARCHAR2,
45     p_token_p IN VARCHAR2 )
46   IS
47   x_msg_count NUMBER;
48   x_msg_data VARCHAR2(240);
49   x_token_value VARCHAR2(2000);
50 BEGIN
51   x_token_value := SUBSTR(p_token_v,1,2000);
52   IF (x_token_value = fnd_api.g_miss_char) THEN
53     x_token_value := '';
54   END IF;
55   IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
56       fnd_message.set_name('JTF', 'JTF_API_ALL_INVALID_ARGUMENT');
57       fnd_message.set_token('API_NAME', p_token_an);
58       fnd_message.set_token('VALUE', x_token_value);
59       fnd_message.set_token('PARAMETER', p_token_p);
60       fnd_msg_pub.add;
61   END IF;
62 
63 END Add_Invalid_Argument_Msg;
64 
65 ------------------------------------------------------------------------------
66 --  Procedure	: Add_Invalid_Argument_Msg_Gen
67 ------------------------------------------------------------------------------
68 PROCEDURE Add_Invalid_Argument_Msg_Gen
69 (
70     p_msg_code   IN VARCHAR2,
71     p_msg_param  IN param_tbl_type)
72     IS
73     x_token_value VARCHAR2(2000);
74 BEGIN
75    IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
76       fnd_message.set_name('JTF', p_msg_code);
77 
78      FOR i IN 1..p_msg_param.COUNT LOOP
79 	    x_token_value := SUBSTR(p_msg_param(i).token_value,1,2000);
80   	    IF (x_token_value = fnd_api.g_miss_char) THEN
81 	  	    x_token_value := '';
82 	    END IF;
83 	    fnd_message.set_token(p_msg_param(i).token_name, x_token_value);
84      END LOOP;
85      fnd_msg_pub.add;
86   END IF;
87 
88 END Add_Invalid_Argument_Msg_Gen;
89 
90 ------------------------------------------------------------------------------
91 --  Procedure	: Add_Missing_Param_Msg
92 ------------------------------------------------------------------------------
93 
94 PROCEDURE Add_Missing_Param_Msg
95   ( p_token_an	IN	VARCHAR2,
96     p_token_mp	IN	VARCHAR2 )
97   IS
98 BEGIN
99    IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
100       fnd_message.set_name('JTF', 'JTF_API_ALL_MISSING_PARAM');
101       fnd_message.set_token('API_NAME', p_token_an);
102       fnd_message.set_token('MISSING_PARAM', p_token_mp);
103       fnd_msg_pub.add;
104    END IF;
105 END Add_MIssing_Param_Msg;
106 
107 ------------------------------------------------------------------------------
108 --  Procedure	: Add_Null_Parameter_Msg
109 ------------------------------------------------------------------------------
110 
111 PROCEDURE Add_Null_Parameter_Msg
112   ( p_token_an	IN	VARCHAR2,
113     p_token_np	IN	VARCHAR2 )
114   IS
115 BEGIN
116    IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
117       fnd_message.set_name('JTF', 'JTF_API_ALL_NULL_PARAMETER');
118       fnd_message.set_token('API_NAME', p_token_an);
119       fnd_message.set_token('NULL_PARAM', p_token_np);
120       fnd_msg_pub.add;
121    END IF;
122 END Add_Null_Parameter_Msg;
123 
124 ------------------------------------------------------------------------------
125 --  Procedure	: Add_Param_Ignored_Msg
126 ------------------------------------------------------------------------------
127 
128 PROCEDURE Add_Param_Ignored_Msg
129   ( p_token_an	IN	VARCHAR2,
130     p_token_ip	IN	VARCHAR2 )
131   IS
132 BEGIN
133    IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
134       fnd_message.set_name('JTF', 'JTF_API_ALL_PARAM_IGNORED');
135       fnd_message.set_token('API_NAME', p_token_an);
136       fnd_message.set_token('IGNORED_PARAM', p_token_ip);
137       fnd_msg_pub.add;
138    END IF;
139 END Add_Param_Ignored_Msg;
140 
141 ------------------------------------------------------------------------------
142 --  Procedure	: Add_Same_Val_Update_Msg
143 ------------------------------------------------------------------------------
144 
145 PROCEDURE Add_Same_Val_Update_Msg
146   ( p_token_an	IN	VARCHAR2,
147     p_token_p	IN	VARCHAR2 )
148   IS
149 BEGIN
150    IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
151       fnd_message.set_name('JTF', 'JTF_API_ALL_SAME_VAL_UPDATE');
152       fnd_message.set_token('API_NAME', p_token_an);
153       fnd_message.set_token('SAME_VAL_PARAM', p_token_p);
154       fnd_msg_pub.add;
155    END IF;
156 END Add_Same_Val_Update_Msg;
157 
158 
159 ------------------------------------------------------------------------------
160 --  Procedure	: Convert_Lookup_To_Code
161 ------------------------------------------------------------------------------
162 
163 PROCEDURE Convert_Lookup_To_Code
164   ( p_api_name		IN	VARCHAR2,
165     p_parameter_name	IN	VARCHAR2,
166     p_meaning		IN	VARCHAR2,
167     p_lookup_type	IN	VARCHAR2,
168     x_lookup_code	OUT NOCOPY VARCHAR2,
169     x_return_status	OUT NOCOPY VARCHAR2 )
170   IS
171 BEGIN
172    x_return_status := fnd_api.g_ret_sts_success;
173 
174    SELECT lookup_code INTO x_lookup_code
175      FROM cs_lookups
176      WHERE lookup_type = p_lookup_type
177      AND meaning = p_meaning;
178 EXCEPTION
179    WHEN no_data_found THEN
180       x_return_status := fnd_api.g_ret_sts_error;
181       cs_core_util.add_invalid_argument_msg(p_api_name, p_meaning,
182 					    p_parameter_name);
183 END Convert_Lookup_To_Code;
184 
185 
186 ------------------------------------------------------------------------------
187 --  Procedure	: Default_Common_Attributes
188 ------------------------------------------------------------------------------
189 
190 PROCEDURE Default_Common_Attributes
191   ( p_api_name		IN	VARCHAR2,
192     p_resp_appl_id	IN OUT	NOCOPY NUMBER,
193     p_resp_id		IN OUT	NOCOPY NUMBER,
194     p_user_id		IN OUT	NOCOPY NUMBER,
195     p_login_id		IN OUT	NOCOPY NUMBER,
196     p_org_id		IN OUT	NOCOPY NUMBER,
197     p_inventory_org_id	IN OUT	NOCOPY NUMBER)
198   IS
199 BEGIN
200    -------------------------------------------------------------------------
201    -- FND_GLOBAL.RESP_APPL_ID, FND_GLOBAL.RESP_ID, and FND_GLOBAL.LOGIN_ID
202    -- returns -1 by default, which is an invalid value. FND_GLOBAL.USER_ID
203    -- is okay, because user ID -1 corresponds to user 'ANONYMOUS.'  If
204    -- FND_GLOBAL returns -1, the variables are set to NULL instead.
205    -------------------------------------------------------------------------
206    IF p_resp_appl_id = fnd_api.g_miss_num THEN
207       IF fnd_global.resp_appl_id <> -1 THEN
208 	 p_resp_appl_id := fnd_global.resp_appl_id;
209       ELSE
210 	 p_resp_appl_id := NULL;
211       END IF;
212    END IF;
213 
214    IF p_resp_id = fnd_api.g_miss_num THEN
215       IF fnd_global.resp_id <> -1 THEN
216 	 p_resp_id := fnd_global.resp_id;
217       ELSE
218 	 p_resp_id := NULL;
219       END IF;
220    END IF;
221 
222    IF p_user_id = fnd_api.g_miss_num THEN
223       p_user_id := fnd_global.user_id;
224    END IF;
225 
226    IF p_login_id = fnd_api.g_miss_num THEN
227       IF fnd_global.login_id NOT IN (-1,0) THEN
228 	 p_login_id := fnd_global.login_id;
229       ELSE
230 	 p_login_id := NULL;
231       END IF;
232    END IF;
233 
234    --
235    -- If Multi-Org is enabled, get the default from the session variable
236    -- CLIENT_INFO. If it is not set, get the default from the ORG_ID profile
237    -- option.
238    --
239    IF cs_core_util.is_multiorg_enabled THEN
240       IF p_org_id = fnd_api.g_miss_num THEN
241 	 SELECT To_number(Decode(substrb(userenv('CLIENT_INFO'),1,1), ' ',
242 				 NULL, substrb(userenv('CLIENT_INFO'),1,10)))
243 	   INTO p_org_id
244 	   FROM dual;
245 	 IF p_org_id IS NULL THEN
246 	    p_org_id := To_number(fnd_profile.value_specific('ORG_ID',
247 							     p_user_id,
248 							     p_resp_id,
249 							     p_resp_appl_id));
250 	 END IF;
251       END IF;
252    END IF;
253 
254    IF p_inventory_org_id = fnd_api.g_miss_num THEN
255       p_inventory_org_id :=
256 	To_number(fnd_profile.value_specific('SO_ORGANIZATION_ID', p_user_id,
257 					     p_resp_id, p_resp_appl_id));
258    END IF;
259 END Default_Common_Attributes;
260 
261 ------------------------------------------------------------------------------
262 --  Function	: Is_MultiOrg_Enabled
263 ------------------------------------------------------------------------------
264 
265 FUNCTION Is_MultiOrg_Enabled RETURN BOOLEAN IS
266    l_multiorg_enabled  VARCHAR2(1);
267 BEGIN
268    SELECT multi_org_flag INTO l_multiorg_enabled
269      FROM fnd_product_groups;
270 
271    IF l_multiorg_enabled = 'Y' THEN
272       RETURN TRUE;
273    ELSE
274       RETURN FALSE;
275    END IF;
276 END Is_MultiOrg_Enabled;
277 
278 ------------------------------------------------------------------------------
279 --  Procedure	: Trunc_String_Length
280 ------------------------------------------------------------------------------
281 
282 PROCEDURE Trunc_String_length
283   ( p_api_name		IN	VARCHAR2,
284     p_parameter_name	IN	VARCHAR2,
285     p_str		IN	VARCHAR2,
286     p_len		IN	NUMBER,
287     x_str		OUT NOCOPY VARCHAR2 )
288   IS
289      l_len	NUMBER;
290 BEGIN
291    l_len := lengthb(p_str);
292    IF (l_len > p_len) THEN
293       IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_success) THEN
294 	 fnd_message.set_name('JTF', 'JTF_API_ALL_VALUE_TRUNCATED');
295 	 fnd_message.set_token('API_NAME', p_api_name);
296 	 fnd_message.set_token('TRUNCATED_PARAM', p_parameter_name);
297 	 fnd_message.set_token('VAL_LEN', l_len);
298 	 fnd_message.set_token('DB_LEN', p_len);
299 	 fnd_msg_pub.add;
300       END IF;
301       x_str := substrb(p_str, 1, p_len);
302     ELSE
303       x_str := p_str;
304    END IF;
305 END Trunc_String_Length;
306 
307 
308 ------------------------------------------------------------------------------
309 --  Procedure	: Validate_Desc_Flex
310 ------------------------------------------------------------------------------
311 
312 PROCEDURE Validate_Desc_Flex
313   ( p_api_name		IN	VARCHAR2,
314     p_desc_flex_name	IN	VARCHAR2,
315     p_column_name1	IN	VARCHAR2,
316     p_column_name2	IN	VARCHAR2,
317     p_column_name3	IN	VARCHAR2,
318     p_column_name4	IN	VARCHAR2,
319     p_column_name5	IN	VARCHAR2,
320     p_column_name6	IN	VARCHAR2,
321     p_column_name7	IN	VARCHAR2,
322     p_column_name8	IN	VARCHAR2,
323     p_column_name9	IN	VARCHAR2,
324     p_column_name10	IN	VARCHAR2,
325     p_column_name11	IN	VARCHAR2,
326     p_column_name12	IN	VARCHAR2,
327     p_column_name13	IN	VARCHAR2,
328     p_column_name14	IN	VARCHAR2,
329     p_column_name15	IN	VARCHAR2,
330     p_column_value1	IN	VARCHAR2,
331     p_column_value2	IN	VARCHAR2,
332     p_column_value3	IN	VARCHAR2,
333     p_column_value4	IN	VARCHAR2,
334     p_column_value5	IN	VARCHAR2,
335     p_column_value6	IN	VARCHAR2,
336     p_column_value7	IN	VARCHAR2,
337     p_column_value8	IN	VARCHAR2,
338     p_column_value9	IN	VARCHAR2,
339     p_column_value10	IN	VARCHAR2,
340     p_column_value11	IN	VARCHAR2,
341     p_column_value12	IN	VARCHAR2,
342     p_column_value13	IN	VARCHAR2,
343     p_column_value14	IN	VARCHAR2,
344     p_column_value15	IN	VARCHAR2,
345     p_context_value	IN	VARCHAR2,
346     p_resp_appl_id	IN	NUMBER   := NULL,
347     p_resp_id		IN	NUMBER   := NULL,
348     x_return_status	OUT NOCOPY	VARCHAR2 )
349   IS
350      l_error_message	VARCHAR2(2000);
351 BEGIN
352    x_return_status := fnd_api.g_ret_sts_success;
353 
354    fnd_flex_descval.set_column_value(p_column_name1, p_column_value1);
355    fnd_flex_descval.set_column_value(p_column_name2, p_column_value2);
356    fnd_flex_descval.set_column_value(p_column_name3, p_column_value3);
357    fnd_flex_descval.set_column_value(p_column_name4, p_column_value4);
358    fnd_flex_descval.set_column_value(p_column_name5, p_column_value5);
359    fnd_flex_descval.set_column_value(p_column_name6, p_column_value6);
360    fnd_flex_descval.set_column_value(p_column_name7, p_column_value7);
361    fnd_flex_descval.set_column_value(p_column_name8, p_column_value8);
362    fnd_flex_descval.set_column_value(p_column_name9, p_column_value9);
363    fnd_flex_descval.set_column_value(p_column_name10, p_column_value10);
364    fnd_flex_descval.set_column_value(p_column_name11, p_column_value11);
365    fnd_flex_descval.set_column_value(p_column_name12, p_column_value12);
366    fnd_flex_descval.set_column_value(p_column_name13, p_column_value13);
367    fnd_flex_descval.set_column_value(p_column_name14, p_column_value14);
368    fnd_flex_descval.set_column_value(p_column_name15, p_column_value15);
369    fnd_flex_descval.set_context_value(p_context_value);
370    --IF NOT fnd_flex_descval.validate_desccols
371    --  ( appl_short_name	=> 'JTF',
372     --   desc_flex_name	=> p_desc_flex_name,
373     --   resp_appl_id	=> p_resp_appl_id,
374     --   resp_id		=> p_resp_id ) THEN
375     --  l_error_message := fnd_flex_descval.error_message;
376     --  add_desc_flex_msg(p_api_name, l_error_message);
377     --  x_return_status := fnd_api.g_ret_sts_error;
378    --END IF;
379 END Validate_Desc_Flex;
380 
381 
382 ------------------------------------------------------------------------------
383 --  Procedure	: Validate_Later_Date
384 ------------------------------------------------------------------------------
385 
386 PROCEDURE Validate_Later_Date
387   ( p_api_name		IN	VARCHAR2,
388     p_parameter_name	IN	VARCHAR2,
389     p_later_date	IN	DATE,
390     p_earlier_date      IN	DATE,
391     x_return_status	OUT NOCOPY	VARCHAR2 )
392   IS
393 BEGIN
394    IF p_later_date >= p_earlier_date THEN
395       x_return_status := fnd_api.g_ret_sts_success;
396    ELSE
397       x_return_status := fnd_api.g_ret_sts_error;
398       add_invalid_argument_msg(p_api_name, To_char(p_later_date),
399 			       p_parameter_name);
400    END IF;
401 END Validate_Later_Date;
402 
403 ------------------------------------------------------------------------------
404 --  Procedure	: Validate_Lookup_Code
405 ------------------------------------------------------------------------------
406 
407 PROCEDURE Validate_Lookup_Code
408   ( p_api_name		IN	VARCHAR2,
409     p_parameter_name	IN	VARCHAR2,
410     p_lookup_code  	IN	VARCHAR2,
411     p_lookup_type  	IN	VARCHAR2,
412     x_return_status	OUT NOCOPY	VARCHAR2 )
413   IS
414      l_dummy  VARCHAR2(1);
415 BEGIN
416    x_return_status := fnd_api.g_ret_sts_success;
417 
418    SELECT 'x' INTO l_dummy
419      FROM cs_lookups
420      WHERE lookup_code = p_lookup_code
421      AND lookup_type = p_lookup_type
422      AND enabled_flag = 'Y'
423      AND Trunc(Sysdate) BETWEEN Trunc(Nvl(start_date_active, Sysdate))
424 			AND Trunc(Nvl(end_date_active, Sysdate));
425 EXCEPTION
426    WHEN no_data_found THEN
427       x_return_status := fnd_api.g_ret_sts_error;
428       add_invalid_argument_msg(p_api_name, p_lookup_code, p_parameter_name);
429 END Validate_Lookup_Code;
430 
431 ------------------------------------------------------------------------------
432 --  Procedure	: Validate_Who_Info
433 ------------------------------------------------------------------------------
434 
435 --
436 --	Author			Date			Description
437 --	------			----			-----------
438 --
439 --	Jim Zheng		01SEP1999		Initial Implementation
440 --	Jim Baldo		09MAR2001		Implementation work around for bugdb # 1679511
441 --	Igor Aleshin		13May2004		Fixed Bug#3627777
442 
443 PROCEDURE Validate_Who_Info
444   ( p_api_name			IN	VARCHAR2,
445     p_parameter_name_usr	IN	VARCHAR2,
446     p_parameter_name_log	IN	VARCHAR2,
447     p_user_id			IN	NUMBER,
448     p_login_id			IN	NUMBER,
449     p_resp_id			IN	NUMBER   := NULL,
450     p_resp_appl_id		IN	NUMBER   := NULL,
451     x_return_status		OUT NOCOPY	VARCHAR2 )
452   IS
453      l_dummy	VARCHAR2(1);
454 BEGIN
455    x_return_status := fnd_api.g_ret_sts_success;
456 
457    BEGIN
458       -- Special check to not check the dates when the user ID is (-1).
459       IF p_user_id = -1 THEN
460 	 SELECT 'x' INTO l_dummy
461 	   FROM fnd_user
462 	   WHERE user_id = p_user_id;
463        ELSE
464 	 SELECT 'x' INTO l_dummy
465 	   FROM fnd_user
466 	   WHERE user_id = p_user_id
467 	   AND Trunc(Sysdate) BETWEEN Trunc(Nvl(start_date, Sysdate))
468 			      AND Trunc(Nvl(end_date, Sysdate));
469       END IF;
470    EXCEPTION
471       WHEN no_data_found THEN
472 	 x_return_status := fnd_api.g_ret_sts_error;
473 	 add_invalid_argument_msg(p_api_name, To_char(p_user_id),
474 				  p_parameter_name_usr);
475 	 RETURN;
476    END;
477 END Validate_Who_Info;
478 
479 END JTF_IH_CORE_UTIL_PVT;