Listing of file='ACPA060A' on disk='vmedia/701-2654C.wvd.zip'
# Sector 277, program filename = 'ACPA060A' 0010 REM ACPA060A, RELEASE 2.3, (12/11/80) THIS PROGRAM IS A COPYRIGHT PRODUCT OF WANG LABORATORIES INC. UNAUTHORIZED REPRODUCTION OR USE IS PROHIBITED 0020 REM PROGRAM NAME = ACPA060A 0030 REM RELEASE NUMBER = 01 0040 REM REVISION NUMBER = 00 0050 REM DATE WRITTEN = 01/09/79 0055 REM REVISION DATE = 12/10/80 MAF 0056 REM THIS PROGRAM WAS UPGRADED TO 2.2 BY ERRATA 1161 0057 REM THIS PROGRAM WAS UPGRADED TO 2.3 BY ERRATA 1188 0060 REM ************************************************** 0070 REM * THIS PROGRAM IS PART OF A GENERALIZED * 0080 REM * APPLICATION. COPYRIGHT WANG LABS INC. 1979 * 0090 REM ************************************************** 0110 REM SYSTEM NAM = GBS ACCOUNTS/PAYABLE SYSTEM 0120 REM MODULE NAME = A/P CHECK PRINT 0130 REM PROGRAM FUNCTION = TO PRINT CHECKS AND VOUCHERS 0140 REM ************************************************** 0150 REM 0159 REM 0170 DIM D8$8,A8$11,A9$11 0198 GOTO 4000 3990 REM 3996 REM ******************* 3997 REM ! A/P CHECK PRINT ! 3998 REM ******************* 3999 REM 4000 SELECT @PARTS0$ 4080 A8$="#######.##-" 4090 A9$="###,###.##-" 4110 REM CHECK PRINTER 4120 GOSUB '93("MOUNT CHECK VERTICAL FORMAT TAPE AND CHECKS") 4130 IF I0$=" " THEN LOAD T M$ 4300 REM GET DATE FROM CONTROL FILE 4320 GOSUB '66(6,0,1) 4350 GOSUB '100("1","99999999",8,0,"ENTER STARTING CHECK NO",1) 4360 IF Q6$ = HEX(1F) THEN GOSUB '31 4370 A7,A8 = Q9 4380 N0$ = " " 4390 REM PRINT CHECK MASKS 4400 GOSUB 7670 4410 REM SET VENDOR ID TO INDICATE FIRST TIME THROUGH 4420 N0$ = HEX(00) 4425 PRINT AT(4,0,80);"Processing Vendor ID.";HEX(06) 4430 REM READ OPEN ITEM FILE 4440 IF N0$ = HEX(00) THEN GOSUB '235(2,0) : ELSE GOSUB '237(2,0) 4450 IF Q$ = "E" THEN 4600 4460 IF N0$ = HEX(00) THEN N0$ = " " 4470 Q6$ = "A/P OPEN ITEM FILE" 4480 IF Q$ <> " " THEN 5670 4490 A6 = Q 4500 GOSUB '71(4,A6) 4510 IF C5$(A6) <> "1" THEN 4440 4520 REM CONVERT INVOICE DATE - JULIAN ==> GREGORIAN 4530 GOSUB '123(B3(A6)) 4540 IF Q6$<>"E" THEN D8$=U9$ : ELSE D8$="NO DATE" 4550 REM DETERMINE SIGN OF TRANSACTION AMOUNT 4560 IF C3$(A6) <> "E" AND C3$(A6) <> " " THEN B(A6) = -B(A6) 4570 REM CHECK FOR VENDOR BREAK 4580 IF N0$ = C0$(A6) THEN 4830 4590 REM IF THERE IS A CHECK TO PRINT, PRINT IT 4600 IF A9 <= 0 AND K1 <> 0 THEN GOSUB 7500 4610 IF A9 <= 0 THEN 4700 4620 GOSUB 7270 4630 N$ = " " 4640 N3$ = Q1$ 4650 N1 = B8 4660 N2 = B7 4670 N3 = A9 4680 GOSUB 7040 4690 GOSUB '64(5) 4700 IF Q$="E" THEN 5210 4710 A9,B7,B8,B9,K1,K7 = 0 4720 REM GET VENDOR MASTER FILE RECORD 4730 N0$ = C0$(A6) 4740 PRINT AT(4,23,5);N0$ 4750 IF J0 = 7 THEN J$(7) = " " 4760 GOSUB '232(1,0,N0$) 4770 Q6$ = "VENDOR MASTER FILE" 4780 IF Q$ <> " " AND Q$ <> "B" THEN 5670 4790 GOSUB '91 4800 IF J0 = 7 THEN 4750 4810 GOSUB '70(2) 4820 N1$ = A1$ 4830 IF C3$(A6) = "X" OR C3$(A6) = "E" THEN 5100 4840 REM PROCESS " ",C, OR P TRANSACTION 4850 IF B4$ = "1" THEN 4440 4860 REM IF 12 VOUCHER LINES HAVE BEEN PRINTED, PRINT LAST LINE OF THIS VOUCHE R ,PRINT VOID CHECK, WRITE TO CHECK FILE 4870 IF K7 >= 12 THEN GOSUB 7500 4880 REM PRINT VOUCHER LINE 4890 SELECT PRINT <I0$>(90) 4900 Q8=POS(" CPX"=C3$(A6)) 4910 Q8=MAX(MIN(Q8,3),1) 4920 Q6$ = "INVOICE CREDIT MEMO MANUAL PAYMNT" 4930 REM CHOOSE PARTIAL PAYMENT AMOUNT IF APPLICABLE - ELSE USE INVOICE AMOUNT 4940 IF B1(A6) <> 0 THEN Q9 = B1(A6) : ELSE Q9 = B(A6) 4950 IF B1(A6) <> 0 THEN PRINT "PART PAY"; 4960 PRINT TAB(10);C1$(A6);TAB(21);D8$;TAB(30);STR(Q6$,Q8*13-12,13);TAB(45 ); 4970 IF Q9>=1E6 THEN Q6$=A8$ : ELSE Q6$=A9$ 4980 PRINTUSING Q6$,Q9; 4985 PRINT TAB(58); 4990 PRINTUSING A9$,ROUND((B0(A6)*Q9/100,2); 4995 PRINT TAB(71); 5000 PRINTUSING Q6$,Q9 - ROUND((B0(A6)*Q9/100,2) 5010 A9 = A9 + Q9 - ROUND((Q9*B0(A6)/100,2) 5020 B7 = B7 + ROUND((Q9*B0(A6)/100,2) 5030 B9 = B9 + Q9 - ROUND((Q9*B0(A6)/100,2) 5040 B8 = B8 + Q9 5050 K1 = K1 + 1 5060 K7 = K7 + 1 5070 SELECT PRINT 005(80) 5080 GOTO 4440 5090 REM PROCESS X AND E RECORDS 5100 IF C3$(A6) = "E" THEN N$ = "2" : ELSE N$ = "1" 5110 N1 = B(A6) 5120 N2 = ROUND((B(A6)*B0(A6)/100,2) 5130 N0 = B2(A6) 5140 N3 = N1 - N2 5150 N3$ = D8$ 5160 GOSUB '64(5) 5170 IF C3$(A6) = "E" OR B4$ = "1" OR B4(A6) > M(3) THEN 4440 5180 GOTO 4870 5190 REM ---------- 5200 REM END OF A/P OPEN ITEM FILE 5210 N0 = 99999999 5220 N0$ = HEX(FF) 5230 GOSUB '64(5) 5240 IF O <> 0 THEN DSKIP #5,1S 5250 REM UPDATE CONTROL FILE 5260 $OPEN #6 5270 GOSUB '66(6,0,1) 5280 M(1) = Q1 5290 F5$(2) = "2" 5300 GOSUB '66(6,0,0) 5310 GOSUB '66(6,Q1,1) 5320 M(1) = A7 - A8 5330 IF M(1) <> 0 THEN Q9 = A7 - 1 : ELSE Q9 = 0 5340 M(2)=Q9 5350 GOSUB '66(6,Q1,0) 5360 $CLOSE#6 5370 GOSUB '218(S$(5),5," ",0) : REM "END" FOR CHECK FILE 5380 PRINT AT(4,0,80) 5390 GOSUB '100("Y,N","YyNn",1,1,"DO YOU WANT A REPRINT (Y OR N)",2) 5410 IF Q6$ = "N" THEN 5500 5450 REM RESTART 5460 DBACKSPACE #5,BEG 5470 O,B7,B8,B9,K1,A9 = 0 5480 GOTO 4320 5490 REM CLOSE FILES 5500 DEFFN '31 5510 PRINT AT(1,0,240);"MOUNT STANDARD VERTICAL FORMAT TAPE/PAPER" 5520 GOSUB '254 5525 SELECT PRINT <I0$>(90) 5530 PRINT HEX(0C) 5540 PRINT HEX(0E);"PRINTED CHECKS TOTAL" 5550 PRINT HEX(0A) 5560 PRINT TAB(34); 5570 PRINTUSING "$###,###,###.##",B6 5650 LOAD T M$ 5660 REM TERMINATE FOR KFAM ERROR 5670 GOSUB '91 5680 PRINT AT(1,0,80);"PROGRAM WILL BE TERMINATED";AT(3,16);"- ";Q6$ 5690 GOSUB '254 5700 GOTO 5500 7000 REM *************** 7010 REM * SUBROUTINES * 7020 REM *************** 7030 REM PRINT CHECK 7040 SELECT PRINT <I0$>(90) 7050 PRINT HEX(0B) 7060 PRINT TAB(1);Q1$;TAB(65); 7070 Q9 = MAX(INT(LOG(A9)/LOG(10)),0) 7080 Q6$="$" 7090 STR(Q6$,2) = ALL("*") 7100 STR(Q6$,12-Q9) = ALL("#") 7110 STR(Q6$,13) = ".##" 7120 IF Q9 > 2 THEN Q7$=STR(Q6$,,9)&","&STR(Q6$,10) : ELSE Q7$=Q6$ 7130 IF Q9 > 5 THEN Q6$=STR(Q7$,,6)&","&STR(Q7$,7) : ELSE Q6$=Q7$ 7140 PRINTUSING Q6$,A9 7150 REM ACCUMULATE TOTAL OF PRINTED CHECKS 7160 B6=B6+A9 7170 PRINT HEX(0B) 7180 PRINT TAB(16);A1$ 7190 IF A2$ <> " " THEN PRINT TAB(16);A2$ 7200 IF A3$ <> " " THEN PRINT TAB(16);A3$ 7210 PRINT TAB(16);A4$;" ";A5$ 7220 PRINT HEX(0C) 7230 SELECT PRINT 005(80) 7240 RETURN 7250 REM ------------- 7260 REM PRINT LAST LINE OF VOUCHER 7270 SELECT PRINT <I0$>(90) 7280 IF K7 > 9 THEN 7300 7290 PRINT HEX(0B) 7300 PRINT HEX(0B) 7310 PRINTUSING "##################### #####",A1$,N0$; 7320 IF K7 < 12 THEN 7350 7330 PRINT TAB(31);A7;TAB(49);"CONTINUED ON NEXT PAGE" 7331 REM PRINT TAB(49);"CONTINUED ON NEXT PAGE" 7340 GOTO 7420 7350 PRINT TAB(31);A7;TAB(45); 7360 IF B8>=1E6 THEN Q6$=A8$ : ELSE Q6$=A9$ 7370 PRINTUSING Q6$,B8; 7380 IF B7>=1E6 THEN Q6$=A8$ : ELSE Q6$=A9$ 7385 PRINT TAB(58); 7390 PRINTUSING Q6$,B7; 7400 IF B9>=1E6 THEN Q6$=A8$ : ELSE Q6$=A9$ 7405 PRINT TAB(71); 7410 PRINTUSING Q6$,B9 7420 PRINTUSING " #####",K1 7430 K7 = 0 7440 N0 = A7 7450 A7 = A7 + 1 7460 SELECT PRINT 005(80) 7470 RETURN 7480 REM ---------- 7490 REM PROCESS VOID CHECKS 7500 GOSUB 7270 7510 SELECT PRINT <I0$>(90) 7520 PRINT HEX(0B); 7530 PRINT TAB(1);"********";TAB(71);"********" 7540 PRINT HEX(0B); 7550 FOR I = 1 TO 2 7560 PRINT HEX(0E);TAB(8);"VOID" 7570 PRINT 7580 NEXT I 7590 PRINT HEX(0C) 7600 SELECT PRINT 005(80) 7610 N3$ = Q1$ 7620 N1,N2,N3 = 0 7630 N$ = "3" 7640 GOSUB '64(5) 7650 RETURN 7660 REM FORMS ALIGNMENT MASK 7670 GOSUB '100("Y,N","YyY Nn",1,1,"DO YOU WANT TO PRINT A MASK (Y OR N)", 2) 7690 IF Q6$ = "N" THEN RETURN 7730 SELECT PRINT <I0$>(90) 7740 FOR I = 1 TO 12 7750 PRINT "******** ******** MM/DD/YY";TAB(45);"XXX,XXX.XX XXX,XX X.XX XXX,XXX.XX" 7760 NEXT I 7770 PRINT 7780 PRINT "VENDOR NAME";TAB(23);"XXXXX";TAB(33);"XXXXXXXX";TAB(45);"XXX,X XX.XX XXX,XXX.XX XXX,XXX.XX" 7790 PRINT " XXXXX" 7800 PRINT HEX(0B);TAB(1);"MM/DD/YY";TAB(71);"XXX,XXX.XX" 7810 PRINT HEX(0B);TAB(16);"VENDOR NAME" 7820 PRINT TAB(16);"ADDRESS LINE1" 7830 PRINT TAB(16);"ADDRESS LINE2" 7840 PRINT TAB(16);"CITY STATE ZIP" 7850 PRINT HEX(0C) 7860 N0 = A7 7870 A7=A7+1 7880 N3$ = Q1$ 7890 N1,N2,N3 = 0 7900 N1$="** CHECK MASK **" 7910 N$ = "3" 7920 GOSUB '64(5) 7930 GOSUB '100("Y,N","YyY Nn",1,1,"DO YOU WANT ANOTHER MASK (Y OR N)",2) 7940 IF Q9=1 THEN GOTO 7730 7950 RETURN 9000 REM ************* 9010 REM * VARIABLES * 9020 REM ************* 9030 REM A6 = RECORD NUMBER - A/P OPEN ITEM FILE 9040 REM A7 = CURRENT CHECK NUMBER 9050 REM A8 = STARTING CHECK NUMBER 9060 REM A9 = NET AMOUNT FOR VENDOR 9070 REM B6 = TOTAL NET FOR ALL VENDORS 9080 REM B7 = DISCOUNT AMOUNT 9090 REM B8 = GROSS AMOUNT 9100 REM B9 = NET AMOUNT 9110 REM D8 = TOTAL NET AMOUNT 9120 REM D8$ = GREGORIAN INVOICE DATE 9130 REM K1 = NO. OF TRANSACTIONS PROCESSED 9140 REM K6 = FOR-NEXT COUNTER 9150 REM K7 = VOUCHER LINE COUNT 9160 REM K8 = SWITCH TO INDICATE A REPRINT 9170 REM $ 9999 DEFFN'29"Q$= ";HEX(22);"ACPA060A";HEX(22);":SCRATCH T Q$:SAVE T$()Q$";HEX (0D)