|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 20224 (0x4f00)
Types: TextFile
Notes: Mikados_K
Names: »KASSERAP.K«
└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
└─⟦this⟧ »KASSERAP.K«
PROGRAM KASSENSRAPPORT;
(*$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;
KUNDZONE=RECORD
H:ISFHEAD;
T:ARRAY(1..918) OF INTEGER
END;
SYSPOST=RECORD
HELTAL:ARRAY(1..24) OF INTEGER;
KBG:ARRAY(1..5) OF REAL;
BETADAT:PACKED ARRAY (1..13) OF CHAR;
KODE:ARRAY(1..2) OF PACKED ARRAY (1..10) OF CHAR
END;
SYSFILE=FILE OF SYSPOST;
KASSRAPPPOST=RECORD
KONTONR1,KONTONR2,
DATO1,DATO2,
TEKSTKODE,
BILAG1,BILAG2,
KGB :INTEGER;
BELØB :REAL
END;
KASSFIL=FILE OF KASSRAPPPOST;
VAR DIFF :BOOLEAN;
QUQ :^INTEGER;
F :ISF;
KZ :KUNDZONE;
KNAVN :STRING(4);
KUNDE :KPOST;
SYSFIL :SYSFILE;
B,R,R1,R2,DIFFE :REAL;
BILNR1,BILNR2,
DAT1,DAT2,
POSTNR,
LINENR,LINIENR,
JOURNR,
I,J,OPL,IER,
KASSSID,KASSNR :INTEGER;
FIL :STRING(20);
LINE :ARRAY (1..18) OF KASSRAPPPOST;
DEBET,DEBET1 :ARRAY (1..10) OF REAL;
KONTO :ARRAY (1..5) OF PACKED ARRAY (1..5) OF CHAR;
JOURFILE,
KASSFILE :KASSFIL;
TEKST :ARRAY (1..10) OF PACKED ARRAY (1..15) OF CHAR;
CH :CHAR;
(*$L-*)
(*$R-,IEXCOMCOP*)
(*$IIOPEN*)
(*$IREADPROC*)
(*$IFINDPOST*)
(*$IICLOSE*)
(*$IPUTGET*)
(*$INEXTREC*)
(*$R+*)
(*$L+*)
PROCEDURE STOP;
VAR I:INTEGER;
BEGIN I:=I DIV 0 END;
PROCEDURE ERROR;
BEGIN
WRITELN('FEJL I KUNDEREG ',IER);
ICLOSE(KZ.H,F);
WRITELN('ICLOSE ',IER);
STOP
END;
PROCEDURE OFEJL;
BEGIN
GOTOXY(1,20);
WRITELN('REGISTERFEJL ',IER,' . SITUATIONEN ER FORSØGT REDDET.');
WRITELN('TAST 0, HVIS DER SKAL FORTSÆTTES');
REPEAT GOTOXY(40,21);READLN;READ(I) UNTIL IORESULT=0;
IF I<>0 THEN ERROR;
CLEARSCREEN
END;
PROCEDURE NANU(VAR T:STRING;VAR NU1,NU2 :INTEGER);
VAR I:INTEGER;
R:REAL;
BEGIN
R:=0.0;
FOR I:=1 TO 4 DO R:=R*29+ORD(T(I));
I:=TRUNC(R/89998.0);
R:=R-I*89998.0+10001;
NU1:=TRUNC(R/10000);
NU2:=TRUNC(R-NU1*10000.0)
END;
PROCEDURE FINDKUND;
VAR I,N1,N2,FIN:INTEGER;
SVAR1:CHAR;
R1,R2:REAL;
BEGIN
REPEAT
I:=1;
SVAR1:='N';
GOTOXY(1,23);
IF LINE(LINENR).TEKSTKODE=4 THEN
WRITELN('Debetkonto 0 for søgning med navn',' ':36)
ELSE
WRITELN('Kreditkonto 0 for søgning med navn',' ':36);
REPEAT
R:=-1.0;
GOTOXY(13,23);
READLN;IF NOT EOLN THEN READ(R)
UNTIL (IORESULT=0) AND (R>=0.0) AND (R<100000.0);
IF (R=1.0) OR (R=2.0) OR (R=3.0) OR (R=4.0) OR (R=5.0) THEN
WITH LINE(LINENR) DO
BEGIN
IF TEKSTKODE=4 THEN
BEGIN
KGB:=TRUNC(R);
CASE KGB OF
1,2,3:TEKSTKODE:=3;
4 :TEKSTKODE:=5;
5 :TEKSTKODE:=7
END;
GOTOXY(38,LINENR+1);
WRITELN(' ':5,KONTO(KGB))
END
ELSE
BEGIN
KONTONR1:=0;
KONTONR2:=TRUNC(R);
TEKSTKODE:=8;
GOTOXY(11,LINENR+1);WRITELN(TEKST(TEKSTKODE));
GOTOXY(65,LINENR+1);WRITELN(KONTO(KONTONR2))
END;
EXIT(FINDKUND)
END;
REPEAT
IF R=0.0 THEN
IF I=1 THEN
BEGIN
GOTOXY(1,23);
WRITELN('INDTAST KUNDENAVN',' ':60);
REPEAT
GOTOXY(20,23);
READLN;IF NOT EOLN THEN READ(KNAVN)
UNTIL LENGTH(KNAVN)=4;
NANU(KNAVN,N1,N2);
KUNDE.NR(1):=N1;
KUNDE.NR(2):=N2;
R1:=N1*10000.0+N2;
GETREC(KZ.H,F,KUNDE.A);
IF IER=-6 THEN NEXTREC(KZ.H,F,KUNDE.A);
IF (IER=-9) OR (IER=-2) OR (IER=-1) THEN IER:=0;
I:=0
END
ELSE
BEGIN
NEXTREC(KZ.H,F,KUNDE.A);
IF (IER=-9) OR (IER=-2) OR (IER=-1) THEN IER:=0;
R2:=KUNDE.NR(1)*10000.0+KUNDE.NR(2);
IF (R2-R1>SYSFIL^.HELTAL(4)) OR (R2<R1) THEN IER:=-6;
END
ELSE
BEGIN
KUNDE.NR(1):=TRUNC(R/10000.0);
KUNDE.NR(2):=TRUNC(R-KUNDE.NR(1)*10000.0);
GETREC(KZ.H,F,KUNDE.A)
END;
GOTOXY(1,23);
FIN:=1;
IF IER=0 THEN
BEGIN
WRITE(KUNDE.NR(1)*10000.0+KUNDE.NR(2):8:-2,' ');
WRITE(KUNDE.NAVN(1));
WRITELN(' ',KUNDE.NAVN(3));
GOTOXY(1,22);WRITELN('RIGTIG KUNDE (J/N)',' ':59);
REPEAT GOTOXY(20,22);READLN;GOTOXY(7,22);WRITELN;
IF EOLN THEN SETIORESULT(-1) ELSE
READ(SVAR1) UNTIL (IORESULT=0) AND
((SVAR1='J') OR (SVAR1='N') OR (SVAR1='n') OR (SVAR1='j'));
IF ((SVAR1='N') OR (SVAR1='n')) AND (R=0.0) THEN FIN:=0;
GOTOXY(1,22);WRITELN(' ':77)
END
ELSE
IF IER=-6 THEN
BEGIN
IER:=0;
WRITELN('KUNDEN EKSISTERER IKKE, TRYK RETURN',' ':42);
GOTOXY(40,23);
READLN
END
ELSE ERROR
UNTIL FIN=1
UNTIL (SVAR1='J') OR (SVAR1='j');
LINE(LINENR).KONTONR1:=KUNDE.NR(1);
LINE(LINENR).KONTONR2:=KUNDE.NR(2);
IF LINE(LINENR).TEKSTKODE=4 THEN
GOTOXY(38,LINENR+1)
ELSE
BEGIN
GOTOXY(11,LINENR+1);
WRITE(TEKST(LINE(LINENR).TEKSTKODE));
GOTOXY(60,LINENR+1);
END;
WRITELN(LINE(LINENR).KONTONR1*10000.0+LINE(LINENR).KONTONR2:10:-2);
END;
PROCEDURE PRLINE;
BEGIN
WITH LINE(LINENR) DO
BEGIN
GOTOXY(1,LINENR+1);
WRITE(LINENR:5,' ':5,TEKST(TEKSTKODE),BILAG1*10000.0+
BILAG2:12:-2);
CASE TEKSTKODE OF
4,6,9: BEGIN
WRITELN(KONTONR1*10000.0+KONTONR2:10:-2,BELØB/100:12:2,
' ':5,KONTO(KGB));
DEBET(5+KGB):=DEBET(5+KGB)-BELØB
END;
3,5,7: BEGIN
WRITELN(' ':5,KONTO(KGB),BELØB/100:12:2,KONTONR1*10000.0+
KONTONR2:10:-2);
DEBET(KGB):=DEBET(KGB)+BELØB
END;
8: BEGIN
WRITELN(' ':5,KONTO(KGB),BELØB/100:12:2,' ':5,KONTO(KONTONR2));
DEBET(KGB):=DEBET(KGB)+BELØB;
DEBET(5+KONTONR2):=DEBET(5+KONTONR2)-BELØB
END;
END;
END
END;
PROCEDURE KASSERAPPORT;
VAR I:INTEGER;
BEGIN
FOR I:=1 TO 10 DO DEBET(I):=0;
FIL:='JOURKASS:P1:30:I';
REWRITE(JOURFILE,FIL);
SEEK(JOURFILE,JOURNR);
SEEK(KASSFILE,1);
LINIENR:=1;
WHILE LINIENR<KASSNR DO
BEGIN
IF LINIENR MOD 60=1 THEN
BEGIN
IF LINIENR>1 THEN FOR I:=1 TO 8 DO WRITELN(LIST);
WRITELN(LIST,'K A S S E R A P P O R T',' ':49,KASSSID:5);
WRITELN(LIST);
WRITELN(LIST,'Linie',' ':5,'Tekst',' ':17,'Bilag',' ':5,'Debet',' ':7,
'Beløb',' ':4,'Kredit',SYSFIL^.HELTAL(1)*10000.0+
SYSFIL^.HELTAL(2):8:-2);
WRITELN(LIST);
KASSSID:=KASSSID+1
END;
GET(KASSFILE);
WITH KASSFILE^ DO
BEGIN
WRITE(LIST,LINIENR:5,' ':5,TEKST(TEKSTKODE),BILAG1*10000.0+
BILAG2:12:-2);
CASE TEKSTKODE OF
4,6,9:BEGIN
WRITELN(LIST,KONTONR1*10000.0+KONTONR2:10:-2,BELØB/100:12:2,
' ':4,KONTO(KGB),DATO1*10000.0+DATO2:9:-2);
JOURFILE^:=KASSFILE^;
PUT(JOURFILE);
DEBET(5+KGB):=DEBET(5+KGB)-BELØB;
JOURNR:=JOURNR+1
END;
3,5,7:BEGIN
WRITELN(LIST,' ':5,KONTO(KGB),BELØB/100:12:2,KONTONR1*10000.0+
KONTONR2:9:-2,DATO1*10000.0+DATO2:9:-2);
DEBET(KGB):=DEBET(KGB)+BELØB;
BELØB:=-BELØB;
JOURFILE^:=KASSFILE^;
PUT(JOURFILE);
JOURNR:=JOURNR+1
END;
8: BEGIN
WRITELN(LIST,' ':5,KONTO(KGB),BELØB/100:12:2,' ':4,KONTO(KONTONR2),
DATO1*10000.0+DATO2:9:-2);
DEBET(KGB):=DEBET(KGB)+BELØB;
DEBET(5+KONTONR2):=DEBET(5+KONTONR2)-BELØB
END;
END;
END;
LINIENR:=LINIENR+1
END;
DIFFE:=0;
FOR I:=1 TO 5 DO
BEGIN
WRITELN(LIST,LINIENR:5,' ':5,KONTO(I),KASSSID-1:22,' ':10,
(DEBET(I)+DEBET(I+5))/100:12:2);
WITH JOURFILE^ DO
BEGIN
KONTONR1:=0;
KONTONR2:=I;
DATO1:=DAT1;DATO2:=DAT2;
TEKSTKODE:=0;
BILAG1:=0;BILAG2:=KASSSID-1;
KGB:=I;
BELØB:=DEBET(I)+DEBET(I+5);
DIFFE:=DIFFE+DEBET(I)+DEBET(I+5)-DEBET1(I)-DEBET1(I+5);
DEBET(I):=0.0;DEBET(I+5):=0.0;
DEBET1(I):=0.0;DEBET1(I+5):=0.0
END;
PUT(JOURFILE);
JOURNR:=JOURNR+1;
LINIENR:=LINIENR+1
END;
WRITELN(LIST);
WRITELN(LIST,'Difference',' ':37,DIFFE/100:12:2);
CLOSE(JOURFILE);
FIL:='SYSREG:P2:0:I';
REWRITE(SYSFIL,FIL);
SEEK(SYSFIL,1);
KASSNR:=1;
SYSFIL^.HELTAL(15):=KASSNR;
SYSFIL^.HELTAL(16):=JOURNR;
SYSFIL^.HELTAL(17):=KASSSID;
SYSFIL^.HELTAL(11):=BILNR1;
SYSFIL^.HELTAL(12):=BILNR2;
SEEK(SYSFIL,1);
PUT(SYSFIL);
CLOSE(SYSFIL)
END;
PROCEDURE DATO;
VAR R:REAL;
BEGIN
REPEAT
GOTOXY(72,1);READLN;IF EOLN THEN SETIORESULT(-1) ELSE READ(R)
UNTIL (IORESULT=0) AND (R>800000.0) AND (R<900000.0);
DAT1:=TRUNC(R/10000.0);
DAT2:=TRUNC(R-DAT1*10000.0)
END;
PROCEDURE LÆSOPL;
VAR R:REAL;
I,J:INTEGER;
BEGIN
J:=(OPL-1) MOD 5+1;I:=OPL DIV 6*29 +17;
REPEAT
GOTOXY(I,J);READLN;IF EOLN THEN SETIORESULT(-1) ELSE READ(R)
UNTIL (IORESULT=0) AND (R<100000000.0) AND (R>=0.0);
IF OPL>5 THEN R:=-R;
DEBET1(OPL):=R*100
END;
PROCEDURE SKRIVDIFF;
VAR I:INTEGER;
BEGIN
GOTOXY(1,7);WRITELN('Differencer');
DIFF:=FALSE;
FOR I:=1 TO 10 DO
BEGIN
GOTOXY(I DIV 6*29+1,(I-1) MOD 5+8);
WRITE(' ':2,KONTO((I-1) MOD 5+1),' ');
IF I<6 THEN WRITE('Debet ') ELSE WRITE('Kredit');
WRITELN((DEBET(I)-DEBET1(I))/100:12:2);
IF DEBET(I)-DEBET1(I)<>0.0 THEN DIFF:=TRUE
END
END;
PROCEDURE SKRIVDK;
VAR I:INTEGER;
BEGIN
CLEARSCREEN;
FOR I:=1 TO 10 DO
BEGIN
GOTOXY(I DIV 6*29+1,(I-1) MOD 5+1);
WRITE(I:2,' ',KONTO((I-1) MOD 5+1),' ');
IF I<6 THEN WRITE('Debet ')
ELSE WRITE('Kredit');
WRITELN(DEBET1(I)/100:12:2)
END
END;
PROCEDURE INDSIDE;
VAR I:INTEGER;
BEGIN
CLEARSCREEN;
WRITELN('Linie',' ':5,'Tekst',' ':17,'Bilag',' ':5,'Debet',' ':7,'Beløb',
' ':4,'Kredit',DAT1*10000.0+DAT2:8:-2);
SEEK(KASSFILE,POSTNR);
FOR I:=1 TO 18 DO
IF POSTNR<KASSNR THEN
BEGIN
GET(KASSFILE);
LINE(I):=KASSFILE^;
POSTNR:=POSTNR+1;
LINIENR:=LINIENR+1;
PRLINE;
LINENR:=LINIENR;
END
ELSE
I:=18
END;
PROCEDURE ANNUL;
VAR I:INTEGER;
BEGIN
IF (LINENR>1) AND (LINIENR=0) THEN
BEGIN
LINENR:=LINENR-1;
GOTOXY(1,LINENR+1);WRITELN(' ':77);
BILNR2:=BILNR2-1;
IF BILNR2=-1 THEN
BEGIN
BILNR1:=BILNR1-1;
BILNR2:=9999;
END;
IF (LINE(LINENR).BILAG1<>BILNR1) OR (LINE(LINENR).BILAG2<>BILNR2) THEN
BEGIN
BILNR2:=BILNR2+1;
IF BILNR2=10000 THEN
BEGIN
BILNR1:=BILNR1+1;
BILNR2:=0
END
END;
WITH LINE(LINENR) DO
CASE TEKSTKODE OF
4,6,9: DEBET(5+KGB):=DEBET(5+KGB)+BELØB;
3,5,7: DEBET(KGB):=DEBET(KGB)-BELØB;
8: BEGIN
DEBET(KGB):=DEBET(KGB)-BELØB;
DEBET(5+KONTONR2):=DEBET(5+KONTONR2)+BELØB
END
END;
END;
B:=-1
END;
PROCEDURE INBILAG;
BEGIN
GOTOXY(1,22);
WRITELN(' ':77);
GOTOXY(1,23);
WRITELN('Bilag 1 (0:færdig, 1:automatisk, D:dato-ændring',
', A:annuller sidste)');
REPEAT
GOTOXY(7,23);READLN;GOTOXY(70,23);WRITELN;
IF EOLN THEN B:=1
ELSE
IF (INPUT^='D') OR (INPUT^='d') THEN
BEGIN
DATO;
B:=-1
END
ELSE
IF (INPUT^='A') OR (INPUT^='a') THEN ANNUL ELSE READ(B)
UNTIL (IORESULT=0) AND (B>=0.0) AND (B<100000000.0);
IF B>0 THEN
BEGIN
IF B=1 THEN
BEGIN
LINE(LINENR).BILAG1:=BILNR1;
LINE(LINENR).BILAG2:=BILNR2;
BILNR2:=BILNR2+1;
IF BILNR2=10000 THEN
BEGIN
BILNR1:=BILNR1+1;
BILNR2:=0
END
END
ELSE
BEGIN
LINE(LINENR).BILAG1:=TRUNC(B/10000.0);
LINE(LINENR).BILAG2:=TRUNC(B-LINE(LINENR).BILAG1*10000.0)
END;
GOTOXY(26,LINENR+1);
WRITELN(LINE(LINENR).BILAG1*10000.0+LINE(LINENR).BILAG2:12:-2)
END
END;
PROCEDURE INDBELØB;
VAR R:REAL;
BEGIN
GOTOXY(1,23);
WRITELN('Beløb',' ':72);
REPEAT
GOTOXY(7,23);READLN;IF EOLN THEN SETIORESULT(-1) ELSE READ(R)
UNTIL (IORESULT=0) AND (R<100000000.0) AND (R>=0.0);
GOTOXY(48,LINENR+1);
WRITELN(R:12:2);
LINE(LINENR).BELØB:=100*R
END;
PROCEDURE INDKGB;
VAR I:INTEGER;
BEGIN
IF LINE(LINENR).TEKSTKODE<>4 THEN FINDKUND
ELSE
BEGIN
GOTOXY(1,23);
WRITELN('Kredit (1:Kasse, 2:Bank, 3:Giro, 4:Rabat, 5:Rente)',' ':22);
REPEAT
GOTOXY(8,23);READLN;IF EOLN THEN SETIORESULT(-1) ELSE READ(I)
UNTIL (IORESULT=0) AND (I>0) AND (I<6);
CASE I OF
1,2,3:LINE(LINENR).TEKSTKODE:=4;
4 :LINE(LINENR).TEKSTKODE:=6;
5 :LINE(LINENR).TEKSTKODE:=9
END;
GOTOXY(11,LINENR+1);
WRITE(TEKST(LINE(LINENR).TEKSTKODE));
GOTOXY(60,LINENR+1);
WRITELN(' ':5,KONTO(I));
LINE(LINENR).KGB:=I
END
END;
PROCEDURE INLINE;
BEGIN
LINENR:=1;
CLEARSCREEN;
WRITELN('Linie',' ':5,'Tekst',' ':17,'Bilag',' ':5,'Debet',' ':7,'Beløb',
' ':4,'Kredit',DAT1*10000.0+DAT2:8:-2);
INBILAG;
WHILE (B>0.0) AND (LINENR<19) DO
WITH LINE(LINENR) DO
BEGIN
GOTOXY(1,LINENR+1);WRITELN(LINENR:5);
LINE(LINENR).TEKSTKODE:=4;
FINDKUND;
INDBELØB;
INDKGB;
PRLINE;
DATO1:=DAT1;DATO2:=DAT2;
LINENR:=LINENR+1;
IF LINENR<19 THEN
INBILAG
END;
LINENR:=LINENR-1;
IF LINENR>0 THEN
FOR J:=1 TO LINENR DO
BEGIN
KASSFILE^:=LINE(J);
PUT(KASSFILE);
KASSNR:=KASSNR+1
END
END;
PROCEDURE AFSTEM;
VAR I,J:INTEGER;
BEGIN
SKRIVDK;
FOR OPL:=1 TO 10 DO LÆSOPL;
SKRIVDK;
SKRIVDIFF;
WHILE DIFF DO
BEGIN
GOTOXY(1,23);
WRITELN('Ændring i (1-10, 0 for posteringer)',' ':37);
REPEAT
GOTOXY(11,23);READLN;IF EOLN THEN SETIORESULT(-1) ELSE READ(OPL)
UNTIL (IORESULT=0) AND (OPL>-1) AND (OPL<11);
IF OPL>0 THEN LÆSOPL
ELSE
BEGIN
FOR I:=1 TO 10 DO DEBET(I):=0.0;
POSTNR:=1;
REPEAT
LINIENR:=1;LINENR:=1;
INDSIDE;
REPEAT
GOTOXY(1,23);
IF POSTNR<KASSNR THEN
WRITELN('Linienr 0 for ny side',' ':48)
ELSE
WRITELN('Linienr 0 for færdig',' ':49);
REPEAT
GOTOXY(9,23);READLN;if eoln then setioresult(-1) else READ(I)
UNTIL (IORESULT=0) AND (I>-1) AND (I<LINIENR);
IF I>0 THEN
BEGIN
LINENR:=I;
WITH LINE(LINENR) DO
CASE TEKSTKODE OF
4,6,9: DEBET(5+KGB):=DEBET(5+KGB)+BELØB;
3,5,7: DEBET(KGB):=DEBET(KGB)-BELØB;
8: BEGIN
DEBET(KGB):=DEBET(KGB)-BELØB;
DEBET(5+KONTONR2):=DEBET(5+KONTONR2)+BELØB
END
END;
REPEAT
GOTOXY(1,23);
WRITELN('Ændring af 0:færdig, 1:bilag, 2:konti, 3:beløb',
' ':28);
REPEAT
GOTOXY(12,23);READLN;IF EOLN THEN SETIORESULT(-1) ELSE READ(J)
UNTIL (IORESULT=0) AND (J>-1) AND (J<4);
IF J>0 THEN
WITH LINE(LINENR) DO
BEGIN
CASE J OF
1: INBILAG;
2: BEGIN LINE(LINENR).TEKSTKODE:=4; FINDKUND; INDKGB END;
3: INDBELØB
END;
END
UNTIL J=0;
PRLINE;
SEEK(KASSFILE,POSTNR-LINIENR+LINENR);
KASSFILE^:=LINE(LINENR);
PUT(KASSFILE)
END
UNTIL I=0
UNTIL POSTNR=KASSNR;
REPEAT
GOTOXY(1,23);
WRITELN('Flere linier J/N',' ':59);
REPEAT
GOTOXY(20,23);READLN;GOTOXY(6,23);WRITELN;
IF EOLN THEN SETIORESULT(-1) ELSE READ(CH)
UNTIL (IORESULT=0) AND ((CH='J') OR (CH='N') OR (CH='j') OR(CH='n'));
IF (CH='J') OR (CH='j') THEN INLINE
UNTIL (CH='N') OR (CH='n');
END;
SKRIVDK;
SKRIVDIFF
END;
KASSERAPPORT
END;
BEGIN
FIL:='KUNDERG:P2:0000:I';
RESET(F,FIL);
IOPEN(KZ.H,F,LÆS);IF IER<>0 THEN OFEJL;
FIL:='KASSRAPP:P1:20:I';
REWRITE(KASSFILE,FIL);
FIL:='SYSREG:P2:0:I';
RESET(SYSFIL,FIL);
SEEK(SYSFIL,1);
GET(SYSFIL);
CLOSE(SYSFIL);
KASSNR:=SYSFIL^.HELTAL(15);
JOURNR:=SYSFIL^.HELTAL(16);
KASSSID:=SYSFIL^.HELTAL(17);
DAT1:=SYSFIL^.HELTAL(1);
DAT2:=SYSFIL^.HELTAL(2);
BILNR1:=SYSFIL^.HELTAL(11);
BILNR2:=SYSFIL^.HELTAL(12);
KONTO(1):='Kasse';
KONTO(2):='Bank ';
KONTO(3):='Giro ';
KONTO(4):='Rabat';
KONTO(5):='Rente';
B:=0.0;
TEKST(3):='Indbetaling ';
TEKST(4):='Udbetaling ';
TEKST(5):='Kasserabat ';
TEKST(6):='Rabat-rettelse ';
TEKST(7):='Rente-rettelse ';
TEKST(8):='Overførsel ';
TEKST(9):='Rentenota ';
IF KASSNR>1 THEN
BEGIN
SEEK(KASSFILE,KASSNR);
FOR I:=1 TO 10 DO
BEGIN
GET(KASSFILE);
DEBET1(I):=0.0;
DEBET(I):=KASSFILE^.BELØB
END;
CLEARSCREEN;
WRITELN('Sidste kasserapport ikke afstemt, ønskes afstemning (J/N)');
REPEAT
GOTOXY(59,1);READLN;READ(CH)
UNTIL (IORESULT=0) AND ((CH='N') OR (CH='J') OR (CH='n') OR (CH='j'));
IF (CH='J') OR (CH='j') THEN AFSTEM
END
ELSE
FOR I:=1 TO 10 DO DEBET(I):=0.0;
LINIENR:=0;
FOR I:=1 TO 10 DO DEBET1(I):=0.0;
SEEK(KASSFILE,KASSNR);
REPEAT
INLINE;
IF (B>0) OR (KASSNR=1) THEN LINENR:=1
ELSE
BEGIN
GOTOXY(1,23);WRITELN('Ønskes afstemning (J/N)',' ':54);
REPEAT
GOTOXY(25,23);READLN;READ(CH)
UNTIL (IORESULT=0) AND ((CH='J') OR (CH='N') OR (CH='j') OR (CH='n'));
IF (CH='J') OR (CH='j') THEN AFSTEM
ELSE
FOR I:=1 TO 10 DO
WITH KASSFILE^ DO
BEGIN
BELØB:=DEBET(I);
PUT(KASSFILE)
END
END
UNTIL B=0;
IF KASSNR>1 THEN
BEGIN
REWRITE(SYSFIL,FIL);
SEEK(SYSFIL,1);
SYSFIL^.HELTAL(15):=KASSNR;
SYSFIL^.HELTAL(11):=BILNR1;
SYSFIL^.HELTAL(12):=BILNR2;
PUT(SYSFIL);
CLOSE(SYSFIL)
END;
ICLOSE(KZ.H,F);
CHAIN('INTRE *1','HOVSA:P1',QUQ)
END.