PROGRAMM-ID. DAAUSF.CO. COMMENTS. FUEHRT DAUERAUFTRAEGE UND LASTSCHRIFTEN AUS. AUFZURUFEN AN MONATSMITTE UND -ENDE VOR DEM MONATSSPAREN!. AUTOR. A VIGNOLD JANUAR 84. FILE-CONTROL. SELECT DAUER, ASSIGN TO DSK, ACCESS MODE IS RANDOM, ACTUAL KEY IS SATZNUMMER. SELECT KONTEN, ASSIGN TO DSK, ACCESS MODE IS RANDOM, ACTUAL KEY IS K-SATZNUMMER. FD DAUER. 01 BILD. 02 DATUM PIC X. 02 KONTONUMMER PIC 999. 02 BETRAG PIC S9(7)V99. 02 ENUMMER PIC 999. 02 VZWECK PIC X(13). FD KONTEN. 01 K-BILD. 02 K-NUMMER PIC 9(3). 02 K-NAME PIC X(25). 02 K-STRASSE PIC X(25). 02 K-WOHNORT PIC X(25). 02 K-GEBOREN PIC X(10). 02 K-MAXIMALKREDIT PIC S9(7)V99. 02 K-ALTSTAND PIC S9(7)V99. 02 K-DATUM PIC X(10). 02 K-BEWART PIC X(30). 02 K-BEWEGUNG PIC S9(7)V99. 02 K-NEUSTAND PIC S9(7)V99. 02 K-ZINSSPEICHER PIC S9(7)V99. 02 K-SCHECKNUMMER PIC 999. 02 K-AUSZUGNUMMER PIC 999. WORKING-STORAGE SECTION. 01 TAG PIC X. 01 SATZNUMMER PIC 999. 01 K-SATZNUMMER PIC 999. 01 ABBRUCH PIC 9 VALUE 0. 01 PRUEFER PIC S9(7)V99. 01 ABSENDER PIC X(25). 01 BUBETR PIC S9(7)V99. PROCEDURE DIVISION. PERFORM DAUERAUFTRAEGE. CALL DAUHAU. DAUERAUFTRAEGE. PERFORM EINGABE. PERFORM OEFFNEN. MOVE 0 TO ABBRUCH, BUBETR, SATZNUMMER, PRUEFER. PERFORM DALESEN UNTIL ABBRUCH = 1. PERFORM BUCHUNG. PERFORM SCHLIESSEN. EINGABE. DISPLAY "GEBEN SIE DAS DATUM DES AUF-". DISPLAY "RUFS MIT 'M' FUER MONATSMITTE UND". DISPLAY "'E' FUER MONATSENDE EIN!". ACCEPT TAG. OEFFNEN. OPEN INPUT DAUER, I-O KONTEN. DALESEN. ADD 1 TO SATZNUMMER. READ DAUER, INVALID KEY MOVE 1 TO ABBRUCH. IF DATUM = TAG AND ABBRUCH NOT = 1 THEN PERFORM UEBERWEISEN. KOLESEN. READ KONTEN, INVALID KEY DISPLAY "FALSCHE KONTONUMMER". UEBERWEISEN. SUBTRACT 99 FROM KONTONUMMER GIVING K-SATZNUMMER. PERFORM KOLESEN. MOVE K-NEUSTAND TO PRUEFER. ADD K-MAXIMALKREDIT TO PRUEFER. IF PRUEFER > BETRAG THEN PERFORM AUSFUEHREN ELSE DISPLAY "DAUERAUFTRAG DES KONTOS", KONTONUMMER, "WEGEN GELDMANGEL GEPLATZT.". AUSFUEHREN. MOVE K-NEUSTAND TO K-ALTSTAND. ADD 0.5 TO BETRAG. SUBTRACT BETRAG FROM 0 GIVING K-BEWEGUNG. ADD K-BEWEGUNG TO K-NEUSTAND. MOVE VZWECK TO K-BEWART. ADD 0.5 TO BUBETR. WRITE K-BILD. SUBTRACT 99 FROM ENUMMER GIVING K-SATZNUMMER. DISPLAY "CALL AUSZUGDRUCKEN", K-NUMMER. PERFORM KOLESEN. MOVE K-NEUSTAND TO K-ALTSTAND. SUBTRACT 0.5 FROM BETRAG GIVING K-BEWEGUNG. ADD K-BEWEGUNG TO K-NEUSTAND. MOVE VZWECK TO K-BEWART. DISPLAY "CALL AUSZUGDRUCKEN", K-NUMMER. WRITE K-BILD. BUCHUNG. MOVE 1 TO K-SATZNUMMER. PERFORM KOLESEN. MOVE BUBETR TO K-BEWEGUNG. MOVE "DAUERAUFTRAEGE" TO K-BEWART. MOVE K-NEUSTAND TO K-ALTSTAND. ADD BUBETR TO K-NEUSTAND. SCHLIESSEN. CLOSE DAUER, KONTEN.