|
|
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: 5056 (0x13c0)
Types: TextFile
Notes: Mikados_K
Names: »ÅRSAFSLT.K«
└─⟦385f097a1⟧ Bits:30008988 SPC/1 COMAL programmer til bogføring
└─⟦this⟧ »ÅRSAFSLT.K«
0110DIM STARTPER$(8),SLUTPER$(8),LP$(E),ORK$(E) 0120DIM RES$(15),OP1$(12),OP2$(12),TAH$(12) 0160DIM MF1$(16) 0210DIM X(8),Y(8),TYPE(8) 0220DIM BL$(79),L$(79),LIN$(12) 0230FOR I=E TO 79 0240BL$=BL$+" " 0250NEXT I 0255TAH$=" 0+" 0260X(E)=27 0270X(G)=34;X(V)=36 0290X(4),X(5),X(6),X(7),X(8)=39 0310Y(E),Y(G)=G;Y(V)=V;Y(4)=4;Y(5)=5;Y(6)=7;Y(7)=8;Y(8)=W 0340TYPE(E),TYPE(G)=6 0350TYPE(4),TYPE(7),TYPE(8),TYPE(5),TYPE(6)=-E 0360TYPE(V)=-4 0370PROC C(AR3,B1,B2,ES) 0380RES$=ES$;OP1$=B1$;OP2$=B2$;SI=B;FLAG=B;ART=AR3-6*(AR3>5) 0390CALL "P641210:REGN" 0400IF AR3<6 THEN 0410IF FLAG THEN STOP 0420ENDIF 0430ES$=RES$ 0440ENDPROC 0650PROC DATOCHECK(NR5,OK5) 0660OK5=E 0670ÅR=(ORD(NR5$(E))-48)*10+ORD(NR5$(G))-48 0680MÅNED=(ORD(NR5$(V))-48)*10+ORD(NR5$(4))-48 0690DATO=(ORD(NR5$(5))-48)*10+ORD(NR5$(6))-48 0700IF DATO<E OR MÅNED<E OR MÅNED>12 OR DATO>31 THEN OK5=B 0710IF OK5=B THEN EXIT 0720CASE MÅNED OF 0730WHEN 4,6,W,11 0740IF DATO>30 THEN OK5=B 0750WHEN G 0760IF DATO>29 THEN OK5=B 0770IF DATO=29 AND ÅR MOD 4<>B THEN OK5=B 0780ENDCASE 0790ENDPROC 1000PROC CHECK(NR1,OK1) 1010OK1=B 1020RESULT=B 1030IF LEN(NR1$)>B THEN 1040IF NR1$(E)="-" THEN 1050FORTEGN=-E 1060OK1=E 1070ELSE 1080FORTEGN=E 1090ENDIF 1100WHILE LEN(NR1$)>OK1 1110OK1=OK1+E 1120IF NR1$(OK1)<"0" OR NR1$(OK1)>"9" THEN 1130FORTEGN=B 1140OK1=LEN(NR1$) 1150ENDIF 1160RESULT=RESULT*10+ORD(NR1$(OK1))-48 1170ENDWHILE 1175RESULT=RESULT*FORTEGN 1180OK1=OK1*FORTEGN 1190IF OK1<B THEN OK1=OK1+E 1200ENDIF 1210ENDPROC 1220PROC INOPL(OPL) 1230EXEC INLINE(OPL) 1240CASE OPL OF 1250WHEN E 1260REPEAT 1270EXEC DATOCHECK(L$,I) 1280IF I=B THEN EXEC INLINE(OPL) 1290UNTIL I=E 1300EXEC CONVDATE(STARTPER$,RESULT) 1310WHEN G 1320REPEAT 1330EXEC DATOCHECK(L$,I) 1340IF I=B THEN EXEC INLINE(OPL) 1350UNTIL I=E 1360EXEC CONVDATE(SLUTPER$,RESULT) 1460WHEN V 1470REPEAT 1480L$=L$+"+" 1490EXEC C(6,L$,TAH$,LIN$) 1500IF FLAG<>B THEN EXEC INLINE(OPL) 1510UNTIL FLAG=B 1520EXEC C(0,L$,TAH$,LIN$) 1530EXEC PERVERT(LIN$,MFD) 1540WHEN 4 1550WHILE L$<"1" OR L$>"7" 1560EXEC INLINE(OPL) 1570ENDWHILE 1580LP$=L$ 1590WHEN 5 1600WHILE L$<>"A" AND L$<>"F" 1610EXEC INLINE(OPL) 1620ENDWHILE 1630ORK$=L$ 1640WHEN 7,8,6 1650WHILE L$<>"J" AND L$<>"N" 1660EXEC INLINE(OPL) 1670ENDWHILE 1680IF L$="J" THEN ORK$="0" 1870ENDCASE 1880ENDPROC 2020PROC INLINE(N) 2030REPEAT 2040CURSOR X(N),Y(N) 2050INPUT "",L$ 2060IF TYPE(N)<B THEN 2070IF LEN(L$)<=ABS(TYPE(N)) THEN 2080OK=E 2090FOR I=LEN(L$)+E TO ABS(TYPE(N)) 2100L$(I)=" " 2110NEXT I 2120ELSE 2130OK=B 2140ENDIF 2150ELSE 2160EXEC CHECK(L$,OK) 2170IF TYPE(N)>B AND TYPE(N)<>OK THEN OK=B 2180ENDIF 2190UNTIL OK<>B 2200ENDPROC 2210PROC SKRIVPICT 2220CLEAR 2230PRINT TAB(15);"Årsafslutning" 2240PRINT " Lønperioden" 2260PRINT " Maksimum feriedage i året" 2270PRINT " Lønperiodekode 1,2,3,4,5,6 eller 7" 2280PRINT " Arbejdere(A) eller funktionærer(F)" 2290PRINT " Mangler der:" 2300PRINT " Lønafregninger ja(J) eller nej(N)" 2310PRINT " Ferie- og SH-opg ja(J) eller nej(N)" 2320PRINT " Arbejderlønstat ja(J) eller nej(N)" 2330PRINT " Der udskrives:" 2340PRINT " Lønjournal" 2350PRINT " Ferieliste" 2360PRINT " Lønmodtagerkartotekets tælleværker" 2370PRINT " Årsoplysningssedler" 2380PRINT 2390PRINT " Fratrådte fjernes" 2400PRINT 2410PRINT " 0-stilling af:" 2412PRINT " Samtlige tælleværker" 2414PRINT " Skattekortoplysninger" 2420ENDPROC 2600PROC CONVDATE(NR1,OK1) 2610OK11=OK1;NR1$="" 2620FOR I=8 TO E STEP -E 2630IF I MOD V=B THEN 2640NR1$(I)="-" 2650ELSE 2660NR1$(I)=CHR(OK11 MOD 10+48) 2670OK11=OK11 DIV 10 2680ENDIF 2690NEXT I 2700ENDPROC 2890PROC PERVERT(NR1,OK1) 2900OK1=B 2910FOR I=E TO LEN(NR1$)-E 2920IF NR1$(I)<>" " AND NR1$(I)<>"," THEN OK1=10*OK1+ORD(NR1$(I))-48 2930NEXT I 2940IF NR1$(I)="-" THEN OK1=-OK1 2950OK1=OK1/100 2960ENDPROC 8291MF1$="P641210:LØNJOUR" 8292OPEN MF1$,W 8300EXEC SKRIVPICT 8310FOR J=E TO 8 8330EXEC INOPL(J) 8340NEXT J 8370L$=BL$ 8372PUT MF1$:STARTPER$,SLUTPER$,LP$,ORK$,MFD 8870CLOSE 8875IF ORK$<>"0" THEN 8880CHAIN "P641210:AFSLJOUR" 8890ELSE 8900CHAIN "P641210:STARTB" 8910ENDIF