DBA Data[Home] [Help]

PACKAGE BODY: APPS.PY_ZA_TX_01032004

Source


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