1 REM **** HP BASIC PROGRAM LIBRARY ******************************* 2 REM 3 REM AALSES : CTC INVENTORY CONTROL 4 REM FOR FINISHED PRODUCTS 5 REM 36211 REV B PART 26 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[4,8],S[16],P[13],U[30],D[2,2],T[2,9],M[12] 13 Y$="0123456789" 14 L5=0 15 DIM Z$[54] 16 MAT S=ZER 17 MAT T=ZER 100 FILES C1,G10A,G0 150 PRINT "(1) TOP OF FORM OR (2) ABDICK"; 160 INPUT P5 200 READ C9,C8,C7,G8 210 DATA 13,4,8,3 212 MAT READ M 215 DATA 31,28,31,30,31,30,31,31,30,31,30,31 220 MAT READ P 228 L5=L5+1 230 DATA 1000,3800,4300,4900,6500,7500,7560,7760,8760,9760,9870,10350,10400 240 MAT READ U 245 DATA 2100,3101,3300,3200,3400,4100,4200,0,1102,1104,1106,1108,1114,1118,1122 247 DATA 1126,1400,1401,1402,1403,1404,1405,1420,1300,1301,1302,1303,1200,1201,3120 250 P4=0 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 X 315 GOSUB 4800 355 D1=X1 360 D2=X2 365 D3=X3 400 PRINT "FIRST PRD#"; 405 INPUT C 410 GOSUB 3000 415 IF B1 THEN 400 420 P2=P 425 PRINT "LAST PRD#"; 430 INPUT C 435 GOSUB 3000 440 IF B1 THEN 425 442 IF P >= P2 THEN 448 445 GOSUB 3010 447 GOTO 425 448 P3=P 450 PRINT "FIRST SER#"; 455 INPUT X2 460 X1=P2 465 GOSUB 3100 466 C2=X2 470 IF B1 THEN 450 475 PRINT "LAST SER#"; 480 INPUT X2 485 X1=P3 490 GOSUB 3100 492 C4=X2 495 IF B1 THEN 475 496 IF P2#P3 THEN 500 497 IF C4 >= C2 THEN 500 498 GOSUB 3120 499 GOTO 475 500 REM 510 P9=66 530 GOSUB 8000 1000 FOR P1=P2 TO P3 1005 C3=C4 1007 IF P1=P3 THEN 1040 1010 C3=P[P1] 1020 IF P1=1 THEN 1040 1030 C3=C3-P[P1-1] 1040 FOR C1=C2 TO C3 1045 R=C1 1050 IF P1=1 THEN 1060 1055 R=R+P[P1-1] 1060 GOSUB 4000 1065 GOSUB 4100 1070 IF NOT B1 OR S[3]#6 OR S5#-1 OR S[8]>2 THEN 1080 1075 GOSUB 2000 1080 NEXT C1 1085 C2=1 1086 PRINT "PRODT"; 1087 I=1 1088 GOSUB 1300 1090 NEXT P1 1095 PRINT "GRAND"; 1100 I=2 1105 GOSUB 1300 1170 END 1300 PRINT " TOT: MAINT=$";T[I,1];"CTC LSE=$";T[I,2];"TA LSE=";T[I,3]; 1301 PRINT TAB(70)"";TAB(32); 1302 IF I=2 THEN 1307 1303 FOR J=1 TO 3 1304 T[I+1,J]=T[I+1,J]+T[I,J] 1305 T[I,J]=0 1306 NEXT J 1307 FOR J=4 TO 8 STEP 2 1310 X1=T[I,J] 1315 X2=T[I,J+1] 1320 GOSUB 2510 1322 T[I,J]=T[I,J+1]=0 1325 NEXT J 1327 GOSUB 6000 1330 K=2 1335 GOSUB 9900 1340 P9=P9+3 1350 GOTO 2355 2000 GOSUB 5000 2005 Z$=" #### A####:" 2010 X$="0" 2015 Z[1]=C1 2020 IF S[1]#5 THEN 2030 2025 Z[1]=Z[1]+900 2030 Z[2]=S[2] 2035 GOSUB 9000 2040 GOSUB 5100 2045 I1=1 2050 GOSUB 5200 2055 PRINT TAB(45); 2060 Z$="#### CTC " 2062 X$=" " 2065 Z[1]=S[6] 2070 IF S[8]>0 THEN 2077 2075 Z$[7,9]=" TA" 2077 GOSUB 9000 2078 Z$="####-## " 2079 X$="0" 2080 Z[1]=INT(C[R2,7]/100) 2085 Z[2]=C[R2,7]-Z[1]*100 2087 GOSUB 9000 2088 Z$="$#### $#### " 2089 X$=" " 2090 Z[1]=S6 2095 Z[2]=S[15] 2100 GOSUB 9000 2105 PRINT " "; 2125 T[1,1]=T[1,1]+S6 2130 I=2 2131 IF S[8]>0 THEN 2133 2132 I=3 2133 T[1,I]=T[1,I]+S[15] 2135 Z$="##A ##/##/## " 2140 X$=" " 2145 Z[1]=S[10] 2150 X=S[4] 2155 GOSUB 4800 2160 IF X1<8 THEN 2167 2162 X1=X1+60 2165 GOTO 2170 2167 X1=X1+70 2170 X3=X3-1 2171 IF X3>0 THEN 2180 2172 X2=X2-1 2173 IF X2>0 THEN 2176 2174 X1=X1-1 2175 X2=X2+12 2176 X3=M[X2] 2180 IF S[10] >= 12 THEN 2187 2182 X2=X2+S[10] 2183 IF X2<13 THEN 2188 2184 X2=X2-12 2185 X1=X1+1 2186 GOTO 2188 2187 X1=X1+1 2188 IF X1*10^4+X2*100+X3 <= D3*10^4+D1*100+D2 THEN 2187 2190 Z[2]=X2 2195 Z[3]=X3 2200 Z[4]=X1 2205 GOSUB 9000 2235 Z[1]=X1*12+X2-(D3*12+D1)-1 2240 Z[2]=M[D1]-D2+X3 2245 IF Z[2]<31 THEN 2270 2250 Z[1]=Z[1]+1 2255 Z[2]=Z[2]-31 2270 X=(Z[1]+Z[2]/30)*100 2275 L5=INT(X) 2280 IF X-L5<.5 THEN 2290 2290 REM 2295 Z$="## ##" 2310 X$=" " 2312 GOSUB 9000 2315 X=L5*S6 2317 I=0 2318 J=4 2320 GOSUB 2500 2322 X=L5*S[15] 2323 J=6 2325 IF S[8]>0 THEN 2337 2330 PRINT " "; 2335 J=8 2337 GOSUB 2500 2340 GOSUB 6000 2345 GOSUB 5200 2347 IF NOT B1 THEN 2340 2350 P9=P9+1 2355 IF P9<57 THEN 2370 2360 GOSUB 8000 2370 RETURN 2500 X1=INT(X/100) 2505 X2=X-X1*100 2510 Z$=" $#####." 2515 X$=" " 2520 Z[1]=X1 2525 GOSUB 9000 2530 Z$="##" 2535 X$="0" 2540 Z[1]=X2 2545 GOSUB 9000 2550 IF I=2 THEN 2580 2555 T[I+1,J]=T[I+1,J]+X1 2560 T[I+1,J+1]=T[I+1,J+1]+X2 2565 IF T[I+1,J+1]<100 THEN 2580 2570 T[I+1,J]=T[I+1,J]+1 2575 T[I+1,J+1]=T[I+1,J+1]-100 2580 RETURN 3000 B1=0 3005 IF C>0 AND C<31 THEN 3020 3010 PRINT '7"BAD PRD#";H$[3,5]; 3015 B1=1 3017 RETURN 3020 P=C 3025 IF C<9 THEN 3090 3030 P=9 3035 IF C <= 16 THEN 3090 3040 P=10 3045 IF C <= 23 THEN 3090 3050 P=11 3055 IF C <= 27 THEN 3090 3060 P=12 3065 IF C <= 29 THEN 3090 3070 P=13 3090 RETURN 3100 B1=0 3101 IF X1#5 THEN 3103 3102 X2=X2-900 3103 X=P[X1] 3104 IF X1=1 THEN 3110 3106 X=X-P[X1-1] 3110 IF X2>0 AND X2 <= X THEN 3150 3120 PRINT '7"BAD SER#";H$[3,5]; 3130 B1=1 3150 RETURN 4000 REM 4036 X=R/C8 4038 X1=INT(X) 4040 X2=INT((X-X1)*100) 4042 FOR I=1 TO (C8-1) 4044 IF X2=I*25 THEN 4054 4046 NEXT I 4048 R1=X1 4050 R2=C8 4052 GOTO 4057 4054 R1=X1+1 4056 R2=I 4057 RESTORE 260 4058 FOR N=1 TO C9 4060 READ A$ 4062 IF R1<201 THEN 4070 4063 R1=R1-200 4065 NEXT N 4067 PRINT "ERR IN P"; 4068 STOP 4070 ASSIGN A$,1,W5 4080 RETURN 4100 B1=0 4102 MAT READ #1,R1;C 4105 IF C[R2,1]=-1 THEN 4195 4107 B1=1 4110 J=1 4111 FOR I=1 TO 9 STEP 4 4112 S5=SGN(C[R2,J]) 4113 C[R2,J]=ABS(C[R2,J]) 4115 S[I+1]=C[R2,J]-S[I]*10^4 4116 IF I#9 THEN 4119 4117 S[I+1]=INT(S[I+1]/100) 4118 S[I+2]=C[R2,J]-S[I]*10^4-S[I+1]*100 4119 J=J+2 4120 NEXT I 4122 S[3]=INT(C[R2,2]/10^5) 4125 S[4]=C[R2,2]-S[3]*10^5 4145 S[7]=INT(C[R2,4]/10) 4150 S[8]=C[R2,4]-S[7]*10 4170 S[12]=INT(C[R2,6]/100) 4175 S[13]=C[R2,6]-S[12]*100 4180 S[14]=INT(C[R2,8]/10^5) 4185 S[15]=INT((C[R2,8]-S[14]*10^5)/10) 4190 S6=S[13]*10+S[14] 4195 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 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= 0 THEN 9033 9031 PRINT "-"; 9032 GOTO 9034 9033 PRINT " "; 9034 LET Z6=ABS(Z6)+10^(Z-Z9-1) 9035 FOR Z1=Z-Z0 TO Z+1-Z9 STEP -1 9036 IF Z$[Z-Z1,Z-Z1]#"." THEN 9041 9037 PRINT "."; 9038 LET Z3=0 9039 LET Z7=2 9040 GOTO 9055 9041 LET Z8=INT(Z6/(10^(Z1+Z7-2))) 9042 IF Z6<10^(Z-Z0) THEN 9045 9043 PRINT "#"; 9044 GOTO 9055 9045 LET Z6=Z6-Z8*10^(Z1+Z7-2) 9046 IF Y$[Z8+1,Z8+1]="0" THEN 9048 9047 LET Z3=0 9048 IF Z3=0 THEN 9054 9049 IF Z1#1 THEN 9052 9050 PRINT "0"; 9051 GOTO 9055 9052 PRINT X$; 9053 GOTO 9055 9054 PRINT Y$[Z8+1,Z8+1]; 9055 NEXT Z1 9056 LET Z3=Z4=Z5=Z7=1 9057 LET Z2=Z2+1 9058 GOTO 9006 9059 RETURN 9900 REM 9910 FOR I=1 TO K 9915 PRINT 9930 NEXT I 9940 RETURN 9999 END