115: -- Delete existing frequency rules:
116: --
117: begin
118:
119: hr_utility.set_location('pay_pyepfreq_pkg', 10);
120:
121: SELECT ele_payroll_freq_rule_id
122: INTO v_ele_pay_freq_rule_id
123: FROM pay_ele_payroll_freq_rules
124: WHERE element_type_id = p_eletype_id
125: AND payroll_id = p_payroll_id
126: AND business_group_id + 0 = p_bg_id;
127: --
128: hr_utility.set_location('pay_pyepfreq_pkg', 20);
129: DELETE FROM pay_ele_payroll_freq_rules
130: WHERE ele_payroll_freq_rule_id = v_ele_pay_freq_rule_id;
131: --
132: hr_utility.set_location('pay_pyepfreq_pkg', 30);
128: hr_utility.set_location('pay_pyepfreq_pkg', 20);
129: DELETE FROM pay_ele_payroll_freq_rules
130: WHERE ele_payroll_freq_rule_id = v_ele_pay_freq_rule_id;
131: --
132: hr_utility.set_location('pay_pyepfreq_pkg', 30);
133: DELETE FROM pay_freq_rule_periods
134: WHERE ele_payroll_freq_rule_id = v_ele_pay_freq_rule_id;
135: --
136: -- If either of the above fail, then it's ok, we're just cleaning up
149: -- of, say, every other month or every third month.
150: --
151: begin
152:
153: hr_utility.set_location('pay_pyepfreq_pkg', 40);
154: SELECT number_per_fiscal_year
155: INTO v_number_per_fy
156: FROM per_time_period_types
157: WHERE period_type = p_period_type;
163: END IF;
164: --
165: exception
166: WHEN NO_DATA_FOUND THEN
167: hr_utility.set_message('PAY', 'HR_COULD_NOT_FIND_PERIOD_TYPE');
168: hr_utility.raise_error;
169: end;
170: --
171: -- Now, insertion:
164: --
165: exception
166: WHEN NO_DATA_FOUND THEN
167: hr_utility.set_message('PAY', 'HR_COULD_NOT_FIND_PERIOD_TYPE');
168: hr_utility.raise_error;
169: end;
170: --
171: -- Now, insertion:
172: --
175: UPPER(p_period_3) = 'Y' or
176: UPPER(p_period_4) = 'Y' or
177: UPPER(p_period_5) = 'Y' )
178: then
179: hr_utility.set_location('pay_pyepfreq_pkg', 50);
180: SELECT pay_ele_payroll_freq_rules_s.nextval
181: INTO v_ele_pay_freq_rule_id
182: FROM sys.dual;
183: --
180: SELECT pay_ele_payroll_freq_rules_s.nextval
181: INTO v_ele_pay_freq_rule_id
182: FROM sys.dual;
183: --
184: hr_utility.set_location('pay_pyepfreq_pkg', 60);
185: INSERT INTO pay_ele_payroll_freq_rules (
186: ele_payroll_freq_rule_id,
187: element_type_id,
188: payroll_id,
215: --
216: -- insert freq rule period where period_n = 'Y'
217: --
218: IF UPPER(p_period_1) = 'Y' THEN
219: hr_utility.set_location('pay_pyepfreq_pkg', 70);
220: ins_freq_rule_period( v_ele_pay_freq_rule_id,
221: 1,
222: p_bg_id,
223: v_eff_start_date);
222: p_bg_id,
223: v_eff_start_date);
224: END IF;
225: IF UPPER(p_period_2) = 'Y' THEN
226: hr_utility.set_location('pay_pyepfreq_pkg', 80);
227: ins_freq_rule_period( v_ele_pay_freq_rule_id,
228: 2,
229: p_bg_id,
230: v_eff_start_date);
229: p_bg_id,
230: v_eff_start_date);
231: END IF;
232: IF UPPER(p_period_3) = 'Y' THEN
233: hr_utility.set_location('pay_pyepfreq_pkg', 90);
234: ins_freq_rule_period( v_ele_pay_freq_rule_id,
235: 3,
236: p_bg_id,
237: v_eff_start_date);
236: p_bg_id,
237: v_eff_start_date);
238: END IF;
239: IF UPPER(p_period_4) = 'Y' THEN
240: hr_utility.set_location('pay_pyepfreq_pkg', 100);
241: ins_freq_rule_period( v_ele_pay_freq_rule_id,
242: 4,
243: p_bg_id,
244: v_eff_start_date);
243: p_bg_id,
244: v_eff_start_date);
245: END IF;
246: IF UPPER(p_period_5) = 'Y' THEN
247: hr_utility.set_location('pay_pyepfreq_pkg', 110);
248: ins_freq_rule_period( v_ele_pay_freq_rule_id,
249: 5,
250: p_bg_id,
251: v_eff_start_date);
250: p_bg_id,
251: v_eff_start_date);
252: END IF;
253: IF UPPER(p_period_6) = 'Y' THEN
254: hr_utility.set_location('pay_pyepfreq_pkg', 120);
255: ins_freq_rule_period( v_ele_pay_freq_rule_id,
256: 6,
257: p_bg_id,
258: v_eff_start_date);
342:
343: -- start of populate_freq_rule_table procedure
344: BEGIN
345: lv_record_found := 'N';
346: hr_utility.trace('start of populate_freq_rule_table ');
347: hr_utility.trace('table rec ln_index2 = '||to_char(ln_index2));
348: hr_utility.trace('element_type_id = '||to_char(p_element_type_id));
349: hr_utility.trace('payroll_id = '||to_char(p_payroll_id));
350: hr_utility.trace('business_group_id = '||to_char(p_bg_id));
343: -- start of populate_freq_rule_table procedure
344: BEGIN
345: lv_record_found := 'N';
346: hr_utility.trace('start of populate_freq_rule_table ');
347: hr_utility.trace('table rec ln_index2 = '||to_char(ln_index2));
348: hr_utility.trace('element_type_id = '||to_char(p_element_type_id));
349: hr_utility.trace('payroll_id = '||to_char(p_payroll_id));
350: hr_utility.trace('business_group_id = '||to_char(p_bg_id));
351:
344: BEGIN
345: lv_record_found := 'N';
346: hr_utility.trace('start of populate_freq_rule_table ');
347: hr_utility.trace('table rec ln_index2 = '||to_char(ln_index2));
348: hr_utility.trace('element_type_id = '||to_char(p_element_type_id));
349: hr_utility.trace('payroll_id = '||to_char(p_payroll_id));
350: hr_utility.trace('business_group_id = '||to_char(p_bg_id));
351:
352: if pay_pyepfreq_pkg.g_freq_rule_table.count > 0 then
345: lv_record_found := 'N';
346: hr_utility.trace('start of populate_freq_rule_table ');
347: hr_utility.trace('table rec ln_index2 = '||to_char(ln_index2));
348: hr_utility.trace('element_type_id = '||to_char(p_element_type_id));
349: hr_utility.trace('payroll_id = '||to_char(p_payroll_id));
350: hr_utility.trace('business_group_id = '||to_char(p_bg_id));
351:
352: if pay_pyepfreq_pkg.g_freq_rule_table.count > 0 then
353: hr_utility.trace('g_freq_rule_table.count > 0 satisfied ');
346: hr_utility.trace('start of populate_freq_rule_table ');
347: hr_utility.trace('table rec ln_index2 = '||to_char(ln_index2));
348: hr_utility.trace('element_type_id = '||to_char(p_element_type_id));
349: hr_utility.trace('payroll_id = '||to_char(p_payroll_id));
350: hr_utility.trace('business_group_id = '||to_char(p_bg_id));
351:
352: if pay_pyepfreq_pkg.g_freq_rule_table.count > 0 then
353: hr_utility.trace('g_freq_rule_table.count > 0 satisfied ');
354: for i in g_freq_rule_table.first..g_freq_rule_table.last
349: hr_utility.trace('payroll_id = '||to_char(p_payroll_id));
350: hr_utility.trace('business_group_id = '||to_char(p_bg_id));
351:
352: if pay_pyepfreq_pkg.g_freq_rule_table.count > 0 then
353: hr_utility.trace('g_freq_rule_table.count > 0 satisfied ');
354: for i in g_freq_rule_table.first..g_freq_rule_table.last
355: loop
356: hr_utility.trace('record i = '||to_char(i));
357: if g_freq_rule_table(i).element_type_id = p_ele_type_id and
352: if pay_pyepfreq_pkg.g_freq_rule_table.count > 0 then
353: hr_utility.trace('g_freq_rule_table.count > 0 satisfied ');
354: for i in g_freq_rule_table.first..g_freq_rule_table.last
355: loop
356: hr_utility.trace('record i = '||to_char(i));
357: if g_freq_rule_table(i).element_type_id = p_ele_type_id and
358: g_freq_rule_table(i).payroll_id = p_payroll_id then
359:
360: hr_utility.trace('record found in g_freq_rule_table ');
356: hr_utility.trace('record i = '||to_char(i));
357: if g_freq_rule_table(i).element_type_id = p_ele_type_id and
358: g_freq_rule_table(i).payroll_id = p_payroll_id then
359:
360: hr_utility.trace('record found in g_freq_rule_table ');
361: lv_record_found := 'Y';
362: ln_index2 := i;
363: exit;
364:
377: p_bg_id;
378:
379: for i in 1..6 loop
380: lv_freq_rule_exists := null;
381: hr_utility.trace('for loop to get all period values i = '||
382: to_char(i));
383: open c_get_freq_rule_period(p_element_type_id, p_payroll_id,
384: p_bg_id, i);
385: fetch c_get_freq_rule_period into lv_freq_rule_exists,
385: fetch c_get_freq_rule_period into lv_freq_rule_exists,
386: lv_rule_date_code;
387: close c_get_freq_rule_period;
388:
389: hr_utility.trace('period i value = '||lv_freq_rule_exists);
390: if lv_freq_rule_exists is null then
391: hr_utility.trace('period i values is null satisfied ');
392: lv_freq_rule_exists := 'N';
393: end if;
387: close c_get_freq_rule_period;
388:
389: hr_utility.trace('period i value = '||lv_freq_rule_exists);
390: if lv_freq_rule_exists is null then
391: hr_utility.trace('period i values is null satisfied ');
392: lv_freq_rule_exists := 'N';
393: end if;
394:
395: if i = 1 then
392: lv_freq_rule_exists := 'N';
393: end if;
394:
395: if i = 1 then
396: hr_utility.trace('period 1 = '||lv_freq_rule_exists);
397: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_1 :=
398: lv_freq_rule_exists;
399: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).rule_date_code :=
400: lv_rule_date_code;
398: lv_freq_rule_exists;
399: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).rule_date_code :=
400: lv_rule_date_code;
401: elsif i = 2 then
402: hr_utility.trace('period 2 = '||lv_freq_rule_exists);
403: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_2 :=
404: lv_freq_rule_exists;
405: elsif i = 3 then
406: hr_utility.trace('period 3 = '||lv_freq_rule_exists);
402: hr_utility.trace('period 2 = '||lv_freq_rule_exists);
403: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_2 :=
404: lv_freq_rule_exists;
405: elsif i = 3 then
406: hr_utility.trace('period 3 = '||lv_freq_rule_exists);
407: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_3 :=
408: lv_freq_rule_exists;
409: elsif i = 4 then
410: hr_utility.trace('period 4 = '||lv_freq_rule_exists);
406: hr_utility.trace('period 3 = '||lv_freq_rule_exists);
407: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_3 :=
408: lv_freq_rule_exists;
409: elsif i = 4 then
410: hr_utility.trace('period 4 = '||lv_freq_rule_exists);
411: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_4 :=
412: lv_freq_rule_exists;
413: elsif i = 5 then
414: hr_utility.trace('period 5 = '||lv_freq_rule_exists);
410: hr_utility.trace('period 4 = '||lv_freq_rule_exists);
411: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_4 :=
412: lv_freq_rule_exists;
413: elsif i = 5 then
414: hr_utility.trace('period 5 = '||lv_freq_rule_exists);
415: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_5 :=
416: lv_freq_rule_exists;
417: elsif i = 6 then
418: hr_utility.trace('period 6 = '||lv_freq_rule_exists);
414: hr_utility.trace('period 5 = '||lv_freq_rule_exists);
415: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_5 :=
416: lv_freq_rule_exists;
417: elsif i = 6 then
418: hr_utility.trace('period 6 = '||lv_freq_rule_exists);
419: pay_pyepfreq_pkg.g_freq_rule_table(ln_index2).period_6 :=
420: lv_freq_rule_exists;
421: end if;
422:
420: lv_freq_rule_exists;
421: end if;
422:
423: end loop;
424: hr_utility.trace('End of populate_freq_rule_table function');
425:
426: end if; -- lv_record_found = 'N'
427:
428: return ln_index2;
430: -- end of populate_freq_rule_table procedure
431:
432: -- start of get_freq_rule_period function
433: BEGIN
434: hr_utility.trace('Start of get_freq_rule_period function');
435: hr_utility.trace('Element type id: '||to_char(p_ele_type_id));
436: hr_utility.trace('Payroll id: '||to_char(p_payroll_id));
437: hr_utility.trace('Business Group id: '||to_char(p_bus_grp_id));
438: hr_utility.trace('Period Number: '||to_char(p_period_num));
431:
432: -- start of get_freq_rule_period function
433: BEGIN
434: hr_utility.trace('Start of get_freq_rule_period function');
435: hr_utility.trace('Element type id: '||to_char(p_ele_type_id));
436: hr_utility.trace('Payroll id: '||to_char(p_payroll_id));
437: hr_utility.trace('Business Group id: '||to_char(p_bus_grp_id));
438: hr_utility.trace('Period Number: '||to_char(p_period_num));
439:
432: -- start of get_freq_rule_period function
433: BEGIN
434: hr_utility.trace('Start of get_freq_rule_period function');
435: hr_utility.trace('Element type id: '||to_char(p_ele_type_id));
436: hr_utility.trace('Payroll id: '||to_char(p_payroll_id));
437: hr_utility.trace('Business Group id: '||to_char(p_bus_grp_id));
438: hr_utility.trace('Period Number: '||to_char(p_period_num));
439:
440: ln_rec_index := populate_freq_rule_table(p_ele_type_id,
433: BEGIN
434: hr_utility.trace('Start of get_freq_rule_period function');
435: hr_utility.trace('Element type id: '||to_char(p_ele_type_id));
436: hr_utility.trace('Payroll id: '||to_char(p_payroll_id));
437: hr_utility.trace('Business Group id: '||to_char(p_bus_grp_id));
438: hr_utility.trace('Period Number: '||to_char(p_period_num));
439:
440: ln_rec_index := populate_freq_rule_table(p_ele_type_id,
441: p_payroll_id,
434: hr_utility.trace('Start of get_freq_rule_period function');
435: hr_utility.trace('Element type id: '||to_char(p_ele_type_id));
436: hr_utility.trace('Payroll id: '||to_char(p_payroll_id));
437: hr_utility.trace('Business Group id: '||to_char(p_bus_grp_id));
438: hr_utility.trace('Period Number: '||to_char(p_period_num));
439:
440: ln_rec_index := populate_freq_rule_table(p_ele_type_id,
441: p_payroll_id,
442: p_bus_grp_id);
455: elsif p_period_num = 0 then
456: return g_freq_rule_table(ln_rec_index).rule_date_code;
457: end if;
458:
459: hr_utility.trace('End of get_freq_rule_period function');
460:
461: END get_freq_rule_period;
462: --
463: PROCEDURE remove_freq_rule_period(p_ele_type_id IN NUMBER,
491: procedure initialise_freqrule_table is
492:
493: BEGIN
494:
495: hr_utility.trace('deleting g_freq_rule_table plsql table');
496:
497: pay_pyepfreq_pkg.g_freq_rule_table.delete;
498:
499: END initialise_freqrule_table;