ft4p200t

download ft4p200t

If you can't read please download the document

description

ft4p200t

Transcript of ft4p200t

IDENTIFICATION DIVISION. PROGRAM-ID. FT4P200T. AUTHOR. PER J. RISTUN. DATE-WRITTEN. NOVEMBER 1993 **---------------------------------------------------------------- * BESKRIVELSE : PROGRAMMET BEREGNER FORSKUDDSTREKK FOR R 2014 * * DET ER GJORT BETYDELIGE ENDRINGER/FORENKLINGER I * PROGRAMMET I FORHOLD TIL 2013-VERSJONEN. * DISSE GR I HOVEDSAK UT P AT MAN HAR FORSKT * STANDARDISERE INNTEKTSSPRANG, AVRUNDING, OG MAKS-BELP * FOR DE FORSKJELLIGE TABELL-TYPENE. * **---------------------------------------------------------------- ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 SLUTT-BRYTER-PARAMETER PIC 9 VALUE 0. 88 SLUTT-PAA-PARAMETER VALUE 1. 01 TABELLTYPE PIC 9 VALUE 0. 88 VANLIG VALUE 1. 88 PENSJONIST VALUE 2. 88 STANDARD-FRADRAG VALUE 3. 88 SJO VALUE 4. 01 KLASSE PIC 9 VALUE 0. 88 KLASSE1 VALUE 1. 88 KLASSE2 VALUE 2. 01 TAB-TREKK-PERIODE PIC 9 VALUE 0. 88 MAANED VALUE 1. 88 14-DAGER VALUE 2. 88 UKE VALUE 3. 88 4-DAGER VALUE 4. 88 3-DAGER VALUE 5. 88 2-DAGER VALUE 6. 88 1-DAG VALUE 7. *----------------------------------------------------------------- * TABELLER FOR MAX TREKKGRUNNLAG * ANTALL INNTEKTS-PERIODER * ANTALL TREKK-PERIODER * FOR HVER TABELLTYPE *----------------------------------------------------------------- 01 TABELLER. *----------------------------------------------------------------- * FOR ALLE TABELLER * MAX TREKKGRUNNLAG SOM KAN AVLESES I TABELLEN. FOR STRRE BELP * M DET UTREGNES MED EN VISS PROSENTSATS. *----------------------------------------------------------------- 02 TABELL-TRKGRLAG. 05 FILLER PIC 9(7) VALUE 79800. 05 FILLER PIC 9(7) VALUE 36800. 05 FILLER PIC 9(7) VALUE 18400. 05 FILLER PIC 9(7) VALUE 15900. 05 FILLER PIC 9(7) VALUE 11900. 05 FILLER PIC 9(7) VALUE 7900. 05 FILLER PIC 9(7) VALUE 3900. 02 MAX-TRK-GRLAG REDEFINES TABELL-TRKGRLAG OCCURS 7 TIMES PIC 9(7). *----------------------------------------------------------------- * VANLIGE TABELLER * ANTALL INNTEKTSPERIODER *----------------------------------------------------------------- 02 TABELL-INNTPERIODER-VANLIG. 05 FILLER PIC 999V99 VALUE 12,12. 05 FILLER PIC 999V99 VALUE 26,26. 05 FILLER PIC 999V99 VALUE 52,52. 05 FILLER PIC 999V99 VALUE 60,60. 05 FILLER PIC 999V99 VALUE 80,80. 05 FILLER PIC 999V99 VALUE 121,20. 05 FILLER PIC 999V99 VALUE 242,40. 02 ANT-INNT-PERIODER-VANLIG REDEFINES TABELL-INNTPERIODER-VANLIG OCCURS 7 TIMES PIC 999V99. *----------------------------------------------------------------- * VANLIGE TABELLER * ANTALL TREKKPERIODER * ANTALL TREKKPERIODER FOR 4, 3, 2 OG 1 DAG BLIR BEREGNET I * A-INITIALISER SECTION. *----------------------------------------------------------------- 02 TABELL-TREKKPERIODER-VANLIG. 05 FILLER PIC 999V9(7) VALUE 10,5. 05 FILLER PIC 999V9(7) VALUE 23,0. 05 FILLER PIC 999V9(7) VALUE 46,0. 05 FILLER PIC 999V9(7) VALUE 0,0. 05 FILLER PIC 999V9(7) VALUE 0,0. 05 FILLER PIC 999V9(7) VALUE 0,0. 05 FILLER PIC 999V9(7) VALUE 0,0. 02 ANT-TRK-PERIODER-VANLIG REDEFINES TABELL-TREKKPERIODER-VANLIG OCCURS 7 TIMES PIC 999V9(7). *----------------------------------------------------------------- * PENSJONIST-TABELLER * ANTALL INNTEKTSPERIODER *----------------------------------------------------------------- 02 TABELL-INNTPERIODER-PENSJONIST. 05 FILLER PIC 999V99 VALUE 12. 05 FILLER PIC 999V99 VALUE 26. 05 FILLER PIC 999V99 VALUE 52. 05 FILLER PIC 999V99 VALUE 91. 05 FILLER PIC 999V99 VALUE 122. 05 FILLER PIC 999V99 VALUE 183. 05 FILLER PIC 999V99 VALUE 365. 02 ANT-INNT-PERIODER-PENSJONIST REDEFINES TABELL-INNTPERIODER-PENSJONIST OCCURS 7 TIMES PIC 999V99. *----------------------------------------------------------------- * PENSJONIST TABELLER * ANTALL TREKKPERIODER * ANTALL TREKKPERIODER FOR 4, 3, 2 OG 1 DAG BLIR BEREGNET I * A-INITIALISER SECTION. *----------------------------------------------------------------- 02 TABELL-TRKPERIODER-PENSJONIST. 05 FILLER PIC 999V9(7) VALUE 11. 05 FILLER PIC 999V9(7) VALUE 24. 05 FILLER PIC 999V9(7) VALUE 48. 05 FILLER PIC 999V9(7) VALUE 0. 05 FILLER PIC 999V9(7) VALUE 0. 05 FILLER PIC 999V9(7) VALUE 0. 05 FILLER PIC 999V9(7) VALUE 0. 02 ANT-TRK-PERIODER-PENSJONIST REDEFINES TABELL-TRKPERIODER-PENSJONIST OCCURS 7 TIMES PIC 999V9(7). *----------------------------------------------------------------- * STANDARDFRADRAG-TABELLER * ANTALL INNTEKTSPERIODER *----------------------------------------------------------------- 02 TABELL-INNTPERIODER-STFRADRAG. 05 FILLER PIC 999V99 VALUE 12. 05 FILLER PIC 999V99 VALUE 26. 05 FILLER PIC 999V99 VALUE 52. 05 FILLER PIC 999V99 VALUE 91. 05 FILLER PIC 999V99 VALUE 122. 05 FILLER PIC 999V99 VALUE 183. 05 FILLER PIC 999V99 VALUE 365. 02 ANT-INNT-PERIODER-STFRADRAG REDEFINES TABELL-INNTPERIODER-STFRADRAG OCCURS 7 TIMES PIC 999V99. *----------------------------------------------------------------- * STANDARDFRADRAG-TABELLER * ANTALL TREKKPERIODER * ANTALL TREKKPERIODER FOR 4, 3, 2 OG 1 DAG BLIR BEREGNET I * A-INITIALISER SECTION. *----------------------------------------------------------------- 02 TABELL-TREKKPERIODER-STFRADRAG. 05 FILLER PIC 999V9(7) VALUE 10,5. 05 FILLER PIC 999V9(7) VALUE 23,0. 05 FILLER PIC 999V9(7) VALUE 46,0. 05 FILLER PIC 999V9(7) VALUE 0,0. 05 FILLER PIC 999V9(7) VALUE 0,0. 05 FILLER PIC 999V9(7) VALUE 0,0. 05 FILLER PIC 999V9(7) VALUE 0,0. 02 ANT-TRK-PERIODER-STFRADRAG REDEFINES TABELL-TREKKPERIODER-STFRADRAG OCCURS 7 TIMES PIC 999V9(7). *----------------------------------------------------------------- * SJ-TABELLER * ANTALL INNTEKTSPERIODER *----------------------------------------------------------------- 02 TABELL-INNTPERIODER-SJO. 05 FILLER PIC 999V99 VALUE 12. 05 FILLER PIC 999V99 VALUE 26. 05 FILLER PIC 999V99 VALUE 52. 02 ANT-INNT-PERIODER-SJO REDEFINES TABELL-INNTPERIODER-SJO OCCURS 3 TIMES PIC 999V99. *----------------------------------------------------------------- * SJ-TABELLER * ANTALL TREKKPERIODER *----------------------------------------------------------------- 02 TABELL-TREKKPERIODER-SJO. 05 FILLER PIC 999V9(7) VALUE 12. 05 FILLER PIC 999V9(7) VALUE 26. 05 FILLER PIC 999V9(7) VALUE 52. 02 ANT-TRK-PERIODER-SJO REDEFINES TABELL-TREKKPERIODER-SJO OCCURS 3 TIMES PIC 999V9(7). *----------------------------------------------------------------- * KLASSE-FRADRAG *----------------------------------------------------------------- 02 TABELL-KLASSE-FRADRAG. 05 KLASSE1 PIC 9(7). 05 KLASSE2 PIC 9(7). 02 WS-KLASSE-FRADRAG REDEFINES TABELL-KLASSE-FRADRAG OCCURS 2 TIMES PIC 9(7). 02 KLASSE1-VANLIG PIC 9(7) VALUE 48800. 02 KLASSE2-VANLIG PIC 9(7) VALUE 72000. 02 KLASSE1-FINNMARK PIC 9(7) VALUE 63800. 02 KLASSE2-FINNMARK PIC 9(7) VALUE 87000. *----------------------------------------------------------------- * TABELL FOR PROSENT P TOPPSKATT *----------------------------------------------------------------- 02 TABELL-TOPPSKATT-PROSENT. 05 TRINN1 PIC 99V99. 05 TRINN2 PIC 99V99 VALUE 12,0. 02 TOPPSKATT-PROSENT REDEFINES TABELL-TOPPSKATT-PROSENT OCCURS 2 TIMES PIC 99V99. 02 TOPPSK-TRINN1 PIC 99V9 VALUE 9,0. 02 TOPPSK-TRINN1-FINNMARK PIC 99V9 VALUE 7,0. *----------------------------------------------------------------- * TABELL FOR NEDERSTE GRENSE P TOPPSKATT *----------------------------------------------------------------- 02 TABELL-TOPPSKATT-LAV-GRENSE. 05 KLASSE1 PIC 9(7) VALUE 527400. 05 KLASSE2 PIC 9(7) VALUE 527400. 02 TOPPSKATT-LAV REDEFINES TABELL-TOPPSKATT-LAV-GRENSE OCCURS 2 TIMES PIC 9(7). *----------------------------------------------------------------- * TABELL FOR VERSTE GRENSE P TOPPSKATT *----------------------------------------------------------------- 02 TABELL-TOPPSKATT-HOY-GRENSE. 05 KLASSE1 PIC 9(7) VALUE 857300. 05 KLASSE2 PIC 9(7) VALUE 857300. 02 TOPPSKATT-HOY REDEFINES TABELL-TOPPSKATT-HOY-GRENSE OCCURS 2 TIMES PIC 9(7). *----------------------------------------------------------------- * HJELPEFELT FOR TABELLNR. *----------------------------------------------------------------- 01 WS-TABELL-NUMMER. 05 WS-SKATTE-PROSENT PIC 9. 05 WS-TABELL-TYPE PIC 9. 05 WS-TABELL-NR PIC 99. *----------------------------------------------------------------- * HJELPEFELTER FOR PARAMETERVERDIENE *----------------------------------------------------------------- 01 WS-PARAMETER-VERDIER. 05 WS-TABELLNR PIC 9(4). 05 WS-PENSJONIST PIC X. 05 WS-TAB-TREKK-PERIODE PIC 9. 05 WS-TREKK-GRLAG PIC 9(7). *----------------------------------------------------------------- * KOMMUNE/FYLKE - OG FELLES-SKATT *----------------------------------------------------------------- 05 FELLES-SKATT-PROSENT PIC 99V99. 05 FELLES-SKATT-VANLIG PIC 99V99 VALUE 12,95. 05 FELLES-SKATT-FINNMARK PIC 99V99 VALUE 9,45. 05 SKATTORE PIC 99V99 VALUE 14,05. *----------------------------------------------------------------- * BEREGNER GRENSER FOR TRYGDEAVGIFTEN. M ENDRES HVIS TRYGDE- * AVGIFTS-PROSENTEN/GRENSEN ENDRES. * FORMEL: *(AARS-INNTEKT - AVG-FRI-TRYGDEAVGIFT) * 0.25 = AARS-INNTEKT * * TRYGDEAVGIFT-PROSENT * DET VIL ALTS SI: * (X - 39600) * 0.25 = X * 0.082(ELLER 0.051 VED LAV) * X = 58929 (VED HY TRYGDEAVGIFT) * X = 49749 (VED LAV TRYGDEAVGIFT) *----------------------------------------------------------------- 05 LAV-GRENSE-TRYGDEAVGIFT PIC 9(6) VALUE 49749. 05 HOY-GRENSE-TRYGDEAVGIFT PIC 9(6) VALUE 58929. 05 TRYGDE-PROSENT PIC 99 VALUE 25. 05 LAV-TRYGDEAVG-PROSENT PIC 99V99 VALUE 5,1. 05 HOY-TRYGDEAVG-PROSENT PIC 99V99 VALUE 8,2. 05 AVG-FRI-TRYGDEAVGIFT PIC 9(6) VALUE 39600. *----------------------------------------------------------------- * STANDARDFRADRAG *----------------------------------------------------------------- 05 STFRADRAG-PROSENT PIC 99 VALUE 10. 05 MAX-STFRADRAG PIC 9(7) VALUE 40000. *----------------------------------------------------------------- * ANVENDT MINSTEFRADRAG *----------------------------------------------------------------- 05 ANV-MINSTE-FRAD-PROSENT PIC 99V99 VALUE 37,84. 05 ANV-MINSTE-FRAD-PROSENT-PENSJ PIC 99V99 VALUE 23,76. 05 MIN-ANV-MINSTE-FRADRAG PIC 9(6) VALUE 3520. 05 MAX-ANV-MINSTE-FRADRAG PIC 9(6) VALUE 74052. 05 MAX-ANV-MINSTE-FRADRAG-PENSJ PIC 9(6) VALUE 61952. *----------------------------------------------------------------- * MINSTEFRADRAG *----------------------------------------------------------------- 05 MINSTE-FRAD-PROSENT PIC 99V99 VALUE 43,0. 05 MIN-MINSTE-FRADRAG PIC 9(6) VALUE 4000. 05 MAX-MINSTE-FRADRAG PIC 9(6) VALUE 84150. *----------------------------------------------------------------- * LNNSFRADRAG *----------------------------------------------------------------- 05 LONNSFRADRAG PIC 9(6) VALUE 31800. 05 ANV-LONNSFRADRAG PIC 9(6) VALUE 27984. *----------------------------------------------------------------- * SJ-FRADRAG *----------------------------------------------------------------- 05 SJO-PROSENT PIC 99 VALUE 30. 05 MAX-SJO-FRADRAG PIC 9(7) VALUE 80000. *----------------------------------------------------------------- * DIVERSE REGNE- OG HJELPE-FELTER *----------------------------------------------------------------- 01 HJELPE-FELTER. 05 AARS-INNTEKT PIC S9(7)V9(9) VALUE 0. 05 KLASSE-FRADRAG PIC S9(7) VALUE 0. 05 FRADRAG PIC S9(7) VALUE 0. 05 SKATTBAR-INNTEKT PIC S9(7)V9(9) VALUE 0. 05 OVERSKYTENDE-TREKK PIC S9(7)V9(9) VALUE 0. 05 OVERSKYTENDE-PROSENT PIC 99V99 VALUE 0. 05 TOPP-SKATT-TRINN1 PIC S9(7)V9(9) VALUE 0. 05 TOPP-SKATT-TRINN2 PIC S9(7)V9(9) VALUE 0. 05 SUM-TOPP-SKATT PIC S9(7)V9(9) VALUE 0. 05 MAX-TREKK-GRUNNLAG PIC S9(7) VALUE 0. 05 ANT-INNTEKTS-PERIODER PIC S9(3)V99 VALUE 0. 05 ANT-TREKK-PERIODER PIC S9(3)V9(7) VALUE 0. 05 SUM-TREKK PIC S9(7)V9(9) VALUE 0. 05 TREKK PIC S9(7) VALUE 0. 05 KOMMUNE-SKATT PIC S9(7)V9(9) VALUE 0. 05 FELLES-SKATT PIC S9(7)V9(9) VALUE 0. 05 TRYGDE-AVGIFT PIC S9(7)V9(9) VALUE 0. 05 ST-FRADRAG PIC 9(7)V9(9) VALUE 0. 05 ANV-MINSTE-FRADRAG PIC S9(6)V9(9) VALUE 0. 05 MINSTE-FRADRAG PIC S9(6)V9(9) VALUE 0. 05 SJO-FRADRAG PIC 9(7) VALUE 0. 05 WS-TRGRL-AVRUNDET PIC 9(7). 05 WS-LONNSFRADRAG PIC 9(6). *----------------------------------------------------------------- LINKAGE SECTION. *----------------------------------------------------------------- 77 PARM-TABELLNR PIC 9(4). 77 PARM-PENSJONIST PIC X. 77 PARM-TAB-TREKK-PERIODE PIC 9. 77 PARM-TREKK-GRLAG PIC 9(7). 77 PARM-UT-TREKK PIC 9(7). PROCEDURE DIVISION USING PARM-TABELLNR PARM-PENSJONIST PARM-TAB-TREKK-PERIODE PARM-TREKK-GRLAG PARM-UT-TREKK. ****************************************************************** HOVED SECTION. ****************************************************************** PERFORM A-INITIALISER PERFORM A-STYRE GOBACK. ****************************************************************** A-INITIALISER SECTION. ****************************************************************** MOVE PARM-TABELLNR TO WS-TABELL-NUMMER WS-TABELLNR MOVE PARM-PENSJONIST TO WS-PENSJONIST MOVE PARM-TAB-TREKK-PERIODE TO WS-TAB-TREKK-PERIODE MOVE PARM-TREKK-GRLAG TO WS-TREKK-GRLAG INITIALIZE HJELPE-FELTER *----------------------------------------------------------------- * VANLIGE TABELLER * BEREGNING AV ANTALL TREKKPERIODER FOR 4, 3, 2 OG 1 DAG *----------------------------------------------------------------- COMPUTE ANT-TRK-PERIODER-VANLIG(4) ROUNDED = (60 * 46) / 52 END-COMPUTE COMPUTE ANT-TRK-PERIODER-VANLIG(5) ROUNDED = (80 * 46) / 52 END-COMPUTE COMPUTE ANT-TRK-PERIODER-VANLIG(6) ROUNDED = (120 * 46) / 52 END-COMPUTE COMPUTE ANT-TRK-PERIODER-VANLIG(7) ROUNDED = (240 * 46) / 52 END-COMPUTE *----------------------------------------------------------------- * PENSJONIST-TABELLER * BEREGNING AV ANTALL TREKKPERIODER FOR 4, 3, 2 OG 1 DAG *----------------------------------------------------------------- COMPUTE ANT-TRK-PERIODER-PENSJONIST(4) ROUNDED = (91 * 11) / 12 END-COMPUTE COMPUTE ANT-TRK-PERIODER-PENSJONIST(5) ROUNDED = (122 * 11) / 12 END-COMPUTE COMPUTE ANT-TRK-PERIODER-PENSJONIST(6) ROUNDED = (183 * 11) / 12 END-COMPUTE COMPUTE ANT-TRK-PERIODER-PENSJONIST(7) ROUNDED = (365 * 11) / 12 END-COMPUTE *----------------------------------------------------------------- * STANDARD-FRADRAG TABELLER * BEREGNING AV ANTALL TREKKPERIODER FOR 4, 3, 2 OG 1 DAG *----------------------------------------------------------------- COMPUTE ANT-TRK-PERIODER-STFRADRAG(4) ROUNDED = (91 * 10,5) / 12 END-COMPUTE COMPUTE ANT-TRK-PERIODER-STFRADRAG(5) ROUNDED = (122 * 10,5) / 12 END-COMPUTE COMPUTE ANT-TRK-PERIODER-STFRADRAG(6) ROUNDED = (183 * 10,5) / 12 END-COMPUTE COMPUTE ANT-TRK-PERIODER-STFRADRAG(7) ROUNDED = (365 * 10,5) / 12 END-COMPUTE *----------------------------------------------------------------- * OM DET ER EN VANLIG TABELL (7100-7200) ELLER *----------------------------------------------------------------- * PENSJONIST-TABELL (7100P-7200P) ELLER *----------------------------------------------------------------- * STANDARD-FRADRAG TABELL (7300-7800) *----------------------------------------------------------------- IF WS-TABELL-TYPE < 3 MOVE 1 TO TABELLTYPE ELSE MOVE 3 TO TABELLTYPE END-IF IF WS-PENSJONIST = 'P' MOVE 2 TO TABELLTYPE END-IF IF WS-SKATTE-PROSENT = 0 MOVE 4 TO TABELLTYPE END-IF *----------------------------------------------------------------- * SETTER SATSER/GRENSER FOR DE SPESIELLE STANDARDFRADRAG- * TABELLENE FOR FINNMARK *----------------------------------------------------------------- IF WS-SKATTE-PROSENT = 6 MOVE TOPPSK-TRINN1-FINNMARK TO TOPPSKATT-PROSENT(1) MOVE KLASSE1-FINNMARK TO WS-KLASSE-FRADRAG(1) MOVE KLASSE2-FINNMARK TO WS-KLASSE-FRADRAG(2) MOVE FELLES-SKATT-FINNMARK TO FELLES-SKATT-PROSENT ELSE MOVE TOPPSK-TRINN1 TO TOPPSKATT-PROSENT(1) MOVE KLASSE1-VANLIG TO WS-KLASSE-FRADRAG(1) MOVE KLASSE2-VANLIG TO WS-KLASSE-FRADRAG(2) MOVE FELLES-SKATT-VANLIG TO FELLES-SKATT-PROSENT END-IF *----------------------------------------------------------------- * FOR HVILKEN PERIODE DET SKAL BEREGNES FORSKUDDSTREKK *----------------------------------------------------------------- * WS-TAB-TREKK-PERIODE = 1 (MNEDSTABELL) * WS-TAB-TREKK-PERIODE = 2 (14 DAGER) * WS-TAB-TREKK-PERIODE = 3 (1 UKE) * WS-TAB-TREKK-PERIODE = 4 (4 DAGER) * WS-TAB-TREKK-PERIODE = 5 (3 DAGER) * WS-TAB-TREKK-PERIODE = 6 (2 DAGER) * WS-TAB-TREKK-PERIODE = 7 (1 DAGER) *----------------------------------------------------------------- EVALUATE WS-TAB-TREKK-PERIODE WHEN 1 MOVE 1 TO TAB-TREKK-PERIODE WHEN 2 MOVE 2 TO TAB-TREKK-PERIODE WHEN 3 MOVE 3 TO TAB-TREKK-PERIODE WHEN 4 MOVE 4 TO TAB-TREKK-PERIODE WHEN 5 MOVE 5 TO TAB-TREKK-PERIODE WHEN 6 MOVE 6 TO TAB-TREKK-PERIODE WHEN 7 MOVE 7 TO TAB-TREKK-PERIODE END-EVALUATE. ****************************************************************** A-STYRE SECTION. ****************************************************************** EVALUATE TRUE WHEN VANLIG PERFORM B-SETT-VERDIER-VANLIG WHEN PENSJONIST PERFORM B-SETT-VERDIER-PENSJONIST WHEN STANDARD-FRADRAG PERFORM B-SETT-VERDIER-STFRADRAG WHEN SJO PERFORM B-SETT-VERDIER-SJO END-EVALUATE PERFORM B-AVRUNDING PERFORM B-BEREGN-FRADRAG PERFORM B-BEREGN-NETTOSKATT PERFORM B-BEREGN-TRYGDEAVGIFT PERFORM B-BEREGN-TOPPSKATT PERFORM B-BEREGN-TREKK. *************************************** 7100 - 7260 ************** B-SETT-VERDIER-VANLIG SECTION. ****************************************************************** MOVE WS-TABELL-TYPE TO KLASSE MOVE MAX-TRK-GRLAG (WS-TAB-TREKK-PERIODE) TO MAX-TREKK-GRUNNLAG IF WS-TABELL-NR = 50 OR 60 OR 70 MOVE ANT-INNT-PERIODER-STFRADRAG (WS-TAB-TREKK-PERIODE) TO ANT-INNTEKTS-PERIODER ELSE MOVE ANT-INNT-PERIODER-VANLIG (WS-TAB-TREKK-PERIODE) TO ANT-INNTEKTS-PERIODER END-IF IF WS-TABELL-NR = 50 OR 60 MOVE ANT-INNT-PERIODER-STFRADRAG (WS-TAB-TREKK-PERIODE) TO ANT-TREKK-PERIODER ELSE IF WS-TABELL-NR = 70 MOVE ANT-TRK-PERIODER-STFRADRAG (WS-TAB-TREKK-PERIODE) TO ANT-TREKK-PERIODER ELSE MOVE ANT-TRK-PERIODER-VANLIG (WS-TAB-TREKK-PERIODE) TO ANT-TREKK-PERIODER END-IF END-IF IF WS-TREKK-GRLAG > MAX-TREKK-GRUNNLAG PERFORM B-BEREGN-OVERSKYTENDE-TREKK END-IF. *************************************** P-TABELLER *************** B-SETT-VERDIER-PENSJONIST SECTION. ****************************************************************** MOVE WS-TABELL-TYPE TO KLASSE MOVE MAX-TRK-GRLAG (WS-TAB-TREKK-PERIODE) TO MAX-TREKK-GRUNNLAG MOVE ANT-INNT-PERIODER-PENSJONIST (WS-TAB-TREKK-PERIODE) TO ANT-INNTEKTS-PERIODER MOVE ANT-TRK-PERIODER-PENSJONIST (WS-TAB-TREKK-PERIODE) TO ANT-TREKK-PERIODER IF WS-TREKK-GRLAG > MAX-TREKK-GRUNNLAG PERFORM B-BEREGN-OVERSKYTENDE-TREKK END-IF. *************************************** 7300 - 7800 ************** B-SETT-VERDIER-STFRADRAG SECTION. ****************************************************************** IF WS-TABELL-TYPE = 3 OR 5 OR 7 MOVE 1 TO KLASSE ELSE MOVE 2 TO KLASSE END-IF MOVE MAX-TRK-GRLAG (WS-TAB-TREKK-PERIODE) TO MAX-TREKK-GRUNNLAG MOVE ANT-INNT-PERIODER-STFRADRAG (WS-TAB-TREKK-PERIODE) TO ANT-INNTEKTS-PERIODER IF WS-TABELLNR = 7350 OR 7450 OR 7500 OR 7600 OR 7700 OR 7800 OR 6350 OR 6450 OR 6500 OR 6600 OR 6700 OR 6800 MOVE ANT-INNT-PERIODER-STFRADRAG (WS-TAB-TREKK-PERIODE) TO ANT-TREKK-PERIODER ELSE MOVE ANT-TRK-PERIODER-STFRADRAG (WS-TAB-TREKK-PERIODE) TO ANT-TREKK-PERIODER END-IF IF WS-TREKK-GRLAG > MAX-TREKK-GRUNNLAG PERFORM B-BEREGN-OVERSKYTENDE-TREKK END-IF. *************************************** 0100 - 0201 ************** B-SETT-VERDIER-SJO SECTION. ****************************************************************** IF WS-TABELL-TYPE = 1 MOVE 1 TO KLASSE ELSE MOVE 2 TO KLASSE END-IF MOVE MAX-TRK-GRLAG (WS-TAB-TREKK-PERIODE) TO MAX-TREKK-GRUNNLAG MOVE ANT-INNT-PERIODER-SJO (WS-TAB-TREKK-PERIODE) TO ANT-INNTEKTS-PERIODER MOVE ANT-TRK-PERIODER-SJO (WS-TAB-TREKK-PERIODE) TO ANT-TREKK-PERIODER IF WS-TREKK-GRLAG > MAX-TREKK-GRUNNLAG PERFORM B-BEREGN-OVERSKYTENDE-TREKK END-IF. ****************************************************************** B-AVRUNDING SECTION. ****************************************************************** * SAMTLIGE TABELLER * AVRUNDER TREKKGRUNNLAGET UT I FRA PERIODEN DET SKAL BEREGNES * TREKK FOR. *----------------------------------------------------------------- EVALUATE TRUE WHEN MAANED COMPUTE WS-TREKK-GRLAG = WS-TREKK-GRLAG / 100 END-COMPUTE COMPUTE WS-TRGRL-AVRUNDET = WS-TREKK-GRLAG * 100 END-COMPUTE COMPUTE WS-TREKK-GRLAG = (WS-TREKK-GRLAG * 100) + 50 END-COMPUTE WHEN 14-DAGER COMPUTE WS-TREKK-GRLAG = WS-TREKK-GRLAG / 50 END-COMPUTE COMPUTE WS-TRGRL-AVRUNDET = WS-TREKK-GRLAG * 50 END-COMPUTE COMPUTE WS-TREKK-GRLAG = (WS-TREKK-GRLAG * 50) + 25 END-COMPUTE WHEN OTHER COMPUTE WS-TREKK-GRLAG = WS-TREKK-GRLAG / 20 END-COMPUTE COMPUTE WS-TRGRL-AVRUNDET = WS-TREKK-GRLAG * 20 END-COMPUTE COMPUTE WS-TREKK-GRLAG = (WS-TREKK-GRLAG * 20) + 10 END-COMPUTE END-EVALUATE COMPUTE AARS-INNTEKT = WS-TREKK-GRLAG * ANT-INNTEKTS-PERIODER END-COMPUTE. ****************************************************************** B-BEREGN-OVERSKYTENDE-TREKK SECTION. ****************************************************************** * FORSKUDDSTREKK AV DEN DEL AV TREKKGRUNNLAGET SOM OVERSTIGER * MAX TREKKGRUNNLAG I DEN AKTUELLE TABELLEN. *----------------------------------------------------------------- *----------------------------------------------------------------- * DET SETTES EN GITT PROSENT-SATS FOR DET BELPET SOM DET SKAL * BEREGNES TREKK AV 'UTENFOR' TABELLEN, AVHENGIG AV TABELL-NUMMER. *----------------------------------------------------------------- EVALUATE TRUE WHEN PENSJONIST MOVE 0,48 TO OVERSKYTENDE-PROSENT WHEN VANLIG MOVE 0,54 TO OVERSKYTENDE-PROSENT END-EVALUATE IF WS-TABELLNR = 7300 OR 7400 MOVE 0,54 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 7350 OR 7450 MOVE 0,47 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 7500 OR 7600 MOVE 0,39 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 7550 OR 7650 MOVE 0,45 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 7700 OR 7800 MOVE 0,44 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 0100 OR 0200 MOVE 0,39 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 0101 OR 0201 MOVE 0,47 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 6300 OR 6400 MOVE 0,50 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 6350 OR 6450 MOVE 0,44 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 6500 OR 6600 MOVE 0,36 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 6550 OR 6650 MOVE 0,41 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 6700 OR 6800 MOVE 0,41 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 7150 OR 7250 MOVE 0,47 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 7160 OR 7260 MOVE 0,39 TO OVERSKYTENDE-PROSENT END-IF IF WS-TABELLNR = 7170 OR 7270 MOVE 0,45 TO OVERSKYTENDE-PROSENT END-IF *----------------------------------------------------------------- * BEREGNER DET OVERSKYTENDE TREKKET * (ETTER FRST HA RUNDET DET AV) *----------------------------------------------------------------- EVALUATE TRUE WHEN MAANED COMPUTE WS-TREKK-GRLAG = WS-TREKK-GRLAG / 100 END-COMPUTE COMPUTE WS-TREKK-GRLAG = WS-TREKK-GRLAG * 100 END-COMPUTE WHEN 14-DAGER COMPUTE WS-TREKK-GRLAG = WS-TREKK-GRLAG / 50 END-COMPUTE COMPUTE WS-TREKK-GRLAG = WS-TREKK-GRLAG * 50 END-COMPUTE WHEN UKE OR 4-DAGER OR 3-DAGER OR 2-DAGER OR 1-DAG COMPUTE WS-TREKK-GRLAG = WS-TREKK-GRLAG / 20 END-COMPUTE COMPUTE WS-TREKK-GRLAG = WS-TREKK-GRLAG * 20 END-COMPUTE END-EVALUATE COMPUTE OVERSKYTENDE-TREKK = (WS-TREKK-GRLAG - MAX-TREKK-GRUNNLAG) * OVERSKYTENDE-PROSENT END-COMPUTE *----------------------------------------------------------------- * SETTER WS-TREKK-GRLAG LIK MAX-TREKK-GRLAG FORDI DET IKKE * SKAL BEREGNES SKATT AV DEN OVERSKYTENDE DELEN AV GRUNNLAGET *----------------------------------------------------------------- MOVE MAX-TREKK-GRUNNLAG TO WS-TREKK-GRLAG. ****************************************************************** B-BEREGN-FRADRAG SECTION. ****************************************************************** * BEREGNER MINSTEFRADRAG * FOR VANLIG OG STANDARD-FRADRAG TABELLER * HER BRUKES ANVENDT MINSTEFRADRAG *----------------------------------------------------------------- EVALUATE TRUE WHEN VANLIG OR STANDARD-FRADRAG COMPUTE ANV-MINSTE-FRADRAG = (AARS-INNTEKT * ANV-MINSTE-FRAD-PROSENT) / 100 END-COMPUTE IF ANV-MINSTE-FRADRAG > MAX-ANV-MINSTE-FRADRAG MOVE MAX-ANV-MINSTE-FRADRAG TO ANV-MINSTE-FRADRAG ELSE IF ANV-MINSTE-FRADRAG < MIN-ANV-MINSTE-FRADRAG MOVE MIN-ANV-MINSTE-FRADRAG TO ANV-MINSTE-FRADRAG END-IF END-IF IF AARS-INNTEKT < ANV-LONNSFRADRAG MOVE AARS-INNTEKT TO WS-LONNSFRADRAG ELSE MOVE ANV-LONNSFRADRAG TO WS-LONNSFRADRAG END-IF IF WS-LONNSFRADRAG < 0 MOVE 0 TO WS-LONNSFRADRAG END-IF IF WS-LONNSFRADRAG > ANV-MINSTE-FRADRAG MOVE WS-LONNSFRADRAG TO ANV-MINSTE-FRADRAG END-IF IF AARS-INNTEKT < ANV-MINSTE-FRADRAG MOVE AARS-INNTEKT TO ANV-MINSTE-FRADRAG END-IF END-EVALUATE ****************************************************************** * BEREGNER MINSTEFRADRAG * FOR PENSJONIST- TABELLER * HER BRUKES ANVENDT MINSTEFRADRAG *----------------------------------------------------------------- EVALUATE TRUE WHEN PENSJONIST COMPUTE ANV-MINSTE-FRADRAG = (AARS-INNTEKT * ANV-MINSTE-FRAD-PROSENT-PENSJ) / 100 END-COMPUTE IF ANV-MINSTE-FRADRAG > MAX-ANV-MINSTE-FRADRAG-PENSJ MOVE MAX-ANV-MINSTE-FRADRAG-PENSJ TO ANV-MINSTE-FRADRAG ELSE IF ANV-MINSTE-FRADRAG < MIN-ANV-MINSTE-FRADRAG MOVE MIN-ANV-MINSTE-FRADRAG TO ANV-MINSTE-FRADRAG END-IF END-IF END-EVALUATE *----------------------------------------------------------------- * BEREGNER MINSTEFRADRAG * FOR SJ-TABELLER * HER BRUKES REELT MINSTEFRADRAG *----------------------------------------------------------------- EVALUATE TRUE WHEN SJO COMPUTE MINSTE-FRADRAG = (AARS-INNTEKT * MINSTE-FRAD-PROSENT) / 100 END-COMPUTE IF MINSTE-FRADRAG > MAX-MINSTE-FRADRAG MOVE MAX-MINSTE-FRADRAG TO MINSTE-FRADRAG ELSE IF MINSTE-FRADRAG < MIN-MINSTE-FRADRAG MOVE MIN-MINSTE-FRADRAG TO MINSTE-FRADRAG END-IF END-IF IF AARS-INNTEKT < LONNSFRADRAG MOVE AARS-INNTEKT TO WS-LONNSFRADRAG ELSE MOVE LONNSFRADRAG TO WS-LONNSFRADRAG END-IF IF WS-LONNSFRADRAG < 0 MOVE 0 TO WS-LONNSFRADRAG END-IF IF WS-LONNSFRADRAG > MINSTE-FRADRAG MOVE WS-LONNSFRADRAG TO MINSTE-FRADRAG END-IF IF AARS-INNTEKT < MINSTE-FRADRAG MOVE AARS-INNTEKT TO MINSTE-FRADRAG END-IF END-EVALUATE *----------------------------------------------------------------- * BEREGNER DET FRADRAG/TILLEGG I INNTEKTEN MAN SKAL TA HENSYN * TIL VED BEREGNING AV FORSKUDDSTREKK. * DETTE BEREGNES BARE FOR VANLIGE OG PENSJONIST-TABELLER. * STANDARDFRADRAG- OG SJ-TABELLENE HAR IKKE SLIKT FRADRAG. *----------------------------------------------------------------- EVALUATE TRUE ALSO TRUE WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR < 10 COMPUTE FRADRAG = WS-TABELL-NR * 4000 WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR = 10 MOVE 41000 TO FRADRAG WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR = 11 MOVE 46000 TO FRADRAG WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR = 12 MOVE 53000 TO FRADRAG WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR > 12 AND WS-TABELL-NR < 20 COMPUTE FRADRAG = (WS-TABELL-NR - 7) * 10000 END-COMPUTE WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR > 19 AND WS-TABELL-NR < 29 COMPUTE FRADRAG = - (WS-TABELL-NR - 19) * 4000 END-COMPUTE WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR = 29 MOVE -41000 TO FRADRAG WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR = 30 MOVE -46000 TO FRADRAG WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR = 31 MOVE -53000 TO FRADRAG WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR = 32 MOVE -60000 TO FRADRAG WHEN VANLIG OR PENSJONIST ALSO WS-TABELL-NR = 33 MOVE -67000 TO FRADRAG END-EVALUATE *----------------------------------------------------------------- * BEREGNER STANDARDFRADRAG *----------------------------------------------------------------- EVALUATE TRUE WHEN STANDARD-FRADRAG OR SJO COMPUTE ST-FRADRAG = (AARS-INNTEKT * STFRADRAG-PROSENT) / 100 END-COMPUTE END-EVALUATE IF ST-FRADRAG > MAX-STFRADRAG MOVE MAX-STFRADRAG TO ST-FRADRAG END-IF *----------------------------------------------------------------- * BEREGNER SJOMANNS-FRADRAG *----------------------------------------------------------------- EVALUATE TRUE WHEN SJO COMPUTE SJO-FRADRAG = (AARS-INNTEKT * SJO-PROSENT) / 100 END-COMPUTE END-EVALUATE IF SJO-FRADRAG > MAX-SJO-FRADRAG MOVE MAX-SJO-FRADRAG TO SJO-FRADRAG END-IF *----------------------------------------------------------------- * BEREGNER KLASSEFRADRAG *----------------------------------------------------------------- COMPUTE KLASSE-FRADRAG = WS-KLASSE-FRADRAG(KLASSE) END-COMPUTE *----------------------------------------------------------------- * BEREGNER DEN DEL AV INNTEKTEN DET SKAL TREKKES SKATT AV *----------------------------------------------------------------- COMPUTE SKATTBAR-INNTEKT = AARS-INNTEKT - ANV-MINSTE-FRADRAG - MINSTE-FRADRAG - FRADRAG - ST-FRADRAG - SJO-FRADRAG - KLASSE-FRADRAG END-COMPUTE. * DISPLAY ' ' * DISPLAY ' ---------------------------------------- ' * DISPLAY ' PARM-TABELLNR = ' PARM-TABELLNR * DISPLAY ' PARM-TREKK-GRLAG = ' PARM-TREKK-GRLAG * DISPLAY ' ' * DISPLAY ' SKATTBAR-INNTEKT = ' SKATTBAR-INNTEKT * DISPLAY ' AARS-INNTEKT = ' AARS-INNTEKT * DISPLAY ' ANV-MINSTE-FRADRAG = ' ANV-MINSTE-FRADRAG * DISPLAY ' MINSTE-FRADRAG = ' MINSTE-FRADRAG * DISPLAY ' FRADRAG = ' FRADRAG * DISPLAY ' ST-FRADRAG = ' ST-FRADRAG * DISPLAY ' SJO-FRADRAG = ' SJO-FRADRAG * DISPLAY ' KLASSE-FRADRAG = ' KLASSE-FRADRAG. * ****************************************************************** B-BEREGN-NETTOSKATT SECTION. ****************************************************************** *----------------------------------------------------------------- * HVIS SKATTBAR-INNTEKT ER NEGATIV, SKAL DET IKKE BEREGNES * KOMMUNE- OG FELLES-SKATT. *----------------------------------------------------------------- IF SKATTBAR-INNTEKT NEGATIVE GO TO B-BEREGN-NETTOSKATT-SLUTT END-IF *----------------------------------------------------------------- * BEREGNER KOMMUNESKATT *----------------------------------------------------------------- COMPUTE KOMMUNE-SKATT = (SKATTBAR-INNTEKT * SKATTORE) / 100 END-COMPUTE *----------------------------------------------------------------- * BEREGNER FELLESSKATT *----------------------------------------------------------------- COMPUTE FELLES-SKATT = (SKATTBAR-INNTEKT * FELLES-SKATT-PROSENT) / 100 END-COMPUTE. *----------------------------------------------------------------- B-BEREGN-NETTOSKATT-SLUTT. EXIT. ****************************************************************** B-BEREGN-TRYGDEAVGIFT SECTION. ****************************************************************** *----------------------------------------------------------------- * LUKER UT DE FOREKOMSTENE HVOR DET IKKE SKAL BETALES TRYGDEAVGIFT *----------------------------------------------------------------- IF WS-TABELLNR = 7500 OR 7550 OR 7600 OR 7650 OR 0100 OR 0200 OR 6500 OR 6550 OR 6600 OR 6650 OR 7160 OR 7170 OR 7260 OR 7270 OR AARS-INNTEKT < AVG-FRI-TRYGDEAVGIFT GO TO B-BEREGN-TRYGDEAVGIFT-SLUTT END-IF *----------------------------------------------------------------- * BEREGNER DE MED LAV FOLKETRYGD *----------------------------------------------------------------- IF WS-TABELLNR = 7700 OR 7800 OR 6700 OR 6800 OR PENSJONIST IF AARS-INNTEKT > LAV-GRENSE-TRYGDEAVGIFT COMPUTE TRYGDE-AVGIFT = (AARS-INNTEKT * LAV-TRYGDEAVG-PROSENT) / 100 END-COMPUTE ELSE COMPUTE TRYGDE-AVGIFT = (AARS-INNTEKT - AVG-FRI-TRYGDEAVGIFT) * TRYGDE-PROSENT / 100 END-COMPUTE END-IF ELSE *----------------------------------------------------------------- * BEREGNER DE MED HY FOLKETRYGD *----------------------------------------------------------------- IF AARS-INNTEKT > HOY-GRENSE-TRYGDEAVGIFT COMPUTE TRYGDE-AVGIFT = (AARS-INNTEKT * HOY-TRYGDEAVG-PROSENT) / 100 END-COMPUTE ELSE COMPUTE TRYGDE-AVGIFT = (AARS-INNTEKT - AVG-FRI-TRYGDEAVGIFT) * TRYGDE-PROSENT / 100 END-COMPUTE END-IF END-IF. *----------------------------------------------------------------- B-BEREGN-TRYGDEAVGIFT-SLUTT. EXIT. ****************************************************************** B-BEREGN-TOPPSKATT SECTION. ****************************************************************** IF AARS-INNTEKT > TOPPSKATT-LAV(KLASSE) IF AARS-INNTEKT < TOPPSKATT-HOY(KLASSE) COMPUTE TOPP-SKATT-TRINN1 = (AARS-INNTEKT - TOPPSKATT-LAV(KLASSE)) * TOPPSKATT-PROSENT(1) / 100 END-COMPUTE ELSE COMPUTE TOPP-SKATT-TRINN1 = (TOPPSKATT-HOY(KLASSE) - TOPPSKATT-LAV(KLASSE)) * TOPPSKATT-PROSENT(1) / 100 END-COMPUTE END-IF END-IF IF AARS-INNTEKT > TOPPSKATT-HOY(KLASSE) COMPUTE TOPP-SKATT-TRINN2 = (AARS-INNTEKT - TOPPSKATT-HOY(KLASSE)) * TOPPSKATT-PROSENT(2) / 100 END-COMPUTE END-IF COMPUTE SUM-TOPP-SKATT = TOPP-SKATT-TRINN1 + TOPP-SKATT-TRINN2 END-COMPUTE. ****************************************************************** B-BEREGN-TREKK SECTION. ****************************************************************** COMPUTE SUM-TREKK = KOMMUNE-SKATT + FELLES-SKATT + TRYGDE-AVGIFT + SUM-TOPP-SKATT END-COMPUTE * DISPLAY ' ' * DISPLAY ' KOMMUNE-SKATT = ' KOMMUNE-SKATT * DISPLAY ' FELLES-SKATT = ' FELLES-SKATT * DISPLAY ' TRYGDE-AVGIFT = ' TRYGDE-AVGIFT * DISPLAY ' SUM-TOPP-SKATT = ' SUM-TOPP-SKATT * DISPLAY ' SUM-TREKK = ' SUM-TREKK IF SJO COMPUTE TREKK = (SUM-TREKK / ANT-TREKK-PERIODER) END-COMPUTE ELSE COMPUTE TREKK ROUNDED = (SUM-TREKK / ANT-TREKK-PERIODER) END-COMPUTE END-IF IF TREKK NEGATIVE MOVE 0 TO TREKK END-IF IF TREKK > WS-TRGRL-AVRUNDET MOVE WS-TRGRL-AVRUNDET TO TREKK END-IF COMPUTE TREKK = TREKK + OVERSKYTENDE-TREKK END-COMPUTE * DISPLAY ' TREKK = ' TREKK MOVE TREKK TO PARM-UT-TREKK.