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

⟦38d8d45f3⟧ Q1_Text, reclen=79

    Length: 11929 (0x2e99)
    Types: Q1_Text, reclen=79
    Notes: q1file
    Names: »INVO«

Derivation

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

Text

DCL 1 ORDER,   /*VERSION 9/19/77*/                                             
    2 ORDERDATE CHAR(6),                                                       
    2 INV# CHAR(5),                                                            
    2 CUS# CHAR(15),                                                           
    2 SALESMEN# CHAR(6),                                                       
    2 SOLDTO FIXED(5),                                                         
    2 SOLDTONAME CHAR(30),                                                     
    2 SOLDTOADD1 CHAR(25),                                                     
    2 SOLDTOADD2 CHAR(25),                                                     
    2 SHIPTO FIXED(5),                                                         
    2 SHIPTONAME CHAR(30),                                                     
    2 SHIPTOADD1 CHAR(25),                                                     
    2 SHIPTOADD2 CHAR(25),                                                     
    2 USER FIXED(5),                                                           
    2 USERNAME CHAR(30),                                                       
    2 PART# CHAR(8),                                                           
    2 DES CHAR(25),                                                            
    2 ORDERQTY FIXED(6),                                                       
    2 DELIVER CHAR(6),                                                         
    2 JOB CHAR(1),                                                             
    2 INTER CHAR(1),                                                           
    2 PROOF CHAR(1),                                                           
    2 PRTO CHAR(25),                                                           
    2 TERM CHAR(1),                                                            
    2 COMMENT CHAR(25),                                                        
    2 OVERPRICE FIXED(5,2),                                                    
    2 DISPRICE FIXED(5,2),                                                     
    2 RUNPRICE FIXED(5,2),                                                     
    2 DISRUN FIXED(5,2),                                                       
    2 ORUNITQTY BINARY,                                                        
    2 ORTAX BINARY,                                                            
    2 BSUP FIXED(1),                                                           
    2 STARTNUM CHAR(8);                                                        
/* COMMENT=ZZZZZ FOR CLOSED ORDER     COMMENT=YYYYY FOR BACK ORDER  */         
DCL 1 TAXST,                                                                   
    2 TAXCODE BINARY,                                                          
    2 TAXPER FIXED(2),                                                         
    2 TAXAMOUNT FIXED(9,2);                                                    
DCL TAX BINARY,A CHAR(1),CHSOLD FIXED(6,1),BINV# CHAR(5),BTERM CHAR(1);        
DCL INORDERDATE CHAR(6),GTOTAL FIXED(11,2),DPART# CHAR(8),BCOMMENT CHAR(25);   
DCL SQ FIXED(6),CS CHAR(1),BSQ FIXED(6),NEWDISCMESG CHAR(1),DISCDATE CHAR(8);  
DCL DISCOUNT FIXED(4,2),TAXCAL FIXED(11,2),KQ FIXED(12,4);DCL BORDATE CHAR(8); 
DCL MMM CHAR(3),DDD CHAR(2),YYY CHAR(2),MM CHAR(2),DD CHAR(2),YY CHAR(2);      
DCL COFILE FILE,TAXFILE FILE;DCL TAXREW FIXED(1);                              
BP: PROCEDURE;CALL OUTPUT(1,2);CALL OUTPUT(1,6);RETURN;END;                    
  OPEN COFILE;OPEN TAXFILE;                                                    
AGDATE:PUT FILE(D)SKIP EDIT('ENTER TODAY''S DATE : ')(A(22));                  
  GET SKIP LIST(ORDERDATE);INORDERDATE=ORDERDATE;                              
  MM=SUBSTR(ORDERDATE,1,2);DD=SUBSTR(ORDERDATE,3,2);                           
  YY=SUBSTR(ORDERDATE,5,2);BORDATE=MM CAT '/' CAT DD CAT '/' CAT YY;           
  PUT FILE(D)LIST(BORDATE,' ? ');GET SKIP LIST(A);IF A¬='Y'THEN GOTO AGDATE;   
INVOICE:N=13;GTOTAL=0;PUT FILE(D)SKIP LIST('ENTER ORDER # : ');                
  GET SKIP LIST(INV#);IF INV#='END  ' THEN STOP;                               
  PUT FILE(D)SKIP LIST(INV#,' ? ');GET SKIP LIST(A);IF A¬='Y'THEN GOTO INVOICE;
   ON ERROR GOTO MESG2;                                                        
  READ KEY(INV#)FILE(COFILE)INTO(ORDER)KEYTO(INV#);CHSOLD=SOLDTO;TAX=ORTAX;    
PUT SKIP EDIT(SOLDTONAME)(X(6),A(54))(SHIPTONAME)(A(30));                      
PUT SKIP EDIT(SOLDTOADD1)(X(6),A(54))(SHIPTOADD1)(A(30));                      
PUT SKIP EDIT(SOLDTOADD2)(X(6),A(54))(SHIPTOADD2)(A(30));                      
PUT SKIP EDIT('(')(X(6),A(2))(SOLDTO)(P'99999')(' )')(A(47))                   
  ('(')(A(2))(SHIPTO)(P'99999')(' )')(A(2));                                   
  IF TERM='1'THEN DO;PUT SKIP (4)EDIT('NET 10 EOM')(X(13),A(24));END;          
  IF TERM='2' THEN DO;PUT SKIP(4) EDIT('3 % 10 EOM')(X(13),A(24));END;         
BTERM=TERM;                                                                    
  PUT EDIT(SALESMEN#)(A(12))(CUS#)(A(18))(INV#)(A(5));                         
  IF COMMENT='YYYYY'THEN PUT EDIT('BO')(A(12));ELSE PUT EDIT(' ')(A(12));      
 ORDERDATE=INORDERDATE;                                                        
  MM=SUBSTR(ORDERDATE,1,2);DD=SUBSTR(ORDERDATE,3,2);YY=SUBSTR(ORDERDATE,5,2);  
  BORDATE=MM CAT '/' CAT DD CAT '/' CAT YY;PUT EDIT(BORDATE)(A(8));            
PUT SKIP(4);                                                                   
 UNSPEC(COFILE)=UNSPEC(COFILE)-1;                                              
  BINV#=INV#;                                                                  
INVREAD: ON ENDFILE GOTO THINV;                                                
  READ FILE(COFILE)INTO(ORDER);IF COMMENT='ZZZZZ' THEN GOTO INVREAD;           
CHSOLD=SOLDTO;IF INV#¬=BINV# THEN DO;UNSPEC(COFILE)=UNSPEC(COFILE)-1;          
  GOTO THINV;END;                                                              
IMLN: GOTO SPCH;                                                               
SKAG:PUT EDIT(OVERPRICE)(X(6),P'ZZZV.99');                                     
  IF OVERPRICE=DISPRICE  THEN DO;PUT EDIT(' ')(A(8));                          
  END; IF DISPRICE¬=OVERPRICE THEN DO;NEWDISCMESG='0';                         
  IF DISPRICE/OVERPRICE<.59 THEN NEWDISCMESG='1';                              
  IF DISPRICE/OVERPRICE<.49 THEN NEWDISCMESG='2';OVERPRICE=DISPRICE;           
  PUT EDIT(DISPRICE)(P'ZZZZV.99',X(1));END;                                    
    IF SUBSTR(PART#,1,2)¬='SP' THEN PUT EDIT(ORUNITQTY)(P'ZZZZZ9',X(3));       
IF SUBSTR(PART#,1,2)='SP'THEN  PUT LIST('  FLAT   ');                          
  KQ=SQ*(OVERPRICE/ORUNITQTY);                                                 
    IF SUBSTR(PART#,1,2)='SP' THEN KQ=SQ*OVERPRICE;                            
PUT EDIT(KQ)(P'ZZZZV.99');                                                     
    GTOTAL=GTOTAL+(KQ);                                                        
V: IF SUBSTR(PART#,1,2)='SP' THEN DO;IF RUNPRICE¬=0 THEN DO;                   
   PUT SKIP EDIT('RUNNING CHARGE')(X(34),A(27))(RUNPRICE)(P'ZZZV.99');N=N-1;   
  IF RUNPRICE=DISRUN THEN DO;PUT EDIT (' ')(A(9));END;                         
  IF DISRUN¬=RUNPRICE THEN DO;                                                 
     PUT EDIT(DISRUN)(P'ZZZZV.99',X(2));END;                                   
     PUT EDIT('    M   ')(A(8));                                               
    PUT EDIT((BSQ/ORUNITQTY)*DISRUN)(P'ZZZZV.99');                             
  GTOTAL=GTOTAL+((BSQ/ORUNITQTY)*DISRUN);                                      
  END;END;                                                                     
IF COMMENT='YYYYY'THEN ORDERQTY=ORDERQTY - SQ;                                 
REWRITE FILE(COFILE)FROM(ORDER);GOTO INVREAD;                                  
SPCH: DPART#=PART#;IF SUBSTR(PART#,1,2)¬='SP' & BSUP ¬=0 THEN DO;              
NOCARB:  DO I =((BSUP)+1) TO 8;SUBSTR(PART#,I,1)=' ';END;END;                  
  PUT FILE(D)SKIP EDIT(ORDERQTY)(P'ZZZZZ9',X(3))                               
  (PART#)(A(66))('QUANTITY SHIPPED :')(A(18));;                                
GET SKIP LIST(SQ);PUT SKIP EDIT(SQ)(P'ZZZZZ9')(ORDERQTY)(X(4),P'ZZZZZ9',X(3))  
  (PART#)(A(10))(DES)(A(27));                                                  
NOROLL:  PART#=DPART#;                                                         
  N=N-1;BCOMMENT=COMMENT;COMMENT='ZZZZZ';                                      
   IF SQ< ORDERQTY THEN DO;BACKAG: PUT FILE(D)SKIP LIST('BACK ORDER ? ');      
   GET SKIP LIST(A);IF A='Y' THEN DO;COMMENT='YYYYY';GOTO BACKOK;END;          
    IF A¬='N' THEN GOTO BACKAG;END;                                            
BACKOK: IF SUBSTR(PART#,1,2)¬='SP' THEN BSQ=SQ;                                
IMP1: GOTO SKAG;                                                               
THINV: IF SUBSTR(INV#,1,1)='P' THEN NEWDISCMESG='0';                           
  IF NEWDISCMESG¬='0'& BTERM='2'THEN DO;                                       
  PUT SKIP(2)EDIT('TOTAL FORMS      : ')(X(29),A(19));                         
  IF NEWDISCMESG='1'THEN PUT LIST('1000 & OVER');ELSE PUT LIST('3000 & OVER'); 
  PUT SKIP EDIT('MINIMUM          : 500 EACH FORM')(X(29),A(32));              
  PUT SKIP EDIT('SPECIAL DISCOUNT : ')(X(29),A(19));                           
  IF NEWDISCMESG='1'THEN PUT LIST('50%');ELSE PUT LIST('(50+5)%');             
  N=N-4;END;NEWDISCMESG='0';PUT SKIP(N-2)EDIT(BCOMMENT)(X(29),A(26));          
IF BTERM='2'THEN DO;                                                           
MMM=MM+101;IF DD>24 THEN MMM=MMM+1;DDD=10;YYY=YY;IF SUBSTR(MMM,2,2)>12 THEN DO;
  SUBSTR(MMM,2,2)=SUBSTR(MMM,2,2)-12;                                          
  YYY=YYY+1;END;IF SUBSTR(MMM,2,1)='0' THEN SUBSTR(MMM,2,2)=SUBSTR(MMM,3,1);   
  DISCDATE=SUBSTR(MMM,2,2) CAT '/' CAT DDD CAT '/' CAT YYY;                    
  DISCOUNT=GTOTAL*.03;                                                         
  PUT SKIP(2)EDIT('HERE''S EXTRA PROFIT FOR YOU!')(X(14),A(41));END;           
  ELSE PUT SKIP(2)EDIT('')(A(55));                                             
  PUT EDIT(GTOTAL)(X(22),P'ZZZ,ZZZ,ZZZV.99');                                  
   ON ERROR GOTO MESG4;                                                        
   READ KEY(TAX)FILE(TAXFILE)INTO(TAXST);                                      
  TAXREW=1;                                                                    
TAXAG:IF BTERM='2' THEN DO;PUT SKIP EDIT(' YOU MAY DEDUCT $')(A(17))           
  (DISCOUNT)(P'ZZV.99')(' FOR PAYMENT RECEIVED BY ')(A(25))(DISCDATE)(A(8));;  
  END;ELSE PUT SKIP EDIT('')(A(55));TAXCAL=(GTOTAL*TAXPER)/100;                
  TAXAMOUNT=TAXAMOUNT+TAXCAL;PUT EDIT(TAXCAL)(X(26),P'ZZZ,ZZZV.99');           
  PUT FILE(D)SKIP LIST('DELIVERY CHARGE : ');GET SKIP LIST(CHAMOUNT);          
  PUT SKIP EDIT(CHAMOUNT)(X(81),P'ZZZ,ZZZV.99');GTOTAL=GTOTAL+CHAMOUNT+TAXCAL; 
  PUT FILE(D)SKIP LIST('OTHER CHARGE : ');GET SKIP LIST(CHAMOUNT);             
  PUT SKIP EDIT(CHAMOUNT)(X(81),P'ZZZ,ZZZV.99');GTOTAL=GTOTAL+CHAMOUNT;        
   PUT SKIP EDIT(GTOTAL)(X(77),P'ZZZ,ZZZ,ZZZV.99');GTOTAL=0;                   
  IF TAXREW=0 THEN GOTO PRDEL;                                                 
  REWRITE FILE(TAXFILE)FROM(TAXST);                                            
PRDEL: PUT SKIP(13);GOTO INVOICE;                                              
MESG2: CALL BP;PUT FILE(D)SKIP LIST('SORRY WRONG INV# ');GET SKIP LIST('');    
  GOTO INVOICE;                                                                
MESG4: CALL BP;PUT FILE(D)SKIP LIST('NO SUCH TAX CODE ! ');GET SKIP LIST('');  
    PUT FILE(D)SKIP LIST('ENTER TAX % : ');GET SKIP LIST(TAXPER);GOTO TAXAG;   
  TAXREW=0;                                                                    
END;