|
DataMuseum.dkPresents historical artifacts from the history of: Q1 computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Q1 computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 12008 (0x2ee8) Types: Q1_Text, reclen=79 Notes: q1file Names: »COLINVPR«
└─⟦dbbef6eca⟧ Bits:30008596 DDMQ1-0028_DEMONSTRATION_DISK_LMC_SOURCE_Sept_77 └─⟦this⟧ »COLINVPR«
/* 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;