REMARK *****************************************\ * P/R310.BAS OVERHEAD DISTRIBUTION *\ * 3/23/79 4:30 PM *\ ***************************************** %INCLUDE CURSOR DIM W(2),W1(2),W2(14),W2$(2),G2$(5),G3(5) DEF FNR(A1)=INT(A1*100+.5)/100 REMARK ROUNDING FUNCTION GOTO 6000 %INCLUDE SUBS1 %INCLUDE GENINFO 6000 MASKA$="######.##" REMARK SET UP PRINT MASKS MASKB$="##.##" MASKC$="######.## (##.##%)" MASKD$="###.##" Y8=1 Y9=2 OPEN "JOB0F100.DAT" RECL 160 AS 1,"G/I0F010.DAT" RECL 200 AS 2,\REMARK OPEN JOB, GENERAL INFOMATION AND CRT MASK FILES "CRT" RECL 1100 AS 19 GOSUB 700 REMARK READ GENERAL INFORMATION FILE X0=13:GOSUB 260 REMARK GET CRT MASK 13 6020 X1=64:GOSUB 210 PRINT "WORKING..." IF JOB.RECORDS=0 THEN X2$="FILE IS EMPTY":GOSUB 615:\ GOTO 6225 6035 FOR K%=1 TO JOB.RECORDS READ #1,K%;W(1),W(2) REMARK READ JOB FILE IF W(2)=0 THEN\ READ #1,K%;W(1),W(2),W1$,W1(1),W1(2),W2$(1),W2$(2):GOTO 6065 REMARK IF HEADER RECORD ENCOUNTERED, READ IT IN READ #1,K%;W(1),W(2),W2(1),W2(2),W2(3),W2(4),W2(5),\ REMARK READ DETAIL RECORD IF W(2) IS POSITIVE W2(6),W2(7),W2(8),W2(9),W2(10),W2(11),W2(12),W2(13),W2(14) IF W2(3)=-1 THEN 6065 REMARK IF DETAIL RECORD WAS DELETED, SKIP IT J2=J2+W2(3) REMARK ADD MONTHLY COST-2 FOR ALL JOBS INTO J2 IF W2$(2)<>"1" THEN J=J+W2(3) REMARK ADD COST-2 FOR ALL NON-PAYROLL OVERHEAD JOBS IF W2$(2)="0" THEN J0=J0+W2(3) REMARK ADD COST-2 FOR ALL PAYROLL OVERHEAD JOBS 6065 NEXT K% X1=270:GOSUB 210:PRINT USING MASKA$; J2; REMARK DISPLAY TOTAL OVERHEAD X1=8:GOSUB 215:PRINT USING MASKA$; J2-J; REMARK SUBTRACT NON-PAYROLL OVERHEAD X1=5:GOSUB 215:PRINT USING MASKA$; J; REMARK DISPLAY TOTAL PAYROLL COSTS FOR PERIOD X1=408:X2=5:X3=0:X4=99.99:GOSUB 345 REMARK ENTER TAXES AND INSURANCE PERCENTAGE OF PAYROLL R1=X0 X1=472:X2=5:X3=0:X4=99.99:GOSUB 345 REMARK ENTER VACATION AND HOLIDAY PAY PERCENTAGE R2=X0 R3=R1+R2 REMARK ADD AND DISPLAY TOTAL PERCENTAGE X1=536:GOSUB 210 PRINT USING MASKB$; R3; X1=8:GOSUB 215 PRINT USING MASKA$; FNR(R3/100*J); X1=665:X2=9:X3=0:X4=999999.99:GOSUB 345 REMARK ENTER GENERAL OFFICE OVERHEAD AMOUNT O1=X0 IF O1>0 THEN R4=O1/J*100 ELSE R4=0 REMARK CONVERT AMOUNT TO PERCENT OF TOTAL PAYROLL X1=680:GOSUB 210:PRINT USING MASKB$; FNR(R4) REMARK PRINT PERCENTAGE PRINT X1=26:GOSUB 215:PRINT USING MASKA$; J0 REMARK DISPLAY PERSONNEL OVERHEAD PAY X1=26:GOSUB 215:PRINT USING MASKC$; FNR(J0*R3/100); FNR(R3) REMARK DISPLAY PAYROLL OVERHEAD X1=26:GOSUB 215:PRINT USING MASKC$; FNR(J0*R4/100); FNR(R4) REMARK DISPLAY GENERAL OFFICE OVERHEAD J1=J0+FNR(J0*R3/100)+FNR(J0*R4/100) REMARK CALCULATE AND DISPLAY TOTAL PERSONNEL OVERHEAD X1=26:GOSUB 215:PRINT USING MASKA$; J1; IF J1>0 THEN R5=J1/(J-J0)*100 ELSE R5=0 REMARK CALCULATE AND DISPLAY PERSONNEL OHD PERCENT X1=6:GOSUB 215:PRINT USING MASKD$; FNR(R5); X1=11:GOSUB 215:PRINT USING MASKD$; FNR(R5)+FNR(R4)+FNR(R3) REMARK DISPLAY TOTAL OVERHEAD PERCENT PRINT CURSOR.HOME$ PRINT PRINT "KEY RETURN TO BEGIN; CTRL-C TO EXIT" 6160 IF CONSTAT%=0 THEN GOTO 6160 REMARK AWAIT OPERATOR CUE BEFORE STARTING PROCESSING A%=CONCHAR% IF A%=03H\ THEN\ X2$="PROGRAM ABORTED":GOSUB 615:\ REMARK FLASH TERMINATION MESSAGE IF CTRL-C HIT GOTO 9000 IF A% <>0DH THEN GOTO 6160 REMARK EXECUTE PROGRAM ONLY IF WAS HIT PRINT "WORKING...DO NOT INTERRUPT"; FOR K%=1 TO JOB.RECORDS READ #1,K%;W(1),W(2) IF W(2)=0 THEN \ READ #1,K%;W(1),W(2),W1$,W2(1),W2(2),W2$(1),W2$(2):GOTO 6225 REMARK READ HEADER RECORD READ #1,K%;W(1),W(2),W2(1),W2(2),W2(3),W2(4),W2(5),\ REMARK IF W(2) IS POSITIVE, READ JIB DETAIL RECORD W2(6),W2(7),W2(8),W2(9),W2(10),W2(11),W2(12),W2(13),W2(14) IF W2(3)=-1 OR W2$(2)="1" THEN 6225 REMARK IF JOB RECORD WAS DELETED OR IS NOT TO HAVE\ OVERHEAD DISTRIBUTED TO IT, GET NEXT RECORD W2(4)=0:W2(5)=0:W2(6)=0:W2(7)=0 REMARK INITIALIZE ALL MONTHLY OVERHEAD AMOUNTS W2(4)=FNR(R3/100*W2(3)) REMARK CALCULATE PAYROLL OVERHEAD BASED ON COST-2 W2(5)=FNR(R4/100*W2(3)) IF W2$(2)<>"0"\ THEN\ W2(6)=FNR(R5/100*W2(3)):W2(14)=W2(14)+W2(7) REMARK ADD PERSONNEL AND MISCELLANEOUS OVERHEAD\ FOR ANY USER-DEFINED COST CENTER W2(7)=0 W2(11)=W2(11)+W2(4) REMARK ADD ALL MONTHLY OVERHEAD TO J-T-D OVERHEAD W2(12)=W2(12)+W2(5) W2(13)=W2(13)+W2(6) 6220 PRINT #1,K%;W(1),W(2),W2(1),W2(2),W2(3),W2(4),W2(5),\ REMARK RE-WRITE DETAIL RECORD WITH DITRIBUTED COSTS W2(6),W2(7),W2(8),W2(9),W2(10),W2(11),W2(12),W2(13),W2(14) 6225 NEXT K% 9000 PRINT CLEAR.SCREEN$; REMARK END OF PROGARM -- CLOSE FILES, CHAIN MENU PRINT"OVERHEAD DISTRIBUTION EXITING" CHAIN "P/R000"