Paypackets   (Model A)


Anyone who runs a shop or small business will find this program something close to invaluable. It's Friday, you've worked out how much everyone is getting paid and the time has come to make up the wage packets. How many, of what note and what change are you going to need? Well, key this in and all your problems are solved. The program is relatively short, completely reliable and of course you don't have to own a business to use it. It will work with any sum - from thousands of pounds right down to the expenses for the local church fete, or individual prizes for the children's party.

    1 REM *** BBC VERSION ***
    2 REM *** PAY PACKETS ***
   10 REM PAYPACKETS.....WALWYN
   20 REM C$(X)=NAME OF CURRENCY
   30 REM CV(X)=CURRENCY VALUE IN POUNDS
   40 REM CA(X)=AMOUNT OF UNITS REQUIRED OF T
HIS CURRENCY
   50 REM CB(X)=TOTAL AMOUNT OF UNITS REQUIRE
D OF THIS CURRENCY
   60 DIM C$(10),CV(10),CA(10),CB(10)
   70 FOR J=1 TO 10 : READ C$(J),CV(J)
   80   C$(J)=LEFT$(C$(J)+".............",21)
 : NEXT J
   90 DATAONE PENCE,0.01,TWO PENCE,0.02,FIVE 
PENCE,0.05
  100 DATATEN PENCE,0.1,TWENTY PENCE,0.2,FIFT
Y PENCE,0.5
  110 DATAONE POUND,1,FIVE POUND,5,TEN POUND,
10
  120 DATATWENTY POUND,20
  130 SR=0 : XX=0 : @%=&20209
  140 R2$=CHR$(157)+CHR$(129) : R1$=CHR$(157)
+CHR$(135) : R$=CHR$(135)+R2$
  150 MODE 7 : VDU 23,1,0;0;0;0;
  160 PROCtable
  170 PRINT TAB(0,2);R$'R$;"PRESS "R1$"f0  "R
2$"TO INPUT A NEW PAYMENT"
  180 PRINT R$'R$;"PRESS "R1$"f1  "R2$"TO GIV
E TOTAL AMOUNT"
  190 PRINT R$'R$;"PRESS "R1$"f9  "R2$"TO CAN
CEL ALL DATA"
  200 PRINTR$
  210 REPEAT : KEY=0
  220   REM CHECK FOR INSTRUCTION KEY
  230   XX=0 : SR=1
  240   IF INKEY(-33) THEN PROCpacket : KEY=1
  250   IF INKEY(-114) THEN XX=1 : KEY=1
  260   IF INKEY(-120) THEN RUN
  270   UNTIL KEY
  280 GOTO 150
  290  
  300 DEF PROCpacket
  310 PRINT TAB(0,0);CHR$(134); : INPUT "CASH
 AMOUNT IN PACKET ",A$
  320 A=VAL(A$):A1=A
  330 PRINT CHR$(134); : INPUT "NO OF PACKETS
         ",B$
  340 B=VAL(B$):B1=B
  350 PROCcalculate
  360 ENDPROC
  370  
  380 DEF PROCtable
  390 AT=0 : PRINT TAB(0,9);CHR$(148);"``````
`````````````````````````````````"
  400 PRINT TAB(0,10);CHR$(134);"CURRENCY"TAB
(15)"NO. OF UNITS"TAB(31)"AMOUNT"
  410 FOR J=1 TO 10
  420   PRINT C$(J);
  430   IF XX=1 THEN C$=STR$(CB(J)) ELSE C$=S
TR$(CA(J))
  440   PRINT SPC(4-LEN(C$));C$;
  450   IF XX=1 THEN A=CB(J)*CV(J) ELSE A=CA(
J)*CV(J)
  460   AT=AT+A
  470   PRINT CHR$(130),A
  480   NEXT
  490 PRINT TAB(28);CHR$(148);"````````"
  500 PRINT TAB(20);CHR$(130);"TOTAL:",AT
  510 IF SR=0 THEN ENDPROC
  520 IF XX=1 THEN PRINT R$"THIS IS THE RUNNI
NG TOTAL" : ENDPROC
  530 PRINT CHR$(131);STR$(B1);" x `",A1;
  540 PRINTCHR$(131);"THIS IS A SUB-TOTAL";
  550 ENDPROC
  560  
  570 DEF PROCcalculate
  580 REM CALCULATE CA(X)
  590 X=0 : A%=A*100
  600 FOR J=10 TO 1 STEP -1
  610   CA(J)=0
  620   REPEAT
  630     IF A%>=CV(J)*100 THEN A%=A%-CV(J)*1
00 : CA(J)=CA(J)+1
  640     UNTIL A%<CV(J)*100
  650   NEXT J
  660 FOR J=1 TO 10 : CA(J)=CA(J)*B : NEXT J
  670 FOR J=1 TO 10 : CB(J)=CB(J)+CA(J) : NEX
T
  680 ENDPROC