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

⟦25084029b⟧ Q1_Text, reclen=79

    Length: 12008 (0x2ee8)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »COLINVPR«

Derivation

└─⟦dbbef6eca⟧ Bits:30008596 DDMQ1-0028_DEMONSTRATION_DISK_LMC_SOURCE_Sept_77
    └─⟦this⟧ »COLINVPR« 

Text

/* THIS IS THE SOURCE LISTING FOR CREATING RECORDS IN THE MATERIAL MASTER FILE 
COLONIAL SYSTEMS VERSION 07/27/77 */                                           
DCL   1 MATERIAL,                                                              
      2 PART#  CHAR(8),                                                        
      2 DESCRIPT   CHAR(25),                                                   
      2 STOCK_ON_HAND   FIXED (6),                                             
      2 FSCH(5) FIXED(5),                                                      
      2 DEALPRICE(5) FIXED(5,2),                                               
      2 DIRPRICE(5)FIXED(5,2),                                                 
      2 DIS FIXED(2),                                                          
      2 UNITQTY BINARY,2 VAL FIXED(6,2),                                       
      2 LOCATION   CHAR(4),                                                    
      2 LASTDATE CHAR(6),                                                      
      2 LDATE CHAR(6),                                                         
      2 AM1 FIXED(6),                                                          
      2 AM2 FIXED(6),                                                          
      2 LEVEL FIXED(7);                                                        
DCL   MG CHAR(2), DG CHAR(2), YG CHAR(2),KSTOCK FIXED(7);                      
DCL   A CHAR(1),Y CHAR(2), X CHAR(5), XG CHAR(4),XB BINARY,TODATE CHAR(6);     
DCL  NPART# CHAR(8),MM CHAR(2),DD CHAR(2),YY CHAR(2),TTDATE CHAR(8);           
DCL   OLDPART CHAR (8), VALUE FIXED(8,2), SUM FIXED (10,2);                    
DCL   BL CHAR(1) INITIAL (' ');                                                
DCL   SUBT FIXED(6), TOTAL FIXED(6), SUBTL FIXED(6);                           
DCL INVFILE FILE;                                                              
DCL  SY CHAR(2), G CHAR(5);                                                    
START:                                                                         
       PUT FILE (DISPLAY) SKIP LIST('THIS IS A PROGRAM TO MAINTAIN THE    ');  
    PUT FILE(D)EDIT('COLONIAL SYSTEMS INVENTORY FILE ')(A(37))                 
    ('DO YOU WANT TO (1) PRINT  ')(A(37))                                      
    ('(2) CHANGE OR (3) INQUIRE THIS MASTER FILE ?')(A(37));                   
      GET SKIP LIST (A);OPEN INVFILE;                                          
      PUT FILE (DISPLAY) SKIP LIST('');                                        
      IF (A='1') THEN GOTO PRINT;                                              
      IF (A='2') THEN GOTO CHANGE;                                             
     IF (A='3') THEN GOTO ENQUIRE;IF A='E' THEN STOP;GOTO START;               
ADD:  PUT FILE (DISPLAY) SKIP LIST ('PART#     : ');OPEN INVFILE;              
  GET SKIP LIST(PART#);IF PART#='END     'THEN GOTO START;                     
  PUT FILE(D)EDIT(PART#)(A(25));                                               
      PUT FILE (DISPLAY) LIST('DESCRIP   : ');                                 
      GET SKIP LIST (DESCRIPT);                                                
       PUT FILE (DISPLAY) LIST (DESCRIPT);                                     
      PUT FILE (DISPLAY) LIST ('LOCATION  : ');                                
      GET SKIP LIST (LOCATION);                                                
      PUT FILE (DISPLAY) EDIT (LOCATION)(A(25));                               
      PUT FILE (DISPLAY) LIST ('STOCK QTY : ');GET SKIP LIST (STOCK_ON_HAND);  
      PUT FILE (DISPLAY) EDIT (STOCK_ON_HAND) (P 'ZZ,ZZ9');                    
      PUT FILE (DISPLAY) LIST ('                   ');                         
      PUT FILE (DISPLAY) LIST ('IS THE ABOVE INFORMATION CORRECT? ');          
      GET SKIP LIST (A);                                                       
IF (A='Y') THEN DO;CALL SEOF (INVFILE);WRITE FILE(INVFILE)FROM(MATERIAL);      
  CLOSE INVFILE;GOTO ADD;END;                                                  
      PUT FILE (DISPLAY) SKIP LIST('PRESS RETURN AND TRY AGAIN !         ');   
      GET SKIP LIST('');GOTO ADD;                                              
CHANGE: PUT FILE (DISPLAY) SKIP LIST ('DO YOU WANT TO (1)DELETE , (2)ADD ');   
      PUT FILE (DISPLAY) LIST (' OR (3)MODIFY ?');                             
      GET SKIP LIST (A);                                                       
      IF (A='1') THEN GOTO DELETE;                                             
      IF (A='2') THEN GOTO ADD;                                                
      IF (A='3') THEN GOTO MODIFY; IF A='E' THEN GOTO START;                   
DELETE: PUT FILE (DISPLAY)SKIP LIST ('PART#: ');                               
     GET SKIP LIST(PART#);IF PART#='END     ' THEN GOTO START;                 
    PUT FILE(D)LIST(PART#,' DELETE ? ');GET SKIP LIST(A);                      
     IF A¬='Y' THEN DO;PUT FILE(D)SKIP LIST('WRONG ENTRY ! TRY AGAIN. ');      
    GET SKIP LIST('');GOTO DELETE;END;                                         
      ON ERROR GOTO MESG;READ KEY(PART#)FILE(INVFILE) INTO (MATERIAL);         
      PART#='ZZZZZZZZ';                                                        
STORE: REWRITE FILE (INVFILE) FROM (MATERIAL); GOTO DELETE;                    
MODIFY: PUT FILE (DISPLAY) SKIP LIST ('PART#: ');                              
      GET SKIP LIST (PART#);OLDPART=PART#;                                     
      PUT FILE (DISPLAY) SKIP LIST ('OLD PART# : ');                           
      PUT FILE (DISPLAY) EDIT (PART#)(A(25));                                  
      PUT FILE (DISPLAY) LIST ('NEW PART# : ');                                
      GET SKIP LIST (PART#);                                                   
      NPART#=PART#;                                                            
      IF (PART#='END     ') THEN GOTO START;                                   
    ON ERROR GOTO MESG;READ KEY(PART#) FILE (INVFILE) INTO (MATERIAL);         
      PUT FILE (DISPLAY) EDIT (PART#)(A(25));                                  
      PART#=NPART#;                                                            
      PUT FILE (DISPLAY) LIST ('NEW DES   : ');                                
      GET SKIP LIST (DESCRIPT);                                                
      PUT FILE (DISPLAY) LIST (DESCRIPT);                                      
      PUT FILE (DISPLAY) LIST ('NEW LOCAT : ');                                
      GET SKIP LIST (LOCATION);                                                
       PUT FILE (DISPLAY) EDIT (LOCATION)(A(25));                              
      PUT FILE (DISPLAY) LIST ('NEW ST QTY: ');                                
      GET SKIP LIST (STOCK_ON_HAND);                                           
      PUT FILE (DISPLAY) EDIT (STOCK_ON_HAND) (P 'ZZ,ZZ9');                    
      PUT FILE (DISPLAY) LIST ('                   ');                         
      PUT FILE (DISPLAY) LIST ('IS THE ABOVE INFORMATION CORRECT? ');          
      GET SKIP LIST (A);                                                       
      IF (A='Y') THEN GO TO STORE;                                             
      PUT FILE(D)SKIP LIST('PRESS RETURN AND TRY AGAIN ! ');GET SKIP LIST(''); 
    GOTO START;                                                                
ENQUIRE: PUT FILE (DISPLAY) SKIP LIST ('PART# TO BE INQUIRED ? ');             
      GET SKIP LIST (PART#);                                                   
      ON ERROR GOTO MESG;READ KEY(PART#) FILE (INVFILE) INTO (MATERIAL);       
      PUT FILE (DISPLAY) SKIP LIST ('PART#    : ');                            
      PUT FILE (DISPLAY) EDIT (PART#)(A(26));                                  
      PUT FILE (DISPLAY) LIST ('DESCRIPT : ');                                 
      PUT FILE (DISPLAY) EDIT (DESCRIPT)(A(26));                               
 PUT FILE (DISPLAY) LIST ('LOCATION : ');PUT FILE (DISPLAY) LIST (LOCATION);   
      PUT FILE (DISPLAY) LIST ('                      ');                      
      PUT FILE (DISPLAY) LIST ('STOCK AMT: ');                                 
      PUT FILE (DISPLAY) EDIT (STOCK_ON_HAND) (P 'ZZZ,ZZ9');                   
      PUT FILE (DISPLAY) LIST ('                   ');                         
      GET SKIP LIST (''); GOTO START;                                          
MESG: PUT FILE(D)SKIP LIST('WRONG PART # RETURN AND TRY AGAIN ! ');            
    GET SKIP LIST('');GOTO START;                                              
PRINT: MMM=0;TVAL =0;                                                          
      PUT FILE (DISPLAY) SKIP EDIT ('(1) DETAILED INVENTORY LISTING ')(A(37))  
('(2) INVENTORY STATUS REPORT')(A(37))('(3) REORDER EXCEPTION REPORT')(A(37)); 
      GET SKIP LIST (A);IF A='E' THEN GOTO START;                              
      IF (A='2')ö(A='3') THEN MMM = 1;                                         
      IF(VERIFY(A,'123E')=0)THEN GOTO PRINT;                                   
      PUT FILE (DISPLAY)SKIP LIST('TODAY''S DATE:  ');GET SKIP LIST(TODATE);   
     PUT FILE(DISPLAY)SKIP LIST('ARRANGE PAPER PLEASE! ');GET SKIP LIST('');   
      PUT SKIP LIST ('COLONIAL SYSTEMS STOCK STATUS REPORT');                  
MM=SUBSTR(TODATE,1,2);DD=SUBSTR(TODATE,3,2);YY=SUBSTR(TODATE,5,2);             
TTDATE=MM CAT '/' CAT DD CAT '/' CAT YY;                                       
PUT SKIP (2) LIST (TTDATE);                                                    
PUT SKIP(2) LIST('PART#           DESCRIPTION                  ST QTY ');      
IF MMM¬=1 THEN DO;                                                             
PUT LIST(' UNIT VALUE TOTAL VALUE');  END;                                     
PUT LIST('        LAST PULL  ');IF MMM=1 THEN DO;                              
PUT LIST('     MAX_LEVEL       RE-ORDER LEVEL      RE-ORDER QTY');END;         
  IF MMM¬=1 THEN DO; PUT EDIT('PRICE SCHEDULE')(X(11),A(26))                   
  ('UNIT')(A(6))('DISCOUNT')(A(8));END;                                        
PP: ON ENDFILE GOTO DONE;READ FILE (INVFILE) INTO (MATERIAL);                  
   IF PART#='ZZZZZZZZ' THEN GOTO PP;                                           
   IF A='3' THEN DO;IF (LEVEL/3)>STOCK_ON_HAND THEN GOTO PPK;GOTO PP;END;      
PPK: PUT SKIP EDIT (PART#)(A(11))                                              
      (DESCRIPT)(A(26))(LOCATION) (A(7));                                      
     PUT EDIT(STOCK_ON_HAND)(P'ZZZ,ZZ9',X(1));                                 
IF MMM¬=1 THEN DO;                                                             
PUT EDIT(VAL)(X(2),P'Z,ZZZV.99');                                              
PUT EDIT((VAL*STOCK_ON_HAND)/UNITQTY)(X(2),P'ZZZ,ZZZV.99',X(2));               
TVAL=TVAL+((VAL*STOCK_ON_HAND)/UNITQTY);END;                                   
MM=SUBSTR(LASTDATE,1,2);DD=SUBSTR(LASTDATE,3,2);YY=SUBSTR(LASTDATE,5,2);       
TTDATE=MM CAT '/' CAT DD CAT '/' CAT YY; PUT EDIT(TTDATE)(X(8),A(10));         
 IF MMM=1 THEN DO;PUT EDIT(LEVEL)(X(6),P'ZZZZZZ9',X(11))(LEVEL/3)(P'ZZZZZZ9'); 
   KSTOCK=LEVEL-STOCK_ON_HAND;IF KSTOCK < 0 THEN KSTOCK=0;                     
    PUT EDIT(KSTOCK)(X(12),P'ZZZZZZ9');END;                                    
  IF MMM¬=1 THEN DO;DO I=1 TO 5;PUT EDIT(FSCH(I))(P'ZZZZ9',X(2));END;          
  PUT SKIP EDIT('DEALER PRICE   = ')(X(77),A(18));                             
  DO I =1 TO 5;PUT EDIT(DEALPRICE(I))(P'ZZ9V.99',X(1));END;                    
  PUT EDIT(UNITQTY)(P'ZZZZ9',X(5))(DIS)(P'Z9');                                
  PUT SKIP EDIT('CUSTOMER PRICE = ')(X(77),A(18));                             
  DO I =1 TO 5;PUT EDIT(DIRPRICE(I))(P'ZZ9V.99',X(1));END;                     
  PUT EDIT (UNITQTY)(P'ZZZZ9',X(5))(DIS)(P'Z9');END;GOTO PP;                   
DONE: IF MMM¬=1 THEN DO;                                                       
      PUT SKIP(2)EDIT('GRAND TOTAL= ')(X(52),A)(TVAL)(P'ZZZ,ZZV.99');END;      
    PUT SKIP LIST('');GOTO START;END;