DataMuseum.dk

Presents historical artifacts from the history of:

Q1 computer

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Q1 computer

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦6e79855fc⟧ Q1_Text, reclen=79

    Length: 11850 (0x2e4a)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »CHKREC_S«

Derivation

└─⟦415b26bc8⟧ Bits:30008568 DDMQ1-0003_Source_For_Q1_Payroll_Package_Diskette_1_1
    └─⟦this⟧ »CHKREC_S« 

Text

/* CHECK RECONCILIATION PROGRAM 03/02/78 */                                    
                                                                               
DCL CHKFILE FILE;                                                              
DCL 1 CHKFILE_REC,                                                             
      2 CHK_NO          FIXED(5),                                              
      2 CHK_AMT         FIXED(7,2),                                            
      2 CHK_DATE,                                                              
        3 CHK_MONTH     FIXED(2),                                              
        3 CHK_DAY       FIXED(2),                                              
        3 CHK_YEAR      FIXED(2),                                              
      2 CHK_E#          FIXED(4),                                              
      2 CHK_RTN         CHAR(1),                                               
      2 RTN_DATE,                                                              
        3 RTN_MONTH     CHAR(2),                                               
        3 RTN_DAY       CHAR(2),                                               
        3 RTN_YEAR      CHAR(2),                                               
      2 CHK_FILL        CHAR(7);                                               
                                                                               
DCL DATE                CHAR(6),                                               
    MONTH               CHAR(2),                                               
    DAY                 CHAR(2),                                               
    YEAR                CHAR(2),                                               
    ANS1                CHAR(1),                                               
    ANS3                CHAR(3),                                               
    ANS5                CHAR(5),                                               
    AMOUNT              FIXED(7,2),                                            
    TOTAL_CHECKS        FIXED(7),                                              
    TOTAL_AMT           FIXED(11,2);                                           
                                                                               
GET_DATE:                                                                      
      PUT FILE(D) SKIP LIST('ENTER TODAY"S DATE(mmddyy):');                    
      GET SKIP LIST(DATE);                                                     
      MONTH = SUBSTR(DATE,1,2);                                                
      DAY   = SUBSTR(DATE,3,2);                                                
      YEAR  = SUBSTR(DATE,5,2);                                                
      PUT FILE(D) EDIT(MONTH)(A)('/')(A)(DAY)(A)('/')(A)(YEAR)                 
      (A)(' OK? ')(A);                                                         
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO GET_DATE;                         
      OPEN CHKFILE;                                                            
                                                                               
OPTIONS:                                                                       
      PUT FILE(D) SKIP EDIT('DO YOU WANT TO')(A(47))                           
          ('1)INPUT RETURNED CHECK NUMBERS')(A(47))                            
          ('2)PRINT OUTSTANDING CHECKS')(A(47))                                
          ('3)ENTER VOIDed CHECK NUMBER(S)')(A(49))                            
          ('ENTER CHOICE : ')(A);                                              
      GET SKIP LIST(ANS1);                                                     
      IF (ANS1 = 'E') THEN GOTO END_OF_PGM;                                    
      IF (ANS1 = '1') ö (ANS1 = '3') THEN GOTO INPUT_CHECKS;                   
      IF (ANS1 = '2') THEN GOTO PRINT_CHECKS;                                  
      GOTO OPTIONS;                                                            
                                                                               
INPUT_CHECKS:                                                                  
      PUT FILE(D) SKIP LIST('CHECK NUMBER:');                                  
IRE:  GET SKIP LIST(ANS5);                                                     
      IF (SUBSTR(ANS5,1,1) = 'E') THEN GOTO OPTIONS;                           
      IF (VERIFY(ANS5,' 0123456789') = 0) THEN DO;                             
         PUT FILE(D) EDIT(ANS5)(A)(' IS INVALID')(A);                          
         GET SKIP LIST('');                                                    
         GOTO INPUT_CHECKS;                                                    
         END;                                                                  
      CHK_NO = ANS5;                                                           
      IF (CHK_NO = 0) THEN GOTO IRE;                                           
      PUT FILE(D) EDIT(CHK_NO)(P'99999')(' OK ? ')(X(47-18),A);                
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'Y') THEN GOTO INPUT_CHECKS;                     
                                                                               
      ON ERROR GOTO NO_CHECK;                                                  
      READ KEY(CHK_NO) FILE(CHKFILE) INTO(CHKFILE_REC);                        
                                                                               
      IF (CHK_RTN = 'Y') THEN DO;                                              
         PUT SKIP EDIT('CHECK #')(A)(CHK_NO)(P'99999')                         
             (' WAS ALREADY INPUT AS RETURNED ON ')(A)(RTN_MONTH)              
             (A)('/')(A)(RTN_DAY)(A)('/')(A)(RTN_YEAR)(A);                     
         GOTO DISCREPANCY;                                                     
         END;                                                                  
      IF (CHK_RTN = 'V') THEN DO;                                              
         PUT SKIP EDIT('CHECK #')(A(7))(CHK_NO)(P'99999')                      
             (' Was Already Input as VOIDED on ')(A)(RTN_MONTH)                
             (A)('/')(A)(RTN_DAY)(A)('/')(A)(RTN_YEAR)(A);                     
         GOTO DISCREPANCY;                                                     
         END;                                                                  
                                                                               
/* ************* SOMEHOW TEST DATE vs RETURN-DATE HERE ************ */         
      IF (ANS1 = '3') THEN PUT FILE(D) SKIP EDIT('* VOID *')(A(8));            
      IF (ANS1 = '1') THEN PUT FILE(D) SKIP EDIT('Returned')(A(8));            
      PUT FILE(D) EDIT(' CHECK#:')(A(8))(CHK_NO)(P'99999')                     
          (' ')(A(26))('Employee#:')(A(10))(CHK_E#)(P'9999')                   
          (' ')(A(33))('AMOUNT   :')(A(10))(CHK_AMT)(P'$$$$9V.99')             
          (' ')(A(29))('CheckDate:')(A(10))(CHK_MONTH)(P'99')                  
          ('/')(A)(CHK_DAY)(P'99')('/')(A)(CHK_YEAR)(P'99')                    
          (' ')(A(29))('OK ? ')(A);                                            
      GET SKIP LIST(ANS3);                                                     
      IF (SUBSTR(ANS3,1,1) ¬= 'N') THEN DO;                                    
/* NUMBER IS THERE & AMOUNTS ARE EQUAL */                                      
          CHK_RTN = 'V';                                                       
         IF (ANS1 = '1') THEN CHK_RTN = 'Y';                                   
         RTN_MONTH = MONTH;                                                    
         RTN_DAY = DAY;                                                        
         RTN_YEAR = YEAR;                                                      
         REWRITE FILE(CHKFILE) FROM(CHKFILE_REC);                              
         GOTO INPUT_CHECKS;                                                    
         END;                                                                  
                                                                               
/* *********** HERE- Answer was NO, Something Amiss *********** */             
DISCREPANCY:                                                                   
      PUT SKIP EDIT('************* CHECK DISCREPANCY ***********')(A);         
      PUT SKIP EDIT('CHECK #:')(A)(CHK_NO)(P'99999')(' Amt:')(A)               
          (CHK_AMT)(P'$$$$9V.99')(' Dated:')(A)(CHK_MONTH)(P'99')              
          ('/')(A)(CHK_DAY)(P'99')('/')(A)(CHK_YEAR)(P'99');                   
      PUT SKIP EDIT('for Employee #:')(A)(CHK_E#)(P'9999')                     
          ('  Return Date:')(A)(MONTH)(A)('/')(A)(DAY)(A)('/')                 
          (A)(YEAR)(A);                                                        
      PUT SKIP(3);                                                             
      GOTO OPTIONS;                                                            
                                                                               
NO_CHECK:                                                                      
      PUT SKIP EDIT('CHECK #')(A)(CHK_NO)(P'99999')                            
      (' IS NOT ON THE CHECK FILE')(A);                                        
      GOTO INPUT_CHECKS;                                                       
                                                                               
PRINT_CHECKS:                                                                  
      UNSPEC(CHKFILE) = 0;                                                     
      TOTAL_CHECKS = 0;                                                        
      TOTAL_AMT = 0;                                                           
      PUT SKIP EDIT('OUTSTANDING CHECKS')(X(27),A);                            
      PUT SKIP EDIT('AS OF ')(X(29),A)(MONTH)(A)('/')(A)                       
      (DAY)(A)('/')(A)(YEAR)(A);                                               
      PUT SKIP(2) EDIT('CHECK')(X(15),A)('AMOUNT')(X(12),A)                    
      ('DATE')(X(5),A)('EMPLOYEE')(X(5),A);                                    
                                                                               
READ_FILE:                                                                     
      ON ENDFILE GOTO EOP;                                                     
      READ FILE(CHKFILE) INTO(CHKFILE_REC);                                    
      IF (CHK_RTN = 'Y') ö (CHK_RTN = 'V') THEN GOTO READ_FILE;                
      TOTAL_CHECKS = TOTAL_CHECKS + 1;                                         
      TOTAL_AMT    = TOTAL_AMT    + CHK_AMT;                                   
      PUT SKIP(3) EDIT(CHK_NO)(X(15),P'99999')(CHK_AMT)                        
      (X(7),P'---,--9V.99')(CHK_MONTH)(X(3),P'99')('/')(A)                     
      (CHK_DAY)(P'99')('/')(A)(CHK_YEAR)(P'99')(CHK_E#)(X(7),P'9999');         
      GOTO READ_FILE;                                                          
                                                                               
EOP:  PUT SKIP(2) EDIT('* TOTALS *')(A)(TOTAL_CHECKS)(X(1),P'Z,ZZZ,ZZ9')       
      (TOTAL_AMT)(X(2),P'----,---,--9V.99');                                   
      PUT SKIP;                                                                
      GOTO OPTIONS;                                                            
                                                                               
END_OF_PGM:                                                                    
      END;