[Home] [Help]
PACKAGE BODY: APPS.HRI_OLTP_VIEW_WRKFRC_MGRH
Source
1 PACKAGE BODY HRI_OLTP_VIEW_WRKFRC_MGRH AS
2 /* $Header: hriovwrkmgr.pkb 120.0.12000000.2 2007/04/12 13:20:29 smohapat noship $ */
3
4 FUNCTION get_hdc(p_sup_person_id IN NUMBER,
5 p_effective_date IN DATE,
6 p_worker_type IN VARCHAR2,
7 p_directs_only IN VARCHAR2)
8 RETURN NUMBER IS
9
10 CURSOR hdc_csr IS
11 SELECT NVL(SUM(wrkfc.headcount_end), 0)
12 FROM hri_mds_wrkfc_mgrh_c01_ct wrkfc
13 WHERE wrkfc.sup_person_fk = p_sup_person_id
14 AND wrkfc.time_month_snp_fk = to_number(to_char(p_effective_date, 'YYYYQMM'))
15 AND wrkfc.ptyp_wrktyp_fk = p_worker_type
16 AND wrkfc.sup_directs_only_flag = p_directs_only;
17
18 l_hdc NUMBER;
19
20 BEGIN
21
22 OPEN hdc_csr;
23 FETCH hdc_csr INTO l_hdc;
24 CLOSE hdc_csr;
25
26 RETURN l_hdc;
27
28 END get_hdc;
29
30 FUNCTION get_fte(p_sup_person_id IN NUMBER,
31 p_effective_date IN DATE,
32 p_worker_type IN VARCHAR2,
33 p_directs_only IN VARCHAR2)
34 RETURN NUMBER IS
35
36 CURSOR fte_csr IS
37 SELECT NVL(SUM(wrkfc.fte_end), 0)
38 FROM hri_mds_wrkfc_mgrh_c01_ct wrkfc
39 WHERE wrkfc.sup_person_fk = p_sup_person_id
40 AND wrkfc.time_month_snp_fk = to_char(p_effective_date, 'YYYYQMM')
41 AND wrkfc.ptyp_wrktyp_fk = p_worker_type
42 AND wrkfc.sup_directs_only_flag = p_directs_only;
43
44 l_fte NUMBER;
45
46 BEGIN
47
48 OPEN fte_csr;
49 FETCH fte_csr INTO l_fte;
50 CLOSE fte_csr;
51
52 RETURN l_fte;
53
54 END get_fte;
55
56 FUNCTION get_pasg_cnt(p_sup_person_id IN NUMBER,
57 p_effective_date IN DATE,
58 p_worker_type IN VARCHAR2,
59 p_directs_only IN VARCHAR2)
60 RETURN NUMBER IS
61
62 CURSOR pasg_cnt_csr IS
63 SELECT NVL(SUM(wrkfc.count_pasg_end), 0)
64 FROM hri_mds_wrkfc_mgrh_c01_ct wrkfc
65 WHERE wrkfc.sup_person_fk = p_sup_person_id
66 AND wrkfc.time_month_snp_fk = to_char(p_effective_date, 'YYYYQMM')
67 AND wrkfc.ptyp_wrktyp_fk = p_worker_type
68 AND wrkfc.sup_directs_only_flag = p_directs_only;
69
70 l_pasg_cnt NUMBER;
71
72 BEGIN
73
74 OPEN pasg_cnt_csr;
75 FETCH pasg_cnt_csr INTO l_pasg_cnt;
76 CLOSE pasg_cnt_csr;
77
78 RETURN l_pasg_cnt;
79
80 END get_pasg_cnt;
81
82 FUNCTION get_asg_cnt(p_sup_person_id IN NUMBER,
83 p_effective_date IN DATE,
84 p_worker_type IN VARCHAR2,
85 p_directs_only IN VARCHAR2)
86 RETURN NUMBER IS
87
88 CURSOR asg_cnt_csr IS
89 SELECT NVL(SUM(wrkfc.count_asg_end), 0)
90 FROM hri_mds_wrkfc_mgrh_c01_ct wrkfc
91 WHERE wrkfc.sup_person_fk = p_sup_person_id
92 AND wrkfc.time_month_snp_fk = to_char(p_effective_date, 'YYYYQMM')
93 AND wrkfc.ptyp_wrktyp_fk = p_worker_type
94 AND wrkfc.sup_directs_only_flag = p_directs_only;
95
96 l_asg_cnt NUMBER;
97
98 BEGIN
99
100 OPEN asg_cnt_csr;
101 FETCH asg_cnt_csr INTO l_asg_cnt;
102 CLOSE asg_cnt_csr;
103
104 RETURN l_asg_cnt;
105
106 END get_asg_cnt;
107
108 FUNCTION get_transfer_info(p_sup_person_id IN NUMBER,
109 p_from_date IN DATE,
110 p_to_date IN DATE,
111 p_worker_type IN VARCHAR2,
112 p_directs_only IN VARCHAR2,
113 p_budget_type IN VARCHAR2,
114 p_transfer_type IN VARCHAR2)
115 RETURN NUMBER IS
116
117 CURSOR trn_csr(v_direct_record_ind IN NUMBER) IS
118 SELECT
119 NVL(SUM(wevt.headcount * trn.transfer_in_ind), 0) hdc_trn_in
120 ,NVL(SUM(wevt.headcount * trn.transfer_out_ind), 0) hdc_trn_out
121 ,NVL(SUM(wevt.fte * trn.transfer_in_ind), 0) fte_trn_in
122 ,NVL(SUM(wevt.fte * trn.transfer_out_ind), 0) fte_trn_out
123 ,NVL(SUM(wevt.primary_ind * trn.transfer_in_ind), 0) pasg_cnt_trn_in
124 ,NVL(SUM(wevt.primary_ind * trn.transfer_out_ind), 0) pasg_cnt_trn_out
125 ,NVL(SUM(trn.transfer_in_ind), 0) asg_cnt_trn_in
126 ,NVL(SUM(trn.transfer_out_ind), 0) asg_cnt_trn_out
127 FROM
128 hri_mdp_mgrh_transfers_ct trn
129 ,hri_mb_wrkfc_evt_ct wevt
130 WHERE trn.mgr_sup_person_fk = p_sup_person_id
131 AND trn.ptyp_wrktyp_fk = p_worker_type
132 AND trn.asg_assgnmnt_fk = wevt.asg_assgnmnt_fk
133 AND trn.time_day_evt_fk BETWEEN wevt.time_day_evt_fk
134 AND wevt.time_day_evt_end_fk
135 AND trn.direct_record_ind = v_direct_record_ind
136 AND trn.time_day_evt_fk BETWEEN p_from_date
137 AND p_to_date;
138
139 l_direct_record_ind NUMBER;
140 l_hdc_trn_in NUMBER;
141 l_hdc_trn_out NUMBER;
142 l_fte_trn_in NUMBER;
143 l_fte_trn_out NUMBER;
144 l_pasg_cnt_trn_in NUMBER;
145 l_pasg_cnt_trn_out NUMBER;
146 l_asg_cnt_trn_in NUMBER;
147 l_asg_cnt_trn_out NUMBER;
148
149 BEGIN
150
151 IF (p_directs_only = 'Y') THEN
152 l_direct_record_ind := 1;
153 ELSE
154 l_direct_record_ind := 0;
155 END IF;
156
157 OPEN trn_csr(l_direct_record_ind);
158 FETCH trn_csr INTO
159 l_hdc_trn_in,
160 l_hdc_trn_out,
161 l_fte_trn_in,
162 l_fte_trn_out,
163 l_pasg_cnt_trn_in,
164 l_pasg_cnt_trn_out,
165 l_asg_cnt_trn_in,
166 l_asg_cnt_trn_out;
167 CLOSE trn_csr;
168
169 IF (p_budget_type = 'HEADCOUNT' AND p_transfer_type = 'IN') THEN
170 RETURN l_hdc_trn_in;
171 ELSIF (p_budget_type = 'HEADCOUNT' AND p_transfer_type = 'OUT') THEN
172 RETURN l_hdc_trn_out;
173 ELSIF (p_budget_type = 'FTE' AND p_transfer_type = 'IN') THEN
174 RETURN l_fte_trn_in;
175 ELSIF (p_budget_type = 'FTE' AND p_transfer_type = 'OUT') THEN
176 RETURN l_fte_trn_out;
177 ELSIF (p_budget_type = 'PASG_CNT' AND p_transfer_type = 'IN') THEN
178 RETURN l_pasg_cnt_trn_in;
179 ELSIF (p_budget_type = 'PASG_CNT' AND p_transfer_type = 'OUT') THEN
180 RETURN l_pasg_cnt_trn_out;
181 ELSIF (p_budget_type = 'ASG_CNT' AND p_transfer_type = 'IN') THEN
182 RETURN l_asg_cnt_trn_in;
183 ELSIF (p_budget_type = 'ASG_CNT' AND p_transfer_type = 'OUT') THEN
184 RETURN l_asg_cnt_trn_out;
185 END IF;
186
187 RETURN to_number(null);
188
189 END get_transfer_info;
190
191 FUNCTION get_trn_in_hdc(p_sup_person_id IN NUMBER,
192 p_from_date IN DATE,
193 p_to_date IN DATE,
194 p_worker_type IN VARCHAR2,
195 p_directs_only IN VARCHAR2)
196 RETURN NUMBER IS
197
198 BEGIN
199
200 RETURN get_transfer_info
201 (p_sup_person_id => p_sup_person_id,
202 p_from_date => p_from_date,
203 p_to_date => p_to_date,
204 p_worker_type => p_worker_type,
205 p_directs_only => p_directs_only,
206 p_budget_type => 'HEADCOUNT',
207 p_transfer_type => 'IN');
208
209 END get_trn_in_hdc;
210
211 FUNCTION get_trn_out_hdc(p_sup_person_id IN NUMBER,
212 p_from_date IN DATE,
213 p_to_date IN DATE,
214 p_worker_type IN VARCHAR2,
215 p_directs_only IN VARCHAR2)
216 RETURN NUMBER IS
217
218 BEGIN
219
220 RETURN get_transfer_info
221 (p_sup_person_id => p_sup_person_id,
222 p_from_date => p_from_date,
223 p_to_date => p_to_date,
224 p_worker_type => p_worker_type,
225 p_directs_only => p_directs_only,
226 p_budget_type => 'HEADCOUNT',
227 p_transfer_type => 'OUT');
228
229 END get_trn_out_hdc;
230
231 FUNCTION get_trn_in_fte(p_sup_person_id IN NUMBER,
232 p_from_date IN DATE,
233 p_to_date IN DATE,
234 p_worker_type IN VARCHAR2,
235 p_directs_only IN VARCHAR2)
236 RETURN NUMBER IS
237
238 BEGIN
239
240 RETURN get_transfer_info
241 (p_sup_person_id => p_sup_person_id,
242 p_from_date => p_from_date,
243 p_to_date => p_to_date,
244 p_worker_type => p_worker_type,
245 p_directs_only => p_directs_only,
246 p_budget_type => 'FTE',
247 p_transfer_type => 'IN');
248
249 END get_trn_in_fte;
250
251 FUNCTION get_trn_out_fte(p_sup_person_id IN NUMBER,
252 p_from_date IN DATE,
253 p_to_date IN DATE,
254 p_worker_type IN VARCHAR2,
255 p_directs_only IN VARCHAR2)
256 RETURN NUMBER IS
257
258 BEGIN
259
260 RETURN get_transfer_info
261 (p_sup_person_id => p_sup_person_id,
262 p_from_date => p_from_date,
263 p_to_date => p_to_date,
264 p_worker_type => p_worker_type,
265 p_directs_only => p_directs_only,
266 p_budget_type => 'FTE',
267 p_transfer_type => 'OUT');
268
269 END get_trn_out_fte;
270
271 FUNCTION get_trn_in_pasg_cnt(p_sup_person_id IN NUMBER,
272 p_from_date IN DATE,
273 p_to_date IN DATE,
274 p_worker_type IN VARCHAR2,
275 p_directs_only IN VARCHAR2)
276 RETURN NUMBER IS
277
278 BEGIN
279
280 RETURN get_transfer_info
281 (p_sup_person_id => p_sup_person_id,
282 p_from_date => p_from_date,
283 p_to_date => p_to_date,
284 p_worker_type => p_worker_type,
285 p_directs_only => p_directs_only,
286 p_budget_type => 'PASG_CNT',
287 p_transfer_type => 'IN');
288
289 END get_trn_in_pasg_cnt;
290
291 FUNCTION get_trn_out_pasg_cnt(p_sup_person_id IN NUMBER,
292 p_from_date IN DATE,
293 p_to_date IN DATE,
294 p_worker_type IN VARCHAR2,
295 p_directs_only IN VARCHAR2)
296 RETURN NUMBER IS
297
298 BEGIN
299
300 RETURN get_transfer_info
301 (p_sup_person_id => p_sup_person_id,
302 p_from_date => p_from_date,
303 p_to_date => p_to_date,
304 p_worker_type => p_worker_type,
305 p_directs_only => p_directs_only,
306 p_budget_type => 'PASG_CNT',
307 p_transfer_type => 'OUT');
308
309 END get_trn_out_pasg_cnt;
310
311 FUNCTION get_trn_in_asg_cnt(p_sup_person_id IN NUMBER,
312 p_from_date IN DATE,
313 p_to_date IN DATE,
314 p_worker_type IN VARCHAR2,
315 p_directs_only IN VARCHAR2)
316 RETURN NUMBER IS
317
318 BEGIN
319
320 RETURN get_transfer_info
321 (p_sup_person_id => p_sup_person_id,
322 p_from_date => p_from_date,
323 p_to_date => p_to_date,
324 p_worker_type => p_worker_type,
325 p_directs_only => p_directs_only,
326 p_budget_type => 'ASG_CNT',
327 p_transfer_type => 'IN');
328
329 END get_trn_in_asg_cnt;
330
331 FUNCTION get_trn_out_asg_cnt(p_sup_person_id IN NUMBER,
332 p_from_date IN DATE,
333 p_to_date IN DATE,
334 p_worker_type IN VARCHAR2,
335 p_directs_only IN VARCHAR2)
336 RETURN NUMBER IS
337
338 BEGIN
339
340 RETURN get_transfer_info
341 (p_sup_person_id => p_sup_person_id,
342 p_from_date => p_from_date,
343 p_to_date => p_to_date,
344 p_worker_type => p_worker_type,
345 p_directs_only => p_directs_only,
346 p_budget_type => 'ASG_CNT',
347 p_transfer_type => 'OUT');
348
349 END get_trn_out_asg_cnt;
350
351 END HRI_OLTP_VIEW_WRKFRC_MGRH;