home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / dbbooks.zip / CHECKS.CMD < prev    next >
OS/2 REXX Batch file  |  1987-02-14  |  3KB  |  118 lines

  1. ************************************ CHECKS.CMD
  2. **************** Write checks.
  3. ERASE
  4. SET TALK OFF
  5. ? "Preparing checks file"
  6. ?
  7. ? "Load checks into printer"
  8.  
  9. ***************** Save existing memory variables to THOUGHT,
  10. ***************** and bring in English-equivalent variables.
  11. SAVE TO THOUGHT
  12. RESTORE FROM ENGLISH
  13.  
  14. *************** Create little file of checks to be written.
  15. USE TRANS INDEX ACCT
  16. COPY TO TEMP FOR CHECK:NO>0 .AND. .NOT. WRITTEN
  17. USE TEMP
  18. INDEX ON CHECK:NO TO CHECKNOS
  19. GO TOP
  20. ? "First check to be printed will be ",CHECK:NO 
  21. ?
  22. ? "Press any key to begin writing checks"
  23. WAIT
  24.  
  25. ERASE
  26. *SET PRINT ON
  27. DO WHILE .NOT. EOF
  28.  
  29.    ************ Translate AMOUNT to English.
  30.    STORE 1 TO COUNTER,START
  31.    STORE STR(AMOUNT,9,2) TO STRING
  32.  
  33.    ****************************** Loop through thousands and hundreds. 
  34.    DO WHILE COUNTER < 3
  35.  
  36.       ************************** Split out hundreds, tens, and ones.
  37.       STORE $(STRING,START,3) TO CHUNK
  38.       STORE $(CHUNK,1,1) TO HUN
  39.       STORE $(CHUNK,2,2) TO TEN
  40.       STORE $(CHUNK,3,1) TO ONE
  41.  
  42.       ********************* Handle hundreds.
  43.       IF VAL(CHUNK) > 99
  44.          STORE ENGLISH + U&HUN + ' HUNDRED ' TO ENGLISH
  45.       ENDIF (chunk > 99)
  46.  
  47.       ********************* Handle second 2 digits.
  48.       STORE VAL(TEN) TO T
  49.       IF T > 0
  50.  
  51.         DO CASE
  52.  
  53.          ********** Case 1: Handle teens or even tens.
  54.          CASE (INT(T/10.0)=T/10.0) .OR. (T>9 .AND. T<20)
  55.               STORE ENGLISH + U&TEN TO ENGLISH
  56.  
  57.          ********** Case 2: Handle greater than 10 but not evenly divisible.
  58.          CASE T > 9 .AND. (INT(T/10.0)#T/10.0)
  59.               STORE $(TEN,1,1) +'0' TO TEN
  60.               STORE ENGLISH + U&TEN+' '+U&ONE TO ENGLISH
  61.  
  62.          ********** Case 3: Handle less than 10.
  63.          CASE T < 10
  64.               STORE ENGLISH + U&ONE TO ENGLISH
  65.  
  66.       ENDCASE
  67.  
  68.      ENDIF (T > 0)
  69.  
  70.      **************** Add "Thousand" if necessary.
  71.      IF AMOUNT > 999.99 .AND. COUNTER = 1
  72.         STORE ENGLISH+' THOUSAND ' TO ENGLISH
  73.      ENDIF (need to add "thousand")
  74.  
  75.      **************** Prepare for pass through hundreds.
  76.      STORE 4 TO START
  77.      STORE COUNTER+1 TO COUNTER
  78.  
  79.    ENDDO (while counter < 3.) 
  80.  
  81.    ***************** Tack on cents.
  82.    IF INT(AMOUNT) > 0    
  83.       STORE ENGLISH + " AND " TO ENGLISH
  84.    ENDIF
  85.  
  86.    STORE ENGLISH + $(STRING,8,2)+"/100" TO ENGLISH
  87.  
  88.    ? "                          ",DATE
  89.    ?
  90.    ? "   ",TO:WHOM,"     ",AMOUNT
  91.    ?
  92.    ? "  ",ENGLISH
  93.    ?
  94.    ?
  95.    ?
  96.    ?
  97.    ?
  98.    SKIP
  99.    STORE " " TO ENGLISH
  100. ENDDO   
  101. SET PRINT OFF
  102. ************************ Flag checks as written in TRANS
  103. USE TRANS
  104. REPLACE ALL WRITTEN WITH Y FOR CHECK:NO>0
  105. USE
  106.  
  107. ***************** Get rid of "English" memory
  108. ***************** variables, and bring back originals.
  109. RELEASE ALL
  110. RESTORE FROM THOUGHT
  111.  
  112. RETURN
  113.  
  114.  
  115.  
  116.