1: PACKAGE BODY hr_us_ff_udf1 AS
2: /* $Header: pyusudf1.pkb 120.49.12010000.18 2008/09/22 11:58:43 nerao ship $ */
3: /*
4: +======================================================================+
5: | Copyright (c) 1993 Oracle Corporation |
6: | Redwood Shores, California, USA |
7: | All rights reserved. |
8: +======================================================================+
9:
10: Name : hr_us_ff_udf1
11: Filename : pyusudf1.pkb
12: Change List
13: -----------
14: Date Name Vers Bug No Description
195:
196: l_return_value varchar2(1);
197:
198: BEGIN
199: hr_utility.trace('BEGIN -> hr_us_ff_udf1.get_tax_jurisdiction ');
200: select nvl(hoi.org_information16,'N')
201: into l_return_value
202: from per_assignments_f paf,
203: hr_organization_information hoi,
209: and hsk.segment1 = hoi.organization_id
210: and hoi.org_information_context = 'W2 Reporting Rules';
211:
212: hr_utility.trace('get_tax_jurisdiction retrun_value = ' || l_return_value);
213: hr_utility.trace('END -> hr_us_ff_udf1.get_tax_jurisdiction ');
214: return (l_return_value);
215: EXCEPTION
216: WHEN NO_DATA_FOUND THEN
217: return ('N');
227:
228: l_ret number;
229:
230: BEGIN
231: hr_utility.trace('tab.count = '||to_char(hr_us_ff_udf1.l_neg_earn_tab.count));
232:
233: IF hr_us_ff_udf1.l_neg_earn_tab.count <= 0 THEN
234: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn := 0;
235: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
229:
230: BEGIN
231: hr_utility.trace('tab.count = '||to_char(hr_us_ff_udf1.l_neg_earn_tab.count));
232:
233: IF hr_us_ff_udf1.l_neg_earn_tab.count <= 0 THEN
234: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn := 0;
235: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
236: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn := p_neg_earn_asg_gre_itd;
237: END IF;
230: BEGIN
231: hr_utility.trace('tab.count = '||to_char(hr_us_ff_udf1.l_neg_earn_tab.count));
232:
233: IF hr_us_ff_udf1.l_neg_earn_tab.count <= 0 THEN
234: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn := 0;
235: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
236: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn := p_neg_earn_asg_gre_itd;
237: END IF;
238:
231: hr_utility.trace('tab.count = '||to_char(hr_us_ff_udf1.l_neg_earn_tab.count));
232:
233: IF hr_us_ff_udf1.l_neg_earn_tab.count <= 0 THEN
234: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn := 0;
235: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
236: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn := p_neg_earn_asg_gre_itd;
237: END IF;
238:
239: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn := p_template_earning +
232:
233: IF hr_us_ff_udf1.l_neg_earn_tab.count <= 0 THEN
234: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn := 0;
235: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
236: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn := p_neg_earn_asg_gre_itd;
237: END IF;
238:
239: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn := p_template_earning +
240: p_addl_asg_gre_itd +
235: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
236: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn := p_neg_earn_asg_gre_itd;
237: END IF;
238:
239: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn := p_template_earning +
240: p_addl_asg_gre_itd +
241: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn;
242:
243: hr_utility.trace('temp_earn = '||
237: END IF;
238:
239: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn := p_template_earning +
240: p_addl_asg_gre_itd +
241: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn;
242:
243: hr_utility.trace('temp_earn = '||
244: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn));
245:
240: p_addl_asg_gre_itd +
241: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn;
242:
243: hr_utility.trace('temp_earn = '||
244: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn));
245:
246: IF hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn < 0 THEN
247: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
248: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn;
242:
243: hr_utility.trace('temp_earn = '||
244: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn));
245:
246: IF hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn < 0 THEN
247: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
248: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn;
249: ELSE
250: IF (hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn > 0) and
243: hr_utility.trace('temp_earn = '||
244: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn));
245:
246: IF hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn < 0 THEN
247: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
248: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn;
249: ELSE
250: IF (hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn > 0) and
251: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn = 0 ) THEN
244: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn));
245:
246: IF hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn < 0 THEN
247: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
248: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn;
249: ELSE
250: IF (hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn > 0) and
251: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn = 0 ) THEN
252: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
246: IF hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn < 0 THEN
247: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
248: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn;
249: ELSE
250: IF (hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn > 0) and
251: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn = 0 ) THEN
252: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
253: END IF;
254:
247: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
248: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn;
249: ELSE
250: IF (hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn > 0) and
251: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn = 0 ) THEN
252: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
253: END IF;
254:
255: IF ( hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn >= 0) and
248: hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn;
249: ELSE
250: IF (hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn > 0) and
251: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn = 0 ) THEN
252: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
253: END IF;
254:
255: IF ( hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn >= 0) and
256: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn < 0) THEN
251: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn = 0 ) THEN
252: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
253: END IF;
254:
255: IF ( hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn >= 0) and
256: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn < 0) THEN
257: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
258: ( -1 * hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn);
259: END IF;
252: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed := 0;
253: END IF;
254:
255: IF ( hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn >= 0) and
256: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn < 0) THEN
257: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
258: ( -1 * hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn);
259: END IF;
260: END IF;
253: END IF;
254:
255: IF ( hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn >= 0) and
256: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn < 0) THEN
257: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
258: ( -1 * hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn);
259: END IF;
260: END IF;
261:
254:
255: IF ( hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn >= 0) and
256: ( hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn < 0) THEN
257: hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed :=
258: ( -1 * hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn);
259: END IF;
260: END IF;
261:
262: hr_utility.trace('neg_earn_feed = '||
259: END IF;
260: END IF;
261:
262: hr_utility.trace('neg_earn_feed = '||
263: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed));
264:
265: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn
266: := hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn +
267: (-1 * hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn);
261:
262: hr_utility.trace('neg_earn_feed = '||
263: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed));
264:
265: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn
266: := hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn +
267: (-1 * hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn);
268:
269: hr_utility.trace('reduced_neg_earn = '||
262: hr_utility.trace('neg_earn_feed = '||
263: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed));
264:
265: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn
266: := hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn +
267: (-1 * hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn);
268:
269: hr_utility.trace('reduced_neg_earn = '||
270: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn));
263: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed));
264:
265: hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn
266: := hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn +
267: (-1 * hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn);
268:
269: hr_utility.trace('reduced_neg_earn = '||
270: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn));
271:
266: := hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn +
267: (-1 * hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn);
268:
269: hr_utility.trace('reduced_neg_earn = '||
270: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn));
271:
272: l_ret := hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn;
273:
274: return l_ret;
268:
269: hr_utility.trace('reduced_neg_earn = '||
270: to_char(hr_us_ff_udf1.l_neg_earn_tab(1).reduced_neg_earn));
271:
272: l_ret := hr_us_ff_udf1.l_neg_earn_tab(1).temp_earn;
273:
274: return l_ret;
275: END calc_earning;
276: --
277: --
278: FUNCTION neg_earning RETURN NUMBER is
279: l_ret number;
280: BEGIN
281: l_ret := hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed;
282: hr_utility.trace('hr_us_ff_udf1.neg_earning : neg_earn_feed = '||
283: to_char(l_ret));
284: return l_ret;
285: END neg_earning;
278: FUNCTION neg_earning RETURN NUMBER is
279: l_ret number;
280: BEGIN
281: l_ret := hr_us_ff_udf1.l_neg_earn_tab(1).neg_earn_feed;
282: hr_utility.trace('hr_us_ff_udf1.neg_earning : neg_earn_feed = '||
283: to_char(l_ret));
284: return l_ret;
285: END neg_earning;
286:
1400: l_business_group_id NUMBER;
1401: l_tax_unit_id NUMBER;
1402:
1403: BEGIN
1404: -- hr_utility.trace_on(NULL,'SK_hr_us_ff_udf1');
1405: hr_utility.trace('Begin get_work_jurisdictions');
1406: hr_utility.trace('get_work_jurisdictions query 1');
1407: hr_utility.trace('Fetch Payroll Details ');
1408:
2081: RETURN NUMBER IS
2082: l_dummy_value number;
2083: BEGIN
2084: --{
2085: l_dummy_value := hr_us_ff_udf1.get_prev_ptd_values(p_assignment_action_id
2086: ,p_tax_unit_id
2087: ,'00-000-0000'
2088: ,p_fed_or_state
2089: ,p_regular_aggregate
2120: l_return number;
2121: begin
2122: --{
2123: hr_utility.trace('IN get_jd_percent');
2124: hr_utility.trace('get_jd_percent Use Information Hours Flag =>'||hr_us_ff_udf1.g_use_it_flag);
2125: IF hr_us_ff_udf1.g_use_it_flag = 'Y' THEN
2126: --{
2127: hr_utility.trace('get_jd_percent Calling Function get_it_jd_percent');
2128: l_percentage :=
2121: begin
2122: --{
2123: hr_utility.trace('IN get_jd_percent');
2124: hr_utility.trace('get_jd_percent Use Information Hours Flag =>'||hr_us_ff_udf1.g_use_it_flag);
2125: IF hr_us_ff_udf1.g_use_it_flag = 'Y' THEN
2126: --{
2127: hr_utility.trace('get_jd_percent Calling Function get_it_jd_percent');
2128: l_percentage :=
2129: hr_us_ff_udf1.get_it_jd_percent(p_jurisdiction_code => p_jurisdiction_code
2125: IF hr_us_ff_udf1.g_use_it_flag = 'Y' THEN
2126: --{
2127: hr_utility.trace('get_jd_percent Calling Function get_it_jd_percent');
2128: l_percentage :=
2129: hr_us_ff_udf1.get_it_jd_percent(p_jurisdiction_code => p_jurisdiction_code
2130: ,p_jd_level => p_jd_level
2131: ,p_hours_to_accumulate => p_hours_to_accumulate
2132: ,p_wages_to_accrue_flag => p_wages_to_accrue_flag
2133: );
3555: of SIT Withheld balance.
3556: */
3557:
3558: /* l_sit_withheld :=
3559: hr_us_ff_udf1.get_jd_tax_balance(p_threshold_basis => l_threshold_basis
3560: ,p_assignment_action_id => p_assignment_action_id
3561: ,p_jurisdiction_code => l_jurisdiction
3562: ,p_tax_unit_id => p_tax_unit_id
3563: ,p_jurisdiction_level => 'STATE'
3579: -- Fetch Information Hours logged for the person depending on the payroll effective date
3580: -- call to get_th_assignment for the STATE
3581: hr_utility.trace('EMJT STATE: Fetch Information Hours Logged for Assignment ');
3582: l_state_ih_logged
3583: := hr_us_ff_udf1.get_person_it_hours(p_person_id => l_person_id
3584: ,p_assignment_id => p_assignment_id
3585: ,p_jurisdiction_code => l_jurisdiction
3586: ,p_jd_level => 2
3587: ,p_threshold_basis => l_threshold_basis
3949: threshold checking irrespective of county tax Withheld balance.
3950: */
3951:
3952: /* l_county_withheld :=
3953: hr_us_ff_udf1.get_jd_tax_balance(p_threshold_basis => l_threshold_basis
3954: ,p_assignment_action_id=> p_assignment_action_id
3955: ,p_jurisdiction_code => l_jurisdiction
3956: ,p_tax_unit_id => p_tax_unit_id
3957: ,p_jurisdiction_level => 'COUNTY'
3963: --=============================================================================
3964: IF l_county_withheld = 0 THEN
3965:
3966: l_sit_county_withheld :=
3967: hr_us_ff_udf1.get_jd_tax_balance(p_threshold_basis => l_threshold_basis
3968: ,p_assignment_action_id => p_assignment_action_id
3969: ,p_jurisdiction_code => l_jurisdiction
3970: ,p_tax_unit_id => p_tax_unit_id
3971: ,p_jurisdiction_level => 'STATE'
3999: -- Fetch Information Hours logged for the person depending on the payroll effective date
4000: -- call to get_th_assignment for the COUNTY
4001: hr_utility.trace('EMJT COUNTY: Fetch Information Hours Logged for Assignment ');
4002: l_county_ih_logged
4003: := hr_us_ff_udf1.get_person_it_hours(p_person_id => l_person_id
4004: ,p_assignment_id => p_assignment_id
4005: ,p_jurisdiction_code => l_jurisdiction
4006: ,p_jd_level => 6
4007: ,p_threshold_basis => l_threshold_basis
4407: threshold checking irrespective of city tax Withheld balance.
4408: */
4409:
4410: /* l_city_withheld :=
4411: hr_us_ff_udf1.get_jd_tax_balance(p_threshold_basis => l_threshold_basis
4412: ,p_assignment_action_id=> p_assignment_action_id
4413: ,p_jurisdiction_code => l_jurisdiction
4414: ,p_tax_unit_id => p_tax_unit_id
4415: ,p_jurisdiction_level => 'CITY'
4421: --=============================================================================
4422: IF l_city_withheld = 0 THEN
4423:
4424: l_county_city_withheld :=
4425: hr_us_ff_udf1.get_jd_tax_balance(p_threshold_basis => l_threshold_basis
4426: ,p_assignment_action_id=> p_assignment_action_id
4427: ,p_jurisdiction_code => l_jurisdiction
4428: ,p_tax_unit_id => p_tax_unit_id
4429: ,p_jurisdiction_level => 'COUNTY'
4433:
4434: IF l_county_city_withheld = 0 THEN
4435:
4436: l_sit_city_withheld :=
4437: hr_us_ff_udf1.get_jd_tax_balance(p_threshold_basis => l_threshold_basis
4438: ,p_assignment_action_id => p_assignment_action_id
4439: ,p_jurisdiction_code => l_jurisdiction
4440: ,p_tax_unit_id => p_tax_unit_id
4441: ,p_jurisdiction_level => 'STATE'
4481: -- Fetch Information Hours logged for the person depending on the payroll effective date
4482: -- call to get_th_assignment for the CITY
4483: hr_utility.trace('EMJT CITY: Fetch Information Hours Logged for the CITY JD');
4484: l_city_ih_logged
4485: := hr_us_ff_udf1.get_person_it_hours(p_person_id => l_person_id
4486: ,p_assignment_id => p_assignment_id
4487: ,p_jurisdiction_code => l_jurisdiction
4488: ,p_jd_level => 11
4489: ,p_threshold_basis => l_threshold_basis
5472: l_return_value NUMBER;
5473:
5474: BEGIN
5475:
5476: hr_utility.trace('hr_us_ff_udf1.get_jit_date');
5477: hr_utility.trace('p_jurisdiction_code --> '|| p_jurisdiction_code);
5478: hr_utility.trace('p_date_earned --> '|| p_date_earned);
5479: hr_utility.trace('p_jit_type --> '|| p_jit_type);
5480:
5582:
5583: END IF;
5584: CLOSE c_override_jd;
5585:
5586: hr_utility.trace('hr_us_ff_udf1.get_rs_jd');
5587: --hr_utility.trace('p_jurisdiction_code --> '|| p_jurisdiction_code);
5588: hr_utility.trace('p_date_earned --> '|| p_date_earned);
5589: --hr_utility.trace('p_jit_type --> '|| p_jit_type);
5590:
5664: END IF;
5665: CLOSE c_override_wk_jd;
5666:
5667:
5668: hr_utility.trace('hr_us_ff_udf1.get_wk_jd');
5669: hr_utility.trace('p_jurisdiction_code --> '|| p_jurisdiction_code);
5670: hr_utility.trace('p_date_earned --> '|| p_date_earned);
5671: --hr_utility.trace('p_jit_type --> '|| p_jit_type);
5672:
5679: END get_wk_jd;
5680:
5681:
5682:
5683: END hr_us_ff_udf1;