DBA Data[Home] [Help]

PACKAGE BODY: APPS.PY_ZA_TX_01032002

Source


1 PACKAGE BODY py_za_tx_01032002 AS
2 /* $Header: pyzat004.pkb 120.0 2005/05/29 10:29:49 appldev noship $ */
3 /* Copyright (c) Oracle Corporation 1999. All rights reserved. */
4 /*
5    PRODUCT
6       Oracle Payroll - ZA Localisation Tax Module
7 
8    NAME
9       py_za_tx_01032002.pkb
10 
11    DESCRIPTION
12       This is the main tax package as used in the ZA Localisation Tax Module.
13       The public functions in this package are not for client use and is
14       only referenced by the tax formulae in the Application.
15 
16    PUBLIC FUNCTIONS
17       Descriptions in package header
18       ZaTxOvr_01032000
19       ZaTxGlb_01032000
20       ZaTxDbi_01032000
21       ZaTxBal1_01032000
22       ZaTxBal2_01032000
23       ZaTxBal3_01032000
24       ZaTx_01032000
25 
26    PRIVATE FUNCTIONS
27       <none>
28 
29 
30    PRIVATE PROCEDURES
31       WrtHrTrc
32          Wrapper procedure for py_za_tx_utl_01032002.WriteHrTrace
33       NetTxbIncCalc
34          Procedure to calculate a Net Taxable Income figure used
35          to properly calculate the Skills Development Levy
36       LteCalc
37          A main tax calculation.
38          For a complete description see the tax module design document.
39       SeaCalc
40          A main tax calculation.
41          For a complete description see the tax module design document.
42       SitCalc
43          A main tax calculation.
44          For a complete description see the tax module design document.
45       DirCalc
46          A main tax calculation.
47          For a complete description see the tax module design document.
48       BasCalc
49          A main tax calculation.
50          For a complete description see the tax module design document.
51       CalCalc
52          A main tax calculation.
53          For a complete description see the tax module design document.
54       YtdCalc
55          A main tax calculation.
56          For a complete description see the tax module design document.
57       NorCalc
58          A main tax calculation.
59          For a complete description see the tax module design document.
60 
61    NOTES
62       .
63 
64    MODIFICATION HISTORY
65       Person      Date               Version   Comments
66       ---------   ----------------   -------   --------------------------------
67       A. Mahanty  14/04/2005         115.15    Bug 3491357 : BRA Enhancement
68                                                Balance Values retrieval modified.
69       J.N. Louw   02/07/2003         115.14    Bug 3011568
70       J.N. Louw   19/06/2003         115.13    Bug 3013638
71       J.N. Louw   19/06/2003         115.12    Bug 3013801
72       J.N. Louw   10/06/2003         115.11    Bug 2998778
73       J.N. Louw   12/02/2003         115.10    Bug 2659613
74       J.N. Louw   22/03/2002         115.8     Bug 2224332
75                                                Directors Remuneration
76       J.N. Louw   22/03/2002         115.7     Bug 2274662
77                                                Personal Service Trusts
78       J.N. Louw   12/10/2001         115.6     Fixed Abatements calculation
79                                                in NetTxbIncCalc
80                                                Fixed trc_TotLib[CatCode] Cascade
81                                                Figure calculation
82       J.N. Louw   27/09/2001         115.5     Added bal_ANN_PF_CYTD
83       J.N. Louw   04/09/2001         115.4     NorCalc.TrvAll Ptd summation
84                                                added
85       J.N. Louw   04/09/2001         115.3     Added WrtHrTrc wrapper
86       J.N. Louw   04/09/2001         115.2     Added Abatement Functionality to
87                                                the BasCalc calculation
88       J.N. Louw   31-08-2001         115.1     Corected Spool File
89       J.N. Louw   29-08-2001         115.0     Next Version of Main ZA Tax
90                                                Package.
91                                                For detail history see
92                                                py_za_tx_01082000
93 */
94 
95 -------------------------------------------------------------------------------
96 --                               PACKAGE BODY                                --
97 -------------------------------------------------------------------------------
98 
99 -------------------------------------------------------------------------------
100 -- WrtHrTrc
101 -- Wrapper for py_za_tx_utl_01032002.WriteHrTrace
102 -------------------------------------------------------------------------------
103 PROCEDURE WrtHrTrc(
104    p_Buf IN VARCHAR2
105    )
106 AS
107 
108 BEGIN
109    py_za_tx_utl_01032002.WriteHrTrace(p_Buf);
110 END WrtHrTrc;
111 
112 -------------------------------------------------------------------------------
113 -- NetTxbIncCalc
114 -- Calculates the net taxable income value for the calendar month
115 -------------------------------------------------------------------------------
116 PROCEDURE NetTxbIncCalc AS
117 
118    -- Variable Declaration
119    nti_CurMthStrtDte    DATE;
120    nti_CurMthEndDte     DATE;
121    nti_SitFactor        NUMBER;
122    nti_PerTypInc        BALANCE DEFAULT 0;
123    nti_PerTypErn        BALANCE DEFAULT 0;
124    nti_AnnTypErn        BALANCE DEFAULT 0;
125    nti_PerPenFnd        BALANCE DEFAULT 0;
126    nti_PerRfiCon        BALANCE DEFAULT 0;
127    nti_PerPenFndMax     BALANCE DEFAULT 0;
128    nti_PerPenFndAbm     BALANCE DEFAULT 0;
129    nti_AnnPenFnd        BALANCE DEFAULT 0;
130    nti_AnnRfiCon        BALANCE DEFAULT 0;
131    nti_AnnPenFndMax     BALANCE DEFAULT 0;
132    nti_AnnPenFndAbm     BALANCE DEFAULT 0;
133    nti_PerArrPenFnd     BALANCE DEFAULT 0;
134    nti_PerArrPenFndAbm  BALANCE DEFAULT 0;
135    nti_PerRetAnu        BALANCE DEFAULT 0;
136    nti_PerNrfiCon       BALANCE DEFAULT 0;
137    nti_PerRetAnuMax     BALANCE DEFAULT 0;
138    nti_PerRetAnuAbm     BALANCE DEFAULT 0;
139    nti_PerArrRetAnu     BALANCE DEFAULT 0;
140    nti_PerArrRetAnuAbm  BALANCE DEFAULT 0;
141    nti_AnnArrPenFnd     BALANCE DEFAULT 0;
142    nti_AnnArrPenFndAbm  BALANCE DEFAULT 0;
143    nti_AnnRetAnu        BALANCE DEFAULT 0;
144    nti_AnnNrfiCon       BALANCE DEFAULT 0;
145    nti_AnnRetAnuMax     BALANCE DEFAULT 0;
146    nti_AnnRetAnuAbm     BALANCE DEFAULT 0;
147    nti_AnnArrRetAnu     BALANCE DEFAULT 0;
148    nti_AnnArrRetAnuAbm  BALANCE DEFAULT 0;
149    nti_MedAidAbm        BALANCE DEFAULT 0;
150    nti_PerTotAbm        BALANCE DEFAULT 0;
151    nti_AnnTotAbm        BALANCE DEFAULT 0;
152    nti_TxbPerTypInc     BALANCE DEFAULT 0;
153    nti_TxbAnnTypInc     BALANCE DEFAULT 0;
154    nti_NetPerTxbInc     BALANCE DEFAULT 0;
155    nti_NetAnnTxbInc     BALANCE DEFAULT 0;
156    l_65Year             DATE;
157 
158 BEGIN
159    hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',1);
160 -- Calculate the Current Effective Calendar Month to Date Start Date
161 --
162    SELECT trunc(dbi_SES_DTE,'Month')
163      INTO nti_CurMthStrtDte
164      FROM dual;
165 
166    hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',2);
167 
168 -- Calculate the Current Effective Calendar Month to Date End Date
169 --
170    SELECT last_day(dbi_SES_DTE)
171      INTO nti_CurMthEndDte
172      FROM dual;
173 
174    hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',3);
175 
176 -- Calculate Site Factor
177 --
178    -- Based on the number of days in the calendar year over days in the calendar month
179    nti_SitFactor := dbi_ZA_DYS_IN_YR / (nti_CurMthEndDte - nti_CurMthStrtDte + 1);
180 
181    hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',4);
182 
183    WrtHrTrc('nti_CurMthEndDte:  '||to_char(nti_CurMthEndDte,'DD/MM/YYYY'));
184    WrtHrTrc('nti_CurMthStrtDte: '||to_char(nti_CurMthStrtDte,'DD/MM/YYYY'));
185 
186 -- Calculate the Taxable Portion of the Not-Fully Taxable Income Balances
187 --
188    bal_TA_RFI_CMTD  := bal_TA_RFI_CMTD * glb_ZA_TRV_ALL_TX_PRC / 100;
189    bal_TA_NRFI_CMTD := bal_TA_NRFI_CMTD * glb_ZA_TRV_ALL_TX_PRC / 100;
190 
191    bal_PO_RFI_CMTD  := bal_PO_RFI_CMTD * glb_ZA_PBL_TX_PRC / 100;
192    bal_PO_NRFI_CMTD := bal_PO_NRFI_CMTD * glb_ZA_PBL_TX_PRC / 100;
193 
194 -- Sum Period Type Income Calendar Month to Date Balances
195 --
196    nti_PerTypInc :=
197       ( bal_AST_PRCHD_RVAL_NRFI_CMTD + bal_AST_PRCHD_RVAL_RFI_CMTD
198       + bal_BP_CMTD
199       + bal_BUR_AND_SCH_NRFI_CMTD    + bal_BUR_AND_SCH_RFI_CMTD
200       + bal_COMM_NRFI_CMTD           + bal_COMM_RFI_CMTD
201       + bal_COMP_ALL_NRFI_CMTD       + bal_COMP_ALL_RFI_CMTD
202       + bal_ENT_ALL_NRFI_CMTD        + bal_ENT_ALL_RFI_CMTD
203       + bal_FREE_ACCOM_NRFI_CMTD     + bal_FREE_ACCOM_RFI_CMTD
204       + bal_FREE_SERV_NRFI_CMTD      + bal_FREE_SERV_RFI_CMTD
205       + bal_LOW_LOANS_NRFI_CMTD      + bal_LOW_LOANS_RFI_CMTD
206       + bal_MED_PAID_NRFI_CMTD       + bal_MED_PAID_RFI_CMTD
207       + bal_MLS_AND_VOUCH_NRFI_CMTD  + bal_MLS_AND_VOUCH_RFI_CMTD
208       + bal_OTHER_TXB_ALL_NRFI_CMTD  + bal_OTHER_TXB_ALL_RFI_CMTD
209       + bal_OVTM_NRFI_CMTD           + bal_OVTM_RFI_CMTD
210       + bal_PO_NRFI_CMTD             + bal_PO_RFI_CMTD
211       + bal_PYM_DBT_NRFI_CMTD        + bal_PYM_DBT_RFI_CMTD
212       + bal_RES_TRD_NRFI_CMTD        + bal_RES_TRD_RFI_CMTD
213       + bal_RGT_AST_NRFI_CMTD        + bal_RGT_AST_RFI_CMTD
214       + bal_TA_NRFI_CMTD             + bal_TA_RFI_CMTD
215       + bal_TEL_ALL_NRFI_CMTD        + bal_TEL_ALL_RFI_CMTD
216       + bal_TOOL_ALL_NRFI_CMTD       + bal_TOOL_ALL_RFI_CMTD
217       + bal_TXB_INC_NRFI_CMTD        + bal_TXB_INC_RFI_CMTD
218       + bal_TXB_PEN_NRFI_CMTD        + bal_TXB_PEN_RFI_CMTD
219       + bal_USE_VEH_NRFI_CMTD        + bal_USE_VEH_RFI_CMTD
220       );
221 
222 -- Annualise by the Site Factor the Period Type Income
223 --
224    nti_PerTypErn := nti_PerTypInc * nti_SitFactor;
225 
226 -- Sum Annual Type Income Calendar Month to Date Balances
227 --
228    nti_AnnTypErn :=
229       nti_PerTypErn
230     + ( bal_AB_NRFI_CMTD              + bal_AB_RFI_CMTD
231       + bal_AA_PRCHD_RVAL_NRFI_CMTD   + bal_AA_PRCHD_RVAL_RFI_CMTD
232       + bal_ANN_BUR_AND_SCH_NRFI_CMTD + bal_ANN_BUR_AND_SCH_RFI_CMTD
233       + bal_AC_NRFI_CMTD              + bal_AC_RFI_CMTD
234       + bal_ANU_FRM_RET_FND_NRFI_CMTD + bal_ANU_FRM_RET_FND_RFI_CMTD
235       + bal_ARES_TRD_NRFI_CMTD        + bal_ARES_TRD_RFI_CMTD
236       + bal_PRCH_ANU_TXB_NRFI_CMTD    + bal_PRCH_ANU_TXB_RFI_CMTD
237       + bal_TXB_AP_NRFI_CMTD          + bal_TXB_AP_RFI_CMTD
238       );
239 
240 -----------------------------
241 -- Calculate Abatement Values
242 -----------------------------
243    -------------------------
244    -- Pension Fund Abatement
245    -------------------------
246       ---------------------
247       -- Period Calculation
248       ---------------------
249          -- Annualise Period Pension Fund Contribution
250          nti_PerPenFnd := bal_PF_CMTD * nti_SitFactor;
251          -- Annualise Period Rfiable Contributions
252          nti_PerRfiCon := bal_TOT_RFI_INC_CMTD * nti_SitFactor;
253       ---------------------
254       -- Annual Calculation
255       ---------------------
256          -- Annual Pension Fund Contribution
257          nti_AnnPenFnd := nti_PerPenFnd + bal_ANN_PF_CMTD;
258          -- Annual Rfi Contribution
259          nti_AnnRfiCon := nti_PerRfiCon + bal_TOT_RFI_AN_INC_CMTD;
260 
261       --------------------------------
262       -- Arrear Pension Fund Abatement
263       --------------------------------
264          hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',4);
265          -------------
266          -- Excess ITD
267          -------------
268          nti_PerArrPenFnd := bal_EXC_ARR_PEN_ITD;
269          ------------------------------------
270          -- Current/Annual based on frequency
271          ------------------------------------
272          nti_PerArrPenFnd :=
273             nti_PerArrPenFnd + ( bal_ARR_PF_CMTD * nti_SitFactor);
274           ---------
275           -- Annual
276           ---------
277           nti_AnnArrPenFnd := nti_PerArrPenFnd + bal_ANN_ARR_PF_CMTD;
278 
279       -------------------------------
280       -- Retirement Annuity Abatement
281       -------------------------------
282          hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',7);
283          -------------
284          -- Current RA
285          -------------
286          -- Calculate RA Contribution
287          nti_PerRetAnu := bal_RA_CMTD * nti_SitFactor;
288          ---------------------
289          -- Current NRFI Contr
290          ---------------------
291          IF bal_PF_CMTD + bal_ANN_PF_CMTD = 0 THEN
292             hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',10);
293             nti_PerNrfiCon := (
294                                 bal_TOT_RFI_INC_CMTD + bal_TOT_NRFI_INC_CMTD
295                               )
296                               * nti_SitFactor;
297          ELSE
298             hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',11);
299             nti_PerNrfiCon := bal_TOT_NRFI_INC_CMTD * nti_SitFactor;
300          END IF;
301          ------------
302          -- Annual RA
303          ------------
304          nti_AnnRetAnu := nti_PerRetAnu + bal_ANN_RA_CMTD;
305 
306          IF bal_PF_CMTD + bal_ANN_PF_CMTD = 0 THEN
307             hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',10);
308 
309             nti_AnnNrfiCon := nti_PerNrfiCon
310                             + bal_TOT_NRFI_AN_INC_CMTD
311                             + bal_TOT_RFI_AN_INC_CMTD;
312          ELSE
313             hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',11);
314 
315             nti_AnnNrfiCon := nti_PerNrfiCon + bal_TOT_NRFI_AN_INC_CMTD;
316          END IF;
317       --------------------------------------
318       -- Arrear Retirement Annuity Abatement
319       --------------------------------------
320          hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',12);
321          -------------
322          -- Excess ITD
323          -------------
324          nti_PerArrRetAnu := bal_EXC_ARR_RA_ITD;
325          ------------------------------------
326          -- Current/Annual based on frequency
327          ------------------------------------
328          nti_PerArrRetAnu :=   nti_PerArrRetAnu
329                            + ( bal_ARR_RA_CMTD
330                              * nti_SitFactor
331                              );
332          ---------
333          -- Annual
334          ---------
335          nti_AnnArrRetAnu := nti_PerArrRetAnu
336                            + nti_AnnArrRetAnu
337                            + bal_ANN_ARR_RA_CMTD;
338 
339       ------------------------
340       -- Medical Aid Abatement
341       ------------------------
342          nti_MedAidAbm := bal_MED_CONTR_CMTD * nti_SitFactor;
343 
344    ----------------------------------------------------------------------------
345    --                        CALCULATE THE ABATEMENTS                        --
346    ----------------------------------------------------------------------------
347    -------------------------
348    -- Pension Fund Abatement
349    -------------------------
350       ---------------------
351       -- Period Calculation
352       ---------------------
353       -- Calculate the Pension Fund Maximum
354       nti_PerPenFndMax := GREATEST( glb_ZA_PF_AN_MX_ABT
355                                   , glb_ZA_PF_MX_PRC / 100 * nti_PerRfiCon
356                                   );
357       -- Calculate Period Pension Fund Abatement
358       nti_PerPenFndAbm := LEAST(nti_PerPenFnd, nti_PerPenFndMax);
359       ---------------------
360       -- Annual Calculation
361       ---------------------
362       -- Calculate the Pension Fund Maximum
363       nti_AnnPenFndMax := GREATEST( glb_ZA_PF_AN_MX_ABT
364                                   , glb_ZA_PF_MX_PRC / 100 * nti_AnnRfiCon
365                                   );
366 
367       -- Calculate Annual Pension Fund Abatement
368       nti_AnnPenFndAbm := LEAST(nti_AnnPenFnd, nti_AnnPenFndMax);
369    --------------------------------
370    -- Arrear Pension Fund Abatement
371    --------------------------------
372       ---------------------
373       -- Period Calculation
374       ---------------------
375       nti_PerArrPenFndAbm := LEAST(nti_PerArrPenFnd, glb_ZA_ARR_PF_AN_MX_ABT);
376       ---------------------
377       -- Annual Calculation
378       ---------------------
379       nti_AnnArrPenFndAbm := LEAST(nti_AnnArrPenFnd, glb_ZA_ARR_PF_AN_MX_ABT);
380    ---------------------------------
381    -- Retirement Annnnuity Abatement
382    ---------------------------------
383       ---------------------
384       -- Period Calculation
385       ---------------------
386       -- Calculate the Retirement Annuity Maximum
387       nti_PerRetAnuMax := GREATEST( glb_ZA_PF_AN_MX_ABT
388                                   , glb_ZA_RA_AN_MX_ABT - nti_PerPenFndAbm
389                                   , glb_ZA_RA_MX_PRC / 100 * nti_PerNrfiCon
390                                   );
391 
392       -- Calculate Retirement Annuity Abatement
393       nti_PerRetAnuAbm := LEAST(nti_PerRetAnu, nti_PerRetAnuMax);
394       ---------------------
395       -- Annual Calculation
396       ---------------------
397       nti_AnnRetAnuMax := GREATEST( glb_ZA_PF_AN_MX_ABT
398                                   , glb_ZA_RA_AN_MX_ABT - nti_AnnPenFndAbm
399                                   , glb_ZA_RA_MX_PRC / 100 * nti_AnnNrfiCon
400                                   );
401 
402       -- Calculate Retirement Annuity Abatement
403       nti_AnnRetAnuAbm := LEAST(nti_AnnRetAnu, nti_AnnRetAnuMax);
404    --------------------------------------
405    -- Arrear Retirement Annuity Abatement
406    --------------------------------------
407       ---------------------
408       -- Period Calculation
409       ---------------------
410       nti_PerArrRetAnuAbm := LEAST(nti_PerArrRetAnu, glb_ZA_ARR_RA_AN_MX_ABT);
411       ---------------------
412       -- Annual Calculation
413       ---------------------
414       nti_AnnArrRetAnuAbm := LEAST(nti_AnnArrRetAnu, glb_ZA_ARR_RA_AN_MX_ABT);
415 
416    -----------------------------------------------------------
417    -- Tax Rebates, Threshold Figure and Medical Aid Abatements
418    -----------------------------------------------------------
419       -- Calculate the assignments 65 Year Date
420       l_65Year := add_months(py_za_tx_01032002.dbi_PER_DTE_OF_BRTH,780);
421 
422       IF l_65Year > dbi_ZA_TX_YR_END THEN
423          nti_MedAidAbm := 0;
424       END IF;
425 
426       hr_utility.set_location('py_za_tx_01032002.NetTxbIncCalc',62);
427 
428    -------------------
429    -- Total Abatements
430    -------------------
431       -- Period Total Abatement
432       nti_PerTotAbm := ( nti_PerPenFndAbm
433                        + nti_PerArrPenFndAbm
434                        + nti_PerRetAnuAbm
435                        + nti_PerArrRetAnuAbm
436                        + nti_MedAidAbm
437                        );
438 
439       -- Annual Total Abatements
440       nti_AnnTotAbm := ( nti_AnnPenFndAbm
441                        + nti_AnnArrPenFndAbm
442                        + nti_AnnRetAnuAbm
443                        + nti_AnnArrRetAnuAbm
444                        + nti_MedAidAbm
445                        );
446 
447 -- Calculate New O Figures
448 --
449    nti_TxbPerTypInc := nti_PerTypErn - nti_PerTotAbm;
450    nti_TxbAnnTypInc := nti_AnnTypErn - nti_AnnTotAbm;
451 
452 -- Deannualise Period O Figure
453 --
454    nti_NetPerTxbInc := nti_TxbPerTypInc / nti_SitFactor;
455 -- Calculate the Net Taxable Annual Type Income
456 --
457    nti_NetAnnTxbInc := nti_TxbAnnTypInc - nti_TxbPerTypInc;
458 
459 -- Calculate New Net Taxable Income Balance
460 --
461    trc_NtiUpdFig := (nti_NetPerTxbInc + nti_NetAnnTxbInc) - bal_NET_TXB_INC_CMTD;
462 
463    WrtHrTrc('nti_SitFactor:        '||to_char(nti_SitFactor));
464    WrtHrTrc('nti_PerTypErn:        '||to_char(nti_PerTypErn));
465    WrtHrTrc('nti_AnnTypErn:        '||to_char(nti_AnnTypErn));
466    WrtHrTrc('nti_NetPerTxbInc:     '||to_char(nti_NetPerTxbInc));
467    WrtHrTrc('nti_NetAnnTxbInc:     '||to_char(nti_NetAnnTxbInc));
468    WrtHrTrc('bal_NET_TXB_INC_CMTD: '||to_char(bal_NET_TXB_INC_CMTD));
469    WrtHrTrc('trc_NtiUpdFig:        '||to_char(trc_NtiUpdFig));
470    WrtHrTrc(' ');
471    WrtHrTrc('nti_PerTotAbm:        '||to_char(nti_PerTotAbm));
472    WrtHrTrc('nti_PerTotAbm consists of:');
473    WrtHrTrc('nti_PerPenFndAbm:     '||to_char(nti_PerPenFndAbm));
474    WrtHrTrc('nti_PerArrPenFndAbm:  '||to_char(nti_PerArrPenFndAbm));
475    WrtHrTrc('nti_PerRetAnuAbm:     '||to_char(nti_PerRetAnuAbm));
476    WrtHrTrc('nti_PerArrRetAnuAbm:  '||to_char(nti_PerArrRetAnuAbm));
477    WrtHrTrc('nti_MedAidAbm:        '||to_char(nti_MedAidAbm));
478    WrtHrTrc(' ');
479    WrtHrTrc('nti_AnnTotAbm:        '||to_char(nti_AnnTotAbm));
480    WrtHrTrc('nti_AnnTotAbm consists of:');
481    WrtHrTrc('nti_AnnPenFndAbm:     '||to_char(nti_AnnPenFndAbm));
482    WrtHrTrc('nti_AnnArrPenFndAbm:  '||to_char(nti_AnnArrPenFndAbm));
483    WrtHrTrc('nti_AnnRetAnuAbm:     '||to_char(nti_AnnRetAnuAbm));
484    WrtHrTrc('nti_AnnArrRetAnuAbm:  '||to_char(nti_AnnArrRetAnuAbm));
485    WrtHrTrc('nti_MedAidAbm:        '||to_char(nti_MedAidAbm));
486 
487 
488 EXCEPTION
489    WHEN OTHERS THEN
490       IF xpt_Msg = 'No Error' THEN
491          xpt_Msg := 'NetTxbIncCalc: '||TO_CHAR(SQLCODE);
492       END IF;
493        RAISE xpt_E;
494 END NetTxbIncCalc;
495 
496 -------------------------------------------------------------------------------
497 -- Tax Override Function
498 -------------------------------------------------------------------------------
499 FUNCTION ZaTxOvr_01032002(
500     p_OvrTyp IN VARCHAR2
501    ,p_TxOnNI IN NUMBER DEFAULT 0
502    ,p_TxOnAP IN NUMBER DEFAULT 0
503    ,p_TxPrc  IN NUMBER DEFAULT 0
504    )RETURN NUMBER
505 AS
506    l_Dum NUMBER := 1;
507 BEGIN
508    -- Set the Override Global
509    trc_OvrTxCalc := TRUE;
510 
511    -- Set Override Values
512    trc_OvrTyp  := p_OvrTyp;
513 
514    IF p_OvrTyp = 'V' THEN
515       trc_LibFpNI := p_TxOnNI;
516       trc_LibFpAP := p_TxOnAP;
517    ELSIF p_OvrTyp = 'P' THEN
518       trc_OvrPrc  := p_TxPrc;
519    END IF;
520    RETURN l_Dum;
521 
522 EXCEPTION
523    WHEN OTHERS THEN
524       hr_utility.set_message(801, 'ZaTxOvr_01032002: '||TO_CHAR(SQLCODE));
525       hr_utility.raise_error;
526 END ZaTxOvr_01032002;
527 
528 -------------------------------------------------------------------------------
529 --                    Main Tax Calculation Procedures                        --
530 -------------------------------------------------------------------------------
531 -------------------------------------------------------------------------------
532 -- LteCalc
533 -------------------------------------------------------------------------------
534 PROCEDURE LteCalc AS
535 
536    -- Variables
537    l_EndDate             DATE;
538    l_StrtDte             DATE;
539    l_65Year              DATE;
540    l_ZA_TX_YR_END        DATE;
541    l_ZA_ADL_TX_RBT       NUMBER;
542    l_ZA_PRI_TX_RBT       NUMBER;
543    l_ZA_PRI_TX_THRSHLD   NUMBER;
544    l_ZA_SC_TX_THRSHLD    NUMBER;
545 
546    l_Sl                  BOOLEAN;
547    l_Np                  BALANCE DEFAULT 0;
548 
549 
550    -- Private Functions
551    --
552       FUNCTION getBalVal
553          (p_BalNme IN pay_balance_types.balance_name%TYPE
554          ,p_EffDte   IN DATE
555          ) RETURN NUMBER
556       AS
557          -- Variables
558          l_BalVal BALANCE;
559          l_BalTypId pay_balance_types.balance_type_id%TYPE;
560          l_dimension pay_balance_dimensions.dimension_name%TYPE ;
561 
562       BEGIN
563          hr_utility.set_location('py_za_tx_01032002.LteCalc',1);
564          -- Get the Balance Type ID
565          SELECT pbt.balance_type_id
566            INTO l_BalTypId
567            FROM pay_balance_types pbt
568           WHERE pbt.balance_name = p_BalNme;
569 
570          hr_utility.set_location('py_za_tx_01032002.LteCalc',2);
571 
572          -- Get the Balance Value
573           -- 3491357
574          /*l_BalVal := py_za_bal.calc_asg_tax_ytd_date
575                         ( con_ASG_ID
576                         , l_BalTypId
577                         , p_EffDte
578                         );*/
579          l_dimension := '_ASG_TAX_YTD';
580          l_BalVal := py_za_bal.get_balance_value
581                                       ( con_ASG_ID
582                                       , l_BalTypId
583                                       , l_dimension
584                                       , p_EffDte
585                                       );
586 
587          RETURN l_BalVal;
588       END getBalVal;
589 
590       FUNCTION getBalVal2
591          (p_BalNme IN pay_balance_types.balance_name%TYPE
592          ,p_EffDte   IN DATE
593          ) RETURN NUMBER
594       AS
595          -- Variables
596          l_BalVal BALANCE;
597          l_BalTypId pay_balance_types.balance_type_id%TYPE;
598          l_dimension pay_balance_dimensions.dimension_name%TYPE ;
599       BEGIN
600          hr_utility.set_location('py_za_tx_01032002.LteCalc',3);
601          -- Get the Balance Type ID
602          SELECT pbt.balance_type_id
603            INTO l_BalTypId
604            FROM pay_balance_types pbt
605           WHERE pbt.balance_name = p_BalNme;
606 
607          hr_utility.set_location('py_za_tx_01032002.LteCalc',4);
608 
609          -- Get the Balance Value
610          -- 3491357
611          /*l_BalVal := py_za_bal.calc_asg_itd_date
612                         ( con_ASG_ID
613                         , l_BalTypId
614                         , p_EffDte
615                         );*/
616          l_dimension := '_ASG_ITD';
617          l_BalVal := py_za_bal.get_balance_value
618                                        ( con_ASG_ID
619                                        , l_BalTypId
620                                        , l_dimension
621                                        , p_EffDte
622                                        );
623 
624          RETURN l_BalVal;
625       END getBalVal2;
626 
627 BEGIN
628    hr_utility.set_location('py_za_tx_01032002.LteCalc',5);
629    -- Does the Assignment have an OFigure?
630    --
631    IF bal_TOT_TXB_INC_ITD <= 0 THEN
632       hr_utility.set_location('py_za_tx_01032002.LteCalc',6);
633       -- Calculate the 'O' Figure
634       -- Set the Global
635       trc_CalTyp := 'PstCalc';
636       -- Set the Site Factor to the value of the previous tax year
637       l_StrtDte := dbi_ZA_ASG_TX_YR_STRT;
638       l_EndDate := dbi_ZA_ASG_TX_YR_END;
639 
640       hr_utility.set_location('py_za_tx_01032002.LteCalc',8);
641 
642       trc_SitFactor := (l_EndDate - l_StrtDte + 1) / py_za_tx_utl_01032002.DaysWorked;
643 
644       hr_utility.set_location('py_za_tx_01032002.LteCalc',9);
645 
646       -- Populate Local Balance Variables
647       -- The PTD Globals are used as dummy to store the previous tax year's
648       -- Balance values
649 
650       bal_AB_NRFI_PTD              := getBalVal('Annual Bonus NRFI',l_EndDate);
651       bal_AB_RFI_PTD               := getBalVal('Annual Bonus RFI',l_EndDate);
652       bal_AA_PRCHD_RVAL_NRFI_PTD   := getBalVal('Annual Asset Purchased at Reduced Value NRFI',l_EndDate);
653       bal_AA_PRCHD_RVAL_RFI_PTD    := getBalVal('Annual Asset Purchased at Reduced Value RFI',l_EndDate);
654       bal_ANN_BUR_AND_SCH_NRFI_PTD := getBalVal('Annual Bursaries and Scholarships NRFI',l_EndDate);
655       bal_ANN_BUR_AND_SCH_RFI_PTD  := getBalVal('Annual Bursaries and Scholarships RFI',l_EndDate);
656       bal_AC_NRFI_PTD              := getBalVal('Annual Commission NRFI',l_EndDate);
657       bal_AC_RFI_PTD               := getBalVal('Annual Commission RFI',l_EndDate);
658       bal_ANN_ARR_PF_PTD           := getBalVal('Annual Arrear Pension Fund',l_EndDate);
659       bal_ANN_ARR_RA_PTD           := getBalVal('Annual Arrear Retirement Annuity',l_EndDate);
660       bal_ANN_PF_PTD               := getBalVal('Annual Pension Fund',l_EndDate);
661       bal_ANN_RA_PTD               := getBalVal('Annual Retirement Annuity',l_EndDate);
662       bal_ANU_FRM_RET_FND_NRFI_PTD := getBalVal('Annuity from Retirement Fund NRFI',l_EndDate);
663       bal_ANU_FRM_RET_FND_RFI_PTD  := getBalVal('Annuity from Retirement Fund RFI',l_EndDate);
664       bal_ARES_TRD_NRFI_PTD        := getBalVal('Annual Restraint of Trade NRFI',l_EndDate);
665       bal_ARES_TRD_RFI_PTD         := getBalVal('Annual Restraint of Trade RFI',l_EndDate);
666       bal_ARR_PF_PTD               := getBalVal('Arrear Pension Fund',l_EndDate);
667       bal_ARR_RA_PTD               := getBalVal('Arrear Retirement Annuity',l_EndDate);
668       bal_AST_PRCHD_RVAL_NRFI_PTD  := getBalVal('Asset Purchased at Reduced Value NRFI',l_EndDate);
669       bal_AST_PRCHD_RVAL_RFI_PTD   := getBalVal('Asset Purchased at Reduced Value RFI',l_EndDate);
670       bal_BP_PTD                   := getBalVal('Bonus Provision',l_EndDate);
671       bal_BUR_AND_SCH_NRFI_PTD     := getBalVal('Bursaries and Scholarships NRFI',l_EndDate);
672       bal_BUR_AND_SCH_RFI_PTD      := getBalVal('Bursaries and Scholarships RFI',l_EndDate);
673       bal_COMM_NRFI_PTD            := getBalVal('Commission NRFI',l_EndDate);
674       bal_COMM_RFI_PTD             := getBalVal('Commission RFI',l_EndDate);
675       bal_COMP_ALL_NRFI_PTD        := getBalVal('Computer Allowance NRFI',l_EndDate);
676       bal_COMP_ALL_RFI_PTD         := getBalVal('Computer Allowance RFI',l_EndDate);
677       bal_PF_PTD                   := getBalVal('Current Pension Fund',l_EndDate);
678       bal_RA_PTD                   := getBalVal('Current Retirement Annuity',l_EndDate);
679       bal_ENT_ALL_NRFI_PTD         := getBalVal('Entertainment Allowance NRFI',l_EndDate);
680       bal_ENT_ALL_RFI_PTD          := getBalVal('Entertainment Allowance RFI',l_EndDate);
681       bal_EXC_ARR_PEN_PTD          := getBalVal2('Excess Arrear Pension',l_EndDate);
682       bal_EXC_ARR_RA_PTD           := getBalVal2('Excess Arrear Retirement Annuity',l_EndDate);
683       bal_FREE_ACCOM_NRFI_PTD      := getBalVal('Free or Cheap Accommodation NRFI',l_EndDate);
684       bal_FREE_ACCOM_RFI_PTD       := getBalVal('Free or Cheap Accommodation RFI',l_EndDate);
685       bal_FREE_SERV_NRFI_PTD       := getBalVal('Free or Cheap Services NRFI',l_EndDate);
686       bal_FREE_SERV_RFI_PTD        := getBalVal('Free or Cheap Services RFI',l_EndDate);
687       bal_LOW_LOANS_NRFI_PTD       := getBalVal('Low or Interest Free Loans NRFI',l_EndDate);
688       bal_LOW_LOANS_RFI_PTD        := getBalVal('Low or Interest Free Loans RFI',l_EndDate);
689       bal_MLS_AND_VOUCH_NRFI_PTD   := getBalVal('Meals Refreshments and Vouchers NRFI',l_EndDate);
690       bal_MLS_AND_VOUCH_RFI_PTD    := getBalVal('Meals Refreshments and Vouchers RFI',l_EndDate);
691       bal_MED_CONTR_PTD            := getBalVal('Medical Aid Contribution',l_EndDate);
692       bal_MED_PAID_NRFI_PTD        := getBalVal('Medical Aid Paid on Behalf of Employee NRFI',l_EndDate);
693       bal_MED_PAID_RFI_PTD         := getBalVal('Medical Aid Paid on Behalf of Employee RFI',l_EndDate);
694       bal_OTHER_TXB_ALL_NRFI_PTD   := getBalVal('Other Taxable Allowance NRFI',l_EndDate);
695       bal_OTHER_TXB_ALL_RFI_PTD    := getBalVal('Other Taxable Allowance RFI',l_EndDate);
696       bal_OVTM_NRFI_PTD            := getBalVal('Overtime NRFI',l_EndDate);
697       bal_OVTM_RFI_PTD             := getBalVal('Overtime RFI',l_EndDate);
698       bal_PYM_DBT_NRFI_PTD         := getBalVal('Payment of Employee Debt NRFI',l_EndDate);
699       bal_PYM_DBT_RFI_PTD          := getBalVal('Payment of Employee Debt RFI',l_EndDate);
700       bal_PO_NRFI_PTD              := getBalVal('Public Office Allowance NRFI',l_EndDate);
701       bal_PO_RFI_PTD               := getBalVal('Public Office Allowance RFI',l_EndDate);
702       bal_PRCH_ANU_TXB_NRFI_PTD    := getBalVal('Purchased Annuity Taxable NRFI',l_EndDate);
703       bal_PRCH_ANU_TXB_RFI_PTD     := getBalVal('Purchased Annuity Taxable RFI',l_EndDate);
704       bal_RES_TRD_NRFI_PTD         := getBalVal('Restraint of Trade NRFI',l_EndDate);
705       bal_RES_TRD_RFI_PTD          := getBalVal('Restraint of Trade RFI',l_EndDate);
706       bal_RGT_AST_NRFI_PTD         := getBalVal('Right of Use of Asset NRFI',l_EndDate);
707       bal_RGT_AST_RFI_PTD          := getBalVal('Right of Use of Asset RFI',l_EndDate);
708       bal_TXB_AP_NRFI_PTD          := getBalVal('Taxable Annual Payment NRFI',l_EndDate);
709       bal_TXB_AP_RFI_PTD           := getBalVal('Taxable Annual Payment RFI',l_EndDate);
710       bal_TXB_INC_NRFI_PTD         := getBalVal('Taxable Income NRFI',l_EndDate);
711       bal_TXB_INC_RFI_PTD          := getBalVal('Taxable Income RFI',l_EndDate);
712       bal_TXB_PEN_NRFI_PTD         := getBalVal('Taxable Pension NRFI',l_EndDate);
713       bal_TXB_PEN_RFI_PTD          := getBalVal('Taxable Pension RFI',l_EndDate);
714       bal_TEL_ALL_NRFI_PTD         := getBalVal('Telephone Allowance NRFI',l_EndDate);
715       bal_TEL_ALL_RFI_PTD          := getBalVal('Telephone Allowance RFI',l_EndDate);
716       bal_TOOL_ALL_NRFI_PTD        := getBalVal('Tool Allowance NRFI',l_EndDate);
717       bal_TOOL_ALL_RFI_PTD         := getBalVal('Tool Allowance RFI',l_EndDate);
718       bal_TOT_INC_PTD              := getBalVal('Total Income',l_EndDate);
719       bal_TOT_NRFI_AN_INC_PTD      := getBalVal('Total NRFIable Annual Income',l_EndDate);
720       bal_TOT_NRFI_INC_PTD         := getBalVal('Total NRFIable Income',l_EndDate);
721       bal_TOT_RFI_AN_INC_PTD       := getBalVal('Total RFIable Annual Income',l_EndDate);
722       bal_TOT_RFI_INC_PTD          := getBalVal('Total RFIable Income',l_EndDate);
723       bal_TA_NRFI_PTD              := getBalVal('Travel Allowance NRFI',l_EndDate);
724       bal_TA_RFI_PTD               := getBalVal('Travel Allowance RFI',l_EndDate);
725       bal_USE_VEH_NRFI_PTD         := getBalVal('Use of Motor Vehicle NRFI',l_EndDate);
726       bal_USE_VEH_RFI_PTD          := getBalVal('Use of Motor Vehicle RFI',l_EndDate);
727 
728       hr_utility.set_location('py_za_tx_01032002.LteCalc',10);
729 
730       -- Update Globals with Correct Taxable Values
731       py_za_tx_utl_01032002.TrvAll;
732 
733       bal_PO_NRFI_PTD := bal_PO_NRFI_PTD
734                        * py_za_tx_utl_01032002.GlbVal('ZA_PUBL_TAX_PERC',l_EndDate)
735                        / 100;
736       bal_PO_RFI_PTD  := bal_PO_RFI_PTD
737                        * py_za_tx_utl_01032002.GlbVal('ZA_PUBL_TAX_PERC',l_EndDate)
738                        / 100;
739 
740       hr_utility.set_location('py_za_tx_01032002.LteCalc',11);
741 
742       -- Rebates
743       py_za_tx_utl_01032002.SetRebates;
744       -- Abatements
745       py_za_tx_utl_01032002.Abatements;
746 
747       hr_utility.set_location('py_za_tx_01032002.LteCalc',12);
748 
749       -- Base Earnings
750       --
751       trc_BseErn :=
752          (( bal_AST_PRCHD_RVAL_NRFI_PTD + bal_AST_PRCHD_RVAL_RFI_PTD
753          + bal_BP_PTD
754          + bal_BUR_AND_SCH_NRFI_PTD     + bal_BUR_AND_SCH_RFI_PTD
755          + bal_COMM_NRFI_PTD            + bal_COMM_RFI_PTD
756          + bal_COMP_ALL_NRFI_PTD        + bal_COMP_ALL_RFI_PTD
757          + bal_ENT_ALL_NRFI_PTD         + bal_ENT_ALL_RFI_PTD
758          + bal_FREE_ACCOM_NRFI_PTD      + bal_FREE_ACCOM_RFI_PTD
759          + bal_FREE_SERV_NRFI_PTD       + bal_FREE_SERV_RFI_PTD
760          + bal_LOW_LOANS_NRFI_PTD       + bal_LOW_LOANS_RFI_PTD
761          + bal_MED_PAID_NRFI_PTD        + bal_MED_PAID_RFI_PTD
762          + bal_MLS_AND_VOUCH_NRFI_PTD   + bal_MLS_AND_VOUCH_RFI_PTD
763          + bal_OTHER_TXB_ALL_NRFI_PTD   + bal_OTHER_TXB_ALL_RFI_PTD
764          + bal_OVTM_NRFI_PTD            + bal_OVTM_RFI_PTD
765          + bal_PO_NRFI_PTD              + bal_PO_RFI_PTD
766          + bal_PYM_DBT_NRFI_PTD         + bal_PYM_DBT_RFI_PTD
767          + bal_RES_TRD_NRFI_PTD         + bal_RES_TRD_RFI_PTD
768          + bal_RGT_AST_NRFI_PTD         + bal_RGT_AST_RFI_PTD
769          + bal_TA_NRFI_PTD              + bal_TA_RFI_PTD
770          + bal_TEL_ALL_NRFI_PTD         + bal_TEL_ALL_RFI_PTD
771          + bal_TOOL_ALL_NRFI_PTD        + bal_TOOL_ALL_RFI_PTD
772          + bal_TXB_INC_NRFI_PTD         + bal_TXB_INC_RFI_PTD
773          + bal_TXB_PEN_NRFI_PTD         + bal_TXB_PEN_RFI_PTD
774          + bal_USE_VEH_NRFI_PTD         + bal_USE_VEH_RFI_PTD)
775          * trc_SitFactor)
776          + bal_AB_NRFI_PTD              + bal_AB_RFI_PTD
777          + bal_AA_PRCHD_RVAL_NRFI_PTD   + bal_AA_PRCHD_RVAL_RFI_PTD
778          + bal_ANN_BUR_AND_SCH_NRFI_PTD + bal_ANN_BUR_AND_SCH_RFI_PTD
779          + bal_AC_NRFI_PTD              + bal_AC_RFI_PTD
780          + bal_ANU_FRM_RET_FND_NRFI_PTD + bal_ANU_FRM_RET_FND_RFI_PTD
781          + bal_ARES_TRD_NRFI_PTD        + bal_ARES_TRD_RFI_PTD
782          + bal_PRCH_ANU_TXB_NRFI_PTD    + bal_PRCH_ANU_TXB_RFI_PTD
783          + bal_TXB_AP_NRFI_PTD          + bal_TXB_AP_RFI_PTD;
784 
785       -- Taxable Base Income
786       trc_TxbBseInc := trc_BseErn - trc_AnnTotAbm;
787       -- Threshold Check
788       IF trc_TxbBseInc >= trc_Threshold THEN
789          hr_utility.set_location('py_za_tx_01032002.LteCalc',13);
790       -- Tax Liability
791          trc_TotLibBse := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbBseInc);
792       ELSE
793          hr_utility.set_location('py_za_tx_01032002.LteCalc',14);
794          trc_TotLibBse := 0;
795       END IF;
796 
797       -- Populate the O Figure
798       trc_OUpdFig := trc_TxbBseInc - bal_TOT_TXB_INC_ITD;
799 
800       -- Base Income
801       WrtHrTrc('trc_BseErn:    '||to_char(trc_BseErn));
802       WrtHrTrc('trc_TxbBseInc: '||to_char(trc_TxbBseInc));
803       WrtHrTrc('trc_TotLibBse: '||to_char(trc_TotLibBse));
804 
805    ELSE
806       hr_utility.set_location('py_za_tx_01032002.LteCalc',15);
807       -- Use the 'O' Figure as Base
808       -- Set the Global
809       trc_CalTyp := 'LteCalc';
810 
811       -- Get the assignment's previous tax year's
812       --   threshold and rebate figures
813       -- Employee Tax Year Start and End Dates
814       l_EndDate  := dbi_ZA_ASG_TX_YR_END;
815 
816       hr_utility.set_location('py_za_tx_01032002.LteCalc',16);
817 
818       -- Global Values
819       l_ZA_TX_YR_END        := l_EndDate;
820       l_ZA_ADL_TX_RBT       := py_za_tx_utl_01032002.GlbVal('ZA_ADDITIONAL_TAX_REBATE',l_EndDate);
821       l_ZA_PRI_TX_RBT       := py_za_tx_utl_01032002.GlbVal('ZA_PRIMARY_TAX_REBATE',l_EndDate);
822       l_ZA_PRI_TX_THRSHLD   := py_za_tx_utl_01032002.GlbVal('ZA_PRIM_TAX_THRESHOLD',l_EndDate);
823       l_ZA_SC_TX_THRSHLD    := py_za_tx_utl_01032002.GlbVal('ZA_SEC_TAX_THRESHOLD',l_EndDate);
824 
825       -- Calculate the assignments 65 Year Date
826       l_65Year := add_months(dbi_PER_DTE_OF_BRTH,780);
827 
828       IF l_65Year <= l_ZA_TX_YR_END THEN
829          hr_utility.set_location('py_za_tx_01032002.LteCalc',17);
830          -- give the extra abatement
831          trc_Rebate    := l_ZA_PRI_TX_RBT + l_ZA_ADL_TX_RBT;
832          trc_Threshold := l_ZA_SC_TX_THRSHLD;
833       ELSE
834          hr_utility.set_location('py_za_tx_01032002.LteCalc',18);
835          -- not eligable for extra abatement
836          trc_Rebate    := l_ZA_PRI_TX_RBT;
837          trc_Threshold := l_ZA_PRI_TX_THRSHLD;
838       END IF;
839 
840 
841    -- Base Earnings
842    --
843       -- Take the OFigure as Taxable Base Income
844       trc_TxbBseInc := bal_TOT_TXB_INC_ITD;
845       -- Threshold Check
846       IF trc_TxbBseInc >= trc_Threshold THEN
847          hr_utility.set_location('py_za_tx_01032002.LteCalc',19);
848          -- Tax Liability
849          trc_TotLibBse := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbBseInc);
850       ELSE
851          hr_utility.set_location('py_za_tx_01032002.LteCalc',20);
852          trc_TotLibBse := 0;
853       END IF;
854 
855       -- Base Income
856       WrtHrTrc('trc_BseErn:    '||to_char(trc_BseErn));
857       WrtHrTrc('trc_TxbBseInc: '||to_char(trc_TxbBseInc));
858       WrtHrTrc('trc_TotLibBse: '||to_char(trc_TotLibBse));
859    END IF;
860 
861    -- Override the Global
862    trc_CalTyp := 'LteCalc';
863    -- Set the SitFactor back to 1
864    trc_SitFactor := 1;
865 
866    hr_utility.set_location('py_za_tx_01032002.LteCalc',21);
867 
868    -- Rebates
869    py_za_tx_utl_01032002.SetRebates;
870    -- Abatements
871    py_za_tx_utl_01032002.Abatements;
872 
873    hr_utility.set_location('py_za_tx_01032002.LteCalc',22);
874 
875    -- Update Global Balance Values with correct TAXABLE values
876    py_za_tx_utl_01032002.TrvAll;
877 
878    bal_PO_RFI_YTD  := bal_PO_RFI_YTD * glb_ZA_PBL_TX_PRC / 100;
879    bal_PO_NRFI_YTD := bal_PO_NRFI_YTD * glb_ZA_PBL_TX_PRC / 100;
880 
881 -- Normal Income
882 --
883    -- Ytd Normal Income
884    trc_NorIncYtd :=
885       ( bal_COMM_NRFI_YTD          + bal_COMM_RFI_YTD
886       + bal_COMP_ALL_NRFI_YTD      + bal_COMP_ALL_RFI_YTD
887       + bal_ENT_ALL_NRFI_YTD       + bal_ENT_ALL_RFI_YTD
888       + bal_OTHER_TXB_ALL_NRFI_YTD + bal_OTHER_TXB_ALL_RFI_YTD
889       + bal_OVTM_NRFI_YTD          + bal_OVTM_RFI_YTD
890       + bal_RES_TRD_NRFI_YTD       + bal_RES_TRD_RFI_YTD
891       + bal_TXB_INC_NRFI_YTD       + bal_TXB_INC_RFI_YTD
892       + bal_TXB_PEN_NRFI_YTD       + bal_TXB_PEN_RFI_YTD
893       + bal_TEL_ALL_NRFI_YTD       + bal_TEL_ALL_RFI_YTD
894       + bal_TOOL_ALL_NRFI_YTD      + bal_TOOL_ALL_RFI_YTD
895       );
896    -- Skip the calculation if there is No Income
897    IF trc_NorIncYtd <> 0 THEN
898       hr_utility.set_location('py_za_tx_01032002.LteCalc',23);
899       -- Normal Earnings
900       trc_NorErn := trc_NorIncYtd + trc_TxbBseInc;
901       -- Taxable Normal Income
902       trc_TxbNorInc := trc_NorErn - trc_PerTotAbm;
903       -- Threshold Check
904       IF trc_TxbNorInc >= trc_Threshold THEN
905          hr_utility.set_location('py_za_tx_01032002.LteCalc',24);
906          -- Tax Liability
907          trc_TotLibNI := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbNorInc);
908          trc_LibFyNI  := trc_TotLibNI - least(trc_TotLibNI,trc_TotLibBse);
909          trc_TotLibNI := greatest(trc_TotLibNI,trc_TotLibBse);
910          trc_LibFpNI  := trc_LibFyNI - bal_TX_ON_NI_YTD;
911       ELSE
912          hr_utility.set_location('py_za_tx_01032002.LteCalc',25);
913          -- Set Cascade Figures and Refund
914          trc_TotLibNI   := 0;
915          trc_LibFpNI    := -1 * bal_TX_ON_NI_YTD;
916          trc_LibFpNIOvr := TRUE;
917       END IF;
918    ELSE
919       hr_utility.set_location('py_za_tx_01032002.LteCalc',26);
920       -- Set Cascade Figures and Refund
921       trc_NorErn     := trc_TxbBseInc;
922       trc_TxbNorInc  := 0;
923       trc_TotLibNI   := trc_TotLibBse;
924       trc_LibFpNI    := -1 * bal_TX_ON_NI_YTD;
925       trc_LibFpNIOvr := TRUE;
926    END IF;
927 
928 -- Fringe Benefits
929 --
930    -- Ytd Fringe Benefits
931    trc_FrnBenYtd :=
932       ( bal_AST_PRCHD_RVAL_NRFI_YTD + bal_AST_PRCHD_RVAL_RFI_YTD
933       + bal_BUR_AND_SCH_NRFI_YTD    + bal_BUR_AND_SCH_RFI_YTD
934       + bal_FREE_ACCOM_NRFI_YTD     + bal_FREE_ACCOM_RFI_YTD
935       + bal_FREE_SERV_NRFI_YTD      + bal_FREE_SERV_RFI_YTD
936       + bal_LOW_LOANS_NRFI_YTD      + bal_LOW_LOANS_RFI_YTD
937       + bal_MLS_AND_VOUCH_NRFI_YTD  + bal_MLS_AND_VOUCH_RFI_YTD
938       + bal_MED_PAID_NRFI_YTD       + bal_MED_PAID_RFI_YTD
939       + bal_PYM_DBT_NRFI_YTD        + bal_PYM_DBT_RFI_YTD
940       + bal_RGT_AST_NRFI_YTD        + bal_RGT_AST_RFI_YTD
941       + bal_USE_VEH_NRFI_YTD        + bal_USE_VEH_RFI_YTD
942       );
943    -- Skip the calculation if there is No Income
944    IF trc_FrnBenYtd <> 0 THEN
945       hr_utility.set_location('py_za_tx_01032002.LteCalc',27);
946       -- Fringe Benefit Earnings
947       trc_FrnBenErn := trc_FrnBenYtd + trc_NorErn;
948       -- Taxable Fringe Income
949       trc_TxbFrnInc := trc_FrnBenErn - trc_PerTotAbm;
950       -- Threshold Check
951       IF trc_TxbFrnInc >= trc_Threshold THEN
952          hr_utility.set_location('py_za_tx_01032002.LteCalc',28);
953          -- Tax Liability
954          trc_TotLibFB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbFrnInc);
955          trc_LibFyFB  := trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI);
956          trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
957          trc_LibFpFB  := trc_LibFyFB - bal_TX_ON_FB_YTD;
958       ElSE
959          hr_utility.set_location('py_za_tx_01032002.LteCalc',29);
960          -- Set Cascade Figures and Refund
961          trc_TotLibFB   := trc_TotLibNI;
962          trc_LibFpFB    := -1 * bal_TX_ON_FB_YTD;
963          trc_LibFpFBOvr := TRUE;
964       END IF;
965    ELSE
966       hr_utility.set_location('py_za_tx_01032002.LteCalc',30);
967       -- Set Cascade Figures and Refund
968       trc_FrnBenErn  := trc_NorErn;
969       trc_TxbFrnInc  := trc_TxbNorInc;
970       trc_TotLibFB   := trc_TotLibNI;
971       trc_LibFpFB    := -1 * bal_TX_ON_FB_YTD;
972       trc_LibFpFBOvr := TRUE;
973    END IF;
974 
975 -- Travel Allowance
976 --
977    -- Ytd Travel Allowance
978    trc_TrvAllYtd := bal_TA_NRFI_YTD + bal_TA_RFI_YTD;
979    -- Skip the calculation if there is No Income
980    IF trc_TrvAllYtd <> 0 THEN
981       hr_utility.set_location('py_za_tx_01032002.LteCalc',31);
982       -- Travel Earnings
983       trc_TrvAllErn := trc_TrvAllYtd + trc_FrnBenErn;
984       -- Taxable Travel Income
985       trc_TxbTrvInc := trc_TrvAllErn - trc_PerTotAbm;
986       -- Threshold Check
987       IF trc_TxbTrvInc >= trc_Threshold THEN
988          hr_utility.set_location('py_za_tx_01032002.LteCalc',32);
989          -- Tax Liability
990          trc_TotLibTA := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbTrvInc);
991          trc_LibFyTA  := trc_TotLibTA - least(trc_TotLibTA,trc_TotLibFB);
992          trc_TotLibTA := greatest(trc_TotLibTA,trc_TotLibFB);
993          trc_LibFpTA  := trc_LibFyTA - bal_TX_ON_TA_YTD;
994       ELSE
995          hr_utility.set_location('py_za_tx_01032002.LteCalc',33);
996          -- Set Cascade Figures and Refund
997          trc_TotLibTA   := trc_TotLibFB;
998          trc_LibFpTA    := -1 * bal_TX_ON_TA_YTD;
999          trc_LibFpTAOvr := TRUE;
1000       END IF;
1001    ELSE
1002       hr_utility.set_location('py_za_tx_01032002.LteCalc',34);
1003       -- Set Cascade Figures and Refund
1004       trc_TrvAllErn  := trc_FrnBenErn;
1005       trc_TxbTrvInc  := trc_TxbFrnInc;
1006       trc_TotLibTA   := trc_TotLibFB;
1007       trc_LibFpTA    := -1 * bal_TX_ON_TA_YTD;
1008       trc_LibFpTAOvr := TRUE;
1009    END IF;
1010 
1011 -- Annual Bonus
1012 --
1013    -- Ytd Annual Bonus
1014    trc_AnnBonYtd := bal_AB_NRFI_YTD + bal_AB_RFI_YTD;
1015    -- Skip the calculation if there is No Income
1016    IF trc_AnnBonYtd <> 0 THEN
1017       hr_utility.set_location('py_za_tx_01032002.LteCalc',35);
1018       -- Annual Bonus Earnings
1019       trc_AnnBonErn := trc_AnnBonYtd + trc_TrvAllErn;
1020       -- Taxable Annual Bonus Income
1021       trc_TxbAnnBonInc := trc_AnnBonErn - trc_AnnTotAbm;
1022       -- Threshold Check
1023       IF trc_TxbAnnBonInc >= trc_Threshold THEN
1024          hr_utility.set_location('py_za_tx_01032002.LteCalc',36);
1025          -- Tax Liability
1026          trc_TotLibAB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnBonInc);
1027          trc_LibFyAB  := trc_TotLibAB - least(trc_TotLibAB,trc_TotLibTA);
1028          trc_TotLibAB := greatest(trc_TotLibAB,trc_TotLibTA);
1029          trc_LibFpAB  := trc_LibFyAB - bal_TX_ON_AB_YTD;
1030       ELSE
1031          hr_utility.set_location('py_za_tx_01032002.LteCalc',39);
1032          -- Set Cascade Figures and Refund
1033          trc_TotLibAB   := trc_TotLibTA;
1034          trc_LibFpAB    := -1 * bal_TX_ON_AB_YTD;
1035          trc_LibFpABOvr := TRUE;
1036       END IF;
1037    ELSE
1038       hr_utility.set_location('py_za_tx_01032002.LteCalc',40);
1039       -- Set Cascade Figures and Refund
1040       trc_AnnBonErn    := trc_TrvAllErn;
1041       trc_TxbAnnBonInc := trc_TxbTrvInc;
1042       trc_TotLibAB     := trc_TotLibTA;
1043       trc_LibFpAB      := -1 * bal_TX_ON_AB_YTD;
1044       trc_LibFpABOvr   := TRUE;
1045    END IF;
1046 
1047 -- Annual Payments
1048 --
1049    -- Ytd Annual Payments
1050    trc_AnnPymYtd :=
1051       ( bal_AA_PRCHD_RVAL_NRFI_YTD   + bal_AA_PRCHD_RVAL_RFI_YTD
1052       + bal_ANN_BUR_AND_SCH_NRFI_YTD + bal_ANN_BUR_AND_SCH_RFI_YTD
1053       + bal_AC_NRFI_YTD              + bal_AC_RFI_YTD
1054       + bal_ANU_FRM_RET_FND_NRFI_YTD + bal_ANU_FRM_RET_FND_RFI_YTD
1055       + bal_ARES_TRD_NRFI_YTD        + bal_ARES_TRD_RFI_YTD
1056       + bal_PRCH_ANU_TXB_NRFI_YTD    + bal_PRCH_ANU_TXB_RFI_YTD
1057       + bal_TXB_AP_NRFI_YTD          + bal_TXB_AP_RFI_YTD
1058       );
1059    -- Skip the calculation if there is No Income
1060    IF trc_AnnPymYtd <> 0 THEN
1061       hr_utility.set_location('py_za_tx_01032002.LteCalc',41);
1062       -- Annual Payments Earnings
1063       trc_AnnPymErn := trc_AnnPymYtd + trc_AnnBonErn;
1064       -- Taxable Annual Payments Income
1065       trc_TxbAnnPymInc := trc_AnnPymErn - trc_AnnTotAbm;
1066       -- Threshold Check
1067       IF trc_TxbAnnPymInc >= trc_Threshold THEN
1068          hr_utility.set_location('py_za_tx_01032002.LteCalc',42);
1069          -- Tax Liability
1070          trc_TotLibAP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnPymInc);
1071          trc_LibFyAP  := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibAB);
1072          trc_TotLibAP := greatest(trc_TotLibAP,trc_TotLibAB);
1073          trc_LibFpAP  := trc_LibFyAP - bal_TX_ON_AP_YTD;
1074       ELSE
1075          hr_utility.set_location('py_za_tx_01032002.LteCalc',45);
1076          -- Set Cascade Figures and Refund
1077          trc_TotLibAP   := trc_TotLibAB;
1078          trc_LibFpAP    := -1 * bal_TX_ON_AP_YTD;
1079          trc_LibFpAPOvr := TRUE;
1080       END IF;
1081    ELSE
1082       hr_utility.set_location('py_za_tx_01032002.LteCalc',46);
1083       -- Set Cascade Figures and Refund
1084       trc_AnnPymErn    := trc_AnnBonErn;
1085       trc_TxbAnnPymInc := trc_TxbAnnBonInc;
1086       trc_TotLibAP     := trc_TotLibAB;
1087       trc_LibFpAP      := -1 * bal_TX_ON_AP_YTD;
1088       trc_LibFpAPOvr   := TRUE;
1089    END IF;
1090 
1091 -- Public Office Allowance
1092 --
1093    -- Ytd Public Office Allowance
1094    trc_PblOffYtd := bal_PO_NRFI_YTD + bal_PO_RFI_YTD;
1095    -- Skip the calculation if there is No Income
1096    IF trc_PblOffYtd <> 0 THEN
1097       hr_utility.set_location('py_za_tx_01032002.LteCalc',47);
1098       -- Public Office Earnings
1099       trc_PblOffErn := trc_PblOffYtd;
1100       -- Tax Liability
1101       trc_LibFyPO := trc_PblOffErn * glb_ZA_PBL_TX_RTE / 100;
1102       trc_LibFpPO := trc_LibFyPO -  bal_TX_ON_PO_YTD;
1103    ELSE
1104       hr_utility.set_location('py_za_tx_01032002.LteCalc',48);
1105       -- Set Cascade Figures and Refund
1106       trc_LibFyPO    := 0;
1107       trc_LibFpPO    := -1 * bal_TX_ON_PO_YTD;
1108       trc_LibFpPOOvr := TRUE;
1109    END IF;
1110 
1111 -- Net Pay Validation
1112 --
1113    -- Net Pay of the Employee
1114    l_Np := bal_NET_PAY_RUN;
1115    -- Site Limit Check
1116    IF trc_TxbAnnPymInc + trc_PblOffErn < glb_ZA_SIT_LIM THEN
1117       hr_utility.set_location('py_za_tx_01032002.LteCalc',49);
1118       l_Sl := TRUE;
1119    ELSE
1120       hr_utility.set_location('py_za_tx_01032002.LteCalc',50);
1121       l_Sl := FALSE;
1122    END IF;
1123 
1124    py_za_tx_utl_01032002.ValidateTaxOns(p_Rf => l_Sl);
1125 
1126 -- Set IT3A Indicator
1127 --
1128    IF trc_TxbAnnPymInc + trc_PblOffErn >= trc_Threshold THEN
1129       hr_utility.set_location('py_za_tx_01032002.LteCalc',51);
1130       trc_It3Ind := 0; -- Over Lim
1131    ELSE
1132       hr_utility.set_location('py_za_tx_01032002.LteCalc',52);
1133       trc_It3Ind := 1; -- Under Lim
1134    END IF;
1135 
1136    -- Normal Income
1137    WrtHrTrc('trc_NorIncYtd:    '||to_char(trc_NorIncYtd));
1138    WrtHrTrc('trc_NorIncPtd:    '||to_char(trc_NorIncPtd));
1139    WrtHrTrc('trc_NorErn:       '||to_char(trc_NorErn));
1140    WrtHrTrc('trc_TxbNorInc:    '||to_char(trc_TxbNorInc));
1141    WrtHrTrc('trc_TotLibNI:     '||to_char(trc_TotLibNI));
1142    WrtHrTrc('trc_LibFyNI:      '||to_char(trc_LibFyNI));
1143    WrtHrTrc('trc_LibFpNI:      '||to_char(trc_LibFpNI));
1144    -- Fringe Benefits
1145    WrtHrTrc('trc_FrnBenYtd:    '||to_char(trc_FrnBenYtd));
1146    WrtHrTrc('trc_FrnBenPtd:    '||to_char(trc_FrnBenPtd));
1147    WrtHrTrc('trc_FrnBenErn:    '||to_char(trc_FrnBenErn));
1148    WrtHrTrc('trc_TxbFrnInc:    '||to_char(trc_TxbFrnInc));
1149    WrtHrTrc('trc_TotLibFB:     '||to_char(trc_TotLibFB));
1150    WrtHrTrc('trc_LibFyFB:      '||to_char(trc_LibFyFB));
1151    WrtHrTrc('trc_LibFpFB:      '||to_char(trc_LibFpFB));
1152    -- Travel Allowance
1153    WrtHrTrc('trc_TrvAllYtd:    '||to_char(trc_TrvAllYtd));
1154    WrtHrTrc('trc_TrvAllPtd:    '||to_char(trc_TrvAllPtd));
1155    WrtHrTrc('trc_TrvAllErn:    '||to_char(trc_TrvAllErn));
1156    WrtHrTrc('trc_TxbTrvInc:    '||to_char(trc_TxbTrvInc));
1157    WrtHrTrc('trc_TotLibTA:     '||to_char(trc_TotLibTA));
1158    WrtHrTrc('trc_LibFyTA:      '||to_char(trc_LibFyTA));
1159    WrtHrTrc('trc_LibFpTA:      '||to_char(trc_LibFpTA));
1160    -- Annual Bonus
1161    WrtHrTrc('trc_AnnBonYtd:    '||to_char(trc_AnnBonYtd));
1162    WrtHrTrc('trc_AnnBonPtd:    '||to_char(trc_AnnBonPtd));
1163    WrtHrTrc('trc_AnnBonErn:    '||to_char(trc_AnnBonErn));
1164    WrtHrTrc('trc_TxbAnnBonInc: '||to_char(trc_TxbAnnBonInc));
1165    WrtHrTrc('trc_TotLibAB:     '||to_char(trc_TotLibAB));
1166    WrtHrTrc('trc_LibFyAB:      '||to_char(trc_LibFyAB));
1167    WrtHrTrc('trc_LibFpAB:      '||to_char(trc_LibFpAB));
1168    -- Annual Payments
1169    WrtHrTrc('trc_AnnPymYtd:    '||to_char(trc_AnnPymYtd));
1170    WrtHrTrc('trc_AnnPymPtd:    '||to_char(trc_AnnPymPtd));
1171    WrtHrTrc('trc_AnnPymErn:    '||to_char(trc_AnnPymErn));
1172    WrtHrTrc('trc_TxbAnnPymInc: '||to_char(trc_TxbAnnPymInc));
1173    WrtHrTrc('trc_TotLibAP:     '||to_char(trc_TotLibAP));
1174    WrtHrTrc('trc_LibFyAP:      '||to_char(trc_LibFyAP));
1175    WrtHrTrc('trc_LibFpAP:      '||to_char(trc_LibFpAP));
1176    -- Pubilc Office Allowance
1177    WrtHrTrc('trc_PblOffYtd:    '||to_char(trc_PblOffYtd));
1178    WrtHrTrc('trc_PblOffPtd:    '||to_char(trc_PblOffPtd));
1179    WrtHrTrc('trc_PblOffErn:    '||to_char(trc_PblOffErn));
1180    WrtHrTrc('trc_LibFyPO:      '||to_char(trc_LibFyPO));
1181    WrtHrTrc('trc_LibFpPO:      '||to_char(trc_LibFpPO));
1182 
1183 EXCEPTION
1184    WHEN OTHERS THEN
1185       IF xpt_Msg = 'No Error' THEN
1186          xpt_Msg := 'LteCalc: '||TO_CHAR(SQLCODE);
1187       END IF;
1188       RAISE xpt_E;
1189 END LteCalc;
1190 -------------------------------------------------------------------------------
1191 -- SeaCalc                                                                   --
1192 -- Tax Calculation for Seasonal Workers                                      --
1193 -------------------------------------------------------------------------------
1194 PROCEDURE SeaCalc AS
1195 -- Variables
1196 --
1197    l_Np       BALANCE DEFAULT 0;
1198    l_65Year   DATE;
1199 
1200 BEGIN
1201    hr_utility.set_location('py_za_tx_01032002.SeaCalc',1);
1202 -- Identify the calculation
1203 --
1204    trc_CalTyp := 'SeaCalc';
1205 
1206 -- Period Type Income
1207 --
1208    trc_TxbIncPtd :=
1209       ( bal_AST_PRCHD_RVAL_NRFI_RUN + bal_AST_PRCHD_RVAL_RFI_RUN
1210       + bal_BUR_AND_SCH_NRFI_RUN    + bal_BUR_AND_SCH_RFI_RUN
1211       + bal_COMM_NRFI_RUN           + bal_COMM_RFI_RUN
1212       + bal_COMP_ALL_NRFI_RUN       + bal_COMP_ALL_RFI_RUN
1213       + bal_ENT_ALL_NRFI_RUN        + bal_ENT_ALL_RFI_RUN
1214       + bal_FREE_ACCOM_NRFI_RUN     + bal_FREE_ACCOM_RFI_RUN
1215       + bal_FREE_SERV_NRFI_RUN      + bal_FREE_SERV_RFI_RUN
1216       + bal_LOW_LOANS_NRFI_RUN      + bal_LOW_LOANS_RFI_RUN
1217       + bal_MLS_AND_VOUCH_NRFI_RUN  + bal_MLS_AND_VOUCH_RFI_RUN
1218       + bal_MED_PAID_NRFI_RUN       + bal_MED_PAID_RFI_RUN
1219       + bal_OTHER_TXB_ALL_NRFI_RUN  + bal_OTHER_TXB_ALL_RFI_RUN
1220       + bal_OVTM_NRFI_RUN           + bal_OVTM_RFI_RUN
1221       + bal_PYM_DBT_NRFI_RUN        + bal_PYM_DBT_RFI_RUN
1222       + bal_RES_TRD_NRFI_RUN        + bal_RES_TRD_RFI_RUN
1223       + bal_RGT_AST_NRFI_RUN        + bal_RGT_AST_RFI_RUN
1224       + bal_TXB_INC_NRFI_RUN        + bal_TXB_INC_RFI_RUN
1225       + bal_TXB_PEN_NRFI_RUN        + bal_TXB_PEN_RFI_RUN
1226       + bal_TEL_ALL_NRFI_RUN        + bal_TEL_ALL_RFI_RUN
1227       + bal_TOOL_ALL_NRFI_RUN       + bal_TOOL_ALL_RFI_RUN
1228       + bal_USE_VEH_NRFI_RUN        + bal_USE_VEH_RFI_RUN
1229       );
1230 
1231 -- Check if any Period Income Exists
1232 --
1233    hr_utility.set_location('py_za_tx_01032002.SeaCalc',2);
1234    IF trc_TxbIncPtd = 0 THEN -- Pre-Earnings Calc
1235       hr_utility.set_location('py_za_tx_01032002.SeaCalc',3);
1236       -- Site Factor
1237       --
1238       trc_SitFactor := glb_ZA_WRK_DYS_PR_YR / dbi_SEA_WRK_DYS_WRK;
1239 
1240       -- Tax Rebates, Threshold Figure and Medical Aid
1241       -- Abatements
1242       -- Calculate the assignments 65 Year Date
1243       l_65Year := add_months(dbi_PER_DTE_OF_BRTH,780);
1244 
1245       IF l_65Year BETWEEN dbi_ZA_TX_YR_STRT AND dbi_ZA_TX_YR_END THEN
1246          hr_utility.set_location('py_za_tx_01032002.SeaCalc',4);
1247          -- give the extra abatement
1248          trc_Rebate    := glb_ZA_PRI_TX_RBT + glb_ZA_ADL_TX_RBT;
1249          trc_Threshold := glb_ZA_SC_TX_THRSHLD;
1250       ELSE
1251          hr_utility.set_location('py_za_tx_01032002.SeaCalc',5);
1252          -- not eligable for extra abatement
1253          trc_Rebate    := glb_ZA_PRI_TX_RBT;
1254          trc_Threshold := glb_ZA_PRI_TX_THRSHLD;
1255       END IF;
1256 
1257    -- Base Income
1258    --
1259       -- Base Income
1260       trc_BseErn :=
1261          ( bal_AA_PRCHD_RVAL_NRFI_RUN   + bal_AA_PRCHD_RVAL_RFI_RUN
1262          + bal_ANN_BUR_AND_SCH_NRFI_RUN + bal_ANN_BUR_AND_SCH_RFI_RUN
1263          + bal_AC_NRFI_RUN              + bal_AC_RFI_RUN
1264          + bal_ANU_FRM_RET_FND_NRFI_RUN + bal_ANU_FRM_RET_FND_RFI_RUN
1265          + bal_ARES_TRD_NRFI_RUN        + bal_ARES_TRD_RFI_RUN
1266          + bal_PRCH_ANU_TXB_NRFI_RUN    + bal_PRCH_ANU_TXB_RFI_RUN
1267          + bal_TXB_AP_NRFI_RUN          + bal_TXB_AP_RFI_RUN
1268          );
1269       -- Taxable Base Income
1270       trc_TxbBseInc := trc_BseErn * trc_SitFactor;
1271       -- Threshold Check
1272       IF trc_TxbBseInc >= trc_Threshold THEN
1273          hr_utility.set_location('py_za_tx_01032002.SeaCalc',6);
1274          -- Tax Liability
1275          trc_TotLibBse := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbBseInc);
1276       ELSE
1277          hr_utility.set_location('py_za_tx_01032002.SeaCalc',7);
1278          trc_TotLibBse := 0;
1279       END IF;
1280 
1281    -- Annual Payments
1282    --
1283       -- Taxable Annual Payments Income
1284       trc_TxbAnnPymInc := trc_BseErn + trc_TxbBseInc;-- AP was taken as base!
1285       -- Threshold Check
1286       IF trc_TxbAnnPymInc >= trc_Threshold THEN
1287          hr_utility.set_location('py_za_tx_01032002.SeaCalc',8);
1288          -- Tax Liability
1289          trc_TotLibAP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnPymInc);
1290          trc_LibFpAP  := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibBse);
1291       ElSE
1292          hr_utility.set_location('py_za_tx_01032002.SeaCalc',9);
1293          trc_LibFpAP := 0;
1294       END IF;
1295 
1296       -- Base Income
1297       WrtHrTrc('trc_BseErn: '      ||to_char(trc_BseErn));
1298       WrtHrTrc('trc_TxbBseInc: '   ||to_char(trc_TxbBseInc));
1299       WrtHrTrc('trc_TotLibBse: '   ||to_char(trc_TotLibBse));
1300 
1301       -- Annual Payments
1302       WrtHrTrc('trc_AnnPymYtd: '   ||to_char(trc_AnnPymYtd));
1303       WrtHrTrc('trc_AnnPymPtd: '   ||to_char(trc_AnnPymPtd));
1304       WrtHrTrc('trc_AnnPymErn: '   ||to_char(trc_AnnPymErn));
1305       WrtHrTrc('trc_TxbAnnPymInc: '||to_char(trc_TxbAnnPymInc));
1306       WrtHrTrc('trc_TotLibAP: '    ||to_char(trc_TotLibAP));
1307       WrtHrTrc('trc_LibFyAP: '     ||to_char(trc_LibFyAP));
1308       WrtHrTrc('trc_LibFpAP: '     ||to_char(trc_LibFpAP));
1309 
1310 
1311    ELSE
1312       hr_utility.set_location('py_za_tx_01032002.SeaCalc',10);
1313       -- Site Factor
1314       --
1315       trc_SitFactor := glb_ZA_WRK_DYS_PR_YR / dbi_SEA_WRK_DYS_WRK;
1316 
1317       -- Rebates
1318       py_za_tx_utl_01032002.SetRebates;
1319 
1320       -- Abatements
1321       py_za_tx_utl_01032002.Abatements;
1322 
1323    hr_utility.set_location('py_za_tx_01032002.SeaCalc',11);
1324 
1325    -- Normal Income
1326    --
1327       -- Run Normal Income
1328       trc_NorIncPtd :=
1329          (bal_COMM_NRFI_RUN           + bal_COMM_RFI_RUN
1330          + bal_COMP_ALL_NRFI_RUN      + bal_COMP_ALL_RFI_RUN
1331          + bal_ENT_ALL_NRFI_RUN       + bal_ENT_ALL_RFI_RUN
1332          + bal_OTHER_TXB_ALL_NRFI_RUN + bal_OTHER_TXB_ALL_RFI_RUN
1333          + bal_OVTM_NRFI_RUN          + bal_OVTM_RFI_RUN
1334          + bal_RES_TRD_NRFI_RUN       + bal_RES_TRD_RFI_RUN
1335          + bal_TXB_INC_NRFI_RUN       + bal_TXB_INC_RFI_RUN
1336          + bal_TXB_PEN_NRFI_RUN       + bal_TXB_PEN_RFI_RUN
1337          + bal_TEL_ALL_NRFI_RUN       + bal_TEL_ALL_RFI_RUN
1338          + bal_TOOL_ALL_NRFI_RUN      + bal_TOOL_ALL_RFI_RUN
1339          );
1340       -- Skip the calculation if there is No Income
1341       IF trc_NorIncPtd <> 0 THEN
1342          hr_utility.set_location('py_za_tx_01032002.SeaCalc',12);
1343          -- Normal Earnings
1344          trc_NorErn := trc_NorIncPtd * trc_SitFactor;
1345          -- Taxable Normal Income
1346          trc_TxbNorInc := trc_NorErn - trc_PerTotAbm;
1347          -- Threshold Check
1348          IF trc_TxbNorInc >= trc_Threshold THEN
1349             hr_utility.set_location('py_za_tx_01032002.SeaCalc',13);
1350             -- Tax Liability
1351             trc_TotLibNI := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbNorInc);
1352             trc_LibFyNI  := trc_TotLibNI - 0;
1353             trc_TotLibNI := greatest(trc_TotLibNI,0);
1354             trc_LibFpNI  := trc_LibFyNI / trc_SitFactor;
1355          ELSE
1356             hr_utility.set_location('py_za_tx_01032002.SeaCalc',14);
1357             trc_TotLibNI := 0;
1358          END IF;
1359       ELSE
1360          hr_utility.set_location('py_za_tx_01032002.SeaCalc',15);
1361          trc_NorErn    := 0;
1362          trc_TxbNorInc := 0;
1363          trc_TotLibNI  := 0;
1364       END IF;
1365 
1366    -- Fringe Benefits
1367    --
1368       -- Run Fringe Benefits
1369       trc_FrnBenPtd :=
1370          ( bal_AST_PRCHD_RVAL_NRFI_RUN + bal_AST_PRCHD_RVAL_RFI_RUN
1371          + bal_BUR_AND_SCH_NRFI_RUN    + bal_BUR_AND_SCH_RFI_RUN
1372          + bal_FREE_ACCOM_NRFI_RUN     + bal_FREE_ACCOM_RFI_RUN
1373          + bal_FREE_SERV_NRFI_RUN      + bal_FREE_SERV_RFI_RUN
1374          + bal_LOW_LOANS_NRFI_RUN      + bal_LOW_LOANS_RFI_RUN
1375          + bal_MLS_AND_VOUCH_NRFI_RUN  + bal_MLS_AND_VOUCH_RFI_RUN
1376          + bal_MED_PAID_NRFI_RUN       + bal_MED_PAID_RFI_RUN
1377          + bal_PYM_DBT_NRFI_RUN        + bal_PYM_DBT_RFI_RUN
1378          + bal_RGT_AST_NRFI_RUN        + bal_RGT_AST_RFI_RUN
1379          + bal_USE_VEH_NRFI_RUN        + bal_USE_VEH_RFI_RUN
1380          );
1381 
1382       -- Skip the calculation if there is No Income
1383       IF trc_FrnBenPtd <> 0 THEN
1384          hr_utility.set_location('py_za_tx_01032002.SeaCalc',16);
1385          -- Fringe Benefit Earnings
1386          trc_FrnBenErn := trc_FrnBenPtd * trc_SitFactor + trc_NorErn;
1387          -- Taxable Fringe Income
1388          trc_TxbFrnInc := trc_FrnBenErn - trc_PerTotAbm;
1389          -- Threshold Check
1390          IF trc_TxbFrnInc >= trc_Threshold THEN
1391             hr_utility.set_location('py_za_tx_01032002.SeaCalc',17);
1392             -- Tax Liability
1393             trc_TotLibFB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbFrnInc);
1394             trc_LibFyFB  := trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI);
1395             trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
1396             trc_LibFpFB  := trc_LibFyFB / trc_SitFactor;
1397          ELSE
1398             hr_utility.set_location('py_za_tx_01032002.SeaCalc',18);
1399             trc_TotLibFB := trc_TotLibNI;
1400          END IF;
1401       ELSE
1402          hr_utility.set_location('py_za_tx_01032002.SeaCalc',19);
1403          trc_FrnBenErn := trc_NorErn;
1404          trc_TxbFrnInc := trc_TxbNorInc;
1405          trc_TotLibFB  := trc_TotLibNI;
1406       END IF;
1407 
1408    -- Annual Payments
1409    --
1410       -- Run Annual Payments
1411       trc_AnnPymPtd :=
1412          ( bal_AA_PRCHD_RVAL_NRFI_RUN   + bal_AA_PRCHD_RVAL_RFI_RUN
1413          + bal_ANN_BUR_AND_SCH_NRFI_RUN + bal_ANN_BUR_AND_SCH_RFI_RUN
1414          + bal_AC_NRFI_RUN              + bal_AC_RFI_RUN
1415          + bal_ANU_FRM_RET_FND_NRFI_RUN + bal_ANU_FRM_RET_FND_RFI_RUN
1416          + bal_ARES_TRD_NRFI_RUN        + bal_ARES_TRD_RFI_RUN
1417          + bal_PRCH_ANU_TXB_NRFI_RUN    + bal_PRCH_ANU_TXB_RFI_RUN
1418          + bal_TXB_AP_NRFI_RUN          + bal_TXB_AP_RFI_RUN
1419          );
1420       -- Skip the calculation if there is No Income
1421       IF trc_AnnPymPtd <> 0 THEN
1422          hr_utility.set_location('py_za_tx_01032002.SeaCalc',20);
1423          -- Annual Payments Earnings
1424          trc_AnnPymErn := trc_AnnPymPtd + trc_FrnBenErn;
1425          -- Taxable Annual Payments Income
1426          trc_TxbAnnPymInc := trc_AnnPymErn - trc_AnnTotAbm;
1427          -- Threshold Check
1428          IF trc_TxbAnnPymInc >= trc_Threshold THEN
1429             hr_utility.set_location('py_za_tx_01032002.SeaCalc',21);
1430             -- Tax Liability
1431             trc_TotLibAP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnPymInc);
1432             trc_LibFyAP  := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibFB);
1433             trc_TotLibAP := greatest(trc_TotLibAP,trc_TotLibFB);
1434             trc_LibFpAP  := trc_LibFyAP;
1435          ELSE
1436             hr_utility.set_location('py_za_tx_01032002.SeaCalc',22);
1437             trc_TotLibAP := trc_TotLibFB;
1438          END IF;
1439       ELSE
1440          hr_utility.set_location('py_za_tx_01032002.SeaCalc',23);
1441          trc_AnnPymErn    := trc_FrnBenErn;
1442          trc_TxbAnnPymInc := trc_TxbFrnInc;
1443          trc_TotLibAP     := trc_TotLibFB;
1444       END IF;
1445 
1446 
1447    -- Net Pay Validation
1448    --
1449       py_za_tx_utl_01032002.ValidateTaxOns;
1450 
1451    hr_utility.set_location('py_za_tx_01032002.SeaCalc',24);
1452 
1453    -- Set IT3A Indicator
1454    --
1455       IF trc_TxbAnnPymInc + trc_PblOffErn >= trc_Threshold THEN
1456          hr_utility.set_location('py_za_tx_01032002.SeaCalc',25);
1457          trc_It3Ind := 0; -- Over Lim
1458       ELSE
1459          hr_utility.set_location('py_za_tx_01032002.SeaCalc',26);
1460          trc_It3Ind := 1; -- Under Lim
1461       END IF;
1462    END IF;
1463 
1464    -- Normal Income
1465    WrtHrTrc('trc_NorIncYtd:    '||to_char(trc_NorIncYtd));
1466    WrtHrTrc('trc_NorIncPtd:    '||to_char(trc_NorIncPtd));
1467    WrtHrTrc('trc_NorErn:       '||to_char(trc_NorErn));
1468    WrtHrTrc('trc_TxbNorInc:    '||to_char(trc_TxbNorInc));
1469    WrtHrTrc('trc_TotLibNI:     '||to_char(trc_TotLibNI));
1470    WrtHrTrc('trc_LibFyNI:      '||to_char(trc_LibFyNI));
1471    WrtHrTrc('trc_LibFpNI:      '||to_char(trc_LibFpNI));
1472    -- Fringe Benefits
1473    WrtHrTrc('trc_FrnBenYtd:    '||to_char(trc_FrnBenYtd));
1474    WrtHrTrc('trc_FrnBenPtd:    '||to_char(trc_FrnBenPtd));
1475    WrtHrTrc('trc_FrnBenErn:    '||to_char(trc_FrnBenErn));
1476    WrtHrTrc('trc_TxbFrnInc:    '||to_char(trc_TxbFrnInc));
1477    WrtHrTrc('trc_TotLibFB:     '||to_char(trc_TotLibFB));
1478    WrtHrTrc('trc_LibFyFB:      '||to_char(trc_LibFyFB));
1479    WrtHrTrc('trc_LibFpFB:      '||to_char(trc_LibFpFB));
1480    -- Annual Payments
1481    WrtHrTrc('trc_AnnPymYtd:    '||to_char(trc_AnnPymYtd));
1482    WrtHrTrc('trc_AnnPymPtd:    '||to_char(trc_AnnPymPtd));
1483    WrtHrTrc('trc_AnnPymErn:    '||to_char(trc_AnnPymErn));
1484    WrtHrTrc('trc_TxbAnnPymInc: '||to_char(trc_TxbAnnPymInc));
1485    WrtHrTrc('trc_TotLibAP:     '||to_char(trc_TotLibAP));
1486    WrtHrTrc('trc_LibFyAP:      '||to_char(trc_LibFyAP));
1487    WrtHrTrc('trc_LibFpAP:      '||to_char(trc_LibFpAP));
1488 
1489 EXCEPTION
1490    WHEN OTHERS THEN
1491       IF xpt_Msg = 'No Error' THEN
1492          xpt_Msg := 'SeaCalc: '||TO_CHAR(SQLCODE);
1493       END IF;
1494       RAISE xpt_E;
1495 END SeaCalc;
1496 
1497 -------------------------------------------------------------------------------
1498 -- SitCalc                                                                   --
1499 -- End of Year Tax Calculation                                               --
1500 -------------------------------------------------------------------------------
1501 PROCEDURE SitCalc AS
1502 -- Variables
1503 --
1504    l_Sl       BOOLEAN;
1505    l_Np       BALANCE;
1506 
1507 BEGIN
1508    hr_utility.set_location('py_za_tx_01032002.SitCalc',1);
1509 -- Identify the calculation
1510 --
1511    trc_CalTyp := 'SitCalc';
1512 
1513 -- Update Global Balance Values with correct TAXABLE values
1514 --
1515    py_za_tx_utl_01032002.TrvAll;
1516 
1517    hr_utility.set_location('py_za_tx_01032002.SitCalc',2);
1518 
1519    bal_PO_RFI_YTD  := bal_PO_RFI_YTD * glb_ZA_PBL_TX_PRC / 100;
1520    bal_PO_NRFI_YTD := bal_PO_NRFI_YTD * glb_ZA_PBL_TX_PRC / 100;
1521 
1522 -- Ytd Taxable Income
1523 --
1524    trc_TxbIncYtd :=
1525    ( bal_AST_PRCHD_RVAL_NRFI_YTD + bal_AST_PRCHD_RVAL_RFI_YTD
1526    + bal_BP_YTD
1527    + bal_BUR_AND_SCH_NRFI_YTD    + bal_BUR_AND_SCH_RFI_YTD
1528    + bal_COMM_NRFI_YTD           + bal_COMM_RFI_YTD
1529    + bal_COMP_ALL_NRFI_YTD       + bal_COMP_ALL_RFI_YTD
1530    + bal_ENT_ALL_NRFI_YTD        + bal_ENT_ALL_RFI_YTD
1531    + bal_FREE_ACCOM_NRFI_YTD     + bal_FREE_ACCOM_RFI_YTD
1532    + bal_FREE_SERV_NRFI_YTD      + bal_FREE_SERV_RFI_YTD
1533    + bal_LOW_LOANS_NRFI_YTD      + bal_LOW_LOANS_RFI_YTD
1534    + bal_MLS_AND_VOUCH_NRFI_YTD  + bal_MLS_AND_VOUCH_RFI_YTD
1535    + bal_MED_PAID_NRFI_YTD       + bal_MED_PAID_RFI_YTD
1536    + bal_OTHER_TXB_ALL_NRFI_YTD  + bal_OTHER_TXB_ALL_RFI_YTD
1537    + bal_OVTM_NRFI_YTD           + bal_OVTM_RFI_YTD
1538    + bal_PYM_DBT_NRFI_YTD        + bal_PYM_DBT_RFI_YTD
1539    + bal_RES_TRD_NRFI_YTD        + bal_RES_TRD_RFI_YTD
1540    + bal_RGT_AST_NRFI_YTD        + bal_RGT_AST_RFI_YTD
1541    + bal_TXB_INC_NRFI_YTD        + bal_TXB_INC_RFI_YTD
1542    + bal_TXB_PEN_NRFI_YTD        + bal_TXB_PEN_RFI_YTD
1543    + bal_TEL_ALL_NRFI_YTD        + bal_TEL_ALL_RFI_YTD
1544    + bal_TOOL_ALL_NRFI_YTD       + bal_TOOL_ALL_RFI_YTD
1545    + bal_TA_NRFI_YTD             + bal_TA_RFI_YTD
1546    + bal_USE_VEH_NRFI_YTD        + bal_USE_VEH_RFI_YTD
1547    );
1548 
1549    hr_utility.set_location('py_za_tx_01032002.SitCalc',3);
1550 
1551 -- Site Factor
1552 --
1553    trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01032002.DaysWorked;
1554 
1555    hr_utility.set_location('py_za_tx_01032002.SitCalc',4);
1556 
1557 -- Rebates
1558    py_za_tx_utl_01032002.SetRebates;
1559 
1560 -- Abatements
1561    py_za_tx_utl_01032002.Abatements;
1562 
1563    hr_utility.set_location('py_za_tx_01032002.SitCalc',5);
1564 
1565 -- Deemed Remuneration
1566 --
1567    -- Run Deemed Remuneration
1568    trc_DmdRmnRun := bal_DIR_DMD_RMN_ITD;
1569 
1570    -- Skip the calculation if there is No Income
1571    IF trc_DmdRmnRun <> 0 THEN
1572       hr_utility.set_location('py_za_tx_01032002.SitCalc',6);
1573       -- Taxable Deemed Remuneration
1574       trc_TxbDmdRmn := trc_DmdRmnRun;
1575       -- Threshold Check
1576       IF trc_TxbDmdRmn >= trc_Threshold THEN
1577          hr_utility.set_location('py_za_tx_01032002.SitCalc',7);
1578          -- Tax Liability
1579          trc_TotLibDR := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbDmdRmn);
1580          trc_LibFyDR  := (trc_TotLibDR - 0) / trc_SitFactor;
1581          trc_TotLibDR := greatest(trc_TotLibDR,0);
1582          trc_LibFpDR  := trc_LibFyDR - bal_TX_ON_DR_YTD;
1583       ELSE
1584          hr_utility.set_location('py_za_tx_01032002.SitCalc',8);
1585          -- Set Cascade Figures and Refund
1586          trc_TotLibDR   := 0;
1587          trc_LibFpDR    := -1 * bal_TX_ON_DR_YTD;
1588          trc_LibFpDROvr := TRUE;
1589       END IF;
1590    ELSE
1591       hr_utility.set_location('py_za_tx_01032002.SitCalc',9);
1592       -- Set Cascade Figures and Refund
1593       trc_TxbDmdRmn  := 0;
1594       trc_TotLibDR   := 0;
1595       trc_LibFpDR    := -1 * bal_TX_ON_DR_YTD;
1596       trc_LibFpDROvr := TRUE;
1597    END IF;
1598 
1599    hr_utility.set_location('py_za_tx_01032002.SitCalc',10);
1600 
1601 -- Normal Income
1602 --
1603    -- Ytd Normal Income
1604    trc_NorIncYtd :=
1605       ( bal_COMM_NRFI_YTD          + bal_COMM_RFI_YTD
1606       + bal_COMP_ALL_NRFI_YTD      + bal_COMP_ALL_RFI_YTD
1607       + bal_ENT_ALL_NRFI_YTD       + bal_ENT_ALL_RFI_YTD
1608       + bal_OTHER_TXB_ALL_NRFI_YTD + bal_OTHER_TXB_ALL_RFI_YTD
1609       + bal_OVTM_NRFI_YTD          + bal_OVTM_RFI_YTD
1610       + bal_RES_TRD_NRFI_YTD       + bal_RES_TRD_RFI_YTD
1611       + bal_TXB_INC_NRFI_YTD       + bal_TXB_INC_RFI_YTD
1612       + bal_TXB_PEN_NRFI_YTD       + bal_TXB_PEN_RFI_YTD
1613       + bal_TEL_ALL_NRFI_YTD       + bal_TEL_ALL_RFI_YTD
1614       + bal_TOOL_ALL_NRFI_YTD      + bal_TOOL_ALL_RFI_YTD
1615       );
1616    -- Skip the calculation if there is No Income
1617    IF trc_NorIncYtd <> 0 THEN
1618       hr_utility.set_location('py_za_tx_01032002.SitCalc',11);
1619       -- Normal Earnings
1620       trc_NorErn := trc_NorIncYtd * trc_SitFactor;
1621       -- Taxable Normal Income
1622       trc_TxbNorInc := trc_NorErn - trc_PerTotAbm;
1623       -- Threshold Check
1624       IF trc_TxbNorInc >= trc_Threshold THEN
1625          hr_utility.set_location('py_za_tx_01032002.SitCalc',12);
1626          -- Tax Liability
1627          trc_TotLibNI := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbNorInc);
1628          trc_LibFyNI  := (trc_TotLibNI - least(trc_TotLibNI,trc_TotLibDR)) / trc_SitFactor;
1629          trc_TotLibNI := greatest(trc_TotLibNI,trc_TotLibDR);
1630          trc_LibFpNI  := trc_LibFyNI - bal_TX_ON_NI_YTD;
1631       ELSE
1632          hr_utility.set_location('py_za_tx_01032002.SitCalc',13);
1633          -- Set Cascade Figures and Refund
1634          trc_TotLibNI   := trc_TotLibDR;
1635          trc_LibFpNI    := -1 * bal_TX_ON_NI_YTD;
1636          trc_LibFpNIOvr := TRUE;
1637       END IF;
1638    ELSE
1639       hr_utility.set_location('py_za_tx_01032002.SitCalc',14);
1640       -- Set Cascade Figures and Refund
1641       trc_NorErn     := 0;
1642       trc_TxbNorInc  := 0;
1643       trc_TotLibNI   := trc_TotLibDR;
1644       trc_LibFpNI    := -1 * bal_TX_ON_NI_YTD;
1645       trc_LibFpNIOvr := TRUE;
1646    END IF;
1647 
1648 -- Fringe Benefits
1649 --
1650    -- Ytd Fringe Benefits
1651    trc_FrnBenYtd :=
1652       ( bal_AST_PRCHD_RVAL_NRFI_YTD + bal_AST_PRCHD_RVAL_RFI_YTD
1653       + bal_BUR_AND_SCH_NRFI_YTD    + bal_BUR_AND_SCH_RFI_YTD
1654       + bal_FREE_ACCOM_NRFI_YTD     + bal_FREE_ACCOM_RFI_YTD
1655       + bal_FREE_SERV_NRFI_YTD      + bal_FREE_SERV_RFI_YTD
1656       + bal_LOW_LOANS_NRFI_YTD      + bal_LOW_LOANS_RFI_YTD
1657       + bal_MLS_AND_VOUCH_NRFI_YTD  + bal_MLS_AND_VOUCH_RFI_YTD
1658       + bal_MED_PAID_NRFI_YTD       + bal_MED_PAID_RFI_YTD
1659       + bal_PYM_DBT_NRFI_YTD        + bal_PYM_DBT_RFI_YTD
1660       + bal_RGT_AST_NRFI_YTD        + bal_RGT_AST_RFI_YTD
1661       + bal_USE_VEH_NRFI_YTD        + bal_USE_VEH_RFI_YTD
1662       );
1663 
1664    -- Skip the calculation if there is No Income
1665    IF trc_FrnBenYtd <> 0 THEN
1666       hr_utility.set_location('py_za_tx_01032002.SitCalc',15);
1667       -- Fringe Benefit Earnings
1668       trc_FrnBenErn := trc_FrnBenYtd * trc_SitFactor + trc_NorErn;
1669       -- Taxable Fringe Income
1670       trc_TxbFrnInc := trc_FrnBenErn - trc_PerTotAbm;
1671       -- Threshold Check
1672       IF trc_TxbFrnInc >= trc_Threshold THEN
1673          hr_utility.set_location('py_za_tx_01032002.SitCalc',16);
1674          -- Tax Liability
1675          trc_TotLibFB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbFrnInc);
1676          trc_LibFyFB  := (trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI)) / trc_SitFactor;
1677          trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
1678          trc_LibFpFB  := trc_LibFyFB - bal_TX_ON_FB_YTD;
1679       ElSE
1680          hr_utility.set_location('py_za_tx_01032002.SitCalc',17);
1681          -- Set Cascade Figures and Refund
1682          trc_TotLibFB   := trc_TotLibNI;
1683          trc_LibFpFB    := -1 * bal_TX_ON_FB_YTD;
1684          trc_LibFpFBOvr := TRUE;
1685       END IF;
1686    ELSE
1687       hr_utility.set_location('py_za_tx_01032002.SitCalc',18);
1688       -- Set Cascade Figures and Refund
1689       trc_FrnBenErn  := trc_NorErn;
1690       trc_TxbFrnInc  := trc_TxbNorInc;
1691       trc_TotLibFB   := trc_TotLibNI;
1692       trc_LibFpFB    := -1 * bal_TX_ON_FB_YTD;
1693       trc_LibFpFBOvr := TRUE;
1694    END IF;
1695 
1696 -- Travel Allowance
1697 --
1698    -- Ytd Travel Allowance
1699    trc_TrvAllYtd := bal_TA_NRFI_YTD + bal_TA_RFI_YTD;
1700    -- Skip the calculation if there is No Income
1701    IF trc_TrvAllYtd <> 0 THEN
1702       hr_utility.set_location('py_za_tx_01032002.SitCalc',19);
1703       -- Travel Earnings
1704       trc_TrvAllErn := trc_TrvAllYtd * trc_SitFactor + trc_FrnBenErn;
1705       -- Taxable Travel Income
1706       trc_TxbTrvInc := trc_TrvAllErn - trc_PerTotAbm;
1707       -- Threshold Check
1708       IF trc_TxbTrvInc >= trc_Threshold THEN
1709          hr_utility.set_location('py_za_tx_01032002.SitCalc',20);
1710          -- Tax Liability
1711          trc_TotLibTA := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbTrvInc);
1712          trc_LibFyTA  := (trc_TotLibTA - least(trc_TotLibTA,trc_TotLibFB)) / trc_SitFactor;
1713          trc_TotLibTA := greatest(trc_TotLibTA,trc_TotLibFB);
1714          trc_LibFpTA  := trc_LibFyTA - bal_TX_ON_TA_YTD;
1715       ELSE
1716          hr_utility.set_location('py_za_tx_01032002.SitCalc',21);
1717          -- Set Cascade Figures and Refund
1718          trc_TotLibTA   := trc_TotLibFB;
1719          trc_LibFpTA    := -1 * bal_TX_ON_TA_YTD;
1720          trc_LibFpTAOvr := TRUE;
1721       END IF;
1722    ELSE
1723       hr_utility.set_location('py_za_tx_01032002.SitCalc',22);
1724       -- Set Cascade Figures and Refund
1725       trc_TrvAllErn  := trc_FrnBenErn;
1726       trc_TxbTrvInc  := trc_TxbFrnInc;
1727       trc_TotLibTA   := trc_TotLibFB;
1728       trc_LibFpTA    := -1 * bal_TX_ON_TA_YTD;
1729       trc_LibFpTAOvr := TRUE;
1730    END IF;
1731 
1732 -- Bonus Provision
1733 --
1734    -- Ytd Bonus Prvision
1735    trc_BonProYtd := bal_BP_YTD;
1736    -- Skip the calculation if there is No Income
1737    IF trc_BonProYtd <> 0 THEN
1738       hr_utility.set_location('py_za_tx_01032002.SitCalc',23);
1739       -- Bonus Provision Earnings
1740       trc_BonProErn := trc_BonProYtd * trc_SitFactor + trc_TrvAllErn;
1741       -- Taxable Bonus Provision Income
1742       trc_TxbBonProInc := trc_BonProErn - trc_PerTotAbm;
1743       -- Threshold Check
1744       IF trc_TxbBonProInc >= trc_Threshold THEN
1745          hr_utility.set_location('py_za_tx_01032002.SitCalc',24);
1746          -- Tax Liability
1747          trc_TotLibBP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbBonProInc);
1748          trc_LibFyBP  := (trc_TotLibBP - least(trc_TotLibBP,trc_TotLibTA)) / trc_SitFactor;
1749          trc_TotLibBP := greatest(trc_TotLibBP,trc_TotLibTA);
1750          trc_LibFpBP  := trc_LibFyBP - bal_TX_ON_BP_YTD;
1751       ELSE
1752          hr_utility.set_location('py_za_tx_01032002.SitCalc',25);
1753          -- Set Cascade Figures and Refund
1754          trc_TotLibBP   := trc_TotLibTA;
1755          trc_LibFpBP    := -1 * bal_TX_ON_BP_YTD;
1756          trc_LibFpBPOvr := TRUE;
1757       END IF;
1758    ELSE
1759       hr_utility.set_location('py_za_tx_01032002.SitCalc',26);
1760       -- Set Cascade Figures and Refund
1761       trc_BonProErn    := trc_TrvAllErn;
1762       trc_TxbBonProInc := trc_TxbTrvInc;
1763       trc_TotLibBP     := trc_TotLibTA;
1764       trc_LibFpBP      := -1 * bal_TX_ON_BP_YTD;
1765       trc_LibFpBPOvr   := TRUE;
1766    END IF;
1767 
1768 -- Annual Bonus
1769 --
1770    -- Ytd Annual Bonus
1771    trc_AnnBonYtd := bal_AB_NRFI_YTD + bal_AB_RFI_YTD;
1772    -- Skip the calculation if there is No Income
1773    IF trc_AnnBonYtd <> 0 THEN
1774       hr_utility.set_location('py_za_tx_01032002.SitCalc',27);
1775       -- Annual Bonus Earnings
1776       trc_AnnBonErn := trc_AnnBonYtd + trc_TrvAllErn;
1777       -- Taxable Annual Bonus Income
1778       trc_TxbAnnBonInc := trc_AnnBonErn - trc_AnnTotAbm;
1779       -- Threshold Check
1780       IF trc_TxbAnnBonInc >= trc_Threshold THEN
1781          hr_utility.set_location('py_za_tx_01032002.SitCalc',28);
1782          -- Tax Liability
1783          trc_TotLibAB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnBonInc);
1784          trc_LibFyAB := trc_TotLibAB - least(trc_TotLibAB,trc_TotLibTA);
1785          trc_TotLibAB := greatest(trc_TotLibAB,trc_TotLibTA);
1786          hr_utility.set_location('py_za_tx_01032002.SitCalc',29);
1787          -- Check Bonus Provision
1788          IF trc_BonProYtd <> 0 THEN
1789             hr_utility.set_location('py_za_tx_01032002.SitCalc',30);
1790             -- Check Bonus Provision Frequency
1791             IF dbi_BP_TX_RCV = 'B' OR py_za_tx_utl_01032002.SitePeriod THEN
1792                hr_utility.set_location('py_za_tx_01032002.SitCalc',31);
1793                trc_LibFpAB :=
1794                trc_LibFyAB - (bal_TX_ON_BP_YTD
1795                              + trc_LibFpBP
1796                              + bal_TX_ON_AB_YTD);
1797             ELSE
1798                hr_utility.set_location('py_za_tx_01032002.SitCalc',32);
1799                trc_LibFpAB := 0;
1800             END IF;
1801          ELSE
1802             hr_utility.set_location('py_za_tx_01032002.SitCalc',33);
1803             trc_LibFpAB := trc_LibFyAB - bal_TX_ON_AB_YTD;
1804          END IF;
1805       ELSE
1806          hr_utility.set_location('py_za_tx_01032002.SitCalc',34);
1807          -- Set Cascade Figures and Refund
1808          trc_TotLibAB   := trc_TotLibTA;
1809          trc_LibFpAB    := -1 * bal_TX_ON_AB_YTD;
1810          trc_LibFpABOvr := TRUE;
1811       END IF;
1812    ELSE
1813       hr_utility.set_location('py_za_tx_01032002.SitCalc',35);
1814       -- Set Cascade Figures and Refund
1815       trc_LibFpAB      := -1 * bal_TX_ON_AB_YTD;
1816       trc_LibFpABOvr   := TRUE;
1817 
1818       IF dbi_BP_TX_RCV = 'A' AND py_za_tx_utl_01032002.SitePeriod THEN
1819          hr_utility.set_location('py_za_tx_01032002.SitCalc',36);
1820          trc_LibFpBP      := -1 * bal_TX_ON_BP_YTD;
1821          trc_LibFpBPOvr   := TRUE;
1822          trc_LibFpAPOvr   := TRUE;
1823 
1824          trc_AnnBonErn    := trc_TrvAllErn;
1825          trc_TxbAnnBonInc := trc_TxbTrvInc;
1826          trc_TotLibAB     := trc_TotLibTA;
1827       ELSE
1828          hr_utility.set_location('py_za_tx_01032002.SitCalc',37);
1829          trc_AnnBonErn    := trc_BonProErn;
1830          trc_TxbAnnBonInc := trc_TxbBonProInc;
1831          trc_TotLibAB     := trc_TotLibBP;
1832       END IF;
1833    END IF;
1834 
1835 -- Annual Payments
1836 --
1837    -- Ytd Annual Payments
1838    trc_AnnPymYtd :=
1839       ( bal_AA_PRCHD_RVAL_NRFI_YTD   + bal_AA_PRCHD_RVAL_RFI_YTD
1840       + bal_ANN_BUR_AND_SCH_NRFI_YTD + bal_ANN_BUR_AND_SCH_RFI_YTD
1841       + bal_AC_NRFI_YTD              + bal_AC_RFI_YTD
1842       + bal_ANU_FRM_RET_FND_NRFI_YTD + bal_ANU_FRM_RET_FND_RFI_YTD
1843       + bal_ARES_TRD_NRFI_YTD        + bal_ARES_TRD_RFI_YTD
1844       + bal_PRCH_ANU_TXB_NRFI_YTD    + bal_PRCH_ANU_TXB_RFI_YTD
1845       + bal_TXB_AP_NRFI_YTD          + bal_TXB_AP_RFI_YTD
1846       );
1847    -- Skip the calculation if there is No Income
1848    IF trc_AnnPymYtd <> 0 THEN
1849       hr_utility.set_location('py_za_tx_01032002.SitCalc',38);
1850       -- Annual Payments Earnings
1851       trc_AnnPymErn := trc_AnnPymYtd + trc_AnnBonErn;
1852       -- Taxable Annual Payments Income
1853       trc_TxbAnnPymInc := trc_AnnPymErn - trc_AnnTotAbm;
1854       -- Threshold Check
1855       IF trc_TxbAnnPymInc >= trc_Threshold THEN
1856          hr_utility.set_location('py_za_tx_01032002.SitCalc',39);
1857          -- Tax Liability
1858          trc_TotLibAP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnPymInc);
1859          trc_LibFyAP  := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibAB);
1860          trc_TotLibAP := greatest(trc_TotLibAP,trc_TotLibAB);
1861          trc_LibFpAP  := trc_LibFyAP - bal_TX_ON_AP_YTD;
1862       ELSE
1863          hr_utility.set_location('py_za_tx_01032002.SitCalc',40);
1864          -- Set Cascade Figures and Refund
1865          trc_TotLibAP   := trc_TotLibAB;
1866          trc_LibFpAP    := -1 * bal_TX_ON_AP_YTD;
1867          trc_LibFpAPOvr := TRUE;
1868       END IF;
1869    ELSE
1870       hr_utility.set_location('py_za_tx_01032002.SitCalc',41);
1871       -- Set Cascade Figures and Refund
1872       trc_AnnPymErn    := trc_AnnBonErn;
1873       trc_TxbAnnPymInc := trc_TxbAnnBonInc;
1874       trc_TotLibAP     := trc_TotLibAB;
1875       trc_LibFpAP      := -1 * bal_TX_ON_AP_YTD;
1876       trc_LibFpAPOvr   := TRUE;
1877    END IF;
1878 
1879 -- Public Office Allowance
1880 --
1881    -- Ytd Public Office Allowance
1882    trc_PblOffYtd := bal_PO_NRFI_YTD + bal_PO_RFI_YTD;
1883    -- Skip the calculation if there is No Income
1884    IF trc_PblOffYtd <> 0 THEN
1885       hr_utility.set_location('py_za_tx_01032002.SitCalc',42);
1886       -- Public Office Earnings
1887       trc_PblOffErn := trc_PblOffYtd * trc_SitFactor;
1888       -- Tax Liability
1889       trc_LibFyPO := (trc_PblOffErn * glb_ZA_PBL_TX_RTE / 100)/trc_SitFactor;
1890       trc_LibFpPO := trc_LibFyPO -  bal_TX_ON_PO_YTD;
1891    ELSE
1892       hr_utility.set_location('py_za_tx_01032002.SitCalc',43);
1893       -- Set Cascade Figures and Refund
1894       trc_LibFyPO    := 0;
1895       trc_LibFpPO    := -1 * bal_TX_ON_PO_YTD;
1896       trc_LibFpPOOvr := TRUE;
1897    END IF;
1898 
1899 -- Net Pay Validation
1900 --
1901    -- Net Pay of the Employee
1902    l_Np := bal_NET_PAY_RUN;
1903    -- Site Limit Check
1904    IF trc_TxbAnnPymInc + trc_PblOffErn < glb_ZA_SIT_LIM THEN
1905       hr_utility.set_location('py_za_tx_01032002.SitCalc',44);
1906       l_Sl := TRUE;
1907    ELSE
1908       hr_utility.set_location('py_za_tx_01032002.SitCalc',45);
1909       l_Sl := FALSE;
1910    END IF;
1911 
1912    py_za_tx_utl_01032002.ValidateTaxOns(p_Rf => l_Sl);
1913 
1914    hr_utility.set_location('py_za_tx_01032002.SitCalc',46);
1915 
1916 -- Set IT3A Indicator
1917 --
1918    IF trc_TxbAnnPymInc + trc_PblOffErn >= trc_Threshold THEN
1919       hr_utility.set_location('py_za_tx_01032002.SitCalc',47);
1920       trc_It3Ind := 0; -- Over Lim
1921    ELSE
1922       hr_utility.set_location('py_za_tx_01032002.SitCalc',48);
1923       trc_It3Ind := 1; -- Under Lim
1924    END IF;
1925 
1926 -- Calculate Total Taxable Income and pass out
1927 --
1928    trc_OUpdFig := (trc_TxbAnnPymInc + trc_PblOffErn) - bal_TOT_TXB_INC_ITD;
1929 
1930    hr_utility.set_location('py_za_tx_01032002.SitCalc',49);
1931 
1932    -- Deemed Remuneration
1933    WrtHrTrc('trc_TxbDmdRmn:    '||to_char(trc_TxbDmdRmn));
1934    WrtHrTrc('trc_TotLibDR:     '||to_char(trc_TotLibDR));
1935    WrtHrTrc('trc_LibFyDR:      '||to_char(trc_LibFyDR));
1936    WrtHrTrc('trc_LibFpDR:      '||to_char(trc_LibFpDR));
1937    -- Base Income
1938    WrtHrTrc('trc_BseErn:       '||to_char(trc_BseErn));
1939    WrtHrTrc('trc_TxbBseInc:    '||to_char(trc_TxbBseInc));
1940    WrtHrTrc('trc_TotLibBse:    '||to_char(trc_TotLibBse));
1941    -- Normal Income
1942    WrtHrTrc('trc_NorIncYtd:    '||to_char(trc_NorIncYtd));
1943    WrtHrTrc('trc_NorIncPtd:    '||to_char(trc_NorIncPtd));
1944    WrtHrTrc('trc_NorErn:       '||to_char(trc_NorErn));
1945    WrtHrTrc('trc_TxbNorInc:    '||to_char(trc_TxbNorInc));
1946    WrtHrTrc('trc_TotLibNI:     '||to_char(trc_TotLibNI));
1947    WrtHrTrc('trc_LibFyNI:      '||to_char(trc_LibFyNI));
1948    WrtHrTrc('trc_LibFpNI:      '||to_char(trc_LibFpNI));
1949    -- Fringe Benefits
1950    WrtHrTrc('trc_FrnBenYtd:    '||to_char(trc_FrnBenYtd));
1951    WrtHrTrc('trc_FrnBenPtd:    '||to_char(trc_FrnBenPtd));
1952    WrtHrTrc('trc_FrnBenErn:    '||to_char(trc_FrnBenErn));
1953    WrtHrTrc('trc_TxbFrnInc:    '||to_char(trc_TxbFrnInc));
1954    WrtHrTrc('trc_TotLibFB:     '||to_char(trc_TotLibFB));
1955    WrtHrTrc('trc_LibFyFB:      '||to_char(trc_LibFyFB));
1956    WrtHrTrc('trc_LibFpFB:      '||to_char(trc_LibFpFB));
1957    -- Travel Allowance
1958    WrtHrTrc('trc_TrvAllYtd:    '||to_char(trc_TrvAllYtd));
1959    WrtHrTrc('trc_TrvAllPtd:    '||to_char(trc_TrvAllPtd));
1960    WrtHrTrc('trc_TrvAllErn:    '||to_char(trc_TrvAllErn));
1961    WrtHrTrc('trc_TxbTrvInc:    '||to_char(trc_TxbTrvInc));
1962    WrtHrTrc('trc_TotLibTA:     '||to_char(trc_TotLibTA));
1963    WrtHrTrc('trc_LibFyTA:      '||to_char(trc_LibFyTA));
1964    WrtHrTrc('trc_LibFpTA:      '||to_char(trc_LibFpTA));
1965    -- Bonus Provision
1966    WrtHrTrc('trc_BonProYtd:    '||to_char(trc_BonProYtd));
1967    WrtHrTrc('trc_BonProPtd:    '||to_char(trc_BonProPtd));
1968    WrtHrTrc('trc_BonProErn:    '||to_char(trc_BonProErn));
1969    WrtHrTrc('trc_TxbBonProInc: '||to_char(trc_TxbBonProInc));
1970    WrtHrTrc('trc_TotLibBP:     '||to_char(trc_TotLibBP));
1971    WrtHrTrc('trc_LibFyBP:      '||to_char(trc_LibFyBP));
1972    WrtHrTrc('trc_LibFpBP:      '||to_char(trc_LibFpBP));
1973    -- Annual Bonus
1974    WrtHrTrc('trc_AnnBonYtd:    '||to_char(trc_AnnBonYtd));
1975    WrtHrTrc('trc_AnnBonPtd:    '||to_char(trc_AnnBonPtd));
1976    WrtHrTrc('trc_AnnBonErn:    '||to_char(trc_AnnBonErn));
1977    WrtHrTrc('trc_TxbAnnBonInc: '||to_char(trc_TxbAnnBonInc));
1978    WrtHrTrc('trc_TotLibAB:     '||to_char(trc_TotLibAB));
1979    WrtHrTrc('trc_LibFyAB:      '||to_char(trc_LibFyAB));
1980    WrtHrTrc('trc_LibFpAB:      '||to_char(trc_LibFpAB));
1981    -- Annual Payments
1982    WrtHrTrc('trc_AnnPymYtd:    '||to_char(trc_AnnPymYtd));
1983    WrtHrTrc('trc_AnnPymPtd:    '||to_char(trc_AnnPymPtd));
1984    WrtHrTrc('trc_AnnPymErn:    '||to_char(trc_AnnPymErn));
1985    WrtHrTrc('trc_TxbAnnPymInc: '||to_char(trc_TxbAnnPymInc));
1986    WrtHrTrc('trc_TotLibAP:     '||to_char(trc_TotLibAP));
1987    WrtHrTrc('trc_LibFyAP:      '||to_char(trc_LibFyAP));
1988    WrtHrTrc('trc_LibFpAP:      '||to_char(trc_LibFpAP));
1989 
1990 EXCEPTION
1991    WHEN OTHERS THEN
1992       IF xpt_Msg = 'No Error' THEN
1993          xpt_Msg := 'SitCalc: '||TO_CHAR(SQLCODE);
1994       END IF;
1995       RAISE xpt_E;
1996 END SitCalc;
1997 
1998 -------------------------------------------------------------------------------
1999 -- DirCalc                                                                   --
2000 -- Tax Calculation for Directive Assignments                                 --
2001 -------------------------------------------------------------------------------
2002 PROCEDURE DirCalc AS
2003 -- Variables
2004 --
2005    l_Np       BALANCE DEFAULT 0;
2006 
2007 BEGIN
2008    hr_utility.set_location('py_za_tx_01032002.DirCalc',1);
2009 -- Identify the calculation
2010 --
2011    trc_CalTyp := 'DirCalc';
2012 
2013 -- Update Global Balance Values with correct TAXABLE values
2014 --
2015    py_za_tx_utl_01032002.TrvAll;
2016 
2017    hr_utility.set_location('py_za_tx_01032002.DirCalc',2);
2018 
2019    bal_PO_RFI_YTD  := bal_PO_RFI_YTD * glb_ZA_PBL_TX_PRC / 100;
2020    bal_PO_NRFI_YTD := bal_PO_NRFI_YTD * glb_ZA_PBL_TX_PRC / 100;
2021 
2022 -- Normal Income
2023 --
2024    -- Ytd Normal Income
2025    trc_NorIncYtd :=
2026       ( bal_COMM_NRFI_YTD          + bal_COMM_RFI_YTD
2027       + bal_COMP_ALL_NRFI_YTD      + bal_COMP_ALL_RFI_YTD
2028       + bal_ENT_ALL_NRFI_YTD       + bal_ENT_ALL_RFI_YTD
2029       + bal_OTHER_TXB_ALL_NRFI_YTD + bal_OTHER_TXB_ALL_RFI_YTD
2030       + bal_OVTM_NRFI_YTD          + bal_OVTM_RFI_YTD
2031       + bal_RES_TRD_NRFI_YTD       + bal_RES_TRD_RFI_YTD
2032       + bal_TXB_INC_NRFI_YTD       + bal_TXB_INC_RFI_YTD
2033       + bal_TXB_PEN_NRFI_YTD       + bal_TXB_PEN_RFI_YTD
2034       + bal_TEL_ALL_NRFI_YTD       + bal_TEL_ALL_RFI_YTD
2035       + bal_TOOL_ALL_NRFI_YTD      + bal_TOOL_ALL_RFI_YTD
2036       );
2037    -- Skip the calculation if there is No Income
2038    IF trc_NorIncYtd <> 0 THEN
2039       hr_utility.set_location('py_za_tx_01032002.DirCalc',3);
2040       -- Normal Earnings
2041       trc_NorErn := trc_NorIncYtd;
2042       -- Tax Liability
2043       trc_TotLibNI := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_NorErn);
2044       trc_LibFyNI  := trc_TotLibNI - 0;
2045       trc_TotLibNI := greatest(trc_TotLibNI,0);
2046       trc_LibFpNI  := trc_LibFyNI - bal_TX_ON_NI_YTD;
2047    ELSE
2048       hr_utility.set_location('py_za_tx_01032002.DirCalc',4);
2049       -- Set Cascade Figures and Refund
2050       trc_NorErn     := 0;
2051       trc_TotLibNI   := 0;
2052       trc_LibFpNI    := -1 * bal_TX_ON_NI_YTD;
2053       trc_LibFpNIOvr := TRUE;
2054    END IF;
2055 
2056 -- Fringe Benefits
2057 --
2058    -- Ytd Fringe Benefits
2059    trc_FrnBenYtd :=
2060       ( bal_AST_PRCHD_RVAL_NRFI_YTD + bal_AST_PRCHD_RVAL_RFI_YTD
2061       + bal_BUR_AND_SCH_NRFI_YTD    + bal_BUR_AND_SCH_RFI_YTD
2062       + bal_FREE_ACCOM_NRFI_YTD     + bal_FREE_ACCOM_RFI_YTD
2063       + bal_FREE_SERV_NRFI_YTD      + bal_FREE_SERV_RFI_YTD
2064       + bal_LOW_LOANS_NRFI_YTD      + bal_LOW_LOANS_RFI_YTD
2065       + bal_MLS_AND_VOUCH_NRFI_YTD  + bal_MLS_AND_VOUCH_RFI_YTD
2066       + bal_MED_PAID_NRFI_YTD       + bal_MED_PAID_RFI_YTD
2067       + bal_PYM_DBT_NRFI_YTD        + bal_PYM_DBT_RFI_YTD
2068       + bal_RGT_AST_NRFI_YTD        + bal_RGT_AST_RFI_YTD
2069       + bal_USE_VEH_NRFI_YTD        + bal_USE_VEH_RFI_YTD
2070       );
2071    -- Skip the calculation if there is No Income
2072    IF trc_FrnBenYtd <> 0 THEN
2073       hr_utility.set_location('py_za_tx_01032002.DirCalc',5);
2074       -- Fringe Benefit Earnings
2075       trc_FrnBenErn := trc_FrnBenYtd + trc_NorErn;
2076       -- Tax Liability
2077       trc_TotLibFB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_FrnBenErn);
2078       trc_LibFyFB  := trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI);
2079       trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
2080       trc_LibFpFB  := trc_LibFyFB - bal_TX_ON_FB_YTD;
2081    ELSE
2082       hr_utility.set_location('py_za_tx_01032002.DirCalc',6);
2083       -- Set Cascade Figures and Refund
2084       trc_FrnBenErn  := trc_NorErn;
2085       trc_TotLibFB   := trc_TotLibNI;
2086       trc_LibFpFB    := -1 * bal_TX_ON_FB_YTD;
2087       trc_LibFpFBOvr := TRUE;
2088    END IF;
2089 
2090 -- Travel Allowance
2091 --
2092    -- Ytd Travel Allowance
2093    trc_TrvAllYtd := bal_TA_NRFI_YTD + bal_TA_RFI_YTD;
2094    -- Skip the calculation if there is No Income
2095    IF trc_TrvAllYtd <> 0 THEN
2096       hr_utility.set_location('py_za_tx_01032002.DirCalc',7);
2097       -- Travel Allowance Earnings
2098       trc_TrvAllErn := trc_TrvAllYtd + trc_FrnBenErn;
2099       -- Tax Liability
2100       trc_TotLibTA := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TrvAllErn);
2101       trc_LibFyTA  := trc_TotLibTA - least(trc_TotLibTA,trc_TotLibFB);
2102       trc_TotLibTA := greatest(trc_TotLibTA,trc_TotLibFB);
2103       trc_LibFpTA  := trc_LibFyTA - bal_TX_ON_TA_YTD;
2104    ELSE
2105       hr_utility.set_location('py_za_tx_01032002.DirCalc',8);
2106       -- Set Cascade Figures and Refund
2107       trc_TrvAllErn  := trc_FrnBenErn; --Cascade Figure
2108       trc_TotLibTA   := trc_TotLibFB;
2109       trc_LibFpTA    := -1 * bal_TX_ON_TA_YTD;
2110       trc_LibFpTAOvr := TRUE;
2111    END IF;
2112 
2113 -- Bonus Provision
2114 --
2115    -- Ytd Bonus Provision
2116    trc_BonProYtd := bal_BP_YTD;
2117    -- Skip the calculation if there is No Income
2118    IF trc_BonProYtd <> 0 THEN
2119       hr_utility.set_location('py_za_tx_01032002.DirCalc',9);
2120       -- Bonus Provision Earnings
2121       trc_BonProErn := trc_BonProYtd + trc_TrvAllErn;
2122       -- Tax Liability
2123       trc_TotLibBP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_BonProErn);
2124       trc_LibFyBP  := trc_TotLibBP - least(trc_TotLibBP,trc_TotLibTA);
2125       trc_TotLibBP := greatest(trc_TotLibBP,trc_TotLibTA);
2126       trc_LibFpBP  := trc_LibFyBP - bal_TX_ON_BP_YTD;
2127    ELSE
2128       hr_utility.set_location('py_za_tx_01032002.DirCalc',10);
2129       -- Set Cascade Figures and Refund
2130       trc_BonProErn  := trc_TrvAllErn;
2131       trc_TotLibBP   := trc_TotLibTA;
2132       trc_LibFpBP    := -1 * bal_TX_ON_BP_YTD;
2133       trc_LibFpBPOvr := TRUE;
2134    END IF;
2135 
2136 -- Annual Bonus
2137 --
2138    -- Ytd Annual Bonus
2139    trc_AnnBonYtd := bal_AB_NRFI_YTD + bal_AB_RFI_YTD;
2140    -- Skip the calculation if there is No Income
2141    IF trc_AnnBonYtd <> 0 THEN
2142       hr_utility.set_location('py_za_tx_01032002.DirCalc',11);
2143       -- Annual Bonus Earnings
2144       trc_AnnBonErn := trc_AnnBonYtd + trc_TrvAllErn;
2145       -- Tax Liability
2146       trc_TotLibAB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_AnnBonErn);
2147       trc_LibFyAB  := trc_TotLibAB - least(trc_TotLibAB,trc_TotLibTA);
2148       trc_TotLibAB := greatest(trc_TotLibAB,trc_TotLibTA);
2149       -- Check Bonus Provision
2150       IF trc_BonProYtd <> 0 THEN
2151          hr_utility.set_location('py_za_tx_01032002.DirCalc',12);
2152          -- Check Bonus Provision Frequency
2153          IF dbi_BP_TX_RCV = 'B' OR py_za_tx_utl_01032002.SitePeriod THEN
2154             hr_utility.set_location('py_za_tx_01032002.DirCalc',13);
2155             trc_LibFpAB :=
2156             trc_LibFyAB - (bal_TX_ON_BP_YTD
2157                           + trc_LibFpBP
2158                           + bal_TX_ON_AB_YTD);
2159          ELSE
2160             hr_utility.set_location('py_za_tx_01032002.DirCalc',14);
2161             trc_LibFpAB := 0;
2162          END IF;
2163       ELSE
2164          hr_utility.set_location('py_za_tx_01032002.DirCalc',15);
2165          trc_LibFpAB := trc_LibFyAB - bal_TX_ON_AB_YTD;
2166       END IF;
2167    ELSE
2168       hr_utility.set_location('py_za_tx_01032002.DirCalc',16);
2169       -- Set Cascade Figures and Refund
2170       trc_LibFpAB    := -1 * bal_TX_ON_AB_YTD;
2171       trc_LibFpABOvr := TRUE;
2172 
2173       IF dbi_BP_TX_RCV = 'A' AND py_za_tx_utl_01032002.SitePeriod THEN
2174          hr_utility.set_location('py_za_tx_01032002.DirCalc',17);
2175          trc_LibFpBP    := -1 * bal_TX_ON_BP_YTD;
2176          trc_LibFpBPOvr := TRUE;
2177          trc_LibFpAPOvr := TRUE;
2178 
2179          trc_AnnBonErn  := trc_TrvAllErn;
2180          trc_TotLibAB   := trc_TotLibTA;
2181       ELSE
2182          hr_utility.set_location('py_za_tx_01032002.DirCalc',18);
2183          trc_AnnBonErn  := trc_BonProErn;
2184          trc_TotLibAB   := trc_TotLibBP;
2185       END IF;
2186    END IF;
2187 
2188 -- Annual Payments
2189 --
2190    -- Ytd Annual Payments
2191    trc_AnnPymYtd :=
2192       ( bal_AA_PRCHD_RVAL_NRFI_YTD   + bal_AA_PRCHD_RVAL_RFI_YTD
2193       + bal_ANN_BUR_AND_SCH_NRFI_YTD + bal_ANN_BUR_AND_SCH_RFI_YTD
2194       + bal_AC_NRFI_YTD              + bal_AC_RFI_YTD
2195       + bal_ANU_FRM_RET_FND_NRFI_YTD + bal_ANU_FRM_RET_FND_RFI_YTD
2196       + bal_ARES_TRD_NRFI_YTD        + bal_ARES_TRD_RFI_YTD
2197       + bal_PRCH_ANU_TXB_NRFI_YTD    + bal_PRCH_ANU_TXB_RFI_YTD
2198       + bal_TXB_AP_NRFI_YTD          + bal_TXB_AP_RFI_YTD
2199       );
2200    -- Skip the calculation if there is No Income
2201    IF trc_AnnPymYtd <> 0 THEN
2202       hr_utility.set_location('py_za_tx_01032002.DirCalc',19);
2203       -- Annual Payments Earnings
2204       trc_AnnPymErn := trc_AnnPymYtd + trc_AnnBonErn;
2205       -- Tax Liability
2206       trc_TotLibAP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_AnnPymErn);
2207       trc_LibFyAP  := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibAB);
2208       trc_TotLibAP := greatest(trc_TotLibAP,trc_TotLibAB);
2209       trc_LibFpAP  := trc_LibFyAP - bal_TX_ON_AP_YTD;
2210    ElSE
2211       hr_utility.set_location('py_za_tx_01032002.DirCalc',20);
2212       -- Set Cascade Figures and Refund
2213       trc_AnnPymErn  := trc_AnnBonErn;
2214       trc_TotLibAP   := trc_TotLibAB;
2215       trc_LibFpAP    := -1 * bal_TX_ON_AP_YTD;
2216       trc_LibFpAPOvr := TRUE;
2217    END IF;
2218 
2219 -- Public Office Allowance
2220 --
2221    -- Ytd Public Office Allowance
2222    trc_PblOffYtd := bal_PO_NRFI_YTD + bal_PO_RFI_YTD;
2223    -- Skip the calculation if there is No Income
2224    IF trc_PblOffYtd <> 0 THEN
2225       hr_utility.set_location('py_za_tx_01032002.DirCalc',21);
2226       -- Tax Liability
2227       trc_LibFyPO := trc_PblOffYtd * glb_ZA_PBL_TX_RTE / 100;
2228       trc_LibFpPO := trc_LibFyPO -  bal_TX_ON_PO_YTD;
2229    ELSE
2230       hr_utility.set_location('py_za_tx_01032002.DirCalc',22);
2231       -- Set Cascade Figures and Refund
2232       trc_LibFyPO    := 0;
2233       trc_LibFpPO    := -1 * bal_TX_ON_PO_YTD;
2234       trc_LibFpPOOvr := TRUE;
2235    END IF;
2236 
2237 -- Net Pay Validation
2238 --
2239    py_za_tx_utl_01032002.ValidateTaxOns(p_Rf => TRUE);
2240 
2241    hr_utility.set_location('py_za_tx_01032002.DirCalc',23);
2242 
2243 -- Tax Percentage Indicator
2244 --
2245    IF dbi_TX_STA    IN ('D','P') THEN
2246       hr_utility.set_location('py_za_tx_01032002.DirCalc',24);
2247       trc_TxPercVal := dbi_TX_DIR_VAL;
2248    ELSIF dbi_TX_STA = 'E' THEN
2249       hr_utility.set_location('py_za_tx_01032002.DirCalc',25);
2250       trc_TxPercVal := glb_ZA_CC_TX_PRC;
2251    ELSIF dbi_TX_STA = 'F' THEN
2252       hr_utility.set_location('py_za_tx_01032002.DirCalc',26);
2253       trc_TxPercVal := glb_ZA_TMP_TX_RTE;
2254    ELSIF dbi_TX_STA = 'J' THEN
2255       hr_utility.set_location('py_za_tx_01032002.DirCalc',27);
2256       trc_TxPercVal := glb_ZA_PER_SERV_COMP_PERC;
2257    ELSIF dbi_TX_STA = 'K' THEN
2258       hr_utility.set_location('py_za_tx_01032002.DirCalc',28);
2259       trc_TxPercVal := glb_ZA_PER_SERV_TRST_PERC;
2260    ELSIF dbi_TX_STA = 'L' THEN
2261       hr_utility.set_location('py_za_tx_01032002.DirCalc',29);
2262       trc_TxPercVal := glb_ZA_LABOUR_BROK_PERC;
2263    ELSE
2264       hr_utility.set_location('py_za_tx_01032002.DirCalc',30);
2265       trc_TxPercVal := 0;
2266    END IF;
2267 
2268    hr_utility.set_location('py_za_tx_01032002.DirCalc',31);
2269 
2270    -- Base Income
2271    WrtHrTrc('trc_BseErn:       '||to_char(trc_BseErn));
2272    WrtHrTrc('trc_TxbBseInc:    '||to_char(trc_TxbBseInc));
2273    WrtHrTrc('trc_TotLibBse:    '||to_char(trc_TotLibBse));
2274    -- Normal Income
2275    WrtHrTrc('trc_NorIncYtd:    '||to_char(trc_NorIncYtd));
2276    WrtHrTrc('trc_NorIncPtd:    '||to_char(trc_NorIncPtd));
2277    WrtHrTrc('trc_NorErn:       '||to_char(trc_NorErn));
2278    WrtHrTrc('trc_TxbNorInc:    '||to_char(trc_TxbNorInc));
2279    WrtHrTrc('trc_TotLibNI:     '||to_char(trc_TotLibNI));
2280    WrtHrTrc('trc_LibFyNI:      '||to_char(trc_LibFyNI));
2281    WrtHrTrc('trc_LibFpNI:      '||to_char(trc_LibFpNI));
2282    -- Fringe Benefits
2283    WrtHrTrc('trc_FrnBenYtd:    '||to_char(trc_FrnBenYtd));
2284    WrtHrTrc('trc_FrnBenPtd:    '||to_char(trc_FrnBenPtd));
2285    WrtHrTrc('trc_FrnBenErn:    '||to_char(trc_FrnBenErn));
2286    WrtHrTrc('trc_TxbFrnInc:    '||to_char(trc_TxbFrnInc));
2287    WrtHrTrc('trc_TotLibFB:     '||to_char(trc_TotLibFB));
2288    WrtHrTrc('trc_LibFyFB:      '||to_char(trc_LibFyFB));
2289    WrtHrTrc('trc_LibFpFB:      '||to_char(trc_LibFpFB));
2290    -- Travel Allowance
2291    WrtHrTrc('trc_TrvAllYtd:    '||to_char(trc_TrvAllYtd));
2292    WrtHrTrc('trc_TrvAllPtd:    '||to_char(trc_TrvAllPtd));
2293    WrtHrTrc('trc_TrvAllErn:    '||to_char(trc_TrvAllErn));
2294    WrtHrTrc('trc_TxbTrvInc:    '||to_char(trc_TxbTrvInc));
2295    WrtHrTrc('trc_TotLibTA:     '||to_char(trc_TotLibTA));
2296    WrtHrTrc('trc_LibFyTA:      '||to_char(trc_LibFyTA));
2297    WrtHrTrc('trc_LibFpTA:      '||to_char(trc_LibFpTA));
2298    -- Bonus Provision
2299    WrtHrTrc('trc_BonProYtd:    '||to_char(trc_BonProYtd));
2300    WrtHrTrc('trc_BonProPtd:    '||to_char(trc_BonProPtd));
2301    WrtHrTrc('trc_BonProErn:    '||to_char(trc_BonProErn));
2302    WrtHrTrc('trc_TxbBonProInc: '||to_char(trc_TxbBonProInc));
2303    WrtHrTrc('trc_TotLibBP:     '||to_char(trc_TotLibBP));
2304    WrtHrTrc('trc_LibFyBP:      '||to_char(trc_LibFyBP));
2305    WrtHrTrc('trc_LibFpBP:      '||to_char(trc_LibFpBP));
2306    -- Annual Bonus
2307    WrtHrTrc('trc_AnnBonYtd:    '||to_char(trc_AnnBonYtd));
2308    WrtHrTrc('trc_AnnBonPtd:    '||to_char(trc_AnnBonPtd));
2309    WrtHrTrc('trc_AnnBonErn:    '||to_char(trc_AnnBonErn));
2310    WrtHrTrc('trc_TxbAnnBonInc: '||to_char(trc_TxbAnnBonInc));
2311    WrtHrTrc('trc_TotLibAB:     '||to_char(trc_TotLibAB));
2312    WrtHrTrc('trc_LibFyAB:      '||to_char(trc_LibFyAB));
2313    WrtHrTrc('trc_LibFpAB:      '||to_char(trc_LibFpAB));
2314    -- Annual Payments
2315    WrtHrTrc('trc_AnnPymYtd:    '||to_char(trc_AnnPymYtd));
2316    WrtHrTrc('trc_AnnPymPtd:    '||to_char(trc_AnnPymPtd));
2317    WrtHrTrc('trc_AnnPymErn:    '||to_char(trc_AnnPymErn));
2318    WrtHrTrc('trc_TxbAnnPymInc: '||to_char(trc_TxbAnnPymInc));
2319    WrtHrTrc('trc_TotLibAP:     '||to_char(trc_TotLibAP));
2320    WrtHrTrc('trc_LibFyAP:      '||to_char(trc_LibFyAP));
2321    WrtHrTrc('trc_LibFpAP:      '||to_char(trc_LibFpAP));
2322    -- Pubilc Office Allowance
2323    WrtHrTrc('trc_PblOffYtd:    '||to_char(trc_PblOffYtd));
2324    WrtHrTrc('trc_PblOffPtd:    '||to_char(trc_PblOffPtd));
2325    WrtHrTrc('trc_PblOffErn:    '||to_char(trc_PblOffErn));
2326    WrtHrTrc('trc_LibFyPO:      '||to_char(trc_LibFyPO));
2327    WrtHrTrc('trc_LibFpPO:      '||to_char(trc_LibFpPO));
2328 
2329 EXCEPTION
2330    WHEN OTHERS THEN
2331       IF xpt_Msg = 'No Error' THEN
2332          xpt_Msg := 'DirCalc: '||TO_CHAR(SQLCODE);
2333       END IF;
2334       RAISE xpt_E;
2335 END DirCalc;
2336 
2337 -------------------------------------------------------------------------------
2338 -- BasCalc                                                                   --
2339 -- Pre-Earnings Tax Calculation                                              --
2340 -------------------------------------------------------------------------------
2341 PROCEDURE BasCalc AS
2342 -- Variables
2343 --
2344    l_Np       BALANCE;
2345    l_65Year   DATE;
2346 
2347 BEGIN
2348    hr_utility.set_location('py_za_tx_01032002.BasCalc',1);
2349 -- Identify the Calculation
2350 --
2351    trc_CalTyp := 'BasCalc';
2352 
2353 -- Rebates
2354    py_za_tx_utl_01032002.SetRebates;
2355 
2356 -- Abatements
2357    py_za_tx_utl_01032002.Abatements;
2358 
2359 -- Deemed Remuneration
2360 --
2361    -- Run Deemed Remuneration
2362    trc_DmdRmnRun := bal_DIR_DMD_RMN_ITD;
2363 
2364    -- Skip the calculation if there is No Income
2365    IF trc_DmdRmnRun <> 0 THEN
2366       hr_utility.set_location('py_za_tx_01032002.BasCalc',2);
2367       -- Taxable Deemed Remuneration
2368       trc_TxbDmdRmn := trc_DmdRmnRun;
2369       -- Threshold Check
2370       IF trc_TxbDmdRmn >= trc_Threshold THEN
2371          hr_utility.set_location('py_za_tx_01032002.BasCalc',3);
2372          -- Tax Liability
2373          trc_TotLibDR := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbDmdRmn);
2374       ELSE
2375          hr_utility.set_location('py_za_tx_01032002.BasCalc',4);
2376          trc_TotLibDR := 0;
2377       END IF;
2378    ELSE
2379       hr_utility.set_location('py_za_tx_01032002.BasCalc',5);
2380       trc_TotLibDR := 0;
2381    END IF;
2382 
2383    hr_utility.set_location('py_za_tx_01032002.BasCalc',6);
2384 
2385 -- Base Earnings
2386 --
2387    --Base Earnings
2388    trc_BseErn :=
2389       ( bal_AB_NRFI_PTD              + bal_AB_RFI_PTD
2390       + bal_AA_PRCHD_RVAL_NRFI_PTD   + bal_AA_PRCHD_RVAL_RFI_PTD
2391       + bal_ANN_BUR_AND_SCH_NRFI_PTD + bal_ANN_BUR_AND_SCH_RFI_PTD
2392       + bal_AC_NRFI_PTD              + bal_AC_RFI_PTD
2393       + bal_ANU_FRM_RET_FND_NRFI_PTD + bal_ANU_FRM_RET_FND_RFI_PTD
2394       + bal_ARES_TRD_NRFI_PTD        + bal_ARES_TRD_RFI_PTD
2395       + bal_PRCH_ANU_TXB_NRFI_PTD    + bal_PRCH_ANU_TXB_RFI_PTD
2396       + bal_TXB_AP_NRFI_PTD          + bal_TXB_AP_RFI_PTD
2397       );
2398       -- Estimate Base Taxable Income
2399       trc_TxbBseInc := trc_BseErn * dbi_ZA_PAY_PRDS_PER_YR;
2400    -- Threshold Check
2401    IF trc_TxbBseInc >= trc_Threshold THEN
2402       hr_utility.set_location('py_za_tx_01032002.BasCalc',7);
2403       -- Tax Liability
2404       trc_TotLibBse := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbBseInc);
2405       trc_TotLibBse := greatest(trc_TotLibBse,trc_TotLibDR);
2406    ELSE
2407       hr_utility.set_location('py_za_tx_01032002.BasCalc',8);
2408       trc_TotLibBse := trc_TotLibDR;
2409    END IF;
2410 
2411    hr_utility.set_location('py_za_tx_01032002.BasCalc',9);
2412 
2413 -- Annual Bonus
2414 --
2415    -- Ytd Annual Bonus
2416    trc_AnnBonYtd := bal_AB_NRFI_YTD + bal_AB_RFI_YTD;
2417    -- Skip the calculation if there is No Income
2418    IF trc_AnnBonYtd <> 0 THEN
2419       hr_utility.set_location('py_za_tx_01032002.BasCalc',10);
2420       -- Annual Bonus Earnings
2421       trc_AnnBonErn := trc_AnnBonYtd + trc_TxbBseInc;
2422       -- Taxable Annual Bonus Income
2423       trc_TxbAnnBonInc := trc_AnnBonErn - trc_AnnTotAbm;
2424       -- Threshold Check
2425       IF trc_TxbAnnBonInc >= trc_Threshold THEN
2426          hr_utility.set_location('py_za_tx_01032002.BasCalc',11);
2427          -- Tax Liability
2428          trc_TotLibAB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnBonInc);
2429          trc_LibFyAB  := trc_TotLibAB - least(trc_TotLibAB,trc_TotLibBse);
2430          trc_TotLibAB := greatest(trc_TotLibAB,trc_TotLibBse);
2431          -- Check Bonus Provision
2432          IF bal_BP_YTD <> 0 THEN
2433             hr_utility.set_location('py_za_tx_01032002.BasCalc',12);
2434             -- Check Bonus Provision Frequency
2435             IF dbi_BP_TX_RCV = 'A' THEN
2436                hr_utility.set_location('py_za_tx_01032002.BasCalc',13);
2437                trc_LibFpAB := 0;
2438             ELSE
2439                hr_utility.set_location('py_za_tx_01032002.BasCalc',14);
2440                trc_LibFpAB := trc_LibFyAB - ( bal_TX_ON_BP_YTD
2441                                             + bal_TX_ON_AB_YTD);
2442             END IF;
2443          ELSE
2444             hr_utility.set_location('py_za_tx_01032002.BasCalc',15);
2445             trc_LibFpAB := trc_LibFyAB - bal_TX_ON_AB_YTD;
2446          END IF;
2447       ELSE
2448          hr_utility.set_location('py_za_tx_01032002.BasCalc',16);
2449          trc_TotLibAB := trc_TotLibBse;
2450       END IF;
2451    ELSE
2452       hr_utility.set_location('py_za_tx_01032002.BasCalc',17);
2453       trc_TotLibAB     := trc_TotLibBse;
2454       trc_TxbAnnBonInc := trc_TxbBseInc;
2455    END IF;
2456 
2457    hr_utility.set_location('py_za_tx_01032002.BasCalc',18);
2458 
2459 -- Annual Payments
2460 --
2461    -- Ytd Annual Payments
2462    trc_AnnPymYtd :=
2463       ( bal_AA_PRCHD_RVAL_NRFI_YTD   + bal_AA_PRCHD_RVAL_RFI_YTD
2464       + bal_ANN_BUR_AND_SCH_NRFI_YTD + bal_ANN_BUR_AND_SCH_RFI_YTD
2465       + bal_AC_NRFI_YTD              + bal_AC_RFI_YTD
2466       + bal_ANU_FRM_RET_FND_NRFI_YTD + bal_ANU_FRM_RET_FND_RFI_YTD
2467       + bal_ARES_TRD_NRFI_YTD        + bal_ARES_TRD_RFI_YTD
2468       + bal_PRCH_ANU_TXB_NRFI_YTD    + bal_PRCH_ANU_TXB_RFI_YTD
2469       + bal_TXB_AP_NRFI_YTD          + bal_TXB_AP_RFI_YTD
2470       );
2471    -- Skip the calculation if there is No Income
2472    IF trc_AnnPymYtd <> 0 THEN
2473       hr_utility.set_location('py_za_tx_01032002.BasCalc',19);
2474    -- Taxable Annual Payments Income
2475       trc_TxbAnnPymInc := trc_AnnPymYtd + trc_TxbAnnBonInc;
2476    -- Threshold Check
2477       IF trc_TxbAnnPymInc >= trc_Threshold THEN
2478          hr_utility.set_location('py_za_tx_01032002.BasCalc',20);
2479       -- Tax Liability
2480          trc_TotLibAP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnPymInc);
2481          trc_LibFyAP  := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibAB);
2482          trc_TotLibAP := greatest(trc_TotLibAP,trc_TotLibAB);
2483          trc_LibFpAP  := trc_LibFyAP - bal_TX_ON_AP_YTD;
2484       ELSE
2485          hr_utility.set_location('py_za_tx_01032002.BasCalc',21);
2486          NULL;
2487       END IF;
2488    ELSE
2489       hr_utility.set_location('py_za_tx_01032002.BasCalc',22);
2490       NULL;
2491    END IF;
2492 
2493 -- Net Pay Validation
2494 --
2495    py_za_tx_utl_01032002.ValidateTaxOns;
2496 
2497    -- Deemed Remuneration
2498    WrtHrTrc('trc_TxbDmdRmn:    '||to_char(trc_TxbDmdRmn));
2499    WrtHrTrc('trc_TotLibDR:     '||to_char(trc_TotLibDR));
2500    WrtHrTrc('trc_LibFyDR:      '||to_char(trc_LibFyDR));
2501    WrtHrTrc('trc_LibFpDR:      '||to_char(trc_LibFpDR));
2502    -- Base Income
2503    WrtHrTrc('trc_BseErn:       '||to_char(trc_BseErn));
2504    WrtHrTrc('trc_TxbBseInc:    '||to_char(trc_TxbBseInc));
2505    WrtHrTrc('trc_TotLibBse:    '||to_char(trc_TotLibBse));
2506    -- Normal Income
2507    WrtHrTrc('trc_NorIncYtd:    '||to_char(trc_NorIncYtd));
2508    WrtHrTrc('trc_NorIncPtd:    '||to_char(trc_NorIncPtd));
2509    WrtHrTrc('trc_NorErn:       '||to_char(trc_NorErn));
2510    WrtHrTrc('trc_TxbNorInc:    '||to_char(trc_TxbNorInc));
2511    WrtHrTrc('trc_TotLibNI:     '||to_char(trc_TotLibNI));
2512    WrtHrTrc('trc_LibFyNI:      '||to_char(trc_LibFyNI));
2513    WrtHrTrc('trc_LibFpNI:      '||to_char(trc_LibFpNI));
2514    -- Fringe Benefits
2515    WrtHrTrc('trc_FrnBenYtd:    '||to_char(trc_FrnBenYtd));
2516    WrtHrTrc('trc_FrnBenPtd:    '||to_char(trc_FrnBenPtd));
2517    WrtHrTrc('trc_FrnBenErn:    '||to_char(trc_FrnBenErn));
2518    WrtHrTrc('trc_TxbFrnInc:    '||to_char(trc_TxbFrnInc));
2519    WrtHrTrc('trc_TotLibFB:     '||to_char(trc_TotLibFB));
2520    WrtHrTrc('trc_LibFyFB:      '||to_char(trc_LibFyFB));
2521    WrtHrTrc('trc_LibFpFB:      '||to_char(trc_LibFpFB));
2522    -- Travel Allowance
2523    WrtHrTrc('trc_TrvAllYtd:    '||to_char(trc_TrvAllYtd));
2524    WrtHrTrc('trc_TrvAllPtd:    '||to_char(trc_TrvAllPtd));
2525    WrtHrTrc('trc_TrvAllErn:    '||to_char(trc_TrvAllErn));
2526    WrtHrTrc('trc_TxbTrvInc:    '||to_char(trc_TxbTrvInc));
2527    WrtHrTrc('trc_TotLibTA:     '||to_char(trc_TotLibTA));
2528    WrtHrTrc('trc_LibFyTA:      '||to_char(trc_LibFyTA));
2529    WrtHrTrc('trc_LibFpTA:      '||to_char(trc_LibFpTA));
2530    -- Bonus Provision
2531    WrtHrTrc('trc_BonProYtd:    '||to_char(trc_BonProYtd));
2532    WrtHrTrc('trc_BonProPtd:    '||to_char(trc_BonProPtd));
2533    WrtHrTrc('trc_BonProErn:    '||to_char(trc_BonProErn));
2534    WrtHrTrc('trc_TxbBonProInc: '||to_char(trc_TxbBonProInc));
2535    WrtHrTrc('trc_TotLibBP:     '||to_char(trc_TotLibBP));
2536    WrtHrTrc('trc_LibFyBP:      '||to_char(trc_LibFyBP));
2537    WrtHrTrc('trc_LibFpBP:      '||to_char(trc_LibFpBP));
2538    -- Annual Bonus
2539    WrtHrTrc('trc_AnnBonYtd:    '||to_char(trc_AnnBonYtd));
2540    WrtHrTrc('trc_AnnBonPtd:    '||to_char(trc_AnnBonPtd));
2541    WrtHrTrc('trc_AnnBonErn:    '||to_char(trc_AnnBonErn));
2542    WrtHrTrc('trc_TxbAnnBonInc: '||to_char(trc_TxbAnnBonInc));
2543    WrtHrTrc('trc_TotLibAB:     '||to_char(trc_TotLibAB));
2544    WrtHrTrc('trc_LibFyAB:      '||to_char(trc_LibFyAB));
2545    WrtHrTrc('trc_LibFpAB:      '||to_char(trc_LibFpAB));
2546    -- Annual Payments
2547    WrtHrTrc('trc_AnnPymYtd:    '||to_char(trc_AnnPymYtd));
2548    WrtHrTrc('trc_AnnPymPtd:    '||to_char(trc_AnnPymPtd));
2549    WrtHrTrc('trc_AnnPymErn:    '||to_char(trc_AnnPymErn));
2550    WrtHrTrc('trc_TxbAnnPymInc: '||to_char(trc_TxbAnnPymInc));
2551    WrtHrTrc('trc_TotLibAP:     '||to_char(trc_TotLibAP));
2552    WrtHrTrc('trc_LibFyAP:      '||to_char(trc_LibFyAP));
2553    WrtHrTrc('trc_LibFpAP:      '||to_char(trc_LibFpAP));
2554    -- Pubilc Office Allowance
2555    WrtHrTrc('trc_PblOffYtd:    '||to_char(trc_PblOffYtd));
2556    WrtHrTrc('trc_PblOffPtd:    '||to_char(trc_PblOffPtd));
2557    WrtHrTrc('trc_PblOffErn:    '||to_char(trc_PblOffErn));
2558    WrtHrTrc('trc_LibFyPO:      '||to_char(trc_LibFyPO));
2559    WrtHrTrc('trc_LibFpPO:      '||to_char(trc_LibFpPO));
2560 
2561 EXCEPTION
2562    WHEN OTHERS THEN
2563       IF xpt_Msg = 'No Error' THEN
2564          xpt_Msg := 'BasCalc: '||TO_CHAR(SQLCODE);
2565       END IF;
2566       RAISE xpt_E;
2567 END BasCalc;
2568 
2569 -------------------------------------------------------------------------------
2570 -- CalCalc                                                                   --
2571 -- Pre-Earnings Tax Calculation                                              --
2572 -------------------------------------------------------------------------------
2573 PROCEDURE CalCalc AS
2574 -- Variables
2575 --
2576    l_Np       BALANCE;
2577 
2578 BEGIN
2579    hr_utility.set_location('py_za_tx_01032002.CalCalc',1);
2580 -- Identify the calculation
2581 --
2582    trc_CalTyp := 'CalCalc';
2583 
2584 -- Update Global Balance Values with correct TAXABLE values
2585 --
2586    py_za_tx_utl_01032002.TrvAll;
2587 
2588    hr_utility.set_location('py_za_tx_01032002.CalCalc',2);
2589 
2590 -- Calendar Ytd Taxable Income
2591 --
2592    trc_TxbIncYtd :=
2593       ( bal_AST_PRCHD_RVAL_NRFI_CYTD + bal_AST_PRCHD_RVAL_RFI_CYTD
2594       + bal_BUR_AND_SCH_NRFI_CYTD    + bal_BUR_AND_SCH_RFI_CYTD
2595       + bal_COMM_NRFI_CYTD           + bal_COMM_RFI_CYTD
2596       + bal_COMP_ALL_NRFI_CYTD       + bal_COMP_ALL_RFI_CYTD
2597       + bal_ENT_ALL_NRFI_CYTD        + bal_ENT_ALL_RFI_CYTD
2598       + bal_FREE_ACCOM_NRFI_CYTD     + bal_FREE_ACCOM_RFI_CYTD
2599       + bal_FREE_SERV_NRFI_CYTD      + bal_FREE_SERV_RFI_CYTD
2600       + bal_LOW_LOANS_NRFI_CYTD      + bal_LOW_LOANS_RFI_CYTD
2601       + bal_MLS_AND_VOUCH_NRFI_CYTD  + bal_MLS_AND_VOUCH_RFI_CYTD
2602       + bal_MED_PAID_NRFI_CYTD       + bal_MED_PAID_RFI_CYTD
2603       + bal_OTHER_TXB_ALL_NRFI_CYTD  + bal_OTHER_TXB_ALL_RFI_CYTD
2604       + bal_OVTM_NRFI_CYTD           + bal_OVTM_RFI_CYTD
2605       + bal_PYM_DBT_NRFI_CYTD        + bal_PYM_DBT_RFI_CYTD
2606       + bal_RES_TRD_NRFI_CYTD        + bal_RES_TRD_RFI_CYTD
2607       + bal_RGT_AST_NRFI_CYTD        + bal_RGT_AST_RFI_CYTD
2608       + bal_TXB_INC_NRFI_CYTD        + bal_TXB_INC_RFI_CYTD
2609       + bal_TXB_PEN_NRFI_CYTD        + bal_TXB_PEN_RFI_CYTD
2610       + bal_TEL_ALL_NRFI_CYTD        + bal_TEL_ALL_RFI_CYTD
2611       + bal_TOOL_ALL_NRFI_CYTD       + bal_TOOL_ALL_RFI_CYTD
2612       + bal_TA_NRFI_CYTD             + bal_TA_RFI_CYTD
2613       + bal_USE_VEH_NRFI_CYTD        + bal_USE_VEH_RFI_CYTD
2614       );
2615 
2616 -- If there is no Income Execute the Base calculation
2617 --
2618    IF trc_TxbIncYtd = 0 THEN
2619       hr_utility.set_location('py_za_tx_01032002.CalCalc',3);
2620       BasCalc;
2621    ELSE -- continue CalCalc
2622       hr_utility.set_location('py_za_tx_01032002.CalCalc',4);
2623    -- Site Factor
2624    --
2625       trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01032002.DaysWorked;
2626 
2627    -- Rebates
2628       py_za_tx_utl_01032002.SetRebates;
2629 
2630    -- Abatements
2631       py_za_tx_utl_01032002.Abatements;
2632 
2633       hr_utility.set_location('py_za_tx_01032002.CalCalc',5);
2634 
2635    -- Deemed Remuneration
2636    --
2637       -- Run Deemed Remuneration
2638       trc_DmdRmnRun := bal_DIR_DMD_RMN_ITD;
2639 
2640       -- Skip the calculation if there is No Income
2641       IF trc_DmdRmnRun <> 0 THEN
2642          hr_utility.set_location('py_za_tx_01032002.CalCalc',6);
2643          -- Taxable Deemed Remuneration
2644          trc_TxbDmdRmn := trc_DmdRmnRun;
2645          -- Threshold Check
2646          IF trc_TxbDmdRmn >= trc_Threshold THEN
2647             hr_utility.set_location('py_za_tx_01032002.CalCalc',7);
2648          -- Tax Liability
2649             trc_TotLibDR := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbDmdRmn);
2650          ELSE
2651             hr_utility.set_location('py_za_tx_01032002.CalCalc',8);
2652             trc_TotLibDR := 0;
2653          END IF;
2654       ELSE
2655          hr_utility.set_location('py_za_tx_01032002.CalCalc',9);
2656          trc_TotLibDR := 0;
2657       END IF;
2658 
2659       hr_utility.set_location('py_za_tx_01032002.CalCalc',10);
2660 
2661    -- Base Earnings
2662    --
2663       -- Base Earnings
2664       trc_BseErn := trc_TxbIncYtd * trc_SitFactor;
2665       -- Taxable Base Income
2666       trc_TxbBseInc := trc_BseErn - trc_PerTotAbm;
2667       -- Threshold Check
2668       IF trc_TxbBseInc >= trc_Threshold THEN
2669          hr_utility.set_location('py_za_tx_01032002.CalCalc',11);
2670          -- Tax Liability
2671          trc_TotLibBse := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbBseInc);
2672          trc_TotLibBse := greatest(trc_TotLibBse,trc_TotLibDR);
2673       ELSE
2674          hr_utility.set_location('py_za_tx_01032002.CalCalc',12);
2675          trc_TotLibBse := trc_TotLibDR;
2676       END IF;
2677 
2678       hr_utility.set_location('py_za_tx_01032002.CalCalc',13);
2679 
2680    -- Annual Bonus
2681    --
2682       -- Ytd Annual Bonus
2683       trc_AnnBonYtd := bal_AB_NRFI_YTD + bal_AB_RFI_YTD;
2684       -- Skip the calculation if there is No Income
2685       IF trc_AnnBonYtd <> 0 THEN
2686          hr_utility.set_location('py_za_tx_01032002.CalCalc',14);
2687          -- Annual Bonus Earnings
2688          trc_AnnBonErn := trc_AnnBonYtd + trc_BseErn;
2689          -- Taxable Annual Bonus Income
2690          trc_TxbAnnBonInc := trc_AnnBonErn - trc_AnnTotAbm;
2691          -- Threshold Check
2692          IF trc_TxbAnnBonInc >= trc_Threshold THEN
2693             hr_utility.set_location('py_za_tx_01032002.CalCalc',15);
2694             -- Tax Liability
2695             trc_TotLibAB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnBonInc);
2696             trc_LibFyAB := trc_TotLibAB - least(trc_TotLibAB,trc_TotLibBse);
2697             trc_TotLibAB := greatest(trc_TotLibAB,trc_TotLibBse);
2698             -- Check Bonus Provision
2699             IF bal_BP_YTD <> 0 THEN
2700                hr_utility.set_location('py_za_tx_01032002.CalCalc',16);
2701                -- Check Bonus Provision Frequency
2702                IF dbi_BP_TX_RCV = 'A' THEN
2703                   hr_utility.set_location('py_za_tx_01032002.CalCalc',17);
2704                   trc_LibFpAB := 0;
2705                ELSE
2706                   hr_utility.set_location('py_za_tx_01032002.CalCalc',18);
2707                   trc_LibFpAB := trc_LibFyAB - ( bal_TX_ON_BP_YTD
2708                                                + bal_TX_ON_AB_YTD);
2709                END IF;
2710             ELSE
2711                hr_utility.set_location('py_za_tx_01032002.CalCalc',19);
2712                trc_LibFpAB := trc_LibFyAB - bal_TX_ON_AB_YTD;
2713             END IF;
2714          ELSE
2715             hr_utility.set_location('py_za_tx_01032002.CalCalc',20);
2716             trc_TotLibAB := trc_TotLibBse;
2717          END IF;
2718       ELSE
2719          hr_utility.set_location('py_za_tx_01032002.CalCalc',21);
2720          trc_AnnBonErn    := trc_BseErn;
2721          trc_TxbAnnBonInc := trc_TxbBseInc;
2722          trc_TotLibAB     := trc_TotLibBse;
2723       END IF;
2724 
2725       hr_utility.set_location('py_za_tx_01032002.CalCalc',22);
2726 
2727    -- Annual Payments
2728    --
2729       -- Ytd Annual Payments
2730       trc_AnnPymYtd :=
2731          ( bal_AA_PRCHD_RVAL_NRFI_YTD   + bal_AA_PRCHD_RVAL_RFI_YTD
2732          + bal_ANN_BUR_AND_SCH_NRFI_YTD + bal_ANN_BUR_AND_SCH_RFI_YTD
2733          + bal_AC_NRFI_YTD              + bal_AC_RFI_YTD
2734          + bal_ANU_FRM_RET_FND_NRFI_YTD + bal_ANU_FRM_RET_FND_RFI_YTD
2735          + bal_ARES_TRD_NRFI_YTD        + bal_ARES_TRD_RFI_YTD
2736          + bal_PRCH_ANU_TXB_NRFI_YTD    + bal_PRCH_ANU_TXB_RFI_YTD
2737          + bal_TXB_AP_NRFI_YTD          + bal_TXB_AP_RFI_YTD
2738          );
2739       -- Skip the calculation if there is No Income
2740       IF trc_AnnPymYtd <> 0 THEN
2741          hr_utility.set_location('py_za_tx_01032002.CalCalc',23);
2742          -- Annual Payments Earnings
2743          trc_AnnPymErn := trc_AnnPymYtd + trc_AnnBonErn;
2744          -- Taxable Annual Payments Income
2745          trc_TxbAnnPymInc := trc_AnnPymErn - trc_AnnTotAbm;
2746          -- Threshold Check
2747          IF trc_TxbAnnPymInc >= trc_Threshold THEN
2748             hr_utility.set_location('py_za_tx_01032002.CalCalc',24);
2749             -- Tax Liability
2750             trc_TotLibAP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnPymInc);
2751             trc_LibFyAP  := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibAB);
2752             trc_TotLibAP := greatest(trc_TotLibAP,trc_TotLibAB);
2753             trc_LibFpAP  := trc_LibFyAP - bal_TX_ON_AP_YTD;
2754          ELSE
2755             hr_utility.set_location('py_za_tx_01032002.CalCalc',25);
2756             trc_TotLibAP := trc_TotLibAB;
2757          END IF;
2758       ELSE
2759          hr_utility.set_location('py_za_tx_01032002.CalCalc',26);
2760          trc_AnnPymErn    := trc_AnnBonErn;
2761          trc_TxbAnnPymInc := trc_TxbAnnBonInc;
2762          trc_TotLibAP     := trc_TotLibAB;
2763       END IF;
2764 
2765    -- Net pay Validation
2766    --
2767       py_za_tx_utl_01032002.ValidateTaxOns;
2768 
2769       -- Deemed Remuneration
2770       WrtHrTrc('trc_TxbDmdRmn:    '||to_char(trc_TxbDmdRmn));
2771       WrtHrTrc('trc_TotLibDR:     '||to_char(trc_TotLibDR));
2772       WrtHrTrc('trc_LibFyDR:      '||to_char(trc_LibFyDR));
2773       WrtHrTrc('trc_LibFpDR:      '||to_char(trc_LibFpDR));
2774       -- Base Income
2775       WrtHrTrc('trc_BseErn:       '||to_char(trc_BseErn));
2776       WrtHrTrc('trc_TxbBseInc:    '||to_char(trc_TxbBseInc));
2777       WrtHrTrc('trc_TotLibBse:    '||to_char(trc_TotLibBse));
2778       -- Normal Income
2779       WrtHrTrc('trc_NorIncYtd:    '||to_char(trc_NorIncYtd));
2780       WrtHrTrc('trc_NorIncPtd:    '||to_char(trc_NorIncPtd));
2781       WrtHrTrc('trc_NorErn:       '||to_char(trc_NorErn));
2782       WrtHrTrc('trc_TxbNorInc:    '||to_char(trc_TxbNorInc));
2783       WrtHrTrc('trc_TotLibNI:     '||to_char(trc_TotLibNI));
2784       WrtHrTrc('trc_LibFyNI:      '||to_char(trc_LibFyNI));
2785       WrtHrTrc('trc_LibFpNI:      '||to_char(trc_LibFpNI));
2786       -- Fringe Benefits
2787       WrtHrTrc('trc_FrnBenYtd:    '||to_char(trc_FrnBenYtd));
2788       WrtHrTrc('trc_FrnBenPtd:    '||to_char(trc_FrnBenPtd));
2789       WrtHrTrc('trc_FrnBenErn:    '||to_char(trc_FrnBenErn));
2790       WrtHrTrc('trc_TxbFrnInc:    '||to_char(trc_TxbFrnInc));
2791       WrtHrTrc('trc_TotLibFB:     '||to_char(trc_TotLibFB));
2792       WrtHrTrc('trc_LibFyFB:      '||to_char(trc_LibFyFB));
2793       WrtHrTrc('trc_LibFpFB:      '||to_char(trc_LibFpFB));
2794       -- Travel Allowance
2795       WrtHrTrc('trc_TrvAllYtd:    '||to_char(trc_TrvAllYtd));
2796       WrtHrTrc('trc_TrvAllPtd:    '||to_char(trc_TrvAllPtd));
2797       WrtHrTrc('trc_TrvAllErn:    '||to_char(trc_TrvAllErn));
2798       WrtHrTrc('trc_TxbTrvInc:    '||to_char(trc_TxbTrvInc));
2799       WrtHrTrc('trc_TotLibTA:     '||to_char(trc_TotLibTA));
2800       WrtHrTrc('trc_LibFyTA:      '||to_char(trc_LibFyTA));
2801       WrtHrTrc('trc_LibFpTA:      '||to_char(trc_LibFpTA));
2802       -- Bonus Provision
2803       WrtHrTrc('trc_BonProYtd:    '||to_char(trc_BonProYtd));
2804       WrtHrTrc('trc_BonProPtd:    '||to_char(trc_BonProPtd));
2805       WrtHrTrc('trc_BonProErn:    '||to_char(trc_BonProErn));
2806       WrtHrTrc('trc_TxbBonProInc: '||to_char(trc_TxbBonProInc));
2807       WrtHrTrc('trc_TotLibBP:     '||to_char(trc_TotLibBP));
2808       WrtHrTrc('trc_LibFyBP:      '||to_char(trc_LibFyBP));
2809       WrtHrTrc('trc_LibFpBP:      '||to_char(trc_LibFpBP));
2810       -- Annual Bonus
2811       WrtHrTrc('trc_AnnBonYtd:    '||to_char(trc_AnnBonYtd));
2812       WrtHrTrc('trc_AnnBonPtd:    '||to_char(trc_AnnBonPtd));
2813       WrtHrTrc('trc_AnnBonErn:    '||to_char(trc_AnnBonErn));
2814       WrtHrTrc('trc_TxbAnnBonInc: '||to_char(trc_TxbAnnBonInc));
2815       WrtHrTrc('trc_TotLibAB:     '||to_char(trc_TotLibAB));
2816       WrtHrTrc('trc_LibFyAB:      '||to_char(trc_LibFyAB));
2817       WrtHrTrc('trc_LibFpAB:      '||to_char(trc_LibFpAB));
2818       -- Annual Payments
2819       WrtHrTrc('trc_AnnPymYtd:    '||to_char(trc_AnnPymYtd));
2820       WrtHrTrc('trc_AnnPymPtd:    '||to_char(trc_AnnPymPtd));
2821       WrtHrTrc('trc_AnnPymErn:    '||to_char(trc_AnnPymErn));
2822       WrtHrTrc('trc_TxbAnnPymInc: '||to_char(trc_TxbAnnPymInc));
2823       WrtHrTrc('trc_TotLibAP:     '||to_char(trc_TotLibAP));
2824       WrtHrTrc('trc_LibFyAP:      '||to_char(trc_LibFyAP));
2825       WrtHrTrc('trc_LibFpAP:      '||to_char(trc_LibFpAP));
2826       -- Pubilc Office Allowance
2827       WrtHrTrc('trc_PblOffYtd:    '||to_char(trc_PblOffYtd));
2828       WrtHrTrc('trc_PblOffPtd:    '||to_char(trc_PblOffPtd));
2829       WrtHrTrc('trc_PblOffErn:    '||to_char(trc_PblOffErn));
2830       WrtHrTrc('trc_LibFyPO:      '||to_char(trc_LibFyPO));
2831       WrtHrTrc('trc_LibFpPO:      '||to_char(trc_LibFpPO));
2832 
2833    END IF;
2834 
2835    hr_utility.set_location('py_za_tx_01032002.CalCalc',27);
2836 
2837 EXCEPTION
2838    WHEN OTHERS THEN
2839       IF xpt_Msg = 'No Error' THEN
2840          xpt_Msg := 'CalCalc: '||TO_CHAR(SQLCODE);
2841       END IF;
2842       RAISE xpt_E;
2843 END CalCalc;
2844 -------------------------------------------------------------------------------
2845 -- YtdCalc                                                                   --
2846 -- Pre-Earnings Tax Calculation                                              --
2847 -------------------------------------------------------------------------------
2848 PROCEDURE YtdCalc AS
2849 -- Variables
2850 --
2851    l_Np       BALANCE;
2852 
2853 BEGIN
2854    hr_utility.set_location('py_za_tx_01032002.YtdCalc',1);
2855 -- Identify the calculation
2856 --
2857    trc_CalTyp := 'YtdCalc';
2858 
2859 -- Update Global Balance Values with correct TAXABLE values
2860    py_za_tx_utl_01032002.TrvAll;
2861 
2862    hr_utility.set_location('py_za_tx_01032002.YtdCalc',2);
2863 
2864 -- Ytd Taxable Income
2865    trc_TxbIncYtd :=
2866       ( bal_AST_PRCHD_RVAL_NRFI_YTD + bal_AST_PRCHD_RVAL_RFI_YTD
2867       + bal_BP_YTD
2868       + bal_BUR_AND_SCH_NRFI_YTD    + bal_BUR_AND_SCH_RFI_YTD
2869       + bal_COMM_NRFI_YTD           + bal_COMM_RFI_YTD
2870       + bal_COMP_ALL_NRFI_YTD       + bal_COMP_ALL_RFI_YTD
2871       + bal_ENT_ALL_NRFI_YTD        + bal_ENT_ALL_RFI_YTD
2872       + bal_FREE_ACCOM_NRFI_YTD     + bal_FREE_ACCOM_RFI_YTD
2873       + bal_FREE_SERV_NRFI_YTD      + bal_FREE_SERV_RFI_YTD
2874       + bal_LOW_LOANS_NRFI_YTD      + bal_LOW_LOANS_RFI_YTD
2875       + bal_MLS_AND_VOUCH_NRFI_YTD  + bal_MLS_AND_VOUCH_RFI_YTD
2876       + bal_MED_PAID_NRFI_YTD       + bal_MED_PAID_RFI_YTD
2877       + bal_OTHER_TXB_ALL_NRFI_YTD  + bal_OTHER_TXB_ALL_RFI_YTD
2878       + bal_OVTM_NRFI_YTD           + bal_OVTM_RFI_YTD
2879       + bal_PYM_DBT_NRFI_YTD        + bal_PYM_DBT_RFI_YTD
2880       + bal_RES_TRD_NRFI_YTD        + bal_RES_TRD_RFI_YTD
2881       + bal_RGT_AST_NRFI_YTD        + bal_RGT_AST_RFI_YTD
2882       + bal_TXB_INC_NRFI_YTD        + bal_TXB_INC_RFI_YTD
2883       + bal_TXB_PEN_NRFI_YTD        + bal_TXB_PEN_RFI_YTD
2884       + bal_TEL_ALL_NRFI_YTD        + bal_TEL_ALL_RFI_YTD
2885       + bal_TOOL_ALL_NRFI_YTD       + bal_TOOL_ALL_RFI_YTD
2886       + bal_TA_NRFI_YTD             + bal_TA_RFI_YTD
2887       + bal_USE_VEH_NRFI_YTD        + bal_USE_VEH_RFI_YTD
2888       );
2889 
2890 -- If the Ytd Taxable Income = 0, execute the CalCalc
2891    IF trc_TxbIncYtd = 0 THEN
2892       hr_utility.set_location('py_za_tx_01032002.YtdCalc',3);
2893       CalCalc;
2894    ELSE --Continue YtdCalc
2895       hr_utility.set_location('py_za_tx_01032002.YtdCalc',4);
2896    -- Site Factor
2897       trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01032002.DaysWorked;
2898 
2899    -- Rebates
2900       py_za_tx_utl_01032002.SetRebates;
2901 
2902    -- Abatements
2903       py_za_tx_utl_01032002.Abatements;
2904 
2905       hr_utility.set_location('py_za_tx_01032002.YtdCalc',5);
2906 
2907    -- Deemed Remuneration
2908    --
2909       -- Run Deemed Remuneration
2910       trc_DmdRmnRun := bal_DIR_DMD_RMN_ITD;
2911 
2912       -- Skip the calculation if there is No Income
2913       IF trc_DmdRmnRun <> 0 THEN
2914          hr_utility.set_location('py_za_tx_01032002.YtdCalc',6);
2915          -- Taxable Deemed Remuneration
2916          trc_TxbDmdRmn := trc_DmdRmnRun;
2917          -- Threshold Check
2918          IF trc_TxbDmdRmn >= trc_Threshold THEN
2919             hr_utility.set_location('py_za_tx_01032002.YtdCalc',7);
2920             -- Tax Liability
2921             trc_TotLibDR := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbDmdRmn);
2922          ELSE
2923             hr_utility.set_location('py_za_tx_01032002.YtdCalc',8);
2924             trc_TotLibDR := 0;
2925          END IF;
2926       ELSE
2927          hr_utility.set_location('py_za_tx_01032002.YtdCalc',9);
2928          trc_TotLibDR := 0;
2929       END IF;
2930 
2931       hr_utility.set_location('py_za_tx_01032002.YtdCalc',10);
2932 
2933    -- Base Earnings
2934    --
2935       -- Base Earnings
2936       trc_BseErn := trc_TxbIncYtd * trc_SitFactor;
2937       -- Taxable Base Income
2938       trc_TxbBseInc := trc_BseErn - trc_PerTotAbm;
2939       -- Threshold Check
2940       IF trc_TxbBseInc >= trc_Threshold THEN
2941          hr_utility.set_location('py_za_tx_01032002.YtdCalc',11);
2942          -- Tax Liability
2943          trc_TotLibBse := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbBseInc);
2944          trc_TotLibBse := greatest(trc_TotLibBse,trc_TotLibDR);
2945       ELSE
2946          hr_utility.set_location('py_za_tx_01032002.YtdCalc',12);
2947          trc_TotLibBse := trc_TotLibDR;
2948       END IF;
2949 
2950       hr_utility.set_location('py_za_tx_01032002.YtdCalc',13);
2951 
2952    -- Annual Bonus
2953    --
2954       -- Ytd Annual Bonus
2955       trc_AnnBonYtd := bal_AB_NRFI_YTD + bal_AB_RFI_YTD;
2956       -- Skip the calculation if there is No Income
2957       IF trc_AnnBonYtd <> 0 THEN
2958          hr_utility.set_location('py_za_tx_01032002.YtdCalc',14);
2959          -- Annual Bonus Earnings
2960          trc_AnnBonErn := trc_AnnBonYtd + trc_BseErn;
2961          -- Taxable Annual Bonus Income
2962          trc_TxbAnnBonInc := trc_AnnBonErn - trc_AnnTotAbm;
2963          -- Threshold Check
2964          IF trc_TxbAnnBonInc >= trc_Threshold THEN
2965             hr_utility.set_location('py_za_tx_01032002.YtdCalc',15);
2966             -- Tax Liability
2967             trc_TotLibAB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnBonInc);
2968             trc_LibFyAB  := trc_TotLibAB - least(trc_TotLibAB,trc_TotLibBse);
2969             trc_TotLibAB := greatest(trc_TotLibAB,trc_TotLibBse);
2970             -- Check Bonus Provision
2971             IF bal_BP_YTD <> 0 THEN
2972                hr_utility.set_location('py_za_tx_01032002.YtdCalc',16);
2973                -- Check Bonus Provision Frequency
2974                IF dbi_BP_TX_RCV = 'A' THEN
2975                   hr_utility.set_location('py_za_tx_01032002.YtdCalc',17);
2976                   trc_LibFpAB := 0;
2977                ELSE
2978                   hr_utility.set_location('py_za_tx_01032002.YtdCalc',18);
2979                   trc_LibFpAB := trc_LibFyAB - ( bal_TX_ON_BP_YTD
2980                                                + bal_TX_ON_AB_YTD);
2981                END IF;
2982             ELSE
2983                hr_utility.set_location('py_za_tx_01032002.YtdCalc',19);
2984                trc_LibFpAB := trc_LibFyAB - bal_TX_ON_AB_YTD;
2985             END IF;
2986          ELSE
2987             hr_utility.set_location('py_za_tx_01032002.YtdCalc',20);
2988             trc_TotLibAB := trc_TotLibBse;
2989          END IF;
2990       ELSE
2991          hr_utility.set_location('py_za_tx_01032002.YtdCalc',21);
2992          trc_AnnBonErn    := trc_BseErn;
2993          trc_TxbAnnBonInc := trc_TxbBseInc;
2994          trc_TotLibAB     := trc_TotLibBse;
2995       END IF;
2996 
2997       hr_utility.set_location('py_za_tx_01032002.YtdCalc',22);
2998 
2999    -- Annual Payments
3000    --
3001       -- Ytd Annual Payments
3002       trc_AnnPymYtd :=
3003          ( bal_AA_PRCHD_RVAL_NRFI_YTD   + bal_AA_PRCHD_RVAL_RFI_YTD
3004          + bal_ANN_BUR_AND_SCH_NRFI_YTD + bal_ANN_BUR_AND_SCH_RFI_YTD
3005          + bal_AC_NRFI_YTD              + bal_AC_RFI_YTD
3006          + bal_ANU_FRM_RET_FND_NRFI_YTD + bal_ANU_FRM_RET_FND_RFI_YTD
3007          + bal_ARES_TRD_NRFI_YTD        + bal_ARES_TRD_RFI_YTD
3008          + bal_PRCH_ANU_TXB_NRFI_YTD    + bal_PRCH_ANU_TXB_RFI_YTD
3009          + bal_TXB_AP_NRFI_YTD          + bal_TXB_AP_RFI_YTD
3010          );
3011       -- Skip the calculation if there is No Income
3012       IF trc_AnnPymYtd <> 0 THEN
3013          hr_utility.set_location('py_za_tx_01032002.YtdCalc',23);
3014          -- Annual Payments Earnings
3015          trc_AnnPymErn := trc_AnnPymYtd + trc_AnnBonErn;
3016          -- Taxable Annual Payments Income
3017          trc_TxbAnnPymInc := trc_AnnPymErn - trc_AnnTotAbm;
3018          -- Threshold Check
3019          IF trc_TxbAnnPymInc >= trc_Threshold THEN
3020             hr_utility.set_location('py_za_tx_01032002.YtdCalc',24);
3021             -- Tax Liability
3022             trc_TotLibAP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnPymInc);
3023             trc_LibFyAP  := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibAB);
3024             trc_TotLibAP := greatest(trc_TotLibAP,trc_TotLibAB);
3025             trc_LibFpAP  := trc_LibFyAP - bal_TX_ON_AP_YTD;
3026          ELSE
3027             hr_utility.set_location('py_za_tx_01032002.YtdCalc',25);
3028             trc_TotLibAP := trc_TotLibAB;
3029          END IF;
3030       ELSE
3031          hr_utility.set_location('py_za_tx_01032002.YtdCalc',26);
3032          trc_AnnPymErn    := trc_AnnBonErn;
3033          trc_TxbAnnPymInc := trc_TxbAnnBonInc;
3034          trc_TotLibAP     := trc_TotLibAB;
3035       END IF;
3036 
3037    -- Net Pay validation
3038    --
3039       py_za_tx_utl_01032002.ValidateTaxOns;
3040 
3041       hr_utility.set_location('py_za_tx_01032002.YtdCalc',27);
3042 
3043       -- Deemed Remuneration
3044       WrtHrTrc('trc_TxbDmdRmn:    '||to_char(trc_TxbDmdRmn));
3045       WrtHrTrc('trc_TotLibDR:     '||to_char(trc_TotLibDR));
3046       WrtHrTrc('trc_LibFyDR:      '||to_char(trc_LibFyDR));
3047       WrtHrTrc('trc_LibFpDR:      '||to_char(trc_LibFpDR));
3048       -- Base Income
3049       WrtHrTrc('trc_BseErn:       '||to_char(trc_BseErn));
3050       WrtHrTrc('trc_TxbBseInc:    '||to_char(trc_TxbBseInc));
3051       WrtHrTrc('trc_TotLibBse:    '||to_char(trc_TotLibBse));
3052       -- Normal Income
3053       WrtHrTrc('trc_NorIncYtd:    '||to_char(trc_NorIncYtd));
3054       WrtHrTrc('trc_NorIncPtd:    '||to_char(trc_NorIncPtd));
3055       WrtHrTrc('trc_NorErn:       '||to_char(trc_NorErn));
3056       WrtHrTrc('trc_TxbNorInc:    '||to_char(trc_TxbNorInc));
3057       WrtHrTrc('trc_TotLibNI:     '||to_char(trc_TotLibNI));
3058       WrtHrTrc('trc_LibFyNI:      '||to_char(trc_LibFyNI));
3059       WrtHrTrc('trc_LibFpNI:      '||to_char(trc_LibFpNI));
3060       -- Fringe Benefits
3061       WrtHrTrc('trc_FrnBenYtd:    '||to_char(trc_FrnBenYtd));
3062       WrtHrTrc('trc_FrnBenPtd:    '||to_char(trc_FrnBenPtd));
3063       WrtHrTrc('trc_FrnBenErn:    '||to_char(trc_FrnBenErn));
3064       WrtHrTrc('trc_TxbFrnInc:    '||to_char(trc_TxbFrnInc));
3065       WrtHrTrc('trc_TotLibFB:     '||to_char(trc_TotLibFB));
3066       WrtHrTrc('trc_LibFyFB:      '||to_char(trc_LibFyFB));
3067       WrtHrTrc('trc_LibFpFB:      '||to_char(trc_LibFpFB));
3068       -- Travel Allowance
3069       WrtHrTrc('trc_TrvAllYtd:    '||to_char(trc_TrvAllYtd));
3070       WrtHrTrc('trc_TrvAllPtd:    '||to_char(trc_TrvAllPtd));
3071       WrtHrTrc('trc_TrvAllErn:    '||to_char(trc_TrvAllErn));
3072       WrtHrTrc('trc_TxbTrvInc:    '||to_char(trc_TxbTrvInc));
3073       WrtHrTrc('trc_TotLibTA:     '||to_char(trc_TotLibTA));
3074       WrtHrTrc('trc_LibFyTA:      '||to_char(trc_LibFyTA));
3075       WrtHrTrc('trc_LibFpTA:      '||to_char(trc_LibFpTA));
3076       -- Bonus Provision
3077       WrtHrTrc('trc_BonProYtd:    '||to_char(trc_BonProYtd));
3078       WrtHrTrc('trc_BonProPtd:    '||to_char(trc_BonProPtd));
3079       WrtHrTrc('trc_BonProErn:    '||to_char(trc_BonProErn));
3080       WrtHrTrc('trc_TxbBonProInc: '||to_char(trc_TxbBonProInc));
3081       WrtHrTrc('trc_TotLibBP:     '||to_char(trc_TotLibBP));
3082       WrtHrTrc('trc_LibFyBP:      '||to_char(trc_LibFyBP));
3083       WrtHrTrc('trc_LibFpBP:      '||to_char(trc_LibFpBP));
3084       -- Annual Bonus
3085       WrtHrTrc('trc_AnnBonYtd:    '||to_char(trc_AnnBonYtd));
3086       WrtHrTrc('trc_AnnBonPtd:    '||to_char(trc_AnnBonPtd));
3087       WrtHrTrc('trc_AnnBonErn:    '||to_char(trc_AnnBonErn));
3088       WrtHrTrc('trc_TxbAnnBonInc: '||to_char(trc_TxbAnnBonInc));
3089       WrtHrTrc('trc_TotLibAB:     '||to_char(trc_TotLibAB));
3090       WrtHrTrc('trc_LibFyAB:      '||to_char(trc_LibFyAB));
3091       WrtHrTrc('trc_LibFpAB:      '||to_char(trc_LibFpAB));
3092       -- Annual Payments
3093       WrtHrTrc('trc_AnnPymYtd:    '||to_char(trc_AnnPymYtd));
3094       WrtHrTrc('trc_AnnPymPtd:    '||to_char(trc_AnnPymPtd));
3095       WrtHrTrc('trc_AnnPymErn:    '||to_char(trc_AnnPymErn));
3096       WrtHrTrc('trc_TxbAnnPymInc: '||to_char(trc_TxbAnnPymInc));
3097       WrtHrTrc('trc_TotLibAP:     '||to_char(trc_TotLibAP));
3098       WrtHrTrc('trc_LibFyAP:      '||to_char(trc_LibFyAP));
3099       WrtHrTrc('trc_LibFpAP:      '||to_char(trc_LibFpAP));
3100       -- Pubilc Office Allowance
3101       WrtHrTrc('trc_PblOffYtd:    '||to_char(trc_PblOffYtd));
3102       WrtHrTrc('trc_PblOffPtd:    '||to_char(trc_PblOffPtd));
3103       WrtHrTrc('trc_PblOffErn:    '||to_char(trc_PblOffErn));
3104       WrtHrTrc('trc_LibFyPO:      '||to_char(trc_LibFyPO));
3105       WrtHrTrc('trc_LibFpPO:      '||to_char(trc_LibFpPO));
3106 
3107    END IF;
3108 
3109 EXCEPTION
3110    WHEN OTHERS THEN
3111       IF xpt_Msg = 'No Error' THEN
3112          xpt_Msg := 'YtdCalc: '||TO_CHAR(SQLCODE);
3113       END IF;
3114       RAISE xpt_E;
3115 END YtdCalc;
3116 -------------------------------------------------------------------------------
3117 -- NorCalc                                                                   --
3118 -- Main Tax Calculation for Periodic Income                                  --
3119 -------------------------------------------------------------------------------
3120 PROCEDURE NorCalc AS
3121 -- Variables
3122 --
3123    l_Np       BALANCE DEFAULT 0;
3124 
3125 BEGIN
3126    hr_utility.set_location('py_za_tx_01032002.NorCalc',1);
3127 -- Identify the calculation
3128 --
3129    trc_CalTyp := 'NorCalc';
3130 
3131 -- Update Global Balance Values with correct TAXABLE values
3132 --
3133    bal_TA_RFI_PTD  := bal_TA_RFI_PTD * glb_ZA_TRV_ALL_TX_PRC / 100;
3134    bal_TA_NRFI_PTD := bal_TA_NRFI_PTD * glb_ZA_TRV_ALL_TX_PRC / 100;
3135 
3136    py_za_tx_utl_01032002.TrvAll;
3137 
3138    hr_utility.set_location('py_za_tx_01032002.NorCalc',2);
3139 
3140    bal_PO_RFI_PTD  := bal_PO_RFI_PTD  * glb_ZA_PBL_TX_PRC / 100;
3141    bal_PO_NRFI_PTD := bal_PO_NRFI_PTD * glb_ZA_PBL_TX_PRC / 100;
3142    bal_PO_RFI_YTD  := bal_PO_RFI_YTD  * glb_ZA_PBL_TX_PRC / 100;
3143    bal_PO_NRFI_YTD := bal_PO_NRFI_YTD * glb_ZA_PBL_TX_PRC / 100;
3144 
3145 
3146 
3147 -- PTD Taxable Income
3148 --
3149    trc_TxbIncPtd :=
3150       ( bal_AST_PRCHD_RVAL_NRFI_PTD + bal_AST_PRCHD_RVAL_RFI_PTD
3151       + bal_BP_PTD
3152       + bal_BUR_AND_SCH_NRFI_PTD    + bal_BUR_AND_SCH_RFI_PTD
3153       + bal_COMM_NRFI_PTD           + bal_COMM_RFI_PTD
3154       + bal_COMP_ALL_NRFI_PTD       + bal_COMP_ALL_RFI_PTD
3155       + bal_ENT_ALL_NRFI_PTD        + bal_ENT_ALL_RFI_PTD
3156       + bal_FREE_ACCOM_NRFI_PTD     + bal_FREE_ACCOM_RFI_PTD
3157       + bal_FREE_SERV_NRFI_PTD      + bal_FREE_SERV_RFI_PTD
3158       + bal_LOW_LOANS_NRFI_PTD      + bal_LOW_LOANS_RFI_PTD
3159       + bal_MLS_AND_VOUCH_NRFI_PTD  + bal_MLS_AND_VOUCH_RFI_PTD
3160       + bal_MED_PAID_NRFI_PTD       + bal_MED_PAID_RFI_PTD
3161       + bal_OTHER_TXB_ALL_NRFI_PTD  + bal_OTHER_TXB_ALL_RFI_PTD
3162       + bal_OVTM_NRFI_PTD           + bal_OVTM_RFI_PTD
3163       + bal_PYM_DBT_NRFI_PTD        + bal_PYM_DBT_RFI_PTD
3164       + bal_RES_TRD_NRFI_PTD        + bal_RES_TRD_RFI_PTD
3165       + bal_RGT_AST_NRFI_PTD        + bal_RGT_AST_RFI_PTD
3166       + bal_TXB_INC_NRFI_PTD        + bal_TXB_INC_RFI_PTD
3167       + bal_TXB_PEN_NRFI_PTD        + bal_TXB_PEN_RFI_PTD
3168       + bal_TEL_ALL_NRFI_PTD        + bal_TEL_ALL_RFI_PTD
3169       + bal_TOOL_ALL_NRFI_PTD       + bal_TOOL_ALL_RFI_PTD
3170       + bal_TA_NRFI_PTD             + bal_TA_RFI_PTD
3171       + bal_USE_VEH_NRFI_PTD        + bal_USE_VEH_RFI_PTD
3172       );
3173 
3174 -- Period Factor
3175    py_za_tx_utl_01032002.PeriodFactor;
3176 
3177 -- Possible Periods Factor
3178    py_za_tx_utl_01032002.PossiblePeriodsFactor;
3179 
3180 -- Rebates
3181    py_za_tx_utl_01032002.SetRebates;
3182 
3183 -- Abatements
3184    py_za_tx_utl_01032002.Abatements;
3185 
3186    hr_utility.set_location('py_za_tx_01032002.NorCalc',3);
3187 
3188 -- Deemed Remuneration
3189 --
3190    -- Run Deemed Remuneration
3191    trc_DmdRmnRun := bal_DIR_DMD_RMN_ITD;
3192    -- Skip the calculation if there is No Income
3193    IF trc_DmdRmnRun <> 0 THEN
3194       hr_utility.set_location('py_za_tx_01032002.NorCalc',4);
3195       -- Taxable Deemed Remuneration
3196       trc_TxbDmdRmn := trc_DmdRmnRun;
3197       -- Threshold Check
3198       IF trc_TxbDmdRmn >= trc_Threshold THEN
3199          hr_utility.set_location('py_za_tx_01032002.NorCalc',5);
3200          -- Tax Liability
3201          trc_TotLibDR := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbDmdRmn);
3202          trc_LibFyDR  := trc_TotLibDR - 0;
3203          trc_TotLibDR := greatest(trc_TotLibDR,0);
3204          -- DeAnnualise
3205          trc_LibFpDR := py_za_tx_utl_01032002.DeAnnualise
3206                            ( p_Liab    => trc_LibFyDR
3207                            , p_TxOnYtd => bal_TX_ON_DR_YTD
3208                            , p_TxOnPtd => bal_TX_ON_DR_PTD
3209                            );
3210       ELSE
3211          hr_utility.set_location('py_za_tx_01032002.NorCalc',6);
3212          -- Set Cascade Figures and Refund
3213          trc_TotLibDR   := 0;
3214          trc_LibFpDR    := -1 * bal_TX_ON_DR_YTD;
3215          trc_LibFpDROvr := TRUE;
3216       END IF;
3217    ELSE
3218       hr_utility.set_location('py_za_tx_01032002.NorCalc',7);
3219       -- Set Cascade Figures and Refund
3220       trc_TxbDmdRmn  := 0;
3221       trc_TotLibDR   := 0;
3222       trc_LibFpDR    := -1 * bal_TX_ON_DR_YTD;
3223       trc_LibFpDROvr := TRUE;
3224    END IF;
3225 
3226 -- Normal Income
3227 --
3228    -- Ytd Normal Income
3229    trc_NorIncYtd :=
3230       ( bal_COMM_NRFI_YTD          + bal_COMM_RFI_YTD
3231       + bal_COMP_ALL_NRFI_YTD      + bal_COMP_ALL_RFI_YTD
3232       + bal_ENT_ALL_NRFI_YTD       + bal_ENT_ALL_RFI_YTD
3233       + bal_OTHER_TXB_ALL_NRFI_YTD + bal_OTHER_TXB_ALL_RFI_YTD
3234       + bal_OVTM_NRFI_YTD          + bal_OVTM_RFI_YTD
3235       + bal_RES_TRD_NRFI_YTD       + bal_RES_TRD_RFI_YTD
3236       + bal_TXB_INC_NRFI_YTD       + bal_TXB_INC_RFI_YTD
3237       + bal_TXB_PEN_NRFI_YTD       + bal_TXB_PEN_RFI_YTD
3238       + bal_TEL_ALL_NRFI_YTD       + bal_TEL_ALL_RFI_YTD
3239       + bal_TOOL_ALL_NRFI_YTD      + bal_TOOL_ALL_RFI_YTD
3240       );
3241 
3242    -- Skip the calculation if there is No Income
3243    IF trc_NorIncYtd <> 0 THEN
3244       hr_utility.set_location('py_za_tx_01032002.NorCalc',8);
3245 
3246       -- Annualise Normal Income
3247       trc_NorErn := py_za_tx_utl_01032002.Annualise
3248          (p_YtdInc => trc_NorIncYtd
3249          ,p_PtdInc => trc_NorIncPtd
3250          );
3251 
3252       -- Taxable Normal Income
3253       trc_TxbNorInc := trc_NorErn - trc_PerTotAbm;
3254 
3255       -- Threshold Check
3256       IF trc_TxbNorInc >= trc_Threshold THEN
3257          hr_utility.set_location('py_za_tx_01032002.NorCalc',9);
3258          -- Tax Liability
3259          trc_TotLibNI := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbNorInc);
3260          trc_LibFyNI  := trc_TotLibNI - least(trc_TotLibNI,trc_TotLibDR);
3261          trc_TotLibNI := greatest(trc_TotLibNI,trc_TotLibDR);
3262          -- DeAnnualise
3263          trc_LibFpNI := py_za_tx_utl_01032002.DeAnnualise
3264                            ( p_Liab    => trc_LibFyNI
3265                            , p_TxOnYtd => bal_TX_ON_NI_YTD
3266                            , p_TxOnPtd => bal_TX_ON_NI_PTD
3267                            );
3268       ELSE
3269          hr_utility.set_location('py_za_tx_01032002.NorCalc',10);
3270          -- Set Cascade Figures and Refund
3271          trc_TotLibNI   := trc_TotLibDR;
3272          trc_LibFpNI    := -1 * bal_TX_ON_NI_YTD;
3273          trc_LibFpNIOvr := TRUE;
3274       END IF;
3275    ELSE
3276       hr_utility.set_location('py_za_tx_01032002.NorCalc',11);
3277       -- Set Cascade Figures and Refund
3278       trc_NorErn     := 0;
3279       trc_TxbNorInc  := 0;
3280       trc_TotLibNI   := trc_TotLibDR;
3281       trc_LibFpNI    := -1 * bal_TX_ON_NI_YTD;
3282       trc_LibFpNIOvr := TRUE;
3283    END IF;
3284 
3285 -- Fringe Benefits
3286 --
3287    -- Ytd Fringe Benefits
3288    trc_FrnBenYtd :=
3289       ( bal_AST_PRCHD_RVAL_NRFI_YTD + bal_AST_PRCHD_RVAL_RFI_YTD
3290       + bal_BUR_AND_SCH_NRFI_YTD    + bal_BUR_AND_SCH_RFI_YTD
3291       + bal_FREE_ACCOM_NRFI_YTD     + bal_FREE_ACCOM_RFI_YTD
3292       + bal_FREE_SERV_NRFI_YTD      + bal_FREE_SERV_RFI_YTD
3293       + bal_LOW_LOANS_NRFI_YTD      + bal_LOW_LOANS_RFI_YTD
3294       + bal_MLS_AND_VOUCH_NRFI_YTD  + bal_MLS_AND_VOUCH_RFI_YTD
3295       + bal_MED_PAID_NRFI_YTD       + bal_MED_PAID_RFI_YTD
3296       + bal_PYM_DBT_NRFI_YTD        + bal_PYM_DBT_RFI_YTD
3297       + bal_RGT_AST_NRFI_YTD        + bal_RGT_AST_RFI_YTD
3298       + bal_USE_VEH_NRFI_YTD        + bal_USE_VEH_RFI_YTD
3299       );
3300 
3301    -- Skip the calculation if there is No Income
3302    IF trc_FrnBenYtd <> 0 THEN
3303       hr_utility.set_location('py_za_tx_01032002.NorCalc',12);
3304 
3305       -- Annualise Fringe Benefits
3306       trc_FrnBenErn := py_za_tx_utl_01032002.Annualise
3307                           ( p_YtdInc => trc_FrnBenYtd
3308                           , p_PtdInc => trc_FrnBenPtd
3309                           ) + trc_NorErn;
3310       -- Taxable Fringe Income
3311       trc_TxbFrnInc := trc_FrnBenErn - trc_PerTotAbm;
3312       -- Threshold Check
3313       IF trc_TxbFrnInc >= trc_Threshold THEN
3314          hr_utility.set_location('py_za_tx_01032002.NorCalc',13);
3315          -- Tax Liability
3316          trc_TotLibFB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbFrnInc);
3317          trc_LibFyFB  := trc_TotLibFB - least(trc_TotLibFB,trc_TotLibNI);
3318          trc_TotLibFB := greatest(trc_TotLibFB,trc_TotLibNI);
3319          -- DeAnnualise
3320          trc_LibFpFB := py_za_tx_utl_01032002.DeAnnualise
3321                            ( trc_LibFyFB
3322                            , bal_TX_ON_FB_YTD
3323                            , bal_TX_ON_FB_PTD
3324                            );
3325       ELSE
3326          hr_utility.set_location('py_za_tx_01032002.NorCalc',14);
3327          -- Set Cascade Figures and Refund
3328          trc_TotLibFB   := trc_TotLibNI;
3329          trc_LibFpFB    := -1 * bal_TX_ON_FB_YTD;
3330          trc_LibFpFBOvr := TRUE;
3331       END IF;
3332    ELSE
3333       hr_utility.set_location('py_za_tx_01032002.NorCalc',15);
3334       -- Set Cascade Figures and Refund
3335       trc_FrnBenErn  := trc_NorErn;
3336       trc_TxbFrnInc  := trc_TxbNorInc;
3337       trc_TotLibFB   := trc_TotLibNI;
3338       trc_LibFpFB    := -1 * bal_TX_ON_FB_YTD;
3339       trc_LibFpFBOvr := TRUE;
3340    END IF;
3341 
3342 -- Travel Allowance
3343 --
3344    -- Ytd Travel Allowance
3345    trc_TrvAllYtd := bal_TA_NRFI_YTD + bal_TA_RFI_YTD;
3346    -- Skip the calculation if there is No Income
3347    IF trc_TrvAllYtd <> 0 THEN
3348       hr_utility.set_location('py_za_tx_01032002.NorCalc',16);
3349       -- Ptd Travel Allowance
3350       trc_TrvAllPtd := bal_TA_NRFI_PTD + bal_TA_RFI_PTD;
3351       -- Annualise Travel Allowance
3352       trc_TrvAllErn := py_za_tx_utl_01032002.Annualise
3353                           ( p_YtdInc => trc_TrvAllYtd
3354                           , p_PtdInc => trc_TrvAllPtd
3355                           ) + trc_FrnBenErn;
3356       -- Taxable Travel Income
3357       trc_TxbTrvInc := trc_TrvAllErn - trc_PerTotAbm;
3358       -- Threshold Check
3359       IF trc_TxbTrvInc >= trc_Threshold THEN
3360          hr_utility.set_location('py_za_tx_01032002.NorCalc',17);
3361          -- Tax Liability
3362          trc_TotLibTA := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbTrvInc);
3363          trc_LibFyTA  := trc_TotLibTA - least(trc_TotLibTA,trc_TotLibFB);
3364          trc_TotLibTA := greatest(trc_TotLibTA,trc_TotLibFB);
3365          -- DeAnnualise
3366          trc_LibFpTA := py_za_tx_utl_01032002.DeAnnualise
3367                            ( trc_LibFyTA
3368                            , bal_TX_ON_TA_YTD
3369                            , bal_TX_ON_TA_PTD
3370                            );
3371       ELSE
3372          hr_utility.set_location('py_za_tx_01032002.NorCalc',18);
3373          -- Set Cascade Figures and Refund
3374          trc_TotLibTA   := trc_TotLibFB;
3375          trc_LibFpTA    := -1 * bal_TX_ON_TA_YTD;
3376          trc_LibFpTAOvr := TRUE;
3377       END IF;
3378    ELSE
3379       hr_utility.set_location('py_za_tx_01032002.NorCalc',19);
3380       -- Set Cascade Figures and Refund
3381       trc_TrvAllErn  := trc_FrnBenErn;
3382       trc_TxbTrvInc  := trc_TxbFrnInc;
3383       trc_TotLibTA   := trc_TotLibFB;
3384       trc_LibFpTA    := -1 * bal_TX_ON_TA_YTD;
3385       trc_LibFpTAOvr := TRUE;
3386    END IF;
3387 
3388 -- Bonus Provision
3389 --
3390    -- Ytd Bonus Prvision
3391    trc_BonProYtd := bal_BP_YTD;
3392    -- Skip the calculation if there is No Income
3393    IF trc_BonProYtd <> 0 THEN
3394       hr_utility.set_location('py_za_tx_01032002.NorCalc',20);
3395       -- Annualise Bonus Provision
3396       trc_BonProErn := py_za_tx_utl_01032002.Annualise
3397                           ( p_YtdInc => trc_BonProYtd
3398                           , p_PtdInc => trc_BonProPtd
3399                           ) + trc_TrvAllErn;
3400       -- Taxable Bonus Provision Income
3401       trc_TxbBonProInc := trc_BonProErn - trc_PerTotAbm;
3402       -- Threshold Check
3403       IF trc_TxbBonProInc >= trc_Threshold THEN
3404          hr_utility.set_location('py_za_tx_01032002.NorCalc',21);
3405          -- Tax Liability
3406          trc_TotLibBP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbBonProInc);
3407          trc_LibFyBP  := trc_TotLibBP - least(trc_TotLibBP,trc_TotLibTA);
3408          trc_TotLibBP := greatest(trc_TotLibBP,trc_TotLibTA);
3409          -- DeAnnualise
3410          trc_LibFpBP := py_za_tx_utl_01032002.DeAnnualise
3411                            ( trc_LibFyBP
3412                            , bal_TX_ON_BP_YTD
3413                            , bal_TX_ON_BP_PTD
3414                            );
3415       ELSE
3416          hr_utility.set_location('py_za_tx_01032002.NorCalc',22);
3417          -- Set Cascade Figures and Refund
3418          trc_TotLibBP   := trc_TotLibTA;
3419          trc_LibFpBP    := -1 * bal_TX_ON_BP_YTD;
3420          trc_LibFpBPOvr := TRUE;
3421       END IF;
3422    ELSE
3423       hr_utility.set_location('py_za_tx_01032002.NorCalc',23);
3424       -- Set Cascade Figures and Refund
3425       trc_BonProErn    := trc_TrvAllErn;
3426       trc_TxbBonProInc := trc_TxbTrvInc;
3427       trc_TotLibBP     := trc_TotLibTA;
3428       trc_LibFpBP      := -1 * bal_TX_ON_BP_YTD;
3429       trc_LibFpBPOvr   := TRUE;
3430    END IF;
3431 
3432 -- Annual Bonus
3433 --
3434    -- Ytd Annual Bonus
3435    trc_AnnBonYtd := bal_AB_NRFI_YTD + bal_AB_RFI_YTD;
3436    -- Skip the calculation if there is No Income
3437    IF trc_AnnBonYtd <> 0 THEN
3438       hr_utility.set_location('py_za_tx_01032002.NorCalc',24);
3439       -- Annual Bonus Earnings
3440       trc_AnnBonErn := trc_AnnBonYtd + trc_TrvAllErn;
3441       -- Taxable Annual Bonus Income
3442       trc_TxbAnnBonInc := trc_AnnBonErn - trc_AnnTotAbm;
3443       -- Threshold Check
3444       IF trc_TxbAnnBonInc >= trc_Threshold THEN
3445          hr_utility.set_location('py_za_tx_01032002.NorCalc',25);
3446          -- Tax Liability
3447          trc_TotLibAB := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnBonInc);
3448          trc_LibFyAB  := trc_TotLibAB - least(trc_TotLibAB,trc_TotLibTA);
3449          trc_TotLibAB := greatest(trc_TotLibAB,trc_TotLibTA);
3450          -- Check Bonus Provision
3451          IF trc_BonProYtd <> 0 THEN
3452             hr_utility.set_location('py_za_tx_01032002.NorCalc',26);
3453             -- Check Bonus Provision Frequency
3454             IF dbi_BP_TX_RCV = 'A' THEN
3455                hr_utility.set_location('py_za_tx_01032002.NorCalc',27);
3456                trc_LibFpAB := 0;
3457             ELSE
3458                hr_utility.set_location('py_za_tx_01032002.NorCalc',28);
3459                trc_LibFpAB := trc_LibFyAB - ( bal_TX_ON_BP_YTD
3460                                             + trc_LibFpBP
3461                                             + bal_TX_ON_AB_YTD);
3462             END IF;
3463          ELSE
3464             hr_utility.set_location('py_za_tx_01032002.NorCalc',29);
3465             trc_LibFpAB := trc_LibFyAB - bal_TX_ON_AB_YTD;
3466          END IF;
3467       ELSE
3468          hr_utility.set_location('py_za_tx_01032002.NorCalc',30);
3469          -- Set Cascade Figures and Refund
3470          trc_TotLibAB   := trc_TotLibTA;
3471          trc_LibFpAB    := -1 * bal_TX_ON_AB_YTD;
3472          trc_LibFpABOvr := TRUE;
3473       END IF;
3474    ELSE
3475       hr_utility.set_location('py_za_tx_01032002.NorCalc',31);
3476       -- Set Cascade Figures and Refund
3477       trc_AnnBonErn    := trc_BonProErn;
3478       trc_TxbAnnBonInc := trc_TxbBonProInc;
3479       trc_TotLibAB     := trc_TotLibBP;
3480       trc_LibFpAB      := -1 * bal_TX_ON_AB_YTD;
3481       trc_LibFpABOvr   := TRUE;
3482    END IF;
3483 
3484 -- Annual Payments
3485 --
3486    -- Ytd Annual Payments
3487    trc_AnnPymYtd :=
3488       ( bal_AA_PRCHD_RVAL_NRFI_YTD   + bal_AA_PRCHD_RVAL_RFI_YTD
3489       + bal_ANN_BUR_AND_SCH_NRFI_YTD + bal_ANN_BUR_AND_SCH_RFI_YTD
3490       + bal_AC_NRFI_YTD              + bal_AC_RFI_YTD
3491       + bal_ANU_FRM_RET_FND_NRFI_YTD + bal_ANU_FRM_RET_FND_RFI_YTD
3492       + bal_ARES_TRD_NRFI_YTD        + bal_ARES_TRD_RFI_YTD
3493       + bal_PRCH_ANU_TXB_NRFI_YTD    + bal_PRCH_ANU_TXB_RFI_YTD
3494       + bal_TXB_AP_NRFI_YTD          + bal_TXB_AP_RFI_YTD
3495       );
3496    -- Skip the calculation if there is No Income
3497    IF trc_AnnPymYtd <> 0 THEN
3498       hr_utility.set_location('py_za_tx_01032002.NorCalc',32);
3499       -- Annual Payments Earnings
3500       trc_AnnPymErn := trc_AnnPymYtd + trc_AnnBonErn;
3501       -- Taxable Annual Payments Income
3502       trc_TxbAnnPymInc := trc_AnnPymErn - trc_AnnTotAbm;
3503       -- Threshold Check
3504       IF trc_TxbAnnPymInc >= trc_Threshold THEN
3505          hr_utility.set_location('py_za_tx_01032002.NorCalc',33);
3506          -- Tax Liability
3507          trc_TotLibAP := py_za_tx_utl_01032002.TaxLiability(p_Amt => trc_TxbAnnPymInc);
3508          trc_LibFyAP  := trc_TotLibAP - least(trc_TotLibAP,trc_TotLibAB);
3509          trc_TotLibAP := greatest(trc_TotLibAP,trc_TotLibAB);
3510          hr_utility.set_location('py_za_tx_01032002.NorCalc',34);
3511          trc_LibFpAP  := trc_LibFyAP - bal_TX_ON_AP_YTD;
3512       ELSE
3513          hr_utility.set_location('py_za_tx_01032002.NorCalc',35);
3514          -- Set Cascade Figures and Refund
3515          trc_TotLibAP   := trc_TotLibAB;
3516          trc_LibFpAP    := -1 * bal_TX_ON_AP_YTD;
3517          trc_LibFpAPOvr := TRUE;
3518       END IF;
3519    ELSE
3520       hr_utility.set_location('py_za_tx_01032002.NorCalc',36);
3521       -- Set Cascade Figures and Refund
3522       trc_AnnPymErn    := trc_AnnBonErn;
3523       trc_TxbAnnPymInc := trc_TxbAnnBonInc;
3524       trc_TotLibAP     := trc_TotLibAB;
3525       trc_LibFpAP      := -1 * bal_TX_ON_AP_YTD;
3526       trc_LibFpAPOvr   := TRUE;
3527    END IF;
3528 
3529 -- Public Office Allowance
3530 --
3531    -- Ytd Public Office Allowance
3532    trc_PblOffYtd := bal_PO_NRFI_YTD + bal_PO_RFI_YTD;
3533    -- Skip the calculation if there is No Income
3534    IF trc_PblOffYtd <> 0 THEN
3535       hr_utility.set_location('py_za_tx_01032002.NorCalc',37);
3536       -- Ptd Public Office Allowance
3537       trc_PblOffPtd :=bal_PO_NRFI_PTD + bal_PO_RFI_PTD;
3538       -- Annualise Public Office Allowance
3539       trc_PblOffErn := py_za_tx_utl_01032002.Annualise
3540                           ( p_YtdInc => trc_PblOffYtd
3541                           , p_PtdInc => trc_PblOffPtd
3542                           );
3543       -- Tax Liability
3544       trc_LibFyPO := trc_PblOffErn * glb_ZA_PBL_TX_RTE / 100;
3545       trc_LibFpPO := py_za_tx_utl_01032002.DeAnnualise
3546                         ( trc_LibFyPO
3547                         , bal_TX_ON_PO_YTD
3548                         , bal_TX_ON_PO_PTD
3549                         );
3550    ELSE
3551       hr_utility.set_location('py_za_tx_01032002.NorCalc',38);
3552       -- Set Cascade Figures and Refund
3553       trc_LibFpPO    := -1 * bal_TX_ON_PO_YTD;
3554       trc_LibFpPOOvr := TRUE;
3555    END IF;
3556 
3557 -- Net Pay Validation
3558 --
3559    py_za_tx_utl_01032002.ValidateTaxOns;
3560 
3561    hr_utility.set_location('py_za_tx_01032002.NorCalc',39);
3562 
3563    -- Deemed Remuneration
3564    WrtHrTrc('trc_TxbDmdRmn:    '||to_char(trc_TxbDmdRmn));
3565    WrtHrTrc('trc_TotLibDR:     '||to_char(trc_TotLibDR ));
3566    WrtHrTrc('trc_LibFyDR:      '||to_char(trc_LibFyDR  ));
3567    WrtHrTrc('trc_LibFpDR:      '||to_char(trc_LibFpDR  ));
3568    -- Base Income
3569    WrtHrTrc('trc_BseErn:       '||to_char(trc_BseErn   ));
3570    WrtHrTrc('trc_TxbBseInc:    '||to_char(trc_TxbBseInc));
3571    WrtHrTrc('trc_TotLibBse:    '||to_char(trc_TotLibBse));
3572    -- Normal Income
3573    WrtHrTrc('trc_NorIncYtd:    '||to_char(trc_NorIncYtd));
3574    WrtHrTrc('trc_NorIncPtd:    '||to_char(trc_NorIncPtd));
3575    WrtHrTrc('trc_NorErn:       '||to_char(trc_NorErn   ));
3576    WrtHrTrc('trc_TxbNorInc:    '||to_char(trc_TxbNorInc));
3577    WrtHrTrc('trc_TotLibNI:     '||to_char(trc_TotLibNI ));
3578    WrtHrTrc('trc_LibFyNI:      '||to_char(trc_LibFyNI  ));
3579    WrtHrTrc('trc_LibFpNI:      '||to_char(trc_LibFpNI  ));
3580    -- Fringe Benefits
3581    WrtHrTrc('trc_FrnBenYtd:    '||to_char(trc_FrnBenYtd));
3582    WrtHrTrc('trc_FrnBenPtd:    '||to_char(trc_FrnBenPtd));
3583    WrtHrTrc('trc_FrnBenErn:    '||to_char(trc_FrnBenErn));
3584    WrtHrTrc('trc_TxbFrnInc:    '||to_char(trc_TxbFrnInc));
3585    WrtHrTrc('trc_TotLibFB:     '||to_char(trc_TotLibFB ));
3586    WrtHrTrc('trc_LibFyFB:      '||to_char(trc_LibFyFB  ));
3587    WrtHrTrc('trc_LibFpFB:      '||to_char(trc_LibFpFB  ));
3588    -- Travel Allowance
3589    WrtHrTrc('trc_TrvAllYtd:    '||to_char(trc_TrvAllYtd));
3590    WrtHrTrc('trc_TrvAllPtd:    '||to_char(trc_TrvAllPtd));
3591    WrtHrTrc('trc_TrvAllErn:    '||to_char(trc_TrvAllErn));
3592    WrtHrTrc('trc_TxbTrvInc:    '||to_char(trc_TxbTrvInc));
3593    WrtHrTrc('trc_TotLibTA:     '||to_char(trc_TotLibTA ));
3594    WrtHrTrc('trc_LibFyTA:      '||to_char(trc_LibFyTA  ));
3595    WrtHrTrc('trc_LibFpTA:      '||to_char(trc_LibFpTA  ));
3596    -- Bonus Provision
3597    WrtHrTrc('trc_BonProYtd:    '||to_char(trc_BonProYtd));
3598    WrtHrTrc('trc_BonProPtd:    '||to_char(trc_BonProPtd));
3599    WrtHrTrc('trc_BonProErn:    '||to_char(trc_BonProErn));
3600    WrtHrTrc('trc_TxbBonProInc: '||to_char(trc_TxbBonProInc));
3601    WrtHrTrc('trc_TotLibBP:     '||to_char(trc_TotLibBP ));
3602    WrtHrTrc('trc_LibFyBP:      '||to_char(trc_LibFyBP  ));
3603    WrtHrTrc('trc_LibFpBP:      '||to_char(trc_LibFpBP  ));
3604    -- Annual Bonus
3605    WrtHrTrc('trc_AnnBonYtd:    '||to_char(trc_AnnBonYtd));
3606    WrtHrTrc('trc_AnnBonPtd:    '||to_char(trc_AnnBonPtd));
3607    WrtHrTrc('trc_AnnBonErn:    '||to_char(trc_AnnBonErn));
3608    WrtHrTrc('trc_TxbAnnBonInc: '||to_char(trc_TxbAnnBonInc));
3609    WrtHrTrc('trc_TotLibAB:     '||to_char(trc_TotLibAB ));
3610    WrtHrTrc('trc_LibFyAB:      '||to_char(trc_LibFyAB  ));
3611    WrtHrTrc('trc_LibFpAB:      '||to_char(trc_LibFpAB  ));
3612    -- Annual Payments
3613    WrtHrTrc('trc_AnnPymYtd:    '||to_char(trc_AnnPymYtd));
3614    WrtHrTrc('trc_AnnPymPtd:    '||to_char(trc_AnnPymPtd));
3615    WrtHrTrc('trc_AnnPymErn:    '||to_char(trc_AnnPymErn));
3616    WrtHrTrc('trc_TxbAnnPymInc: '||to_char(trc_TxbAnnPymInc));
3617    WrtHrTrc('trc_TotLibAP:     '||to_char(trc_TotLibAP ));
3618    WrtHrTrc('trc_LibFyAP:      '||to_char(trc_LibFyAP  ));
3619    WrtHrTrc('trc_LibFpAP:      '||to_char(trc_LibFpAP  ));
3620    -- Pubilc Office Allowance
3621    WrtHrTrc('trc_PblOffYtd:    '||to_char(trc_PblOffYtd));
3622    WrtHrTrc('trc_PblOffPtd:    '||to_char(trc_PblOffPtd));
3623    WrtHrTrc('trc_PblOffErn:    '||to_char(trc_PblOffErn));
3624    WrtHrTrc('trc_LibFyPO:      '||to_char(trc_LibFyPO  ));
3625    WrtHrTrc('trc_LibFpPO:      '||to_char(trc_LibFpPO  ));
3626 
3627 EXCEPTION
3628    WHEN OTHERS THEN
3629       IF xpt_Msg = 'No Error' THEN
3630          xpt_Msg := 'NorCalc: '||TO_CHAR(SQLCODE);
3631       END IF;
3632       RAISE xpt_E;
3633 END NorCalc;
3634 -------------------------------------------------------------------------------
3635 -- ZaTxGlb_01032002                                                          --
3636 -- Tax module supporting function                                            --
3637 -------------------------------------------------------------------------------
3638 FUNCTION ZaTxGlb_01032002(
3639 -- Global Values
3640     p_ZA_ADL_TX_RBT         IN NUMBER DEFAULT 0
3641    ,p_ZA_ARR_PF_AN_MX_ABT   IN NUMBER DEFAULT 0
3642    ,p_ZA_ARR_RA_AN_MX_ABT   IN NUMBER DEFAULT 0
3643    ,p_ZA_TRV_ALL_TX_PRC     IN NUMBER DEFAULT 0
3644    ,p_ZA_CC_TX_PRC          IN NUMBER DEFAULT 0
3645    ,p_ZA_LABOUR_BROK_PERC   IN NUMBER DEFAULT 0
3646    ,p_ZA_PF_AN_MX_ABT       IN NUMBER DEFAULT 0
3647    ,p_ZA_PF_MX_PRC          IN NUMBER DEFAULT 0
3648    ,p_ZA_PER_SERV_COMP_PERC IN NUMBER DEFAULT 0
3649    ,p_ZA_PER_SERV_TRST_PERC IN NUMBER DEFAULT 0
3650    ,p_ZA_PRI_TX_RBT         IN NUMBER DEFAULT 0
3651    ,p_ZA_PRI_TX_THRSHLD     IN NUMBER DEFAULT 0
3652    ,p_ZA_PBL_TX_PRC         IN NUMBER DEFAULT 0
3653    ,p_ZA_PBL_TX_RTE         IN NUMBER DEFAULT 0
3654    ,p_ZA_RA_AN_MX_ABT       IN NUMBER DEFAULT 0
3655    ,p_ZA_RA_MX_PRC          IN NUMBER DEFAULT 0
3656    ,p_ZA_SC_TX_THRSHLD      IN NUMBER DEFAULT 0
3657    ,p_ZA_SIT_LIM            IN NUMBER DEFAULT 0
3658    ,p_ZA_TMP_TX_RTE         IN NUMBER DEFAULT 0
3659    ,p_ZA_WRK_DYS_PR_YR      IN NUMBER DEFAULT 0
3660    ) RETURN NUMBER
3661 AS
3662    l_Dum NUMBER := 1;
3663    --id VARCHAR2(30);
3664 
3665 BEGIN
3666    --id := dbms_debug.initialize('JLTX');
3667    --dbms_debug.debug_on;
3668 
3669 -- Initialise Package Globals
3670 -- Global Values
3671    glb_ZA_ADL_TX_RBT         := p_ZA_ADL_TX_RBT;
3672    glb_ZA_ARR_PF_AN_MX_ABT   := p_ZA_ARR_PF_AN_MX_ABT;
3673    glb_ZA_ARR_RA_AN_MX_ABT   := p_ZA_ARR_RA_AN_MX_ABT;
3674    glb_ZA_TRV_ALL_TX_PRC     := p_ZA_TRV_ALL_TX_PRC;
3675    glb_ZA_CC_TX_PRC          := p_ZA_CC_TX_PRC;
3676    glb_ZA_LABOUR_BROK_PERC   := p_ZA_LABOUR_BROK_PERC;
3677    glb_ZA_PF_AN_MX_ABT       := p_ZA_PF_AN_MX_ABT;
3678    glb_ZA_PF_MX_PRC          := p_ZA_PF_MX_PRC;
3679    glb_ZA_PER_SERV_COMP_PERC := p_ZA_PER_SERV_COMP_PERC;
3680    glb_ZA_PER_SERV_TRST_PERC := p_ZA_PER_SERV_TRST_PERC;
3681    glb_ZA_PRI_TX_RBT         := p_ZA_PRI_TX_RBT;
3682    glb_ZA_PRI_TX_THRSHLD     := p_ZA_PRI_TX_THRSHLD;
3683    glb_ZA_PBL_TX_PRC         := p_ZA_PBL_TX_PRC;
3684    glb_ZA_PBL_TX_RTE         := p_ZA_PBL_TX_RTE;
3685    glb_ZA_RA_AN_MX_ABT       := p_ZA_RA_AN_MX_ABT;
3686    glb_ZA_RA_MX_PRC          := p_ZA_RA_MX_PRC;
3687    glb_ZA_SC_TX_THRSHLD      := p_ZA_SC_TX_THRSHLD;
3688    glb_ZA_SIT_LIM            := p_ZA_SIT_LIM;
3689    glb_ZA_TMP_TX_RTE         := p_ZA_TMP_TX_RTE;
3690    glb_ZA_WRK_DYS_PR_YR      := p_ZA_WRK_DYS_PR_YR;
3691 
3692    RETURN l_Dum;
3693 EXCEPTION
3694    WHEN OTHERS THEN
3695       hr_utility.set_message(801, 'ZaTxGlb_01032002: '||TO_CHAR(SQLCODE));
3696       hr_utility.raise_error;
3697 END ZaTxGlb_01032002;
3698 -------------------------------------------------------------------------------
3699 -- ZaTxDbi_01032002                                                          --
3700 -- Tax module supporting function                                            --
3701 -------------------------------------------------------------------------------
3702 FUNCTION ZaTxDbi_01032002(
3703 -- Database Items
3704     p_BP_TX_RCV             IN VARCHAR2 DEFAULT 'B'
3705    ,p_PAY_PROC_PRD_DTE_PD   IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3706    ,p_PER_AGE               IN NUMBER   DEFAULT 0
3707    ,p_PER_DTE_OF_BRTH       IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3708    ,p_SEA_WRK_DYS_WRK       IN NUMBER   DEFAULT 0
3709    ,p_SES_DTE               IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3710    ,p_TX_DIR_NUM            IN VARCHAR2 DEFAULT 'NULL'
3711    ,p_TX_DIR_VAL            IN NUMBER   DEFAULT 0
3712    ,p_TX_STA                IN VARCHAR2 DEFAULT 'X'
3713    ,p_ZA_ACT_END_DTE        IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3714    ,p_ZA_ACT_STRT_DTE       IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3715    ,p_ZA_ASG_TX_RTR_PRD     IN VARCHAR2 DEFAULT 'N'
3716    ,p_ZA_ASG_TX_YR          IN NUMBER   DEFAULT 4712
3717    ,p_ZA_ASG_TX_YR_END      IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3718    ,p_ZA_ASG_TX_YR_STRT     IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3719    ,p_ZA_CUR_PRD_END_DTE    IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3720    ,p_ZA_CUR_PRD_STRT_DTE   IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3721    ,p_ZA_DYS_IN_YR          IN NUMBER   DEFAULT 0
3722    ,p_ZA_PAY_PRDS_LFT       IN NUMBER   DEFAULT 0
3723    ,p_ZA_PAY_PRDS_PER_YR    IN NUMBER   DEFAULT 0
3724    ,p_ZA_TX_YR_END          IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3725    ,p_ZA_TX_YR_STRT         IN DATE     DEFAULT to_date('31-12-4712','DD-MM-YYYY')
3726    ) RETURN NUMBER
3727 AS
3728    l_Dum NUMBER := 1;
3729 
3730 BEGIN
3731 -- Initialise Package Globals
3732 -- Database Items
3733    dbi_BP_TX_RCV           := p_BP_TX_RCV;
3734    dbi_PAY_PROC_PRD_DTE_PD := p_PAY_PROC_PRD_DTE_PD;
3735    dbi_PER_AGE             := p_PER_AGE;
3736    dbi_PER_DTE_OF_BRTH     := p_PER_DTE_OF_BRTH;
3737    dbi_SEA_WRK_DYS_WRK     := p_SEA_WRK_DYS_WRK;
3738    dbi_SES_DTE             := p_SES_DTE;
3739    dbi_TX_DIR_NUM          := p_TX_DIR_NUM;
3740    dbi_TX_DIR_VAL          := p_TX_DIR_VAL;
3741    dbi_TX_STA              := p_TX_STA;
3742    dbi_ZA_ACT_END_DTE      := p_ZA_ACT_END_DTE;
3743    dbi_ZA_ACT_STRT_DTE     := p_ZA_ACT_STRT_DTE;
3744    dbi_ZA_ASG_TX_RTR_PRD   := p_ZA_ASG_TX_RTR_PRD;
3745    dbi_ZA_ASG_TX_YR        := p_ZA_ASG_TX_YR;
3746    dbi_ZA_ASG_TX_YR_END    := p_ZA_ASG_TX_YR_END;
3747    dbi_ZA_ASG_TX_YR_STRT   := p_ZA_ASG_TX_YR_STRT;
3748    dbi_ZA_CUR_PRD_END_DTE  := p_ZA_CUR_PRD_END_DTE;
3749    dbi_ZA_CUR_PRD_STRT_DTE := p_ZA_CUR_PRD_STRT_DTE;
3750    dbi_ZA_DYS_IN_YR        := p_ZA_DYS_IN_YR;
3751    dbi_ZA_PAY_PRDS_LFT     := p_ZA_PAY_PRDS_LFT;
3752    dbi_ZA_PAY_PRDS_PER_YR  := p_ZA_PAY_PRDS_PER_YR;
3753    dbi_ZA_TX_YR_END        := p_ZA_TX_YR_END;
3754    dbi_ZA_TX_YR_STRT       := p_ZA_TX_YR_STRT;
3755 
3756    RETURN l_Dum;
3757 EXCEPTION
3758    WHEN OTHERS THEN
3759       hr_utility.set_message(801, 'ZaTxDbi_01032002: '||TO_CHAR(SQLCODE));
3760       hr_utility.raise_error;
3761 END ZaTxDbi_01032002;
3762 -------------------------------------------------------------------------------
3763 -- ZaTxBal1_01032002                                                         --
3764 -- Tax module supporting function                                            --
3765 -------------------------------------------------------------------------------
3766 FUNCTION ZaTxBal1_01032002(
3767 -- Balances
3768      p_ANN_ARR_PF_CMTD                     IN NUMBER DEFAULT 0
3769    , p_ANN_ARR_PF_CYTD                     IN NUMBER DEFAULT 0
3770    , p_ANN_ARR_PF_RUN                      IN NUMBER DEFAULT 0
3771    , p_ANN_ARR_PF_PTD                      IN NUMBER DEFAULT 0
3772    , p_ANN_ARR_PF_YTD                      IN NUMBER DEFAULT 0
3773    , p_ANN_ARR_RA_CMTD                     IN NUMBER DEFAULT 0
3774    , p_ANN_ARR_RA_CYTD                     IN NUMBER DEFAULT 0
3775    , p_ANN_ARR_RA_RUN                      IN NUMBER DEFAULT 0
3776    , p_ANN_ARR_RA_PTD                      IN NUMBER DEFAULT 0
3777    , p_ANN_ARR_RA_YTD                      IN NUMBER DEFAULT 0
3778    , p_AA_PRCHD_RVAL_NRFI_CMTD             IN NUMBER DEFAULT 0
3779    , p_AA_PRCHD_RVAL_NRFI_RUN              IN NUMBER DEFAULT 0
3780    , p_AA_PRCHD_RVAL_NRFI_PTD              IN NUMBER DEFAULT 0
3781    , p_AA_PRCHD_RVAL_NRFI_YTD              IN NUMBER DEFAULT 0
3782    , p_AA_PRCHD_RVAL_RFI_CMTD              IN NUMBER DEFAULT 0
3783    , p_AA_PRCHD_RVAL_RFI_RUN               IN NUMBER DEFAULT 0
3784    , p_AA_PRCHD_RVAL_RFI_PTD               IN NUMBER DEFAULT 0
3785    , p_AA_PRCHD_RVAL_RFI_YTD               IN NUMBER DEFAULT 0
3786    , p_AB_NRFI_CMTD                        IN NUMBER DEFAULT 0
3787    , p_AB_NRFI_RUN                         IN NUMBER DEFAULT 0
3788    , p_AB_NRFI_PTD                         IN NUMBER DEFAULT 0
3789    , p_AB_NRFI_YTD                         IN NUMBER DEFAULT 0
3790    , p_AB_RFI_CMTD                         IN NUMBER DEFAULT 0
3791    , p_AB_RFI_RUN                          IN NUMBER DEFAULT 0
3792    , p_AB_RFI_PTD                          IN NUMBER DEFAULT 0
3793    , p_AB_RFI_YTD                          IN NUMBER DEFAULT 0
3794    , p_ANN_BUR_AND_SCH_NRFI_CMTD           IN NUMBER DEFAULT 0
3795    , p_ANN_BUR_AND_SCH_NRFI_RUN            IN NUMBER DEFAULT 0
3796    , p_ANN_BUR_AND_SCH_NRFI_PTD            IN NUMBER DEFAULT 0
3797    , p_ANN_BUR_AND_SCH_NRFI_YTD            IN NUMBER DEFAULT 0
3798    , p_ANN_BUR_AND_SCH_RFI_CMTD            IN NUMBER DEFAULT 0
3799    , p_ANN_BUR_AND_SCH_RFI_RUN             IN NUMBER DEFAULT 0
3800    , p_ANN_BUR_AND_SCH_RFI_PTD             IN NUMBER DEFAULT 0
3801    , p_ANN_BUR_AND_SCH_RFI_YTD             IN NUMBER DEFAULT 0
3802    , p_AC_NRFI_CMTD                        IN NUMBER DEFAULT 0
3803    , p_AC_NRFI_RUN                         IN NUMBER DEFAULT 0
3804    , p_AC_NRFI_PTD                         IN NUMBER DEFAULT 0
3805    , p_AC_NRFI_YTD                         IN NUMBER DEFAULT 0
3806    , p_AC_RFI_CMTD                         IN NUMBER DEFAULT 0
3807    , p_AC_RFI_RUN                          IN NUMBER DEFAULT 0
3808    , p_AC_RFI_PTD                          IN NUMBER DEFAULT 0
3809    , p_AC_RFI_YTD                          IN NUMBER DEFAULT 0
3810    , p_ANN_PF_CMTD                         IN NUMBER DEFAULT 0
3811    , p_ANN_PF_CYTD                         IN NUMBER DEFAULT 0
3812    , p_ANN_PF_RUN                          IN NUMBER DEFAULT 0
3813    , p_ANN_PF_PTD                          IN NUMBER DEFAULT 0
3814    , p_ANN_PF_YTD                          IN NUMBER DEFAULT 0
3815    , p_ARES_TRD_NRFI_CMTD                  IN NUMBER DEFAULT 0
3816    , p_ARES_TRD_NRFI_RUN                   IN NUMBER DEFAULT 0
3817    , p_ARES_TRD_NRFI_PTD                   IN NUMBER DEFAULT 0
3818    , p_ARES_TRD_NRFI_YTD                   IN NUMBER DEFAULT 0
3819    , p_ARES_TRD_RFI_CMTD                   IN NUMBER DEFAULT 0
3820    , p_ARES_TRD_RFI_RUN                    IN NUMBER DEFAULT 0
3821    , p_ARES_TRD_RFI_PTD                    IN NUMBER DEFAULT 0
3822    , p_ARES_TRD_RFI_YTD                    IN NUMBER DEFAULT 0
3823    , p_ANN_RA_CMTD                         IN NUMBER DEFAULT 0
3824    , p_ANN_RA_CYTD                         IN NUMBER DEFAULT 0
3825    , p_ANN_RA_RUN                          IN NUMBER DEFAULT 0
3826    , p_ANN_RA_PTD                          IN NUMBER DEFAULT 0
3827    , p_ANN_RA_YTD                          IN NUMBER DEFAULT 0
3828    , p_ANU_FRM_RET_FND_NRFI_CMTD           IN NUMBER DEFAULT 0
3829    , p_ANU_FRM_RET_FND_NRFI_RUN            IN NUMBER DEFAULT 0
3830    , p_ANU_FRM_RET_FND_NRFI_PTD            IN NUMBER DEFAULT 0
3831    , p_ANU_FRM_RET_FND_NRFI_YTD            IN NUMBER DEFAULT 0
3832    , p_ANU_FRM_RET_FND_RFI_CMTD            IN NUMBER DEFAULT 0
3833    , p_ANU_FRM_RET_FND_RFI_RUN             IN NUMBER DEFAULT 0
3834    , p_ANU_FRM_RET_FND_RFI_PTD             IN NUMBER DEFAULT 0
3835    , p_ANU_FRM_RET_FND_RFI_YTD             IN NUMBER DEFAULT 0
3836    , p_ARR_PF_CMTD                         IN NUMBER DEFAULT 0
3837    , p_ARR_PF_CYTD                         IN NUMBER DEFAULT 0
3838    , p_ARR_PF_PTD                          IN NUMBER DEFAULT 0
3839    , p_ARR_PF_YTD                          IN NUMBER DEFAULT 0
3840    , p_ARR_RA_CMTD                         IN NUMBER DEFAULT 0
3841    , p_ARR_RA_CYTD                         IN NUMBER DEFAULT 0
3842    , p_ARR_RA_PTD                          IN NUMBER DEFAULT 0
3843    , p_ARR_RA_YTD                          IN NUMBER DEFAULT 0
3844    , p_AST_PRCHD_RVAL_NRFI_CMTD            IN NUMBER DEFAULT 0
3845    , p_AST_PRCHD_RVAL_NRFI_CYTD            IN NUMBER DEFAULT 0
3846    , p_AST_PRCHD_RVAL_NRFI_RUN             IN NUMBER DEFAULT 0
3847    , p_AST_PRCHD_RVAL_NRFI_PTD             IN NUMBER DEFAULT 0
3848    , p_AST_PRCHD_RVAL_NRFI_YTD             IN NUMBER DEFAULT 0
3849    , p_AST_PRCHD_RVAL_RFI_CMTD             IN NUMBER DEFAULT 0
3850    , p_AST_PRCHD_RVAL_RFI_CYTD             IN NUMBER DEFAULT 0
3851    , p_AST_PRCHD_RVAL_RFI_RUN              IN NUMBER DEFAULT 0
3852    , p_AST_PRCHD_RVAL_RFI_PTD              IN NUMBER DEFAULT 0
3853    , p_AST_PRCHD_RVAL_RFI_YTD              IN NUMBER DEFAULT 0
3854    ) RETURN NUMBER
3855 AS
3856    l_Dum NUMBER := 1;
3857 
3858 BEGIN
3859 -- Balances
3860    bal_ANN_ARR_PF_CMTD            := p_ANN_ARR_PF_CMTD;
3861    bal_ANN_ARR_PF_CYTD            := p_ANN_ARR_PF_CYTD;
3862    bal_ANN_ARR_PF_RUN             := p_ANN_ARR_PF_RUN;
3863    bal_ANN_ARR_PF_PTD             := p_ANN_ARR_PF_PTD;
3864    bal_ANN_ARR_PF_YTD             := p_ANN_ARR_PF_YTD;
3865    bal_ANN_ARR_RA_CMTD            := p_ANN_ARR_RA_CMTD;
3866    bal_ANN_ARR_RA_CYTD            := p_ANN_ARR_RA_CYTD;
3867    bal_ANN_ARR_RA_RUN             := p_ANN_ARR_RA_RUN;
3868    bal_ANN_ARR_RA_PTD             := p_ANN_ARR_RA_PTD;
3869    bal_ANN_ARR_RA_YTD             := p_ANN_ARR_RA_YTD;
3870    bal_AA_PRCHD_RVAL_NRFI_CMTD    := p_AA_PRCHD_RVAL_NRFI_CMTD;
3871    bal_AA_PRCHD_RVAL_NRFI_RUN     := p_AA_PRCHD_RVAL_NRFI_RUN;
3872    bal_AA_PRCHD_RVAL_NRFI_PTD     := p_AA_PRCHD_RVAL_NRFI_PTD;
3873    bal_AA_PRCHD_RVAL_NRFI_YTD     := p_AA_PRCHD_RVAL_NRFI_YTD;
3874    bal_AA_PRCHD_RVAL_RFI_CMTD     := p_AA_PRCHD_RVAL_RFI_CMTD;
3875    bal_AA_PRCHD_RVAL_RFI_RUN      := p_AA_PRCHD_RVAL_RFI_RUN;
3876    bal_AA_PRCHD_RVAL_RFI_PTD      := p_AA_PRCHD_RVAL_RFI_PTD;
3877    bal_AA_PRCHD_RVAL_RFI_YTD      := p_AA_PRCHD_RVAL_RFI_YTD;
3878    bal_AB_NRFI_CMTD               := p_AB_NRFI_CMTD;
3879    bal_AB_NRFI_RUN                := p_AB_NRFI_RUN;
3880    bal_AB_NRFI_PTD                := p_AB_NRFI_PTD;
3881    bal_AB_NRFI_YTD                := p_AB_NRFI_YTD;
3882    bal_AB_RFI_CMTD                := p_AB_RFI_CMTD;
3883    bal_AB_RFI_RUN                 := p_AB_RFI_RUN;
3884    bal_AB_RFI_PTD                 := p_AB_RFI_PTD;
3885    bal_AB_RFI_YTD                 := p_AB_RFI_YTD;
3886    bal_ANN_BUR_AND_SCH_NRFI_CMTD  := p_ANN_BUR_AND_SCH_NRFI_CMTD;
3887    bal_ANN_BUR_AND_SCH_NRFI_RUN   := p_ANN_BUR_AND_SCH_NRFI_RUN;
3888    bal_ANN_BUR_AND_SCH_NRFI_PTD   := p_ANN_BUR_AND_SCH_NRFI_PTD;
3889    bal_ANN_BUR_AND_SCH_NRFI_YTD   := p_ANN_BUR_AND_SCH_NRFI_YTD;
3890    bal_ANN_BUR_AND_SCH_RFI_CMTD   := p_ANN_BUR_AND_SCH_RFI_CMTD;
3891    bal_ANN_BUR_AND_SCH_RFI_RUN    := p_ANN_BUR_AND_SCH_RFI_RUN;
3892    bal_ANN_BUR_AND_SCH_RFI_PTD    := p_ANN_BUR_AND_SCH_RFI_PTD;
3893    bal_ANN_BUR_AND_SCH_RFI_YTD    := p_ANN_BUR_AND_SCH_RFI_YTD;
3894    bal_AC_NRFI_CMTD               := p_AC_NRFI_CMTD;
3895    bal_AC_NRFI_RUN                := p_AC_NRFI_RUN;
3896    bal_AC_NRFI_PTD                := p_AC_NRFI_PTD;
3897    bal_AC_NRFI_YTD                := p_AC_NRFI_YTD;
3898    bal_AC_RFI_CMTD                := p_AC_RFI_CMTD;
3899    bal_AC_RFI_RUN                 := p_AC_RFI_RUN;
3900    bal_AC_RFI_PTD                 := p_AC_RFI_PTD;
3901    bal_AC_RFI_YTD                 := p_AC_RFI_YTD;
3902    bal_ANN_PF_CMTD                := p_ANN_PF_CMTD;
3903    bal_ANN_PF_CYTD                := p_ANN_PF_CYTD;
3904    bal_ANN_PF_RUN                 := p_ANN_PF_RUN;
3905    bal_ANN_PF_PTD                 := p_ANN_PF_PTD;
3906    bal_ANN_PF_YTD                 := p_ANN_PF_YTD;
3907    bal_ARES_TRD_NRFI_CMTD         := p_ARES_TRD_NRFI_CMTD;
3908    bal_ARES_TRD_NRFI_RUN          := p_ARES_TRD_NRFI_RUN;
3909    bal_ARES_TRD_NRFI_PTD          := p_ARES_TRD_NRFI_PTD;
3910    bal_ARES_TRD_NRFI_YTD          := p_ARES_TRD_NRFI_YTD;
3911    bal_ARES_TRD_RFI_CMTD          := p_ARES_TRD_RFI_CMTD;
3912    bal_ARES_TRD_RFI_RUN           := p_ARES_TRD_RFI_RUN;
3913    bal_ARES_TRD_RFI_PTD           := p_ARES_TRD_RFI_PTD;
3914    bal_ARES_TRD_RFI_YTD           := p_ARES_TRD_RFI_YTD;
3915    bal_ANN_RA_CMTD                := p_ANN_RA_CMTD;
3916    bal_ANN_RA_CYTD                := p_ANN_RA_CYTD;
3917    bal_ANN_RA_RUN                 := p_ANN_RA_RUN;
3918    bal_ANN_RA_PTD                 := p_ANN_RA_PTD;
3919    bal_ANN_RA_YTD                 := p_ANN_RA_YTD;
3920    bal_ANU_FRM_RET_FND_NRFI_CMTD  := p_ANU_FRM_RET_FND_NRFI_CMTD;
3921    bal_ANU_FRM_RET_FND_NRFI_RUN   := p_ANU_FRM_RET_FND_NRFI_RUN;
3922    bal_ANU_FRM_RET_FND_NRFI_PTD   := p_ANU_FRM_RET_FND_NRFI_PTD;
3923    bal_ANU_FRM_RET_FND_NRFI_YTD   := p_ANU_FRM_RET_FND_NRFI_YTD;
3924    bal_ANU_FRM_RET_FND_RFI_CMTD   := p_ANU_FRM_RET_FND_RFI_CMTD;
3925    bal_ANU_FRM_RET_FND_RFI_RUN    := p_ANU_FRM_RET_FND_RFI_RUN;
3926    bal_ANU_FRM_RET_FND_RFI_PTD    := p_ANU_FRM_RET_FND_RFI_PTD;
3927    bal_ANU_FRM_RET_FND_RFI_YTD    := p_ANU_FRM_RET_FND_RFI_YTD;
3928    bal_ARR_PF_CMTD                := p_ARR_PF_CMTD;
3929    bal_ARR_PF_CYTD                := p_ARR_PF_CYTD;
3930    bal_ARR_PF_PTD                 := p_ARR_PF_PTD;
3931    bal_ARR_PF_YTD                 := p_ARR_PF_YTD;
3932    bal_ARR_RA_CMTD                := p_ARR_RA_CMTD;
3933    bal_ARR_RA_CYTD                := p_ARR_RA_CYTD;
3934    bal_ARR_RA_PTD                 := p_ARR_RA_PTD;
3935    bal_ARR_RA_YTD                 := p_ARR_RA_YTD;
3936    bal_AST_PRCHD_RVAL_NRFI_CMTD   := p_AST_PRCHD_RVAL_NRFI_CMTD;
3937    bal_AST_PRCHD_RVAL_NRFI_CYTD   := p_AST_PRCHD_RVAL_NRFI_CYTD;
3938    bal_AST_PRCHD_RVAL_NRFI_RUN    := p_AST_PRCHD_RVAL_NRFI_RUN;
3939    bal_AST_PRCHD_RVAL_NRFI_PTD    := p_AST_PRCHD_RVAL_NRFI_PTD;
3940    bal_AST_PRCHD_RVAL_NRFI_YTD    := p_AST_PRCHD_RVAL_NRFI_YTD;
3941    bal_AST_PRCHD_RVAL_RFI_CMTD    := p_AST_PRCHD_RVAL_RFI_CMTD;
3942    bal_AST_PRCHD_RVAL_RFI_CYTD    := p_AST_PRCHD_RVAL_RFI_CYTD;
3943    bal_AST_PRCHD_RVAL_RFI_RUN     := p_AST_PRCHD_RVAL_RFI_RUN;
3944    bal_AST_PRCHD_RVAL_RFI_PTD     := p_AST_PRCHD_RVAL_RFI_PTD;
3945    bal_AST_PRCHD_RVAL_RFI_YTD     := p_AST_PRCHD_RVAL_RFI_YTD;
3946 
3947    RETURN l_Dum;
3948 EXCEPTION
3949    WHEN OTHERS THEN
3950       hr_utility.set_message(801, 'ZaTxBal1_01032002: '||TO_CHAR(SQLCODE));
3951       hr_utility.raise_error;
3952 END ZaTxBal1_01032002;
3953 -------------------------------------------------------------------------------
3954 -- ZaTxBal2_01032002                                                         --
3955 -- Tax module supporting function                                            --
3956 -------------------------------------------------------------------------------
3957 FUNCTION ZaTxBal2_01032002(
3958 -- Balances
3959      p_BP_CMTD                             IN NUMBER DEFAULT 0
3960    , p_BP_PTD                              IN NUMBER DEFAULT 0
3961    , p_BP_YTD                              IN NUMBER DEFAULT 0
3962    , p_BUR_AND_SCH_NRFI_CMTD               IN NUMBER DEFAULT 0
3963    , p_BUR_AND_SCH_NRFI_CYTD               IN NUMBER DEFAULT 0
3964    , p_BUR_AND_SCH_NRFI_RUN                IN NUMBER DEFAULT 0
3965    , p_BUR_AND_SCH_NRFI_PTD                IN NUMBER DEFAULT 0
3966    , p_BUR_AND_SCH_NRFI_YTD                IN NUMBER DEFAULT 0
3967    , p_BUR_AND_SCH_RFI_CMTD                IN NUMBER DEFAULT 0
3968    , p_BUR_AND_SCH_RFI_CYTD                IN NUMBER DEFAULT 0
3969    , p_BUR_AND_SCH_RFI_RUN                 IN NUMBER DEFAULT 0
3970    , p_BUR_AND_SCH_RFI_PTD                 IN NUMBER DEFAULT 0
3971    , p_BUR_AND_SCH_RFI_YTD                 IN NUMBER DEFAULT 0
3972    , p_COMM_NRFI_CMTD                      IN NUMBER DEFAULT 0
3973    , p_COMM_NRFI_CYTD                      IN NUMBER DEFAULT 0
3974    , p_COMM_NRFI_RUN                       IN NUMBER DEFAULT 0
3975    , p_COMM_NRFI_PTD                       IN NUMBER DEFAULT 0
3976    , p_COMM_NRFI_YTD                       IN NUMBER DEFAULT 0
3977    , p_COMM_RFI_CMTD                       IN NUMBER DEFAULT 0
3978    , p_COMM_RFI_CYTD                       IN NUMBER DEFAULT 0
3979    , p_COMM_RFI_RUN                        IN NUMBER DEFAULT 0
3980    , p_COMM_RFI_PTD                        IN NUMBER DEFAULT 0
3981    , p_COMM_RFI_YTD                        IN NUMBER DEFAULT 0
3982    , p_COMP_ALL_NRFI_CMTD                  IN NUMBER DEFAULT 0
3983    , p_COMP_ALL_NRFI_CYTD                  IN NUMBER DEFAULT 0
3984    , p_COMP_ALL_NRFI_RUN                   IN NUMBER DEFAULT 0
3985    , p_COMP_ALL_NRFI_PTD                   IN NUMBER DEFAULT 0
3986    , p_COMP_ALL_NRFI_YTD                   IN NUMBER DEFAULT 0
3987    , p_COMP_ALL_RFI_CMTD                   IN NUMBER DEFAULT 0
3988    , p_COMP_ALL_RFI_CYTD                   IN NUMBER DEFAULT 0
3989    , p_COMP_ALL_RFI_RUN                    IN NUMBER DEFAULT 0
3990    , p_COMP_ALL_RFI_PTD                    IN NUMBER DEFAULT 0
3991    , p_COMP_ALL_RFI_YTD                    IN NUMBER DEFAULT 0
3992    , p_CUR_PF_CMTD                         IN NUMBER DEFAULT 0
3993    , p_CUR_PF_CYTD                         IN NUMBER DEFAULT 0
3994    , p_CUR_PF_RUN                          IN NUMBER DEFAULT 0
3995    , p_CUR_PF_PTD                          IN NUMBER DEFAULT 0
3996    , p_CUR_PF_YTD                          IN NUMBER DEFAULT 0
3997    , p_CUR_RA_CMTD                         IN NUMBER DEFAULT 0
3998    , p_CUR_RA_CYTD                         IN NUMBER DEFAULT 0
3999    , p_CUR_RA_RUN                          IN NUMBER DEFAULT 0
4000    , p_CUR_RA_PTD                          IN NUMBER DEFAULT 0
4001    , p_CUR_RA_YTD                          IN NUMBER DEFAULT 0
4002    , p_DIR_DMD_RMN_ITD                     IN NUMBER DEFAULT 0
4003    , p_ENT_ALL_NRFI_CMTD                   IN NUMBER DEFAULT 0
4004    , p_ENT_ALL_NRFI_CYTD                   IN NUMBER DEFAULT 0
4005    , p_ENT_ALL_NRFI_RUN                    IN NUMBER DEFAULT 0
4006    , p_ENT_ALL_NRFI_PTD                    IN NUMBER DEFAULT 0
4007    , p_ENT_ALL_NRFI_YTD                    IN NUMBER DEFAULT 0
4008    , p_ENT_ALL_RFI_CMTD                    IN NUMBER DEFAULT 0
4009    , p_ENT_ALL_RFI_CYTD                    IN NUMBER DEFAULT 0
4010    , p_ENT_ALL_RFI_RUN                     IN NUMBER DEFAULT 0
4011    , p_ENT_ALL_RFI_PTD                     IN NUMBER DEFAULT 0
4012    , p_ENT_ALL_RFI_YTD                     IN NUMBER DEFAULT 0
4013    , p_EXC_ARR_PEN_ITD                     IN NUMBER DEFAULT 0
4014    , p_EXC_ARR_PEN_PTD                     IN NUMBER DEFAULT 0
4015    , p_EXC_ARR_PEN_YTD                     IN NUMBER DEFAULT 0
4016    , p_EXC_ARR_RA_ITD                      IN NUMBER DEFAULT 0
4017    , p_EXC_ARR_RA_PTD                      IN NUMBER DEFAULT 0
4018    , p_EXC_ARR_RA_YTD                      IN NUMBER DEFAULT 0
4019    , p_FREE_ACCOM_NRFI_CMTD                IN NUMBER DEFAULT 0
4020    , p_FREE_ACCOM_NRFI_CYTD                IN NUMBER DEFAULT 0
4021    , p_FREE_ACCOM_NRFI_RUN                 IN NUMBER DEFAULT 0
4022    , p_FREE_ACCOM_NRFI_PTD                 IN NUMBER DEFAULT 0
4023    , p_FREE_ACCOM_NRFI_YTD                 IN NUMBER DEFAULT 0
4024    , p_FREE_ACCOM_RFI_CMTD                 IN NUMBER DEFAULT 0
4025    , p_FREE_ACCOM_RFI_CYTD                 IN NUMBER DEFAULT 0
4026    , p_FREE_ACCOM_RFI_RUN                  IN NUMBER DEFAULT 0
4027    , p_FREE_ACCOM_RFI_PTD                  IN NUMBER DEFAULT 0
4028    , p_FREE_ACCOM_RFI_YTD                  IN NUMBER DEFAULT 0
4029    , p_FREE_SERV_NRFI_CMTD                 IN NUMBER DEFAULT 0
4030    , p_FREE_SERV_NRFI_CYTD                 IN NUMBER DEFAULT 0
4031    , p_FREE_SERV_NRFI_RUN                  IN NUMBER DEFAULT 0
4032    , p_FREE_SERV_NRFI_PTD                  IN NUMBER DEFAULT 0
4033    , p_FREE_SERV_NRFI_YTD                  IN NUMBER DEFAULT 0
4034    , p_FREE_SERV_RFI_CMTD                  IN NUMBER DEFAULT 0
4035    , p_FREE_SERV_RFI_CYTD                  IN NUMBER DEFAULT 0
4036    , p_FREE_SERV_RFI_RUN                   IN NUMBER DEFAULT 0
4037    , p_FREE_SERV_RFI_PTD                   IN NUMBER DEFAULT 0
4038    , p_FREE_SERV_RFI_YTD                   IN NUMBER DEFAULT 0
4039    ) RETURN NUMBER
4040 AS
4041    l_Dum NUMBER := 1;
4042 
4043 BEGIN
4044 -- Balances
4045    bal_BP_CMTD                    := p_BP_CMTD;
4046    bal_BP_PTD                     := p_BP_PTD;
4047    bal_BP_YTD                     := p_BP_YTD;
4048    bal_BUR_AND_SCH_NRFI_CMTD      := p_BUR_AND_SCH_NRFI_CMTD;
4049    bal_BUR_AND_SCH_NRFI_CYTD      := p_BUR_AND_SCH_NRFI_CYTD;
4050    bal_BUR_AND_SCH_NRFI_RUN       := p_BUR_AND_SCH_NRFI_RUN;
4051    bal_BUR_AND_SCH_NRFI_PTD       := p_BUR_AND_SCH_NRFI_PTD;
4052    bal_BUR_AND_SCH_NRFI_YTD       := p_BUR_AND_SCH_NRFI_YTD;
4053    bal_BUR_AND_SCH_RFI_CMTD       := p_BUR_AND_SCH_RFI_CMTD;
4054    bal_BUR_AND_SCH_RFI_CYTD       := p_BUR_AND_SCH_RFI_CYTD;
4055    bal_BUR_AND_SCH_RFI_RUN        := p_BUR_AND_SCH_RFI_RUN;
4056    bal_BUR_AND_SCH_RFI_PTD        := p_BUR_AND_SCH_RFI_PTD;
4057    bal_BUR_AND_SCH_RFI_YTD        := p_BUR_AND_SCH_RFI_YTD;
4058    bal_COMM_NRFI_CMTD             := p_COMM_NRFI_CMTD;
4059    bal_COMM_NRFI_CYTD             := p_COMM_NRFI_CYTD;
4060    bal_COMM_NRFI_RUN              := p_COMM_NRFI_RUN;
4061    bal_COMM_NRFI_PTD              := p_COMM_NRFI_PTD;
4062    bal_COMM_NRFI_YTD              := p_COMM_NRFI_YTD;
4063    bal_COMM_RFI_CMTD              := p_COMM_RFI_CMTD;
4064    bal_COMM_RFI_CYTD              := p_COMM_RFI_CYTD;
4065    bal_COMM_RFI_RUN               := p_COMM_RFI_RUN;
4066    bal_COMM_RFI_PTD               := p_COMM_RFI_PTD;
4067    bal_COMM_RFI_YTD               := p_COMM_RFI_YTD;
4068    bal_COMP_ALL_NRFI_CMTD         := p_COMP_ALL_NRFI_CMTD;
4069    bal_COMP_ALL_NRFI_CYTD         := p_COMP_ALL_NRFI_CYTD;
4070    bal_COMP_ALL_NRFI_RUN          := p_COMP_ALL_NRFI_RUN;
4071    bal_COMP_ALL_NRFI_PTD          := p_COMP_ALL_NRFI_PTD;
4072    bal_COMP_ALL_NRFI_YTD          := p_COMP_ALL_NRFI_YTD;
4073    bal_COMP_ALL_RFI_CMTD          := p_COMP_ALL_RFI_CMTD;
4074    bal_COMP_ALL_RFI_CYTD          := p_COMP_ALL_RFI_CYTD;
4075    bal_COMP_ALL_RFI_RUN           := p_COMP_ALL_RFI_RUN;
4076    bal_COMP_ALL_RFI_PTD           := p_COMP_ALL_RFI_PTD;
4077    bal_COMP_ALL_RFI_YTD           := p_COMP_ALL_RFI_YTD;
4078    bal_PF_CMTD                    := p_CUR_PF_CMTD;
4079    bal_PF_CYTD                    := p_CUR_PF_CYTD;
4080    bal_PF_RUN                     := p_CUR_PF_RUN;
4081    bal_PF_PTD                     := p_CUR_PF_PTD;
4082    bal_PF_YTD                     := p_CUR_PF_YTD;
4083    bal_RA_CMTD                    := p_CUR_RA_CMTD;
4084    bal_RA_CYTD                    := p_CUR_RA_CYTD;
4085    bal_RA_RUN                     := p_CUR_RA_RUN;
4086    bal_RA_PTD                     := p_CUR_RA_PTD;
4087    bal_RA_YTD                     := p_CUR_RA_YTD;
4088    bal_DIR_DMD_RMN_ITD            := p_DIR_DMD_RMN_ITD;
4089    bal_ENT_ALL_NRFI_CMTD          := p_ENT_ALL_NRFI_CMTD;
4090    bal_ENT_ALL_NRFI_CYTD          := p_ENT_ALL_NRFI_CYTD;
4091    bal_ENT_ALL_NRFI_RUN           := p_ENT_ALL_NRFI_RUN;
4092    bal_ENT_ALL_NRFI_PTD           := p_ENT_ALL_NRFI_PTD;
4093    bal_ENT_ALL_NRFI_YTD           := p_ENT_ALL_NRFI_YTD;
4094    bal_ENT_ALL_RFI_CMTD           := p_ENT_ALL_RFI_CMTD;
4095    bal_ENT_ALL_RFI_CYTD           := p_ENT_ALL_RFI_CYTD;
4096    bal_ENT_ALL_RFI_RUN            := p_ENT_ALL_RFI_RUN;
4097    bal_ENT_ALL_RFI_PTD            := p_ENT_ALL_RFI_PTD;
4098    bal_ENT_ALL_RFI_YTD            := p_ENT_ALL_RFI_YTD;
4099    bal_EXC_ARR_PEN_ITD            := p_EXC_ARR_PEN_ITD;
4100    bal_EXC_ARR_PEN_PTD            := p_EXC_ARR_PEN_PTD;
4101    bal_EXC_ARR_PEN_YTD            := p_EXC_ARR_PEN_YTD;
4102    bal_EXC_ARR_RA_ITD             := p_EXC_ARR_RA_ITD;
4103    bal_EXC_ARR_RA_PTD             := p_EXC_ARR_RA_PTD;
4104    bal_EXC_ARR_RA_YTD             := p_EXC_ARR_RA_YTD;
4105    bal_FREE_ACCOM_NRFI_CMTD       := p_FREE_ACCOM_NRFI_CMTD;
4106    bal_FREE_ACCOM_NRFI_CYTD       := p_FREE_ACCOM_NRFI_CYTD;
4107    bal_FREE_ACCOM_NRFI_RUN        := p_FREE_ACCOM_NRFI_RUN;
4108    bal_FREE_ACCOM_NRFI_PTD        := p_FREE_ACCOM_NRFI_PTD;
4109    bal_FREE_ACCOM_NRFI_YTD        := p_FREE_ACCOM_NRFI_YTD;
4110    bal_FREE_ACCOM_RFI_CMTD        := p_FREE_ACCOM_RFI_CMTD;
4111    bal_FREE_ACCOM_RFI_CYTD        := p_FREE_ACCOM_RFI_CYTD;
4112    bal_FREE_ACCOM_RFI_RUN         := p_FREE_ACCOM_RFI_RUN;
4113    bal_FREE_ACCOM_RFI_PTD         := p_FREE_ACCOM_RFI_PTD;
4114    bal_FREE_ACCOM_RFI_YTD         := p_FREE_ACCOM_RFI_YTD;
4115    bal_FREE_SERV_NRFI_CMTD        := p_FREE_SERV_NRFI_CMTD;
4116    bal_FREE_SERV_NRFI_CYTD        := p_FREE_SERV_NRFI_CYTD;
4117    bal_FREE_SERV_NRFI_RUN         := p_FREE_SERV_NRFI_RUN;
4118    bal_FREE_SERV_NRFI_PTD         := p_FREE_SERV_NRFI_PTD;
4119    bal_FREE_SERV_NRFI_YTD         := p_FREE_SERV_NRFI_YTD;
4120    bal_FREE_SERV_RFI_CMTD         := p_FREE_SERV_RFI_CMTD;
4121    bal_FREE_SERV_RFI_CYTD         := p_FREE_SERV_RFI_CYTD;
4122    bal_FREE_SERV_RFI_RUN          := p_FREE_SERV_RFI_RUN;
4123    bal_FREE_SERV_RFI_PTD          := p_FREE_SERV_RFI_PTD;
4124    bal_FREE_SERV_RFI_YTD          := p_FREE_SERV_RFI_YTD;
4125 
4126    RETURN l_Dum;
4127 EXCEPTION
4128    WHEN OTHERS THEN
4129       hr_utility.set_message(801, 'ZaTxBal2_01032002: '||TO_CHAR(SQLCODE));
4130       hr_utility.raise_error;
4131 END ZaTxBal2_01032002;
4132 -------------------------------------------------------------------------------
4133 -- ZaTxBal3_01032002                                                         --
4134 -- Tax module supporting function                                            --
4135 -------------------------------------------------------------------------------
4136 FUNCTION ZaTxBal3_01032002(
4137 -- Balances
4138      p_LOW_LOANS_NRFI_CMTD                 IN NUMBER DEFAULT 0
4139    , p_LOW_LOANS_NRFI_CYTD                 IN NUMBER DEFAULT 0
4140    , p_LOW_LOANS_NRFI_RUN                  IN NUMBER DEFAULT 0
4141    , p_LOW_LOANS_NRFI_PTD                  IN NUMBER DEFAULT 0
4142    , p_LOW_LOANS_NRFI_YTD                  IN NUMBER DEFAULT 0
4143    , p_LOW_LOANS_RFI_CMTD                  IN NUMBER DEFAULT 0
4144    , p_LOW_LOANS_RFI_CYTD                  IN NUMBER DEFAULT 0
4145    , p_LOW_LOANS_RFI_RUN                   IN NUMBER DEFAULT 0
4146    , p_LOW_LOANS_RFI_PTD                   IN NUMBER DEFAULT 0
4147    , p_LOW_LOANS_RFI_YTD                   IN NUMBER DEFAULT 0
4148    , p_MLS_AND_VOUCH_NRFI_CMTD             IN NUMBER DEFAULT 0
4149    , p_MLS_AND_VOUCH_NRFI_CYTD             IN NUMBER DEFAULT 0
4150    , p_MLS_AND_VOUCH_NRFI_RUN              IN NUMBER DEFAULT 0
4151    , p_MLS_AND_VOUCH_NRFI_PTD              IN NUMBER DEFAULT 0
4152    , p_MLS_AND_VOUCH_NRFI_YTD              IN NUMBER DEFAULT 0
4153    , p_MLS_AND_VOUCH_RFI_CMTD              IN NUMBER DEFAULT 0
4154    , p_MLS_AND_VOUCH_RFI_CYTD              IN NUMBER DEFAULT 0
4155    , p_MLS_AND_VOUCH_RFI_RUN               IN NUMBER DEFAULT 0
4156    , p_MLS_AND_VOUCH_RFI_PTD               IN NUMBER DEFAULT 0
4157    , p_MLS_AND_VOUCH_RFI_YTD               IN NUMBER DEFAULT 0
4158    , p_MED_CONTR_CMTD                      IN NUMBER DEFAULT 0
4159    , p_MED_CONTR_CYTD                      IN NUMBER DEFAULT 0
4160    , p_MED_CONTR_RUN                       IN NUMBER DEFAULT 0
4161    , p_MED_CONTR_PTD                       IN NUMBER DEFAULT 0
4162    , p_MED_CONTR_YTD                       IN NUMBER DEFAULT 0
4163    , p_MED_PAID_NRFI_CMTD                  IN NUMBER DEFAULT 0
4164    , p_MED_PAID_NRFI_CYTD                  IN NUMBER DEFAULT 0
4165    , p_MED_PAID_NRFI_RUN                   IN NUMBER DEFAULT 0
4166    , p_MED_PAID_NRFI_PTD                   IN NUMBER DEFAULT 0
4167    , p_MED_PAID_NRFI_YTD                   IN NUMBER DEFAULT 0
4168    , p_MED_PAID_RFI_CMTD                   IN NUMBER DEFAULT 0
4169    , p_MED_PAID_RFI_CYTD                   IN NUMBER DEFAULT 0
4170    , p_MED_PAID_RFI_RUN                    IN NUMBER DEFAULT 0
4171    , p_MED_PAID_RFI_PTD                    IN NUMBER DEFAULT 0
4172    , p_MED_PAID_RFI_YTD                    IN NUMBER DEFAULT 0
4173    , p_NET_PAY_RUN                         IN NUMBER DEFAULT 0
4174    , p_NET_TXB_INC_CMTD                    IN NUMBER DEFAULT 0
4175    , p_OTHER_TXB_ALL_NRFI_CMTD             IN NUMBER DEFAULT 0
4176    , p_OTHER_TXB_ALL_NRFI_CYTD             IN NUMBER DEFAULT 0
4177    , p_OTHER_TXB_ALL_NRFI_RUN              IN NUMBER DEFAULT 0
4178    , p_OTHER_TXB_ALL_NRFI_PTD              IN NUMBER DEFAULT 0
4179    , p_OTHER_TXB_ALL_NRFI_YTD              IN NUMBER DEFAULT 0
4180    , p_OTHER_TXB_ALL_RFI_CMTD              IN NUMBER DEFAULT 0
4181    , p_OTHER_TXB_ALL_RFI_CYTD              IN NUMBER DEFAULT 0
4182    , p_OTHER_TXB_ALL_RFI_RUN               IN NUMBER DEFAULT 0
4183    , p_OTHER_TXB_ALL_RFI_PTD               IN NUMBER DEFAULT 0
4184    , p_OTHER_TXB_ALL_RFI_YTD               IN NUMBER DEFAULT 0
4185    , p_OVTM_NRFI_CMTD                      IN NUMBER DEFAULT 0
4186    , p_OVTM_NRFI_CYTD                      IN NUMBER DEFAULT 0
4187    , p_OVTM_NRFI_RUN                       IN NUMBER DEFAULT 0
4188    , p_OVTM_NRFI_PTD                       IN NUMBER DEFAULT 0
4189    , p_OVTM_NRFI_YTD                       IN NUMBER DEFAULT 0
4190    , p_OVTM_RFI_CMTD                       IN NUMBER DEFAULT 0
4191    , p_OVTM_RFI_CYTD                       IN NUMBER DEFAULT 0
4192    , p_OVTM_RFI_RUN                        IN NUMBER DEFAULT 0
4193    , p_OVTM_RFI_PTD                        IN NUMBER DEFAULT 0
4194    , p_OVTM_RFI_YTD                        IN NUMBER DEFAULT 0
4195    , p_PAYE_YTD                            IN NUMBER DEFAULT 0
4196    , p_PYM_DBT_NRFI_CMTD                   IN NUMBER DEFAULT 0
4197    , p_PYM_DBT_NRFI_CYTD                   IN NUMBER DEFAULT 0
4198    , p_PYM_DBT_NRFI_RUN                    IN NUMBER DEFAULT 0
4199    , p_PYM_DBT_NRFI_PTD                    IN NUMBER DEFAULT 0
4200    , p_PYM_DBT_NRFI_YTD                    IN NUMBER DEFAULT 0
4201    , p_PYM_DBT_RFI_CMTD                    IN NUMBER DEFAULT 0
4202    , p_PYM_DBT_RFI_CYTD                    IN NUMBER DEFAULT 0
4203    , p_PYM_DBT_RFI_RUN                     IN NUMBER DEFAULT 0
4204    , p_PYM_DBT_RFI_PTD                     IN NUMBER DEFAULT 0
4205    , p_PYM_DBT_RFI_YTD                     IN NUMBER DEFAULT 0
4206    ) RETURN NUMBER
4207 AS
4208    l_Dum NUMBER := 1;
4209 
4210 BEGIN
4211 -- Balances
4212    bal_LOW_LOANS_NRFI_CMTD        := p_LOW_LOANS_NRFI_CMTD;
4213    bal_LOW_LOANS_NRFI_CYTD        := p_LOW_LOANS_NRFI_CYTD;
4214    bal_LOW_LOANS_NRFI_RUN         := p_LOW_LOANS_NRFI_RUN;
4215    bal_LOW_LOANS_NRFI_PTD         := p_LOW_LOANS_NRFI_PTD;
4216    bal_LOW_LOANS_NRFI_YTD         := p_LOW_LOANS_NRFI_YTD;
4217    bal_LOW_LOANS_RFI_CMTD         := p_LOW_LOANS_RFI_CMTD;
4218    bal_LOW_LOANS_RFI_CYTD         := p_LOW_LOANS_RFI_CYTD;
4219    bal_LOW_LOANS_RFI_RUN          := p_LOW_LOANS_RFI_RUN;
4220    bal_LOW_LOANS_RFI_PTD          := p_LOW_LOANS_RFI_PTD;
4221    bal_LOW_LOANS_RFI_YTD          := p_LOW_LOANS_RFI_YTD;
4222    bal_MLS_AND_VOUCH_NRFI_CMTD    := p_MLS_AND_VOUCH_NRFI_CMTD;
4223    bal_MLS_AND_VOUCH_NRFI_CYTD    := p_MLS_AND_VOUCH_NRFI_CYTD;
4224    bal_MLS_AND_VOUCH_NRFI_RUN     := p_MLS_AND_VOUCH_NRFI_RUN;
4225    bal_MLS_AND_VOUCH_NRFI_PTD     := p_MLS_AND_VOUCH_NRFI_PTD;
4226    bal_MLS_AND_VOUCH_NRFI_YTD     := p_MLS_AND_VOUCH_NRFI_YTD;
4227    bal_MLS_AND_VOUCH_RFI_CMTD     := p_MLS_AND_VOUCH_RFI_CMTD;
4228    bal_MLS_AND_VOUCH_RFI_CYTD     := p_MLS_AND_VOUCH_RFI_CYTD;
4229    bal_MLS_AND_VOUCH_RFI_RUN      := p_MLS_AND_VOUCH_RFI_RUN;
4230    bal_MLS_AND_VOUCH_RFI_PTD      := p_MLS_AND_VOUCH_RFI_PTD;
4231    bal_MLS_AND_VOUCH_RFI_YTD      := p_MLS_AND_VOUCH_RFI_YTD;
4232    bal_MED_CONTR_CMTD             := p_MED_CONTR_CMTD;
4233    bal_MED_CONTR_CYTD             := p_MED_CONTR_CYTD;
4234    bal_MED_CONTR_RUN              := p_MED_CONTR_RUN;
4235    bal_MED_CONTR_PTD              := p_MED_CONTR_PTD;
4236    bal_MED_CONTR_YTD              := p_MED_CONTR_YTD;
4237    bal_MED_PAID_NRFI_CMTD         := p_MED_PAID_NRFI_CMTD;
4238    bal_MED_PAID_NRFI_CYTD         := p_MED_PAID_NRFI_CYTD;
4239    bal_MED_PAID_NRFI_RUN          := p_MED_PAID_NRFI_RUN;
4240    bal_MED_PAID_NRFI_PTD          := p_MED_PAID_NRFI_PTD;
4241    bal_MED_PAID_NRFI_YTD          := p_MED_PAID_NRFI_YTD;
4242    bal_MED_PAID_RFI_CMTD          := p_MED_PAID_RFI_CMTD;
4243    bal_MED_PAID_RFI_CYTD          := p_MED_PAID_RFI_CYTD;
4244    bal_MED_PAID_RFI_RUN           := p_MED_PAID_RFI_RUN;
4245    bal_MED_PAID_RFI_PTD           := p_MED_PAID_RFI_PTD;
4246    bal_MED_PAID_RFI_YTD           := p_MED_PAID_RFI_YTD;
4247    bal_NET_PAY_RUN                := p_NET_PAY_RUN;
4248    bal_NET_TXB_INC_CMTD           := p_NET_TXB_INC_CMTD;
4249    bal_OTHER_TXB_ALL_NRFI_CMTD    := p_OTHER_TXB_ALL_NRFI_CMTD;
4250    bal_OTHER_TXB_ALL_NRFI_CYTD    := p_OTHER_TXB_ALL_NRFI_CYTD;
4251    bal_OTHER_TXB_ALL_NRFI_RUN     := p_OTHER_TXB_ALL_NRFI_RUN;
4252    bal_OTHER_TXB_ALL_NRFI_PTD     := p_OTHER_TXB_ALL_NRFI_PTD;
4253    bal_OTHER_TXB_ALL_NRFI_YTD     := p_OTHER_TXB_ALL_NRFI_YTD;
4254    bal_OTHER_TXB_ALL_RFI_CMTD     := p_OTHER_TXB_ALL_RFI_CMTD;
4255    bal_OTHER_TXB_ALL_RFI_CYTD     := p_OTHER_TXB_ALL_RFI_CYTD;
4256    bal_OTHER_TXB_ALL_RFI_RUN      := p_OTHER_TXB_ALL_RFI_RUN;
4257    bal_OTHER_TXB_ALL_RFI_PTD      := p_OTHER_TXB_ALL_RFI_PTD;
4258    bal_OTHER_TXB_ALL_RFI_YTD      := p_OTHER_TXB_ALL_RFI_YTD;
4259    bal_OVTM_NRFI_CMTD             := p_OVTM_NRFI_CMTD;
4260    bal_OVTM_NRFI_CYTD             := p_OVTM_NRFI_CYTD;
4261    bal_OVTM_NRFI_RUN              := p_OVTM_NRFI_RUN;
4262    bal_OVTM_NRFI_PTD              := p_OVTM_NRFI_PTD;
4263    bal_OVTM_NRFI_YTD              := p_OVTM_NRFI_YTD;
4264    bal_OVTM_RFI_CMTD              := p_OVTM_RFI_CMTD;
4265    bal_OVTM_RFI_CYTD              := p_OVTM_RFI_CYTD;
4266    bal_OVTM_RFI_RUN               := p_OVTM_RFI_RUN;
4267    bal_OVTM_RFI_PTD               := p_OVTM_RFI_PTD;
4268    bal_OVTM_RFI_YTD               := p_OVTM_RFI_YTD;
4269    bal_PAYE_YTD                   := p_PAYE_YTD;
4270    bal_PYM_DBT_NRFI_CMTD          := p_PYM_DBT_NRFI_CMTD;
4271    bal_PYM_DBT_NRFI_CYTD          := p_PYM_DBT_NRFI_CYTD;
4272    bal_PYM_DBT_NRFI_RUN           := p_PYM_DBT_NRFI_RUN;
4273    bal_PYM_DBT_NRFI_PTD           := p_PYM_DBT_NRFI_PTD;
4274    bal_PYM_DBT_NRFI_YTD           := p_PYM_DBT_NRFI_YTD;
4275    bal_PYM_DBT_RFI_CMTD           := p_PYM_DBT_RFI_CMTD;
4276    bal_PYM_DBT_RFI_CYTD           := p_PYM_DBT_RFI_CYTD;
4277    bal_PYM_DBT_RFI_RUN            := p_PYM_DBT_RFI_RUN;
4278    bal_PYM_DBT_RFI_PTD            := p_PYM_DBT_RFI_PTD;
4279    bal_PYM_DBT_RFI_YTD            := p_PYM_DBT_RFI_YTD;
4280 
4281    RETURN l_Dum;
4282 EXCEPTION
4283    WHEN OTHERS THEN
4284       hr_utility.set_message(801, 'ZaTxBal3_01032002: '||TO_CHAR(SQLCODE));
4285       hr_utility.raise_error;
4286 END ZaTxBal3_01032002;
4287 -------------------------------------------------------------------------------
4288 -- ZaTxBal4_01032002                                                         --
4289 -- Tax module supporting function                                            --
4290 -------------------------------------------------------------------------------
4291 FUNCTION ZaTxBal4_01032002(
4292 -- Balances
4293      p_PO_NRFI_CMTD                        IN NUMBER DEFAULT 0
4294    , p_PO_NRFI_RUN                         IN NUMBER DEFAULT 0
4295    , p_PO_NRFI_PTD                         IN NUMBER DEFAULT 0
4296    , p_PO_NRFI_YTD                         IN NUMBER DEFAULT 0
4297    , p_PO_RFI_CMTD                         IN NUMBER DEFAULT 0
4298    , p_PO_RFI_RUN                          IN NUMBER DEFAULT 0
4299    , p_PO_RFI_PTD                          IN NUMBER DEFAULT 0
4300    , p_PO_RFI_YTD                          IN NUMBER DEFAULT 0
4301    , p_PRCH_ANU_TXB_NRFI_CMTD              IN NUMBER DEFAULT 0
4302    , p_PRCH_ANU_TXB_NRFI_RUN               IN NUMBER DEFAULT 0
4303    , p_PRCH_ANU_TXB_NRFI_PTD               IN NUMBER DEFAULT 0
4304    , p_PRCH_ANU_TXB_NRFI_YTD               IN NUMBER DEFAULT 0
4305    , p_PRCH_ANU_TXB_RFI_CMTD               IN NUMBER DEFAULT 0
4306    , p_PRCH_ANU_TXB_RFI_RUN                IN NUMBER DEFAULT 0
4307    , p_PRCH_ANU_TXB_RFI_PTD                IN NUMBER DEFAULT 0
4308    , p_PRCH_ANU_TXB_RFI_YTD                IN NUMBER DEFAULT 0
4309    , p_RES_TRD_NRFI_CMTD                   IN NUMBER DEFAULT 0
4310    , p_RES_TRD_NRFI_CYTD                   IN NUMBER DEFAULT 0
4311    , p_RES_TRD_NRFI_RUN                    IN NUMBER DEFAULT 0
4312    , p_RES_TRD_NRFI_PTD                    IN NUMBER DEFAULT 0
4313    , p_RES_TRD_NRFI_YTD                    IN NUMBER DEFAULT 0
4314    , p_RES_TRD_RFI_CMTD                    IN NUMBER DEFAULT 0
4315    , p_RES_TRD_RFI_CYTD                    IN NUMBER DEFAULT 0
4316    , p_RES_TRD_RFI_RUN                     IN NUMBER DEFAULT 0
4317    , p_RES_TRD_RFI_PTD                     IN NUMBER DEFAULT 0
4318    , p_RES_TRD_RFI_YTD                     IN NUMBER DEFAULT 0
4319    , p_RGT_AST_NRFI_CMTD                   IN NUMBER DEFAULT 0
4320    , p_RGT_AST_NRFI_CYTD                   IN NUMBER DEFAULT 0
4321    , p_RGT_AST_NRFI_RUN                    IN NUMBER DEFAULT 0
4322    , p_RGT_AST_NRFI_PTD                    IN NUMBER DEFAULT 0
4323    , p_RGT_AST_NRFI_YTD                    IN NUMBER DEFAULT 0
4324    , p_RGT_AST_RFI_CMTD                    IN NUMBER DEFAULT 0
4325    , p_RGT_AST_RFI_CYTD                    IN NUMBER DEFAULT 0
4326    , p_RGT_AST_RFI_RUN                     IN NUMBER DEFAULT 0
4327    , p_RGT_AST_RFI_PTD                     IN NUMBER DEFAULT 0
4328    , p_RGT_AST_RFI_YTD                     IN NUMBER DEFAULT 0
4329    , p_SITE_YTD                            IN NUMBER DEFAULT 0
4330    , p_TAX_YTD                             IN NUMBER DEFAULT 0
4331    , p_TX_ON_AB_PTD                        IN NUMBER DEFAULT 0
4332    , p_TX_ON_AB_YTD                        IN NUMBER DEFAULT 0
4333    , p_TX_ON_AP_RUN                        IN NUMBER DEFAULT 0
4334    , p_TX_ON_AP_PTD                        IN NUMBER DEFAULT 0
4335    , p_TX_ON_AP_YTD                        IN NUMBER DEFAULT 0
4336    , p_TX_ON_BP_PTD                        IN NUMBER DEFAULT 0
4337    , p_TX_ON_BP_YTD                        IN NUMBER DEFAULT 0
4338    , p_TX_ON_TA_PTD                        IN NUMBER DEFAULT 0
4339    , p_TX_ON_TA_YTD                        IN NUMBER DEFAULT 0
4340    , p_TX_ON_DR_PTD                        IN NUMBER DEFAULT 0
4341    , p_TX_ON_DR_YTD                        IN NUMBER DEFAULT 0
4342    , p_TX_ON_FB_PTD                        IN NUMBER DEFAULT 0
4343    , p_TX_ON_FB_YTD                        IN NUMBER DEFAULT 0
4344    , p_TX_ON_NI_PTD                        IN NUMBER DEFAULT 0
4345    , p_TX_ON_NI_YTD                        IN NUMBER DEFAULT 0
4346    , p_TX_ON_PO_PTD                        IN NUMBER DEFAULT 0
4347    , p_TX_ON_PO_YTD                        IN NUMBER DEFAULT 0
4348    , p_TXB_AP_NRFI_CMTD                    IN NUMBER DEFAULT 0
4349    , p_TXB_AP_NRFI_RUN                     IN NUMBER DEFAULT 0
4350    , p_TXB_AP_NRFI_PTD                     IN NUMBER DEFAULT 0
4351    , p_TXB_AP_NRFI_YTD                     IN NUMBER DEFAULT 0
4352    , p_TXB_AP_RFI_CMTD                     IN NUMBER DEFAULT 0
4353    , p_TXB_AP_RFI_RUN                      IN NUMBER DEFAULT 0
4354    , p_TXB_AP_RFI_PTD                      IN NUMBER DEFAULT 0
4355    , p_TXB_AP_RFI_YTD                      IN NUMBER DEFAULT 0
4356    , p_TXB_INC_NRFI_CMTD                   IN NUMBER DEFAULT 0
4357    , p_TXB_INC_NRFI_CYTD                   IN NUMBER DEFAULT 0
4358    , p_TXB_INC_NRFI_RUN                    IN NUMBER DEFAULT 0
4359    , p_TXB_INC_NRFI_PTD                    IN NUMBER DEFAULT 0
4360    , p_TXB_INC_NRFI_YTD                    IN NUMBER DEFAULT 0
4361    , p_TXB_INC_RFI_CMTD                    IN NUMBER DEFAULT 0
4362    , p_TXB_INC_RFI_CYTD                    IN NUMBER DEFAULT 0
4363    , p_TXB_INC_RFI_RUN                     IN NUMBER DEFAULT 0
4364    , p_TXB_INC_RFI_PTD                     IN NUMBER DEFAULT 0
4365    , p_TXB_INC_RFI_YTD                     IN NUMBER DEFAULT 0
4366    ) RETURN NUMBER
4367 AS
4368    l_Dum NUMBER := 1;
4369 
4370 BEGIN
4371 -- Balances
4372    bal_PO_NRFI_CMTD               := p_PO_NRFI_CMTD;
4373    bal_PO_NRFI_RUN                := p_PO_NRFI_RUN;
4374    bal_PO_NRFI_PTD                := p_PO_NRFI_PTD;
4375    bal_PO_NRFI_YTD                := p_PO_NRFI_YTD;
4376    bal_PO_RFI_CMTD                := p_PO_RFI_CMTD;
4377    bal_PO_RFI_RUN                 := p_PO_RFI_RUN;
4378    bal_PO_RFI_PTD                 := p_PO_RFI_PTD;
4379    bal_PO_RFI_YTD                 := p_PO_RFI_YTD;
4380    bal_PRCH_ANU_TXB_NRFI_CMTD     := p_PRCH_ANU_TXB_NRFI_CMTD;
4381    bal_PRCH_ANU_TXB_NRFI_RUN      := p_PRCH_ANU_TXB_NRFI_RUN;
4382    bal_PRCH_ANU_TXB_NRFI_PTD      := p_PRCH_ANU_TXB_NRFI_PTD;
4383    bal_PRCH_ANU_TXB_NRFI_YTD      := p_PRCH_ANU_TXB_NRFI_YTD;
4384    bal_PRCH_ANU_TXB_RFI_CMTD      := p_PRCH_ANU_TXB_RFI_CMTD;
4385    bal_PRCH_ANU_TXB_RFI_RUN       := p_PRCH_ANU_TXB_RFI_RUN;
4386    bal_PRCH_ANU_TXB_RFI_PTD       := p_PRCH_ANU_TXB_RFI_PTD;
4387    bal_PRCH_ANU_TXB_RFI_YTD       := p_PRCH_ANU_TXB_RFI_YTD;
4388    bal_RES_TRD_NRFI_CMTD          := p_RES_TRD_NRFI_CMTD;
4389    bal_RES_TRD_NRFI_CYTD          := p_RES_TRD_NRFI_CYTD;
4390    bal_RES_TRD_NRFI_RUN           := p_RES_TRD_NRFI_RUN;
4391    bal_RES_TRD_NRFI_PTD           := p_RES_TRD_NRFI_PTD;
4392    bal_RES_TRD_NRFI_YTD           := p_RES_TRD_NRFI_YTD;
4393    bal_RES_TRD_RFI_CMTD           := p_RES_TRD_RFI_CMTD;
4394    bal_RES_TRD_RFI_CYTD           := p_RES_TRD_RFI_CYTD;
4395    bal_RES_TRD_RFI_RUN            := p_RES_TRD_RFI_RUN;
4396    bal_RES_TRD_RFI_PTD            := p_RES_TRD_RFI_PTD;
4397    bal_RES_TRD_RFI_YTD            := p_RES_TRD_RFI_YTD;
4398    bal_RGT_AST_NRFI_CMTD          := p_RGT_AST_NRFI_CMTD;
4399    bal_RGT_AST_NRFI_CYTD          := p_RGT_AST_NRFI_CYTD;
4400    bal_RGT_AST_NRFI_RUN           := p_RGT_AST_NRFI_RUN;
4401    bal_RGT_AST_NRFI_PTD           := p_RGT_AST_NRFI_PTD;
4402    bal_RGT_AST_NRFI_YTD           := p_RGT_AST_NRFI_YTD;
4403    bal_RGT_AST_RFI_CMTD           := p_RGT_AST_RFI_CMTD;
4404    bal_RGT_AST_RFI_CYTD           := p_RGT_AST_RFI_CYTD;
4405    bal_RGT_AST_RFI_RUN            := p_RGT_AST_RFI_RUN;
4406    bal_RGT_AST_RFI_PTD            := p_RGT_AST_RFI_PTD;
4407    bal_RGT_AST_RFI_YTD            := p_RGT_AST_RFI_YTD;
4408    bal_SITE_YTD                   := p_SITE_YTD;
4409    bal_TAX_YTD                    := p_TAX_YTD;
4410    bal_TX_ON_AB_PTD               := p_TX_ON_AB_PTD;
4411    bal_TX_ON_AB_YTD               := p_TX_ON_AB_YTD;
4412    bal_TX_ON_AP_RUN               := p_TX_ON_AP_RUN;
4413    bal_TX_ON_AP_PTD               := p_TX_ON_AP_PTD;
4414    bal_TX_ON_AP_YTD               := p_TX_ON_AP_YTD;
4415    bal_TX_ON_BP_PTD               := p_TX_ON_BP_PTD;
4416    bal_TX_ON_BP_YTD               := p_TX_ON_BP_YTD;
4417    bal_TX_ON_TA_PTD               := p_TX_ON_TA_PTD;
4418    bal_TX_ON_TA_YTD               := p_TX_ON_TA_YTD;
4419    bal_TX_ON_DR_PTD               := p_TX_ON_DR_PTD;
4420    bal_TX_ON_DR_YTD               := p_TX_ON_DR_YTD;
4421    bal_TX_ON_FB_PTD               := p_TX_ON_FB_PTD;
4422    bal_TX_ON_FB_YTD               := p_TX_ON_FB_YTD;
4423    bal_TX_ON_NI_PTD               := p_TX_ON_NI_PTD;
4424    bal_TX_ON_NI_YTD               := p_TX_ON_NI_YTD;
4425    bal_TX_ON_PO_PTD               := p_TX_ON_PO_PTD;
4426    bal_TX_ON_PO_YTD               := p_TX_ON_PO_YTD;
4427    bal_TXB_AP_NRFI_CMTD           := p_TXB_AP_NRFI_CMTD;
4428    bal_TXB_AP_NRFI_RUN            := p_TXB_AP_NRFI_RUN;
4429    bal_TXB_AP_NRFI_PTD            := p_TXB_AP_NRFI_PTD;
4430    bal_TXB_AP_NRFI_YTD            := p_TXB_AP_NRFI_YTD;
4431    bal_TXB_AP_RFI_CMTD            := p_TXB_AP_RFI_CMTD;
4432    bal_TXB_AP_RFI_RUN             := p_TXB_AP_RFI_RUN;
4433    bal_TXB_AP_RFI_PTD             := p_TXB_AP_RFI_PTD;
4434    bal_TXB_AP_RFI_YTD             := p_TXB_AP_RFI_YTD;
4435    bal_TXB_INC_NRFI_CMTD          := p_TXB_INC_NRFI_CMTD;
4436    bal_TXB_INC_NRFI_CYTD          := p_TXB_INC_NRFI_CYTD;
4437    bal_TXB_INC_NRFI_RUN           := p_TXB_INC_NRFI_RUN;
4438    bal_TXB_INC_NRFI_PTD           := p_TXB_INC_NRFI_PTD;
4439    bal_TXB_INC_NRFI_YTD           := p_TXB_INC_NRFI_YTD;
4440    bal_TXB_INC_RFI_CMTD           := p_TXB_INC_RFI_CMTD;
4441    bal_TXB_INC_RFI_CYTD           := p_TXB_INC_RFI_CYTD;
4442    bal_TXB_INC_RFI_RUN            := p_TXB_INC_RFI_RUN;
4443    bal_TXB_INC_RFI_PTD            := p_TXB_INC_RFI_PTD;
4444    bal_TXB_INC_RFI_YTD            := p_TXB_INC_RFI_YTD;
4445 
4446    RETURN l_Dum;
4447 EXCEPTION
4448    WHEN OTHERS THEN
4449       hr_utility.set_message(801, 'ZaTxBal4_01032002: '||TO_CHAR(SQLCODE));
4450       hr_utility.raise_error;
4451 END ZaTxBal4_01032002;
4452 -------------------------------------------------------------------------------
4453 -- ZaTxBal5_01032002                                                         --
4454 -- Tax module supporting function                                            --
4455 -------------------------------------------------------------------------------
4456 FUNCTION ZaTxBal5_01032002(
4457 -- Balances
4458      p_TXB_PEN_NRFI_CMTD                   IN NUMBER DEFAULT 0
4459    , p_TXB_PEN_NRFI_CYTD                   IN NUMBER DEFAULT 0
4460    , p_TXB_PEN_NRFI_RUN                    IN NUMBER DEFAULT 0
4461    , p_TXB_PEN_NRFI_PTD                    IN NUMBER DEFAULT 0
4462    , p_TXB_PEN_NRFI_YTD                    IN NUMBER DEFAULT 0
4463    , p_TXB_PEN_RFI_CMTD                    IN NUMBER DEFAULT 0
4464    , p_TXB_PEN_RFI_CYTD                    IN NUMBER DEFAULT 0
4465    , p_TXB_PEN_RFI_RUN                     IN NUMBER DEFAULT 0
4466    , p_TXB_PEN_RFI_PTD                     IN NUMBER DEFAULT 0
4467    , p_TXB_PEN_RFI_YTD                     IN NUMBER DEFAULT 0
4468    , p_TEL_ALL_NRFI_CMTD                   IN NUMBER DEFAULT 0
4469    , p_TEL_ALL_NRFI_CYTD                   IN NUMBER DEFAULT 0
4470    , p_TEL_ALL_NRFI_RUN                    IN NUMBER DEFAULT 0
4471    , p_TEL_ALL_NRFI_PTD                    IN NUMBER DEFAULT 0
4472    , p_TEL_ALL_NRFI_YTD                    IN NUMBER DEFAULT 0
4473    , p_TEL_ALL_RFI_CMTD                    IN NUMBER DEFAULT 0
4474    , p_TEL_ALL_RFI_CYTD                    IN NUMBER DEFAULT 0
4475    , p_TEL_ALL_RFI_RUN                     IN NUMBER DEFAULT 0
4476    , p_TEL_ALL_RFI_PTD                     IN NUMBER DEFAULT 0
4477    , p_TEL_ALL_RFI_YTD                     IN NUMBER DEFAULT 0
4478    , p_TOOL_ALL_NRFI_CMTD                  IN NUMBER DEFAULT 0
4479    , p_TOOL_ALL_NRFI_CYTD                  IN NUMBER DEFAULT 0
4480    , p_TOOL_ALL_NRFI_RUN                   IN NUMBER DEFAULT 0
4481    , p_TOOL_ALL_NRFI_PTD                   IN NUMBER DEFAULT 0
4482    , p_TOOL_ALL_NRFI_YTD                   IN NUMBER DEFAULT 0
4483    , p_TOOL_ALL_RFI_CMTD                   IN NUMBER DEFAULT 0
4484    , p_TOOL_ALL_RFI_CYTD                   IN NUMBER DEFAULT 0
4485    , p_TOOL_ALL_RFI_RUN                    IN NUMBER DEFAULT 0
4486    , p_TOOL_ALL_RFI_PTD                    IN NUMBER DEFAULT 0
4487    , p_TOOL_ALL_RFI_YTD                    IN NUMBER DEFAULT 0
4488    , p_TOT_INC_PTD                         IN NUMBER DEFAULT 0
4489    , p_TOT_INC_YTD                         IN NUMBER DEFAULT 0
4490    , p_TOT_NRFI_AN_INC_CMTD                IN NUMBER DEFAULT 0
4491    , p_TOT_NRFI_AN_INC_CYTD                IN NUMBER DEFAULT 0
4492    , p_TOT_NRFI_AN_INC_RUN                 IN NUMBER DEFAULT 0
4493    , p_TOT_NRFI_AN_INC_PTD                 IN NUMBER DEFAULT 0
4494    , p_TOT_NRFI_AN_INC_YTD                 IN NUMBER DEFAULT 0
4495    , p_TOT_NRFI_INC_CMTD                   IN NUMBER DEFAULT 0
4496    , p_TOT_NRFI_INC_CYTD                   IN NUMBER DEFAULT 0
4497    , p_TOT_NRFI_INC_RUN                    IN NUMBER DEFAULT 0
4498    , p_TOT_NRFI_INC_PTD                    IN NUMBER DEFAULT 0
4499    , p_TOT_NRFI_INC_YTD                    IN NUMBER DEFAULT 0
4500    , p_TOT_RFI_AN_INC_CMTD                 IN NUMBER DEFAULT 0
4501    , p_TOT_RFI_AN_INC_CYTD                 IN NUMBER DEFAULT 0
4502    , p_TOT_RFI_AN_INC_RUN                  IN NUMBER DEFAULT 0
4503    , p_TOT_RFI_AN_INC_PTD                  IN NUMBER DEFAULT 0
4504    , p_TOT_RFI_AN_INC_YTD                  IN NUMBER DEFAULT 0
4505    , p_TOT_RFI_INC_CMTD                    IN NUMBER DEFAULT 0
4506    , p_TOT_RFI_INC_CYTD                    IN NUMBER DEFAULT 0
4507    , p_TOT_RFI_INC_RUN                     IN NUMBER DEFAULT 0
4508    , p_TOT_RFI_INC_PTD                     IN NUMBER DEFAULT 0
4509    , p_TOT_RFI_INC_YTD                     IN NUMBER DEFAULT 0
4510    , p_TOT_SEA_WRK_DYS_WRK_YTD             IN NUMBER DEFAULT 0
4511    , p_TOT_TXB_INC_ITD                     IN NUMBER DEFAULT 0
4512    , p_TA_NRFI_CMTD                        IN NUMBER DEFAULT 0
4513    , p_TA_NRFI_CYTD                        IN NUMBER DEFAULT 0
4514    , p_TA_NRFI_PTD                         IN NUMBER DEFAULT 0
4515    , p_TA_NRFI_YTD                         IN NUMBER DEFAULT 0
4516    , p_TA_RFI_CMTD                         IN NUMBER DEFAULT 0
4517    , p_TA_RFI_CYTD                         IN NUMBER DEFAULT 0
4518    , p_TA_RFI_PTD                          IN NUMBER DEFAULT 0
4519    , p_TA_RFI_YTD                          IN NUMBER DEFAULT 0
4520    , p_USE_VEH_NRFI_CMTD                   IN NUMBER DEFAULT 0
4521    , p_USE_VEH_NRFI_CYTD                   IN NUMBER DEFAULT 0
4522    , p_USE_VEH_NRFI_RUN                    IN NUMBER DEFAULT 0
4523    , p_USE_VEH_NRFI_PTD                    IN NUMBER DEFAULT 0
4524    , p_USE_VEH_NRFI_YTD                    IN NUMBER DEFAULT 0
4525    , p_USE_VEH_RFI_CMTD                    IN NUMBER DEFAULT 0
4526    , p_USE_VEH_RFI_CYTD                    IN NUMBER DEFAULT 0
4527    , p_USE_VEH_RFI_RUN                     IN NUMBER DEFAULT 0
4528    , p_USE_VEH_RFI_PTD                     IN NUMBER DEFAULT 0
4529    , p_USE_VEH_RFI_YTD                     IN NUMBER DEFAULT 0
4530    ) RETURN NUMBER
4531 AS
4532    l_Dum NUMBER := 1;
4533 
4534 BEGIN
4535 -- Balances
4536    bal_TXB_PEN_NRFI_CMTD          := p_TXB_PEN_NRFI_CMTD;
4537    bal_TXB_PEN_NRFI_CYTD          := p_TXB_PEN_NRFI_CYTD;
4538    bal_TXB_PEN_NRFI_RUN           := p_TXB_PEN_NRFI_RUN;
4539    bal_TXB_PEN_NRFI_PTD           := p_TXB_PEN_NRFI_PTD;
4540    bal_TXB_PEN_NRFI_YTD           := p_TXB_PEN_NRFI_YTD;
4541    bal_TXB_PEN_RFI_CMTD           := p_TXB_PEN_RFI_CMTD;
4542    bal_TXB_PEN_RFI_CYTD           := p_TXB_PEN_RFI_CYTD;
4543    bal_TXB_PEN_RFI_RUN            := p_TXB_PEN_RFI_RUN;
4544    bal_TXB_PEN_RFI_PTD            := p_TXB_PEN_RFI_PTD;
4545    bal_TXB_PEN_RFI_YTD            := p_TXB_PEN_RFI_YTD;
4546    bal_TEL_ALL_NRFI_CMTD          := p_TEL_ALL_NRFI_CMTD;
4547    bal_TEL_ALL_NRFI_CYTD          := p_TEL_ALL_NRFI_CYTD;
4548    bal_TEL_ALL_NRFI_RUN           := p_TEL_ALL_NRFI_RUN;
4549    bal_TEL_ALL_NRFI_PTD           := p_TEL_ALL_NRFI_PTD;
4550    bal_TEL_ALL_NRFI_YTD           := p_TEL_ALL_NRFI_YTD;
4551    bal_TEL_ALL_RFI_CMTD           := p_TEL_ALL_RFI_CMTD;
4552    bal_TEL_ALL_RFI_CYTD           := p_TEL_ALL_RFI_CYTD;
4553    bal_TEL_ALL_RFI_RUN            := p_TEL_ALL_RFI_RUN;
4554    bal_TEL_ALL_RFI_PTD            := p_TEL_ALL_RFI_PTD;
4555    bal_TEL_ALL_RFI_YTD            := p_TEL_ALL_RFI_YTD;
4556    bal_TOOL_ALL_NRFI_CMTD         := p_TOOL_ALL_NRFI_CMTD;
4557    bal_TOOL_ALL_NRFI_CYTD         := p_TOOL_ALL_NRFI_CYTD;
4558    bal_TOOL_ALL_NRFI_RUN          := p_TOOL_ALL_NRFI_RUN;
4559    bal_TOOL_ALL_NRFI_PTD          := p_TOOL_ALL_NRFI_PTD;
4560    bal_TOOL_ALL_NRFI_YTD          := p_TOOL_ALL_NRFI_YTD;
4561    bal_TOOL_ALL_RFI_CMTD          := p_TOOL_ALL_RFI_CMTD;
4562    bal_TOOL_ALL_RFI_CYTD          := p_TOOL_ALL_RFI_CYTD;
4563    bal_TOOL_ALL_RFI_RUN           := p_TOOL_ALL_RFI_RUN;
4564    bal_TOOL_ALL_RFI_PTD           := p_TOOL_ALL_RFI_PTD;
4565    bal_TOOL_ALL_RFI_YTD           := p_TOOL_ALL_RFI_YTD;
4566    bal_TOT_INC_PTD                := p_TOT_INC_PTD;
4567    bal_TOT_INC_YTD                := p_TOT_INC_YTD;
4568    bal_TOT_NRFI_AN_INC_CMTD       := p_TOT_NRFI_AN_INC_CMTD;
4569    bal_TOT_NRFI_AN_INC_CYTD       := p_TOT_NRFI_AN_INC_CYTD;
4570    bal_TOT_NRFI_AN_INC_RUN        := p_TOT_NRFI_AN_INC_RUN;
4571    bal_TOT_NRFI_AN_INC_PTD        := p_TOT_NRFI_AN_INC_PTD;
4572    bal_TOT_NRFI_AN_INC_YTD        := p_TOT_NRFI_AN_INC_YTD;
4573    bal_TOT_NRFI_INC_CMTD          := p_TOT_NRFI_INC_CMTD;
4574    bal_TOT_NRFI_INC_CYTD          := p_TOT_NRFI_INC_CYTD;
4575    bal_TOT_NRFI_INC_RUN           := p_TOT_NRFI_INC_RUN;
4576    bal_TOT_NRFI_INC_PTD           := p_TOT_NRFI_INC_PTD;
4577    bal_TOT_NRFI_INC_YTD           := p_TOT_NRFI_INC_YTD;
4578    bal_TOT_RFI_AN_INC_CMTD        := p_TOT_RFI_AN_INC_CMTD;
4579    bal_TOT_RFI_AN_INC_CYTD        := p_TOT_RFI_AN_INC_CYTD;
4580    bal_TOT_RFI_AN_INC_RUN         := p_TOT_RFI_AN_INC_RUN;
4581    bal_TOT_RFI_AN_INC_PTD         := p_TOT_RFI_AN_INC_PTD;
4582    bal_TOT_RFI_AN_INC_YTD         := p_TOT_RFI_AN_INC_YTD;
4583    bal_TOT_RFI_INC_CMTD           := p_TOT_RFI_INC_CMTD;
4584    bal_TOT_RFI_INC_CYTD           := p_TOT_RFI_INC_CYTD;
4585    bal_TOT_RFI_INC_RUN            := p_TOT_RFI_INC_RUN;
4586    bal_TOT_RFI_INC_PTD            := p_TOT_RFI_INC_PTD;
4587    bal_TOT_RFI_INC_YTD            := p_TOT_RFI_INC_YTD;
4588    bal_TOT_SEA_WRK_DYS_WRK_YTD    := p_TOT_SEA_WRK_DYS_WRK_YTD;
4589    bal_TOT_TXB_INC_ITD            := p_TOT_TXB_INC_ITD;
4590    bal_TA_NRFI_CMTD               := p_TA_NRFI_CMTD;
4591    bal_TA_NRFI_CYTD               := p_TA_NRFI_CYTD;
4592    bal_TA_NRFI_PTD                := p_TA_NRFI_PTD;
4593    bal_TA_NRFI_YTD                := p_TA_NRFI_YTD;
4594    bal_TA_RFI_CMTD                := p_TA_RFI_CMTD;
4595    bal_TA_RFI_CYTD                := p_TA_RFI_CYTD;
4596    bal_TA_RFI_PTD                 := p_TA_RFI_PTD;
4597    bal_TA_RFI_YTD                 := p_TA_RFI_YTD;
4598    bal_USE_VEH_NRFI_CMTD          := p_USE_VEH_NRFI_CMTD;
4599    bal_USE_VEH_NRFI_CYTD          := p_USE_VEH_NRFI_CYTD;
4600    bal_USE_VEH_NRFI_RUN           := p_USE_VEH_NRFI_RUN;
4601    bal_USE_VEH_NRFI_PTD           := p_USE_VEH_NRFI_PTD;
4602    bal_USE_VEH_NRFI_YTD           := p_USE_VEH_NRFI_YTD;
4603    bal_USE_VEH_RFI_CMTD           := p_USE_VEH_RFI_CMTD;
4604    bal_USE_VEH_RFI_CYTD           := p_USE_VEH_RFI_CYTD;
4605    bal_USE_VEH_RFI_RUN            := p_USE_VEH_RFI_RUN;
4606    bal_USE_VEH_RFI_PTD            := p_USE_VEH_RFI_PTD;
4607    bal_USE_VEH_RFI_YTD            := p_USE_VEH_RFI_YTD;
4608 
4609    RETURN l_Dum;
4610 EXCEPTION
4611    WHEN OTHERS THEN
4612       hr_utility.set_message(801, 'ZaTxBal4_01032002: '||TO_CHAR(SQLCODE));
4613       hr_utility.raise_error;
4614 END ZaTxBal5_01032002;
4615 -------------------------------------------------------------------------------
4616 -- ZaTx_01032002                                                             --
4617 -- Main Tax module function                                                  --
4618 -------------------------------------------------------------------------------
4619 FUNCTION ZaTx_01032002(
4620 /*  PARAMETERS */
4621    -- Contexts
4622      ASSIGNMENT_ACTION_ID IN NUMBER
4623    , ASSIGNMENT_ID        IN NUMBER
4624    , PAYROLL_ACTION_ID    IN NUMBER
4625    , PAYROLL_ID           IN NUMBER
4626    -- Out Parameters
4627    , p_LibWrn            OUT NOCOPY VARCHAR2
4628    , p_LibFpDR           OUT NOCOPY NUMBER
4629    , p_LibFpNI           OUT NOCOPY NUMBER
4630    , p_LibFpFB           OUT NOCOPY NUMBER
4631    , p_LibFpTA           OUT NOCOPY NUMBER
4632    , p_LibFpBP           OUT NOCOPY NUMBER
4633    , p_LibFpAB           OUT NOCOPY NUMBER
4634    , p_LibFpAP           OUT NOCOPY NUMBER
4635    , p_LibFpPO           OUT NOCOPY NUMBER
4636    , p_PayValSD          OUT NOCOPY NUMBER
4637    , p_PayValEC          OUT NOCOPY NUMBER
4638    , p_PayeVal           OUT NOCOPY NUMBER
4639    , p_SiteVal           OUT NOCOPY NUMBER
4640    , p_It3Ind            OUT NOCOPY NUMBER
4641    , p_PfUpdFig          OUT NOCOPY NUMBER
4642    , p_RaUpdFig          OUT NOCOPY NUMBER
4643    , p_OUpdFig           OUT NOCOPY NUMBER
4644    , p_NtiUpdFig         OUT NOCOPY NUMBER
4645    , p_OvrWrn            OUT NOCOPY VARCHAR2
4646    )RETURN NUMBER
4647 AS
4648 -- Variables
4649 --
4650    l_Dum NUMBER := 1;
4651 
4652 -------------------------------------------------------------------------------
4653 BEGIN--                           MAIN                                       --
4654 -------------------------------------------------------------------------------
4655 -- Set hr_utility globals if debugging
4656 --
4657 --   py_za_tx_utl_01032002.g_HrTraceEnabled  := TRUE;
4658 --   py_za_tx_utl_01032002.g_HrTracePipeName := 'ZATAX';
4659 
4660 -- Call hr_utility start procedure
4661    py_za_tx_utl_01032002.StartHrTrace;
4662 
4663 -- Setup Trace Header Info
4664    WrtHrTrc(' ');
4665    WrtHrTrc(' ');
4666    WrtHrTrc(' ');
4667    WrtHrTrc('------------------------------------------------------------');
4668    WrtHrTrc('-- Start of Tax Trace File');
4669    WrtHrTrc('------------------------------------------------------------');
4670    WrtHrTrc(' ');
4671    WrtHrTrc('Processing Assignment ID :        '||to_char(ASSIGNMENT_ID       ));
4672    WrtHrTrc('Assignment Action ID     :        '||to_char(ASSIGNMENT_ACTION_ID));
4673    WrtHrTrc('Payroll Action ID        :        '||to_char(PAYROLL_ACTION_ID   ));
4674    WrtHrTrc('Payroll ID               :        '||to_char(PAYROLL_ID          ));
4675    WrtHrTrc(' ');
4676    WrtHrTrc('------------------------------------------------------------');
4677    WrtHrTrc(' ');
4678    WrtHrTrc('-------------------------------------------------------------------------------');
4679    WrtHrTrc('-- Application Global Values');
4680    WrtHrTrc('-------------------------------------------------------------------------------');
4681    WrtHrTrc('   glb_ZA_ADL_TX_RBT:             '||to_char(glb_ZA_ADL_TX_RBT        ));
4682    WrtHrTrc('   glb_ZA_ARR_PF_AN_MX_ABT:       '||to_char(glb_ZA_ARR_PF_AN_MX_ABT  ));
4683    WrtHrTrc('   glb_ZA_ARR_RA_AN_MX_ABT:       '||to_char(glb_ZA_ARR_RA_AN_MX_ABT  ));
4684    WrtHrTrc('   glb_ZA_TRV_ALL_TX_PRC:         '||to_char(glb_ZA_TRV_ALL_TX_PRC    ));
4685    WrtHrTrc('   glb_ZA_CC_TX_PRC:              '||to_char(glb_ZA_CC_TX_PRC         ));
4686    WrtHrTrc('   glb_ZA_LABOUR_BROK_PERC:       '||to_char(glb_ZA_LABOUR_BROK_PERC  ));
4687    WrtHrTrc('   glb_ZA_PF_AN_MX_ABT:           '||to_char(glb_ZA_PF_AN_MX_ABT      ));
4688    WrtHrTrc('   glb_ZA_PF_MX_PRC:              '||to_char(glb_ZA_PF_MX_PRC         ));
4689    WrtHrTrc('   glb_ZA_PER_SERV_COMP_PERC:     '||to_char(glb_ZA_PER_SERV_COMP_PERC));
4690    WrtHrTrc('   glb_ZA_PER_SERV_TRST_PERC:     '||to_char(glb_ZA_PER_SERV_TRST_PERC));
4691    WrtHrTrc('   glb_ZA_PRI_TX_RBT:             '||to_char(glb_ZA_PRI_TX_RBT        ));
4692    WrtHrTrc('   glb_ZA_PRI_TX_THRSHLD:         '||to_char(glb_ZA_PRI_TX_THRSHLD    ));
4693    WrtHrTrc('   glb_ZA_PBL_TX_PRC:             '||to_char(glb_ZA_PBL_TX_PRC        ));
4694    WrtHrTrc('   glb_ZA_PBL_TX_RTE:             '||to_char(glb_ZA_PBL_TX_RTE        ));
4695    WrtHrTrc('   glb_ZA_RA_AN_MX_ABT:           '||to_char(glb_ZA_RA_AN_MX_ABT      ));
4696    WrtHrTrc('   glb_ZA_RA_MX_PRC:              '||to_char(glb_ZA_RA_MX_PRC         ));
4697    WrtHrTrc('   glb_ZA_SC_TX_THRSHLD:          '||to_char(glb_ZA_SC_TX_THRSHLD     ));
4698    WrtHrTrc('   glb_ZA_SIT_LIM:                '||to_char(glb_ZA_SIT_LIM           ));
4699    WrtHrTrc('   glb_ZA_TMP_TX_RTE:             '||to_char(glb_ZA_TMP_TX_RTE        ));
4700    WrtHrTrc('   glb_ZA_WRK_DYS_PR_YR:          '||to_char(glb_ZA_WRK_DYS_PR_YR     ));
4701    WrtHrTrc('-------------------------------------------------------------------------------');
4702    WrtHrTrc('-- Application Database Items');
4703    WrtHrTrc('-------------------------------------------------------------------------------');
4704    WrtHrTrc('   dbi_BP_TX_RCV:                 '||        dbi_BP_TX_RCV                        );
4705    WrtHrTrc('   dbi_PAY_PROC_PRD_DTE_PD:       '||to_char(dbi_PAY_PROC_PRD_DTE_PD,'DD/MM/YYYY'));
4706    WrtHrTrc('   dbi_PER_AGE:                   '||to_char(dbi_PER_AGE                         ));
4707    WrtHrTrc('   dbi_PER_DTE_OF_BRTH:           '||to_char(dbi_PER_DTE_OF_BRTH    ,'DD/MM/YYYY'));
4708    WrtHrTrc('   dbi_SEA_WRK_DYS_WRK:           '||to_char(dbi_SEA_WRK_DYS_WRK                 ));
4709    WrtHrTrc('   dbi_SES_DTE:                   '||to_char(dbi_SES_DTE            ,'DD/MM/YYYY'));
4710    WrtHrTrc('   dbi_TX_DIR_NUM:                '||        dbi_TX_DIR_NUM                       );
4711    WrtHrTrc('   dbi_TX_DIR_VAL:                '||to_char(dbi_TX_DIR_VAL                      ));
4712    WrtHrTrc('   dbi_TX_STA:                    '||        dbi_TX_STA                           );
4713    WrtHrTrc('   dbi_ZA_ACT_END_DTE:            '||to_char(dbi_ZA_ACT_END_DTE     ,'DD/MM/YYYY'));
4714    WrtHrTrc('   dbi_ZA_ACT_STRT_DTE:           '||to_char(dbi_ZA_ACT_STRT_DTE    ,'DD/MM/YYYY'));
4715    WrtHrTrc('   dbi_ZA_ASG_TX_RTR_PRD:         '||        dbi_ZA_ASG_TX_RTR_PRD                );
4716    WrtHrTrc('   dbi_ZA_ASG_TX_YR:              '||to_char(dbi_ZA_ASG_TX_YR                    ));
4717    WrtHrTrc('   dbi_ZA_ASG_TX_YR_END:          '||to_char(dbi_ZA_ASG_TX_YR_END   ,'DD/MM/YYYY'));
4718    WrtHrTrc('   dbi_ZA_ASG_TX_YR_STRT:         '||to_char(dbi_ZA_ASG_TX_YR_STRT  ,'DD/MM/YYYY'));
4719    WrtHrTrc('   dbi_ZA_CUR_PRD_END_DTE:        '||to_char(dbi_ZA_CUR_PRD_END_DTE ,'DD/MM/YYYY'));
4720    WrtHrTrc('   dbi_ZA_CUR_PRD_STRT_DTE:       '||to_char(dbi_ZA_CUR_PRD_STRT_DTE,'DD/MM/YYYY'));
4721    WrtHrTrc('   dbi_ZA_DYS_IN_YR:              '||to_char(dbi_ZA_DYS_IN_YR                    ));
4722    WrtHrTrc('   dbi_ZA_PAY_PRDS_LFT:           '||to_char(dbi_ZA_PAY_PRDS_LFT                 ));
4723    WrtHrTrc('   dbi_ZA_PAY_PRDS_PER_YR:        '||to_char(dbi_ZA_PAY_PRDS_PER_YR              ));
4724    WrtHrTrc('   dbi_ZA_TX_YR_END:              '||to_char(dbi_ZA_TX_YR_END       ,'DD/MM/YYYY'));
4725    WrtHrTrc('   dbi_ZA_TX_YR_STRT:             '||to_char(dbi_ZA_TX_YR_STRT      ,'DD/MM/YYYY'));
4726    WrtHrTrc('-------------------------------------------------------------------------------');
4727    WrtHrTrc('-- Balances');
4728    WrtHrTrc('-------------------------------------------------------------------------------');
4729    WrtHrTrc('   bal_ANN_ARR_PF_CMTD:           '||to_char(bal_ANN_ARR_PF_CMTD          ));
4730    WrtHrTrc('   bal_ANN_ARR_PF_CYTD:           '||to_char(bal_ANN_ARR_PF_CYTD          ));
4731    WrtHrTrc('   bal_ANN_ARR_PF_RUN:            '||to_char(bal_ANN_ARR_PF_RUN           ));
4732    WrtHrTrc('   bal_ANN_ARR_PF_PTD:            '||to_char(bal_ANN_ARR_PF_PTD           ));
4733    WrtHrTrc('   bal_ANN_ARR_PF_YTD:            '||to_char(bal_ANN_ARR_PF_YTD           ));
4734    WrtHrTrc('   bal_ANN_ARR_RA_CMTD:           '||to_char(bal_ANN_ARR_RA_CMTD          ));
4735    WrtHrTrc('   bal_ANN_ARR_RA_CYTD:           '||to_char(bal_ANN_ARR_RA_CYTD          ));
4736    WrtHrTrc('   bal_ANN_ARR_RA_RUN:            '||to_char(bal_ANN_ARR_RA_RUN           ));
4737    WrtHrTrc('   bal_ANN_ARR_RA_PTD:            '||to_char(bal_ANN_ARR_RA_PTD           ));
4738    WrtHrTrc('   bal_ANN_ARR_RA_YTD:            '||to_char(bal_ANN_ARR_RA_YTD           ));
4739    WrtHrTrc('   bal_AA_PRCHD_RVAL_NRFI_CMTD:   '||to_char(bal_AA_PRCHD_RVAL_NRFI_CMTD  ));
4740    WrtHrTrc('   bal_AA_PRCHD_RVAL_NRFI_RUN:    '||to_char(bal_AA_PRCHD_RVAL_NRFI_RUN   ));
4741    WrtHrTrc('   bal_AA_PRCHD_RVAL_NRFI_PTD:    '||to_char(bal_AA_PRCHD_RVAL_NRFI_PTD   ));
4742    WrtHrTrc('   bal_AA_PRCHD_RVAL_NRFI_YTD:    '||to_char(bal_AA_PRCHD_RVAL_NRFI_YTD   ));
4743    WrtHrTrc('   bal_AA_PRCHD_RVAL_RFI_CMTD:    '||to_char(bal_AA_PRCHD_RVAL_RFI_CMTD   ));
4744    WrtHrTrc('   bal_AA_PRCHD_RVAL_RFI_RUN:     '||to_char(bal_AA_PRCHD_RVAL_RFI_RUN    ));
4745    WrtHrTrc('   bal_AA_PRCHD_RVAL_RFI_PTD:     '||to_char(bal_AA_PRCHD_RVAL_RFI_PTD    ));
4746    WrtHrTrc('   bal_AA_PRCHD_RVAL_RFI_YTD:     '||to_char(bal_AA_PRCHD_RVAL_RFI_YTD    ));
4747    WrtHrTrc('   bal_AB_NRFI_CMTD:              '||to_char(bal_AB_NRFI_CMTD             ));
4748    WrtHrTrc('   bal_AB_NRFI_RUN:               '||to_char(bal_AB_NRFI_RUN              ));
4749    WrtHrTrc('   bal_AB_NRFI_PTD:               '||to_char(bal_AB_NRFI_PTD              ));
4750    WrtHrTrc('   bal_AB_NRFI_YTD:               '||to_char(bal_AB_NRFI_YTD              ));
4751    WrtHrTrc('   bal_AB_RFI_CMTD:               '||to_char(bal_AB_RFI_CMTD              ));
4752    WrtHrTrc('   bal_AB_RFI_RUN:                '||to_char(bal_AB_RFI_RUN               ));
4753    WrtHrTrc('   bal_AB_RFI_PTD:                '||to_char(bal_AB_RFI_PTD               ));
4754    WrtHrTrc('   bal_AB_RFI_YTD:                '||to_char(bal_AB_RFI_YTD               ));
4755    WrtHrTrc('   bal_ANN_BUR_AND_SCH_NRFI_CMTD  '||to_char(bal_ANN_BUR_AND_SCH_NRFI_CMTD));
4756    WrtHrTrc('   bal_ANN_BUR_AND_SCH_NRFI_RUN   '||to_char(bal_ANN_BUR_AND_SCH_NRFI_RUN ));
4757    WrtHrTrc('   bal_ANN_BUR_AND_SCH_NRFI_PTD   '||to_char(bal_ANN_BUR_AND_SCH_NRFI_PTD ));
4758    WrtHrTrc('   bal_ANN_BUR_AND_SCH_NRFI_YTD   '||to_char(bal_ANN_BUR_AND_SCH_NRFI_YTD ));
4759    WrtHrTrc('   bal_ANN_BUR_AND_SCH_RFI_CMTD   '||to_char(bal_ANN_BUR_AND_SCH_RFI_CMTD ));
4760    WrtHrTrc('   bal_ANN_BUR_AND_SCH_RFI_RUN    '||to_char(bal_ANN_BUR_AND_SCH_RFI_RUN  ));
4761    WrtHrTrc('   bal_ANN_BUR_AND_SCH_RFI_PTD    '||to_char(bal_ANN_BUR_AND_SCH_RFI_PTD  ));
4762    WrtHrTrc('   bal_ANN_BUR_AND_SCH_RFI_YTD    '||to_char(bal_ANN_BUR_AND_SCH_RFI_YTD  ));
4763    WrtHrTrc('   bal_AC_NRFI_CMTD:              '||to_char(bal_AC_NRFI_CMTD             ));
4764    WrtHrTrc('   bal_AC_NRFI_RUN:               '||to_char(bal_AC_NRFI_RUN              ));
4765    WrtHrTrc('   bal_AC_NRFI_PTD:               '||to_char(bal_AC_NRFI_PTD              ));
4766    WrtHrTrc('   bal_AC_NRFI_YTD:               '||to_char(bal_AC_NRFI_YTD              ));
4767    WrtHrTrc('   bal_AC_RFI_CMTD:               '||to_char(bal_AC_RFI_CMTD              ));
4768    WrtHrTrc('   bal_AC_RFI_RUN:                '||to_char(bal_AC_RFI_RUN               ));
4769    WrtHrTrc('   bal_AC_RFI_PTD:                '||to_char(bal_AC_RFI_PTD               ));
4770    WrtHrTrc('   bal_AC_RFI_YTD:                '||to_char(bal_AC_RFI_YTD               ));
4771    WrtHrTrc('   bal_ANN_PF_CMTD:               '||to_char(bal_ANN_PF_CMTD              ));
4772    WrtHrTrc('   bal_ANN_PF_RUN:                '||to_char(bal_ANN_PF_RUN               ));
4773    WrtHrTrc('   bal_ANN_PF_PTD:                '||to_char(bal_ANN_PF_PTD               ));
4774    WrtHrTrc('   bal_ANN_PF_YTD:                '||to_char(bal_ANN_PF_YTD               ));
4775    WrtHrTrc('   bal_ARES_TRD_NRFI_CMTD:        '||to_char(bal_ARES_TRD_NRFI_CMTD       ));
4776    WrtHrTrc('   bal_ARES_TRD_NRFI_RUN:         '||to_char(bal_ARES_TRD_NRFI_RUN        ));
4777    WrtHrTrc('   bal_ARES_TRD_NRFI_PTD:         '||to_char(bal_ARES_TRD_NRFI_PTD        ));
4778    WrtHrTrc('   bal_ARES_TRD_NRFI_YTD:         '||to_char(bal_ARES_TRD_NRFI_YTD        ));
4779    WrtHrTrc('   bal_ARES_TRD_RFI_CMTD:         '||to_char(bal_ARES_TRD_RFI_CMTD        ));
4780    WrtHrTrc('   bal_ARES_TRD_RFI_RUN:          '||to_char(bal_ARES_TRD_RFI_RUN         ));
4781    WrtHrTrc('   bal_ARES_TRD_RFI_PTD:          '||to_char(bal_ARES_TRD_RFI_PTD         ));
4782    WrtHrTrc('   bal_ARES_TRD_RFI_YTD:          '||to_char(bal_ARES_TRD_RFI_YTD         ));
4783    WrtHrTrc('   bal_ANN_RA_CMTD:               '||to_char(bal_ANN_RA_CMTD              ));
4784    WrtHrTrc('   bal_ANN_RA_CYTD:               '||to_char(bal_ANN_RA_CYTD              ));
4785    WrtHrTrc('   bal_ANN_RA_RUN:                '||to_char(bal_ANN_RA_RUN               ));
4786    WrtHrTrc('   bal_ANN_RA_PTD:                '||to_char(bal_ANN_RA_PTD               ));
4787    WrtHrTrc('   bal_ANN_RA_YTD:                '||to_char(bal_ANN_RA_YTD               ));
4788    WrtHrTrc('   bal_ANU_FRM_RET_FND_NRFI_CMTD: '||to_char(bal_ANU_FRM_RET_FND_NRFI_CMTD));
4789    WrtHrTrc('   bal_ANU_FRM_RET_FND_NRFI_RUN:  '||to_char(bal_ANU_FRM_RET_FND_NRFI_RUN ));
4790    WrtHrTrc('   bal_ANU_FRM_RET_FND_NRFI_PTD:  '||to_char(bal_ANU_FRM_RET_FND_NRFI_PTD ));
4791    WrtHrTrc('   bal_ANU_FRM_RET_FND_NRFI_YTD:  '||to_char(bal_ANU_FRM_RET_FND_NRFI_YTD ));
4792    WrtHrTrc('   bal_ANU_FRM_RET_FND_RFI_CMTD:  '||to_char(bal_ANU_FRM_RET_FND_RFI_CMTD ));
4793    WrtHrTrc('   bal_ANU_FRM_RET_FND_RFI_RUN:   '||to_char(bal_ANU_FRM_RET_FND_RFI_RUN  ));
4794    WrtHrTrc('   bal_ANU_FRM_RET_FND_RFI_PTD:   '||to_char(bal_ANU_FRM_RET_FND_RFI_PTD  ));
4795    WrtHrTrc('   bal_ANU_FRM_RET_FND_RFI_YTD:   '||to_char(bal_ANU_FRM_RET_FND_RFI_YTD  ));
4796    WrtHrTrc('   bal_ARR_PF_CMTD:               '||to_char(bal_ARR_PF_CMTD              ));
4797    WrtHrTrc('   bal_ARR_PF_CYTD:               '||to_char(bal_ARR_PF_CYTD              ));
4798    WrtHrTrc('   bal_ARR_PF_PTD:                '||to_char(bal_ARR_PF_PTD               ));
4799    WrtHrTrc('   bal_ARR_PF_YTD:                '||to_char(bal_ARR_PF_YTD               ));
4800    WrtHrTrc('   bal_ARR_RA_CMTD:               '||to_char(bal_ARR_RA_CMTD              ));
4801    WrtHrTrc('   bal_ARR_RA_CYTD:               '||to_char(bal_ARR_RA_CYTD              ));
4802    WrtHrTrc('   bal_ARR_RA_PTD:                '||to_char(bal_ARR_RA_PTD               ));
4803    WrtHrTrc('   bal_ARR_RA_YTD:                '||to_char(bal_ARR_RA_YTD               ));
4804    WrtHrTrc('   bal_AST_PRCHD_RVAL_NRFI_CMTD:  '||to_char(bal_AST_PRCHD_RVAL_NRFI_CMTD ));
4805    WrtHrTrc('   bal_AST_PRCHD_RVAL_NRFI_CYTD:  '||to_char(bal_AST_PRCHD_RVAL_NRFI_CYTD ));
4806    WrtHrTrc('   bal_AST_PRCHD_RVAL_NRFI_RUN:   '||to_char(bal_AST_PRCHD_RVAL_NRFI_RUN  ));
4807    WrtHrTrc('   bal_AST_PRCHD_RVAL_NRFI_PTD:   '||to_char(bal_AST_PRCHD_RVAL_NRFI_PTD  ));
4808    WrtHrTrc('   bal_AST_PRCHD_RVAL_NRFI_YTD:   '||to_char(bal_AST_PRCHD_RVAL_NRFI_YTD  ));
4809    WrtHrTrc('   bal_AST_PRCHD_RVAL_RFI_CMTD:   '||to_char(bal_AST_PRCHD_RVAL_RFI_CMTD  ));
4810    WrtHrTrc('   bal_AST_PRCHD_RVAL_RFI_CYTD:   '||to_char(bal_AST_PRCHD_RVAL_RFI_CYTD  ));
4811    WrtHrTrc('   bal_AST_PRCHD_RVAL_RFI_RUN:    '||to_char(bal_AST_PRCHD_RVAL_RFI_RUN   ));
4812    WrtHrTrc('   bal_AST_PRCHD_RVAL_RFI_PTD:    '||to_char(bal_AST_PRCHD_RVAL_RFI_PTD   ));
4813    WrtHrTrc('   bal_AST_PRCHD_RVAL_RFI_YTD:    '||to_char(bal_AST_PRCHD_RVAL_RFI_YTD   ));
4814    WrtHrTrc('   bal_BP_CMTD:                   '||to_char(bal_BP_CMTD                  ));
4815    WrtHrTrc('   bal_BP_PTD:                    '||to_char(bal_BP_PTD                   ));
4816    WrtHrTrc('   bal_BP_YTD:                    '||to_char(bal_BP_YTD                   ));
4817    WrtHrTrc('   bal_BUR_AND_SCH_NRFI_CMTD:     '||to_char(bal_BUR_AND_SCH_NRFI_CMTD    ));
4818    WrtHrTrc('   bal_BUR_AND_SCH_NRFI_CYTD:     '||to_char(bal_BUR_AND_SCH_NRFI_CYTD    ));
4819    WrtHrTrc('   bal_BUR_AND_SCH_NRFI_RUN:      '||to_char(bal_BUR_AND_SCH_NRFI_RUN     ));
4820    WrtHrTrc('   bal_BUR_AND_SCH_NRFI_PTD:      '||to_char(bal_BUR_AND_SCH_NRFI_PTD     ));
4821    WrtHrTrc('   bal_BUR_AND_SCH_NRFI_YTD:      '||to_char(bal_BUR_AND_SCH_NRFI_YTD     ));
4822    WrtHrTrc('   bal_BUR_AND_SCH_RFI_CMTD:      '||to_char(bal_BUR_AND_SCH_RFI_CMTD     ));
4823    WrtHrTrc('   bal_BUR_AND_SCH_RFI_CYTD:      '||to_char(bal_BUR_AND_SCH_RFI_CYTD     ));
4824    WrtHrTrc('   bal_BUR_AND_SCH_RFI_RUN:       '||to_char(bal_BUR_AND_SCH_RFI_RUN      ));
4825    WrtHrTrc('   bal_BUR_AND_SCH_RFI_PTD:       '||to_char(bal_BUR_AND_SCH_RFI_PTD      ));
4826    WrtHrTrc('   bal_BUR_AND_SCH_RFI_YTD:       '||to_char(bal_BUR_AND_SCH_RFI_YTD      ));
4827    WrtHrTrc('   bal_COMM_NRFI_CMTD:            '||to_char(bal_COMM_NRFI_CMTD           ));
4828    WrtHrTrc('   bal_COMM_NRFI_CYTD:            '||to_char(bal_COMM_NRFI_CYTD           ));
4829    WrtHrTrc('   bal_COMM_NRFI_RUN:             '||to_char(bal_COMM_NRFI_RUN            ));
4830    WrtHrTrc('   bal_COMM_NRFI_PTD:             '||to_char(bal_COMM_NRFI_PTD            ));
4831    WrtHrTrc('   bal_COMM_NRFI_YTD:             '||to_char(bal_COMM_NRFI_YTD            ));
4832    WrtHrTrc('   bal_COMM_RFI_CMTD:             '||to_char(bal_COMM_RFI_CMTD            ));
4833    WrtHrTrc('   bal_COMM_RFI_CYTD:             '||to_char(bal_COMM_RFI_CYTD            ));
4834    WrtHrTrc('   bal_COMM_RFI_RUN:              '||to_char(bal_COMM_RFI_RUN             ));
4835    WrtHrTrc('   bal_COMM_RFI_PTD:              '||to_char(bal_COMM_RFI_PTD             ));
4836    WrtHrTrc('   bal_COMM_RFI_YTD:              '||to_char(bal_COMM_RFI_YTD             ));
4837    WrtHrTrc('   bal_COMP_ALL_NRFI_CMTD:        '||to_char(bal_COMP_ALL_NRFI_CMTD       ));
4838    WrtHrTrc('   bal_COMP_ALL_NRFI_CYTD:        '||to_char(bal_COMP_ALL_NRFI_CYTD       ));
4839    WrtHrTrc('   bal_COMP_ALL_NRFI_RUN:         '||to_char(bal_COMP_ALL_NRFI_RUN        ));
4840    WrtHrTrc('   bal_COMP_ALL_NRFI_PTD:         '||to_char(bal_COMP_ALL_NRFI_PTD        ));
4841    WrtHrTrc('   bal_COMP_ALL_NRFI_YTD:         '||to_char(bal_COMP_ALL_NRFI_YTD        ));
4842    WrtHrTrc('   bal_COMP_ALL_RFI_CMTD:         '||to_char(bal_COMP_ALL_RFI_CMTD        ));
4843    WrtHrTrc('   bal_COMP_ALL_RFI_CYTD:         '||to_char(bal_COMP_ALL_RFI_CYTD        ));
4844    WrtHrTrc('   bal_COMP_ALL_RFI_RUN:          '||to_char(bal_COMP_ALL_RFI_RUN         ));
4845    WrtHrTrc('   bal_COMP_ALL_RFI_PTD:          '||to_char(bal_COMP_ALL_RFI_PTD         ));
4846    WrtHrTrc('   bal_COMP_ALL_RFI_YTD:          '||to_char(bal_COMP_ALL_RFI_YTD         ));
4847    WrtHrTrc('   bal_PF_CMTD:                   '||to_char(bal_PF_CMTD                  ));
4848    WrtHrTrc('   bal_PF_CYTD:                   '||to_char(bal_PF_CYTD                  ));
4849    WrtHrTrc('   bal_PF_RUN:                    '||to_char(bal_PF_RUN                   ));
4850    WrtHrTrc('   bal_PF_PTD:                    '||to_char(bal_PF_PTD                   ));
4851    WrtHrTrc('   bal_PF_YTD:                    '||to_char(bal_PF_YTD                   ));
4852    WrtHrTrc('   bal_RA_CMTD:                   '||to_char(bal_RA_CMTD                  ));
4853    WrtHrTrc('   bal_RA_CYTD:                   '||to_char(bal_RA_CYTD                  ));
4854    WrtHrTrc('   bal_RA_RUN:                    '||to_char(bal_RA_RUN                   ));
4855    WrtHrTrc('   bal_RA_PTD:                    '||to_char(bal_RA_PTD                   ));
4856    WrtHrTrc('   bal_RA_YTD:                    '||to_char(bal_RA_YTD                   ));
4857    WrtHrTrc('   bal_DIR_DMD_RMN_ITD            '||to_char(bal_DIR_DMD_RMN_ITD          ));
4858    WrtHrTrc('   bal_ENT_ALL_NRFI_CMTD:         '||to_char(bal_ENT_ALL_NRFI_CMTD        ));
4859    WrtHrTrc('   bal_ENT_ALL_NRFI_CYTD:         '||to_char(bal_ENT_ALL_NRFI_CYTD        ));
4860    WrtHrTrc('   bal_ENT_ALL_NRFI_RUN:          '||to_char(bal_ENT_ALL_NRFI_RUN         ));
4861    WrtHrTrc('   bal_ENT_ALL_NRFI_PTD:          '||to_char(bal_ENT_ALL_NRFI_PTD         ));
4862    WrtHrTrc('   bal_ENT_ALL_NRFI_YTD:          '||to_char(bal_ENT_ALL_NRFI_YTD         ));
4863    WrtHrTrc('   bal_ENT_ALL_RFI_CMTD:          '||to_char(bal_ENT_ALL_RFI_CMTD         ));
4864    WrtHrTrc('   bal_ENT_ALL_RFI_CYTD:          '||to_char(bal_ENT_ALL_RFI_CYTD         ));
4865    WrtHrTrc('   bal_ENT_ALL_RFI_RUN:           '||to_char(bal_ENT_ALL_RFI_RUN          ));
4866    WrtHrTrc('   bal_ENT_ALL_RFI_PTD:           '||to_char(bal_ENT_ALL_RFI_PTD          ));
4867    WrtHrTrc('   bal_ENT_ALL_RFI_YTD:           '||to_char(bal_ENT_ALL_RFI_YTD          ));
4868    WrtHrTrc('   bal_EXC_ARR_PEN_ITD:           '||to_char(bal_EXC_ARR_PEN_ITD          ));
4869    WrtHrTrc('   bal_EXC_ARR_PEN_PTD:           '||to_char(bal_EXC_ARR_PEN_PTD          ));
4870    WrtHrTrc('   bal_EXC_ARR_PEN_YTD:           '||to_char(bal_EXC_ARR_PEN_YTD          ));
4871    WrtHrTrc('   bal_EXC_ARR_RA_ITD:            '||to_char(bal_EXC_ARR_RA_ITD           ));
4872    WrtHrTrc('   bal_EXC_ARR_RA_PTD:            '||to_char(bal_EXC_ARR_RA_PTD           ));
4873    WrtHrTrc('   bal_EXC_ARR_RA_YTD:            '||to_char(bal_EXC_ARR_RA_YTD           ));
4874    WrtHrTrc('   bal_FREE_ACCOM_NRFI_CMTD:      '||to_char(bal_FREE_ACCOM_NRFI_CMTD     ));
4875    WrtHrTrc('   bal_FREE_ACCOM_NRFI_CYTD:      '||to_char(bal_FREE_ACCOM_NRFI_CYTD     ));
4876    WrtHrTrc('   bal_FREE_ACCOM_NRFI_RUN:       '||to_char(bal_FREE_ACCOM_NRFI_RUN      ));
4877    WrtHrTrc('   bal_FREE_ACCOM_NRFI_PTD:       '||to_char(bal_FREE_ACCOM_NRFI_PTD      ));
4878    WrtHrTrc('   bal_FREE_ACCOM_NRFI_YTD:       '||to_char(bal_FREE_ACCOM_NRFI_YTD      ));
4879    WrtHrTrc('   bal_FREE_ACCOM_RFI_CMTD:       '||to_char(bal_FREE_ACCOM_RFI_CMTD      ));
4880    WrtHrTrc('   bal_FREE_ACCOM_RFI_CYTD:       '||to_char(bal_FREE_ACCOM_RFI_CYTD      ));
4881    WrtHrTrc('   bal_FREE_ACCOM_RFI_RUN:        '||to_char(bal_FREE_ACCOM_RFI_RUN       ));
4882    WrtHrTrc('   bal_FREE_ACCOM_RFI_PTD:        '||to_char(bal_FREE_ACCOM_RFI_PTD       ));
4883    WrtHrTrc('   bal_FREE_ACCOM_RFI_YTD:        '||to_char(bal_FREE_ACCOM_RFI_YTD       ));
4884    WrtHrTrc('   bal_FREE_SERV_NRFI_CMTD:       '||to_char(bal_FREE_SERV_NRFI_CMTD      ));
4885    WrtHrTrc('   bal_FREE_SERV_NRFI_CYTD:       '||to_char(bal_FREE_SERV_NRFI_CYTD      ));
4886    WrtHrTrc('   bal_FREE_SERV_NRFI_RUN:        '||to_char(bal_FREE_SERV_NRFI_RUN       ));
4887    WrtHrTrc('   bal_FREE_SERV_NRFI_PTD:        '||to_char(bal_FREE_SERV_NRFI_PTD       ));
4888    WrtHrTrc('   bal_FREE_SERV_NRFI_YTD:        '||to_char(bal_FREE_SERV_NRFI_YTD       ));
4889    WrtHrTrc('   bal_FREE_SERV_RFI_CMTD:        '||to_char(bal_FREE_SERV_RFI_CMTD       ));
4890    WrtHrTrc('   bal_FREE_SERV_RFI_CYTD:        '||to_char(bal_FREE_SERV_RFI_CYTD       ));
4891    WrtHrTrc('   bal_FREE_SERV_RFI_RUN:         '||to_char(bal_FREE_SERV_RFI_RUN        ));
4892    WrtHrTrc('   bal_FREE_SERV_RFI_PTD:         '||to_char(bal_FREE_SERV_RFI_PTD        ));
4893    WrtHrTrc('   bal_FREE_SERV_RFI_YTD:         '||to_char(bal_FREE_SERV_RFI_YTD        ));
4894    WrtHrTrc('   bal_LOW_LOANS_NRFI_CMTD:       '||to_char(bal_LOW_LOANS_NRFI_CMTD      ));
4895    WrtHrTrc('   bal_LOW_LOANS_NRFI_CYTD:       '||to_char(bal_LOW_LOANS_NRFI_CYTD      ));
4896    WrtHrTrc('   bal_LOW_LOANS_NRFI_RUN:        '||to_char(bal_LOW_LOANS_NRFI_RUN       ));
4897    WrtHrTrc('   bal_LOW_LOANS_NRFI_PTD:        '||to_char(bal_LOW_LOANS_NRFI_PTD       ));
4898    WrtHrTrc('   bal_LOW_LOANS_NRFI_YTD:        '||to_char(bal_LOW_LOANS_NRFI_YTD       ));
4899    WrtHrTrc('   bal_LOW_LOANS_RFI_CMTD:        '||to_char(bal_LOW_LOANS_RFI_CMTD       ));
4900    WrtHrTrc('   bal_LOW_LOANS_RFI_CYTD:        '||to_char(bal_LOW_LOANS_RFI_CYTD       ));
4901    WrtHrTrc('   bal_LOW_LOANS_RFI_RUN:         '||to_char(bal_LOW_LOANS_RFI_RUN        ));
4902    WrtHrTrc('   bal_LOW_LOANS_RFI_PTD:         '||to_char(bal_LOW_LOANS_RFI_PTD        ));
4903    WrtHrTrc('   bal_LOW_LOANS_RFI_YTD:         '||to_char(bal_LOW_LOANS_RFI_YTD        ));
4904    WrtHrTrc('   bal_MLS_AND_VOUCH_NRFI_CMTD:   '||to_char(bal_MLS_AND_VOUCH_NRFI_CMTD  ));
4905    WrtHrTrc('   bal_MLS_AND_VOUCH_NRFI_CYTD:   '||to_char(bal_MLS_AND_VOUCH_NRFI_CYTD  ));
4906    WrtHrTrc('   bal_MLS_AND_VOUCH_NRFI_RUN:    '||to_char(bal_MLS_AND_VOUCH_NRFI_RUN   ));
4907    WrtHrTrc('   bal_MLS_AND_VOUCH_NRFI_PTD:    '||to_char(bal_MLS_AND_VOUCH_NRFI_PTD   ));
4908    WrtHrTrc('   bal_MLS_AND_VOUCH_NRFI_YTD:    '||to_char(bal_MLS_AND_VOUCH_NRFI_YTD   ));
4909    WrtHrTrc('   bal_MLS_AND_VOUCH_RFI_CMTD:    '||to_char(bal_MLS_AND_VOUCH_RFI_CMTD   ));
4910    WrtHrTrc('   bal_MLS_AND_VOUCH_RFI_CYTD:    '||to_char(bal_MLS_AND_VOUCH_RFI_CYTD   ));
4911    WrtHrTrc('   bal_MLS_AND_VOUCH_RFI_RUN:     '||to_char(bal_MLS_AND_VOUCH_RFI_RUN    ));
4912    WrtHrTrc('   bal_MLS_AND_VOUCH_RFI_PTD:     '||to_char(bal_MLS_AND_VOUCH_RFI_PTD    ));
4913    WrtHrTrc('   bal_MLS_AND_VOUCH_RFI_YTD:     '||to_char(bal_MLS_AND_VOUCH_RFI_YTD    ));
4914    WrtHrTrc('   bal_MED_CONTR_CMTD:            '||to_char(bal_MED_CONTR_CMTD           ));
4915    WrtHrTrc('   bal_MED_CONTR_CYTD:            '||to_char(bal_MED_CONTR_CYTD           ));
4916    WrtHrTrc('   bal_MED_CONTR_RUN:             '||to_char(bal_MED_CONTR_RUN            ));
4917    WrtHrTrc('   bal_MED_CONTR_PTD:             '||to_char(bal_MED_CONTR_PTD            ));
4918    WrtHrTrc('   bal_MED_CONTR_YTD:             '||to_char(bal_MED_CONTR_YTD            ));
4919    WrtHrTrc('   bal_MED_PAID_NRFI_CMTD:        '||to_char(bal_MED_PAID_NRFI_CMTD       ));
4920    WrtHrTrc('   bal_MED_PAID_NRFI_CYTD:        '||to_char(bal_MED_PAID_NRFI_CYTD       ));
4921    WrtHrTrc('   bal_MED_PAID_NRFI_RUN:         '||to_char(bal_MED_PAID_NRFI_RUN        ));
4922    WrtHrTrc('   bal_MED_PAID_NRFI_PTD:         '||to_char(bal_MED_PAID_NRFI_PTD        ));
4923    WrtHrTrc('   bal_MED_PAID_NRFI_YTD:         '||to_char(bal_MED_PAID_NRFI_YTD        ));
4924    WrtHrTrc('   bal_MED_PAID_RFI_CMTD:         '||to_char(bal_MED_PAID_RFI_CMTD        ));
4925    WrtHrTrc('   bal_MED_PAID_RFI_CYTD:         '||to_char(bal_MED_PAID_RFI_CYTD        ));
4926    WrtHrTrc('   bal_MED_PAID_RFI_RUN:          '||to_char(bal_MED_PAID_RFI_RUN         ));
4927    WrtHrTrc('   bal_MED_PAID_RFI_PTD:          '||to_char(bal_MED_PAID_RFI_PTD         ));
4928    WrtHrTrc('   bal_MED_PAID_RFI_YTD:          '||to_char(bal_MED_PAID_RFI_YTD         ));
4929    WrtHrTrc('   bal_NET_PAY_RUN:               '||to_char(bal_NET_PAY_RUN              ));
4930    WrtHrTrc('   bal_NET_TXB_INC_CMTD:          '||to_char(bal_NET_TXB_INC_CMTD         ));
4931    WrtHrTrc('   bal_OTHER_TXB_ALL_NRFI_CMTD:   '||to_char(bal_OTHER_TXB_ALL_NRFI_CMTD  ));
4932    WrtHrTrc('   bal_OTHER_TXB_ALL_NRFI_CYTD:   '||to_char(bal_OTHER_TXB_ALL_NRFI_CYTD  ));
4933    WrtHrTrc('   bal_OTHER_TXB_ALL_NRFI_RUN:    '||to_char(bal_OTHER_TXB_ALL_NRFI_RUN   ));
4934    WrtHrTrc('   bal_OTHER_TXB_ALL_NRFI_PTD:    '||to_char(bal_OTHER_TXB_ALL_NRFI_PTD   ));
4935    WrtHrTrc('   bal_OTHER_TXB_ALL_NRFI_YTD:    '||to_char(bal_OTHER_TXB_ALL_NRFI_YTD   ));
4936    WrtHrTrc('   bal_OTHER_TXB_ALL_RFI_CMTD:    '||to_char(bal_OTHER_TXB_ALL_RFI_CMTD   ));
4937    WrtHrTrc('   bal_OTHER_TXB_ALL_RFI_CYTD:    '||to_char(bal_OTHER_TXB_ALL_RFI_CYTD   ));
4938    WrtHrTrc('   bal_OTHER_TXB_ALL_RFI_RUN:     '||to_char(bal_OTHER_TXB_ALL_RFI_RUN    ));
4939    WrtHrTrc('   bal_OTHER_TXB_ALL_RFI_PTD:     '||to_char(bal_OTHER_TXB_ALL_RFI_PTD    ));
4940    WrtHrTrc('   bal_OTHER_TXB_ALL_RFI_YTD:     '||to_char(bal_OTHER_TXB_ALL_RFI_YTD    ));
4941    WrtHrTrc('   bal_OVTM_NRFI_CMTD:            '||to_char(bal_OVTM_NRFI_CMTD           ));
4942    WrtHrTrc('   bal_OVTM_NRFI_CYTD:            '||to_char(bal_OVTM_NRFI_CYTD           ));
4943    WrtHrTrc('   bal_OVTM_NRFI_RUN:             '||to_char(bal_OVTM_NRFI_RUN            ));
4944    WrtHrTrc('   bal_OVTM_NRFI_PTD:             '||to_char(bal_OVTM_NRFI_PTD            ));
4945    WrtHrTrc('   bal_OVTM_NRFI_YTD:             '||to_char(bal_OVTM_NRFI_YTD            ));
4946    WrtHrTrc('   bal_OVTM_RFI_CMTD:             '||to_char(bal_OVTM_RFI_CMTD            ));
4947    WrtHrTrc('   bal_OVTM_RFI_CYTD:             '||to_char(bal_OVTM_RFI_CYTD            ));
4948    WrtHrTrc('   bal_OVTM_RFI_RUN:              '||to_char(bal_OVTM_RFI_RUN             ));
4949    WrtHrTrc('   bal_OVTM_RFI_PTD:              '||to_char(bal_OVTM_RFI_PTD             ));
4950    WrtHrTrc('   bal_OVTM_RFI_YTD:              '||to_char(bal_OVTM_RFI_YTD             ));
4951    WrtHrTrc('   bal_PAYE_YTD:                  '||to_char(bal_PAYE_YTD                 ));
4952    WrtHrTrc('   bal_PYM_DBT_NRFI_CMTD:         '||to_char(bal_PYM_DBT_NRFI_CMTD        ));
4953    WrtHrTrc('   bal_PYM_DBT_NRFI_CYTD:         '||to_char(bal_PYM_DBT_NRFI_CYTD        ));
4954    WrtHrTrc('   bal_PYM_DBT_NRFI_RUN:          '||to_char(bal_PYM_DBT_NRFI_RUN         ));
4955    WrtHrTrc('   bal_PYM_DBT_NRFI_PTD:          '||to_char(bal_PYM_DBT_NRFI_PTD         ));
4956    WrtHrTrc('   bal_PYM_DBT_NRFI_YTD:          '||to_char(bal_PYM_DBT_NRFI_YTD         ));
4957    WrtHrTrc('   bal_PYM_DBT_RFI_CMTD:          '||to_char(bal_PYM_DBT_RFI_CMTD         ));
4958    WrtHrTrc('   bal_PYM_DBT_RFI_CYTD:          '||to_char(bal_PYM_DBT_RFI_CYTD         ));
4959    WrtHrTrc('   bal_PYM_DBT_RFI_RUN:           '||to_char(bal_PYM_DBT_RFI_RUN          ));
4960    WrtHrTrc('   bal_PYM_DBT_RFI_PTD:           '||to_char(bal_PYM_DBT_RFI_PTD          ));
4961    WrtHrTrc('   bal_PYM_DBT_RFI_YTD:           '||to_char(bal_PYM_DBT_RFI_YTD          ));
4962    WrtHrTrc('   bal_PO_NRFI_CMTD:              '||to_char(bal_PO_NRFI_CMTD             ));
4963    WrtHrTrc('   bal_PO_NRFI_RUN:               '||to_char(bal_PO_NRFI_RUN              ));
4964    WrtHrTrc('   bal_PO_NRFI_PTD:               '||to_char(bal_PO_NRFI_PTD              ));
4965    WrtHrTrc('   bal_PO_NRFI_YTD:               '||to_char(bal_PO_NRFI_YTD              ));
4966    WrtHrTrc('   bal_PO_RFI_CMTD:               '||to_char(bal_PO_RFI_CMTD              ));
4967    WrtHrTrc('   bal_PO_RFI_RUN:                '||to_char(bal_PO_RFI_RUN               ));
4968    WrtHrTrc('   bal_PO_RFI_PTD:                '||to_char(bal_PO_RFI_PTD               ));
4969    WrtHrTrc('   bal_PO_RFI_YTD:                '||to_char(bal_PO_RFI_YTD               ));
4970    WrtHrTrc('   bal_PRCH_ANU_TXB_NRFI_CMTD:    '||to_char(bal_PRCH_ANU_TXB_NRFI_CMTD   ));
4971    WrtHrTrc('   bal_PRCH_ANU_TXB_NRFI_RUN:     '||to_char(bal_PRCH_ANU_TXB_NRFI_RUN    ));
4972    WrtHrTrc('   bal_PRCH_ANU_TXB_NRFI_PTD:     '||to_char(bal_PRCH_ANU_TXB_NRFI_PTD    ));
4973    WrtHrTrc('   bal_PRCH_ANU_TXB_NRFI_YTD:     '||to_char(bal_PRCH_ANU_TXB_NRFI_YTD    ));
4974    WrtHrTrc('   bal_PRCH_ANU_TXB_RFI_CMTD:     '||to_char(bal_PRCH_ANU_TXB_RFI_CMTD    ));
4975    WrtHrTrc('   bal_PRCH_ANU_TXB_RFI_RUN:      '||to_char(bal_PRCH_ANU_TXB_RFI_RUN     ));
4976    WrtHrTrc('   bal_PRCH_ANU_TXB_RFI_PTD:      '||to_char(bal_PRCH_ANU_TXB_RFI_PTD     ));
4977    WrtHrTrc('   bal_PRCH_ANU_TXB_RFI_YTD:      '||to_char(bal_PRCH_ANU_TXB_RFI_YTD     ));
4978    WrtHrTrc('   bal_RES_TRD_NRFI_CMTD:         '||to_char(bal_RES_TRD_NRFI_CMTD        ));
4979    WrtHrTrc('   bal_RES_TRD_NRFI_CYTD:         '||to_char(bal_RES_TRD_NRFI_CYTD        ));
4980    WrtHrTrc('   bal_RES_TRD_NRFI_RUN:          '||to_char(bal_RES_TRD_NRFI_RUN         ));
4981    WrtHrTrc('   bal_RES_TRD_NRFI_PTD:          '||to_char(bal_RES_TRD_NRFI_PTD         ));
4982    WrtHrTrc('   bal_RES_TRD_NRFI_YTD:          '||to_char(bal_RES_TRD_NRFI_YTD         ));
4983    WrtHrTrc('   bal_RES_TRD_RFI_CMTD:          '||to_char(bal_RES_TRD_RFI_CMTD         ));
4984    WrtHrTrc('   bal_RES_TRD_RFI_CYTD:          '||to_char(bal_RES_TRD_RFI_CYTD         ));
4985    WrtHrTrc('   bal_RES_TRD_RFI_RUN:           '||to_char(bal_RES_TRD_RFI_RUN          ));
4986    WrtHrTrc('   bal_RES_TRD_RFI_PTD:           '||to_char(bal_RES_TRD_RFI_PTD          ));
4987    WrtHrTrc('   bal_RES_TRD_RFI_YTD:           '||to_char(bal_RES_TRD_RFI_YTD          ));
4988    WrtHrTrc('   bal_RGT_AST_NRFI_CMTD:         '||to_char(bal_RGT_AST_NRFI_CMTD        ));
4989    WrtHrTrc('   bal_RGT_AST_NRFI_CYTD:         '||to_char(bal_RGT_AST_NRFI_CYTD        ));
4990    WrtHrTrc('   bal_RGT_AST_NRFI_RUN:          '||to_char(bal_RGT_AST_NRFI_RUN         ));
4991    WrtHrTrc('   bal_RGT_AST_NRFI_PTD:          '||to_char(bal_RGT_AST_NRFI_PTD         ));
4992    WrtHrTrc('   bal_RGT_AST_NRFI_YTD:          '||to_char(bal_RGT_AST_NRFI_YTD         ));
4993    WrtHrTrc('   bal_RGT_AST_RFI_CMTD:          '||to_char(bal_RGT_AST_RFI_CMTD         ));
4994    WrtHrTrc('   bal_RGT_AST_RFI_CYTD:          '||to_char(bal_RGT_AST_RFI_CYTD         ));
4995    WrtHrTrc('   bal_RGT_AST_RFI_RUN:           '||to_char(bal_RGT_AST_RFI_RUN          ));
4996    WrtHrTrc('   bal_RGT_AST_RFI_PTD:           '||to_char(bal_RGT_AST_RFI_PTD          ));
4997    WrtHrTrc('   bal_RGT_AST_RFI_YTD:           '||to_char(bal_RGT_AST_RFI_YTD          ));
4998    WrtHrTrc('   bal_SITE_YTD:                  '||to_char(bal_SITE_YTD                 ));
4999    WrtHrTrc('   bal_TAX_YTD:                   '||to_char(bal_TAX_YTD                  ));
5000    WrtHrTrc('   bal_TX_ON_AB_PTD:              '||to_char(bal_TX_ON_AB_PTD             ));
5001    WrtHrTrc('   bal_TX_ON_AB_YTD:              '||to_char(bal_TX_ON_AB_YTD             ));
5002    WrtHrTrc('   bal_TX_ON_AP_RUN:              '||to_char(bal_TX_ON_AP_RUN             ));
5003    WrtHrTrc('   bal_TX_ON_AP_PTD:              '||to_char(bal_TX_ON_AP_PTD             ));
5004    WrtHrTrc('   bal_TX_ON_AP_YTD:              '||to_char(bal_TX_ON_AP_YTD             ));
5005    WrtHrTrc('   bal_TX_ON_BP_PTD:              '||to_char(bal_TX_ON_BP_PTD             ));
5006    WrtHrTrc('   bal_TX_ON_BP_YTD:              '||to_char(bal_TX_ON_BP_YTD             ));
5007    WrtHrTrc('   bal_TX_ON_TA_PTD:              '||to_char(bal_TX_ON_TA_PTD             ));
5008    WrtHrTrc('   bal_TX_ON_TA_YTD:              '||to_char(bal_TX_ON_TA_YTD             ));
5009    WrtHrTrc('   bal_TX_ON_DR_PTD:              '||to_char(bal_TX_ON_DR_PTD             ));
5010    WrtHrTrc('   bal_TX_ON_DR_YTD:              '||to_char(bal_TX_ON_DR_YTD             ));
5011    WrtHrTrc('   bal_TX_ON_FB_PTD:              '||to_char(bal_TX_ON_FB_PTD             ));
5012    WrtHrTrc('   bal_TX_ON_FB_YTD:              '||to_char(bal_TX_ON_FB_YTD             ));
5013    WrtHrTrc('   bal_TX_ON_NI_PTD:              '||to_char(bal_TX_ON_NI_PTD             ));
5014    WrtHrTrc('   bal_TX_ON_NI_YTD:              '||to_char(bal_TX_ON_NI_YTD             ));
5015    WrtHrTrc('   bal_TX_ON_PO_PTD:              '||to_char(bal_TX_ON_PO_PTD             ));
5016    WrtHrTrc('   bal_TX_ON_PO_YTD:              '||to_char(bal_TX_ON_PO_YTD             ));
5017    WrtHrTrc('   bal_TXB_AP_NRFI_CMTD:          '||to_char(bal_TXB_AP_NRFI_CMTD         ));
5018    WrtHrTrc('   bal_TXB_AP_NRFI_RUN:           '||to_char(bal_TXB_AP_NRFI_RUN          ));
5019    WrtHrTrc('   bal_TXB_AP_NRFI_PTD:           '||to_char(bal_TXB_AP_NRFI_PTD          ));
5020    WrtHrTrc('   bal_TXB_AP_NRFI_YTD:           '||to_char(bal_TXB_AP_NRFI_YTD          ));
5021    WrtHrTrc('   bal_TXB_AP_RFI_CMTD:           '||to_char(bal_TXB_AP_RFI_CMTD          ));
5022    WrtHrTrc('   bal_TXB_AP_RFI_RUN:            '||to_char(bal_TXB_AP_RFI_RUN           ));
5023    WrtHrTrc('   bal_TXB_AP_RFI_PTD:            '||to_char(bal_TXB_AP_RFI_PTD           ));
5024    WrtHrTrc('   bal_TXB_AP_RFI_YTD:            '||to_char(bal_TXB_AP_RFI_YTD           ));
5025    WrtHrTrc('   bal_TXB_INC_NRFI_CMTD:         '||to_char(bal_TXB_INC_NRFI_CMTD        ));
5026    WrtHrTrc('   bal_TXB_INC_NRFI_CYTD:         '||to_char(bal_TXB_INC_NRFI_CYTD        ));
5027    WrtHrTrc('   bal_TXB_INC_NRFI_RUN:          '||to_char(bal_TXB_INC_NRFI_RUN         ));
5028    WrtHrTrc('   bal_TXB_INC_NRFI_PTD:          '||to_char(bal_TXB_INC_NRFI_PTD         ));
5029    WrtHrTrc('   bal_TXB_INC_NRFI_YTD:          '||to_char(bal_TXB_INC_NRFI_YTD         ));
5030    WrtHrTrc('   bal_TXB_INC_RFI_CMTD:          '||to_char(bal_TXB_INC_RFI_CMTD         ));
5031    WrtHrTrc('   bal_TXB_INC_RFI_CYTD:          '||to_char(bal_TXB_INC_RFI_CYTD         ));
5032    WrtHrTrc('   bal_TXB_INC_RFI_RUN:           '||to_char(bal_TXB_INC_RFI_RUN          ));
5033    WrtHrTrc('   bal_TXB_INC_RFI_PTD:           '||to_char(bal_TXB_INC_RFI_PTD          ));
5034    WrtHrTrc('   bal_TXB_INC_RFI_YTD:           '||to_char(bal_TXB_INC_RFI_YTD          ));
5035    WrtHrTrc('   bal_TXB_PEN_NRFI_CMTD:         '||to_char(bal_TXB_PEN_NRFI_CMTD        ));
5036    WrtHrTrc('   bal_TXB_PEN_NRFI_CYTD:         '||to_char(bal_TXB_PEN_NRFI_CYTD        ));
5037    WrtHrTrc('   bal_TXB_PEN_NRFI_RUN:          '||to_char(bal_TXB_PEN_NRFI_RUN         ));
5038    WrtHrTrc('   bal_TXB_PEN_NRFI_PTD:          '||to_char(bal_TXB_PEN_NRFI_PTD         ));
5039    WrtHrTrc('   bal_TXB_PEN_NRFI_YTD:          '||to_char(bal_TXB_PEN_NRFI_YTD         ));
5040    WrtHrTrc('   bal_TXB_PEN_RFI_CMTD:          '||to_char(bal_TXB_PEN_RFI_CMTD         ));
5041    WrtHrTrc('   bal_TXB_PEN_RFI_CYTD:          '||to_char(bal_TXB_PEN_RFI_CYTD         ));
5042    WrtHrTrc('   bal_TXB_PEN_RFI_RUN:           '||to_char(bal_TXB_PEN_RFI_RUN          ));
5043    WrtHrTrc('   bal_TXB_PEN_RFI_PTD:           '||to_char(bal_TXB_PEN_RFI_PTD          ));
5044    WrtHrTrc('   bal_TXB_PEN_RFI_YTD:           '||to_char(bal_TXB_PEN_RFI_YTD          ));
5045    WrtHrTrc('   bal_TEL_ALL_NRFI_CMTD:         '||to_char(bal_TEL_ALL_NRFI_CMTD        ));
5046    WrtHrTrc('   bal_TEL_ALL_NRFI_CYTD:         '||to_char(bal_TEL_ALL_NRFI_CYTD        ));
5047    WrtHrTrc('   bal_TEL_ALL_NRFI_RUN:          '||to_char(bal_TEL_ALL_NRFI_RUN         ));
5048    WrtHrTrc('   bal_TEL_ALL_NRFI_PTD:          '||to_char(bal_TEL_ALL_NRFI_PTD         ));
5049    WrtHrTrc('   bal_TEL_ALL_NRFI_YTD:          '||to_char(bal_TEL_ALL_NRFI_YTD         ));
5050    WrtHrTrc('   bal_TEL_ALL_RFI_CMTD:          '||to_char(bal_TEL_ALL_RFI_CMTD         ));
5051    WrtHrTrc('   bal_TEL_ALL_RFI_CYTD:          '||to_char(bal_TEL_ALL_RFI_CYTD         ));
5052    WrtHrTrc('   bal_TEL_ALL_RFI_RUN:           '||to_char(bal_TEL_ALL_RFI_RUN          ));
5053    WrtHrTrc('   bal_TEL_ALL_RFI_PTD:           '||to_char(bal_TEL_ALL_RFI_PTD          ));
5054    WrtHrTrc('   bal_TEL_ALL_RFI_YTD:           '||to_char(bal_TEL_ALL_RFI_YTD          ));
5055    WrtHrTrc('   bal_TOOL_ALL_NRFI_CMTD:        '||to_char(bal_TOOL_ALL_NRFI_CMTD       ));
5056    WrtHrTrc('   bal_TOOL_ALL_NRFI_CYTD:        '||to_char(bal_TOOL_ALL_NRFI_CYTD       ));
5057    WrtHrTrc('   bal_TOOL_ALL_NRFI_RUN:         '||to_char(bal_TOOL_ALL_NRFI_RUN        ));
5058    WrtHrTrc('   bal_TOOL_ALL_NRFI_PTD:         '||to_char(bal_TOOL_ALL_NRFI_PTD        ));
5059    WrtHrTrc('   bal_TOOL_ALL_NRFI_YTD:         '||to_char(bal_TOOL_ALL_NRFI_YTD        ));
5060    WrtHrTrc('   bal_TOOL_ALL_RFI_CMTD:         '||to_char(bal_TOOL_ALL_RFI_CMTD        ));
5061    WrtHrTrc('   bal_TOOL_ALL_RFI_CYTD:         '||to_char(bal_TOOL_ALL_RFI_CYTD        ));
5062    WrtHrTrc('   bal_TOOL_ALL_RFI_RUN:          '||to_char(bal_TOOL_ALL_RFI_RUN         ));
5063    WrtHrTrc('   bal_TOOL_ALL_RFI_PTD:          '||to_char(bal_TOOL_ALL_RFI_PTD         ));
5064    WrtHrTrc('   bal_TOOL_ALL_RFI_YTD:          '||to_char(bal_TOOL_ALL_RFI_YTD         ));
5065    WrtHrTrc('   bal_TOT_INC_PTD:               '||to_char(bal_TOT_INC_PTD              ));
5066    WrtHrTrc('   bal_TOT_INC_YTD:               '||to_char(bal_TOT_INC_YTD              ));
5067    WrtHrTrc('   bal_TOT_NRFI_AN_INC_CMTD:      '||to_char(bal_TOT_NRFI_AN_INC_CMTD     ));
5068    WrtHrTrc('   bal_TOT_NRFI_AN_INC_CYTD:      '||to_char(bal_TOT_NRFI_AN_INC_CYTD     ));
5069    WrtHrTrc('   bal_TOT_NRFI_AN_INC_RUN:       '||to_char(bal_TOT_NRFI_AN_INC_RUN      ));
5070    WrtHrTrc('   bal_TOT_NRFI_AN_INC_PTD:       '||to_char(bal_TOT_NRFI_AN_INC_PTD      ));
5071    WrtHrTrc('   bal_TOT_NRFI_AN_INC_YTD:       '||to_char(bal_TOT_NRFI_AN_INC_YTD      ));
5072    WrtHrTrc('   bal_TOT_NRFI_INC_CMTD:         '||to_char(bal_TOT_NRFI_INC_CMTD        ));
5073    WrtHrTrc('   bal_TOT_NRFI_INC_CYTD:         '||to_char(bal_TOT_NRFI_INC_CYTD        ));
5074    WrtHrTrc('   bal_TOT_NRFI_INC_RUN:          '||to_char(bal_TOT_NRFI_INC_RUN         ));
5075    WrtHrTrc('   bal_TOT_NRFI_INC_PTD:          '||to_char(bal_TOT_NRFI_INC_PTD         ));
5076    WrtHrTrc('   bal_TOT_NRFI_INC_YTD:          '||to_char(bal_TOT_NRFI_INC_YTD         ));
5077    WrtHrTrc('   bal_TOT_RFI_AN_INC_CMTD:       '||to_char(bal_TOT_RFI_AN_INC_CMTD      ));
5078    WrtHrTrc('   bal_TOT_RFI_AN_INC_CYTD:       '||to_char(bal_TOT_RFI_AN_INC_CYTD      ));
5079    WrtHrTrc('   bal_TOT_RFI_AN_INC_RUN:        '||to_char(bal_TOT_RFI_AN_INC_RUN       ));
5080    WrtHrTrc('   bal_TOT_RFI_AN_INC_PTD:        '||to_char(bal_TOT_RFI_AN_INC_PTD       ));
5081    WrtHrTrc('   bal_TOT_RFI_AN_INC_YTD:        '||to_char(bal_TOT_RFI_AN_INC_YTD       ));
5082    WrtHrTrc('   bal_TOT_RFI_INC_CMTD:          '||to_char(bal_TOT_RFI_INC_CMTD         ));
5083    WrtHrTrc('   bal_TOT_RFI_INC_CYTD:          '||to_char(bal_TOT_RFI_INC_CYTD         ));
5084    WrtHrTrc('   bal_TOT_RFI_INC_RUN:           '||to_char(bal_TOT_RFI_INC_RUN          ));
5085    WrtHrTrc('   bal_TOT_RFI_INC_PTD:           '||to_char(bal_TOT_RFI_INC_PTD          ));
5086    WrtHrTrc('   bal_TOT_RFI_INC_YTD:           '||to_char(bal_TOT_RFI_INC_YTD          ));
5087    WrtHrTrc('   bal_TOT_SEA_WRK_DYS_WRK_YTD:   '||to_char(bal_TOT_SEA_WRK_DYS_WRK_YTD  ));
5088    WrtHrTrc('   bal_TOT_TXB_INC_ITD:           '||to_char(bal_TOT_TXB_INC_ITD          ));
5089    WrtHrTrc('   bal_TA_NRFI_CMTD:              '||to_char(bal_TA_NRFI_CMTD             ));
5090    WrtHrTrc('   bal_TA_NRFI_CYTD:              '||to_char(bal_TA_NRFI_CYTD             ));
5091    WrtHrTrc('   bal_TA_NRFI_PTD:               '||to_char(bal_TA_NRFI_PTD              ));
5092    WrtHrTrc('   bal_TA_NRFI_YTD:               '||to_char(bal_TA_NRFI_YTD              ));
5093    WrtHrTrc('   bal_TA_RFI_CMTD:               '||to_char(bal_TA_RFI_CMTD              ));
5094    WrtHrTrc('   bal_TA_RFI_CYTD:               '||to_char(bal_TA_RFI_CYTD              ));
5095    WrtHrTrc('   bal_TA_RFI_PTD:                '||to_char(bal_TA_RFI_PTD               ));
5096    WrtHrTrc('   bal_TA_RFI_YTD:                '||to_char(bal_TA_RFI_YTD               ));
5097    WrtHrTrc('   bal_USE_VEH_NRFI_CMTD:         '||to_char(bal_USE_VEH_NRFI_CMTD        ));
5098    WrtHrTrc('   bal_USE_VEH_NRFI_CYTD:         '||to_char(bal_USE_VEH_NRFI_CYTD        ));
5099    WrtHrTrc('   bal_USE_VEH_NRFI_RUN:          '||to_char(bal_USE_VEH_NRFI_RUN         ));
5100    WrtHrTrc('   bal_USE_VEH_NRFI_PTD:          '||to_char(bal_USE_VEH_NRFI_PTD         ));
5101    WrtHrTrc('   bal_USE_VEH_NRFI_YTD:          '||to_char(bal_USE_VEH_NRFI_YTD         ));
5102    WrtHrTrc('   bal_USE_VEH_RFI_CMTD:          '||to_char(bal_USE_VEH_RFI_CMTD         ));
5103    WrtHrTrc('   bal_USE_VEH_RFI_CYTD:          '||to_char(bal_USE_VEH_RFI_CYTD         ));
5104    WrtHrTrc('   bal_USE_VEH_RFI_RUN:           '||to_char(bal_USE_VEH_RFI_RUN          ));
5105    WrtHrTrc('   bal_USE_VEH_RFI_PTD:           '||to_char(bal_USE_VEH_RFI_PTD          ));
5106    WrtHrTrc('   bal_USE_VEH_RFI_YTD:           '||to_char(bal_USE_VEH_RFI_YTD          ));
5107 
5108    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',1);
5109 
5110 -- Initialise Package Globals
5111 -- Contexts
5112    con_ASG_ACT_ID := ASSIGNMENT_ACTION_ID;
5113    con_ASG_ID     := ASSIGNMENT_ID;
5114    con_PRL_ACT_ID := PAYROLL_ACTION_ID;
5115    con_PRL_ID     := PAYROLL_ID;
5116 
5117    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',2);
5118 
5119 -- Date Effective Tax Status Validation
5120 --
5121 /*   IF dbi_TX_STA IN ('J','K','L') THEN
5122       IF xpt_Msg = 'No Error' THEN
5123          xpt_Msg := 'PY_ZA_TX_STATE_AUG';
5124       END IF;
5125       RAISE xpt_E;
5126    END IF;
5127 */
5128 -- Tax Override Validation
5129 --
5130    /*
5131    V = Amount
5132    P = Percentage
5133    S = Force Site Calculation
5134    */
5135 
5136 --  Tax Status Validation
5137 --
5138    /*
5139    A = Normal
5140    B = Provisional
5141    C = Directive Amount
5142    D = Directive Percentage
5143    E = Close Corporation
5144    F = Temporary Worker/Student
5145    G = Seasonal Worker
5146    H = Zero Tax
5147    J = Personal Service Company
5148    K = Personal Service Trust
5149    L = Labour Broker
5150    M = Private Director
5151    N = Private Director with Directive Amount
5152    P = Private Director with Directive Percentage
5153    Q = Private Director Zero Tax
5154    */
5155    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',3);
5156 
5157 -- C = Directive Amount
5158 -- N = Private Director with Directive Amount
5159 --
5160    IF dbi_TX_STA IN ('C','N') THEN
5161       IF trc_OvrTxCalc AND (trc_OvrTyp = 'S' OR trc_OvrTyp = 'P') THEN
5162          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',4);
5163          IF xpt_Msg = 'No Error' THEN
5164             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',5);
5165             xpt_Msg := 'PY_ZA_TX_OVR_TX_STATE_C';
5166          END IF;
5167          RAISE xpt_E;
5168          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',6);
5169       ELSIF trc_OvrTxCalc AND trc_OvrTyp = 'V' THEN
5170          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',7);
5171          trc_CalTyp := 'OvrCalc';
5172          trc_OvrWrn := 'WARNING: Tax Override - Total Tax Value: '||to_char(trc_LibFpNI + trc_LibFpAP);
5173       -- Check Directive Number First
5174       ELSIF dbi_TX_DIR_NUM = 'NULL' THEN
5175          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',8);
5176          IF xpt_Msg = 'No Error' THEN
5177             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',9);
5178             xpt_Msg := 'PY_ZA_TX_DIR_NUM';
5179          END IF;
5180          RAISE xpt_E;
5181       -- Check that directive value is filled in
5182       ELSIF dbi_TX_DIR_VAL = -1 THEN
5183          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',10);
5184          IF xpt_Msg = 'No Error' THEN
5185             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',11);
5186             xpt_Msg := 'PY_ZA_TX_DIR_MONT';
5187          END IF;
5188          RAISE xpt_E;
5189       ELSE
5190          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',12);
5191          trc_CalTyp := 'NoCalc';
5192          -- Liability = entered value
5193          trc_LibFpNI := dbi_TX_DIR_VAL;
5194          -- Standard NetPay Validation
5195          py_za_tx_utl_01032002.ValidateTaxOns;
5196       END IF;
5197 -- D = Directive Percentage
5198 -- P = Private Director wth Directive Percentage
5199 --
5200    ELSIF dbi_TX_STA IN ('D','P') THEN
5201       IF trc_OvrTxCalc AND trc_OvrTyp = 'S' THEN
5202          IF xpt_Msg = 'No Error' THEN
5203             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',13);
5204             xpt_Msg := 'PY_ZA_TX_OVR_TX_STATE_DEF';
5205          END IF;
5206          RAISE xpt_E;
5207          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',14);
5208       ELSIF trc_OvrTxCalc AND trc_OvrTyp = 'V' THEN
5209          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',15);
5210          trc_CalTyp := 'OvrCalc';
5211          trc_OvrWrn := 'WARNING: Tax Override - Total Tax Value: '||to_char(trc_LibFpNI + trc_LibFpAP);
5212       ELSE
5213          IF trc_OvrTxCalc AND trc_OvrTyp = 'P' THEN
5214             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',16);
5215             trc_OvrWrn := 'WARNING: Tax Override - '||to_char(trc_OvrPrc)||' Percent';
5216             -- Percentage taken into account in py_za_tx_utl_01032002.TaxLiability
5217          END IF;
5218          -- Check Directive Number First
5219          IF dbi_TX_DIR_NUM = 'NULL' THEN
5220             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',17);
5221             IF xpt_Msg = 'No Error' THEN
5222                hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',18);
5223                xpt_Msg := 'PY_ZA_TX_DIR_NUM';
5224             END IF;
5225             RAISE xpt_E;
5226          -- Check that directive value is filled in
5227          ELSIF dbi_TX_DIR_VAL = -1 THEN
5228             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',19);
5229             IF xpt_Msg = 'No Error' THEN
5230                hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',20);
5231                xpt_Msg := 'PY_ZA_TX_DIR_PERC';
5232             END IF;
5233             RAISE xpt_E;
5234          ELSE
5235             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',21);
5236             DirCalc;
5237          END IF;
5238       END IF;
5239 -- E = Close Corporation
5240 -- F = Temporary Worker/Student
5241 -- J = Personal Service Company
5242 -- K = Personal Service Trust
5243 -- L = Labour Broker
5244 --
5245    ELSIF dbi_TX_STA IN ('E','F','J','K','L') THEN
5246       IF trc_OvrTxCalc AND trc_OvrTyp = 'S' THEN
5247          IF xpt_Msg = 'No Error' THEN
5248             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',22);
5249             xpt_Msg := 'PY_ZA_TX_OVR_TX_STATE_DEF';
5250          END IF;
5251          RAISE xpt_E;
5252          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',23);
5253       ELSIF trc_OvrTxCalc AND trc_OvrTyp = 'V' THEN
5254          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',24);
5255          trc_CalTyp := 'OvrCalc';
5256          trc_OvrWrn := 'WARNING: Tax Override - Total Tax Value: '||to_char(trc_LibFpNI + trc_LibFpAP);
5257       ELSE
5258          IF trc_OvrTxCalc AND trc_OvrTyp = 'P' THEN
5259             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',25);
5260             trc_OvrWrn := 'WARNING: Tax Override - '||to_char(trc_OvrPrc)||' Percent';
5261             -- Percentage taken into account in py_za_tx_utl_01032002.TaxLiability
5262          END IF;
5263          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',26);
5264          -- Simply Execute the Directive Calculation
5265          DirCalc;
5266       END IF;
5267 -- G = Seasonal Worker
5268 --
5269    ELSIF dbi_TX_STA = 'G' THEN
5270       IF trc_OvrTxCalc AND (trc_OvrTyp = 'S' OR trc_OvrTyp = 'P') THEN
5271          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',27);
5272          IF xpt_Msg = 'No Error' THEN
5273             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',28);
5274             xpt_Msg := 'PY_ZA_TX_OVR_TX_STATE_G';
5275          END IF;
5276          RAISE xpt_E;
5277          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',29);
5278       -- Check that seasonal worker days worked is filled in
5279       ELSIF dbi_SEA_WRK_DYS_WRK = 0 THEN
5280          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',30);
5281          IF xpt_Msg = 'No Error' THEN
5282             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',31);
5283             xpt_Msg := 'PY_ZA_TX_SEA_WRK_DYS';
5284          END IF;
5285          RAISE xpt_E;
5286       ELSE
5287          IF trc_OvrTxCalc AND trc_OvrTyp = 'V' THEN
5288             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',32);
5289             trc_CalTyp := 'OvrCalc';
5290             trc_OvrWrn := 'WARNING: Tax Override - Total Tax Value: '||to_char(trc_LibFpNI + trc_LibFpAP);
5291             py_za_tx_utl_01032002.SetRebates;
5292          ELSE
5293             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',33);
5294             SeaCalc;
5295          END IF;
5296       END IF;
5297 -- A = Normal
5298 -- B = Provisional
5299 -- M = Private Director
5300 --
5301    ELSIF dbi_TX_STA IN ('A','B','M') THEN
5302       IF dbi_TX_STA <> 'M' THEN
5303          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',34);
5304          -- Deemed Remuneration only applicable to 'M'
5305          bal_DIR_DMD_RMN_ITD := 0;
5306       END IF;
5307 
5308       IF trc_OvrTxCalc AND trc_OvrTyp = 'V' THEN
5309          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',35);
5310          trc_CalTyp := 'OvrCalc';
5311          trc_OvrWrn := 'WARNING: Tax Override - Total Tax Value: '||to_char(trc_LibFpNI + trc_LibFpAP);
5312          py_za_tx_utl_01032002.SetRebates;
5313          trc_SitFactor := dbi_ZA_DYS_IN_YR / py_za_tx_utl_01032002.DaysWorked;
5314       ELSIF trc_OvrTxCalc AND trc_OvrTyp = 'S' THEN
5315          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',36);
5316          trc_CalTyp := 'OvrCalc';
5317          trc_OvrWrn := 'WARNING: Tax Override - Forced Site Calculation';
5318          -- Force the Site Calculation
5319          SitCalc;
5320          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',37);
5321       ELSE
5322          IF trc_OvrTxCalc AND trc_OvrTyp = 'P' THEN
5323             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',38);
5324             trc_OvrWrn := 'WARNING: Tax Override - '||to_char(trc_OvrPrc)||' Percent';
5325             -- Percentage taken into account in py_za_tx_utl_01032002.TaxLiability
5326          END IF;
5327 
5328          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',39);
5329          IF py_za_tx_utl_01032002.LatePayPeriod THEN
5330             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',40);
5331             LteCalc;
5332          -- Is this a SITE Period?
5333          ELSIF py_za_tx_utl_01032002.EmpTermPrePeriod THEN
5334             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',41);
5335             SitCalc;
5336          ELSIF py_za_tx_utl_01032002.LstPeriod OR py_za_tx_utl_01032002.EmpTermInPeriod THEN
5337             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',42);
5338             IF py_za_tx_utl_01032002.PreErnPeriod THEN
5339                hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',43);
5340                YtdCalc;
5341             ELSE
5342                hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',44);
5343                SitCalc;
5344             END IF;
5345          ElSE
5346             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',45);
5347             -- The employee has NOT been terminated!
5348             IF py_za_tx_utl_01032002.PreErnPeriod THEN
5349                hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',46);
5350                YtdCalc;
5351             ELSIF dbi_ZA_ASG_TX_RTR_PRD = 'Y' THEN
5352                hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',47);
5353                SitCalc;
5354             ELSIF py_za_tx_utl_01032002.NegPtd THEN
5355                hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',48);
5356                SitCalc;
5357             ELSE
5358                hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',49);
5359                NorCalc;
5360             END IF;
5361          END IF;
5362       END IF;
5363 -- H = Zero Tax
5364 -- Q = Private Director Zero Tax
5365 --
5366    ELSIF dbi_TX_STA IN ('H','Q') THEN
5367       IF trc_OvrTxCalc THEN
5368          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',50);
5369          IF xpt_Msg = 'No Error' THEN
5370             hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',51);
5371             xpt_Msg := 'PY_ZA_TX_OVR_TX_STATE_H';
5372          END IF;
5373          RAISE xpt_E;
5374       ELSE
5375          hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',52);
5376          trc_LibFpNI := -1 * bal_TX_ON_NI_YTD;
5377          trc_LibFpFB := -1 * bal_TX_ON_FB_YTD;
5378          trc_LibFpTA := -1 * bal_TX_ON_TA_YTD;
5379          trc_LibFpBP := -1 * bal_TX_ON_BP_YTD;
5380          trc_LibFpAB := -1 * bal_TX_ON_AB_YTD;
5381          trc_LibFpAP := -1 * bal_TX_ON_AP_YTD;
5382          trc_LibFpPO := -1 * bal_TX_ON_PO_YTD;
5383       END IF;
5384    ELSE
5385       hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',53);
5386       hr_utility.set_message(801, 'ERROR: Invalid Tax Status');
5387       hr_utility.raise_error;
5388    END IF;
5389 
5390    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',54);
5391 
5392 -- Post Calculation Steps
5393 --
5394    py_za_tx_utl_01032002.SitPaySplit;
5395 
5396    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',55);
5397 
5398 -- Execute the Arrear Processing
5399 --
5400    IF py_za_tx_utl_01032002.SitePeriod THEN
5401       hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',56);
5402       py_za_tx_utl_01032002.ArrearExcess;
5403    END IF;
5404 
5405    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',57);
5406 
5407 -- Calculate Net Taxable Income
5408 --
5409    NetTxbIncCalc;
5410 
5411    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',58);
5412 
5413 -- Setup the Out Parameters
5414 --
5415    -- Messages
5416    p_LibWrn := trc_LibWrn;   -- Liability Warning
5417    p_OvrWrn := trc_OvrWrn;   -- Override Warning
5418 
5419    -- Pay Values
5420    trc_PayValSD := ( trc_LibFpNI
5421                    + trc_LibFpFB
5422                    + trc_LibFpTA
5423                    + trc_LibFpBP
5424                    + trc_LibFpAB
5425                    + trc_LibFpAP
5426                    + trc_LibFpPO
5427                    );
5428    trc_PayValEC := trc_LibFpDR;
5429 
5430    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',59);
5431 
5432    -- Tax On's
5433    p_LibFpDR  := trc_LibFpDR;
5434    p_LibFpNI  := trc_LibFpNI;
5435    p_LibFpFB  := trc_LibFpFB;
5436    p_LibFpTA  := trc_LibFpTA;
5437    p_LibFpBP  := trc_LibFpBP;
5438    p_LibFpAB  := trc_LibFpAB;
5439    p_LibFpAP  := trc_LibFpAP;
5440    p_LibFpPO  := trc_LibFpPO;
5441    p_PayValSD := trc_PayValSD;
5442    p_PayValEC := trc_PayValEC;
5443 
5444    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',60);
5445 
5446    -- Indicators, Splits and Updates
5447    p_PayeVal   := trc_PayeVal;
5448    p_SiteVal   := trc_SiteVal;
5449    p_It3Ind    := trc_It3Ind;
5450    p_PfUpdFig  := trc_PfUpdFig;
5451    p_RaUpdFig  := trc_RaUpdFig;
5452    p_OUpdFig   := trc_OUpdFig;
5453    p_NtiUpdFig := trc_NtiUpdFig;
5454 
5455    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',61);
5456 
5457 -- Execute The Tax Trace
5458 --
5459    py_za_tx_utl_01032002.Trace;
5460 
5461    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',62);
5462 
5463 -- Clear Globals
5464 --
5465    py_za_tx_utl_01032002.ClearGlobals;
5466 
5467    hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',63);
5468 
5469 -- End off Trace File
5470    WrtHrTrc('------------------------------------------------------------');
5471    WrtHrTrc('--                End of Tax Trace File                   --');
5472    WrtHrTrc('------------------------------------------------------------');
5473    WrtHrTrc('                             --                             ');
5474 
5475 -- Call hr_utility stop procedure
5476    py_za_tx_utl_01032002.StopHrTrace;
5477 
5478   --dbms_debug.debug_off;
5479 
5480    RETURN l_Dum;
5481 
5482 EXCEPTION
5483    WHEN xpt_E  THEN
5484       hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',64);
5485       WrtHrTrc('xpt_Msg: '||xpt_Msg);
5486       py_za_tx_utl_01032002.StopHrTrace;
5487       hr_utility.set_message(801, xpt_Msg);
5488       py_za_tx_utl_01032002.ClearGlobals;
5489       hr_utility.raise_error;
5490    WHEN OTHERS THEN
5491       hr_utility.set_location('py_za_tx_01032002.ZaTx_01032002',65);
5492       WrtHrTrc('Sql error code: '||TO_CHAR(SQLCODE));
5493       WrtHrTrc('Sql error msg: '||SUBSTR(SQLERRM(SQLCODE), 1, 100));
5494       py_za_tx_utl_01032002.StopHrTrace;
5495       hr_utility.set_message(801, 'ZaTx_01032002: '||TO_CHAR(SQLCODE));
5496       py_za_tx_utl_01032002.ClearGlobals;
5497       hr_utility.raise_error;
5498 END ZaTx_01032002;
5499 
5500 END py_za_tx_01032002;
5501