home *** CD-ROM | disk | FTP | other *** search
- REMARK **************************************\
- * P/R200.BAS PRINT PAYROLL HISTORY *\
- * 5/17/79 11:22 AM *\
- **************************************
-
- DIM H1(3),H2(9),A(9,2),S(96),R$(5),R1(2),R2(5),G3(5),G2$(5)
- %INCLUDE CURSOR
-
- DEF FNEXACT(X0,X1)=X0*1000000 + X1
- GOTO 6000
- %INCLUDE SUBS1
- %INCLUDE GENINFO
- %INCLUDE MSTRIN
-
- 825 IF LINE.COUNT% < 55 THEN RETURN REMARK IF SPACE REMAINS ON REPORT PAGE, RETURN
- A1%=110
- P=P+1
- PRINT CHR$(0CH); REMARK PRINT TOP-OF-FORM
- PRINT TAB((A1%-LEN(G2$(1)))/2);G2$(1);TAB(A1%);"DATE "; REMARK PRINT COMPANY NAME AND DATE
- X0=G3(1):GOSUB 680.5
- PRINT
- PRINT TAB((A1%-LEN(X4$))/2);X4$;TAB(A1%);"PAGE";P REMARK PRINT REPORT TITLE AND PAGE NUMBER
- PRINT
- 835 PRINT "EMP NAME ";TAB(28); REMARK PRINT REPORT COLUMN HEADINGS
- PRINT "PAY DATE REG HRS O.T. HRS VAC HRS TOTAL PAY";
- PRINT " FED W/H STATE W/H FICA SDI NET PAY CHECK"
- PRINT
- LINE.COUNT%=6 REMARK SET LINE COUNTER FOR NEXT REPORT PAGE
- RETURN
-
- %INCLUDE HISTORY
- %INCLUDE PR-SEARC
-
- 4500 LINE.COUNT%=LINE.COUNT% + 2
- GOSUB 825 REMARK CHECK FOR END OF REPORT PAGE
- PRINT USING MASKA$;X0$,A(1,I%),A(2,I%),A(3,I%),A(4,I%),\ REMARK PRINT Q-T-D OR TOTAL TO-DATE FOR EMPLOYEE
- A(5,I%),A(6,I%),A(7,I%),A(8,I%),A(9,I%)
- LINE.COUNT%=LINE.COUNT%+1
- A1% = 24*I% REMARK SET ARRAY POINTER FOR MASTER FILE TOTALS
- IF S(1+A1%)+S(5+A1%)<>A(1,I%) THEN PRINT TAB(45);"*"; REMARK PRINT DISCREPANCY FLAGS IF TOTALS \
- ON THE MASTER FILE DO NOT AGREE WITH HISTORY
- IF S(3+A1%) <> A(2,I%) THEN PRINT TAB(54);"*";
- IF S(8+A1%) <> A(3,I%) THEN PRINT TAB(63);"*";
- IF S(11+A1%) <> A(4,I%) THEN PRINT TAB(74);"*";
- IF S(13+A1%) <> A(5,I%) THEN PRINT TAB(85);"*";
- IF S(14+A1%) <> A(6,I%) THEN PRINT TAB(95);"*";
- IF S(15+A1%) <> A(7,I%) THEN PRINT TAB(104);"*";
- IF S(16+A1%) <> A(8,I%) THEN PRINT TAB(112);"*";
- IF S(11+A1%)-S(18+A1%) <> A(9,I%) THEN PRINT TAB(123);"*";
- PRINT
- RETURN
-
-
- 5300 FOR I%=1TO 9 REMARK ACCUMULATE Q-T-D TO TOTAL-TO-DATE FOR EMPLOYEE
- A(I%,1)=A(I%,1)+A(I%,2)
- A(I%,2)=0 REMARK SET QUARTERLY TOTALS TO ZERO
- NEXT I%
- RETURN
-
-
- 6000 MASKA$=" /######################/ ######.##" REMARK SET UP PRINT MASKS
- MASKA$=MASKA$+" #####.## #####.## #######.## #######.##"
- MASKA$=MASKA$+" ######.## #####.## ####.## #######.## ######"
- MASKB$=" ######.## #####.## #####.## #######.## #######.##"
- MASKB$=MASKB$+" ######.## #####.## ####.## #######.## ######"
- MASK3$="###"
- DEF FNA(A1)=A1-INT(A1/10000)*10000 REMARK EXTRACT MONTH NUMBER FROM GREGORIAN DATE
- DEF FNB(X0)=INT(INT(FNA(X0)/100-1)/3)
- PRINT CLEAR.SCREEN$;"PAYROLL HISTORY REPORT" REMARK DISPLAY PROGRAM I.D. ON CRT
- PRINT "ENTER START EMPLOYEE OF ZERO TO EXIT"
- PRINT
- PRINT
- PRINT "START EMPLOYEE NUMBER"
- PRINT "END EMPLOYEE NUMBER"
- X1=279:X2=3:X3=0:X4=999:GOSUB 345 REMARK ENTER START EMPLOYEE NUMBER
- IF X0=0 THEN 6230 REMARK IF START EMPLOYEE IS ZERO, EXIT PROGRAM
- E1=X0
- 6045 X1=343:X2=3:X3=E1:X4=999:GOSUB 345 REMARK ENTER END EMPLOYEE NUMBER
- E2=X0
- X2=1:X3=0:X4=1:X2$="ENTRY CORRECT?":GOSUB 665 REMARK VERIFY ENTRY: '1'=O.K.; '0'=RETRY
- IF X0<>1 THEN 6000
- Y1=3
- Y6=2
- X4$="PAYROLL HISTORY"
- LPRINTER REMARK SELECT PRINTER AS OUTPUT DEVICE
- OPEN "P/R0F110.DAT" RECL 1150 AS 1 REMARK OPEN EMPLOYEE MASTER FILE
- OPEN "P/R0F120.DAT" RECL 102 AS Y6 REMARK OPEN EMPLOYEE HISTORY FILE
- Y9=3
- OPEN "G/I0F010.DAT" RECL 200 AS Y9
- GOSUB 700 REMARK READ GENERAL INFORMATION FILE
- LINE.COUNT%=60
- GOSUB 825 REMARK PRINT HEADINGS FOR FIRST PAGE
- P=0 REMARK RE-INITIALIZE PAGE COUNT
- IF E2 > MSTR.RECORDS THEN E2=MSTR.RECORDS
- X4$="PAYROLL HISTORY"
- Y2=Y6
- RECORD.COUNT=HISTORY.RECORDS
- K=FNEXACT(E1,0)
- GOSUB 1060 REMARK LOCATE FIRST EMPLOYEE HISTORY RECORD
- REC%=L-1 REMARK SET STARTING RECORD
- IF END #Y6 THEN 6220 REMARK SET EOF BRANCH FOR HISTORY FILE
- 6085 REC%=REC%+1
- X0=REC%
- GOSUB 905 REMARK GET THE NEXT PAYROLL HISTORY RECORD
- IF H1(1) > E2 THEN 6220 REMARK IF PAST RANGE, EXIT PROGRAM
- IF S(1)=H1(1) THEN 6135 REMARK BRANCH IF EMPLOYEE NUMBER HAS NOT CHANGED
- IF S(1)=0 THEN S(1)=H1(1):GOTO 6130 REMARK IF FIRST EMPLOYEE, DON'T PRINT TOTALS
- PRINT
- LINE.COUNT%=LINE.COUNT% + 1
- X0$="QUARTERLY":I%=2:GOSUB 4500 REMARK PRINT QUARTERLY TOTALS AND ACCUMULATE
- GOSUB 5300
- I%=1:X0$="TOTAL":GOSUB 4500 REMARK PRINT TOTAL-TO-DATE FOR EMPLOYEE
- 6115 LINE.COUNT%=60
- FOR I%=1 TO 9:A(I%,1)=0:A(I%,2)=0:NEXT I% REMARK INITIALIZE TOTALS ARRAY
- GOSUB 825 REMARK SKIP TO TOP OF FORM ON NEW EMPLOYEE SUMMARY
- P=0
- 6130 C%=FNB(H1(2)):YEAR%=INT(H1(2)/10000)
- IF H1(1) <= MSTR.RECORDS THEN X0 = H1(1):GOSUB 745 REMARK READ MASTER FILE FOR EMPLOYEE RECORD
- IF H1(1) > MSTR.RECORDS OR S(1)=0\
- THEN R$(1)="NOT ON MASTER FILE" REMARK SET EMPLOYEE NAME TO ERROR MESSAGE IF\
- NO MASTER RECORD EXISTS
- GOSUB 825 REMARK CHECK FOR END OF REPORT PAGE
- PRINT USING MASK3$; H1(1); REMARK PRINT EMPLOYEE NUMBER
- PRINT " ";R$(1); REMARK PRINT EMPLOYEE NAME
- 6135 IF FNB(H1(2)) = C% AND YEAR% = INT(H1(2)/10000) THEN 6170 REMARK IF NOT NEW QUARTER, SKIP SUBTOTALS
- C%=FNB(H1(2)):YEAR%=INT(H1(2)/10000) REMARK SET QUARTER TO NEW INFORMATION
- IF A(4,2) > 0 THEN\ REMARK PRINT Q-T-D TOTALS
- PRINT:\
- PRINT USING MASKA$; "QUARTERLY", A(1,2), A(2,2), A(3,2), A(4,2),\
- A(5,2), A(6,2), A(7,2), A(8,2), A(9,2):\ REMARK PRINT PREVIOUS Q-T-D TOTALS IF NEW QUARTER
- PRINT:\
- LINE.COUNT%=LINE.COUNT% + 2:\
- GOSUB 5300 REMARK ACCUMULATE TO TOTAL-TO-DATE
- 6170 PRINT TAB(28);
- X0=FNA(H1(2))*100+INT(H1(2)/10000)
- GOSUB 680.5 REMARK CONVERT DATE OF CHECK-- YYMMDD TO MMDDYY;\
- AND THEN PRINT IT
- PRINT USING MASKB$;H2(1),H2(2),H2(3),H2(4),H2(5),H2(6),\ REMARK PRINT HISTORY RECORD DETAIL
- H2(7),H2(8),H2(4)-H2(9),H1(3)
- LINE.COUNT%=LINE.COUNT%+1
- FOR I%=1TO 8
- A(I%,2)=A(I%,2)+H2(I%) REMARK ACCUMULATE TO TOTALS
- NEXT I%
- A(9,2)=A(9,2)+H2(4)-H2(9)
- GOTO 6085
- 6220 PRINT
- X0$="QUARTERLY":I%=2:GOSUB 4500 REMARK PRINT Q-T-D TOTALS FOR LAST EMPLOYEE
- GOSUB 5300
- I%=1:X0$="TOTAL":GOSUB 4500
-
- 6230 PRINT CHR$(12) REMARK END OF PROGRAM
- CONSOLE
- PRINT CLEAR.SCREEN$;"PAYROLL HISTORY REPORT LOADING MENU"
- CHAIN "P/R000"
-
-
-