1  REM  ****  HP BASIC PROGRAM LIBRARY  ********************************2  REM
3  REM        CURADD:  CTC PAYROLL PROGRAM, PART 24 OF 34
4  REM
5  REM        36213  REV B  6/73
6  REM
7  REM ****  CONTRIBUTED PROGRAM **************************************
10  DIM E$[22],A$[10],D$[10]
11  DIM F[32],E[17],U[12,2],V[8],W[24],G[10,2],I[16]
100  FILES E1,E2,EP1,EP2,E0,ETRAN,EH1,EH2,AJ
110  PRINT '7'7"DO YOU WANT TO ADD CURRENT PAYROLL TO QTD & YTD TOTALS";
120  INPUT A$
130  IF A$[1,1]#"Y" THEN 9999
132  PRINT "PRINTER (1) ACCOUNTING (2) ABDICK";
134  INPUT P5
136  PRINT "FIRST REGULAR PAYROLL CHECK#";
138  INPUT C
140  PRINT "ENTER CURRENT DATE (MDDYY)";
155  GOSUB 9400
161  D1=X
162  D2=X1
163  D3=X2
164  D4=X3
170  PRINT "CHECK DATE";
175  GOSUB 9400
180  D5=X1
185  D6=X2
190  PRINT "ALL DEDUCTIONS";
191  INPUT A$
192  P6=0
193  IF A$[1,1]="Y" THEN 200
194  P6=1
195  IF A$[1,1]="N" THEN 200
196  PRINT '7'7"WHAT";
197  GOTO 191
200  READ E9,E7
210  DATA 2,17
220  N1=2*E9+1
225  N2=N1+1
230  GOSUB 9200
240  PRINT " "'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
245  PRINT 
260  PRINT "PROGRAM--CURADD RUN ON ";D2;"/";D3;"/";D4
270  PRINT 
1000  IF  END #N1 THEN 2000
1010  READ #N1;U6
1020  IF SGN(U6)=-1 THEN 1040
1030  PRINT '7'7'7"ERR IN ST/DPT FILE"
1035  STOP 
1040  READ #N1;U6
1045  IF U6<1001 THEN 1040
1050  PRINT U6;
1052  I5=0
1055  GOSUB 4000
1060  IF B1 THEN 1040
1070  GOSUB 4085
1080  IF  NOT B1 THEN 1040
1090  IF F[8]#0 THEN 1130
1100  PRINT "(NO REG. PAY)";
1120  GOTO 1325
1130  F[21]=F[21]+F[8]
1140  F[31]=F[31]+F[8]
1150  FOR I=13 TO 14
1160  F[I]=F[I]+F[I-4]
1165  F[I+10]=F[I+10]+F[I-4]
1170  NEXT I
1180  FOR I=15 TO 20
1185  F[I]=F[I]+E[I-4]
1190  F[I+10]=F[I+10]+E[I-4]
1195  NEXT I
1210  X=E[5]*F[3]
1220  F[22]=F[22]+X
1225  F[32]=F[32]+X
1230  FOR I=13 TO 32
1240  X1=INT(F[I])
1250  X2=(F[I]-X1)*100
1260  IF X2-INT(X2)<.5 THEN 1280
1270  X2=INT(X2)+1
1275  GOTO 1285
1280  X2=INT(X2)
1285  F[I]=X1+X2*.01
1290  NEXT I
1300  MAT  PRINT #(N+E9),R1;F
1305  I5=I5+1
1310  G[I5,1]=F[8]
1315  G[I5,2]=C
1320  C=C+1
1325  GOSUB 3000
1330  GOSUB 6000
1335  GOTO 1040
2000  E$=""
2010  PRINT #N2;E$[1,22],0,7,"P",0,0,0,0,0,D1,0
2015  PRINT #N2; END 
2020  END 
3000  IF  NOT S8 THEN 3040
3002  READ #(N2+3),1
3005  IF  END #(N2+3) THEN 3040
3010  MAT  READ #(N2+3);I
3015  IF I[1]#U6 THEN 3010
3017  IF I[2]=0 THEN 3010
3020  I5=I5+1
3025  G[I5,1]=I[2]
3030  G[I5,2]=I[12]
3035  GOTO 3010
3040  MAT  READ #(N2+N),R1;U
3045  MAT  READ #(N2+N);V
3050  J=1
3055  FOR I=1 TO 8
3060  W[J]=INT(V[I]/10^4)
3065  W[J+1]=INT((V[I]-W[J]*10^4)/100)
3070  W[J+2]=V[I]-W[J]*10^4-W[J+1]*100
3075  J=J+3
3080  NEXT I
3082  J2=0
3085  FOR I=1 TO I5
3090  J2=J2+1
3095  IF J2>12 THEN 3160
3100  IF U[J2,1]#0 THEN 3090
3105  U[J2,1]=G[I,1]
3110  U[J2,2]=G[I,2]
3112  J=J2*2-1
3115  W[J]=D5
3117  W[J+1]=D6
3120  NEXT I
3122  J=1
3125  FOR I=1 TO 8
3130  V[I]=W[J]*10^4+W[J+1]*100+W[J+2]
3135  J=J+3
3140  NEXT I
3145  MAT  PRINT #(N2+N),R1;U
3150  MAT  PRINT #(N2+N);V
3155  RETURN 
3160  PRINT "EMPLOYEE HAS 12 CHECKS; THOSE NOT RECORDED ARE: ";
3165  FOR J=I TO I5
3170  PRINT TAB(40)"CHECK AMT=";G[J,1];"CHECK#=";G[J,2];
3175  GOSUB 6000
3180  NEXT J
3185  GOTO 3122
4000  B1=0
4010  R=U6-1000
4025  FOR I=1 TO E9
4030  IF R <= I*200 THEN 4050
4035  NEXT I
4040  B1=1
4042  PRINT "(EMP#>";E9*200+1000;")";
4045  RETURN 
4050  N=I
4055  R1=R-(I-1)*200
4060  RETURN 
4085  B1=0
4090  READ #N,R1;E$
4095  FOR I=1 TO E7
4100  READ #N;E[I]
4103  NEXT I
4105  IF E[1]=-1 THEN 4175
4120  B1=1
4130  X=INT(E[4]/10^4)
4140  S9=INT((E[4]-X*10^4)/1000)
4150  S8=INT(E[17]/10)
4160  IF  NOT P6 THEN 4173
4165  E[14]=E[15]=E[16]=0
4173  MAT  READ #(N+E9),R1;F
4174  RETURN 
4175  PRINT "(EMP# NOT IN USE)";
4177  GOSUB 6000
4180  RETURN 
6000  GOTO P5 OF 6010,6020
6010  PRINT '13;
6015  RETURN 
6020  PRINT 
6030  RETURN 
9200  IF  END #N2 THEN 9270
9210  FOR I=1 TO 200
9220  READ #N2,I;E$,U6,T1,D$,T2,T3,T4,T5,T6,D1,T7
9225  READ #N2;E$,U6,T1,D$,T2,T3,T4,T5,T6,D1,T7
9230  NEXT I
9240  PRINT "TRANSACTION FILE FULL--PLEASE EMPTY"
9245  STOP 
9270  RETURN 
9400  REM
9405  INPUT X
9410  IF X<10^6 AND X>9999 THEN 9420
9415  PRINT '7'7"WHAT";
9417  GOTO 9405
9420  X1=INT(X/10^4)
9422  IF X1<1 OR X1>12 THEN 9415
9425  X2=INT((X-X1*10^4)/100)
9427  IF X2<1 OR X2>31 THEN 9415
9430  X3=X-X1*10^4-X2*100
9435  IF X3<71 OR X3>99 THEN 9415
9440  RETURN 
9999  END 
