|
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: 25280 (0x62c0) Notes: Mikados TextFile, Mikados_K Names: »FAKTURA«
└─⟦ec8c1e0b0⟧ Bits:30007442 8" floppy ( MIKPROG vol. 1-3, MIKREL vol. 1-3, PCSE 4.7.80 vol 1-3, GL.SYS ) └─ ⟦this⟧ »FAKTURA«
0100 DIM OP1$(12),OP2$(12),RES$(14),BLB2$(12),T2(9),K2$(17),K3$(17),K4$(17) 0110 DIM K1$(17),N$(6),K6$(17),K5$(17),DEBNAVN$(25),DSALDO1$(12),DEBKGR$(2) 0120 DIM DSALDO2$(12),DSALDO3$(12),DSALDO4$(12),DEBLK$(2),DEBGADE$(25) 0130 DIM DEBTLF$(9),DEBBY$(20),SALDO$(12),FORS$(12),SVAR2$(1),GTOTAL$(12) 0140 DIM ÅRKØB$(12),MDNKØB$(12),K7$(17),A$(6),TAL1$(12) 0150 DIM MOMS$(12),FTOTAL$(12),KOD1$(1),KOD$(1),TAH$(12),TAL4$(14),T1(9) 0160 DIM VARTEKST$(25),VARPRIS$(12),BELØB$(12),TOTAL$(12),B$(12) 0170 DIM SVAR1$(1),FAKKRE$(1),LEVTEKST$(52),ANTAL$(12),BLANK$(77),LAND$(9,12) 0180 DIM VATEKARR$(25,25),VAPRIARR$(25,12),BELØBARR$(25,12),VAANTARR$(25,5) 0190 DIM ARRKODER(26,2),VANRARR(25) 0200 DIM LTX1$(6),LTX2$(32),LTX3$(47),LTX4$(19),LTX5$(17),LTX6$(31),LTX7$(33) 0210 DIM LTX8$(9),LTX9$(25),LTX10$(26),LTX11$(28),LTX12$(39),LTX13$(33) 0220 TAH$="0+";TAL4$="0+";TOTAL$="0+" 0230 BLANK$=" ";BLANK$=BLANK$+BLANK$+BLANK$+" " 0240 LTX1$="Rabat ";LTX3$="Fakturering. Indtast kundenummer, 0 for færdig:" 0250 LTX2$="Korrekt forsendelsesbeløb (J/N):";LTX4$="Rigtig kunde (J/N):" 0260 LTX5$="Ordrenr.: ";LTX7$="Der er ikke plads til ny faktura." 0270 LTX9$="Linie, som ønskes ændret:";LTX11$="Ønskes linien slettet (J/N):" 0280 LTX8$="Vælg 1-5:";LTX12$="Linie fra hvilken der ønskes udskrevet:" 0290 LTX6$="Fakturahoved godkendes (J/N): " 0300 LTX13$="Hvilket linienummer for ny linie:" 0310 LTX10$="Linie, som ønskes slettet:" 0320 PROC CALC(AR3,B1,B2,ES) 0330 OP1$=B1$;OP2$=B2$;RES$=ES$;SI=0;FLAG=0;ART=AR3-6*(AR3>5) 0340 CALL "P641210:REGN" 0350 IF AR3<6 THEN 0360 IF FLAG THEN STOP 0370 ENDIF 0380 ES$=RES$ 0390 ENDPROC 0400 PROC INDPUT1(XPOS1,YPOS1,LN4,LN5,LT1) 0410 REPEAT 0420 CURSOR XPOS1,YPOS1 0430 PRINT LT1$;BLANK$(77-XPOS1-LEN(LT1$)) 0440 CURSOR XPOS1+LEN(LT1$)-1,YPOS1 0450 INPUT " ",A$ 0460 EXEC NRTEST(A$) 0470 UNTIL P>LN4 AND P<LN5 AND TEST2=0 0480 ENDPROC 0490 PROC INDPUT2(XPOS2,YPOS2,LT2,VAR) 0500 REPEAT 0510 CURSOR XPOS2,YPOS2 0520 PRINT LT2$;BLANK$(77-XPOS2-LEN(LT2$)) 0530 CURSOR XPOS2+LEN(LT2$)-1,YPOS2 0540 INPUT " ",VAR$ 0550 IF LEN(VAR$)=0 THEN VAR$="0" 0560 VAR$=VAR$+"+" 0570 EXEC CALC(6,VAR$,TAH$,VAR$) 0580 UNTIL FLAG=0 0590 ENDPROC 0600 PROC FEJL(NR1,NR2,NR3) 0610 IF STATUS(NR3$)<>0 THEN 0620 PRINT STATUS(NR3$),NR1,NR2,NR3$ 0630 STOP 0640 ENDIF 0650 ENDPROC 0660 PROC FINDPOST1(TAB4,Q,MANT2,NØGL5,PIL6,L8) 0670 PIL1=MANT2 DIV 8;PIL6=PIL1;CEKS=1;MANT3=MANT2 DIV 4;MANT4=MANT2 DIV 32 0680 REPEAT 0690 IF NØGL5=TAB4(PIL6) OR PIL1=1 THEN EXIT 0700 PIL1=(PIL1+1) DIV 2;PIL6=PIL6+PIL1*(1-2*(NØGL5<TAB4(PIL6))) 0710 IF PIL6<1 THEN PIL6=1 0720 IF PIL6>MANT3 THEN PIL6=MANT3 0730 UNTIL PIL1=0 0740 IF TAB4(PIL6)>NØGL5 THEN PIL6=PIL6-1*(PIL6>1) 0750 PIL6=MANT4+PIL6 0760 GET L8$,PIL6:Q(1,1),Q(1,2),Q(2,1),Q(2,2),Q(3,1),Q(3,2),Q(4,1),Q(4,2) 0770 EXEC FEJL(1,1,L8$) 0780 FOR PIL6=1 TO 4 0790 IF NØGL5=Q(PIL6,1) THEN EXIT 0800 NEXT PIL6 0810 IF PIL6<>5 THEN CEKS=0 0820 ENDPROC 0830 PROC INDTAB1(Z,MANT5,L7) 0840 PIL1=MANT5 DIV 32 0850 FOR I=1 TO PIL1 0860 H=(I-1)*8+1 0870 GET L7$,I:Z(H),Z(H+1),Z(H+2),Z(H+3),Z(H+4),Z(H+5),Z(H+6),Z(H+7) 0880 EXEC FEJL(2,1,L7$) 0890 NEXT I 0900 ENDPROC 0910 PROC NRTEST(NUM1) 0920 P=0;TEST2=0;KTAL=0;L=LEN(NUM1$) 0930 IF L>6 THEN EXIT 0940 CASE L OF 0950 FOR J=1 TO L 0960 P1=INT(ORD(NUM1$(J))-48) 0970 IF P1<0 OR P1>9 THEN 0980 TEST2=1 0990 ELSE 1000 P=P*10+P1 1010 ENDIF 1020 NEXT J 1030 KTAL=P DIV 10000 1040 WHEN 0 1050 P=-1 1060 WHEN 1 1070 CASE NUM1$ OF 1080 P=INT(ORD(NUM1$)-48) 1090 WHEN "J","j" 1100 P=-7 1110 WHEN "N","n" 1120 P=-8 1130 ENDCASE 1140 ENDCASE 1150 ENDPROC 1160 PROC TUD(BLB1,UBLB1,TEGN,STØR) 1170 BLB2$=BLB1$ 1180 EXEC CALC(5,BLB2$,TAH$,UBLB1$) 1190 IF TEGN=0 THEN UBLB1$=UBLB1$(1:13) 1200 IF TEGN=1 AND UBLB1$(LEN(UBLB1$))="+" THEN UBLB1$(LEN(UBLB1$))=" " 1210 IF STØR=1 THEN UBLB1$=UBLB1$(4:LEN(UBLB1$)-3) 1220 PRINT UBLB1$ 1230 ENDPROC 1240 PROC HENTDPOST 1250 S=DTAB(DPIL3,2) 1260 GET K4$,S:DEBNR,DEBNAVN$,DSALDO1$,DEBKGR$ 1270 EXEC FEJL(8,1,K4$) 1280 GET K4$,S+1:DSALDO2$,DSALDO3$,DSALDO4$,DEBPOSTNR,DEBLK$ 1290 EXEC FEJL(8,2,K4$) 1300 GET K4$,S+2:DEBGADE$,DEBTLF$,HPOST,HKUNDE 1310 EXEC FEJL(8,3,K4$) 1320 GET K4$,S+3:DEBBY$,ÅRKØB$,MDNKØB$ 1330 EXEC FEJL(8,4,K4$) 1340 ENDPROC 1350 PROC HENTVPOST 1360 S=VTAB(VPIL3,2) 1370 GET K5$,S:VARENR,VARTEKST$,VARPRIS$,VARKONT 1380 EXEC FEJL(3,1,K5$) 1390 ENDPROC 1400 PROC KUNDEUD(HO) 1410 CURSOR 9,5 1420 PRINT DEBNAVN$ 1430 CURSOR 9,6 1440 PRINT DEBGADE$ 1450 CURSOR 6,7 1460 PRINT USING "#######":DEBPOSTNR 1470 CURSOR 14,7 1480 PRINT DEBBY$ 1490 IF HO=1 THEN 1500 EXEC CALC(0,DSALDO1$,DSALDO2$,SALDO$) 1510 EXEC CALC(0,SALDO$,DSALDO3$,SALDO$) 1520 EXEC CALC(0,SALDO$,DSALDO4$,SALDO$) 1530 CURSOR 9,14 1540 PRINT "Saldo: "; 1550 EXEC TUD(SALDO$,TAL4$,1,0) 1560 CURSOR 12,16 1570 PRINT "0-30 dage 30-60 dage 60-90 dage ældre" 1580 CURSOR 9,18 1590 EXEC TUD(DSALDO1$,TAL4$,1,0) 1600 CURSOR 25,18 1610 EXEC TUD(DSALDO2$,TAL4$,1,0) 1620 CURSOR 41,18 1630 EXEC TUD(DSALDO3$,TAL4$,1,0) 1640 CURSOR 57,18 1650 EXEC TUD(DSALDO4$,TAL4$,1,0) 1660 ENDIF 1670 ENDPROC 1680 PROC DATOINDT 1690 REPEAT 1700 EXEC INDPUT1(64,LINIE,-2,1000000,BLANK$(1)) 1710 UNTIL KTAL=>80 AND (P DIV 100) MOD 100<13 AND P MOD 100<32 OR P=-1 1720 DAT=P 1730 IF DAT=-1 THEN DAT=DATO 1740 CURSOR 67,LINIE 1750 EXEC DATOUD(DAT) 1760 ENDPROC 1770 PROC DATOUD(DA) 1780 PRINT USING "###.##":(DA MOD 10000)/100 1790 CURSOR 64,LINIE 1800 PRINT USING "###.#":(DA DIV 1000)/10 1810 ENDPROC 1820 PROC FAKHOVED 1830 CLEAR 1840 CURSOR 2,1 1850 PRINT USING "Kundenr.:####### ":KUNDENR; 1860 PRINT " ";DEBNAVN$ 1870 CURSOR 54,1 1880 IF FAKKRE$="F" THEN 1890 PRINT USING "Fakturanr.: #######":FAKTNR+AFAKT 1900 ELSE 1910 PRINT USING "Kreditnotanr.: ######":KREDNR+AKRED 1920 ENDIF 1930 CURSOR 2,3 1940 PRINT "Linie Vr.nr. Antal Tekst"; 1950 CURSOR 56,3 1960 PRINT "Pris Beløb" 1970 LINIE=5 1980 ENDPROC 1990 PROC VARELINI 2000 REPEAT 2010 FEJL6=0;VARTEKST$=BLANK$ 2020 CURSOR 3,LINIE 2030 PRINT USING "###":AVALIN; 2040 PRINT BLANK$(1:55) 2050 REPEAT 2060 EXEC INDPUT1(8,LINIE,-1,1000000,BLANK$(1)) 2070 UNTIL NOT (P=3 AND AVALIN=1) 2080 VARENR=P 2090 IF VARENR<>0 THEN 2100 CURSOR 8,LINIE 2110 IF VARENR=5 THEN 2120 PRINT BLANK$(1:25) 2130 ELSE 2140 PRINT USING "#######":VARENR 2150 ENDIF 2160 CASE VARENR OF 2170 EXEC FINDPOST1(VTAB1,VTAB,MVANTAL,VARENR,VPIL3,K3$) 2180 IF CEKS<>0 THEN 2190 CURSOR 17,LINIE 2200 INPUT "Varenummeret eksisterer ikke. Tast RETURN.",SVAR1$ 2210 LINIE=LINIE-1;AVALIN=AVALIN-1 2220 ELSE 2230 EXEC INDPUT2(17,LINIE,BLANK$(1),ANTAL$) 2240 EXEC CALC(4,ANTAL$,TAH$,TAH$) 2250 IF SI=0 THEN FEJL6=1 2260 IF FEJL6=0 THEN 2270 CURSOR 17,LINIE 2280 PRINT ANTAL$(4:5);BLANK$(1:10) 2290 CURSOR 1,23 2300 EXEC HENTVPOST 2310 CURSOR 23,LINIE 2320 IF ORD(VARTEKST$(1))=255 THEN 2330 INPUT " ",VARTEKST$ 2340 ARRKODER(AVALIN,2)=1 2350 ENDIF 2360 CURSOR 24,LINIE 2370 PRINT VARTEKST$;BLANK$(1:25) 2380 EXEC CALC(4,VARPRIS$,TAH$,TAH$) 2390 IF SI=0 THEN 2400 EXEC INDPUT2(50,LINIE,BLANK$(1),VARPRIS$) 2410 ARRKODER(AVALIN,1)=1 2420 ENDIF 2430 CURSOR 51,LINIE 2440 EXEC TUD(VARPRIS$,TAL4$,1,0) 2450 EXEC CALC(2,VARPRIS$,ANTAL$,BELØB$) 2460 CURSOR 66,LINIE 2470 EXEC TUD(BELØB$,TAL4$,1,0) 2480 EXEC CALC(0,BELØB$,TOTAL$,TOTAL$) 2490 IF FLAG<>0 THEN STOP 2500 VANRARR(AVALIN)=VARENR;VATEKARR$(AVALIN)=VARTEKST$ 2510 VAPRIARR$(AVALIN)=VARPRIS$;VAANTARR$(AVALIN)=ANTAL$(4:5) 2520 BELØBARR$(AVALIN)=BELØB$ 2530 ENDIF 2540 ENDIF 2550 WHEN 1,2 2560 VARTEKST$=BLANK$ 2570 CURSOR 23,LINIE 2580 INPUT " ",VARTEKST$ 2590 L2=LEN(VARTEKST$) 2600 IF L2=0 THEN FEJL6=1 2610 IF L2>0 THEN 2620 CURSOR 24,LINIE 2630 PRINT VARTEKST$;BLANK$(1:25) 2640 IF VARENR=1 THEN 2650 EXEC INDPUT2(65,LINIE,BLANK$(1),BELØB$) 2660 EXEC CALC(0,BELØB$,TOTAL$,TOTAL$) 2670 CURSOR 66,LINIE 2680 EXEC TUD(BELØB$,TAL4$,1,0) 2690 BELØBARR$(AVALIN)=BELØB$ 2700 ELSE 2710 BELØBARR$(AVALIN)="0+" 2720 ENDIF 2730 VANRARR(AVALIN)=VARENR;VATEKARR$(AVALIN)=VARTEKST$ 2740 ENDIF 2750 WHEN 3 2760 IF VANRARR(AVALIN-1)<>3 THEN 2770 EXEC INDPUT2(24,LINIE,LTX1$,VARPRIS$) 2780 EXEC CALC(4,VARPRIS$,TAH$,TAH$) 2790 IF SI=0 THEN FEJL6=1 2800 IF FEJL6=0 THEN 2810 CURSOR 30,LINIE 2820 PRINT VARPRIS$(7:5);" %";BLANK$(1:25) 2830 EXEC CALC(2,VARPRIS$,BELØBARR$(AVALIN-1),BELØB$) 2840 VATEKARR$(AVALIN)="Rabat "+VARPRIS$(7:5)+" %" 2850 VANRARR(AVALIN)=VARENR;VARPRIS$="100-" 2860 EXEC CALC(3,BELØB$,VARPRIS$,BELØB$) 2870 CURSOR 66,LINIE 2880 EXEC TUD(BELØB$,TAL4$,1,0) 2890 BELØBARR$(AVALIN)=BELØB$ 2900 EXEC CALC(0,BELØB$,TOTAL$,TOTAL$) 2910 ENDIF 2920 ELSE 2930 LINIE=LINIE-1;AVALIN=AVALIN-1 2940 ENDIF 2950 WHEN 4 2960 CURSOR 24,LINIE 2970 VARTEKST$="Subtotal " 2980 PRINT VARTEKST$ 2990 CURSOR 66,LINIE 3000 EXEC TUD(TOTAL$,TAL4$,1,0) 3010 VANRARR(AVALIN)=VARENR;VATEKARR$(AVALIN)=VARTEKST$ 3020 BELØBARR$(AVALIN)=TOTAL$ 3030 ENDCASE 3040 ELSE 3050 VARENR=0 3060 CURSOR 2,LINIE 3070 PRINT BLANK$(1:25) 3080 ENDIF 3090 UNTIL FEJL6=0 3100 ENDPROC 3110 PROC LINITEST 3120 IF LINIE>23 THEN 3130 EXEC FAKHOVED 3140 J=AVALIN-1 3150 EXEC VARLINUD(J) 3160 LINIE=LINIE+1 3170 ENDIF 3180 ENDPROC 3190 PROC VARLINUD(LIN) 3200 CURSOR 3,LINIE 3210 PRINT USING "###":LIN 3220 IF VANRARR(LIN)>4 THEN 3230 CURSOR 8,LINIE 3240 PRINT USING "#######":VANRARR(LIN) 3250 CURSOR 17,LINIE 3260 PRINT VAANTARR$(LIN) 3270 ENDIF 3280 CURSOR 24,LINIE 3290 PRINT VATEKARR$(LIN) 3300 IF VANRARR(LIN)>4 THEN 3310 CURSOR 51,LINIE 3320 B$=VAPRIARR$(LIN) 3330 EXEC TUD(B$,TAL4$,1,0) 3340 ENDIF 3350 CURSOR 66,LINIE 3360 B$=BELØBARR$(LIN) 3370 IF VANRARR(LIN)<>2 THEN EXEC TUD(B$,TAL4$,1,0) 3380 ENDPROC 3390 PROC FAKTBUND 3400 GTOTAL$=TOTAL$ 3410 REPEAT 3420 EXEC SLET 3430 CURSOR 22,19 3440 PRINT "Forsendelse Netto" 3450 CURSOR 56,19 3460 PRINT "Moms Total" 3470 EXEC INDPUT2(20,21,BLANK$(1),FORS$) 3480 CURSOR 21,21 3490 EXEC TUD(FORS$,TAL4$,1,0) 3500 CURSOR 36,21 3510 EXEC CALC(0,FORS$,TOTAL$,TOTAL$) 3520 EXEC TUD(TOTAL$,TAL4$,1,0) 3530 EXEC CALC(2,TOTAL$,MOMS$,FTOTAL$) 3540 ANTAL$="100+" 3550 EXEC CALC(3,FTOTAL$,ANTAL$,ANTAL$) 3560 CURSOR 51,21 3570 EXEC TUD(ANTAL$,TAL4$,1,0) 3580 EXEC CALC(0,ANTAL$,TOTAL$,FTOTAL$) 3590 CURSOR 66,21 3600 EXEC TUD(FTOTAL$,TAL4$,1,0) 3610 TOTAL$=GTOTAL$ 3620 EXEC INDPUT1(9,23,-9,-6,LTX2$) 3630 UNTIL P=-7 3640 ENDPROC 3650 PROC SLET 3660 CURSOR 2,19 3670 PRINT BLANK$ 3680 CURSOR 2,21 3690 PRINT BLANK$ 3700 CURSOR 2,23 3710 PRINT BLANK$ 3720 ENDPROC 3730 PROC LUD 3740 CLEAR 3750 EXEC FAKHOVED 3760 FOR LINIE=5 TO 16 3770 EXEC VARLINUD(STARTL) 3780 STARTL=STARTL+1 3790 IF STARTL>SLUTL THEN EXIT 3800 NEXT LINIE 3810 ENDPROC 3820 PROC AJOUR 3830 TOTAL$="0+" 3840 FOR M=1 TO AVALIN 3850 CASE VANRARR(M) OF 3860 EXEC CALC(0,TOTAL$,BELØBARR$(M),TOTAL$) 3870 WHEN 2 3880 WHEN 4 3890 BELØBARR$(M)=TOTAL$ 3900 WHEN 3 3910 VARPRIS$=" ,"+VATEKARR$(M,7:2)+VATEKARR$(M,10:2)+"-" 3920 IF VARPRIS$(8)=" " THEN VARPRIS$(8)="0" 3930 IF VARPRIS$(9)=" " THEN VARPRIS$(9)="0" 3940 EXEC CALC(2,BELØBARR$(M-1),VARPRIS$,TAL1$) 3950 BELØBARR$(M)=TAL1$ 3960 EXEC CALC(0,TOTAL$,TAL1$,TOTAL$) 3970 ENDCASE 3980 NEXT M 3990 ENDPROC 4000 PROC FAKTGEM 4010 I=APOSTER+1 4020 IF FAKKRE$="F" THEN 4030 AFAKT=AFAKT+1 4040 ELSE 4050 AKRED=AKRED+1 4060 ENDIF 4070 OPEN K6$,W 4080 EXEC FEJL(3,1,K6$) 4090 PUT K6$,I:KUNDENR,ORDREDAT,FAKKRE$,DIVD 4100 EXEC FEJL(3,2,K6$) 4110 I=I+2 4120 IF DIVD=1 THEN 4130 PUT K6$,I:DEBNAVN$(1:13) 4140 EXEC FEJL(3,3,K6$) 4150 PUT K6$,I+1:DEBNAVN$(14:12) 4160 EXEC FEJL(3,4,K6$) 4170 PUT K6$,I+2:DEBGADE$(1:13) 4180 EXEC FEJL(3,5,K6$) 4190 PUT K6$,I+3:DEBGADE$(14:12) 4200 EXEC FEJL(3,6,K6$) 4210 PUT K6$,I+4:DPOSTNR,DEBBY$(1:9) 4220 EXEC FEJL(3,7,K6$) 4230 PUT K6$,I+5:DEBBY$(10:11) 4240 EXEC FEJL(3,8,K6$) 4250 I=I+6 4260 ENDIF 4270 IF LEVKODE=0 THEN 4280 FOR J=I TO I+3 4290 PUT K6$,J:LEVTEKST$((J-I)*13+1:13) 4300 EXEC FEJL(3,8,K6$) 4310 NEXT J 4320 I=I+4 4330 ENDIF 4340 EXEC KODE(1) 4350 KOD1$=KOD$ 4360 FOR LINIE=1 TO AVALIN 4370 J=LINIE+1 4380 EXEC KODE(J) 4390 CASE KOD1$ OF 4400 STOP 4410 WHEN "A" 4420 EXEC VALINGEM 4430 WHEN "B" 4440 VATEKARR$(LINIE,13)=KOD$ 4450 PUT K6$,I:VATEKARR$(LINIE,1:13) 4460 EXEC FEJL(3,9,K6$) 4470 I=I+1 4480 WHEN "C" 4490 EXEC ELØBGEM(BELØBARR$(LINIE)) 4500 WHEN "D" 4510 EXEC TEKSTGEM 4520 WHEN "E" 4530 EXEC TEKSTGEM 4540 EXEC ELØBGEM(BELØBARR$(LINIE)) 4550 WHEN "F" 4560 EXEC VALINGEM 4570 EXEC ELØBGEM(VAPRIARR$(LINIE)) 4580 WHEN "G","H" 4590 EXEC TEKSTGEM 4600 EXEC VALINGEM 4610 IF KOD1$="H" THEN 4620 EXEC ELØBGEM(VAPRIARR$(LINIE)) 4630 ENDIF 4640 ENDCASE 4650 KOD1$=KOD$ 4660 NEXT LINIE 4670 EXEC ELØBGEM(FORS$) 4680 EXEC ELØBGEM(MOMS$) 4690 EXEC ELØBGEM(FTOTAL$) 4700 I=I-1 4710 EXEC KODE(1) 4720 IF LEVKODE=11 THEN KOD$=CHR(11+ORD(KOD$)) 4730 PUT K6$,APOSTER+2:ORDRENR,FDATO,I-APOSTER,KOD$ 4740 EXEC FEJL(3,10,K6$) 4750 APOSTER=I 4760 CLOSE K6$ 4770 EXEC FEJL(3,11,K6$) 4780 ENDPROC 4790 PROC TEKSTGEM 4800 PUT K6$,I:VATEKARR$(LINIE,1:13) 4810 EXEC FEJL(4,1,K6$) 4820 TAL4$=VATEKARR$(LINIE,14:12)+KOD$;I=I+2 4830 PUT K6$,I-1:TAL4$(1:13) 4840 EXEC FEJL(4,2,K6$) 4850 ENDPROC 4860 PROC ELØBGEM(BEL) 4870 TAL4$=BEL$+KOD$;I=I+1 4880 PUT K6$,I-1:TAL4$(1:13) 4890 EXEC FEJL(5,1,K6$) 4900 ENDPROC 4910 PROC VALINGEM 4920 PUT K6$,I:VANRARR(LINIE),VAANTARR$(LINIE),KOD$ 4930 EXEC FEJL(6,1,K6$) 4940 I=I+1 4950 ENDPROC 4960 PROC KODE(LI) 4970 IF ARRKODER(LI,1)=0 AND ARRKODER(LI,2)=0 THEN 4980 CASE VANRARR(LI) OF 4990 KOD$="A" 5000 WHEN 3 5010 KOD$="B" 5020 WHEN 4 5030 KOD$="C" 5040 WHEN 2 5050 KOD$="D" 5060 WHEN 1 5070 KOD$="E" 5080 ENDCASE 5090 ELSE 5100 IF ARRKODER(LI,1)=0 THEN 5110 KOD$="G" 5120 ELSE 5130 IF ARRKODER(LI,2)=0 THEN 5140 KOD$="F" 5150 ELSE 5160 KOD$="H" 5170 ENDIF 5180 ENDIF 5190 ENDIF 5200 ENDPROC 5210 PROC SYSGEM 5220 T1(1)=FAKTNR;T1(2)=KREDNR;T2(4)=APOSTER;T2(5)=AKRED;T2(6)=AFAKT 5230 T2(7)=AVKONTI;T2(8)=FJPOST 5240 OPEN K7$,W 5250 EXEC FEJL(9,1,K7$) 5260 PUT K7$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1(9) 5270 EXEC FEJL(9,2,K7$) 5280 PUT K7$,12:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9) 5290 EXEC FEJL(9,3,K7$) 5300 CLOSE K7$ 5310 EXEC FEJL(9,4,K7$) 5320 ENDPROC 5330 K1$="P641220:SYSTEM1" 5340 OPEN K1$,R 5350 EXEC FEJL(9,1,K1$) 5360 GET K1$,1:MFANTAL,MDANTAL,MKANTAL,MVANTAL 5370 EXEC FEJL(9,2,K1$) 5380 GET K1$,4:KPOST,MFAK,MVGR,MKGR 5390 EXEC FEJL(9,3,K1$) 5400 GET K1$,8:DIVNR,DIVDNR,DIFNR,DTAL 5410 EXEC FEJL(9,4,K1$) 5420 GET K1$,10:N$ 5430 EXEC FEJL(9,5,K1$) 5440 GET K1$,12:K2$ 5450 EXEC FEJL(9,6,K1$) 5460 GET K1$,14:K3$ 5470 EXEC FEJL(9,7,K1$) 5480 GET K1$,16:K4$ 5490 EXEC FEJL(9,8,K1$) 5500 GET K1$,18:K5$ 5510 EXEC FEJL(9,9,K1$) 5520 GET K1$,29:K6$ 5530 EXEC FEJL(9,10,K1$) 5540 GET K1$,36:K7$ 5550 EXEC FEJL(9,11,K1$) 5560 CLOSE K1$ 5570 EXEC FEJL(9,12,K1$) 5580 DIM VTAB1(MVANTAL DIV 4),DTAB1(MDANTAL DIV 4),VTAB(4,2),DTAB(4,2) 5590 K2$=N$+K2$;K3$=N$+K3$;K4$=N$+K4$;K5$=N$+K5$;K6$=N$+K6$;K7$=N$+K7$ 5600 OPEN K7$,R 5610 EXEC FEJL(9,13,K7$) 5620 GET K7$,1:MOMS$ 5630 EXEC FEJL(9,14,K7$) 5640 GET K7$,2:T1(1),T1(2),T1(3),T1(4),T1(5),T1(6),T1(7),T1(8),T1(9) 5650 EXEC FEJL(9,15,K7$) 5660 FOR I=1 TO 3 5670 H=(I-1)*3+1 5680 GET K7$,I+2:LAND$(H),LAND$(H+1),LAND$(H+2) 5690 EXEC FEJL(9,16,K7$) 5700 NEXT I 5710 GET K7$,12:T2(1),T2(2),T2(3),T2(4),T2(5),T2(6),T2(7),T2(8),T2(9) 5720 EXEC FEJL(9,17,K7$) 5730 CLOSE K7$ 5740 EXEC FEJL(9,18,K7$) 5750 OPEN K2$,R 5760 EXEC FEJL(9,19,K2$) 5770 OPEN K3$,R 5780 EXEC FEJL(9,20,K3$) 5790 OPEN K4$,R 5800 EXEC FEJL(9,21,K4$) 5810 OPEN K5$,R 5820 EXEC FEJL(9,22,K5$) 5830 EXEC INDTAB1(VTAB1,MVANTAL,K3$) 5840 EXEC INDTAB1(DTAB1,MDANTAL,K2$) 5850 FAKTNR=T1(1);KREDNR=T1(2);DATO=T1(7);APOSTER=T2(4) 5860 AKRED=T2(5);AFAKT=T2(6);AVKONTI=T2(7);FJPOST=T2(8) 5870 REPEAT 5880 TOTAL$="0+";AVALIN=1 5890 REPEAT 5900 REPEAT 5910 REPEAT 5920 CLEAR 5930 REPEAT 5940 EXEC INDPUT1(9,1,-1,100000,LTX3$) 5950 UNTIL KTAL=DTAL OR P=0 5960 KUNDENR=P 5970 IF KUNDENR=0 THEN EXIT 5980 CURSOR 56,1 5990 PRINT USING "####### ":KUNDENR 6000 IF KUNDENR<>DIVDNR THEN 6010 DIVD=0 6020 EXEC FINDPOST1(DTAB1,DTAB,MDANTAL,KUNDENR,DPIL3,K2$) 6030 IF CEKS=1 THEN 6040 CURSOR 9,3 6050 INPUT "Kunden eksisterer ikke. Tast RETURN.",SVAR1$ 6060 ELSE 6070 EXEC HENTDPOST 6080 ENDIF 6090 ELSE 6100 DIVD=1;CEKS=0 6110 EXEC FINDPOST1(DTAB1,DTAB,MDANTAL,DIVDNR,DPIL3,K2$) 6120 IF CEKS=1 THEN STOP 6130 EXEC HENTDPOST 6140 CURSOR 34,5 6150 PRINT "Navn." 6160 CURSOR 8,5 6170 INPUT " ",DEBNAVN$ 6180 CURSOR 9,5 6190 PRINT DEBNAVN$;BLANK$(1:25) 6200 CURSOR 34,6 6210 PRINT "Gade." 6220 CURSOR 8,6 6230 INPUT " ",DEBGADE$ 6240 CURSOR 9,6 6250 PRINT DEBGADE$;BLANK$(1:25) 6260 CURSOR 13,7 6270 PRINT "Postnummer." 6280 REPEAT 6290 CURSOR 8,7 6300 INPUT " ",TAL1$ 6310 EXEC NRTEST(TAL1$) 6320 UNTIL TEST2=0 AND P>999 6330 DPOSTNR=P 6340 CURSOR 13,7 6350 PRINT BLANK$(1:25);TAB(22);"By." 6360 CURSOR 13,7 6370 INPUT " ",DEBBY$ 6380 CURSOR 34,7 6390 PRINT BLANK$(1:25) 6400 ENDIF 6410 UNTIL CEKS=0 6420 IF KUNDENR=0 THEN EXIT 6430 EXEC KUNDEUD(1) 6440 EXEC INDPUT1(9,21,-9,-6,LTX4$) 6450 UNTIL P=-7 6460 IF KUNDENR=0 THEN EXIT 6470 IF APOSTER>MFAK*20-130 OR FJPOST+AFAKT+AKRED=>MFAK THEN 6480 EXEC INDPUT1(9,23,-2,0,LTX7$) 6490 ELSE 6500 REPEAT 6510 CURSOR 9,23 6520 INPUT "Faktura/kreditnota (F/K):",FAKKRE$ 6530 UNTIL FAKKRE$="F" OR FAKKRE$="K" OR FAKKRE$="f" OR FAKKRE$="k" 6540 IF FAKKRE$="f" THEN FAKKRE$="F" 6550 IF FAKKRE$="k" THEN FAKKRE$="K" 6560 CLEAR 6570 EXEC KUNDEUD(2) 6580 CURSOR 50,4 6590 IF FAKKRE$="F" THEN 6600 PRINT USING "Fakturanr.: #######":FAKTNR+AFAKT 6610 ELSE 6620 PRINT USING "Kreditnotanr.: #######":KREDNR+AKRED 6630 ENDIF 6640 CURSOR 50,6 6650 PRINT USING "Kundenr.: #######":KUNDENR 6660 CURSOR 50,8 6670 PRINT "Ordredato:" 6680 LINIE=8 6690 EXEC DATOINDT 6700 ORDREDAT=DAT 6710 EXEC INDPUT1(50,10,0,1000000,LTX5$) 6720 ORDRENR=P 6730 CURSOR 66,10 6740 PRINT USING "####### ":ORDRENR 6750 CURSOR 50,12 6760 PRINT "Dato:" 6770 LINIE=12 6780 EXEC DATOINDT 6790 FDATO=DAT 6800 CURSOR 9,14 6810 INPUT "Levering: ",LEVTEKST$ 6820 LEVKODE=0 6830 IF LEN(LEVTEKST$)=0 THEN LEVKODE=11 6840 EXEC INDPUT1(9,17,-9,-6,LTX6$) 6850 ENDIF 6860 UNTIL P=-7 6870 IF KUNDENR=0 THEN EXIT 6880 IF APOSTER<=MFAK*20-130 AND FJPOST+AFAKT+AKRED<=MFAK THEN 6890 EXEC FAKHOVED 6900 AVALIN=1 6910 REPEAT 6920 ARRKODER(AVALIN,1)=0;ARRKODER(AVALIN,2)=0 6930 EXEC VARELINI 6940 IF VARENR=0 THEN EXIT 6950 AVALIN=AVALIN+1;LINIE=LINIE+1 6960 EXEC LINITEST 6970 UNTIL VARENR=0 OR AVALIN>25 6980 AVALIN=AVALIN-1 6990 IF AVALIN>0 THEN 7000 IF LINIE>16 THEN 7010 EXEC FAKHOVED 7020 FOR LINIE=5 TO 16 7030 J=AVALIN+LINIE-16 7040 EXEC VARLINUD(J) 7050 NEXT LINIE 7060 ENDIF 7070 REPEAT 7080 CURSOR 4,19 7090 PRINT "1:Ændring. 2:Sletning. 3:Udskrift. 4:Ny linie. 5:Afslutning." 7100 EXEC INDPUT1(4,21,0,6,LTX8$) 7110 SVAR1$=A$ 7120 CASE SVAR1$ OF 7130 WHEN "1" 7140 EXEC INDPUT1(4,23,0,1+AVALIN,LTX9$) 7150 J=P 7160 CURSOR 4,19 7170 LINIE=19 7180 EXEC SLET 7190 EXEC VARLINUD(J) 7200 CASE VANRARR(J) OF 7210 EXEC INDPUT2(17,21,BLANK$(1),ANTAL$) 7220 CURSOR 17,21 7230 PRINT ANTAL$(4:5) 7240 CURSOR 24,21 7250 PRINT VATEKARR$(J) 7260 CURSOR 51,21 7270 VARPRIS$=VAPRIARR$(J) 7280 EXEC TUD(VARPRIS$,TAL4$,1,0) 7290 EXEC CALC(2,VARPRIS$,ANTAL$,BELØB$) 7300 CURSOR 66,21 7310 EXEC TUD(BELØB$,TAL4$,1,0) 7320 IF BELØB$<>BELØBARR$(J) THEN 7330 CURSOR 1,23 7340 VAANTARR$(J)=ANTAL$(4:5);BELØBARR$(J)=BELØB$ 7350 EXEC AJOUR 7360 ENDIF 7370 WHEN 1,2 7380 VARTEKST$=BLANK$;M=J 7390 CURSOR 23,21 7400 INPUT " ",VARTEKST$ 7410 IF LEN(VARTEKST$)>0 THEN VATEKARR$(M)=VARTEKST$ 7420 CURSOR 24,21 7430 PRINT VATEKARR$(M);BLANK$(1:25) 7440 IF VANRARR(M)=1 THEN 7450 EXEC INDPUT2(65,21,BLANK$(1),BELØB$) 7460 EXEC CALC(4,BELØB$,TAH$,TAH$) 7470 IF SI=0 THEN 7480 BELØB$=BELØBARR$(M) 7490 ELSE 7500 BELØBARR$(M)=BELØB$ 7510 EXEC AJOUR 7520 ENDIF 7530 CURSOR 66,21 7540 EXEC TUD(BELØB$,TAL4$,1,0) 7550 ENDIF 7560 WHEN 3 7570 M=J 7580 EXEC INDPUT2(24,21,LTX1$,VARPRIS$) 7590 CURSOR 30,21 7600 PRINT VARPRIS$(7:5);" %";BLANK$(1:25) 7610 EXEC CALC(2,VARPRIS$,BELØBARR$(M-1),BELØB$) 7620 VATEKARR$(M,7:5)=VARPRIS$(7:5) 7630 VARPRIS$="100-" 7640 EXEC CALC(3,BELØB$,VARPRIS$,BELØB$) 7650 CURSOR 66,21 7660 EXEC TUD(BELØB$,TAL4$,1,0) 7670 BELØBARR$(M)=BELØB$ 7680 EXEC AJOUR 7690 WHEN 4 7700 CURSOR 17,21 7710 INPUT "Linien er en subtotal og kan ikke rettes. Tast RETURN.",SVAR2$ 7720 ENDCASE 7730 WHEN "2" 7740 EXEC INDPUT1(4,23,0,1+AVALIN,LTX10$) 7750 J=P 7760 CURSOR 4,19 7770 LINIE=19 7780 EXEC SLET 7790 EXEC VARLINUD(J) 7800 IF J<AVALIN THEN 7810 VARENR=VANRARR(J+1) 7820 ELSE 7830 VARENR=0 7840 ENDIF 7870 EXEC INDPUT1(4,21,-9,-6,LTX11$) 7880 IF P=-7 AND VARENR<>3 THEN 7890 AVALIN=AVALIN-1 7900 FOR M=J TO AVALIN 7910 VANRARR(M)=VANRARR(M+1);VAANTARR$(M)=VAANTARR$(M+1) 7920 VATEKARR$(M)=VATEKARR$(M+1);VAPRIARR$(M)=VAPRIARR$(M+1) 7930 BELØBARR$(M)=BELØBARR$(M+1) 7940 ARRKODER(M,1)=ARRKODER(M+1,1);ARRKODER(M,2)=ARRKODER(M+1,2) 7950 NEXT M 7960 EXEC AJOUR 7970 ENDIF 7980 WHEN "3" 7990 EXEC INDPUT1(4,23,0,1+AVALIN,LTX12$) 8000 J=P 8010 EXEC SLET 8020 STARTL=J 8030 IF AVALIN-J<12 THEN 8040 SLUTL=AVALIN 8050 ELSE 8060 SLUTL=J+11 8070 ENDIF 8080 EXEC LUD 8090 WHEN "4" 8100 IF AVALIN<25 THEN 8110 LINIE=19;AVALIN=AVALIN+1 8120 EXEC INDPUT1(4,23,0,1+AVALIN,LTX13$) 8130 EXEC SLET 8140 ARRKODER(AVALIN,1)=0;ARRKODER(AVALIN,2)=0 8150 FOR M=AVALIN TO P+1 STEP -1 8160 VANRARR(M)=VANRARR(M-1);VAANTARR$(M)=VAANTARR$(M-1) 8170 VATEKARR$(M)=VATEKARR$(M-1);VAPRIARR$(M)=VAPRIARR$(M-1) 8180 BELØBARR$(M)=BELØBARR$(M-1) 8190 ARRKODER(M,1)=ARRKODER(M-1,1);ARRKODER(M,2)=ARRKODER(M-1,2) 8200 NEXT M 8210 EXEC SLET 8220 GAVALIN=AVALIN;AVALIN=P;M=P 8230 REPEAT 8240 EXEC VARELINI 8250 UNTIL VARENR<>0 8260 AVALIN=GAVALIN 8270 EXEC AJOUR 8275 ENDIF 8280 ENDCASE 8290 IF SVAR1$<>"3" AND SVAR1$<>"5" THEN 8300 IF AVALIN<=12 THEN 8310 STARTL=1;SLUTL=AVALIN 8320 ELSE 8330 IF J<7 THEN 8340 STARTL=1;SLUTL=12 8350 ELSE 8360 IF AVALIN-J<7 THEN 8370 STARTL=AVALIN-12;SLUTL=AVALIN 8380 ELSE 8390 STARTL=J-5;SLUTL=J+6 8400 ENDIF 8410 ENDIF 8420 ENDIF 8430 EXEC LUD 8440 ENDIF 8450 UNTIL SVAR1$="5" 8460 EXEC FAKTBUND 8470 CURSOR 9,23 8480 PRINT "Maskinen overfører faktura til fakturaregisteret." 8490 EXEC FAKTGEM 8500 EXEC SYSGEM 8510 ENDIF 8520 ENDIF 8530 UNTIL KUNDENR=0 8540 CLEAR 8550 CURSOR 20,9 8560 PRINT "*****************************************" 8570 PRINT TAB(20);"*";TAB(60);"*" 8580 PRINT TAB(20);"*";TAB(34);"Programvalg.";TAB(60);"*" 8590 PRINT TAB(20);"*";TAB(60);"*" 8600 PRINT TAB(19),"*****************************************" 8610 CHAIN "P641210:OPSTART"