[Home] [Help]
PACKAGE BODY: APPS.OKS_QP_INT
Source
1 PACKAGE BODY OKS_QP_INT AS
2 /* $Header: OKSGPINB.pls 120.0 2005/05/25 18:27:58 appldev noship $ */
3
4 l_api_version CONSTANT NUMBER := 1.0;
5 l_init_msg_list CONSTANT VARCHAR2(1) := 'F';
6
7 PROCEDURE GET_CONVERSION_FACTOR (
8 p_api_version IN NUMBER,
9 p_init_msg_list IN VARCHAR2,
10 p_start_date IN DATE,
11 p_end_date IN DATE,
12 p_pb_uom IN VARCHAR2,
13 x_factor OUT NOCOPY NUMBER,
14 x_return_status OUT NOCOPY VARCHAR2,
15 x_msg_count OUT NOCOPY NUMBER,
16 x_msg_data OUT NOCOPY VARCHAR2
17 ) IS
18
19 l_duration NUMBER;
20 l_uom VARCHAR2(10);
21
22 BEGIN
23
24 x_return_status := G_RET_STS_SUCCESS;
25
26 OKS_TIME_MEASURES_PUB.get_duration_uom (
27 p_start_date => p_start_date
28 , p_end_date => p_end_date
29 , x_duration => l_duration
30 , x_timeunit => l_uom
31 , x_return_status => x_return_status
32 );
33
34 IF x_return_status <> G_RET_STS_SUCCESS THEN
35 x_factor := NULL;
36 RAISE G_EXC_ERROR;
37 END IF;
38
39 IF UPPER(p_pb_uom) = UPPER(l_uom) THEN
40 IF l_duration = 1 THEN
41 x_factor := 1;
42 ELSE
43 x_factor := l_duration;
44 END IF;
45 ELSE
46 x_factor := OKS_TIME_MEASURES_PUB.get_target_qty (
47 p_start_date => p_start_date,
48 p_source_qty => l_duration,
49 p_source_uom => l_uom,
50 p_target_uom => p_pb_uom,
51 p_round_dec => 20
52 );
53 END IF;
54 EXCEPTION
55 WHEN G_EXC_ERROR THEN
56 NULL;
57 WHEN OTHERS THEN
58 x_return_status := G_RET_STS_UNEXP_ERROR;
59 OKC_API.SET_MESSAGE(
60 p_app_name => G_APP_NAME,
61 p_msg_name => G_UNEXPECTED_ERROR,
62 p_token1 => G_SQLCODE_TOKEN,
63 p_token1_value => SQLCODE,
64 p_token2 => G_SQLERRM_TOKEN,
65 p_token2_value => SQLERRM
66 );
67 END GET_CONVERSION_FACTOR;
68
69 END OKS_QP_INT;