DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

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

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦07dad6ccb⟧ TextFile

    Length: 12480 (0x30c0)
    Types: TextFile
    Notes: Mikados_K
    Names: »TOLDPAP.K«

Derivation

└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
    └─⟦this⟧ »TOLDPAP.K« 

Mikados K File

PROGRAM TOLDPAP;
CONST LMARG=9;TOPMARG=4;
 (*$IISFHEAD*)
 KPOST=RECORD
        A:AR;
        NR:ARRAY (1..23) OF INTEGER;
 (*KNR1,KNR2,ANDBETADR,KÆDENR1,KÆDENR2,RESTORDRE,LAND,BETAKODE,LEVKODE,
   RENTKODE,KREDDAGE,ANTFAKT,SIDFAKD1,SIDFAKD2,EMBALLAGE,BRÆKAGE,RABAT,
   EXPORT,RFSALDO,PERTRENT,NPOSTNR1,NPOSTNR2*)
     (* NAVN,UDVNAVN,LEVADR*)NAVN:ARRAY(1..3) OF PACKED ARRAY (1..30) OF CHAR;
        LANDSBY:PACKED ARRAY (1..20) OF CHAR;
        POSTNR:PACKED ARRAY (1..25) OF CHAR;
        TLF:PACKED ARRAY (1..10) OF CHAR;
        SALDOKØB :ARRAY (1..9) OF REAL;
 (*SALDO1-6,ÅRKØB,MÅNKØB,SIDÅRKØB*)
  END;
TOLDPAPPOST=RECORD
   KNR1,KNR2,
   OPRILAND,
   KODE8,KODE9,
   BRUTTOVÆGT,
   SUPPMÆNGDE,
   FAKTNR1,FAKTNR2 :INTEGER;
   TRANSPORTØR,AKOLLI: PACKED ARRAY (1..30) OF CHAR;
   VÆRDI,TOLDPONR: REAL; (*VÆRDI ER FAKTURABELØB NÅR OPRILAND=0, KUN
                           DEN SIDSTE ER =0 *)
   LEVBET: PACKED ARRAY (1..16) OF CHAR (*DITTO(1)'S FØRSTE 16 TEGN *)
END;
TOLDPFILE=FILE OF TOLDPAPPOST;
SORTPOST=RECORD
  OPRILAND,
  SUPPMÆNGDE:INTEGER;
  VÆRDI,
  TOLDPNR:REAL
END;
TOLDPOPOST=RECORD
  A:AR;
  NR1,NR2:INTEGER;
  TEKST:PACKED ARRAY (1..30) OF CHAR
END;
SYSPOST=RECORD
(*DATO1,DATO2,
  UGENR,
  MAXEXC,
  ORDRENR1-2,
  FAKTNR1-2,
  KREDNTNR1-2,
  BILAGSNR1-2,JOURFILNR*) HELTAL: ARRAY (1..24) OF INTEGER;
  KGB:ARRAY (1..5) OF REAL;
  BETADAT:PACKED ARRAY (1..13) OF CHAR;
(*KIKKODE,ÆNDKODE*) KODE:ARRAY (1..2) OF PACKED ARRAY (1..10) OF CHAR
END;
SYSFILE=FILE OF SYSPOST;
KZONE=RECORD
        H:ISFHEAD;
        T:ARRAY(1..918) OF INTEGER
END;
TPZONE=RECORD
         H:ISFHEAD;
         T:ARRAY (1..1000) OF INTEGER
END;
LANDFILE=FILE OF PACKED ARRAY (1..30) OF CHAR;
VAR     FTP,FKUN : ISF;
        SYSFIL:SYSFILE;
        TOLDPHIL:TOLDPFILE;
        LANDFIL:LANDFILE;
        T,T1:TEXT;
        KZ:KZONE;
        TPZ:TPZONE;
        KUNDE:KPOST;
        TOLDPO:TOLDPOPOST;
        FNAVN:STRING(20);
        IER,I,J,M,K,LINE
                        :INTEGER;
        TMÅDE,UDPSTED:ARRAY (1..20) OF PACKED ARRAY (1..30) OF CHAR;
        EFLANDE:ARRAY (1..20) OF INTEGER;
        LINES:ARRAY (1..60) OF SORTPOST;
        HPOST:TOLDPAPPOST;
        BYTPOST:SORTPOST;
        QUQ:^INTEGER;
(*$L-*)
 (*$R-,IIOPEN*)
 (*$IEXCOMCOP*)
 (*$IREADPROC*)
 (*$IFINDPOST*)
 (*$IICLOSE*)
 (*$IPUTGET*)
 (*$R+*)
(*$L+*)
 PROCEDURE ERROR;
 BEGIN
   WRITELN('FEJL I REGISTER ',IER);
   ICLOSE(KZ.H,FKUN);
   ICLOSE(TPZ.H,FTP);
   WRITELN('ICLOSE ',IER);
   I:=I DIV 0
 END;
 
PROCEDURE INIT;
BEGIN
  TMÅDE(1):=   'Dansk skib                  11';
  TMÅDE(2):=   'Udenlandsk skib             15';
  TMÅDE(3):=   'Bane                        20';
  TMÅDE(4):=   'Post                        30';
  TMÅDE(5):=   'Fly                         40';
  TMÅDE(6):=   'Dansk bil                   51';
  TMÅDE(7):=   'Udenlandsk bil              55';
  TMÅDE(8):=   'Anden transportmåde         90';
  FOR I:=9 TO 20 DO
    TMÅDE(I):= '______________________________';
  UDPSTED(1):= '                           010';
  UDPSTED(2):= '                           020';
  UDPSTED(3):= 'Københavns havn            040';
  UDPSTED(4):= 'Københavns frihavn         041';
  UDPSTED(5):= 'Dragør havn                044';
  UDPSTED(6):= 'Københavns lufthavn        050';
  UDPSTED(7):= 'Gedser havn                593';
  UDPSTED(8):= 'Padborg                    650';
  UDPSTED(9):= 'Rødby havn                 730';
  FOR I:=10 TO 20 DO
    UDPSTED(I):='______________________________';
  FOR I:=1 TO 9 DO EFLANDE(I):=I;
  FOR I:=10 TO 20 DO EFLANDE(I):=0
END;
PROCEDURE UDFØRSELSANGIVELSE;
VAR OPLAND,NRIOPLAND:INTEGER;
    KLAND:PACKED ARRAY (1..12) OF CHAR;
PROCEDURE BUND;
BEGIN
    IF (LINE=I) OR (NRIOPLAND=7) OR (NRIOPLAND MOD 2=0) OR
      (OPLAND<>LINES(LINE+1-LINE DIV I).OPRILAND) THEN
    BEGIN
        IF NRIOPLAND MOD 2=1 THEN FOR J:=1 TO 9 DO WRITELN(T);
        FOR J:=1 TO 7 DO WRITELN(T);
        IF HPOST.VÆRDI>700000.0 THEN
          WRITELN(T,' ':LMARG+15,'1')
        ELSE WRITELN(T);
        IF (NRIOPLAND<7) AND (OPLAND=LINES(LINE+1-LINE DIV I).OPRILAND) AND
           (LINE<I) THEN
        BEGIN
          WRITELN(T,' ':LMARG+33,'Tilladelse til anvendelse af A29');
          WRITELN(T,' ':LMARG+33,'som supplementsangivelse')
        END
        ELSE BEGIN WRITELN(T);WRITELN(T) END;
        FOR J:=1 TO 7 DO WRITELN(T);
        WRITELN(T,' ':LMARG+32,'X');
        WRITELN(T);
        IF HPOST.VÆRDI>700000.0 THEN
          WRITELN(T,' ':LMARG+15,'1')
        ELSE
          WRITELN(T,' ':LMARG+15,'0');
        IF NRIOPLAND=7 THEN NRIOPLAND:=0;
        FOR J:=1 TO 7 DO WRITELN(T)
    END;
END;
BEGIN
  KUNDE.NR(1):=HPOST.KNR1;
  KUNDE.NR(2):=HPOST.KNR2;
  GETREC(KZ.H,FKUN,KUNDE.A);
  IF IER<>0 THEN ERROR;
  SEEK(LANDFIL,KUNDE.NR(7));
  GET(LANDFIL);
  FOR J:=1 TO 12 DO KLAND(J):=LANDFIL^(J);
  OPLAND:=0;
  NRIOPLAND:=0;
  FOR LINE:=1 TO I DO
  BEGIN
    IF (OPLAND<>LINES(LINE).OPRILAND) OR
       (NRIOPLAND=7) OR
       (NRIOPLAND MOD 2 = 0) THEN
    BEGIN
      FOR J:=1 TO TOPMARG DO WRITELN(T);
      WRITELN(T,' ':LMARG+14,'587765-2    02',
                SYSFIL^.HELTAL(1)*10000.0+SYSFIL^.HELTAL(2):11:-2,
                '   Almindelig udførsel');
      WRITELN(T);
      WRITELN(T,' ':LMARG,'Vendor');
      WRITELN(T,' ':LMARG,'Nyhavn 43');
      WRITELN(T,' ':LMARG,'1051 København K');
      FOR J:=10 TO 12 DO WRITELN(T);
      WRITELN(T,' ':LMARG,KUNDE.NAVN(1));
      WRITELN(T,' ':LMARG,KUNDE.NAVN(3));
      WRITELN(T,' ':LMARG,KUNDE.POSTNR);
      WRITELN(T);
      IF OPLAND<>LINES(LINE).OPRILAND THEN
      BEGIN
        OPLAND:=LINES(LINE).OPRILAND;
        NRIOPLAND:=0;
        SEEK(LANDFIL,OPLAND);
        GET(LANDFIL)
      END;
      WRITELN(T,' ':LMARG+50,KLAND,KUNDE.NR(7):4);
      WRITELN(T,' ':LMARG,HPOST.TRANSPORTØR);
      WRITE(T,' ':LMARG+32);
      FOR J:=1 TO 12 DO WRITE(T,LANDFIL^(J));
      WRITELN(T,OPLAND:4,' ':2,KLAND,KUNDE.NR(7):4);
      WRITELN(T);
      IF HPOST.KODE8=0 THEN WRITELN(T) ELSE
      WRITELN(T,' ':LMARG,TMÅDE(HPOST.KODE8));
      WRITELN(T);
      WRITE(T,' ':LMARG);
      IF HPOST.KODE9=0 THEN WRITE(T,' ':30) ELSE
      WRITE(T,UDPSTED(HPOST.KODE9));
      WRITELN(T,SYSFIL^.HELTAL(1)*10000.0+SYSFIL^.HELTAL(2):9:-2,
                HPOST.FAKTNR1*10000.0+HPOST.FAKTNR2:19:-2);
      WRITELN(T);
      WRITELN(T,' ':LMARG+32,HPOST.LEVBET,HPOST.VÆRDI/100:11:2);
      FOR J:= 26 TO 28 DO WRITELN(T)
    END;
    IF NRIOPLAND MOD 2=0 THEN
    BEGIN
      WRITELN(T,' ':LMARG+50,HPOST.BRUTTOVÆGT:6);
      WRITELN(T,' ':LMARG,'Mrk. adr. ',HPOST.AKOLLI);
      WRITELN(T)
    END
    ELSE FOR J:=37 TO 40 DO WRITELN(T);
 
    TOLDPO.NR1:=TRUNC(LINES(LINE).TOLDPNR/1000);
    TOLDPO.NR2:=TRUNC(LINES(LINE).TOLDPNR-1000.0*TOLDPO.NR1);
    GETREC(TPZ.H,FTP,TOLDPO.A);
    IF IER=0 THEN
      WRITELN(T,' ':LMARG+10,TOLDPO.TEKST)
    ELSE
    IF IER<>-6 THEN ERROR
    ELSE WRITELN(T,' ':LMARG,'*** TEKST IKKE OPRETTET ***');
 
    NRIOPLAND:=NRIOPLAND+1;
    FOR J:=42 TO 44 DO WRITELN(T);
    
    WRITELN(T,' ':LMARG+5,LINES(LINE).TOLDPNR/1000:11:3,2:5,
                          LINES(LINE).VÆRDI/100:20:-2,
                          TRUNC((LINES(LINE).VÆRDI/HPOST.VÆRDI)*
                          (HPOST.BRUTTOVÆGT-8.17*HPOST.BRUTTOVÆGT/100.0)):9,
                          LINES(LINE).SUPPMÆNGDE:7);
    BUND;
  END;
END;
PROCEDURE VARECERTIFIKAT;
VAR OFFSET,FDK:INTEGER;
PROCEDURE HEAD;
BEGIN
      FOR J:=1 TO TOPMARG DO WRITELN(T1);
      WRITELN(T1,' ':LMARG,'Vendor');
      WRITELN(T1,' ':LMARG,'Nyhavn 43');
      WRITELN(T1,' ':LMARG,'1051 København K');
      FOR J:=8 TO 10 DO WRITELN(T1);
      SEEK(LANDFIL,KUNDE.NR(7));
      GET(LANDFIL);
      WRITELN(T1,' ':LMARG,KUNDE.NAVN(1));
      WRITELN(T1,' ':LMARG,KUNDE.NAVN(2));
      WRITELN(T1,' ':LMARG,KUNDE.NAVN(3),' ':4,LANDFIL^);
      WRITELN(T1,' ':LMARG,KUNDE.LANDSBY);
      WRITELN(T1,' ':LMARG,KUNDE.POSTNR);
      WRITELN(T1,' ':LMARG,LANDFIL^);
      WRITELN(T1);
      WRITE(T1,' ':LMARG+34,'Se under 8      ');
      FOR J:=1 TO 15 DO WRITE(T1,LANDFIL^(J));
      FOR J:=18 TO 20 DO WRITELN(T1);
      FDK:=0;
      FOR J:=1 TO 10 DO
        IF OFFSET+J<=I THEN
          IF LINES(OFFSET+J).OPRILAND=8 THEN
          BEGIN
            FDK:=OFFSET+J;
            J:=12
          END;
      IF FDK>0 THEN
      BEGIN
        WRITELN(T1,' ':LMARG+34,'Artikel 25-1 opfyldt for pos:');
        WRITELN(T1);
        WRITE(T1,' ':LMARG+34,FDK-OFFSET:3);
        FDK:=FDK+1;
        WHILE FDK<=I DO
        IF LINES(FDK).OPRILAND=8 THEN
        BEGIN
          WRITE(T1,',',FDK-OFFSET:2+((FDK-OFFSET) DIV 10));
          FDK:=FDK+1
        END
        ELSE FDK:=I+1;
        WRITELN(T1)
      END
      ELSE FOR J:=21 TO 23 DO WRITELN(T1);
      FOR J:=24 TO 30 DO WRITELN(T1);
      WRITELN(T1,' ':LMARG,'Mrk. adr. ',HPOST.AKOLLI,
                           HPOST.BRUTTOVÆGT:17,
                           HPOST.FAKTNR1*10000.0+HPOST.FAKTNR2:9:-2);
      WRITELN(T1,' ':LMARG,'----------------------------------',
                           '---------------------------------');
      WRITELN(T1)
END;
BEGIN
  OFFSET:=0;
  LINE:=0;
  WHILE LINE+OFFSET<I DO
  BEGIN
    IF LINE=0 THEN HEAD;
    LINE:=LINE+1;
    TOLDPO.NR1:=TRUNC(LINES(LINE+OFFSET).TOLDPNR/1000);
    TOLDPO.NR2:=TRUNC(LINES(LINE+OFFSET).TOLDPNR-1000.0*TOLDPO.NR1);
    GETREC(TPZ.H,FTP,TOLDPO.A);
  WRITE(T1,' ':LMARG,LINE:3,':',LINES(LINE+OFFSET).SUPPMÆNGDE:5,' stk.    ');
    IF IER=0 THEN
      WRITELN(T1,TOLDPO.TEKST)
    ELSE
    BEGIN
      WRITELN(T1,'TEKST IKKE OPRETTET');
      IF IER<>-6 THEN ERROR
    END;
    SEEK(LANDFIL,LINES(LINE+OFFSET).OPRILAND);
    GET(LANDFIL);
    WRITELN(T1,' ':LMARG+7,LINES(LINE+OFFSET).TOLDPNR/1000:10:3,' ',
                           LANDFIL^);
    IF (LINE=10) OR (OFFSET+LINE=I) THEN
    BEGIN
      WRITELN(T1,' ':LMARG,'-------------------------',
                           '------------------------');
      WHILE LINE<10 DO
      BEGIN
        WRITELN(T1);
        WRITELN(T1);
        LINE:=LINE+1
      END;
      FOR J:=55 TO 60 DO WRITELN(T1);
      WRITELN(T1,' ':LMARG+42,'København',SYSFIL^.HELTAL(1)*10000.0+
                                          SYSFIL^.HELTAL(2):14:-2);
      FOR J:=62 TO 63 DO WRITELN(T1);
      WRITELN(T1,' ':LMARG,'København',SYSFIL^.HELTAL(1)*10000.0+
                                       SYSFIL^.HELTAL(2):12:-2);
      FOR J:=65 TO 72 DO WRITELN(T1);
      OFFSET:=OFFSET+10;
      LINE:=0
    END
  END
END;
BEGIN
  WRITELN('START TOLDPAP');
  FNAVN:='KUNDERG:P2:0000:I';
  RESET(FKUN,FNAVN);
  IOPEN(KZ.H,FKUN,LÆS);IF IER<>0 THEN ERROR;
 
  FNAVN:='TOLDPORG:P2:0000:I';
  RESET(FTP,FNAVN);
  IOPEN(TPZ.H,FTP,LÆS);IF IER<>0 THEN ERROR;
 
  FNAVN:='SYSREG:P2:1:I';
  REWRITE(SYSFIL,FNAVN);
  SEEK(SYSFIL,1);
  GET(SYSFIL);
 
  FNAVN:='LANDEREG:P2:0:I';
  RESET(LANDFIL,FNAVN);
 
  FNAVN:='TOLDPAPI:P1:10:K';
  REWRITE(TOLDPHIL,FNAVN);
 
  FNAVN:='TOLDPTXT:P1:10:K';
  REWRITE(T,FNAVN);
 
  FNAVN:='CERTITXT:P1:10:K';
  REWRITE(T1,FNAVN);
 
  INIT;
 
  GET(TOLDPHIL);
  WHILE (TOLDPHIL^.KNR1<>0) AND (TOLDPHIL^.KNR2<>0) DO
  WITH TOLDPHIL^ DO
  BEGIN
    I:=0;
    REPEAT
      I:=I+1;
      LINES(I).OPRILAND:=OPRILAND;
      LINES(I).SUPPMÆNGDE:=SUPPMÆNGDE;
      LINES(I).VÆRDI:=VÆRDI;
      LINES(I).TOLDPNR:=TOLDPONR;
      GET(TOLDPHIL)
    UNTIL OPRILAND=0;
    HPOST:=TOLDPHIL^;
    FOR J:=1 TO I DO
    BEGIN
      M:=J;
      FOR K:=J+1 TO I DO
        IF LINES(K).OPRILAND<LINES(M).OPRILAND THEN M:=K;
      IF M<>J THEN
      BEGIN
        BYTPOST:=LINES(M);
        LINES(M):=LINES(J);
        LINES(J):=BYTPOST
      END
    END;   (*SORTERET*)
    UDFØRSELSANGIVELSE;
    K:=0;
    FOR J:=1 TO 20 DO IF EFLANDE(J)=KUNDE.NR(7) THEN K:=1;
    IF K=0 THEN VARECERTIFIKAT;
    GET(TOLDPHIL)
  END;
  ICLOSE(KZ.H,FKUN);
  ICLOSE(TPZ.H,FTP);
  WRITELN('SLUT TOLDPAP');
  CHAIN('INTRE   *1','SKRIVFAK:P1',QUQ);
END.

Full view