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