|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 7990 (0x1f36)
Types: SPC/1-COMAL-BIN
Notes: Mikados_B
Names: »LFERIE.B«
└─⟦385f097a1⟧ Bits:30008988 SPC/1 COMAL programmer til bogføring
└─⟦this⟧ »LFERIE.B«
└─⟦ff7f7aeee⟧ Bits:30009007 NBT 15/3-84
└─⟦this⟧ »LFERIE.B«
0100 DIM SIDE(G),LIN$(8),DAD$(6) 0110 DIM STARTPER$(8),SLUTPER$(8),LP$(E),ORK$(E) 0120 DIM RES$(15),OP1$(12),OP2$(12),TAH$(12),SEKS$(12) 0130 DIM TOTAL$(G,12) 0140 DIM RESUL$(12),RESUL1$(12),TV$(45,11) 0150 DIM FIL$(16),FIL2$(16),POST1$(71),POST2$(27),POST3$(55),POST4$(34) 0160 DIM MF1$(16) 0162 DIM POST5$(55) 0170 TAH$=" 0+" 0180 SEKS$=" 6,00+" 0200 SIDE(E),SIDE(G)=B 0370 PROC CALC(AR3,B1,B2,ES) 0380 RES$=ES$;OP1$=B1$;OP2$=B2$;SI=B;FLAG=B;ART=AR3-6*(AR3>5) 0390 CALL "P641210:REGN" 0400 IF AR3<6 THEN 0410 IF FLAG THEN STOP 0420 ENDIF 0430 ES$=RES$ 0440 ENDPROC 0550 PROC INDTÆL 0560 J=W*(LMNR-E) 0570 FOR K=E TO W 0580 GET FIL2$,J+K:POST5$ 0590 FOR I=E TO 5 0600 TV$((K-E)*5+I)=POST5$((I-E)*11+E:11) 0610 NEXT I 0620 NEXT K 0630 EXEC FEJL(LMNR,K,FIL2$) 0640 ENDPROC 0800 PROC INLØNMOD(N) 0810 GET FIL$,G*N-E:POST1$ 0820 GET FIL$,G*N:POST2$,C1,C2,LT,LF,LR,LA,RPI,K1,K2,FG,FD 0830 EXEC FEJL(E,N,FIL$) 0840 ENDPROC 1220 PROC CONVDATE(NR1,OK1) 1230 OK11=OK1;NR1$="" 1240 FOR I=8 TO E STEP -E 1250 IF I MOD V=B THEN 1260 NR1$(I)="-" 1270 ELSE 1280 NR1$(I)=CHR(OK11 MOD 10+48) 1290 OK11=OK11 DIV 10 1300 ENDIF 1310 NEXT I 1320 ENDPROC 1890 PROC INDVIRK 1900 OPEN FIL$,R 1910 EXEC FEJL(B,B,FIL$) 1920 GET FIL$,E:POST3$ 1930 GET FIL$,G:POST4$,SLJNR,MLMNR,ATPLM 1935 GET FIL$,V:DAD$ 1940 ENDPROC 1950 PROC FEJL(P1,P2,P3) 1960 IF STATUS(P3$)<>B THEN 1970 OUTPUT T 1980 PRINT "FIL-FEJL ";P3$;STATUS(P3$),P1;P2 1990 STOP 2000 ENDIF 2010 ENDPROC 2710 PROC CONVERT(NR1,OK1) 2720 NR1$=" 0+" 2730 IF OK1<>B THEN 2740 NR1$(W,10)=",0" 2750 OK2=ABS(OK1) 2760 OK11=INT((OK2-INT(OK2))*100+0.50001) 2770 IF OK1<B THEN NR1$(12)="-" 2780 FOR I=11 TO E STEP -E 2790 IF I<>W THEN 2800 NR1$(I)=CHR(OK11 MOD 10+48) 2810 OK11=OK11 DIV 10 2820 IF OK11=B AND I<10 THEN I=B 2830 ELSE 2840 OK11=INT(OK2) 2850 ENDIF 2860 NEXT I 2870 ENDIF 2880 ENDPROC 3240 PROC SKRIVHOVED 3250 PRINT 3260 SIDE(TYPE)=SIDE(TYPE)+E 3270 PRINT USING " SIDE ###":SIDE(TYPE); 3275 PRINT " UDSKRIFTSDATO ";DAD$; 3280 PRINT TAB(49);"LØNPERIODEN ";STARTPER$;" / ";SLUTPER$; 3290 CASE TYPE OF 3300 WHEN E 3310 LINIE=6 3320 PRINT TAB(35);"FERIELISTE" 3330 PRINT TAB(35);"**********" 3340 REM 3350 REM " LØN NAVN";TAB(36);"ANSAT FERIE- LØR- FERIEBERETT FERIE-" 3360 PRINT " NR";TAB(36);"FRA DAGE DAGE LØN TILLÆG" 3370 WHEN G 3380 LINIE=5 3390 PRINT TAB(24);"LØNMODTAGERKARTOTEK - TÆLLEVÆRKER" 3400 PRINT TAB(24);"*********************************" 3410 PRINT 3420 ENDCASE 3430 ENDPROC 3440 PROC NÆSTE 3450 REPEAT 3460 LMNR=LMNR+E 3470 LA=E 3480 IF LMNR<=MLMNR THEN 3490 EXEC INLØNMOD(LMNR) 3495 IF (POST2$(22)<>"5" OR FD<>B) AND TYPE=E THEN LA=B 3500 IF LP$<>POST2$(21) THEN LA=B 3510 IF ORK$="A" AND POST2$(24,25)>"89" THEN LA=B 3520 IF ORK$="F" AND POST2$(24,25)<"90" THEN LA=B 3530 ENDIF 3540 UNTIL LA>B 3550 ENDPROC 8182 TOTAL$(E)=TAH$;TOTAL$(G)=TAH$ 8190 FIL$="P641220:VIRKKART" 8200 EXEC INDVIRK 8210 CLOSE FIL$ 8220 FIL$="P641220:LØNMODRG" 8230 OPEN FIL$,R 8260 FIL2$="P641220:TÆLLEREG" 8270 OPEN FIL2$,R 8291 MF1$="P641210:LØNJOUR" 8292 OPEN MF1$,R 8350 MAXLIN=72 8360 LMNR=B 8370 SIDE(E),SIDE(G)=B 8372 GET MF1$:STARTPER$,SLUTPER$,LP$,ORK$,MFD 8400 TYPE=E 8410 STD=100000*(ORD(STARTPER$(E))-48)+10000*(ORD(STARTPER$(G))-48) 8420 STD=STD+1000*(ORD(STARTPER$(4))-48)+100*(ORD(STARTPER$(5))-48) 8430 STD=STD+10*(ORD(STARTPER$(7))-48)+ORD(STARTPER$(8))-48 8440 SLD=100000*(ORD(SLUTPER$(E))-48)+10000*(ORD(SLUTPER$(G))-48) 8450 SLD=SLD+1000*(ORD(SLUTPER$(4))-48)+100*(ORD(SLUTPER$(5))-48) 8460 SLD=SLD+10*(ORD(SLUTPER$(7))-48)+ORD(SLUTPER$(8))-48 8465 CURSOR E,12 8470 OUTPUT P 8480 EXEC SKRIVHOVED 8490 REPEAT 8500 EXEC NÆSTE 8510 IF LMNR<=MLMNR THEN 8520 EXEC INDTÆL 8530 EXEC CALC(B,TV$(16),TOTAL$(E),TOTAL$(E)) 8540 EXEC CALC(B,TV$(20),TOTAL$(G),TOTAL$(G)) 8550 IF STD>LA THEN 8560 STDA=STD 8570 ELSE 8580 STDA=LA 8590 ENDIF 8600 ANS=SLD MOD 100-STDA MOD 100 8610 ANS=ANS+30*(SLD DIV 100 MOD 100-STDA DIV 100 MOD 100) 8620 ANS=ANS+365*(SLD DIV 10000-STDA DIV 10000) 8630 IF LP$="1" THEN 8640 FDAGE=B 8650 ELSE 8660 FDAGE=INT(G*MFD*ANS/365+0.5)/G 8670 ENDIF 8680 EXEC CONVERT(RESUL$,FDAGE) 8690 EXEC CALC(B,RESUL$,TV$(44),RESUL1$) 8700 EXEC CALC(B,RESUL1$,TV$(29),RESUL1$) 8710 EXEC CALC(V,RESUL1$,SEKS$,RESUL$) 8720 IF RESUL$(8)=" " THEN RESUL$(8)="0" 8740 IF LINIE>MAXLIN-5 THEN 8750 WHILE LINIE<MAXLIN 8760 PRINT 8770 LINIE=LINIE+E 8780 ENDWHILE 8790 EXEC SKRIVHOVED 8810 ENDIF 8815 LINIE=LINIE+E 8820 EXEC CONVDATE(LIN$,LA) 8830 PRINT USING "#### ":LMNR; 8840 PRINT POST1$(E,25);" ";LIN$;RESUL1$(4,10);" ";RESUL$(8);" "; 8850 IF TV$(16,11)="+" THEN TV$(16,11)=" " 8860 IF TV$(20,11)="+" THEN TV$(20,11)=" " 8870 PRINT TV$(16);" ";TV$(20) 8880 ENDIF 8890 UNTIL LMNR=>MLMNR 8900 IF TOTAL$(E,12)="+" THEN TOTAL$(E,12)=" " 8910 IF TOTAL$(G,12)="+" THEN TOTAL$(G,12)=" " 8920 PRINT " ***";TAB(56);TOTAL$(E);TOTAL$(G); 8930 LINIE=LINIE+E 8940 WHILE LINIE<MAXLIN 8950 PRINT 8960 LINIE=LINIE+E 8970 ENDWHILE 8980 TYPE=G 8984 OUTPUT T 8985 CURSOR E,13 8986 OUTPUT P 8990 LMNR=B 9000 REPEAT 9010 EXEC NÆSTE 9020 IF LMNR<=MLMNR THEN 9030 EXEC INDTÆL 9040 EXEC CALC(B,TV$(G),TV$(4),RESUL$) 9050 FOR I=E TO 45 9060 IF TV$(I,11)="+" THEN TV$(I,11)=" " 9070 NEXT I 9080 IF RESUL$(12)="+" THEN RESUL$(12)=" " 9085 EXEC SKRIVHOVED 9090 PRINT " Lønmodtager"; 9100 PRINT USING "#### ":LMNR; 9110 PRINT POST1$(E,25) 9120 PRINT 9130 PRINT TAB(W);"0XX";TAB(23);"1XX";TAB(36);"2XX" 9140 PRINT " TV Arbejder- Ferie- og Årsop- Tekst"; 9150 PRINT TAB(66);"Lønart" 9160 PRINT " NR. lønstat SH-opg gørelse" 9170 PRINT " 01 ";TV$(E);TAB(29);"-";TAB(42);"-";TAB(45); 9180 PRINT "TILLÆG TIL FORDELING";TAB(66);"01-39" 9190 PRINT " 02 ";TV$(G);TAB(29);"-";TAB(42);"-";TAB(45); 9200 PRINT "AKKORDTIMER";TAB(66);"01-39" 9210 PRINT " 03 ";TV$(V);TAB(29);"-";TAB(42);"-";TAB(45); 9220 PRINT "AKKORDBELØB";TAB(66);"01-39" 9230 PRINT " 04 ";TV$(4);TAB(29);"-";TAB(42);"-";TAB(45); 9240 PRINT "TIDLØNSTIMER";TAB(66);"01-39" 9250 PRINT " 05 ";TV$(5);TAB(29);"-";TAB(42);"-";TAB(45); 9260 PRINT "TIDLØNSBELØB";TAB(66);"01-39" 9270 PRINT " 06 ";RESUL$(G,11);TAB(29);"-";TAB(32);TV$(30);TAB(45); 9280 PRINT "TIMER IALT";TAB(66);"(TV 02 + 04)" 9290 PRINT " 07 ";TV$(6);TAB(29);"-";TAB(42);"-";TAB(45); 9300 PRINT "HERAF OVERTIMER";TAB(66);"01-39" 9310 PRINT " 08 ";TV$(7);TAB(29);"-";TAB(42);"-";TAB(45); 9320 PRINT "OVERTIDSTILLÆG";TAB(66);"01-39" 9330 PRINT " 09 ";TV$(8);TAB(29);"-";TAB(42);"-";TAB(45); 9340 PRINT "HOLDDRIFTSTILLÆG";TAB(66);"01-39" 9350 PRINT " 10 ";TV$(W);TAB(29);"-";TAB(42);"-";TAB(45); 9360 PRINT "GENETILLÆG";TAB(66);"01-39" 9370 PRINT " 11 ";TV$(10);TAB(29);"-";TAB(42);"-";TAB(45); 9380 PRINT "DIV U F ARBEJDST";TAB(66);"01-39" 9390 PRINT " 12 ";TV$(11);TAB(19);TV$(16);TAB(32);TV$(31);TAB(45); 9400 PRINT "FERIEBERETT LØN";TAB(65);"*76" 9410 PRINT " 13 ";TV$(12);TAB(19);TV$(17);TAB(42);"-";TAB(45); 9420 PRINT "SYGEFERIEPENGE";TAB(66);"72" 9430 PRINT " 14 ";TV$(13);TAB(29);"-";TAB(32);TV$(32);TAB(45); 9440 PRINT "SYGEDAGPENGE";TAB(66);"41" 9450 PRINT " 15 ";TV$(14);TAB(19);TV$(20);TAB(42);"-";TAB(45); 9460 PRINT "BEREGNEDE FERIEP";TAB(65);"*78" 9470 PRINT " 16 ";TV$(15);TAB(19);TV$(23);TAB(42);"-";TAB(45); 9480 PRINT "SH-OPSPARING";TAB(65);"*79" 9490 PRINT " 17 ";TAB(16);"-";TAB(19);TV$(26);TAB(42);"-";TAB(45); 9500 PRINT "SH-FORSKUD";TAB(66);"42" 9510 PRINT " 18";TAB(16);"-";TAB(29);"-";TAB(32);TV$(33);TAB(45); 9520 PRINT "FERIETILLÆG";TAB(66);"40" 9530 PRINT " 19";TAB(16);"-";TAB(29);"-";TAB(32);TV$(34);TAB(45); 9540 PRINT "TRÆKPLIGTIG A-INDK";TAB(66);"70 + *82" 9550 PRINT " 20";TAB(16);"-";TAB(29);"-";TAB(32);TV$(37);TAB(45); 9560 PRINT "TRÆKFRI A-INDK";TAB(65);"*84" 9570 PRINT " 21";TAB(16);"-";TAB(29);"-";TAB(32);TV$(40);TAB(45); 9580 PRINT "A-SKAT";TAB(65);"*71+*83+*92+*97"; 9590 PRINT " 22";TAB(16);"-";TAB(29);"-";TAB(32);TV$(43);TAB(45); 9600 PRINT "ATP";TAB(65);"*80" 9610 PRINT " 23";TAB(16);"-";TAB(19);TV$(29);TAB(32);TV$(44);TAB(45); 9620 PRINT "FERIEDAGE";TAB(66);"73 + SYSTEM" 9630 PRINT " 24";TAB(16);"-";TAB(29);"-";TAB(32);TV$(45);TAB(45); 9640 PRINT "PENSIONSBIDRAG";TAB(66);"49" 9650 PRINT 9660 PRINT 9670 PRINT " ANSAT FRA";LA;" TIL";FD;" " 9680 FOR I=38 TO 72 9690 PRINT 9700 NEXT I 9710 ENDIF 9720 UNTIL LMNR=>MLMNR 9730 CLOSE 9735 OUTPUT T 9740 CHAIN "P641210:ÅRSOPL"