1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM         ICTPRT : CTC INVENTORY CONTROL
4  REM                 FOR FINISHED PRODUCTS
5  REM         36211 REV  B  PART 3 OF 35   2/73 
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  DIM A$[30],T$[30],B$[20]
11  DIM U[30]
100  FILES C0
110  MAT  READ U
120  DATA 2100,3101,3300,3200,3400,4100,4200,0,1102,1104,1106,1108,1114,1118,1122
130  DATA 1126,1400,1401,1402,1403,1404,1405,1420,1300,1301,1302,1303,1200,1201,3120
150  PRINT "(1) TOP OF FORM OR (2) ABDICK";
160  INPUT P5
170  IF P5=1 OR P5=2 THEN 200
180  PRINT '7'7"WHAT";
190  GOTO 160
200  P=K7=0
300  PRINT "'ALL' OR 'LAST X' TRANSACTIONS";
310  INPUT B$
315  IF B$="END" THEN 9999
320  IF B$[1,1]#"A" THEN 340
325  I3=1
330  GOTO 500
340  IF B$[1,1]="L" THEN 350
345  PRINT '7'7'7"WHAT";
347  GOTO 310
350  PRINT "ENTER 'X'";
355  INPUT X9
357  IF  END #1 THEN 380
360  FOR I=1 TO 100
365  READ #1,I
367  FOR J=1 TO 4
370  READ #1;C0,C1,T$,T0,T1,T2,D5,T3
372  K7=K7+1
375  NEXT J
377  NEXT I
380  I3=INT((K7-X9)/4)+1
385  IF I3>0 THEN 500
390  I3=1
500  P9=66
510  GOSUB 8000
1000  IF  END #1 THEN 1075
1010  FOR I1=I3 TO 100
1020  READ #1,I1
1030  FOR I2=1 TO 4
1040  READ #1;C0,C1,T$,T0,T1,T2,D5,T3
1045  IF B$[1,1]#"A" THEN 1050
1047  K7=K7+1
1050  GOSUB 2000
1060  NEXT I2
1070  NEXT I1
1075  PRINT "TOTAL TRANSACTIONS ON FILE";K7
1076  PRINT 
1080  PRINT "DO YOU WANT TO CLEAR THE TRANSACTION FILE";
1090  INPUT A$
1100  IF A$[1,1]#"Y" THEN 9999
1110  FOR I=1 TO 100
1115  PRINT #1,I; END 
1120  NEXT I
1130  END 
2000  X=D5
2010  GOSUB 4800
2020  Z[1]=X1
2030  Z[2]=X2
2040  Z[3]=X3
2050  GOSUB 9000
2055  PRINT "  ";
2060  X=C0
2065  GOSUB 5000
2070  PRINT TAB(20);
2080  Z$=" #####  "
2090  Z[1]=C1
2095  X$="0"
2100  GOSUB 9000
2105  X$=" "
2110  IF T$#"A" THEN 2130
2120  T$="ADD NEW UNIT"
2125  GOTO 2300
2130  IF T$#"M" THEN 3000
2135  GOTO T0 OF 2160,2165,2170,2175,2180,2185,2190,2195,2200,2205
2140  GOTO T0-10 OF 2210,2215,2220,2230,2225,2235,2240
2145  T$="INVALID MOD#"
2150  GOTO 2300
2160  T$="MODIFY SERIAL#"
2162  GOTO 2260
2165  T$="MODIFY PRODUCT TYPE"
2167  GOTO 2300
2170  T$="MODIFY CUST#"
2172  GOTO 2260
2175  T$="MODIFY TRANSACTION"
2177  GOTO 2260
2180  T$="MODIFY DATE"
2182  GOTO 2300
2185  T$="MODIFY SALES LOCATION"
2187  GOTO 2260
2190  T$="MOD CUST# UNIT LOC"
2192  GOTO 2260
2195  T$="MODIFY INVOICE#"
2197  GOTO 2260
2200  T$="MODIFY LEASE STATUS"
2202  GOTO 2260
2205  T$="MODIFY FIELD SERVICE LOC."
2207  GOTO 2260
2210  T$="MODIFY TERMS"
2212  GOTO 2260
2215  T$="MOD TAX RATE"
2217  GOTO 2260
2220  T$="MODIFY SALESMAN"
2222  GOTO 2260
2225  T$="MOD MAINT. PRICE"
2227  GOTO 2260
2230  T$="MODIFY AGREEMENT#"
2232  GOTO 2260
2235  T$="MOD EQ.RENTAL PRICE"
2237  GOTO 2260
2240  T$="DELETED UNIT"
2260  Z$="########"
2300  PRINT T$;TAB(57);
2305  F1=1
2310  IF T1=0 AND T2=0 THEN 2500
2312  F1=2
2315  IF T0=5 THEN 2400
2317  IF T0=11 THEN 2600
2318  IF T0=2 THEN 2655
2320  Z[1]=T1
2330  GOSUB 9000
2340  PRINT TAB(71)" ";
2350  Z[1]=T2
2360  GOSUB 9000
2370  GOTO 2500
2400  X=T1
2410  GOSUB 4800
2420  GOSUB 4900
2425  PRINT TAB(71)" ";
2430  X=T2
2435  GOSUB 4800
2440  GOSUB 4900
2500  GOSUB 2700
2505  K=1
2510  GOSUB 9900
2520  P9=P9+2
2530  IF P9<60 THEN 2550
2540  GOSUB 8000
2550  RETURN 
2600  Z$[8,8]="M"
2605  IF SGN(T1)>-1 THEN 2615
2610  Z$[8,8]="A"
2615  Z[1]=T1
2620  GOSUB 9000
2622  PRINT TAB(71)" ";
2625  Z$[8,8]="M"
2630  IF SGN(T2)>-1 THEN 2645
2635  Z$[8,8]="A"
2645  Z[1]=T2
2650  GOTO 2360
2655  X=T1
2660  GOSUB 5000
2662  PRINT TAB(71)" ";
2665  X=T2
2670  GOSUB 5000
2675  GOTO 2500
2700  GOTO F1 OF 2702,2707
2702  PRINT TAB(71)"                   ";
2704  GOTO 2710
2707  PRINT "          ";
2710  Z$="#"
2715  Z[1]=T3
2720  GOSUB 9000
2725  RETURN 
3000  T$="INVALID TRANSACTION CODE"
3010  GOTO 2260
4800  Z$="##/##/##"
4810  X$=" "
4820  X1=INT(X/10^4)
4830  X2=INT((X-X1*10^4)/100)
4840  X3=X-X1*10^4-X2*100
4850  RETURN 
4900  Z[1]=X2
4910  Z[2]=X3
4920  Z[3]=X1+70
4925  IF X1<8 THEN 4930
4927  Z[3]=X1+60
4930  GOSUB 9000
4940  RETURN 
5000  IF X#8 THEN 5050
5040  PRINT "VT06";
5045  RETURN 
5050  Z$="####-###"
5055  X$="0"
5060  X1=INT(U[X]/1000)
5065  Z[2]=U[X]-X1*1000
5070  GOTO X1 OF 5075,5080,5085,5090
5075  Z[1]=2200
5077  GOTO 5095
5080  Z[1]=3000
5082  GOTO 5095
5085  Z[1]=3300
5087  GOTO 5095
5090  Z[1]=3360
5095  GOSUB 9000
5100  RETURN 
6000  PRINT 
6010  FOR Z=1 TO 50
6020  PRINT "";
6025  NEXT Z
6040  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 TAB(24)"I N V E N T O R Y  C O N T R O L";TAB(71)"PAGE: ";
8050  Z$="###"
8060  X$=" "
8070  P=P+1
8080  Z[1]=P
8090  GOSUB 9000
8100  GOSUB 6000
8110  PRINT TAB(32)"TRANSACTION FILE";
8120  K=2
8130  GOSUB 9900
8140  PRINT "  DATE    PRODUCT     SER#  TYPE OF TRANSACTION";TAB(60);
8150  PRINT "FROM             TO     (TRANS CODE)";
8160  K=2
8170  GOSUB 9900
8180  P9=11
8190  RETURN 
9000  REM ***** CSN002 ***** UTILITY SUBROUTINE *****
9010  REM ***** VERSION 2 ***** 10/23/70 *****
9020  REM PRINT FORMAT SUBROUTINE
9030  REM INPUT Z$, MAT Z
9040  V=Z2=Z3=Z4=Z5=Z7=Z8=Z9=1
9050  DIM V$[72],Y$[10],Z$[72]
9060  Y$="0123456789"
9070  Z0=Z9-1
9080  Z0=Z0+1
9090  IF Z0=LEN(Z$)+1 THEN 9650
9100  IF Z$[Z0,Z0]="#" THEN 9170
9110  IF Z$[Z0,Z0+1]=".#" THEN 9170
9120  IF Z$[Z0,Z0+1]="+#" THEN 9150
9130  V$[V,V]=Z$[Z0,Z0]
9131  V=V+1
9140  GOTO 9080
9150  Z4=0
9160  GOTO 9080
9170  Z=100
9180  Z6=Z[Z2]
9190  Z9=Z0-1
9200  Z9=Z9+1
9210  IF Z$[Z9,Z9]="." THEN 9240
9220  IF Z$[Z9,Z9]="#" THEN 9200
9230  GOTO 9280
9240  IF Z5#1 THEN 9280
9250  Z5=0
9260  Z=Z9
9270  GOTO 9200
9280  IF Z#100 THEN 9300
9290  Z=Z9
9300  IF Z4=1 THEN 9350
9310  IF Z6 >= 0 THEN 9340
9320  V$[V,V]="-"
9321  V=V+1
9330  GOTO 9350
9340  V$[V,V]=" "
9341  V=V+1
9350  IF Z=Z9 THEN 9380
9360  Z6=ABS(Z6)+5*10^(Z-Z9)
9370  GOTO 9390
9380  Z6=ABS(Z6)+.5
9390  Z7=10^(Z-Z0-1)
9400  Z4=10*Z7
9410  FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1
9420  IF Z1#0 THEN 9460
9430  V$[V,V]="."
9431  V=V+1
9440  Z3=0
9450  GOTO 9610
9460  Z8=INT(Z6/Z7)
9470  IF Z6<Z4 THEN 9500
9480  V$[V,V]="#"
9481  V=V+1
9490  GOTO 9600
9500  Z6=Z6-Z8*Z7
9510  IF Z8=0 THEN 9530
9520  Z3=0
9530  IF Z3=0 THEN 9590
9540  IF Z1#1 THEN 9570
9550  V$[V,V]="0"
9551  V=V+1
9560  GOTO 9600
9570  V$[V,V]=" "
9571  V=V+1
9580  GOTO 9600
9590  V$[V,V]=Y$[Z8+1,Z8+1]
9591  V=V+1
9600  Z7=Z7/10
9610  NEXT Z1
9620  Z3=Z4=Z5=Z7=1
9630  Z2=Z2+1
9640  GOTO 9070
9650  PRINT V$;
9660  V$=""
9670  RETURN 
9900  GOSUB 6000
9910  FOR I=1 TO K
9915  PRINT 
9930  NEXT I
9940  RETURN 
9999  END 
