8: Cumulative, clear Previous Tax Paid and Taxable Pay,
9: uplift Tax Codes or read new Tax Codes from tape.
10: Author : Barry Goodsell
11: Date Created : 15-Aug-95
12: Uses : hr_entry_api, hr_utility
13:
14: Change List
15: -----------
16: Date Name Vers Bug No Description
427: p_p6_request_id in number default null,
428: p_validate_only in varchar2)
429: IS
430: BEGIN
431: hr_utility.trace('Setting GLOBAL variable');
432: open get_element_type_id;
433: fetch get_element_type_id into g_element_type_id;
434: close get_element_type_id;
435:
443: g_current_req_id := nvl(fnd_profile.value('CONC_REQUEST_ID'),-1);
444: g_update_count := 0;
445: g_reject_count := 0;
446: -- Insert the G_EFFECTIVE_DATE into FND_SESSION
447: hr_utility.fnd_insert(g_effective_date);
448:
449: IF p_validate_only = 'GB_VALIDATE' then /*Added soy 08-09*/
450: g_validate_only := 'Y';
451: elsif p_validate_only = 'GB_VALIDATE_COMMIT' THEN
474: g_T_line_count
475: from pay_gb_soy_outputs
476: where request_id = g_request_id;
477: end if;
478: hr_utility.trace('Running mode : ' || g_mode);
479: hr_utility.trace('Business group : ' || g_business_group_id);
480: hr_utility.trace('PAYE element id : ' || g_element_type_id);
481: hr_utility.trace('Payroll ID : ' || g_payroll_id);
482: hr_utility.trace('Resume ID : ' || g_request_id);
475: from pay_gb_soy_outputs
476: where request_id = g_request_id;
477: end if;
478: hr_utility.trace('Running mode : ' || g_mode);
479: hr_utility.trace('Business group : ' || g_business_group_id);
480: hr_utility.trace('PAYE element id : ' || g_element_type_id);
481: hr_utility.trace('Payroll ID : ' || g_payroll_id);
482: hr_utility.trace('Resume ID : ' || g_request_id);
483: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
476: where request_id = g_request_id;
477: end if;
478: hr_utility.trace('Running mode : ' || g_mode);
479: hr_utility.trace('Business group : ' || g_business_group_id);
480: hr_utility.trace('PAYE element id : ' || g_element_type_id);
481: hr_utility.trace('Payroll ID : ' || g_payroll_id);
482: hr_utility.trace('Resume ID : ' || g_request_id);
483: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
484: hr_utility.trace('Effective date : ' || g_effective_date);
477: end if;
478: hr_utility.trace('Running mode : ' || g_mode);
479: hr_utility.trace('Business group : ' || g_business_group_id);
480: hr_utility.trace('PAYE element id : ' || g_element_type_id);
481: hr_utility.trace('Payroll ID : ' || g_payroll_id);
482: hr_utility.trace('Resume ID : ' || g_request_id);
483: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
484: hr_utility.trace('Effective date : ' || g_effective_date);
485: hr_utility.trace('Authority code : ' || g_authority);
478: hr_utility.trace('Running mode : ' || g_mode);
479: hr_utility.trace('Business group : ' || g_business_group_id);
480: hr_utility.trace('PAYE element id : ' || g_element_type_id);
481: hr_utility.trace('Payroll ID : ' || g_payroll_id);
482: hr_utility.trace('Resume ID : ' || g_request_id);
483: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
484: hr_utility.trace('Effective date : ' || g_effective_date);
485: hr_utility.trace('Authority code : ' || g_authority);
486: hr_utility.trace('PAYE reference : ' || g_tax_ref);
479: hr_utility.trace('Business group : ' || g_business_group_id);
480: hr_utility.trace('PAYE element id : ' || g_element_type_id);
481: hr_utility.trace('Payroll ID : ' || g_payroll_id);
482: hr_utility.trace('Resume ID : ' || g_request_id);
483: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
484: hr_utility.trace('Effective date : ' || g_effective_date);
485: hr_utility.trace('Authority code : ' || g_authority);
486: hr_utility.trace('PAYE reference : ' || g_tax_ref);
487: EXCEPTION
480: hr_utility.trace('PAYE element id : ' || g_element_type_id);
481: hr_utility.trace('Payroll ID : ' || g_payroll_id);
482: hr_utility.trace('Resume ID : ' || g_request_id);
483: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
484: hr_utility.trace('Effective date : ' || g_effective_date);
485: hr_utility.trace('Authority code : ' || g_authority);
486: hr_utility.trace('PAYE reference : ' || g_tax_ref);
487: EXCEPTION
488: when OTHERS then
481: hr_utility.trace('Payroll ID : ' || g_payroll_id);
482: hr_utility.trace('Resume ID : ' || g_request_id);
483: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
484: hr_utility.trace('Effective date : ' || g_effective_date);
485: hr_utility.trace('Authority code : ' || g_authority);
486: hr_utility.trace('PAYE reference : ' || g_tax_ref);
487: EXCEPTION
488: when OTHERS then
489: raise;
482: hr_utility.trace('Resume ID : ' || g_request_id);
483: hr_utility.trace('P6 request ID : ' || g_p6_request_id);
484: hr_utility.trace('Effective date : ' || g_effective_date);
485: hr_utility.trace('Authority code : ' || g_authority);
486: hr_utility.trace('PAYE reference : ' || g_tax_ref);
487: EXCEPTION
488: when OTHERS then
489: raise;
490: END set_global;
532: and paaf.assignment_id = p_assignment_id
533: and paaf.business_group_id = g_business_group_id;
534:
535: BEGIN
536: hr_utility.trace(' Check assignment is Teminated or Ended in future ');
537: open get_future_term_date(p_assignment_id, p_effective_date);
538: fetch get_future_term_date into l_future_term_date;
539: if get_future_term_date%FOUND then
540: l_future_term_flag := 'Y';
552: --------------------------------------------------
553: -- Check if assignment is terminated in future --
554: --------------------------------------------------
555: if l_future_term_flag = 'Y' then
556: hr_utility.trace(' Assingment Terminated Date is : ' || l_future_term_date);
557: l_return_flag := 'Y';
558: end if;
559:
560: -------------------------------------------
560: -------------------------------------------
561: --Check if assignment is Ended in future --
562: -------------------------------------------
563: if l_future_end_flag = 'Y' then
564: hr_utility.trace(' Assingment End Date is : ' || l_future_end_date );
565: l_return_flag := 'Y';
566: end if;
567: elsif p_person_rec.aggregate_flag ='Y' then
568: ------------------------------------------------------------------------------------
594: p_effective_date IN DATE)
595:
596: RETURN VARCHAR2 IS
597: BEGIN
598: hr_utility.trace(' Inside set_cpe_flag function for term asg: ' || p_assignment_id);
599: for l_record in get_cpe_flag(p_person_id,
600: p_paye_ref,
601: p_effective_date)
602: loop
599: for l_record in get_cpe_flag(p_person_id,
600: p_paye_ref,
601: p_effective_date)
602: loop
603: hr_utility.trace(' Active or suspened asg record');
604: hr_utility.trace(' Assignment ID : ' || l_record.assignment_id);
605: hr_utility.trace(' PAYE Ref : ' || p_paye_ref);
606: if pay_gb_eoy_archive.get_agg_active_end(l_record.assignment_id, p_paye_ref , p_effective_date)=
607: pay_gb_eoy_archive.get_agg_active_end(p_assignment_id, p_paye_ref, p_effective_date)
600: p_paye_ref,
601: p_effective_date)
602: loop
603: hr_utility.trace(' Active or suspened asg record');
604: hr_utility.trace(' Assignment ID : ' || l_record.assignment_id);
605: hr_utility.trace(' PAYE Ref : ' || p_paye_ref);
606: if pay_gb_eoy_archive.get_agg_active_end(l_record.assignment_id, p_paye_ref , p_effective_date)=
607: pay_gb_eoy_archive.get_agg_active_end(p_assignment_id, p_paye_ref, p_effective_date)
608: AND pay_gb_eoy_archive.get_agg_active_start(l_record.assignment_id, p_paye_ref, p_effective_date)=
601: p_effective_date)
602: loop
603: hr_utility.trace(' Active or suspened asg record');
604: hr_utility.trace(' Assignment ID : ' || l_record.assignment_id);
605: hr_utility.trace(' PAYE Ref : ' || p_paye_ref);
606: if pay_gb_eoy_archive.get_agg_active_end(l_record.assignment_id, p_paye_ref , p_effective_date)=
607: pay_gb_eoy_archive.get_agg_active_end(p_assignment_id, p_paye_ref, p_effective_date)
608: AND pay_gb_eoy_archive.get_agg_active_start(l_record.assignment_id, p_paye_ref, p_effective_date)=
609: pay_gb_eoy_archive.get_agg_active_start(p_assignment_id, p_paye_ref, p_effective_date) then
607: pay_gb_eoy_archive.get_agg_active_end(p_assignment_id, p_paye_ref, p_effective_date)
608: AND pay_gb_eoy_archive.get_agg_active_start(l_record.assignment_id, p_paye_ref, p_effective_date)=
609: pay_gb_eoy_archive.get_agg_active_start(p_assignment_id, p_paye_ref, p_effective_date) then
610:
611: hr_utility.trace(' Term Asg is in active CPE ');
612: return 'Y';
613: end if;
614: end loop;
615: hr_utility.trace(' Term Asg is not in active CPE ');
611: hr_utility.trace(' Term Asg is in active CPE ');
612: return 'Y';
613: end if;
614: end loop;
615: hr_utility.trace(' Term Asg is not in active CPE ');
616: RETURN 'N';
617: EXCEPTION
618: when others then
619: raise;
1262: p_paye_rec.refundable_sv := lookup_meaning('GB_REFUNDABLE', p_paye_rec.refundable_sv);
1263: p_paye_rec.authority_sv := lookup_meaning('GB_AUTHORITY', p_paye_rec.authority_sv);
1264: EXCEPTION
1265: WHEN others then
1266: hr_utility.trace('Error in post_fetch at step ' || l_step);
1267: hr_utility.trace(SQLERRM(SQLCODE));
1268: raise;
1269: END post_fetch;
1270:
1263: p_paye_rec.authority_sv := lookup_meaning('GB_AUTHORITY', p_paye_rec.authority_sv);
1264: EXCEPTION
1265: WHEN others then
1266: hr_utility.trace('Error in post_fetch at step ' || l_step);
1267: hr_utility.trace(SQLERRM(SQLCODE));
1268: raise;
1269: END post_fetch;
1270:
1271: ---------------------------------------------------------------------
1335: p_auth_code out nocopy varchar2) return DATE -- Bug#9253974 -- added authority code parameter
1336: IS
1337: l_future_date date := null;
1338: BEGIN
1339: hr_utility.trace(' Check future change');
1340:
1341: -- Start of bug#9253974
1342: /*select ele.effective_start_date
1343: into l_future_date
1364: and eev.effective_start_date >= p_effective_date
1365: and p_effective_date between inv.effective_start_date and inv.effective_end_date
1366: order by ele.effective_start_date asc;
1367: -- End of bug#9253974
1368: hr_utility.trace(' Future change date : ' || l_future_date);
1369: p_multi_change := FALSE;
1370: return(l_future_date);
1371: EXCEPTION
1372: when too_many_rows then
1435: l_input_value_id_tbl,
1436: l_entry_value_tbl) ;
1437:
1438: if g_validate_only = 'N' then /*Added soy 08-09*/
1439: hr_utility.trace(' In Validate And Commit Mode therefore updating');
1440:
1441: -- For bug 8485686
1442: pqp_gb_ad_ee.g_global_paye_validation := 'N';
1443:
1531: if p_asg_typ in ('ACTIVE_ASSIGN','ACTIVE_APL','SUSP_ASSIGN','TERM_ASSIGN') and g_cpe_flag ='Y' then
1532: if p_paye_rec.tax_basis_sv = 'Non Cumulative' THEN /*Added terminated for soy 08-09*/
1533: p_paye_rec.tax_basis_sv := 'Cumulative';
1534: p_paye_rec.tax_basis_amended := TRUE;
1535: hr_utility.trace(' Tax Basis update');
1536: end if;
1537: end if;
1538: end if;
1539: elsif p_aggregate_flag ='N' then
1541: if p_asg_typ in ('ACTIVE_ASSIGN','ACTIVE_APL','SUSP_ASSIGN') then
1542: if p_paye_rec.tax_basis_sv = 'Non Cumulative' then
1543: p_paye_rec.tax_basis_sv := 'Cumulative';
1544: p_paye_rec.tax_basis_amended := TRUE;
1545: hr_utility.trace(' Tax Basis update');
1546: end if;
1547: end if;
1548: end if;
1549: end if;
1552: to_number(nvl(p_paye_rec.tax_previous_sv,0)) > 0) then
1553: p_paye_rec.pay_previous_sv := '0';
1554: p_paye_rec.tax_previous_sv := '0';
1555: p_paye_rec.p45_val_amended := TRUE;
1556: hr_utility.trace(' P45 Update');
1557: end if;
1558: END update_p45_taxbasis;
1559:
1560: ---------------------------------------------------------------------
1664: IS
1665: ex_error exception;
1666: l_msg varchar2(255);
1667: BEGIN
1668: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1669: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1670: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1671: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1672: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1665: ex_error exception;
1666: l_msg varchar2(255);
1667: BEGIN
1668: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1669: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1670: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1671: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1672: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1673: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1666: l_msg varchar2(255);
1667: BEGIN
1668: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1669: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1670: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1671: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1672: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1673: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1674: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1667: BEGIN
1668: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1669: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1670: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1671: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1672: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1673: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1674: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1675: -------------------------------------------
1668: hr_utility.trace(' Conv to PAYE Rec (mode 3 | 4)');
1669: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1670: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1671: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1672: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1673: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1674: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1675: -------------------------------------------
1676: -- First we check the incoming tax basis --
1669: hr_utility.trace(' Incoming tax basis: ' || p_m34_rec.tax_basis );
1670: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1671: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1672: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1673: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1674: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1675: -------------------------------------------
1676: -- First we check the incoming tax basis --
1677: -------------------------------------------
1670: hr_utility.trace(' Incoming tax code : ' || p_m34_rec.tax_code);
1671: hr_utility.trace(' Incoming P45 (P|T): ' || nvl(p_m34_rec.previous_pay,0) || ' | ' || nvl(p_m34_rec.previous_tax,0));
1672: hr_utility.trace(' Current tax basis : ' || p_paye_rec.tax_basis_sv);
1673: hr_utility.trace(' Current tax code : ' || p_paye_rec.tax_code_sv);
1674: hr_utility.trace(' Current P45 (P|T) : ' || nvl(p_paye_rec.pay_previous_sv,0) || ' | ' || nvl(p_paye_rec.tax_previous_sv,0));
1675: -------------------------------------------
1676: -- First we check the incoming tax basis --
1677: -------------------------------------------
1678: if p_m34_rec.tax_basis is null then
1676: -- First we check the incoming tax basis --
1677: -------------------------------------------
1678: if p_m34_rec.tax_basis is null then
1679: if p_paye_rec.tax_basis_sv <> 'Cumulative' then
1680: hr_utility.trace(' Updating tax basis');
1681: p_paye_rec.tax_basis_sv := 'Cumulative';
1682: p_paye_rec.tax_basis_amended := TRUE;
1683: end if;
1684: elsif p_m34_rec.tax_basis = 'Y' then
1682: p_paye_rec.tax_basis_amended := TRUE;
1683: end if;
1684: elsif p_m34_rec.tax_basis = 'Y' then
1685: if p_paye_rec.tax_basis_sv <> 'Non Cumulative' then
1686: hr_utility.trace(' Updating tax basis');
1687: p_paye_rec.tax_basis_sv := 'Non Cumulative';
1688: p_paye_rec.tax_basis_amended := TRUE;
1689: end if;
1690: else
1700: raise ex_error;
1701: end if;
1702: p_paye_rec.tax_code_sv := p_m34_rec.tax_code;
1703: p_paye_rec.tax_code_amended := TRUE;
1704: hr_utility.trace(' Updating tax code');
1705: end if;
1706: --------------------------------------------
1707: -- If the incoming tax code is D0, --
1708: -- change the tax basis to Non Cumulative --
1751: l_future date;
1752: l_check_date date;
1753: l_auth_code varchar2(255); -- Bug#9253974: variable to store auth code
1754: BEGIN
1755: hr_utility.trace(' Set New PAYE Record');
1756: l_check_date := g_effective_date;
1757: l_multi_change := FALSE;
1758: ----------------
1759: -- For mode 1 --
1758: ----------------
1759: -- For mode 1 --
1760: ----------------
1761: if g_mode = 1 then
1762: hr_utility.trace(' Updating P45 figures');
1763: update_p45_taxbasis(p_asg_typ,p_paye_rec, p_aggregate_flag);
1764: ----------------------
1765: -- For mode 3 and 4 --
1766: ----------------------
1764: ----------------------
1765: -- For mode 3 and 4 --
1766: ----------------------
1767: elsif g_mode in (3,4) and g_cpe_flag ='Y' then /*CPE condition Added soy 08-09*/
1768: hr_utility.trace(' Calling conv_to_paye_rec');
1769: l_msg := conv_to_paye_rec(p_asg_id,p_m34_rec,p_paye_rec);
1770: if l_msg is not null then
1771: raise ex_error;
1772: end if;
1771: raise ex_error;
1772: end if;
1773: l_check_date := p_m34_rec.effective_date;
1774: end if;
1775: hr_utility.trace(' Check Date : ' || l_check_date);
1776: ----------------------------------
1777: -- Check for any future changes --
1778: ----------------------------------
1779: -- Bug#9253974: added auth code parameter
1778: ----------------------------------
1779: -- Bug#9253974: added auth code parameter
1780: l_future := check_future_changes(p_asg_id, l_check_date, l_multi_change,l_auth_code);
1781: if l_multi_change then
1782: hr_utility.trace(' Multiple future changes found');
1783: l_msg := err_multi_fchanges;
1784: raise ex_error;
1785: end if;
1786:
1784: raise ex_error;
1785: end if;
1786:
1787: if l_future is not null then
1788: hr_utility.trace(' Future change found');
1789: if g_mode = 1 then
1790: -------------------------------------------------------
1791: -- For mode 1, if exists change on the same date and --
1792: -- no change to P45, reject the record --
1860: end if;
1861: -----------------------
1862: -- Set the authority --
1863: -----------------------
1864: hr_utility.trace(' Setting authority');
1865: p_paye_rec.authority_sv := g_authority;
1866: hr_utility.trace(' New PAYE Details element:');
1867: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1868: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1862: -- Set the authority --
1863: -----------------------
1864: hr_utility.trace(' Setting authority');
1865: p_paye_rec.authority_sv := g_authority;
1866: hr_utility.trace(' New PAYE Details element:');
1867: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1868: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1869: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1870: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1863: -----------------------
1864: hr_utility.trace(' Setting authority');
1865: p_paye_rec.authority_sv := g_authority;
1866: hr_utility.trace(' New PAYE Details element:');
1867: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1868: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1869: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1870: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1871: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1864: hr_utility.trace(' Setting authority');
1865: p_paye_rec.authority_sv := g_authority;
1866: hr_utility.trace(' New PAYE Details element:');
1867: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1868: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1869: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1870: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1871: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1872: return null;
1865: p_paye_rec.authority_sv := g_authority;
1866: hr_utility.trace(' New PAYE Details element:');
1867: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1868: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1869: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1870: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1871: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1872: return null;
1873: EXCEPTION
1866: hr_utility.trace(' New PAYE Details element:');
1867: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1868: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1869: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1870: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1871: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1872: return null;
1873: EXCEPTION
1874: WHEN ex_error THEN
1867: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1868: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1869: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1870: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1871: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1872: return null;
1873: EXCEPTION
1874: WHEN ex_error THEN
1875: return l_msg;
1886: IS
1887: ex_exemp exception;
1888: l_msg varchar2(255);
1889: BEGIN
1890: hr_utility.trace(' Check for Leaver');
1891: if p_per_rec.person_type in ('EX_EMP','EX_APL') then
1892: --
1893: hr_utility.trace(' LEAVER = TRUE');
1894: if g_mode in (3,4) then
1889: BEGIN
1890: hr_utility.trace(' Check for Leaver');
1891: if p_per_rec.person_type in ('EX_EMP','EX_APL') then
1892: --
1893: hr_utility.trace(' LEAVER = TRUE');
1894: if g_mode in (3,4) then
1895: l_msg := err_mode34_ex_emp;
1896: elsif g_mode = 2 then
1897: l_msg := err_mode2_ex_emp;
1898: end if;
1899: --
1900: raise ex_exemp;
1901: end if;
1902: hr_utility.trace(' Not a leaver');
1903: return null;
1904: EXCEPTION
1905: when ex_exemp then
1906: return l_msg;
1979: raise ex_tax_code;
1980: end if;
1981: end if;
1982: p_paye_rec := l_paye_rec;
1983: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1984: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1985: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1986: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1987: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1980: end if;
1981: end if;
1982: p_paye_rec := l_paye_rec;
1983: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1984: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1985: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1986: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1987: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1988: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1981: end if;
1982: p_paye_rec := l_paye_rec;
1983: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1984: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1985: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1986: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1987: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1988: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1989: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1982: p_paye_rec := l_paye_rec;
1983: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1984: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1985: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1986: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1987: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1988: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1989: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1990: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1983: hr_utility.trace(' Element Entry ID : ' || p_paye_rec.element_entry_id );
1984: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1985: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1986: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1987: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1988: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1989: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1990: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1991: return null;
1984: hr_utility.trace(' Start Date : ' || p_paye_rec.effective_start_date );
1985: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1986: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1987: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1988: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1989: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1990: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1991: return null;
1992: EXCEPTION
1985: hr_utility.trace(' End Date : ' || p_paye_rec.effective_end_date );
1986: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1987: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1988: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1989: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1990: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1991: return null;
1992: EXCEPTION
1993: WHEN ex_tax_code THEN
1986: hr_utility.trace(' Tax Code : ' || p_paye_rec.tax_code_sv );
1987: hr_utility.trace(' Tax Basis : ' || p_paye_rec.tax_basis_sv );
1988: hr_utility.trace(' Previous Pay : ' || p_paye_rec.pay_previous_sv );
1989: hr_utility.trace(' Previous Tax : ' || p_paye_rec.tax_previous_sv );
1990: hr_utility.trace(' Authority : ' || p_paye_rec.authority_sv );
1991: return null;
1992: EXCEPTION
1993: WHEN ex_tax_code THEN
1994: return l_msg;
2419: -- Call API to update --
2420: ----------------------------
2421:
2422: if g_validate_only ='N' then /*Added soy 08-09*/
2423: hr_utility.trace(' In Validate And Commit Mode therefore updating.');
2424:
2425: -- For bug 8485686
2426: pqp_gb_ad_ee.g_global_paye_validation := 'N';
2427:
2455: ------------------------------
2456: -- Now stamp the creator id --
2457: ------------------------------
2458: if g_validate_only ='N' then /*Added soy 08-09*/
2459: hr_utility.trace(' In Validate And Commit Mode therefore updating.');
2460: update pay_element_entries_f pef
2461: set pef.creator_id = nvl(g_request_id,g_current_req_id)
2462: where pef.element_entry_id = p_paye_rec.element_entry_id
2463: and pef.effective_start_date = p_per_rec.effective_date;
2557: l_m34_rec := p_m34_rec;
2558: -- Here based on profile we have to process the employee.
2559: -- Get the profile value
2560: fnd_profile.get('GB RTI Uptake', l_uptake_value);
2561: hr_utility.trace(' l_uptake_value : '||l_uptake_value);
2562:
2563: /* When RTI Profile is set to None continue the old process
2564: as employer is not live on RTI.
2565: */
2566: IF l_uptake_value IS NOT NULL and l_uptake_value = 'ALL' THEN
2567: -- treat the works number as payroll id and get the assignment number for the
2568: -- payroll id.
2569: l_m34_rec.assignment_number := null;
2570: hr_utility.trace('In All: '||l_uptake_value);
2571: open csr_get_asg_num;
2572: fetch csr_get_asg_num into l_m34_rec.assignment_number,l_asg_id,l_paye_agg;
2573: close csr_get_asg_num;
2574: hr_utility.trace('Assignment_number : ' || l_m34_rec.assignment_number);
2570: hr_utility.trace('In All: '||l_uptake_value);
2571: open csr_get_asg_num;
2572: fetch csr_get_asg_num into l_m34_rec.assignment_number,l_asg_id,l_paye_agg;
2573: close csr_get_asg_num;
2574: hr_utility.trace('Assignment_number : ' || l_m34_rec.assignment_number);
2575:
2576: if l_m34_rec.assignment_number is null then
2577: l_msg := err_emp_not_found_payroll;
2578: raise ex_edi_error;
2608: l_m34_rec.assignment_number := null;
2609: open csr_get_asg_num;
2610: fetch csr_get_asg_num into l_m34_rec.assignment_number,l_asg_id,l_paye_agg;
2611: close csr_get_asg_num;
2612: hr_utility.trace('Assignment_number : ' || l_m34_rec.assignment_number);
2613:
2614: if l_m34_rec.assignment_number is null then
2615: l_msg := err_emp_not_found_payroll;
2616: raise ex_edi_error;
2629: end loop;
2630: end if;
2631: exception --2
2632: when no_data_found then
2633: hr_utility.trace('Profile is partial but RTI not live for paye ref:'|| p_m34_rec.paye_ref);
2634: end;--2
2635: END IF;
2636: l_msg := find_employee(l_m34_rec, l_per_record);
2637: -- Start bug#8497477 : Assigned values before the exception as if exception raises we can't assign the values.
2643: /*l_paye_ref := l_m34_rec.paye_ref;
2644: l_asg_number := l_m34_rec.assignment_number;*/
2645: -- End bug#8497477
2646: end if;
2647: hr_utility.trace('Start processing record');
2648: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2649: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2650: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2651: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2644: l_asg_number := l_m34_rec.assignment_number;*/
2645: -- End bug#8497477
2646: end if;
2647: hr_utility.trace('Start processing record');
2648: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2649: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2650: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2651: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2652: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2645: -- End bug#8497477
2646: end if;
2647: hr_utility.trace('Start processing record');
2648: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2649: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2650: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2651: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2652: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2653: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2646: end if;
2647: hr_utility.trace('Start processing record');
2648: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2649: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2650: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2651: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2652: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2653: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2654: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2647: hr_utility.trace('Start processing record');
2648: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2649: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2650: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2651: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2652: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2653: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2654: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2655: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2648: hr_utility.trace(' Person ID : ' || l_per_record.person_id);
2649: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2650: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2651: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2652: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2653: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2654: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2655: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2656: hr_utility.trace(' End date : ' || l_per_record.end_date);
2649: hr_utility.trace(' NI Number : ' || l_per_record.ni_number);
2650: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2651: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2652: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2653: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2654: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2655: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2656: hr_utility.trace(' End date : ' || l_per_record.end_date);
2657:
2650: hr_utility.trace(' Aggregated : ' || l_per_record.aggregate_flag);
2651: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2652: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2653: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2654: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2655: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2656: hr_utility.trace(' End date : ' || l_per_record.end_date);
2657:
2658: -----------------------------------------------------------------------
2651: hr_utility.trace(' Director : ' || l_per_record.director_flag);
2652: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2653: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2654: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2655: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2656: hr_utility.trace(' End date : ' || l_per_record.end_date);
2657:
2658: -----------------------------------------------------------------------
2659: -- Now, loop through each assignment and see if we should process it --
2652: hr_utility.trace(' Person type : ' || l_per_record.person_type);
2653: hr_utility.trace(' Term date : ' || l_per_record.term_date);
2654: hr_utility.trace(' LSP date : ' || l_per_record.lsp_date);
2655: hr_utility.trace(' Start date : ' || l_per_record.start_date);
2656: hr_utility.trace(' End date : ' || l_per_record.end_date);
2657:
2658: -----------------------------------------------------------------------
2659: -- Now, loop through each assignment and see if we should process it --
2660: -----------------------------------------------------------------------
2672: l_paye_ref,
2673: l_asg_number,
2674: l_per_record.effective_date)
2675: loop
2676: hr_utility.trace('Start processing record');
2677: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2678: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2679: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2680: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2673: l_asg_number,
2674: l_per_record.effective_date)
2675: loop
2676: hr_utility.trace('Start processing record');
2677: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2678: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2679: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2680: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2681: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2674: l_per_record.effective_date)
2675: loop
2676: hr_utility.trace('Start processing record');
2677: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2678: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2679: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2680: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2681: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2682: --------------------------------------------
2675: loop
2676: hr_utility.trace('Start processing record');
2677: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2678: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2679: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2680: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2681: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2682: --------------------------------------------
2683: -- Anonymous block to trap non fatal error --
2676: hr_utility.trace('Start processing record');
2677: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2678: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2679: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2680: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2681: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2682: --------------------------------------------
2683: -- Anonymous block to trap non fatal error --
2684: ---------------------------------------------
2677: hr_utility.trace(' Assignment ID : ' || asg_record.assignment_id);
2678: hr_utility.trace(' Payroll ID : ' || asg_record.payroll_id);
2679: hr_utility.trace(' Assignment No : ' || asg_record.assignment_number);
2680: hr_utility.trace(' Asg Status : ' || asg_record.asg_status);
2681: hr_utility.trace(' PAYE Ref : ' || asg_record.tax_ref);
2682: --------------------------------------------
2683: -- Anonymous block to trap non fatal error --
2684: ---------------------------------------------
2685: begin
2695: if l_msg is not null then
2696: raise ex_asg_error;
2697: end if;
2698:
2699: hr_utility.trace(' Fetch PAYE record');
2700: l_msg := get_paye_record(asg_record.assignment_id,
2701: l_per_record.effective_date,
2702: l_paye_rec);
2703: ------------------------------
2723: open get_req_cur (l_paye_rec.creator_id);
2724: fetch get_req_cur into l_exists;
2725: if get_req_cur%FOUND then
2726: l_process := false;
2727: hr_utility.trace(' Not processing the assignment');
2728: end if;
2729: close get_req_cur;
2730: ------------------------------------------------------------------
2731: -- If part of this assignment already been processed --
2775: raise ex_asg_error;
2776: end if;
2777: end if;
2778: -- End of bug#8510399
2779: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2780: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2781: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2782: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2783: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2776: end if;
2777: end if;
2778: -- End of bug#8510399
2779: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2780: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2781: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2782: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2783: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2784: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2777: end if;
2778: -- End of bug#8510399
2779: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2780: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2781: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2782: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2783: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2784: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2785: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2778: -- End of bug#8510399
2779: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2780: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2781: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2782: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2783: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2784: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2785: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2786: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2779: hr_utility.trace(' Element Entry ID : ' || l_paye_rec.element_entry_id );
2780: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2781: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2782: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2783: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2784: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2785: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2786: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2787: hr_utility.trace(' Done setting new PAYE');
2780: hr_utility.trace(' Start Date : ' || l_paye_rec.effective_start_date );
2781: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2782: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2783: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2784: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2785: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2786: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2787: hr_utility.trace(' Done setting new PAYE');
2788: -----------------------------------------------
2781: hr_utility.trace(' End Date : ' || l_paye_rec.effective_end_date );
2782: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2783: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2784: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2785: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2786: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2787: hr_utility.trace(' Done setting new PAYE');
2788: -----------------------------------------------
2789: -- If mode 1 then try to process NI director --
2782: hr_utility.trace(' Tax Code : ' || l_paye_rec.tax_code_sv );
2783: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2784: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2785: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2786: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2787: hr_utility.trace(' Done setting new PAYE');
2788: -----------------------------------------------
2789: -- If mode 1 then try to process NI director --
2790: -----------------------------------------------
2783: hr_utility.trace(' Tax Basis : ' || l_paye_rec.tax_basis_sv );
2784: hr_utility.trace(' Previous Pay : ' || l_paye_rec.pay_previous_sv );
2785: hr_utility.trace(' Previous Tax : ' || l_paye_rec.tax_previous_sv );
2786: hr_utility.trace(' Authority : ' || l_paye_rec.authority_sv );
2787: hr_utility.trace(' Done setting new PAYE');
2788: -----------------------------------------------
2789: -- If mode 1 then try to process NI director --
2790: -----------------------------------------------
2791: if g_mode = 1 then
2788: -----------------------------------------------
2789: -- If mode 1 then try to process NI director --
2790: -----------------------------------------------
2791: if g_mode = 1 then
2792: hr_utility.trace(' Check if we need to do any update');
2793: l_dir := process_directors(l_per_record,asg_record.assignment_id);
2794: if l_paye_rec.tax_basis_amended or l_paye_rec.p45_val_amended or
2795: l_paye_rec.tax_code_amended or l_dir is not null then
2796: hr_utility.trace(' Calling update_record to update PAYE');
2792: hr_utility.trace(' Check if we need to do any update');
2793: l_dir := process_directors(l_per_record,asg_record.assignment_id);
2794: if l_paye_rec.tax_basis_amended or l_paye_rec.p45_val_amended or
2795: l_paye_rec.tax_code_amended or l_dir is not null then
2796: hr_utility.trace(' Calling update_record to update PAYE');
2797: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2798: if l_msg is not null then
2799: raise ex_asg_error;
2800: end if;
2797: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2798: if l_msg is not null then
2799: raise ex_asg_error;
2800: end if;
2801: hr_utility.trace(' Write out body section');
2802: --Start of bug#8510399
2803: -- Start bug#8497477 : Report tax ref if current and previous references are not same.
2804: -- Bug#9253974 : Write to temporary table if PAYE aggregations is set
2805: If l_per_record.aggregate_flag <> 'Y' then
2821: end if;
2822: -- end of bug#8510399
2823: end if;
2824: else
2825: hr_utility.trace(' Check if we need to do any update');
2826: -- if l_paye_rec.tax_basis_amended or l_paye_rec.p45_val_amended or
2827: -- l_paye_rec.tax_code_amended then
2828: hr_utility.trace(' Calling update_record to update PAYE');
2829: --Added for Bug 7373763
2824: else
2825: hr_utility.trace(' Check if we need to do any update');
2826: -- if l_paye_rec.tax_basis_amended or l_paye_rec.p45_val_amended or
2827: -- l_paye_rec.tax_code_amended then
2828: hr_utility.trace(' Calling update_record to update PAYE');
2829: --Added for Bug 7373763
2830: if g_mode=2 then
2831: if l_paye_rec.tax_code_amended=TRUE then
2832: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2832: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2833: if l_msg is not null then
2834: raise ex_asg_error;
2835: end if;
2836: hr_utility.trace(' Write out body section');
2837: --Start of bug#8510399
2838: -- Start bug#8497477 : Report tax ref if current and previous references are not same.
2839: -- Bug#9253974 : Write to temporary table if PAYE aggregations is set
2840: If l_per_record.aggregate_flag <> 'Y' then
2860: l_msg := update_record(l_paye_rec, l_per_record, l_m34_rec);
2861: if l_msg is not null then
2862: raise ex_asg_error;
2863: end if;
2864: hr_utility.trace(' Write out body section');
2865: --Start of bug#8510399
2866: -- Start bug#8497477 : Report tax ref if current and previous references are not same.
2867: -- Bug#9253974 : Write to temporary table if PAYE aggregations is set
2868: If l_per_record.aggregate_flag <> 'Y' then
2950: -- end of bug#8510399
2951:
2952: -- Need to do a commit here
2953: if g_validate_only ='N' then /*Added soy 08-09*/
2954: hr_utility.trace(' In Validate And Commit Mode therefore Commiting.');
2955: if check_commit then
2956: commit;
2957: end if;
2958: end if;
2988: l_m12_rec g_typ_per_record;
2989: l_person_id per_all_people_f.person_id%type;
2990: l_process boolean;
2991: BEGIN
2992: --hr_utility.trace_on(null,'hello');
2993: hr_utility.trace('Start of PYUDET');
2994: --------------------------------
2995: -- Setting up GLOBAL variable --
2996: --------------------------------
2989: l_person_id per_all_people_f.person_id%type;
2990: l_process boolean;
2991: BEGIN
2992: --hr_utility.trace_on(null,'hello');
2993: hr_utility.trace('Start of PYUDET');
2994: --------------------------------
2995: -- Setting up GLOBAL variable --
2996: --------------------------------
2997: set_global(p_request_id,p_mode,p_effective_date,p_business_group_id,
3002:
3003: --------------------------------
3004: -- Start the process --
3005: --------------------------------
3006: hr_utility.trace('Open main cursor');
3007: if g_mode in (1,2) then
3008: open csr_mode12;
3009: elsif g_mode in (3,4) then
3010: open csr_mode34;
3011: end if;
3012: ------------------
3013: -- Write header --
3014: ------------------
3015: hr_utility.trace('Write report header');
3016: write_header;
3017: hr_utility.trace('Write sub-report header');
3018: write_group_header;
3019:
3013: -- Write header --
3014: ------------------
3015: hr_utility.trace('Write report header');
3016: write_header;
3017: hr_utility.trace('Write sub-report header');
3018: write_group_header;
3019:
3020: -- Start the loop
3021: loop
3018: write_group_header;
3019:
3020: -- Start the loop
3021: loop
3022: hr_utility.trace('In the main loop');
3023: -- Set l_process to true
3024: l_process := true;
3025: --
3026: if g_mode in(1,2) then
3043: end loop;
3044: ------------------
3045: -- Write footer --
3046: ------------------
3047: hr_utility.trace('Write report footer');
3048: write_footer;
3049:
3050: -- Clear out the Tax Code Interface table
3051: if g_mode in (3,4) then
3048: write_footer;
3049:
3050: -- Clear out the Tax Code Interface table
3051: if g_mode in (3,4) then
3052: hr_utility.trace('Clearing tax code interface');
3053: delete pay_gb_tax_code_interface
3054: where (request_id is null or request_id = g_p6_request_id)
3055: and processed_flag = 'P'; /*Added soy 08-09*/
3056: commit;
3056: commit;
3057: end if;
3058: EXCEPTION
3059: WHEN Others THEN
3060: hr_utility.trace('Error occurs : ' || sqlerrm);
3061: if g_mode in (1,2) then
3062: if csr_mode12%isopen then
3063: close csr_mode12;
3064: end if;
3079: -- This section will be executed the first time that the package --
3080: -- is brought into memory for this session --
3081: ---------------------------------------------------------------------
3082: BEGIN
3083: hr_utility.set_location('pyudet',0);
3084: -------------------------------------------------------------------
3085: -- Initialize the count variable for the 'uplift_value' function --
3086: -------------------------------------------------------------------
3087: g_uplift_value(0) := -1;
3085: -- Initialize the count variable for the 'uplift_value' function --
3086: -------------------------------------------------------------------
3087: g_uplift_value(0) := -1;
3088: --
3089: hr_utility.set_location('pyudet',999);
3090: END;