home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug043.ark / A_R070.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  8KB  |  267 lines

  1.  
  2.     REMARK    #########################################################
  3.     REMARK    #    A/R TRANSACTION FILE MAINTENANCE   (A/R070)    #
  4.     REMARK    #        VERS. OF 3.00 PM    3/5/79        #
  5.     REMARK    #########################################################
  6.  
  7.     DIM L4(2),D(13),Y(2),M$(5),R$(10),R1(10),R2(10)
  8. %INCLUDE CURSOR
  9.     GOTO 6000
  10. %INCLUDE SUBS1
  11. %INCLUDE BINSEARC
  12. %INCLUDE A/R-INV
  13. %INCLUDE READCUST
  14. %INCLUDE A/R-INFO
  15. %INCLUDE A/RTAX
  16.     DATA "INVOICE","CR MEMO","DB MEMO","NEW","INV BILLING"
  17.     DATA "INV PAYMENT","PROG PAYMENT","DELETE","MODIFY"
  18.  
  19.  
  20. .673    Z0=X1                                REMARK    ENTER & DISPLAY DATE:  ALLOW ZERO DATE
  21.     GOSUB 210
  22.     PRINT "          ";
  23.     X2=6
  24.     X3=0
  25.     X4=123199
  26.     GOSUB 345                            REMARK    ENTER THAT DATE
  27.     IF X0=0 THEN X0$="000000"
  28.     IF LEN(X0$)<5 THEN X1=Z0:GOTO .673
  29. .6735    IF LEN(X0$) < 6 THEN X0$="0"+X0$:GOTO .6735
  30.     IF MID$(X0$,1,2)>="00" AND MID$(X0$,1,2)<="12"\
  31.     AND MID$(X0$,3,2)>="00" AND MID$(X0$,3,2) <="31" THEN .675
  32.     X2$="OUT OF RANGE":GOSUB 615:X1=Z0:GOTO .673
  33. .675    X0=VAL(X0$)
  34. .680    GOSUB 210
  35. .6805    X0$=STR$(X0)
  36. .6806    IF LEN(X0$)<6 THEN X0$="0"+X0$:GOTO .6806
  37. .681    PRINT LEFT$(X0$,2);"/";MID$(X0$,3,2);"/";RIGHT$(X0$,2);
  38.     RETURN
  39.  
  40.  
  41. 4000    D(3)=INT((D(1)*R1(L6+1))+.5)/100                REMARK    COMPUTE SALES TAX AND INVOICE TOTAL
  42.     D(4)=D(3)+D(2)+D(1)
  43.     X1=704:GOSUB 210
  44.     GOSUB 5440                            REMARK    REDISPLAY INVOICE AMOUNTS AND TOTAL
  45. 4020    D(7)=D(4)-D(6)                            REMARK    COMPUTE INVOICE BALANCE
  46.     IF L4(2)<>0 THEN D(7)=D(7)-D(8)
  47.     IF L4(1)=0 THEN D(7)=0                        REMARK    IF BILL DATE IS ZERO, INVOICE BALANCE IS ZERO
  48. 4060    X1=320:GOSUB 210
  49.     I1%=5:I2%=7:GOSUB 4320                        REMARK    DISPLAY INVOICE PAYMENT AND BALANCE
  50.     RETURN 
  51.  
  52.  
  53. 4080    D(11)=D(8)-D(10)                        REMARK    COMPUTE PROGRESS BALANCE
  54.     IF L4(2)=0 THEN D(11)=0                        REMARK    ZERO PROGRESS BALANCE IF PROGRESS DUE DATE IS ZERO
  55.     X1=640:GOSUB 210
  56.     I1%=8:I2%=11:GOSUB 4320                        REMARK    DISPLAY PROGRESS BILLING FIELDS
  57.     RETURN 
  58.  
  59.                                     REMARK    CHECK FOR INCONSISTENCIES BETWEEN FIELDS
  60. 4120    IF D(7)<0 THEN 4220                        REMARK    NEGATIVE INVOICE BALANCE ILLEGAL
  61.     IF D(11)<0 THEN 4220                        REMARK    NEGATIVE PROGRESS BALANCE ILLEGAL
  62.     IF L4(1)<>0 THEN 4140                        REMARK    IF BILL DATE IS ZERO...
  63.     IF D(4)<>0 THEN 4220                        REMARK    INVOICE PAYMENT MUST BE ZERO
  64.     IF D(5)<>0 THEN 4220                        REMARK    AND INVOICE BALANCE MUST BE ZERO
  65.     GOTO 4160
  66. 4140    IF D(4)=0 THEN 4220                        REMARK    IF BILL DATE IS NON-ZERO\
  67.                                         INVOICE AMOUNT MUST BE NON-ZERO
  68. 4160    IF L4(2)<>0 THEN 4180                        REMARK    IF PROGRESS DUE DATE IS ZERO...
  69.     IF D(8)<>0 THEN 4220                        REMARK    PROGRESS BILLING AMOUNT MUST BE ZERO
  70.     IF D(9)<>0 THEN 4220                        REMARK    AND PROGRESS BALANCE MUST BE ZERO
  71.     GOTO 4200
  72. 4180    IF D(8)=0 THEN 4220                        REMARK    IF PROGRESS DUE DATE IS NON-ZERO,\
  73.                                         PROGRESS BILLING AMOUNT MUST BE NON-ZERO
  74.  
  75.                                     REMARK    DETERMINE TRANSACTION'S FATE
  76. 4200    X2=1:X3=1:X4=4:X2$="ENTER ACTION: 1=RECORD, 2=MORE CHANGES, 3=CANCEL,"
  77.     X2$=X2$+" 4=VOID TRANS":GOSUB 665
  78.     RETURN 
  79.  
  80. 4220    FOR I%=1 TO 2                            REMARK    FLASH NASTY MESSAGE ON SCREEN
  81.     X2$="DATE OR AMOUNT FIELD MISSING OR NEGATIVE BALANCE":GOSUB 615
  82.     NEXT I%
  83.     X0=2
  84.     RETURN 
  85.  
  86.  
  87. 4320    FOR I%=I1% TO I2%                        REMARK    DISPLAY TRANSACTION FIELDS I1% THROUGH I2%
  88.     X1=50:GOSUB 215
  89.     PRINT USING MASKB$;D(I%)
  90.     NEXT I%
  91.     RETURN 
  92.  
  93. 5000    GOSUB 5260                            REMARK    DISPLAY CUSTOMER DATA
  94.     X1=265:GOSUB 210
  95.     PRINT W1$;TAB(12);M$(2);TAB(40);
  96.     X1=12:GOSUB 215
  97.     PRINT USING MASKA$;L1
  98.     RETURN 
  99.  
  100.                                     REMARK    BRANCH TO ENTER VALUE FOR FIELD "F%"
  101. 5020    ON F% GOTO 5040,5060,5080,5100,5120,5140,5160,5180,5200,5220,5240,5250
  102.  
  103. 5040    RETURN                                REMARK    TRANSACTION TYPE CAN'T CHANGE 
  104.  
  105. 5060    X1=403:X2=12:X3=0:X4=0:GOSUB 345                REMARK    ENTER CUSTOMER ORDER NUMBER
  106.     L1$=X0$
  107.     RETURN 
  108.  
  109. 5080    X1=462:X2=6:X3=0:X4=999999:GOSUB 345                REMARK    ENTER JOB NUMBER
  110.     L2=X0
  111.     RETURN 
  112.  
  113. 5100    X1=526:X2=6:X3=0:X4=0:GOSUB 345                    REMARK    ENTER JOB DESCRIPTION
  114.     L2$=X0$
  115.     RETURN 
  116.  
  117. 5120    X1=590:GOSUB .673                        REMARK    ENTER BILL DATE
  118.     L4(1)=X0
  119.     RETURN 
  120.  
  121. 5140    X1=652:X2=1:X3=0:X4=9:GOSUB 345                    REMARK    ENTER TAX CODE
  122.     L6=X0
  123.     GOSUB 5400                            REMARK    DISPLAY TAX CODE DESCRIPTION AND RATE
  124.     D(13)=0
  125.     IF L6>0 THEN 5420
  126.     X1=718:X2=8:X3=-99999.9:X4=99999.9:GOSUB 345            REMARK    FOR TAX CODE ZERO, ENTER G/L ACCOUNT NUMBER
  127.     D(13)=X0
  128.     RETURN 
  129.  
  130. 5160    X1=787:X2=10:X3=0:X4=9999999.99:GOSUB 345            REMARK    ENTER INVOICE AMOUNT
  131.     D(1)=X0
  132.     RETURN 
  133.  
  134. 5180    X1=851:X2=10:X3=0:X4=9999999.99:GOSUB 345            REMARK    ENTER SHIPPING/TRAVEL AMOUNT
  135.     D(2)=X0
  136.     RETURN 
  137.  
  138. 5200    X1=369:X2=11:X3=-9999999.99:X4=9999999.99:GOSUB 345        REMARK    ENTER INVOICE PAYMENT AMOUNT
  139.     X1=363:GOSUB 210
  140.     D(6)=D(6)-D(5)+ABS(X0)
  141.     D(5)=ABS(X0)
  142.     IF X0>=0 OR B=2 THEN PRINT "     ";:D(12)=0 \
  143.     ELSE PRINT "BY CM";:D(12)=1
  144.     RETURN 
  145.  
  146. 5220    X1=628:GOSUB .673                        REMARK    ENTER PROGRESS DUE DATE
  147.     L4(2)=X0
  148.     RETURN 
  149.  
  150. 5240    X1=690:X2=10:X3=0:X4=9999999.99:GOSUB 345            REMARK    ENTER PROGRESS BILLING AMOUNT
  151.     D(8)=X0
  152.     RETURN 
  153.  
  154. 5250    X1=754:X2=10:X3=0:X4=9999999.99:GOSUB 345            REMARK    ENTER PROGRESS PAYMENT
  155.     D(10)=D(10)-D(9)+X0                        REMARK    ADJUST PAYMENT TOTAL
  156.     D(9)=X0
  157.     RETURN 
  158.  
  159.  
  160. 5260    X1=16:GOSUB 210                            REMARK    DISPLAY TRANSACTION OPERATION DESCRIPTION
  161.     PRINT "FILE MAINTENANCE";
  162.     RETURN 
  163.  
  164.  
  165. 5280    X1=9:GOSUB 215                            REMARK    DISPLAY CURRENT TRANSACTION VALUES
  166.     PRINT B;
  167.     RESTORE
  168.     FOR I%=1 TO B
  169.     READ X0$
  170.     NEXT I%
  171.     PRINT X0$
  172.     X1=20:GOSUB 215
  173.     PRINT L1$
  174.     X1=15:GOSUB 215
  175.     PRINT USING MASKA$;L2
  176.     X1=15:GOSUB 215
  177.     PRINT L2$
  178.     X1=15:GOSUB 215
  179.     X0=L4(1):GOSUB 680.5
  180.     PRINT 
  181.     X1=12:GOSUB 215
  182.     PRINT L6;
  183.     GOSUB 5400
  184.     IF L6=0 THEN X1=15:GOSUB 215:PRINT USING MASKC$;D(13); \
  185.     ELSE GOSUB 5420
  186.     GOSUB 5440
  187.     GOSUB 4060
  188.     PRINT 
  189.     X1=53:GOSUB 215
  190.     X0=L4(2):GOSUB 680.5
  191.     PRINT 
  192.     I1%=8:I2%=11:GOSUB 4320
  193.     RETURN 
  194.  
  195.  
  196. 5400    X1=654:GOSUB 210                        REMARK    DISPLAY TAX CODE DESCRIPTION AND RATE
  197.     PRINT USING MASKD$;R$(L6+1),R1(L6+1)
  198.     RETURN 
  199.  
  200. 5420    X1=718:GOSUB 210                        REMARK    DISPLAY TAX CODE'S G/L ACCOUNT NUMBER
  201.     PRINT USING MASKC$;R2(L6+1);
  202.     RETURN 
  203.  
  204. 5440    FOR I%=1 TO 4                            REMARK    DISPLAY INVOICE AMOUNT, SHIPPING, TAX, AND TOTAL
  205.     PRINT 
  206.     X1=19:GOSUB 215
  207.     PRINT USING MASKB$;D(I%);
  208.     NEXT I%
  209.     RETURN 
  210.  
  211.  
  212.  
  213.                                     REMARK    START OF MAIN PROGRAM
  214. 6000    MASKA$="######"
  215.     MASKB$=" #######.##"
  216.     MASKC$=" #####.#"
  217.     MASKD$="/      / ##.##%"
  218.     OPEN "A/R0F020.DAT" RECL 226 AS 1,"A/R0F110.DAT" RECL 162 AS 2, \
  219.     "A/R0F120.DAT" RECL 226 AS 3,"A/R0F130.DAT" AS 4, \
  220.     "A/R0F030.DAT" AS 5,"CRT" RECL 1100 AS 19
  221.     FILE.NO=4:GOSUB 3.14                        REMARK    RETRIEVE A/R EXTENT INFORMATION
  222.     A1=5:GOSUB 3700                            REMARK    RETRIEVE A/R TAX CODE INFORMATION
  223. 6020    X0=15:GOSUB 260                            REMARK    DISPLAY TRANSACTION ENTRY OPERATION SELECTION MASK
  224.     GOSUB 5260                            REMARK    DISPLAY PROGRAM TITLE
  225. 6040    X2=3:X3=0:X4=999:X2$="ENTER RECORD NO. TO CHANGE (0 TO END)"    REMARK    ENTER NUMBER OF TRANSACTION TO CHANGE
  226.     GOSUB 665
  227.     IF X0=0 THEN 6540                        REMARK    END PROGRAM ON ZERO RECORD NO.
  228.     IF X0>AR.TRANFILE.EXTENT THEN 6040
  229.     FILE.NO=1:REC.NO%=X0:GOSUB 3400                    REMARK    RETRIEVE TRANSACTION DATA
  230.     IF C2>9 THEN X2$="TRANSACTION IS VOID":GOSUB 615:GOTO 6040
  231.     RECORD.COUNT=AR.CUSTFILE.EXTENT
  232.     Y2=2
  233.     XYZ$=W1$+"      "
  234.     K$=LEFT$(XYZ$,6)
  235.     GOSUB 1060                            REMARK    LOCATE CUSTOMER DATA
  236.     IF H=-1 OR VAR1=0 THEN M$(2)="NOT ON CUSTOMER FILE" \
  237.     ELSE Y9=2:X0=L:GOSUB 3225                    REMARK    RETRIEVE CUSTOMER DATA
  238.     GOSUB 5000                            REMARK    DISPLAY CUSTOMER DATA
  239.     GOSUB 5280                            REMARK    DISPLAY TRANSACTION DATA
  240. 6240    IF C2=5 THEN 6260                        REMARK    IF TRANSACTION OPERATION IS DELETE, DON'T ALLOW CHANGES
  241.     X2=2:X3=0:X4=12:X2$="ENTER FIELD TO CHANGE (0=NONE)":GOSUB 665    REMARK    ALLOW CHANGES TO FIELDS
  242.     IF X0=0 THEN 6260
  243.     F%=X0
  244.     IF C2=4 AND F%<>12 THEN 6240
  245.     IF C2=3 AND F%<>9 THEN 6240
  246.     GOSUB 5020                            REMARK    ENTER VALUE FOR CHOSEN FIELD
  247.     IF F%<5 THEN 6240
  248.     GOSUB 4000                            REMARK    COMPUTE SALES TAX AND INVOICE TOTAL
  249.     IF F%>9 THEN GOSUB 4080                        REMARK    COMPUTE PROGRESS BALANCE
  250.     GOTO 6240
  251.  
  252. 6260    GOSUB 4120                            REMARK    CHECK FOR CONSISTENCY
  253.     IF X0=2 THEN 6240                        REMARK    ACTION CODE 2 = MORE CHANGES
  254.     IF X0=3 THEN X2$="LAST CHANGES IGNORED":GOSUB 615:GOTO 6020    REMARK    ACTION CODE 3 = IGNORE CHANGES
  255.     IF X0=4 THEN C2=C2+10: \                    REMARK    ACTION CODE 4 = VOID TRANSACTION
  256.         X2$="LAST TRANSACTION VOIDED": \
  257.         GOSUB 615: GOTO 6360
  258.     IF D(5)=0 OR B>1 THEN D(12)=0                    REMARK    CHECK FOR PAYMENT BY CREDIT MEMO
  259.     X2$="RECORDED":GOSUB 615
  260. 6360    GOSUB 3450                            REMARK    UPDATE TRANSACTION FILE
  261.     GOTO 6020
  262.  
  263.  
  264.                                     REMARK    END PROGRAM AND RELOAD MENU
  265. 6540    PRINT CLEAR.SCREEN$;"A/R TRANSACTION FILE MAINTENANCE LOADING MENU"
  266.     CHAIN"A/P000"
  267.