[Home] [Help]
PACKAGE BODY: APPS.HRI_OLTP_VIEW_WRKFRC
Source
1 PACKAGE BODY HRI_OLTP_VIEW_WRKFRC AS
2 /* $Header: hriovwrk.pkb 120.4 2011/11/10 09:36:15 vepravee ship $ */
3 --
4 TYPE g_wrkfc_fk_rec_type IS RECORD
5 (per_person_mgr_fk NUMBER
6 ,mgr_mngrsc_fk NUMBER
7 ,org_organztn_fk NUMBER
8 ,job_job_fk NUMBER
9 ,grd_grade_fk NUMBER
10 ,pos_position_fk NUMBER
11 ,geo_location_fk NUMBER);
12 --
13 /******************************************************************************/
14 /* Calculates the ABV given a BMT code, business group and assignment */
15 /******************************************************************************/
16 --
17 FUNCTION calc_abv(p_assignment_id IN NUMBER,
18 p_business_group_id IN NUMBER,
19 p_bmt_code IN VARCHAR2,
20 p_effective_date IN DATE)
21 RETURN NUMBER IS
22 --
23 BEGIN
24 --
25 RETURN (hri_bpl_abv.calc_abv
26 (p_assignment_id => p_assignment_id,
27 p_business_group_id => p_business_group_id,
28 p_budget_type => p_bmt_code,
29 p_effective_date => p_effective_date));
30 --
31 EXCEPTION
32 WHEN OTHERS THEN
33 RETURN to_number(null);
34 END calc_abv;
35 --
36 /******************************************************************************/
37 /* Calculates the ABV given a BMT code, business group and assignment */
38 /******************************************************************************/
39 --
40 FUNCTION calc_abv(p_assignment_id IN NUMBER,
41 p_business_group_id IN NUMBER,
42 p_bmt_code IN VARCHAR2,
43 p_effective_date IN DATE,
44 p_primary_flag IN VARCHAR2)
45 RETURN NUMBER IS
46 --
47 BEGIN
48 --
49 RETURN (hri_bpl_abv.calc_abv
50 (p_assignment_id => p_assignment_id,
51 p_business_group_id => p_business_group_id,
52 p_budget_type => p_bmt_code,
53 p_effective_date => p_effective_date,
54 p_primary_flag => p_primary_flag));
55 --
56 EXCEPTION
57 WHEN OTHERS THEN
58 RETURN to_number(null);
59 END calc_abv;
60 --
61 PROCEDURE get_wrkfc_fks(p_assignment_id IN NUMBER,
62 p_effective_date IN DATE,
63 p_wrkfc_fk_rec OUT NOCOPY g_wrkfc_fk_rec_type) IS
64
65 CURSOR wrkfc_fk_csr IS
66 SELECT
67 fct.per_person_mgr_fk
68 ,fct.mgr_mngrsc_fk
69 ,fct.org_organztn_fk
70 ,fct.job_job_fk
71 ,fct.grd_grade_fk
72 ,fct.pos_position_fk
73 ,fct.geo_location_fk
74 FROM hri_mds_wrkfc_mnth_ct fct
75 WHERE fct.asg_assgnmnt_fk = p_assignment_id
76 AND fct.time_month_snp_fk = to_number(to_char(p_effective_date, 'YYYYQMM'));
77
78 BEGIN
79
80 OPEN wrkfc_fk_csr;
81 FETCH wrkfc_fk_csr INTO
82 p_wrkfc_fk_rec.per_person_mgr_fk,
83 p_wrkfc_fk_rec.mgr_mngrsc_fk,
84 p_wrkfc_fk_rec.org_organztn_fk,
85 p_wrkfc_fk_rec.job_job_fk,
86 p_wrkfc_fk_rec.grd_grade_fk,
87 p_wrkfc_fk_rec.pos_position_fk,
88 p_wrkfc_fk_rec.geo_location_fk;
89 CLOSE wrkfc_fk_csr;
90
91 END get_wrkfc_fks;
92
93 FUNCTION get_sup_fk(p_assignment_id IN NUMBER,
94 p_effective_date IN DATE)
95 RETURN NUMBER IS
96
97 l_wrkfc_fk_rec g_wrkfc_fk_rec_type;
98
99 BEGIN
100
101 get_wrkfc_fks
102 (p_assignment_id => p_assignment_id,
103 p_effective_date => p_effective_date,
104 p_wrkfc_fk_rec => l_wrkfc_fk_rec);
105
106 RETURN l_wrkfc_fk_rec.per_person_mgr_fk;
107
108 END get_sup_fk;
109 --
110 FUNCTION get_mgrsc_fk(p_assignment_id IN NUMBER,
111 p_effective_date IN DATE)
112 RETURN NUMBER IS
113
114 l_wrkfc_fk_rec g_wrkfc_fk_rec_type;
115
116 BEGIN
117
118 get_wrkfc_fks
119 (p_assignment_id => p_assignment_id,
120 p_effective_date => p_effective_date,
121 p_wrkfc_fk_rec => l_wrkfc_fk_rec);
122
123 RETURN l_wrkfc_fk_rec.mgr_mngrsc_fk;
124
125 END get_mgrsc_fk;
126 --
127 FUNCTION get_org_fk(p_assignment_id IN NUMBER,
128 p_effective_date IN DATE)
129 RETURN NUMBER IS
130
131 l_wrkfc_fk_rec g_wrkfc_fk_rec_type;
132
133 BEGIN
134
135 get_wrkfc_fks
136 (p_assignment_id => p_assignment_id,
137 p_effective_date => p_effective_date,
138 p_wrkfc_fk_rec => l_wrkfc_fk_rec);
139
140 RETURN l_wrkfc_fk_rec.org_organztn_fk;
141
142 END get_org_fk;
143 --
144 FUNCTION get_job_fk(p_assignment_id IN NUMBER,
145 p_effective_date IN DATE)
146 RETURN NUMBER IS
147
148 l_wrkfc_fk_rec g_wrkfc_fk_rec_type;
149
150 BEGIN
151
152 get_wrkfc_fks
153 (p_assignment_id => p_assignment_id,
154 p_effective_date => p_effective_date,
155 p_wrkfc_fk_rec => l_wrkfc_fk_rec);
156
157 RETURN l_wrkfc_fk_rec.job_job_fk;
158
159 END get_job_fk;
160 --
161 FUNCTION get_loc_fk(p_assignment_id IN NUMBER,
162 p_effective_date IN DATE)
163 RETURN NUMBER IS
164
165 l_wrkfc_fk_rec g_wrkfc_fk_rec_type;
166
167 BEGIN
168
169 get_wrkfc_fks
170 (p_assignment_id => p_assignment_id,
171 p_effective_date => p_effective_date,
172 p_wrkfc_fk_rec => l_wrkfc_fk_rec);
173
174 RETURN l_wrkfc_fk_rec.geo_location_fk;
175
176 END get_loc_fk;
177 --
178 FUNCTION get_grd_fk(p_assignment_id IN NUMBER,
179 p_effective_date IN DATE)
180 RETURN NUMBER IS
181
182 l_wrkfc_fk_rec g_wrkfc_fk_rec_type;
183
184 BEGIN
185
186 get_wrkfc_fks
187 (p_assignment_id => p_assignment_id,
188 p_effective_date => p_effective_date,
189 p_wrkfc_fk_rec => l_wrkfc_fk_rec);
190
191 RETURN l_wrkfc_fk_rec.grd_grade_fk;
192
193 END get_grd_fk;
194 --
195 FUNCTION get_pos_fk(p_assignment_id IN NUMBER,
196 p_effective_date IN DATE)
197 RETURN NUMBER IS
198
199 l_wrkfc_fk_rec g_wrkfc_fk_rec_type;
200
201 BEGIN
202
203 get_wrkfc_fks
204 (p_assignment_id => p_assignment_id,
205 p_effective_date => p_effective_date,
206 p_wrkfc_fk_rec => l_wrkfc_fk_rec);
207
208 RETURN l_wrkfc_fk_rec.pos_position_fk;
209
210 END get_pos_fk;
211 --
212 FUNCTION get_hire_info(p_assignment_id IN NUMBER,
213 p_effective_start_date IN DATE,
214 p_effective_end_date IN DATE,
215 p_budget_type IN VARCHAR2)
216 RETURN NUMBER IS
217
218 CURSOR hire_csr IS
219 SELECT
220 NVL(SUM(headcount_hire), 0)
221 ,NVL(SUM(fte_hire), 0)
222 FROM hri_mds_wrkfc_mnth_ct
223 WHERE asg_assgnmnt_fk = p_assignment_id
224 AND time_month_snp_fk BETWEEN to_number(to_char(p_effective_start_date, 'YYYYQMM'))
225 AND to_number(to_char(p_effective_end_date, 'YYYYQMM'));
226
227 l_hdc NUMBER;
228 l_fte NUMBER;
229
230 BEGIN
231
232 OPEN hire_csr;
233 FETCH hire_csr INTO l_hdc, l_fte;
234 CLOSE hire_csr;
235
236 IF p_budget_type = 'HEADCOUNT' THEN
237 RETURN l_hdc;
238 ELSIF p_budget_type = 'FTE' THEN
239 RETURN l_fte;
240 END IF;
241
242 RETURN to_number(null);
243
244 END get_hire_info;
245
246 FUNCTION get_prmtn_info(p_assignment_id IN NUMBER,
247 p_effective_start_date IN DATE,
248 p_effective_end_date IN DATE,
249 p_budget_type IN VARCHAR2)
250 RETURN NUMBER IS
251
252 CURSOR prmtn_csr IS
253 SELECT
254 NVL(SUM(headcount_prmtn), 0)
255 ,NVL(SUM(fte_prmtn), 0)
256 FROM hri_mds_wrkfc_mnth_ct
257 WHERE asg_assgnmnt_fk = p_assignment_id
258 AND time_month_snp_fk BETWEEN to_number(to_char(p_effective_start_date, 'YYYYQMM'))
259 AND to_number(to_char(p_effective_end_date, 'YYYYQMM'));
260
261 l_hdc NUMBER;
262 l_fte NUMBER;
263
264 BEGIN
265
266 OPEN prmtn_csr;
267 FETCH prmtn_csr INTO l_hdc, l_fte;
268 CLOSE prmtn_csr;
269
270 IF p_budget_type = 'HEADCOUNT' THEN
271 RETURN l_hdc;
272 ELSIF p_budget_type = 'FTE' THEN
273 RETURN l_fte;
274 END IF;
275
276 RETURN to_number(null);
277
278 END get_prmtn_info;
279
280 FUNCTION get_hire_hdc(p_assignment_id IN NUMBER,
281 p_effective_start_date IN DATE,
282 p_effective_end_date IN DATE)
283 RETURN NUMBER IS
284
285 BEGIN
286
287 RETURN get_hire_info
288 (p_assignment_id => p_assignment_id,
289 p_effective_start_date => p_effective_start_date,
290 p_effective_end_date => p_effective_end_date,
291 p_budget_type => 'HEADCOUNT');
292
293 END get_hire_hdc;
294 --
295 FUNCTION get_hire_fte(p_assignment_id IN NUMBER,
296 p_effective_start_date IN DATE,
297 p_effective_end_date IN DATE)
298 RETURN NUMBER IS
299
300 BEGIN
301
302 RETURN get_hire_info
303 (p_assignment_id => p_assignment_id,
304 p_effective_start_date => p_effective_start_date,
305 p_effective_end_date => p_effective_end_date,
306 p_budget_type => 'FTE');
307
308 END get_hire_fte;
309 --
310 FUNCTION get_prmtn_hdc(p_assignment_id IN NUMBER,
311 p_effective_start_date IN DATE,
312 p_effective_end_date IN DATE)
313 RETURN NUMBER IS
314
315 BEGIN
316
317 RETURN get_prmtn_info
318 (p_assignment_id => p_assignment_id,
319 p_effective_start_date => p_effective_start_date,
320 p_effective_end_date => p_effective_end_date,
321 p_budget_type => 'HEADCOUNT');
322
323 END get_prmtn_hdc;
324 --
325 FUNCTION get_prmtn_fte(p_assignment_id IN NUMBER,
326 p_effective_start_date IN DATE,
327 p_effective_end_date IN DATE)
328 RETURN NUMBER IS
329
330 BEGIN
331
332 RETURN get_prmtn_info
333 (p_assignment_id => p_assignment_id,
334 p_effective_start_date => p_effective_start_date,
335 p_effective_end_date => p_effective_end_date,
336 p_budget_type => 'FTE');
337
338 END get_prmtn_fte;
339 --
340 END HRI_OLTP_VIEW_WRKFRC;