28:
29:
30: PRIVATE PROCEDURES
31: WrtHrTrc
32: Wrapper procedure for py_za_tx_utl_01082000.WriteHrTrace
33: NetTxbIncCalc
34: Procedure to calculate a Net Taxable Income figure used
35: to properly calculate the Skills Development Levy
36: LteCalc
109: )
110: AS
111:
112: BEGIN
113: py_za_tx_utl_01082000.WriteHrTrace(p_Buf);
114: END WrtHrTrc;
115:
116: PROCEDURE NetTxbIncCalc AS
117:
699: AND ptp.payroll_id = con_PRL_ID;
700:
701: hr_utility.set_location('py_za_tx_01082000.LteCalc',8);
702:
703: trc_SitFactor := (l_EndDate - l_StrtDte + 1) / py_za_tx_utl_01082000.DaysWorked;
704:
705: -- Get the assignment's previous tax year end date
706: SELECT MAX(ptp.end_date) "EndDate"
707: INTO l_EndDate
794:
795: hr_utility.set_location('py_za_tx_01082000.LteCalc',10);
796:
797: -- Update Globals with Correct Taxable Values
798: py_za_tx_utl_01082000.TrvAll;
799:
800: bal_PO_NRFI_PTD := bal_PO_NRFI_PTD * py_za_tx_utl_01082000.GlbVal('ZA_PUBL_TAX_PERC',l_EndDate) / 100;
801: bal_PO_RFI_PTD := bal_PO_RFI_PTD * py_za_tx_utl_01082000.GlbVal('ZA_PUBL_TAX_PERC',l_EndDate) / 100;
802:
796:
797: -- Update Globals with Correct Taxable Values
798: py_za_tx_utl_01082000.TrvAll;
799:
800: bal_PO_NRFI_PTD := bal_PO_NRFI_PTD * py_za_tx_utl_01082000.GlbVal('ZA_PUBL_TAX_PERC',l_EndDate) / 100;
801: bal_PO_RFI_PTD := bal_PO_RFI_PTD * py_za_tx_utl_01082000.GlbVal('ZA_PUBL_TAX_PERC',l_EndDate) / 100;
802:
803: hr_utility.set_location('py_za_tx_01082000.LteCalc',11);
804:
797: -- Update Globals with Correct Taxable Values
798: py_za_tx_utl_01082000.TrvAll;
799:
800: bal_PO_NRFI_PTD := bal_PO_NRFI_PTD * py_za_tx_utl_01082000.GlbVal('ZA_PUBL_TAX_PERC',l_EndDate) / 100;
801: bal_PO_RFI_PTD := bal_PO_RFI_PTD * py_za_tx_utl_01082000.GlbVal('ZA_PUBL_TAX_PERC',l_EndDate) / 100;
802:
803: hr_utility.set_location('py_za_tx_01082000.LteCalc',11);
804:
805: -- Rebates
802:
803: hr_utility.set_location('py_za_tx_01082000.LteCalc',11);
804:
805: -- Rebates
806: py_za_tx_utl_01082000.SetRebates;
807: -- Abatements
808: py_za_tx_utl_01082000.Abatements;
809:
810: hr_utility.set_location('py_za_tx_01082000.LteCalc',12);
804:
805: -- Rebates
806: py_za_tx_utl_01082000.SetRebates;
807: -- Abatements
808: py_za_tx_utl_01082000.Abatements;
809:
810: hr_utility.set_location('py_za_tx_01082000.LteCalc',12);
811:
812: -- Base Earnings
849: -- Threshold Check
850: IF trc_TxbBseInc >= trc_Threshold THEN
851: hr_utility.set_location('py_za_tx_01082000.LteCalc',13);
852: -- Tax Liability
853: trc_TotLibBse := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbBseInc);
854: ELSE
855: hr_utility.set_location('py_za_tx_01082000.LteCalc',14);
856: trc_TotLibBse := 0;
857: END IF;
883: hr_utility.set_location('py_za_tx_01082000.LteCalc',16);
884:
885: -- Global Values
886: l_ZA_TX_YR_END := l_EndDate;
887: l_ZA_ADL_TX_RBT := py_za_tx_utl_01082000.GlbVal('ZA_ADDITIONAL_TAX_REBATE',l_EndDate);
888: l_ZA_PRI_TX_RBT := py_za_tx_utl_01082000.GlbVal('ZA_PRIMARY_TAX_REBATE',l_EndDate);
889: l_ZA_PRI_TX_THRSHLD := py_za_tx_utl_01082000.GlbVal('ZA_PRIM_TAX_THRESHOLD',l_EndDate);
890: l_ZA_SC_TX_THRSHLD := py_za_tx_utl_01082000.GlbVal('ZA_SEC_TAX_THRESHOLD',l_EndDate);
891:
884:
885: -- Global Values
886: l_ZA_TX_YR_END := l_EndDate;
887: l_ZA_ADL_TX_RBT := py_za_tx_utl_01082000.GlbVal('ZA_ADDITIONAL_TAX_REBATE',l_EndDate);
888: l_ZA_PRI_TX_RBT := py_za_tx_utl_01082000.GlbVal('ZA_PRIMARY_TAX_REBATE',l_EndDate);
889: l_ZA_PRI_TX_THRSHLD := py_za_tx_utl_01082000.GlbVal('ZA_PRIM_TAX_THRESHOLD',l_EndDate);
890: l_ZA_SC_TX_THRSHLD := py_za_tx_utl_01082000.GlbVal('ZA_SEC_TAX_THRESHOLD',l_EndDate);
891:
892: -- Calculate the assignments 65 Year Date
885: -- Global Values
886: l_ZA_TX_YR_END := l_EndDate;
887: l_ZA_ADL_TX_RBT := py_za_tx_utl_01082000.GlbVal('ZA_ADDITIONAL_TAX_REBATE',l_EndDate);
888: l_ZA_PRI_TX_RBT := py_za_tx_utl_01082000.GlbVal('ZA_PRIMARY_TAX_REBATE',l_EndDate);
889: l_ZA_PRI_TX_THRSHLD := py_za_tx_utl_01082000.GlbVal('ZA_PRIM_TAX_THRESHOLD',l_EndDate);
890: l_ZA_SC_TX_THRSHLD := py_za_tx_utl_01082000.GlbVal('ZA_SEC_TAX_THRESHOLD',l_EndDate);
891:
892: -- Calculate the assignments 65 Year Date
893: l_65Year := add_months(dbi_PER_DTE_OF_BRTH,780);
886: l_ZA_TX_YR_END := l_EndDate;
887: l_ZA_ADL_TX_RBT := py_za_tx_utl_01082000.GlbVal('ZA_ADDITIONAL_TAX_REBATE',l_EndDate);
888: l_ZA_PRI_TX_RBT := py_za_tx_utl_01082000.GlbVal('ZA_PRIMARY_TAX_REBATE',l_EndDate);
889: l_ZA_PRI_TX_THRSHLD := py_za_tx_utl_01082000.GlbVal('ZA_PRIM_TAX_THRESHOLD',l_EndDate);
890: l_ZA_SC_TX_THRSHLD := py_za_tx_utl_01082000.GlbVal('ZA_SEC_TAX_THRESHOLD',l_EndDate);
891:
892: -- Calculate the assignments 65 Year Date
893: l_65Year := add_months(dbi_PER_DTE_OF_BRTH,780);
894:
912: -- Threshold Check
913: IF trc_TxbBseInc >= trc_Threshold THEN
914: hr_utility.set_location('py_za_tx_01082000.LteCalc',19);
915: -- Tax Liability
916: trc_TotLibBse := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbBseInc);
917: ELSE
918: hr_utility.set_location('py_za_tx_01082000.LteCalc',20);
919: trc_TotLibBse := 0;
920: END IF;
932:
933: hr_utility.set_location('py_za_tx_01082000.LteCalc',21);
934:
935: -- Rebates
936: py_za_tx_utl_01082000.SetRebates;
937: -- Abatements
938: py_za_tx_utl_01082000.Abatements;
939:
940: hr_utility.set_location('py_za_tx_01082000.LteCalc',22);
934:
935: -- Rebates
936: py_za_tx_utl_01082000.SetRebates;
937: -- Abatements
938: py_za_tx_utl_01082000.Abatements;
939:
940: hr_utility.set_location('py_za_tx_01082000.LteCalc',22);
941:
942: -- Update Global Balance Values with correct TAXABLE values
939:
940: hr_utility.set_location('py_za_tx_01082000.LteCalc',22);
941:
942: -- Update Global Balance Values with correct TAXABLE values
943: py_za_tx_utl_01082000.TrvAll;
944:
945: bal_PO_RFI_YTD := bal_PO_RFI_YTD * glb_ZA_PBL_TX_PRC / 100;
946: bal_PO_NRFI_YTD := bal_PO_NRFI_YTD * glb_ZA_PBL_TX_PRC / 100;
947:
970: -- Threshold Check
971: IF trc_TxbNorInc >= trc_Threshold THEN
972: hr_utility.set_location('py_za_tx_01082000.LteCalc',24);
973: -- Tax Liability
974: trc_TotLibNI := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbNorInc);
975: trc_LibFyNI := trc_TotLibNI - least(trc_TotLibNI,trc_TotLibBse);
976: trc_TotLibNI := greatest(trc_TotLibNI,trc_TotLibBse);
977: trc_LibFpNI := trc_LibFyNI - bal_TX_ON_NI_YTD;
978: ELSE
1017: -- Threshold Check
1018: IF trc_TxbFrnInc >= trc_Threshold THEN
1019: hr_utility.set_location('py_za_tx_01082000.LteCalc',28);
1020: -- Tax Liability
1021: trc_TotLibFB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbFrnInc);
1022: trc_LibFyFB := trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI);
1023: trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
1024: trc_LibFpFB := trc_LibFyFB - bal_TX_ON_FB_YTD;
1025: ElSE
1053: -- Threshold Check
1054: IF trc_TxbTrvInc >= trc_Threshold THEN
1055: hr_utility.set_location('py_za_tx_01082000.LteCalc',32);
1056: -- Tax Liability
1057: trc_TotLibTA := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbTrvInc);
1058: trc_LibFyTA := trc_TotLibTA - least(trc_TotLibTA,trc_TotLibFB);
1059: trc_TotLibTA := greatest(trc_TotLibTA,trc_TotLibFB);
1060: trc_LibFpTA := trc_LibFyTA - bal_TX_ON_TA_YTD;
1061: ELSE
1089: -- Threshold Check
1090: IF trc_TxbAnnBonInc >= trc_Threshold THEN
1091: hr_utility.set_location('py_za_tx_01082000.LteCalc',36);
1092: -- Tax Liability
1093: trc_TotLibAB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnBonInc);
1094: trc_LibFyAB := trc_TotLibAB - trc_TotLibTA;
1095: -- Negative Check
1096: IF trc_LibFyAB < 0 THEN
1097: hr_utility.set_location('py_za_tx_01082000.LteCalc',37);
1140: -- Threshold Check
1141: IF trc_TxbAnnPymInc >= trc_Threshold THEN
1142: hr_utility.set_location('py_za_tx_01082000.LteCalc',42);
1143: -- Tax Liability
1144: trc_TotLibAP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnPymInc);
1145: trc_LibFyAP := trc_TotLibAP - trc_TotLibAB;
1146: -- Negative Check
1147: IF trc_LibFyAP < 0 THEN
1148: hr_utility.set_location('py_za_tx_01082000.LteCalc',43);
1203: hr_utility.set_location('py_za_tx_01082000.LteCalc',50);
1204: l_Sl := FALSE;
1205: END IF;
1206:
1207: py_za_tx_utl_01082000.NpVal(p_Rf => l_Sl);
1208:
1209: -- Set IT3A Indicator
1210: --
1211: IF trc_TxbAnnPymInc + trc_PblOffErn >= trc_Threshold THEN
1351: -- Threshold Check
1352: IF trc_TxbBseInc >= trc_Threshold THEN
1353: hr_utility.set_location('py_za_tx_01082000.SeaCalc',6);
1354: -- Tax Liability
1355: trc_TotLibBse := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbBseInc);
1356: ELSE
1357: hr_utility.set_location('py_za_tx_01082000.SeaCalc',7);
1358: trc_TotLibBse := 0;
1359: END IF;
1365: -- Threshold Check
1366: IF trc_TxbAnnPymInc >= trc_Threshold THEN
1367: hr_utility.set_location('py_za_tx_01082000.SeaCalc',8);
1368: -- Tax Liability
1369: trc_TotLibAP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnPymInc);
1370: trc_LibFpAP := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibBse);
1371: ElSE
1372: hr_utility.set_location('py_za_tx_01082000.SeaCalc',9);
1373: trc_LibFpAP := 0;
1393: --
1394: trc_SitFactor := glb_ZA_WRK_DYS_PR_YR / dbi_SEA_WRK_DYS_WRK;
1395:
1396: -- Rebates
1397: py_za_tx_utl_01082000.SetRebates;
1398:
1399: -- Abatements
1400: py_za_tx_utl_01082000.Abatements;
1401:
1396: -- Rebates
1397: py_za_tx_utl_01082000.SetRebates;
1398:
1399: -- Abatements
1400: py_za_tx_utl_01082000.Abatements;
1401:
1402: hr_utility.set_location('py_za_tx_01082000.SeaCalc',11);
1403:
1404: -- Normal Income
1425: -- Threshold Check
1426: IF trc_TxbNorInc >= trc_Threshold THEN
1427: hr_utility.set_location('py_za_tx_01082000.SeaCalc',13);
1428: -- Tax Liability
1429: trc_TotLibNI := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbNorInc);
1430: trc_LibFyNI := trc_TotLibNI - 0;
1431: trc_TotLibNI := greatest(trc_TotLibNI,0);
1432: trc_LibFpNI := trc_LibFyNI / trc_SitFactor;
1433: ELSE
1466: -- Threshold Check
1467: IF trc_TxbFrnInc >= trc_Threshold THEN
1468: hr_utility.set_location('py_za_tx_01082000.SeaCalc',17);
1469: -- Tax Liability
1470: trc_TotLibFB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbFrnInc);
1471: trc_LibFyFB := trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI);
1472: trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
1473: trc_LibFpFB := trc_LibFyFB / trc_SitFactor;
1474: ELSE
1502: -- Threshold Check
1503: IF trc_TxbAnnPymInc >= trc_Threshold THEN
1504: hr_utility.set_location('py_za_tx_01082000.SeaCalc',21);
1505: -- Tax Liability
1506: trc_TotLibAP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnPymInc);
1507: trc_LibFyAP := trc_TotLibAP - trc_TotLibFB;
1508: -- Negative Check
1509: IF trc_LibFyAP < 0 THEN
1510: hr_utility.set_location('py_za_tx_01082000.SeaCalc',22);
1528:
1529:
1530: -- Net Pay Validation
1531: --
1532: py_za_tx_utl_01082000.NpVal;
1533:
1534: hr_utility.set_location('py_za_tx_01082000.SeaCalc',26);
1535:
1536: -- Set IT3A Indicator
1591: trc_CalTyp := 'SitCalc';
1592:
1593: -- Update Global Balance Values with correct TAXABLE values
1594: --
1595: py_za_tx_utl_01082000.TrvAll;
1596:
1597: hr_utility.set_location('py_za_tx_01082000.SitCalc',2);
1598:
1599: bal_PO_RFI_YTD :=
1632: hr_utility.set_location('py_za_tx_01082000.SitCalc',3);
1633:
1634: -- Site Factor
1635: --
1636: trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01082000.DaysWorked;
1637:
1638: hr_utility.set_location('py_za_tx_01082000.SitCalc',4);
1639:
1640: -- Rebates
1637:
1638: hr_utility.set_location('py_za_tx_01082000.SitCalc',4);
1639:
1640: -- Rebates
1641: py_za_tx_utl_01082000.SetRebates;
1642:
1643: -- Abatements
1644: py_za_tx_utl_01082000.Abatements;
1645:
1640: -- Rebates
1641: py_za_tx_utl_01082000.SetRebates;
1642:
1643: -- Abatements
1644: py_za_tx_utl_01082000.Abatements;
1645:
1646: hr_utility.set_location('py_za_tx_01082000.SitCalc',5);
1647:
1648: -- Normal Income
1680: -- Threshold Check
1681: IF trc_TxbNorInc >= trc_Threshold THEN
1682: hr_utility.set_location('py_za_tx_01082000.SitCalc',7);
1683: -- Tax Liability
1684: trc_TotLibNI := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbNorInc);
1685: trc_LibFyNI := (trc_TotLibNI - 0) / trc_SitFactor;
1686: trc_TotLibNI := greatest(trc_TotLibNI,0);
1687: trc_LibFpNI := trc_LibFyNI - bal_TX_ON_NI_YTD;
1688: ELSE
1738: -- Threshold Check
1739: IF trc_TxbFrnInc >= trc_Threshold THEN
1740: hr_utility.set_location('py_za_tx_01082000.SitCalc',11);
1741: -- Tax Liability
1742: trc_TotLibFB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbFrnInc);
1743: trc_LibFyFB := (trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI)) / trc_SitFactor;
1744: trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
1745: trc_LibFpFB := trc_LibFyFB - bal_TX_ON_FB_YTD;
1746: ElSE
1777: -- Threshold Check
1778: IF trc_TxbTrvInc >= trc_Threshold THEN
1779: hr_utility.set_location('py_za_tx_01082000.SitCalc',15);
1780: -- Tax Liability
1781: trc_TotLibTA := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbTrvInc);
1782: trc_LibFyTA := (trc_TotLibTA - least(trc_TotLibTA,trc_TotLibFB)) / trc_SitFactor;
1783: trc_TotLibTA := greatest(trc_TotLibTA,trc_TotLibFB);
1784: trc_LibFpTA := trc_LibFyTA - bal_TX_ON_TA_YTD;
1785: ELSE
1813: -- Threshold Check
1814: IF trc_TxbBonProInc >= trc_Threshold THEN
1815: hr_utility.set_location('py_za_tx_01082000.SitCalc',19);
1816: -- Tax Liability
1817: trc_TotLibBP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbBonProInc);
1818: trc_LibFyBP := (trc_TotLibBP - least(trc_TotLibBP,trc_TotLibTA)) / trc_SitFactor;
1819: trc_TotLibBP := greatest(trc_TotLibBP,trc_TotLibTA);
1820: trc_LibFpBP := trc_LibFyBP - bal_TX_ON_BP_YTD;
1821: ELSE
1852: -- Threshold Check
1853: IF trc_TxbAnnBonInc >= trc_Threshold THEN
1854: hr_utility.set_location('py_za_tx_01082000.SitCalc',23);
1855: -- Tax Liability
1856: trc_TotLibAB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnBonInc);
1857: trc_LibFyAB := trc_TotLibAB - trc_TotLibTA;
1858: -- Negative Check
1859: IF trc_LibFyAB < 0 THEN
1860: hr_utility.set_location('py_za_tx_01082000.SitCalc',24);
1920: -- Threshold Check
1921: IF trc_TxbAnnPymInc >= trc_Threshold THEN
1922: hr_utility.set_location('py_za_tx_01082000.SitCalc',31);
1923: -- Tax Liability
1924: trc_TotLibAP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnPymInc);
1925: trc_LibFyAP := trc_TotLibAP - trc_TotLibAB;
1926: -- Negative Check
1927: IF trc_LibFyAP < 0 THEN
1928: hr_utility.set_location('py_za_tx_01082000.SitCalc',32);
1986: hr_utility.set_location('py_za_tx_01082000.SitCalc',39);
1987: l_Sl := FALSE;
1988: END IF;
1989:
1990: py_za_tx_utl_01082000.NpVal(p_Rf => l_Sl);
1991:
1992: hr_utility.set_location('py_za_tx_01082000.SitCalc',40);
1993:
1994: -- Set IT3A Indicator
2081: trc_CalTyp := 'DirCalc';
2082:
2083: -- Update Global Balance Values with correct TAXABLE values
2084: --
2085: py_za_tx_utl_01082000.TrvAll;
2086:
2087: hr_utility.set_location('py_za_tx_01082000.DirCalc',2);
2088:
2089: bal_PO_RFI_YTD :=
2122: hr_utility.set_location('py_za_tx_01082000.DirCalc',3);
2123: -- Normal Earnings
2124: trc_NorErn := trc_NorIncYtd;
2125: -- Tax Liability
2126: trc_TotLibNI := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_NorErn);
2127: trc_LibFyNI := trc_TotLibNI - 0;
2128: trc_LibFpNI := trc_LibFyNI - bal_TX_ON_NI_YTD;
2129: ELSE
2130: hr_utility.set_location('py_za_tx_01082000.DirCalc',4);
2165: hr_utility.set_location('py_za_tx_01082000.DirCalc',5);
2166: -- Fringe Benefit Earnings
2167: trc_FrnBenErn := trc_FrnBenYtd + trc_NorErn;
2168: -- Tax Liability
2169: trc_TotLibFB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_FrnBenErn);
2170: trc_LibFyFB := trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI);
2171: trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
2172: trc_LibFpFB := trc_LibFyFB - bal_TX_ON_FB_YTD;
2173: ELSE
2191: hr_utility.set_location('py_za_tx_01082000.DirCalc',7);
2192: -- Travel Allowance Earnings
2193: trc_TrvAllErn := trc_TrvAllYtd + trc_FrnBenErn;
2194: -- Tax Liability
2195: trc_TotLibTA := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TrvAllErn);
2196: trc_LibFyTA := trc_TotLibTA - least(trc_TotLibTA,trc_TotLibFB);
2197: trc_TotLibTA := greatest(trc_TotLibTA,trc_TotLibFB);
2198: trc_LibFpTA := trc_LibFyTA - bal_TX_ON_TA_YTD;
2199: ELSE
2214: hr_utility.set_location('py_za_tx_01082000.DirCalc',9);
2215: -- Bonus Provision Earnings
2216: trc_BonProErn := trc_BonProYtd + trc_TrvAllErn;
2217: -- Tax Liability
2218: trc_TotLibBP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_BonProErn);
2219: trc_LibFyBP := trc_TotLibBP - least(trc_TotLibBP,trc_TotLibTA);
2220: trc_TotLibBP := greatest(trc_TotLibBP,trc_TotLibTA);
2221: trc_LibFpBP := trc_LibFyBP - bal_TX_ON_BP_YTD;
2222: ELSE
2240: hr_utility.set_location('py_za_tx_01082000.DirCalc',11);
2241: -- Annual Bonus Earnings
2242: trc_AnnBonErn := trc_AnnBonYtd + trc_TrvAllErn;
2243: -- Tax Liability
2244: trc_TotLibAB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_AnnBonErn);
2245: trc_LibFyAB := trc_TotLibAB - least(trc_TotLibAB,trc_TotLibTA);
2246: trc_TotLibAB := greatest(trc_TotLibAB,trc_TotLibTA);
2247: -- Check Bonus Provision
2248: IF trc_BonProYtd <> 0 THEN
2293: hr_utility.set_location('py_za_tx_01082000.DirCalc',17);
2294: -- Annual Payments Earnings
2295: trc_AnnPymErn := trc_AnnPymYtd + trc_AnnBonErn;
2296: -- Tax Liability
2297: trc_TotLibAP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_AnnPymErn);
2298: trc_LibFyAP := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibAB);
2299: trc_TotLibAP := greatest(trc_TotLibAP,trc_TotLibAB);
2300: trc_LibFpAP := trc_LibFyAP - bal_TX_ON_AP_YTD;
2301: ElSE
2329: END IF;
2330:
2331: -- Net Pay Validation
2332: --
2333: py_za_tx_utl_01082000.NpVal(p_Rf => TRUE);
2334:
2335: hr_utility.set_location('py_za_tx_01082000.DirCalc',21);
2336:
2337: -- Tax Percentage Indicator
2475: -- Threshold Check
2476: IF trc_TxbBseInc >= trc_Threshold THEN
2477: hr_utility.set_location('py_za_tx_01082000.BasCalc',5);
2478: -- Tax Liability
2479: trc_TotLibBse := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbBseInc);
2480: ELSE
2481: hr_utility.set_location('py_za_tx_01082000.BasCalc',6);
2482: trc_TotLibBse := 0;
2483: END IF;
2497: -- Threshold Check
2498: IF trc_TxbAnnBonInc >= trc_Threshold THEN
2499: hr_utility.set_location('py_za_tx_01082000.BasCalc',8);
2500: -- Tax Liability
2501: trc_TotLibAB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnBonInc);
2502: trc_LibFyAB := trc_TotLibAB - trc_TotLibBse;
2503: -- Negative Check
2504: IF trc_LibFyAB < 0 THEN
2505: hr_utility.set_location('py_za_tx_01082000.BasCalc',9);
2561: -- Threshold Check
2562: IF trc_TxbAnnPymInc >= trc_Threshold THEN
2563: hr_utility.set_location('py_za_tx_01082000.BasCalc',17);
2564: -- Tax Liability
2565: trc_TotLibAP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnPymInc);
2566: trc_LibFyAP := trc_TotLibAP - trc_TotLibAB;
2567: -- Negative Check
2568: IF trc_LibFyAP < 0 THEN
2569: hr_utility.set_location('py_za_tx_01082000.BasCalc',18);
2585: END IF;
2586:
2587: -- Net Pay Validation
2588: --
2589: py_za_tx_utl_01082000.NpVal;
2590:
2591: -- Base Income
2592: WrtHrTrc('trc_BseErn: '||to_char(trc_BseErn));
2593: WrtHrTrc('trc_TxbBseInc: '||to_char(trc_TxbBseInc));
2668: trc_CalTyp := 'CalCalc';
2669:
2670: -- Update Global Balance Values with correct TAXABLE values
2671: --
2672: py_za_tx_utl_01082000.TrvAll;
2673:
2674: hr_utility.set_location('py_za_tx_01082000.CalCalc',2);
2675:
2676: -- Calendar Ytd Taxable Income
2728: ELSE -- continue CalCalc
2729: hr_utility.set_location('py_za_tx_01082000.CalCalc',4);
2730: -- Site Factor
2731: --
2732: trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01082000.DaysWorked;
2733:
2734: -- Rebates
2735: py_za_tx_utl_01082000.SetRebates;
2736:
2731: --
2732: trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01082000.DaysWorked;
2733:
2734: -- Rebates
2735: py_za_tx_utl_01082000.SetRebates;
2736:
2737: -- Abatements
2738: py_za_tx_utl_01082000.Abatements;
2739:
2734: -- Rebates
2735: py_za_tx_utl_01082000.SetRebates;
2736:
2737: -- Abatements
2738: py_za_tx_utl_01082000.Abatements;
2739:
2740: hr_utility.set_location('py_za_tx_01082000.CalCalc',5);
2741:
2742: -- Base Earnings
2748: -- Threshold Check
2749: IF trc_TxbBseInc >= trc_Threshold THEN
2750: hr_utility.set_location('py_za_tx_01082000.CalCalc',6);
2751: -- Tax Liability
2752: trc_TotLibBse := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbBseInc);
2753: ELSE
2754: hr_utility.set_location('py_za_tx_01082000.CalCalc',7);
2755: trc_TotLibBse := 0;
2756: END IF;
2772: -- Threshold Check
2773: IF trc_TxbAnnBonInc >= trc_Threshold THEN
2774: hr_utility.set_location('py_za_tx_01082000.CalCalc',9);
2775: -- Tax Liability
2776: trc_TotLibAB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnBonInc);
2777: trc_LibFyAB := trc_TotLibAB - trc_TotLibBse;
2778: -- Negative Check
2779: IF trc_LibFyAB < 0 THEN
2780: hr_utility.set_location('py_za_tx_01082000.CalCalc',10);
2839: -- Threshold Check
2840: IF trc_TxbAnnPymInc >= trc_Threshold THEN
2841: hr_utility.set_location('py_za_tx_01082000.CalCalc',18);
2842: -- Tax Liability
2843: trc_TotLibAP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnPymInc);
2844: trc_LibFyAP := trc_TotLibAP - trc_TotLibAB;
2845: -- Negative Check
2846: IF trc_LibFyAP < 0 THEN
2847: hr_utility.set_location('py_za_tx_01082000.CalCalc',19);
2865: END IF;
2866:
2867: -- Net pay Validation
2868: --
2869: py_za_tx_utl_01082000.NpVal;
2870:
2871: -- Base Income
2872: WrtHrTrc('trc_BseErn: '||to_char(trc_BseErn));
2873: WrtHrTrc('trc_TxbBseInc: '||to_char(trc_TxbBseInc));
2951: --
2952: trc_CalTyp := 'YtdCalc';
2953:
2954: -- Update Global Balance Values with correct TAXABLE values
2955: py_za_tx_utl_01082000.TrvAll;
2956:
2957: hr_utility.set_location('py_za_tx_01082000.YtdCalc',2);
2958:
2959: -- Ytd Taxable Income
3009: CalCalc;
3010: ELSE --Continue YtdCalc
3011: hr_utility.set_location('py_za_tx_01082000.YtdCalc',4);
3012: -- Site Factor
3013: trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01082000.DaysWorked;
3014:
3015: -- Rebates
3016: py_za_tx_utl_01082000.SetRebates;
3017:
3012: -- Site Factor
3013: trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01082000.DaysWorked;
3014:
3015: -- Rebates
3016: py_za_tx_utl_01082000.SetRebates;
3017:
3018: -- Abatements
3019: py_za_tx_utl_01082000.Abatements;
3020:
3015: -- Rebates
3016: py_za_tx_utl_01082000.SetRebates;
3017:
3018: -- Abatements
3019: py_za_tx_utl_01082000.Abatements;
3020:
3021: hr_utility.set_location('py_za_tx_01082000.YtdCalc',5);
3022:
3023: -- Base Earnings
3029: -- Threshold Check
3030: IF trc_TxbBseInc >= trc_Threshold THEN
3031: hr_utility.set_location('py_za_tx_01082000.YtdCalc',6);
3032: -- Tax Liability
3033: trc_TotLibBse := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbBseInc);
3034: ELSE
3035: hr_utility.set_location('py_za_tx_01082000.YtdCalc',7);
3036: trc_TotLibBse := 0;
3037: END IF;
3053: -- Threshold Check
3054: IF trc_TxbAnnBonInc >= trc_Threshold THEN
3055: hr_utility.set_location('py_za_tx_01082000.YtdCalc',9);
3056: -- Tax Liability
3057: trc_TotLibAB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnBonInc);
3058: trc_LibFyAB := trc_TotLibAB - trc_TotLibBse;
3059: -- Negative Check
3060: IF trc_LibFyAB < 0 THEN
3061: hr_utility.set_location('py_za_tx_01082000.YtdCalc',10);
3120: -- Threshold Check
3121: IF trc_TxbAnnPymInc >= trc_Threshold THEN
3122: hr_utility.set_location('py_za_tx_01082000.YtdCalc',18);
3123: -- Tax Liability
3124: trc_TotLibAP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnPymInc);
3125: trc_LibFyAP := trc_TotLibAP - trc_TotLibAB;
3126: -- Negative Check
3127: IF trc_LibFyAP < 0 THEN
3128: hr_utility.set_location('py_za_tx_01082000.YtdCalc',19);
3146: END IF;
3147:
3148: -- Net Pay validation
3149: --
3150: py_za_tx_utl_01082000.NpVal;
3151:
3152: hr_utility.set_location('py_za_tx_01082000.YtdCalc',23);
3153:
3154: -- Base Income
3239:
3240: bal_TA_NRFI_PTD :=
3241: bal_TA_NRFI_PTD * glb_ZA_TRV_ALL_TX_PRC / 100;
3242:
3243: py_za_tx_utl_01082000.TrvAll;
3244:
3245: hr_utility.set_location('py_za_tx_01082000.NorCalc',2);
3246:
3247: bal_PO_RFI_PTD :=
3306: + bal_USE_VEH_RFI_PTD
3307: );
3308:
3309: -- Period Factor
3310: py_za_tx_utl_01082000.PeriodFactor;
3311:
3312: -- Possible Periods Factor
3313: py_za_tx_utl_01082000.PossiblePeriodsFactor;
3314:
3309: -- Period Factor
3310: py_za_tx_utl_01082000.PeriodFactor;
3311:
3312: -- Possible Periods Factor
3313: py_za_tx_utl_01082000.PossiblePeriodsFactor;
3314:
3315: -- Rebates
3316: py_za_tx_utl_01082000.SetRebates;
3317:
3312: -- Possible Periods Factor
3313: py_za_tx_utl_01082000.PossiblePeriodsFactor;
3314:
3315: -- Rebates
3316: py_za_tx_utl_01082000.SetRebates;
3317:
3318: -- Abatements
3319: py_za_tx_utl_01082000.Abatements;
3320:
3315: -- Rebates
3316: py_za_tx_utl_01082000.SetRebates;
3317:
3318: -- Abatements
3319: py_za_tx_utl_01082000.Abatements;
3320:
3321: hr_utility.set_location('py_za_tx_01082000.NorCalc',3);
3322:
3323: -- Normal Income
3350: IF trc_NorIncYtd <> 0 THEN
3351: hr_utility.set_location('py_za_tx_01082000.NorCalc',4);
3352:
3353: -- Annualise Normal Income
3354: trc_NorErn := py_za_tx_utl_01082000.Annualise
3355: (p_YtdInc => trc_NorIncYtd
3356: ,p_PtdInc => trc_NorIncPtd
3357: );
3358:
3362: -- Threshold Check
3363: IF trc_TxbNorInc >= trc_Threshold THEN
3364: hr_utility.set_location('py_za_tx_01082000.NorCalc',5);
3365: -- Tax Liability
3366: trc_TotLibNI := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbNorInc);
3367: trc_LibFyNI := trc_TotLibNI - 0;
3368: -- DeAnnualise
3369: trc_LibFpNI := py_za_tx_utl_01082000.DeAnnualise
3370: (p_Liab => trc_LibFyNI
3365: -- Tax Liability
3366: trc_TotLibNI := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbNorInc);
3367: trc_LibFyNI := trc_TotLibNI - 0;
3368: -- DeAnnualise
3369: trc_LibFpNI := py_za_tx_utl_01082000.DeAnnualise
3370: (p_Liab => trc_LibFyNI
3371: ,p_TxOnYtd => bal_TX_ON_NI_YTD
3372: ,p_TxOnPtd => bal_TX_ON_NI_PTD
3373: );
3418: IF trc_FrnBenYtd <> 0 THEN
3419: hr_utility.set_location('py_za_tx_01082000.NorCalc',8);
3420:
3421: -- Annualise Fringe Benefits
3422: trc_FrnBenErn := py_za_tx_utl_01082000.Annualise
3423: (p_YtdInc => trc_FrnBenYtd
3424: ,p_PtdInc => trc_FrnBenPtd
3425: ) + trc_NorErn;
3426: -- Taxable Fringe Income
3428: -- Threshold Check
3429: IF trc_TxbFrnInc >= trc_Threshold THEN
3430: hr_utility.set_location('py_za_tx_01082000.NorCalc',9);
3431: -- Tax Liability
3432: trc_TotLibFB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbFrnInc);
3433: trc_LibFyFB := trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI);
3434: trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
3435: -- DeAnnualise
3436: trc_LibFpFB := py_za_tx_utl_01082000.DeAnnualise
3432: trc_TotLibFB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbFrnInc);
3433: trc_LibFyFB := trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI);
3434: trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
3435: -- DeAnnualise
3436: trc_LibFpFB := py_za_tx_utl_01082000.DeAnnualise
3437: (trc_LibFyFB
3438: ,bal_TX_ON_FB_YTD
3439: ,bal_TX_ON_FB_PTD
3440: );
3467: hr_utility.set_location('py_za_tx_01082000.NorCalc',12);
3468: -- Ptd Travel Allowance
3469: trc_TrvAllPtd := bal_TA_NRFI_PTD + bal_TA_RFI_PTD;
3470: -- Annualise Travel Allowance
3471: trc_TrvAllErn := py_za_tx_utl_01082000.Annualise
3472: (p_YtdInc => trc_TrvAllYtd
3473: ,p_PtdInc => trc_TrvAllPtd
3474: ) + trc_FrnBenErn;
3475: -- Taxable Travel Income
3477: -- Threshold Check
3478: IF trc_TxbTrvInc >= trc_Threshold THEN
3479: hr_utility.set_location('py_za_tx_01082000.NorCalc',13);
3480: -- Tax Liability
3481: trc_TotLibTA := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbTrvInc);
3482: trc_LibFyTA := trc_TotLibTA - least(trc_TotLibTA,trc_TotLibFB);
3483: trc_TotLibTA := greatest(trc_TotLibTA,trc_TotLibFB);
3484: -- DeAnnualise
3485: trc_LibFpTA := py_za_tx_utl_01082000.DeAnnualise
3481: trc_TotLibTA := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbTrvInc);
3482: trc_LibFyTA := trc_TotLibTA - least(trc_TotLibTA,trc_TotLibFB);
3483: trc_TotLibTA := greatest(trc_TotLibTA,trc_TotLibFB);
3484: -- DeAnnualise
3485: trc_LibFpTA := py_za_tx_utl_01082000.DeAnnualise
3486: (trc_LibFyTA
3487: ,bal_TX_ON_TA_YTD
3488: ,bal_TX_ON_TA_PTD
3489: );
3511: -- Skip the calculation if there is No Income
3512: IF trc_BonProYtd <> 0 THEN
3513: hr_utility.set_location('py_za_tx_01082000.NorCalc',16);
3514: -- Annualise Bonus Provision
3515: trc_BonProErn := py_za_tx_utl_01082000.Annualise
3516: (p_YtdInc => trc_BonProYtd
3517: ,p_PtdInc => trc_BonProPtd
3518: ) + trc_TrvAllErn;
3519: -- Taxable Bonus Provision Income
3521: -- Threshold Check
3522: IF trc_TxbBonProInc >= trc_Threshold THEN
3523: hr_utility.set_location('py_za_tx_01082000.NorCalc',17);
3524: -- Tax Liability
3525: trc_TotLibBP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbBonProInc);
3526: trc_LibFyBP := trc_TotLibBP - least(trc_TotLibBP,trc_TotLibTA);
3527: trc_TotLibBP := greatest(trc_TotLibBP,trc_TotLibTA);
3528: -- DeAnnualise
3529: trc_LibFpBP := py_za_tx_utl_01082000.DeAnnualise
3525: trc_TotLibBP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbBonProInc);
3526: trc_LibFyBP := trc_TotLibBP - least(trc_TotLibBP,trc_TotLibTA);
3527: trc_TotLibBP := greatest(trc_TotLibBP,trc_TotLibTA);
3528: -- DeAnnualise
3529: trc_LibFpBP := py_za_tx_utl_01082000.DeAnnualise
3530: (trc_LibFyBP
3531: ,bal_TX_ON_BP_YTD
3532: ,bal_TX_ON_BP_PTD
3533: );
3565: -- Threshold Check
3566: IF trc_TxbAnnBonInc >= trc_Threshold THEN
3567: hr_utility.set_location('py_za_tx_01082000.NorCalc',21);
3568: -- Tax Liability
3569: trc_TotLibAB := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnBonInc);
3570: trc_LibFyAB := trc_TotLibAB - trc_TotLibTA;
3571: -- Negative Check
3572: IF trc_LibFyAB < 0 THEN
3573: hr_utility.set_location('py_za_tx_01082000.NorCalc',22);
3639: -- Threshold Check
3640: IF trc_TxbAnnPymInc >= trc_Threshold THEN
3641: hr_utility.set_location('py_za_tx_01082000.NorCalc',30);
3642: -- Tax Liability
3643: trc_TotLibAP := py_za_tx_utl_01082000.TaxLiability(p_Amt => trc_TxbAnnPymInc);
3644: trc_LibFyAP := trc_TotLibAP - trc_TotLibAB;
3645: -- Negative Check
3646: IF trc_LibFyAP < 0 THEN
3647: hr_utility.set_location('py_za_tx_01082000.NorCalc',31);
3685: ( bal_PO_NRFI_PTD
3686: + bal_PO_RFI_PTD
3687: );
3688: -- Annualise Public Office Allowance
3689: trc_PblOffErn := py_za_tx_utl_01082000.Annualise
3690: (p_YtdInc => trc_PblOffYtd
3691: ,p_PtdInc => trc_PblOffPtd
3692: );
3693: -- Tax Liability
3691: ,p_PtdInc => trc_PblOffPtd
3692: );
3693: -- Tax Liability
3694: trc_LibFyPO := trc_PblOffErn * glb_ZA_PBL_TX_RTE / 100;
3695: trc_LibFpPO := py_za_tx_utl_01082000.DeAnnualise
3696: (trc_LibFyPO
3697: ,bal_TX_ON_PO_YTD
3698: ,bal_TX_ON_PO_PTD
3699: );
3705: END IF;
3706:
3707: -- Net Pay Validation
3708: --
3709: py_za_tx_utl_01082000.NpVal;
3710:
3711: hr_utility.set_location('py_za_tx_01082000.NorCalc',37);
3712:
3713: -- Base Income
4760:
4761: BEGIN
4762: -- Set hr_utility globals if debugging
4763: --
4764: -- py_za_tx_utl_01082000.g_HrTraceEnabled := TRUE;
4765: -- py_za_tx_utl_01082000.g_HrTracePipeName := 'ZATAX';
4766:
4767: -- Call hr_utility start procedure
4768: py_za_tx_utl_01082000.StartHrTrace;
4761: BEGIN
4762: -- Set hr_utility globals if debugging
4763: --
4764: -- py_za_tx_utl_01082000.g_HrTraceEnabled := TRUE;
4765: -- py_za_tx_utl_01082000.g_HrTracePipeName := 'ZATAX';
4766:
4767: -- Call hr_utility start procedure
4768: py_za_tx_utl_01082000.StartHrTrace;
4769:
4764: -- py_za_tx_utl_01082000.g_HrTraceEnabled := TRUE;
4765: -- py_za_tx_utl_01082000.g_HrTracePipeName := 'ZATAX';
4766:
4767: -- Call hr_utility start procedure
4768: py_za_tx_utl_01082000.StartHrTrace;
4769:
4770: -- Setup Trace Header Info
4771: WrtHrTrc(' ');
4772: WrtHrTrc(' ');
5279: trc_CalTyp := 'NoCalc';
5280: -- Liability = entered value
5281: trc_LibFpNI := dbi_TX_DIR_VAL;
5282: -- Standard NetPay Validation
5283: py_za_tx_utl_01082000.NpVal;
5284: END IF;
5285: -- D = Directive Percentage
5286: --
5287: ELSIF dbi_TX_STA = 'D' THEN
5299: ELSE
5300: IF trc_OvrTxCalc AND trc_OvrTyp = 'P' THEN
5301: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',16);
5302: trc_OvrWrn := 'WARNING: Tax Override - '||to_char(trc_OvrPrc)||' Percent';
5303: -- Percentage taken into account in py_za_tx_utl_01082000.TaxLiability
5304: END IF;
5305: -- Check Directive Number First
5306: IF dbi_TX_DIR_NUM = 'NULL' THEN
5307: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',17);
5343: ELSE
5344: IF trc_OvrTxCalc AND trc_OvrTyp = 'P' THEN
5345: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',25);
5346: trc_OvrWrn := 'WARNING: Tax Override - '||to_char(trc_OvrPrc)||' Percent';
5347: -- Percentage taken into account in py_za_tx_utl_01082000.TaxLiability
5348: END IF;
5349: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',26);
5350: -- Simply Execute the Directive Calculation
5351: DirCalc;
5373: IF trc_OvrTxCalc AND trc_OvrTyp = 'V' THEN
5374: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',32);
5375: trc_CalTyp := 'OvrCalc';
5376: trc_OvrWrn := 'WARNING: Tax Override - Total Tax Value: '||to_char(trc_LibFpNI + trc_LibFpAP);
5377: py_za_tx_utl_01082000.SetRebates;
5378: ELSE
5379: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',33);
5380: SeaCalc;
5381: END IF;
5388: IF trc_OvrTxCalc AND trc_OvrTyp = 'V' THEN
5389: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',34);
5390: trc_CalTyp := 'OvrCalc';
5391: trc_OvrWrn := 'WARNING: Tax Override - Total Tax Value: '||to_char(trc_LibFpNI + trc_LibFpAP);
5392: py_za_tx_utl_01082000.SetRebates;
5393: trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01082000.DaysWorked;
5394: ELSIF trc_OvrTxCalc AND trc_OvrTyp = 'S' THEN
5395: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',35);
5396: trc_CalTyp := 'OvrCalc';
5389: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',34);
5390: trc_CalTyp := 'OvrCalc';
5391: trc_OvrWrn := 'WARNING: Tax Override - Total Tax Value: '||to_char(trc_LibFpNI + trc_LibFpAP);
5392: py_za_tx_utl_01082000.SetRebates;
5393: trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01082000.DaysWorked;
5394: ELSIF trc_OvrTxCalc AND trc_OvrTyp = 'S' THEN
5395: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',35);
5396: trc_CalTyp := 'OvrCalc';
5397: trc_OvrWrn := 'WARNING: Tax Override - Forced Site Calculation';
5401: ELSE
5402: IF trc_OvrTxCalc AND trc_OvrTyp = 'P' THEN
5403: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',37);
5404: trc_OvrWrn := 'WARNING: Tax Override - '||to_char(trc_OvrPrc)||' Percent';
5405: -- Percentage taken into account in py_za_tx_utl_01082000.TaxLiability
5406: END IF;
5407:
5408: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',38);
5409: IF py_za_tx_utl_01082000.LatePayPeriod THEN
5405: -- Percentage taken into account in py_za_tx_utl_01082000.TaxLiability
5406: END IF;
5407:
5408: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',38);
5409: IF py_za_tx_utl_01082000.LatePayPeriod THEN
5410: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',39);
5411: LteCalc;
5412: -- Is this a SITE Period?
5413: ELSIF py_za_tx_utl_01082000.EmpTermPrePeriod THEN
5409: IF py_za_tx_utl_01082000.LatePayPeriod THEN
5410: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',39);
5411: LteCalc;
5412: -- Is this a SITE Period?
5413: ELSIF py_za_tx_utl_01082000.EmpTermPrePeriod THEN
5414: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',40);
5415: SitCalc;
5416: ELSIF py_za_tx_utl_01082000.LstPeriod OR py_za_tx_utl_01082000.EmpTermInPeriod THEN
5417: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',41);
5412: -- Is this a SITE Period?
5413: ELSIF py_za_tx_utl_01082000.EmpTermPrePeriod THEN
5414: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',40);
5415: SitCalc;
5416: ELSIF py_za_tx_utl_01082000.LstPeriod OR py_za_tx_utl_01082000.EmpTermInPeriod THEN
5417: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',41);
5418: IF py_za_tx_utl_01082000.PreErnPeriod THEN
5419: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',42);
5420: YtdCalc;
5414: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',40);
5415: SitCalc;
5416: ELSIF py_za_tx_utl_01082000.LstPeriod OR py_za_tx_utl_01082000.EmpTermInPeriod THEN
5417: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',41);
5418: IF py_za_tx_utl_01082000.PreErnPeriod THEN
5419: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',42);
5420: YtdCalc;
5421: ELSE
5422: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',43);
5424: END IF;
5425: ElSE
5426: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',44);
5427: -- The employee has NOT been terminated!
5428: IF py_za_tx_utl_01082000.PreErnPeriod THEN
5429: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',45);
5430: YtdCalc;
5431: ELSIF py_za_tx_utl_01082000.RetroInPrd THEN
5432: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',46);
5427: -- The employee has NOT been terminated!
5428: IF py_za_tx_utl_01082000.PreErnPeriod THEN
5429: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',45);
5430: YtdCalc;
5431: ELSIF py_za_tx_utl_01082000.RetroInPrd THEN
5432: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',46);
5433: SitCalc;
5434: ELSIF py_za_tx_utl_01082000.NegPtd THEN
5435: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',47);
5430: YtdCalc;
5431: ELSIF py_za_tx_utl_01082000.RetroInPrd THEN
5432: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',46);
5433: SitCalc;
5434: ELSIF py_za_tx_utl_01082000.NegPtd THEN
5435: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',47);
5436: SitCalc;
5437: ELSE
5438: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',48);
5469: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',53);
5470:
5471: -- Post Calculation Steps
5472: --
5473: py_za_tx_utl_01082000.SitPaySplit;
5474:
5475: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',54);
5476:
5477: -- Execute the Arrear Processing
5475: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',54);
5476:
5477: -- Execute the Arrear Processing
5478: --
5479: IF py_za_tx_utl_01082000.SitePeriod THEN
5480: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',55);
5481: py_za_tx_utl_01082000.ArrearExcess;
5482: END IF;
5483:
5477: -- Execute the Arrear Processing
5478: --
5479: IF py_za_tx_utl_01082000.SitePeriod THEN
5480: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',55);
5481: py_za_tx_utl_01082000.ArrearExcess;
5482: END IF;
5483:
5484: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',56);
5485:
5532: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',60);
5533:
5534: -- Execute The Tax Trace
5535: --
5536: py_za_tx_utl_01082000.Trace;
5537:
5538: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',61);
5539:
5540: -- Clear Globals
5538: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',61);
5539:
5540: -- Clear Globals
5541: --
5542: py_za_tx_utl_01082000.ClearGlobals;
5543:
5544: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',62);
5545:
5546: -- End off Trace File
5548: WrtHrTrc('-- End of Trace File ');
5549: WrtHrTrc('------------------------------------------------------------');
5550:
5551: -- Call hr_utility stop procedure
5552: py_za_tx_utl_01082000.StopHrTrace;
5553:
5554: --dbms_debug.debug_off;
5555:
5556: RETURN l_Dum;
5558: EXCEPTION
5559: WHEN xpt_E THEN
5560: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',63);
5561: WrtHrTrc('xpt_Msg: '||xpt_Msg);
5562: py_za_tx_utl_01082000.StopHrTrace;
5563: hr_utility.set_message(801, xpt_Msg);
5564: py_za_tx_utl_01082000.ClearGlobals;
5565: hr_utility.raise_error;
5566: WHEN OTHERS THEN
5560: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',63);
5561: WrtHrTrc('xpt_Msg: '||xpt_Msg);
5562: py_za_tx_utl_01082000.StopHrTrace;
5563: hr_utility.set_message(801, xpt_Msg);
5564: py_za_tx_utl_01082000.ClearGlobals;
5565: hr_utility.raise_error;
5566: WHEN OTHERS THEN
5567: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',64);
5568: WrtHrTrc('Sql error code: '||TO_CHAR(SQLCODE));
5566: WHEN OTHERS THEN
5567: hr_utility.set_location('py_za_tx_01082000.ZaTx_01082000',64);
5568: WrtHrTrc('Sql error code: '||TO_CHAR(SQLCODE));
5569: WrtHrTrc('Sql error msg: '||SUBSTR(SQLERRM(SQLCODE), 1, 100));
5570: py_za_tx_utl_01082000.StopHrTrace;
5571: hr_utility.set_message(801, 'ZaTx_01082000: '||TO_CHAR(SQLCODE));
5572: py_za_tx_utl_01082000.ClearGlobals;
5573: hr_utility.raise_error;
5574: END ZaTx_01082000;
5568: WrtHrTrc('Sql error code: '||TO_CHAR(SQLCODE));
5569: WrtHrTrc('Sql error msg: '||SUBSTR(SQLERRM(SQLCODE), 1, 100));
5570: py_za_tx_utl_01082000.StopHrTrace;
5571: hr_utility.set_message(801, 'ZaTx_01082000: '||TO_CHAR(SQLCODE));
5572: py_za_tx_utl_01082000.ClearGlobals;
5573: hr_utility.raise_error;
5574: END ZaTx_01082000;
5575:
5576: END py_za_tx_01082000;