1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM         CUS1 : CTC INVENTORY CONTROL 
4  REM                FOR FINISHED PRODUCTS
5  REM         36211 REV  B  PART 16 OF 35   2/73 
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  H$='29'31'13'26'30
11  DIM A$[20],H$[5],X$[1],Y$[10],T$[54],S$[54]
12  DIM C[8],Q[30],P[13],D[2,2]
13  B3=0
20  Y$="0123456789"
100  FILES C1,G10A,G0
150  PRINT H$[1,2]"(1) TOP OF FORM OR (2) ABDICK";
160  INPUT P5
200  READ C9,C8,C7,G8
210  DATA 13,4,8,3
220  MAT  READ P
230  DATA 1000,3800,4300,4900,6500,7500,7560,7760,8760,9760,9870,10350,10400
235  MAT  READ Q
236  DATA 2100,3101,3300,3200,3400,4100,4200,0,1102,1104,1106,1108,1114,1118,1122
237  DATA 1126,1400,1401,1402,1403,1404,1405,1420,1300,1301,1302,1303,1200,1201,3120
260  DATA "C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13"
265  DATA "G10A","G10B","G10C"
300  PRINT H$[1,2]"CURRENT DATE";
310  INPUT D
315  IF D<10^6 AND D>9999 THEN 330
320  GOSUB 4250
325  GOTO 300
330  X=D
335  GOSUB 4800
340  IF X1<1 OR X1>12 THEN 320
345  IF X2<1 OR X2>31 THEN 320
350  IF X3<72 THEN 320
355  D1=X1
360  D2=X2
365  D3=X3
400  PRINT "CUST#";
405  INPUT A0
410  IF A0>0 AND A0<10^4 THEN 430
415  GOSUB 4250
420  GOTO 400
430  PRINT "TRANSACTION";
435  INPUT A$
440  G0=-1
445  IF A$[1,1]="A" THEN 475
450  GOSUB 4200
455  IF B1 THEN 430
460  IF Z >= 0 AND Z<10 THEN 470
465  GOSUB 4250
467  GOTO 430
470  G0=Z
475  PRINT "FIRST PAGE#";
480  INPUT P4
485  P4=P4-1
500  P9=66
505  GOSUB 8000
510  N5=1
512  GOSUB 1300
515  S5=0
530  F1=0
1000  IF  END #1 THEN 1060
1010  MAT  READ #1;C
1012  S5=S5+1
1015  IF C[1]=-1 THEN 1010
1020  S[1]=INT(C[1]/10^4)
1030  S[2]=C[1]-S[1]*10^4
1032  S[3]=INT(C[2]/10^5)
1033  IF G0=-1 THEN 1035
1034  IF S[3]#G0 THEN 1010
1035  IF S[2]#A0 THEN 1010
1036  IF F1 THEN 1040
1037  GOSUB 1100
1038  F1=1
1040  GOSUB 3000
1050  GOTO 1010
1060  N5=N5+1
1070  IF N5>C9 THEN 9999
1075  GOSUB 1300
1080  GOTO 1000
1100  REM
1110  Z$="A####: "
1115  X$="0"
1120  Z[1]=A0
1125  GOSUB 9000
1130  GOSUB 5300
1135  K=2
1140  GOSUB 9910
1145  P9=P9+2
1150  RETURN 
1300  RESTORE 260
1305  FOR I=1 TO N5
1310  READ A$
1315  NEXT I
1320  ASSIGN A$,1,W5
1325  RETURN 
2000  REM
2002  IF S[1]#8 THEN 2035
2025  PRINT "VT06    , ";
2030  GOTO 2085
2035  Z$="####-### "
2040  X$="0"
2045  X=INT(Q[S[1]]/1000)
2050  Z[2]=Q[S[1]]-X*1000
2055  GOTO X OF 2060,2065,2070,2075
2060  Z[1]=2200
2062  GOTO 2080
2065  Z[1]=3000
2067  GOTO 2080
2070  Z[1]=3300
2072  GOTO 2080
2075  Z[1]=3360
2080  GOSUB 9000
2085  Z$="SN#### "
2090  Z[1]=S[2]
2095  GOSUB 9000
2096  Z$="T#"
2097  Z[1]=S[3]
2098  GOSUB 9000
2100  GOSUB 6000
2120  P9=P9+1
2125  IF P9<60 THEN 2135
2130  GOSUB 8000
2135  REM
2140  RETURN 
3000  REM
3045  C0=S[1]
3047  GOSUB 3200
3050  S6=S5
3055  IF P=1 THEN 3065
3060  S6=S6-P[P-1]
3065  IF S[1]#5 THEN 3075
3070  S6=S6+900
3075  S[2]=S6
3077  GOSUB 2000
3080  RETURN 
3200  P=C0
3205  IF C0<9 THEN 3290
3210  P=9
3215  IF C0 <= 16 THEN 3290
3220  P=10
3225  IF C0 <= 23 THEN 3290
3230  P=11
3235  IF C0 <= 27 THEN 3290
3240  P=12
3245  IF C0 <= 29 THEN 3290
3250  P=13
3290  RETURN 
4200  B1=Z=0
4205  FOR H=1 TO LEN(A$)
4210  FOR H1=1 TO 10
4215  IF A$[H,H]=Y$[H1,H1] THEN 4260
4220  NEXT H1
4230  B1=1
4250  PRINT '7'7'7"INVALID DATA";H$[3,5];
4255  RETURN 
4260  Z=Z*10+H1-1
4265  NEXT H
4270  RETURN 
4700  J=1
4705  Z$=""
4710  FOR I=I1 TO LEN(T$)
4715  F2=1
4720  IF T$[I,I]='17 THEN 4780
4725  F2=2
4730  IF T$[I,I]='18 THEN 4780
4735  Z$[J,J]=T$[I,I]
4740  J=J+1
4742  IF B3 THEN 4765
4745  IF T$[I,I]="." THEN 4755
4750  IF T$[I,I]#"," THEN 4765
4755  Z$[J,J]=" "
4760  J=J+1
4765  NEXT I
4770  F2=3
4780  RETURN 
4800  X1=INT(X/10^4)
4810  X2=INT((X-X1*10^4)/100)
4820  X3=X-X1*10^4-X2*100
4830  RETURN 
4900  X=INT(D[M1,1]/100)
4902  READ #3,4
4905  FOR J1=1 TO 52
4907  READ #3;X1
4910  IF X<X1 THEN 4925
4920  NEXT J1
4925  READ #3,2
4930  FOR J=1 TO J1
4935  READ #3;Z$
4940  NEXT J
4950  RETURN 
5300  B1=0
5305  X=A0
5310  RESTORE 265
5315  FOR M=1 TO G8
5320  READ A$
5325  IF X<401 THEN 5350
5330  X=X-400
5335  NEXT M
5340  T$="   "
5345  GOTO 5395
5350  M0=INT(X/2)
5355  M1=2
5360  IF M0*2=X THEN 5375
5365  M0=M0+1
5370  M1=1
5375  ASSIGN A$,2,W5
5380  READ #2,M0;S$,D[1,1],D[1,2],T$,D[2,1],D[2,2]
5385  IF M1=2 THEN 5395
5390  T$=S$
5395  I1=1
5400  GOSUB 4700
5405  GOTO F2 OF 5410,5445,5470
5410  REM
5420  PRINT TAB(7);Z$;
5425  GOSUB 6000
5430  P9=P9+1
5435  I1=I+1
5440  GOTO 5400
5445  PRINT TAB(7);Z$;
5450  IF D[M1,1]=0 THEN 5425
5455  GOSUB 4900
5460  PRINT ", ";Z$;"   ";D[M1,1];
5465  GOTO 5425
5470  IF Z$="" THEN 5490
5475  PRINT TAB(7);"ATTN: ";Z$;
5480  GOSUB 6000
5485  P9=P9+1
5490  RETURN 
6000  PRINT 
6010  RETURN 
8000  GOTO P5 OF 8005,8010
8005  PRINT '12'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18'18;
8007  GOTO 8020
8010  K=66-P9
8015  GOSUB 9910
8020  K=4
8030  GOSUB 9910
8040  PRINT "DATE: ";
8050  Z$="##/##/##"
8060  X$=" "
8070  Z[1]=D1
8080  Z[2]=D2
8090  Z[3]=D3
8100  GOSUB 9000
8110  PRINT TAB(50)"I N V E N T O R Y  C O N T R O L";
8120  K=30
8130  GOSUB 9950
8140  PRINT "PAGE: ";
8150  Z$="###"
8160  P4=P4+1
8165  Z[1]=P4
8170  GOSUB 9000
8172  GOSUB 6000
8175  PRINT TAB(56)"UNITS BY CUSTOMER";
8330  K=2
8335  GOSUB 9900
8340  P9=8
8350  RETURN 
9000  REM
9002  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9004  DIM V$[72],Z$[72]
9008  Z0=Z9-1
9010  Z0=Z0+1
9012  IF Z0=LEN(Z$)+1 THEN 9140
9014  IF Z$[Z0,Z0]="#" THEN 9030
9016  IF Z$[Z0,Z0+1]=".#" THEN 9030
9018  IF Z$[Z0,Z0+1]="+#" THEN 9026
9020  V$[V,V]=Z$[Z0,Z0]
9022  V=V+1
9024  GOTO 9010
9026  Z4=0
9028  GOTO 9010
9030  Z=100
9032  Z6=Z[Z2]
9034  Z9=Z0-1
9036  Z9=Z9+1
9038  IF Z$[Z9,Z9]="." THEN 9044
9040  IF Z$[Z9,Z9]="#" THEN 9036
9042  GOTO 9052
9044  IF Z5#1 THEN 9052
9046  Z5=0
9048  Z=Z9
9050  GOTO 9036
9052  IF Z#100 THEN 9056
9054  Z=Z9
9056  IF Z4=1 THEN 9070
9058  IF Z6 >= 0 THEN 9066
9060  V$[V,V]="-"
9062  V=V+1
9064  GOTO 9070
9066  V$[V,V]=" "
9068  V=V+1
9070  IF Z=Z9 THEN 9076
9072  Z6=ABS(Z6)+5*10^(Z-Z9)
9074  GOTO 9078
9076  Z6=ABS(Z6)+.5
9078  Z7=10^(Z-Z0-1)
9080  Z4=10*Z7
9082  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
9084  IF Z1#0 THEN 9094
9086  V$[V,V]="."
9088  V=V+1
9090  Z3=0
9092  GOTO 9132
9094  Z8=INT(Z6/Z7)
9096  IF Z6<Z4 THEN 9104
9098  V$[V,V]="#"
9100  V=V+1
9102  GOTO 9130
9104  Z6=Z6-Z8*Z7
9106  IF Z8=0 THEN 9110
9108  Z3=0
9110  IF Z3=0 THEN 9126
9112  IF Z1#1 THEN 9120
9114  V$[V,V]="0"
9116  V=V+1
9118  GOTO 9130
9120  V$[V,V]=X$
9122  V=V+1
9124  GOTO 9130
9126  V$[V,V]=Y$[Z8+1,Z8+1]
9128  V=V+1
9130  Z7=Z7/10
9132  NEXT Z1
9134  Z3=Z4=Z5=Z7=1
9136  Z2=Z2+1
9138  GOTO 9008
9140  PRINT V$;
9142  V$=""
9144  RETURN 
9900  GOSUB 6000
9910  FOR I=1 TO K
9915  PRINT 
9930  NEXT I
9940  RETURN 
9950  FOR I=1 TO K
9960  PRINT " ";
9970  NEXT I
9980  RETURN 
9999  END 
