DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_PJI_UTIL_PKG

Source


1 PACKAGE BODY pa_pji_util_pkg AS
2 /* $Header: PAPJIUTB.pls 120.2 2011/09/20 12:14:33 arbandyo ship $ */
3 
4 ---------------------------------------------------------------------
5 --This package replaces the PA package created from file PAPJIUTB.pls
6 --The utilization details are got from PJI data model
7 ---------------------------------------------------------------------
8 
9 PROCEDURE get_utilization_dtls
10   ( p_org_id               IN pa_implementations_all.org_id%TYPE
11                               := NULL
12    ,p_organization_id      IN hr_organization_units.organization_id%TYPE
13                               := NULL
14    ,p_period_type          IN pa_forecasting_options_all.org_fcst_period_type%TYPE
15                               := NULL
16    ,p_period_set_name      IN gl_periods.period_set_name%TYPE
17                               := NULL
18    ,p_period_name          IN gl_periods.period_name%TYPE
19                               := NULL
20    ,x_utl_hours           OUT NOCOPY /* file.sql.39 change */ NUMBER
21    ,x_utl_capacity        OUT NOCOPY /* file.sql.39 change */ NUMBER
22    ,x_utl_percent         OUT NOCOPY /* file.sql.39 change */ NUMBER
23    ,x_return_status       OUT NOCOPY /* file.sql.39 change */ VARCHAR2
24    ,x_err_code            OUT NOCOPY /* file.sql.39 change */ VARCHAR2)
25 IS
26 
27     l_calendar_id NUMBER;
28 	l_period_id NUMBER;
29 	l_capacity_hrs NUMBER;
30 	l_reduce_capacity_hrs NUMBER;
31 
32 BEGIN
33      x_return_status := FND_API.G_RET_STS_SUCCESS;
34 
35      -----------------
36 	 --Get calendar ID
37 	 -----------------
38 	 BEGIN
39 
40 	     SELECT calendar_id
41 		 INTO   l_calendar_id
42 		 FROM pa_time_cal_name /* Modified for bug 12979524 */
43 		 WHERE period_set_name = p_period_set_name AND
44 		       period_type = p_period_type;
45 
46 	 EXCEPTION
47 	    WHEN NO_DATA_FOUND THEN
48 		    RETURN;
49 	 END;
50 
51 	 --------------------------------
52 	 --Get period_id for the calendar
53 	 --------------------------------
54 	 BEGIN
55 
56 	     SELECT cal_period_id
57 		 INTO   l_period_id
58 		 FROM pji_time_cal_period
59 		 WHERE calendar_id = l_calendar_id AND
60 		       name = p_period_name;
61 
62 	 EXCEPTION
63 	    WHEN NO_DATA_FOUND THEN
64 		    x_return_status := FND_API.G_RET_STS_ERROR;
65 			x_err_code      := SQLERRM;
66 		    RETURN;
67 	 END;
68 
69 
70 	 --------------------------------
71 	 --Get Utilization details
72 	 --------------------------------
73 	 BEGIN
74 
75 	     SELECT NVL(conf_wtd_org_hrs_s,0),
76 		        NVL(capacity_hrs,0),
77 				NVL(reduce_capacity_hrs_s,0)
78 		 INTO   x_utl_hours,
79 		        l_capacity_hrs,
80 				l_reduce_capacity_hrs
81 		 FROM pji_rm_org_f_mv
82 		 WHERE expenditure_organization_id = p_organization_id AND
83 		       expenditure_org_id          = p_org_id          AND
84 			   time_id                     = l_period_id       AND
85                period_type_id              = 32                AND
86                ROWNUM = 1;
87 
88 	 EXCEPTION
89 	    WHEN NO_DATA_FOUND THEN
90 		    x_return_status := FND_API.G_RET_STS_ERROR;
91 			x_err_code      := SQLERRM;
92 		    RETURN;
93 	 END;
94 
95 	 x_utl_capacity := l_capacity_hrs - l_reduce_capacity_hrs;
96 
97      IF x_utl_capacity = 0 THEN
98          x_utl_percent := null;
99      ELSE
100    	     x_utl_percent  := (x_utl_hours * 100)/x_utl_capacity;
101      END IF;
102 
103 	 x_return_status := FND_API.G_RET_STS_SUCCESS;
104 
105 EXCEPTION
106      WHEN OTHERS THEN
107           x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
108           x_err_code      := SQLERRM;
109 
110 END get_utilization_dtls;
111 
112 
113 END pa_pji_util_pkg;