10 ! BUILD TIME CARD FILE 11 ! PROGRAM NAME BATTCD BY CWR 12 ONERROR GOTO 1000 20 OPEN "DK1:PAYROL.TCF" AS FILE 1% 21 OPEN "LP:" FOR OUTPUT AS FILE 8%,MODE 66% 29 INPUT "FILE ";F9$ 30 OPEN F9$ FOR INPUT AS FILE 2% 35 F$="\ \#########.## \ \" 36 F1$="##.## ###.## ###.##":Q%=0% 37 F2$="######## #########.## #######.## ########.## ############## ###########.##" 40 DIM #1, T$(500%)=64%,T%(0%) 41 DIM #3%,S$(500%)=64% 42 DIM J%(500%),J1%(500%) 46 PRINT "STARTING INDEX:",T%(0%) 50 Q%=T%(0%):B1=0:B2=0:B3=0:B4=0:B5=0:B6=0 55 P1%=0%:P5%=1% 60 Q%=Q%+1%:INPUT LINE #2,C$:C$=LEFT(C$,LEN(C$)-2%) 70 IF LEN(C$)<80% THEN 160 80 IF MID(C$,80%,1%)<>"2" THEN 400 90 N$=MID(C$,1%,22%):B$=MID(C$,23%,2%):E$=MID(C$,26%,4%) 100 D$=MID(C$,30%,6%):R$=MID(C$,41%,4%):H$=MID(C$,49%,5%) 103 IF RIGHT(R$,4%)=" " THEN R$=LEFT(R$,3%)+"0" 105 D$=LEFT(D$,4%)+"7"+MID(D$,5%,1%) 110 O$=MID(C$,54%,5%):C$=MID(C$,64%,16%) 115 V2=VAL(R$):V3=VAL(H$):V4=VAL(O$) 120 B1=B1+VAL(E$):B2=B2+V2:B3=B3+V3 130 B4=B4+V4:B5=B5+VAL(MID(C$,4%,2%)):B6=B6+VAL(MID(C$,11%,6%)) 140 T$(Q%)=N$+B$+E$+D$+R$+H$+O$+C$ 150 GOSUB 2000:GOTO 60 160 !PRINT BATCH TOTALS 165 PRINT #8%,TAB(P%+29%);:PRINT #8%,USING F2$,B1,B2/100%,B3/100%,B4/100%,B5,B6/100% 166 CLOSE 8% 170 PRINT "BATCH # ";B$;" TOTALS:" 180 PRINT USING F$, "EMP#",B1 190 PRINT USING F$,"RATE",B2/100% 200 PRINT USING F$,"HOURS",B3/100% 210 PRINT USING F$,"OT",B4/100% 220 PRINT USING F$, "FUND",B5 230 PRINT USING F$, "GROUP"B6/100% 232 INPUT "IS BATCH OK";K$ 234 IF K$<>"Y" THEN PRINT "RE-RUN BATCH": GOTO 410 235 Q%=Q%-1%:T%(0%)=Q%:Q2%=Q%-1% 236 INPUT "LAST BATCH ",K$ 237 IF K$<>"Y" THEN 375 240 ! ORDER BY EMPLOYEE # 250 FOR I%=1% TO Q% 255 J%(I%)=VAL(MID(T$(I%),25%,4%)):J1%(I%)=I%:NEXT I% 260 FOR I%=1% TO Q2% 265 IF J%(I%)<=J%(I%+1%) THEN 300 270 T%=J%(I%+1%):T1%=J1%(I%+1%):J%(I%+1%)=J%(I%):J1%(I%+1%)=J1%(I%) 275 FOR K%=I% TO 2% STEP -1% 280 IF J%(K%-1%)<=T% THEN 285 ELSE 290 285 J%(K%)=T%:J1%(K%)=T1%:GOTO 300 290 J%(K%)=J%(K%-1%):J1%(K%)=J1%(K%-1%):NEXT K% 295 J%(1%)=T%:J1%(1%)=T1% 300 NEXT I% 310 OPEN "DK1:TCF.TMP" AS FILE 3% 320 S$(I%)=T$(J1%(I%)) FOR I%=1% TO Q% 330 T$(I%)=S$(I%) FOR I%=1% TO Q% 340 CLOSE 3%:KILL "DK1:TCF.TMP" 375 PRINT Q%;"ITEMS ARE NOW IN PAYROL.TCF" 380 GOTO 410 400 PRINT "CARD INPUT ERROR-RE-RUN" 410 CLOSE 1%,2% 420 GOTO 9000 1000 IF ERR<>11% THEN ON ERROR GOTO 0 1010 GOTO 160 2000 IF P1%=0% THEN GOSUB 3000 ELSE IF P1%>56% THEN GOSUB 3100 2010 PRINT #8%,TAB(P%+1%);N$;TAB(P%+27%);B$;TAB(P%+33%);E$;TAB(P%+38%); 2020 PRINT #8%,LEFT(D$,2%)+"/"+MID(D$,3%,2%)+"/"+RIGHT(D$,5%);TAB(P%+47%); 2030 PRINT #8%,USING F1$,V2/100%,V3/100%,V4/100%; 2040 PRINT #8%,TAB(P%+81%),LEFT(C$,3%)+"-"+MID(C$,4%,2%)+"-"+MID(C$,6%,1%)+"-"+MID(C$,7%,4%); 2045 PRINT #8%,"-"+MID(C$,11%,4%)+"."+RIGHT(C$,15%)+" ";Q% 2050 P1%=P1%+1%:RETURN 3000 PRINT #8% FOR L5%=1% TO 3% 3010 PRINT #8%,TAB(P%+22%);"SCHOOL DIST 91 TIME CARD BATCH";TAB(P%+107%);"PAGE ";P5%:P5%=P5%+1% 3020 PRINT #8%:PRINT #8%,TAB(P%+9%);"NAME";TAB(P%+25%);"BATCH EMP# DATE RATE REG-"; 3025 PRINT #8%,"HOURS OVERTIME-HOURS";TAB(P%+87%);"CODE";TAB(P%+107%);"INDEX" 3030 P1%=5%:RETURN 3100 PRINT #8%,CHR$(129%):GOSUB 3000:RETURN 9000 END