10 REM *** VOORRAADBEHEER ***
20 REM  ** VOORRAADBEPALING **
30 DIM A(200,4),B$(200),B(200),D(3)
40 GOTO 2740
50 :
60 REM   *** INITIALISEREN **
70 FOR I= 1 TO 200 : B(I) =I :NEXT I
80 G=-1 : N=0 : Z=2 : REM ** NIET INGELEZEN/AANTAL
90 D(1)=0 :D(2) =5 :D(3)=19 :REM BTW TARIEF
100 N$="" : N1 =0 :Y3=0 :Y=0 
110 FF$ =CHR$(12):LF$ =CHR$(138) :REM FORMFEED/LINEFEED
120 RETURN
130 :
140 REM ** KOP **
150 PRINT CHR$(27)"E"   :REM SCHERM WISSEN
160 PRINT"*** VOORRAADPEPALING ***               ** BESTANDSNAAM ** "
170 PRINT F$;TAB(40) N$
176 PRINT
180 IF G<0 THEN 220
185 PRINT:
190 IF Z=1 THEN PRINT " BOEKWAARDE EXCL BTW ";
200 IF Z=0 THEN PRINT " BOEKWAARDE INCL BTW ";
210 PRINT TAB(40)"AANTAL ";N1
215 PRINT:PRINT
220 RETURN
230 :
240 REM ** JA/NEE **
250 PRINT B$ + " <JA/NEE> ";
260 INPUT L$ :L$ =LEFT$(L$,1) :S=0
270 IF L$ ="J" THEN S=1
280 IF L$ ="N" THEN S=2
290 IF S= 0 THEN 250
300 RETURN
310 F$="- BESTAAND BESTAND -" :GOSUB 150 :REM KOP
312 PRINT:B$="BESTAAND BESTAND ? ":GOSUB 240
313 IF S=2 THEN 2550
314 PRINT
315 INPUT "NOEM BESTAAND BESTAND "; N$       
316 B$="WILT U WIJZIGEN  ":GOSUB 250
317 IF S=1 THEN 310
320 REM *** INLEZEN VAN DISK ***
330 F$="-INLEZEN DISK-" :GOSUB 150 :REM KOP
360 OPEN "I",1,  N$          
370 INPUT #1, N$    ,Z,N,Y$           :REM NAAM/BTW/AANTAL/DATUM
380 REM ** ARTIKELEN INLEZEN **
390 IF N=0 THEN 440
400 FOR I=1 TO N
410 INPUT #1,A(I,1),A(I,2),A(I,3),A(I,4)
420 INPUT #1,B$(I)
430 NEXT I
440 CLOSE
450 G=0
460 N1=N
470 RETURN :
480 B$="WEGSCHRIJVEN WEET U HET ZEKER" :GOSUB 250
481 IF S=2 THEN 680  
482 IF S=1 THEN 490
490 REM ** NAAR DISK SCHRIJVEN ***
500 F$="-SCHRIJVEN NAAR DISK-" :GOSUB 150
510 IF N <> N1 THEN GOSUB 710   :REM SORTEREN **
520 :
530 :
535 Y$=D$
540 OPEN "O",1,  N$
550 PRINT #1,N$;",";Z;",";N;",";Y$
560 REM ** ARTIKELEN SCHRIJVEN **
570 IF N=0 THEN 650
580 FOR I=1 TO N
590 B=B(I)           :REM POINTER
600 FOR J=1 TO 4
610 PRINT#1,A(B,J);     :REM NUM GEGEVENS
620 NEXT J
630 PRINT#1,B$(B)        :REM OMSCHRIJVING
640 NEXT I
650 CLOSE            :REM BESTAND SLUITEN
660 G=O
670 N=N1
680 RETURN
690 :
700 REM ** DISPLAY **
710 PRINT" ARTIKELNUMMER.................";A(H,1)
720 PRINT" OMSCHRIJVING.................. ";B$(H)
730 IF M=3 THEN 770
740 B=A(H,2) :GOSUB 2270 :REM *** POSITIONEREN **
750 PRINT" BOEKWAARDE....................";A$
760 PRINT" BTW-PERCENTAGE................";D(A(H,3))
770 PRINT" VOORRAAD IN EENHEDEN..........";A(H,4)
780 IF A(H,4) =0 OR M=3 THEN 810
790 B=A(H,2) * A(H,4) :GOSUB 2270
800 PRINT" VOORRAADWAARDE................";A$
810 PRINT
820 PRINT"----------------------------------------------------"
830 RETURN
840 :
850 REM ** ARTIKELINVOER ***
860 PRINT"ARTIKELNUMMER <STOP = 0>  ";
870 INPUT A
880 IF A<0 THEN 860
890 RETURN
900 :
910 REM ** VOORRAAD **
920 PRINT "GEEF VOORRAAD <FOUTIEF ARTIKEL = -9> ";
930 INPUT F
940 S=2 :IF F =-9 THEN S=1
950 IF F< 0 AND S =2 THEN 920
960 G=1 :Y =Y4
970 RETURN
980 :
990 REM ** CORRECTIE **
1000 F$="- CORRECTIE -"  :GOSUB 150
1010 GOSUB 710           :REM ** DISPLAY
1020 A=F                 :REM ONTHOUDEN 
1030 GOSUB 920           :REM VOORRAAD
1040 IF S=2 THEN A(H,4) =F
1050 RETURN
1060 :
1070 REM ** ZOEK-ACTIE **
1080 S=2
1090 IF N1< 1 THEN 1190
1100 S=2 :X1 =1 : X2 =N +1
1110 X3=X1 +INT((X2 - X1) /2) :B =B(X3)
1120 IF A<A(B,1) THEN 1150
1130 IF A> A(B,1) THEN 1170
1140 S=1 : X2 =X3 :D =X2
1150 IF X2 =X3 THEN 1190
1160 X2=X3 :GOTO 1110
1170 IF X1 =X3 THEN 1190
1180 X1=X3 :GOTO 1110
1190 RETURN
1200 :
1210 REM **ZOEKEN **
1220 GOSUB 860                     :REM ARTIKELNUMMER
1230 IF A=0 THEN 1260
1240 PRINT"EEN OGENBLIK GEDULD A.U.B."
1250 GOSUB 1080                    :REM ZOEKEN 
1260 IF S=1 THEN P=D
1270 RETURN
1280 :
1290 REM ** INVOER-ROUTINE **
1300 F$="- INVOER -" :G=1 :Y=Y4
1310 GOSUB 150                   :REM KOP
1320 GOSUB 860                   :REM ARTIK NR
1330 IF A=0 THEN 1430
1340 GOSUB 1080                  :REM ** ZOEKEN
1350 IF S=2 THEN 1320
1360 H=B(D)                      :REM INDEX
1370 GOSUB 150
1380 GOSUB 710                   :REM DISPLAY
1390 GOSUB 920                   :REM VOORRAAD
1400 IF S=1    THEN 1310
1410 A(H,4) =F              :REM VOORRAAD      
1420 GOTO 1310
1430 RETURN
1440 :
1450 REM DISPLAY EN CORRECTIE **
1460 P=1                      :REM HULPTELLER
1470 F$="- DISPLAY -"  
1480 GOSUB 150 : REM KOP
1490 H=B(P) :GOSUB 710 :REM ** DISPLAY
1500 PRINT"O = STOP      -TERUG MENU- ";
1510 PRINT TAB(35)"3 = ZOEKEN"
1520 PRINT"1 = VORIGE    -TERUG BLADEREN- ";
1530 PRINT TAB(35)"4 = CORRECTIE"
1540 PRINT"2 = VOLGENDE  -VOORUITBLADEREN-" 
1545 PRINT:PRINT
1550 PRINT"WAT IS UW KEUZE ";
1560 INPUT Q
1570 IF Q=1 THEN P=P -1          :REM TERUG BLADEREN
1580 IF P<= 0 THEN P=N1
1590 IF Q=2 THEN P=P+1           :REM VOORUITBLADEREN
1600 IF P> N1 THEN P=1
1610 IF Q=3 THEN GOSUB 1220      :REM ** ZOEKEN
1620 IF Q=4 THEN GOSUB 1000 :REM ** CORRIGEREN
1630 IF Q> 2 AND Q<10 THEN Q=1
1640 IF Q<>0 THEN 1470
1650 RETURN
1660 :
1670 REM ** VOORRAADOPNAME-LIJST **
1680 F$="-PRINTEN-" :GOSUB 150 :REM KOP
1690 PRINT  "STAAT DE PRINTER AAN < JA/NEE >":GOSUB 260
1695 PRINT:PRINT"ZIT HET PAPIER GOED IN DE PRINTER ? ":GOSUB 260
1700 IF S=2 THEN 2240
1710 T=0
1720 R=0                       :REM TOTAALBEDRAG
1730 R1=0                      :REM BTW-TOTAAL
1740 FOR I=1 TO N
1750 C=B(I)
1760 IF I<> 1 AND I/15-INT(I/15) <>0 THEN 2000
1770 REM ** NIEUWE PAGINA **
1780 IF I= 1 THEN 1840
1790 B=R :GOSUB 2270
1800 LPRINT TAB(24)"SUBTOTAAL   ";TAB(52+L)A$;
1810 B=R1 :GOSUB 2270
1820 LPRINT TAB(68+L)A$
1840 T=T +1                       :REM BLADTELLER +1
1850 LPRINT TAB(4) "VOORRAADWAARDE LIJST       :  ";N$
1860 LPRINT TAB(55)"BLADNR.:";T
1870 IF Z=1 THEN LPRINT TAB(4)"VOORRAADWAARDE EXCL.BTW"
1880 IF Z=0 THEN LPRINT TAB(4)"VOORRAADWAARDE INCL.BTW"
1890 LPRINT TAB(4)"LAATSTE BESTANDSWIJZIGING :  ";Y$;
1900 LPRINT TAB(55)"DATUM    :"D$
1920 LPRINT TAB(4)"-------------------------------------------------------------------------"
1940 LPRINT TAB(4)"ART.NR. OMSCHRIJVING";
1950 LPRINT TAB(28)"BTW-%  BOEKWAARDE ";
1960 LPRINT TAB(46)"AANTAL  VOORR-WAARDE   BTW-WAARDE "
1970 LPRINT TAB(4)"-------------------------------------------------------------------------"
2000 B=A(C,2):GOSUB 2270:REM ** POSITIONEREN
2010 LPRINT TAB(4)A(C,1);TAB(12)B$(C);
2020 LPRINT TAB(27)D(A(C,3));TAB(30+L)A$;
2030 IF A(C,4) <> 0 THEN LPRINT TAB(45)A(C,4);
2040 IF A(C,4) =0 THEN LPRINT TAB(45)"..........";
2050 B=A(C,2) *A(C,4)             :REM VOORRAAD * PRIJS
2060 R=R +B                       :REM TOTTAAL BIJWERKEN
2070 GOSUB 2270
2080 LPRINT TAB(52+L)A$;               
2090 B=D(A(C,3))/(100+D(A(C,3)))*B :REM INCL.BTW
2100 IF Z=0 THEN 2120
2110 B=D(A(C,3))/100*A(C,2) * A(C,4):REM EXCL.BTW
2120 B=INT (B*100+.5)/100 :R1=R1+B :GOSUB 2270
2130 LPRINT TAB(64+L)A$;
2140 LPRINT TAB(4)"-------------------------------------------------------------------------"
2170 NEXT I
2180 REM ** GENERAAL TOTAAL
2190 B=R :GOSUB 2270                   :REM POSITIONEREN
2200 LPRINT TAB(25)"GENERAAL-TOTAAL"; TAB(57+L)A$;
2210 B=R1 :GOSUB 2270
2220 LPRINT TAB(69+L)A$
2230 LPRINT TAB(57)"======================"
2240 RETURN
2250 :
2260 REM ** POSITIONEREN**
2270 B$="--" :W=B-INT(B) :A$=STR$(INT(B))
2280 IF W=0 THEN 2320
2290 W=INT(W*100+.5) :B$=STR$(W)
2300 B$="00" + RIGHT$(B$,LEN(B$)-1)
2310 B$=RIGHT$(B$,2)
2320 A$=A$+"," +B$
2330 IF B<> 0 THEN 2350
2340 A$= "- "
2350 L=10 -LEN(A$)
2360 RETURN
2370 :
2380 REM CONTROLE
2390 F$="- CONTROLE-"   :GOSUB 150
2400 PRINT"GEGEVENS STAAN NOG NIET OP SOURCE DISK !"
2410 B$="NOG SCHRIJVEN ":GOSUB 260 :REM JA/NEE
2420 IF S=1 THEN GOSUB 510        :REM SCHRIJVEN 
2425 IF S=2 THEN 2430
2430 RETURN
2440 :
2450 REM ** DATUM **
2460 F$="- DATUM -" :S1=0           
2465 GOSUB 150 :REM KOP
2466 PRINT:PRINT
2470 PRINT"GEEF DATUM <DD,MM,JJ> ";
2480 INPUT Y1,Y2,Y3
2485 IF Y1 = 0 AND Y3 =0 THEN 2530
2490 IF Y1<0 OR Y1>31 THEN 2465
2500 IF Y2<0 OR Y2>12 THEN 2465
2510 IF Y3<83 OR Y3> 99 THEN 2465 
2515 H$=STR$(Y1) :D$=RIGHT$(H$,LEN(H$)-1)+ " "
2516 H$=LEFT$("JANFEBMRTAPRMEIJUNJULAUGSEPOKTNOVDEC",Y2*3)
2517 D$=D$+RIGHT$(H$,3) :D$=D$ +STR$(Y3+1900)
2520 Y4=Y3*10000 +Y2*100+Y1 :REM GENORM DATUM
2530 RETURN
2540 :
2550 REM **** MENU ****
2560 F$="- MENU -"            
2570 GOSUB 150
2580 IF Y <>0 THEN PRINT "DATUM BESTANDSWIJZIGING  :";Y$
2590 PRINT
2600 PRINT"0 = SYSTEEM VERLATEN "
2620 PRINT"1 = BESTAAND BESTAND"
2630 PRINT"2 = WEGSCHRIJVEN NAAR SOURCE DISK !"
2640 PRINT"3 = INVOEREN VAN VOORRAADGEGEVENS"
2650 PRINT"4 = CORRECTIE EN DISPLAY"
2660 PRINT"5 = AFDRUKKEN VOORRAADLIJST"
2670 PRINT"-----------------------------------------------------"
2680 PRINT"WAT IS UW KEUZE ";
2690 INPUT M
2700 IF G <> -1 THEN 2720
2710 IF M > 1 THEN 2580
2720 RETURN
2730 :
2740 REM ********** STUURMODULE **********
2750 GOSUB 70
2760 IF Y3=0 THEN GOSUB 2460            :REM DATUM
2770 GOSUB 2560             :REM MENU               
2780 IF G=1 AND (M>=0 AND M<=2) THEN GOSUB 2380
2790 IF M=0 THEN CHAIN "ADMIN"
2810 IF M=1 THEN GOSUB 310      :REM BESTAAND BESTAND OPVRAGEN
2820 IF M=2  THEN GOSUB 510     :REM WEGSCHRIJVEN
2830 IF M=3 THEN GOSUB 1300      :REM INVOER
2840 IF M=4 THEN GOSUB 1460       :REM CORECTIE
2850 IF M=5 THEN GOSUB 5000     :REM AFDRUKKEN VOOR-OPN-LIJST
2880 IF M<>0 THEN 2760
2890 F$="-BESTAAND BESTAND-" :GOSUB 150 :REM KOP
2900 PRINT:PRINT
2910 PRINT "GEEF BESTAAND BESTANDSNAAM ";
2920 INPUT BESWOORD$
2930 N$=BESWOORD$
2940 GOSUB 320
2950 RETURN
2960 :
5000 REM ** VOORRAADOPNAME-LIJST **
5005 IF N=0 THEN 5750
5010 F$="-PRINTEN-" :GOSUB 150 :REM KOP
5020 PRINT " 0 =STOP         -TERUG MENU-"
5022 PRINT " 1 =VOORRAADOPNAME-LIJST PRINTEN"
5023 PRINT " 2 =VOORRAADOPNAME-LIJST LATEN ZIEN <-SCHERM->"
5024 PRINT " WAT IS UW KEUZE ";
5025 INPUT Q
5026 IF Q=0 THEN 5750
5027 IF Q=1 THEN 1670
5028 IF Q=2 THEN 5040
5040 PRINT CHR$(27)"E" :GOSUB 5570
5041 N=5
5042 K=1
5043 I=0
5050 T=0
5080 R=0  :R1=0   :REM TOTAAL BEDRAG
5085 FOR I=K TO N
5090 C=B(I)
5091 :
5095 AS$="   ***** -KAN NIET VERDER TERUG GELEZEN WORDEN !- *****"             
5096 AS1$=" "
5100 IF I<>1  THEN 5290
5290 B=A(C,2):GOSUB 2270:REM ** POSITIONEREN
5300  PRINT TAB(4)A(C,1);TAB(12)B$(C);
5310  PRINT TAB(27)D(A(C,3));TAB(30+L)A$;
5320 IF A(C,4) <> 0 THEN  PRINT TAB(45)A(C,4);
5330 IF A(C,4) =0 THEN  PRINT TAB(45)"..........";
5340 B=A(C,2) *A(C,4)             :REM VOORRAAD * PRIJS
5350 R=R +B                       :REM TOTTAAL BIJWERKEN
5360 GOSUB 2270
5370  PRINT TAB(52+L)A$;               
5380 B=D(A(C,3))/(100+D(A(C,3)))*B :REM INCL.BTW
5390 IF Z=0 THEN 5410
5400 B=D(A(C,3))/100*A(C,2) * A(C,4):REM EXCL.BTW
5410 B=INT (B*100+.5)/100 :R1=R1+B :GOSUB 2270
5420  PRINT TAB(64+L)A$;
5430  PRINT TAB(4)"-------------------------------------------------------------------------"
5440 NEXT I
5470 PRINT TAB(4)"TYPE RETURN <TERUG-MENU>"
5480 PRINT TAB(4)" 1= VOLGENDE 5 ARTIKELEN ";
5485 PRINT TAB(40)" 4= SUBTOTAAL"
5490 PRINT TAB(4)" 2= VORIGE 5 ARTIKELEN ";
5500 PRINT TAB(40)" 5= GENERAAL-TOTAAL"
5510 PRINT TAB(4)" 3= CORRECTIE !             ";
5520 PRINT TAB(41) "WAT IS UW KEUZE ";
5525 INPUT X
5526 PRINT
5530 IF X= 0 THEN 5750
5540 IF  X= 1 THEN N=N+5 :K=K+5:  GOSUB 5560 :GOSUB 5080
5550 IF X= 2 AND N>5 THEN N=N-5 :K=K-5  :GOSUB 5560:GOSUB 5080
5551 IF X= 3 THEN GOSUB 1460  :PRINT CHR$(27)"E":GOTO 5080
5552 IF X<-1 OR X>5 THEN 5470
5553 IF X=4  THEN  GOSUB 5820 :GOSUB 5570 :GOSUB 5080
5554 IF X=5 THEN  GOSUB 5910 :GOSUB 5570 :GOSUB 5080
5555 PRINT CHR$(27)"E":IF K=1 AND N=5 THEN PRINT AS$:PRINT AS1$:GOSUB 5080
5556 :
5557 RETURN
5560 PRINT CHR$(27)"E":REM ** KOP DISPLAY **
5561 PRINT TAB(4)"*** -VOORRAADBEHEER-DISPLAY- *** ";
5562 PRINT TAB(55) "AANTAL----:";N1
5563 PRINT TAB(4)"*************************************************************************"
5570 PRINT TAB(4)"VOORRAADWAARDE LIJST---------:  ";N$;
5580 IF Z=1 THEN PRINT TAB(4)"VOORRAADWAARDE EXCL.BTW !"
5590 IF Z=2 THEN PRINT TAB(4)"VOORRAADWAARDE INCL.BTW !"
5600 PRINT TAB(4)"LAATSTE BESTANDSWIJZIGING----:";Y$;
5610 PRINT TAB(55)"DATUM-----:"D$
5620 PRINT TAB(4)"-------------------------------------------------------------------------"
5630 PRINT TAB(4)"ART.NR. OMSCHRIJVING";
5640 PRINT TAB(28)"BTW-%  BOEKWAARDE ";
5650 PRINT TAB(46)"AANTAL  VOORR-WAARDE   BTW-WAARDE"
5660 PRINT TAB(4)"-------------------------------------------------------------------------"
5670 RETURN
5680 :
5690 REM *** GENERAAL TOTAAL ***
5700 B=R :GOSUB 2270                   :REM POSITIONEREN
5710  PRINT TAB(25)"TOTAAL-GENERAAL"; TAB(50+L)"F."A$;
5720 B=R1 :GOSUB 2270
5730  PRINT TAB(62+L)"F."A$
5740  PRINT TAB(51)"========================"
5750 RETURN
5760 :
5820 PRINT CHR$(27)"E":B=R :GOSUB 2270
5830 PRINT TAB(4)"**-SUBTOTAAL-**";
5840 PRINT TAB(31)":  VOORR-WAARDE " ;:PRINT TAB(55+L)A$        
5850 PRINT TAB(31)":  BTW-WAARDE  ";
5860 B=R1 :GOSUB 2270
5870 PRINT TAB(55+L)A$
5880 PRINT TAB(31)"=========================================""
5890 RETURN
5900 :
5910 PRINT CHR$(27)"E":       REM  GENERAAL TOTAAL
5920 V3=0:V4=0
5930 FOR I1=1 TO N1
5940 V3=V3+(A(I1,2)*A(I1,4))
5950 V4=V4+(D(A(I1,3))/100*A(I1,2)*A(I1,4))
5960 NEXT I1
5970 B=V3 :GOSUB 2270
5980 PRINT TAB(24)"*** GENERAAL-TOTAAL ***";TAB(52+L)A$;
5990 B=V4  :GOSUB 2270
6000 PRINT TAB(64+L)A$
6010 PRINT TAB(52)"========================"
6020 PRINT
6030 RETURN
+L)A$;
5990 B=V4  :GOSUB 2270
6000 PRINT TAB(64+L)A$
6010 PRINT TAB