0 'TC-25.BA TIME CARD v2.5 Drew Blanchar: Summer 1987 1 'CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 5 CLS:CLEAR300:MAXFILES=1:DEFSTRD,F,I,N,T:D=DATE$:F="TC"+LEFT$(D,2)+MID$(D,4,2) 10 'D=DATE$, F=FILE NAME, I=LINE INPUT J=JOB #, K=VAL(INKEY$) N=JOB NAME, T=TIME$, U=HR.MIN, G & GG=TEMP DATES 12 'ST,ET,H=START,END,DIFF.TIME SM,EM,M=START,END,DIFF.MILEAGE, 15 ONERRORGOTO200 20 PRINT@48,"TIMECARD FOR ";D:J=0:L=0:PRINT@128,"FOR INSTRUCTIONS PRESS <1>" 22 PRINT@204,"<< to continue press space bar >>" 25 A$=INKEY$:IFA$=""GOTO25ELSEIFA$="1"GOTO30ELSEGOTO50 30 CLS:PRINT" This timecard records job number,":PRINT"job name or code, start and end times" 32 PRINT"as well as start and end mileage.":PRINT" Total work time and mileage are" 34 PRINT"computed. In cases when the job starts" :PRINT"or ends before 6 AM yesterday's last" 36 PRINT"entry may be checked." 40 PRINT" << press any key to continue >>"; 45 IFINKEY$=""GOTO45 50 OPENFFORINPUTAS#1 52 L=L+1:LINEINPUT#1,I 54 IFL=1THENJ=VAL(MID$(I,8,2)):N=MID$(I,11,15):GOTO52 56 IFL=2THENST=VAL(MID$(I,8,5)):SM=VAL(MID$(I,17,8)):GOTO52 58 IFL=3THENET=VAL(MID$(I,8,5)):EM=VAL(MID$(I,17,8)):GOTO52 60 IFL=4THENH=VAL(MID$(I,8,5)):M=VAL(MID$(I,18,7)):GOTO52 62 IFL=5THENK$=I:GOTO52 64 IFLEN(I)<2THENL=0:GOTO52 66 GOTO52 100 'SHOW LAST ENTRY 110 CLS:PRINT@12,"LAST JOB IN FILE" 120 PRINT"";F;:PRINTUSING" ##";J;:PRINTUSING" \ \";N 122 PRINT"START ";:PRINTUSING"##.##";ST;:PRINTUSING" ######.#";SM 124 PRINT"END ";:PRINTUSING"##.##";ET;:PRINTUSING" ######.#";EM 126 PRINT"CHARGE ";:PRINTUSING"##.##";H;:PRINTUSING" hr #####.#";M;:PRINT"miles" 128 PRINTK$ 130 PRINT@283,"<< press any key to continue >>";:IFINKEY$=""THEN130ELSECLS:GOTO250 150 CLS:PRINT@11,"UNFINISHED LAST JOB":PRINT" JOB";J;N:PRINT" START TIME ";:PRINTUSING"##.##";ST 152 PRINT@162," or enter new":T=TIME$:U=VAL(LEFT$(T,2))+VAL(MID$(T,4,2))/100 154 K$="":PRINT@123,"END TIME ";:PRINTUSING"##.##";U;:PRINT" (HH.MM) ";:LINEINPUTK$ 156 IFK$=""THENET=UELSEET=VAL(K$) 158 M1=((ET-FIX(ET))-(ST-FIX(ST)))*100 160 IFM1<0THENM1=M1+60:ET=ET-1 162 H1=FIX(ET)-FIX(ST) 164 IFH1<0THENH1=H1+24 166 H=H1+(M1/60):PRINT"WORKED HRS.MIN /(HRS)"; 168 PRINTUSING" ##.##";H1+M1/100;:PRINTUSING" /(##.##)";H 170 PRINTSPACE$(30):PRINT"START MILEAGE ";SM 172 INPUT" END MILEAGE ";EM 174 M=EM-SM:IFM<0THENM=M+100000 176 PRINT" MILES TRAVELED";M 178 PRINT" if correct or <-> to change END MILEAGE"; 180 K$=INKEY$:IFK$=""THEN180 182 IFK$="-"THENCLS:GOTO170 185 PRINT:PRINT"<< type up to 2 lines of notes NO until end >>" 187 PRINT"note: ";:LINEINPUTK$ 190 CLS:PRINT@162,"STORING ABOVE DATA IN FILE ";F 192 OPENFFORAPPENDAS1:PRINT#1,"END ";:PRINT#1,USING"##.##";ET;:PRINT#1,USING" ######.#";EM 194 PRINT#1,"CHARGE ";:PRINT#1,USING"##.##";H;:PRINT#1,USING" hr #####.#";M;:PRINT#1,"miles" 196 PRINT#1,"note:";K$:PRINT#1,"":CLOSE#1:FORX=1TO300:NEXTX:BEEP:CLS:GOTO250 200 'ON-ERROR BRANCHING 202 CLOSE:Z=ERR:ZZ=ERL:RESUME204 204 IFZ=52OR(Z=54ANDJ=0)THEN240 206 IFZ=54ANDL=1THEN100 208 IFZ=54ANDL<4GOTO150 210 PRINT"ERR";Z;"LINE";ZZ; 212 IFINKEY$=""GOTO212 240 CLS:PRINT"NO JOBS YET LISTED FOR TODAY":K=0:IFVAL(TIME$)>5ORG=1GOTO250 245 PRINT@242,"CLOSE JOB FROM YESTERDAY <4>"; 250 K=0:PRINT@80,"choose one ": 252 PRINT" EXIT <1>" 254 PRINT" CHECK SCHEDULE <2>" 256 PRINT" CREATE JOB ENTRY <3>"; 260 K=VAL(INKEY$):IFK=1ORK=2ORK=3ORK=4THEN265ELSE260 265 ONKGOTO380,375,300,400 300 'CREATE JOB ENTRIES 305 IFG=1THENJ=1ELSEJ=J+1 310 CLS:PRINT"JOB TITLE OR CODE:";J;:LINEINPUT"-";N 315 INPUT" START MILEAGE";SM 320 PRINT@122," or enter new"; 325 K$="":T=TIME$:U=VAL(LEFT$(T,2))+(VAL(MID$(T,4,2))/100):PRINT@80,"START TIME "; 327 PRINTUSING"##.##";U;:PRINT" (HH.MM) ";:LINEINPUTK$ 330 IFK$=""THENST=UELSEST=VAL(K$) 335 CLS:PRINT@162,"STORING ABOVE DATA IN FILE ";F 340 F="TC"+LEFT$(D,2)+MID$(D,4,2) 342 OPENFFORAPPENDAS1:PRINT#1,"";F;:PRINT#1,USING" ##";J;:PRINT#1,USING" \ \";N 344 PRINT#1,"START ";:PRINT#1,USING"##.##";ST; 346 PRINT#1,USING" ######.#";SM:CLOSE#1:FORX=1TO200:NEXTX:BEEP 350 CLS:K=0:PRINT"choose one 352 PRINT" EXIT <1>" 354 PRINT" CHECK SCHEDULE <2>" 360 K=VAL(INKEY$):IFK=1ORK=2THEN365ELSE360 365 ONKGOTO380,375 375 CLOSE:CLS:CALL23407 380 CLOSE:CLS:MENU 400 G=VAL(MID$(D,4,2)):G=G-1:GG=(G/10):IFGG>=1THENG=G-GG*10ELSEGG=0 405 F="TC"+LEFT$(D,2)+CHR$(GG+48)+CHR$(G+48):G=1 410 GOTO50