DBA Data[Home] [Help]

PACKAGE BODY: APPS.PY_ZA_TX_01082000

Source


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