IDENTIFICATION DIVISION. PROGRAM-ID. AIRCHE. ************* * LIEST DATEI MIT 7A-AIR-DATENSATZ ******** * 14.07.03 CHB "M-"-ELEM. REIN FAREBAS * 08.07.03 CHB CLASS OF SERVICE <--> CL OF BOOKING * BIS HEUTE IMMER 1. WERT GENOMMEN! * 08.07.03 CHB NEUES DIR: FLAG-LAUF = 3 + TMG: bsp-tmg * FLAG-LAUF = 3 FÜR LETZTEN LAUF (ALSO 1,2,2,..,2,3) * 07.07.03 CHB WG. TMG: BEKOMMEN NICHT NUR 7A-AIR BEIM TICKETDRUCK * SONDERN ALLE (?) PNR-AENDERUNGEN, D.H. PROGRAMM * SORTIERT NACH AIROPT IN BLK-HEADER SEGMENT AUS, * WAS 7A-AIR RECORDS SIND UND WAS NICHT --> bsp-not7a. * 18.06.03 CHB TAGE-VERSCHIEBUNG '*' UND '+' VERTAUSCHT * 28.05.03 CHB NEUE 7A AIR-FELDER: AMD-OFFICEID UND AMD-IATANR * BEI TMG-IATANR (23226000) KEIN 'PERFORM TOUR' * 24.04.03 CHB FUER AGB/ZWS/QDU/QKL SRM UMSETZUNG AUS FLDAT * AIRINPUT --> X(9990) * 23.04.03 CHB BEI FF-FEHLER UND FLAG-LAUF = 2 --> BSP-CHECK * DELIMITER FUER FARECALC: * 'IT END' DURCH 'END ' ERSETZT * 22.04.03 CHB D-MWSTKZ MIT "D" VORBELEGEN! * 20.03.03 CHB WENN 'DATEI FEHLER'-ENDE AUCH MOVE NACH BSP-NOTOK * FFF VERSCHOBEN UND FFF-D GELOESCHT * 12.03.03 CHB NEU: FH HAND TICKET NUMBER * 08.03.03 chb FALSCHES END-IF BEI "FM" * 07.03.03 CHB NEU: FQV FREQUENT FLYER * 04.03.03 CHB W-CDX --> HT-RECHDATNEUX! X(6) --> X(3) * D-PROZ FUELLEN UND D-PROV AUSRECHNEN! * D-FARE1/D-FARE2 NICHT EINDEUTIG * 03.03.03 CHB CPY FUER CRSACCESS * 01.03.03 CHB FLAG-LAUF = 1 / 2 * 27.02.03 CHB T-HILF UND T-HILF-2 * 26.02.03 CHB D-TIDAT IST MASSGEBEND FÜR L-JJ/WO * 18.02.03 CHB FARE/TAX FELDER * 13.01.03 CHB ANFANG ******** AUTHOR. STUDIOSUS CHB. * ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. LEVEL-6. OBJECT-COMPUTER. LEVEL-6. SPECIAL-NAMES. SWITCH-3 IS SW3 ON STATUS IS SW3-ON OFF STATUS IS SW3-OFF SWITCH-5 IS SW5 ON STATUS IS SW5-ON OFF STATUS IS SW5-OFF. INPUT-OUTPUT SECTION. FILE-CONTROL. * copy "s-airli.cpy". copy "s-fltid.cpy". copy "s-fldat.cpy". copy "s-sttou.cpy". copy "s-steet.cpy". * SELECT DIRLIST ASSIGN TO FILENAME LOCK MANUAL ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS FI-STAT. * SELECT AIRINPUT ASSIGN TO FILENAME LOCK MANUAL ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS FI-STAT. * SELECT PCS-PROTDATEI ASSIGN TO "pcs-protdatei" LOCK MANUAL ORGANIZATION IS LINE SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS FI-STAT. * * * * DATA DIVISION. FILE SECTION. * * 17.11.99 CHB L-JJWOX. * 17.03.97 L-ANZAHL* RAUS, L-REISEDAT REIN. * FD DIRLIST RECORD VARYING 1 TO 500 CHARACTERS DEPENDING ON T2 LABEL RECORD IS OMITTED. 01 HE-DIRLIST. 02 DL-ZEILE PIC X(500). * FD AIRINPUT EXTERNAL RECORD VARYING 1 TO 9900 CHARACTERS DEPENDING ON T1 LABEL RECORD IS OMITTED. * 01 HE-AIRINPUT. 02 AIR-BUFF PIC X(9900). * FD PCS-PROTDATEI LABEL RECORD IS OMITTED. 01 PCS-SATZ. 02 PCS-CDATE PIC 9(06). 02 PCS-FILEKEY PIC X(06). 02 PCS-RECH PIC 9(06). 02 PCS-TEXT PIC X(50). * WORKING-STORAGE SECTION. * data structures for SQL-Bridge >>> COPY "sqlbridge.cpy". * AIRLIST 01 AIRLIST-SATZ. 02 AIRLIST-STRUCTURE. 05 FILLER PIC X(32767). copy "airche--he-airlist--str" replacing ==:REDEF:== by ==AIRLIST-STRUCTURE==. * * FLDAT 01 FLDAT-SATZ. 02 FLDAT-STRUCTURE. 05 FILLER PIC X(32767). ****** * 19.11.03 CHB HE-NAECHSTTICK ALS LETZTE REDEFINITION ****** copy "airche--he-aircode--str" replacing ==:REDEF:== by ==FLDAT-STRUCTURE==. copy "airche--he-l3code--str" replacing ==:REDEF:== by ==FLDAT-STRUCTURE==. ****** * 12.03.96 CHB TIX-STOCK-ENDE: TICKNR-ENDE ****** * DIE TICKETNUMMERN STEHEN UNTER ""256 256 256"" FUER BSP, * BZW. DER AIRLINNR IN TICKCODE UND ""256"" IN TICKCODEX. * DADURCH WERDEN IATA-CODES UND 3L-CODES NICHT BERUEHRT. * copy "airche--he-naechsttick--str" replacing ==:REDEF:== by ==FLDAT-STRUCTURE==. * ******** * 19.08.11 CHB D-NA-RECLOC * 08.04.09 CHB D-AILRF-NR2 * 10.10.08 CHB D-AILRF-NR * 21.02.03 CHB NEUE GRUPPENBEZ. D-FLUGDATENOCC * 20.02.03 CHB NEUE GRUPPENBEZ. D-CALCOCC * 26.10.00 CHB D-USER-STOP: SATZSCHUTZ FUER FLUG4 UND FLTICK! * 04.05.99 CHB NEU: D-USERID * 20.01.98 FA NEU: D-PROV * 01.07.92 CHB NEU: D-PLATZ * 23.12.92 CHB NEU: D-BEM-2 * 22.07.93 RWB NEU: D-WV(=WIEDERVORLAGE) ZUR]CKSCHREIBEN WG. * TRANSFER * 11.02.94 CHB NEU: D-TEILN-NR * 02.05.94 FA NEU: D-FPAC-COUPON. * 18.03.97 FA D-BUERO, D-TYP. ******** * FLTIDRU 01 FLTIDRU-SATZ. 02 FLTIDRU-STRUCTURE. 05 FILLER PIC X(32767). copy "airche--he-fltidru--str" replacing ==:REDEF:== by ==FLTIDRU-STRUCTURE==. * * 28.08.90 T-KENZ IN T-VISAKENZ GEAENDERT. * * TEILNEHMER 01 TEILNEHMER-SATZ. 02 TEILNEHMER-STRUCTURE. 05 FILLER PIC X(32767). copy "airche--he-teilnehmer--str" replacing ==:REDEF:== by ==TEILNEHMER-STRUCTURE== . **** **** REDEFINITION FUER EXPEDIENT U. SB-AENDERUNGEN **** copy "airche--he-expedient--str" replacing ==:REDEF:== by ==TEILNEHMER-STRUCTURE==. * * Žnderungen bitte auch in F-TOURW.IN.C vornehmen! * 13.12.01 CHB WVL-KEY * 15.11.95 HE-ANZAHLUNG * 14.08.95 HE-KUNDNR. * * TOURKUN 01 TOURKUN-SATZ. 02 TOURKUN-STRUCTURE. 05 FILLER PIC X(32767). copy "airche--he-tourkun--str" replacing ==:REDEF:== by ==TOURKUN-STRUCTURE==. * * 08.12.01 CHB ETL-DEMEUR * 08.03.90 FA ETL-GUTSCHRIFT NUR FUER "T", SONST ETL-MELD. * EETOURKUN 01 EETOURKUN-SATZ. 02 EETOURKUN-STRUCTURE. 05 FILLER PIC X(32767). copy "airche--ee-tourkun--str" replacing ==:REDEF:== by ==EETOURKUN-STRUCTURE==. * copy "airche--etl-bseite--str" replacing ==:REDEF:== by ==EETOURKUN-STRUCTURE==. * ******* * 03.03.03 CHB CA-FILLER * 03.03.03 CHB AUS FLCRS2 ******* * CRSACCESS 01 CRSACCESS-SATZ. 02 CRSACCESS-STRUCTURE. 05 FILLER PIC X(32767). copy "airche--he-crsaccess--str" replacing ==:REDEF:== by ==CRSACCESS-STRUCTURE==. * * PARAMETER 01 PARAMETER-SATZ. 02 PARAMETER-STRUCTURE. 05 FILLER PIC X(32767). copy "airche--he-parameter--str" replacing ==:REDEF:== by ==PARAMETER-STRUCTURE==. * copy "airche--he-par-saison--str" replacing ==:REDEF:== by ==PARAMETER-STRUCTURE==. * * <<< data structures for SQL-Bridge 77 SYSTEM-STATUS PIC S999 COMP-4 VALUE ZERO. COPY "w-parueb.cpy". 77 FI-STAT PIC X(02) VALUE SPACES. 77 FI-ENDE PIC 9(01) VALUE ZEROES. 77 SWNO5 PIC X(01) VALUE "5". 77 SWNO3 PIC X(01) VALUE "3". 77 T1 PIC S9(4) COMP-4 VALUE ZEROES. 77 T2 PIC S9(4) COMP-4 VALUE ZEROES. 77 IN-CHAR PIC X(01) VALUE SPACE. 77 POINT1 PIC S9(4) COMP-4 VALUE ZERO. 77 POINT1-2 PIC S9(4) COMP-4 VALUE ZERO. 77 POINT1-XT PIC S9(4) COMP-4 VALUE ZERO. 77 XT-FARECALC PIC X(240) VALUE SPACES. 77 POINT1-RR PIC S9(4) COMP-4 VALUE ZERO. 77 TEXT-RR PIC X(240) VALUE SPACES. 77 D1 PIC S9(4) COMP-4 VALUE ZERO. 77 RES-LFD PIC S9(4) COMP-4 VALUE ZERO. 77 W-INTEGER PIC 9(04) VALUE ZEROES. 77 W-SEQ PIC X(01) VALUE SPACES. 77 W-ANZ PIC 9(06) VALUE ZEROES. 77 W-ARR PIC X(03) VALUE SPACES. 77 VGL-PERS PIC 9(02) VALUE ZEROES. 77 DUP-RECH PIC 9(06) COMP-6 VALUE ZEROES. 77 EG-DATN PIC 9(06) VALUE ZEROES. 77 DUP-DFKEY PIC X(11) VALUE SPACES. 77 W-TVL-PAX PIC 9(02) VALUE ZEROES. 77 BEFEHL PIC X(80) VALUE SPACES. 77 PFAD PIC X(80) VALUE SPACES. 77 FFTEXT PIC X(45) VALUE SPACES. 77 FFTEXT2 PIC X(40) VALUE SPACES. 77 FILENAME PIC X(80) VALUE SPACES. 77 MWST PIC 99V99 COMP-6 VALUE 16. 77 DAT-STAT PIC S9(4) COMP-4 VALUE ZEROES. 77 DAT-STAT2 PIC S9(8) COMP-4 VALUE ZEROES. 77 TAGE PIC S9(4) COMP-4 VALUE ZEROES. 77 W-WOCHE pic 9(2) VALUE ZEROES. 77 MAX-CONNR PIC S9(4) COMP-4 VALUE ZEROES. 77 PNT1 PIC S9(4) COMP-4 VALUE ZEROES. 77 PNT2 PIC S9(4) COMP-4 VALUE ZEROES. 77 PNT3 PIC S9(4) COMP-4 VALUE ZEROES. 77 MAX-MSG PIC S9(4) COMP-4 VALUE ZEROES. 77 MAX-SEG PIC S9(4) COMP-4 VALUE ZEROES. 77 MAX-COM PIC S9(4) COMP-4 VALUE ZEROES. 77 MAX-ELE PIC S9(4) COMP-4 VALUE ZEROES. 77 S-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 C-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 T-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-H-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-I-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-T-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-A-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-D-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-G-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-K-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-KN-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-KS-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-KFT-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-KNT-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-KST-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-Q-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-M-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-O-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-FE-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-FM-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-FO-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-FP-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-FV-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-FS-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 R-FT-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 AMD-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 OVFL-CNT PIC S9(4) COMP-4 VALUE ZEROES. 77 DIS-PNT1 PIC +(04)9. 77 DIS-PNT2 PIC +(04)9. 77 DIS-PNT3 PIC +(04)9. 77 DIS-PNTM PIC +(04)9. 77 DIS-PNTS PIC +(04)9. 77 DIS-OVFL PIC +(04)9. 01 W-CHAR6. 02 W-NUM6 PIC 9(06) VALUE ZEROES. 01 PNT-FELDER. 02 PNT-EIN PIC S9(4) COMP-4 VALUE ZEROES. 02 PNT-AUS PIC S9(4) COMP-4 VALUE ZEROES. 02 PNT-MSG PIC S9(4) COMP-4 VALUE ZEROES. 02 PNT-SEG PIC S9(4) COMP-4 VALUE ZEROES. 02 PNT-COM PIC S9(4) COMP-4 VALUE ZEROES. 02 PNT-ELE PIC S9(4) COMP-4 VALUE ZEROES. 01 W-PRUEF. 02 W-PR-STX PIC X(01). 02 W-PR-MUCGSX. 03 W-PR-MUCGS PIC X(05). 03 W-PR-VORG. 04 W-PR-RECHNRX. 05 W-PR-RECHNR PIC 9(06). 04 W-PR-STR PIC X(01). 04 W-PR-REISE PIC X(10). 01 ACCLAE-FELDER. 02 ACC-MAX PIC S9(4) COMP-4 VALUE ZEROES. 02 ACC-1 PIC S9(4) COMP-4 VALUE ZEROES. 02 ACC-2 PIC S9(4) COMP-4 VALUE ZEROES. 02 ACC-F3 PIC 9 COMP VALUE ZEROES. 02 ACC-PROZ PIC X(01) VALUE SPACES. 02 ACC-MWST PIC 9(01) VALUE ZEROES. 02 ACC-MINUS PIC S9 VALUE 1. 02 ACC-ZEICHEN PIC X(01). 02 ACC-BRUTTO PIC S9(10)V9(06) COMP-3 VALUE ZEROES. 02 F5-PIZR PIC S9(10)V9(06) COMP-3 VALUE ZEROES. 02 F5-FELD PIC X(40) VALUE SPACES. 02 ACC-ZAHL PIC S9(10)V9(06) COMP-3 VALUE ZEROES. 02 ACC-TAGE PIC S9(4) COMP-4 VALUE ZEROES. 02 ACC-DATN PIC 9(06) COMP-6 VALUE ZEROES. 02 FILLER REDEFINES ACC-DATN. 03 ACC-DATJ PIC 9(02) COMP-6. 03 ACC-DATM PIC 9(02) COMP-6. 03 ACC-DATT PIC 9(02) COMP-6. 02 ACC-SAISON PIC X(02) VALUE SPACES. 02 ZAHL-CHAR PIC X(20). 02 ZAHL-CH REDEFINES ZAHL-CHAR PIC X(01) OCCURS 20. 02 ZAHL-FILLER. 03 VORKOMMAX PIC X(10) JUST. 03 VORKOMMAN REDEFINES VORKOMMAX PIC 9(10). 03 NACHKOMMAX PIC X(06). 03 NACHKOMMAN REDEFINES NACHKOMMAX PIC 9(06). 02 ZAHL-X-OCC REDEFINES ZAHL-FILLER. 03 ZAHL-X PIC X(01) OCCURS 16. 02 ACC-BI-6. 04 ACC-BI-T PIC 9(02). 04 ACC-BI-M PIC 9(02). 04 ACC-BI-J PIC 9(02). 04 ACC-BI-JX REDEFINES ACC-BI-J PIC X(02). 02 FILLER REDEFINES ACC-BI-6. 03 ACC-BI-X PIC X(01) OCCURS 6. 01 PERSID PIC X(12). 01 SAISON PIC X(02). 01 N-SAISON REDEFINES SAISON PIC 9(02). 01 FILLER1. 02 FILLER PIC X. 02 DISY PIC X. 01 DIS-UC1 REDEFINES FILLER1 PIC S9(4) COMP-4. 01 FLAG-VARS. 02 FLAG-SUPER PIC 9(01) VALUE ZEROES. 02 FLAG-LAUFX. 03 FLAG-LAUF PIC 9(01) VALUE ZEROES. 02 FLAG-UPROG PIC 9(01) VALUE ZEROES. 01 HILFSFELD. 02 CLS PIC X(04) VALUE X"1B481B4A". 02 X1 PIC S9(4) COMP-4 VALUE ZEROES. 02 X2 PIC S9(4) COMP-4 VALUE ZEROES. 02 X3 PIC S9(4) COMP-4 VALUE ZEROES. 02 X4 PIC S9(4) COMP-4 VALUE ZEROES. 02 X5 PIC S9(4) COMP-4 VALUE ZEROES. 02 A1 PIC S9(4) COMP-4 VALUE ZEROES. 02 XD PIC S9(4) COMP-4 VALUE ZEROES. 02 L PIC S9(4) COMP-4 VALUE ZEROES. 02 Z PIC S9(4) COMP-4 VALUE ZERO. 02 ZZ PIC S9(4) COMP-4 VALUE ZERO. 02 DUP-Z PIC 9(02) COMP-6 VALUE ZEROES. 02 MAX-Z PIC S9(4) COMP-4 VALUE ZERO. 02 F1 PIC X(02) VALUE X"1B30". 02 F2 PIC X(02) VALUE X"1B32". 02 F3 PIC X(02) VALUE X"1B36". 02 F4 PIC X(02) VALUE X"1B38". 02 F5 PIC X(02) VALUE X"1B3A". 02 F6 PIC X(02) VALUE X"1B3C". 02 FTASTE PIC 9(02) COMP-6 VALUE 0. 02 ESC-ESC PIC X(02) VALUE X"1B1B". 02 DISZ2 PIC Z(02). 02 DISZ4 PIC Z(03)9. 02 FILLER REDEFINES DISZ4. 03 DIS-FLNR PIC Z9(03). 02 DISZ6 PIC Z(05)9. 02 DISM6 PIC -(05)9. 02 DISX1. 03 DIS91 PIC 9. 01 DATUM-VARIABLEN. 02 TAGESDATUM PIC 9(06) COMP-6. 02 HILF-DATUM PIC 9(06) COMP-6. 02 W-CD PIC 9(06). 02 W-CDX REDEFINES W-CD. 03 W-CDJ PIC 9(02). 03 W-CDM PIC 9(02). 03 W-CDT PIC 9(02). 02 DAT. 03 DATN PIC 9(06) COMP-6 VALUE 0. 03 DATX REDEFINES DATN. 04 DATJ PIC 9(02) COMP-6. 04 DAT4. 05 DATM PIC 9(02) COMP-6. 05 DATT PIC 9(02) COMP-6. 04 FILLER REDEFINES DAT4. 05 DAT4N PIC 9(04) COMP-6. 03 B-DATN PIC 9(06) COMP-6 VALUE 0. 02 G-DAT. 03 G-DATN PIC 9(06) VALUE ZEROES. 03 G-DATX REDEFINES G-DATN. 04 G-DATT PIC 9(02). 04 G-DATM PIC 9(02). 04 G-DATJ PIC 9(02). 02 W-TIME PIC 9(08) VALUE ZEROES. 02 FILLER REDEFINES W-TIME. 03 W-TI-HHMM PIC 9(04). 03 FILLER PIC X(04). 02 FILLER REDEFINES W-TIME. 03 W-TI-HH PIC 9(02). 03 W-TI-MM PIC 9(02). 03 W-TI-SS PIC 9(02). 03 FILLER PIC 9(02). 02 W-TD-HHMM PIC 9(04) VALUE ZEROES. 02 FILLER REDEFINES W-TD-HHMM. 03 W-TD-HH PIC 9(02). 03 W-TD-MM PIC 9(02). 02 BIDAT. 03 BIDAT4. 04 BIDATT PIC 9(02). 04 BIDAT1 PIC X(01). 04 BIDATM PIC 9(02). 03 BIDAT2 PIC X(01). 03 BIDATJ PIC 9(02). 02 W-FL-TTMMM. 03 W-FL-TAG PIC X(02). 03 W-FL-MON PIC X(03). 02 W-FL-DATN PIC 9(06). 02 FILLER REDEFINES W-FL-DATN. 03 W-FL-DATJ PIC 9(02). 03 W-FL-DATM PIC 9(02). 03 W-FL-DATT PIC 9(02). 01 MON-FILLER. 02 M-FILLER. 03 FILLER PIC X(12) VALUE "312831303130". 03 FILLER PIC X(12) VALUE "313130313031". 02 MONAT REDEFINES M-FILLER PIC 9(02) OCCURS 12. 02 MO-TEXT-FILLER. 03 FILLER PIC X(12) VALUE "JANFEBMARAPR". 03 FILLER PIC X(12) VALUE "MAYJUNJULAUG". 03 FILLER PIC X(12) VALUE "SEPOCTNOVDEC". 02 MO-TEXT REDEFINES MO-TEXT-FILLER PIC X(03) OCCURS 12. 01 WOCHENTAGE. 02 WOTAG PIC X(2) OCCURS 7. 01 DATUM. 02 DATUM-19 PIC X(02) VALUE "19". 02 DATUM-J PIC 9(02). 02 DATUM-STR1 PIC X(01) VALUE "/". 02 DATUM-M PIC 9(02). 02 DATUM-STR2 PIC X(01) VALUE "/". 02 DATUM-T PIC 9(02). 01 DATUMB. 02 DATUMB-19 PIC X(02) VALUE "19". 02 DATUMB-J PIC 9(02). 02 DATUMB-STR1 PIC X(01) VALUE "/". 02 DATUMB-M PIC 9(02). 02 DATUMB-STR2 PIC X(01) VALUE "/". 02 DATUMB-T PIC 9(02). 01 U-2000. 02 DISDAT6 PIC 9(06) VALUE ZEROES. 02 DISDAT8 PIC 9(08) VALUE ZEROES. 02 U-DAT8N PIC 9(08) COMP-6 VALUE ZEROES. 02 FILLER REDEFINES U-DAT8N. 03 U-DATJ4 PIC 9(04) COMP-6. 03 FILLER PIC X(02). 02 FILLER REDEFINES U-DAT8N. 03 U-DATJH PIC 9(02) COMP-6. 03 U-DAT6N PIC 9(06) COMP-6. 03 FILLER REDEFINES U-DAT6N. 04 U-DATJ PIC 9(02) COMP-6. 04 U-DATM PIC 9(02) COMP-6. 04 U-DATT PIC 9(02) COMP-6. 02 UW-CD PIC 9(08) COMP-6 VALUE ZEROES. 02 UX PIC S9(4) COMP-4 VALUE ZEROES. 02 UW-HT-REISEDAT PIC 9(08) COMP-6 VALUE ZEROES. 02 UW-HT-BISDAT PIC 9(08) COMP-6 VALUE ZEROES. 02 UW-HILFDAT PIC 9(08) COMP-6 VALUE ZEROES. 01 DIR-ZEILE. 02 DIR-PRUEF PIC X(01). 02 FILLER PIC X(15). 02 DIR-OWNER PIC X(08). 02 FILLER PIC X(01). 02 DIR-GROUP PIC X(08). 02 FILLER PIC X(22). 02 DIR-FILE PIC X(20). 01 H-FLUGDATENX. 02 H-FLUGDATEN OCCURS 20. 03 H-X PIC X. 03 H-FROM-3L PIC X(3). 03 H-FROM PIC X(17). 03 H-CIA PIC X(03). 03 H-FLY PIC X(04). 03 H-CL PIC X(01). 03 H-DATE PIC X(05). 03 H-TIME PIC X(04). 03 H-ST PIC X(02). 03 H-FAREBAS PIC X(14). 03 H-BEFORE PIC X(05). 03 H-AFTER PIC X(05). 03 H-FREE PIC X(03). 03 H-TIME2. 04 FILLER PIC X(04). 04 H-TIME2-X PIC X(01). 03 H-PLATZ PIC X(03). 03 FILLER PIC X(02). 03 H-ARR-3L PIC X(03). 03 H-ARR PIC X(17). 03 H-ARR-DATE pic X(03). * 01 DUP-EETOURKUN. 02 DUP-ET-KEYX PIC X(4). 02 DUP-ET-REST PIC X(103). * 01 ZWI-EETOURKUN. 02 ZWI-ET-KEYX PIC X(4). 02 ZWI-ET-REST PIC X(103). * 01 DUP-FLTIDRU. 02 DUP-KEY. 03 DUP-RECHX PIC X(3). 03 DUP-NR PIC 9(04) COMP-6. 03 DUP-CONNR PIC 9(02) COMP-6. 02 DUP-DRUCK-KEY. 03 DUP-DRUCK PIC X(01). 03 DUP-AIRL PIC 9(03). 02 DUP-REST. 03 DUP-TINR. 04 DUP-CODE PIC 9(04) COMP-6. 04 DUP-CODEX PIC X(01). 04 DUP-TICK PIC 9(10) COMP-6. 03 DUP-TIDAT PIC 9(06) COMP-6. 03 DUP-FARE1X PIC X(03). 0406 03 DUP-FARE1N PIC 9(8)V99 COMP-6. 03 DUP-FARE2X PIC X(03). 03 DUP-FARE2N PIC S9(5)V99 COMP-3. 03 DUP-TAX1X PIC X(03). 03 DUP-TAX1N PIC S9(3)V99 COMP-3. 03 DUP-TAX1LAND PIC X(02). 03 DUP-TAX2X PIC X(03). 03 DUP-TAX2N PIC S9(3)V99 COMP-3. 03 DUP-TAX2LAND PIC X(02). 03 DUP-TOTX PIC X(03). 03 DUP-TOTN PIC S9(5)V99 COMP-3. 03 DUP-MWSTKZ PIC X(01). 03 DUP-PROZ PIC 99V99 COMP-6. 03 DUP-AGNR PIC 9(06) COMP-6. 03 DUP-BEARB PIC X(04). 03 DUP-FACTOR PIC X(01). 03 DUP-ORIG-3L PIC X(03). 03 DUP-ORIG PIC X(17). 03 DUP-DEST-3L PIC X(03). 03 DUP-DEST PIC X(17). 03 DUP-TOURCODE PIC X(14). 03 DUP-NAM PIC X(26). 03 DUP-EXCHANGE. 04 DUP-EXCODE PIC 9(3). 04 DUP-EXTICK PIC 9(10). 03 DUP-ISSUE. 04 DUP-ISSUECODE PIC 9(3). 04 DUP-ISSUETICK PIC 9(10). 04 FILLER PIC X(19). 03 DUP-FLUGDATEN OCCURS 4. 04 DUP-X PIC X. 04 DUP-FROM-3L PIC X(03). 04 DUP-FROM PIC X(17). 04 DUP-CIA PIC X(03). 04 DUP-FLY PIC X(04). 04 DUP-CL PIC X(01). 04 DUP-DATE PIC X(05). 04 DUP-TIME PIC X(04). 04 DUP-ST PIC X(02). 04 DUP-FAREBAS PIC X(14). 04 DUP-BEFORE PIC X(05). 04 DUP-AFTER PIC X(05). 04 DUP-FREE PIC X(03). 04 DUP-TIME2 PIC X(05). 04 DUP-PLATZ PIC X(03). 04 FILLER PIC X(02). 03 DUP-TOX PIC X. 03 DUP-TO-3L PIC X(3). 03 DUP-TO PIC X(17). 03 DUP-CALCOCC. 04 DUP-CALC PIC X(60) OCCURS 4. 03 DUP-PAYM PIC X(30). 03 DUP-BEM PIC X(28). 03 DUP-TAX3. 04 DUP-TAX3X PIC X(03). 04 DUP-TAX3N PIC S9(3)V99 COMP-3. 04 DUP-TAX3LAND PIC X(02). 03 DUP-FILEKEY PIC X(20). 03 DUP-ISI PIC X(04). 03 DUP-DRU PIC X. 03 DUP-PREIS PIC S9(7)V99 COMP-3. 03 DUP-BEM-2 PIC X(28). 03 DUP-WV PIC X(02). 03 DUP-TEILN-NRX. 04 DUP-TEILN-NR PIC 9(02). 03 DUP-FPAC-COUPON PIC X(04). 180397 03 DUP-BUERO PIC X(04). 180397 03 DUP-TYP PIC X. 03 DUP-PROVX. 04 DUP-PROV PIC S9(7)V99 COMP-3. 03 DUP-USER-ID PIC X(08). 03 DUP-USER-STOP PIC X(08). 03 FILLER PIC X(58). * 01 VGL-D-KEY. 02 VGL-D-RECHX PIC X(3). 02 VGL-D-NR PIC 9(04) COMP-6. 02 VGL-D-CONNR PIC 9(02) COMP-6. 01 VGL-DD-KEY. 02 VGL-DD-RECHX PIC X(3). 02 VGL-DD-NR PIC 9(04) COMP-6. 02 VGL-DD-CONNR PIC 9(02) COMP-6. * 01 ALLG-ELEMENTE. 02 W-SEGTERM PIC X(01) VALUE X"1C". 02 W-COMTERM PIC X(01) VALUE X"1D". 02 W-CRLF. 03 W-CR PIC X(01) VALUE X"0D". 03 W-LF PIC X(01) VALUE X"0A". 02 H-SEGTERM PIC X(01) VALUE "m". 02 H-COMTERM PIC X(01) VALUE ";". 02 H-CRLF. 03 H-CR PIC X(01) VALUE "m". 03 H-LF PIC X(01) VALUE "a". * 01 UNST-FILLER. 02 U-DELIM PIC X(05). 02 UNST-T1 PIC X(500). 02 FILLER REDEFINES UNST-T1. 03 UNST-T1-70 PIC X(70). 03 FILLER PIC X(0430). 02 UNST-T2 PIC X(100). 02 FILLER REDEFINES UNST-T2. 03 UNST-T2-70 PIC X(070). 03 FILLER PIC X(030). 02 UNST-T3 PIC X(100). * 01 STRING-FILLER. 02 STRING-TEXT PIC X(90). 02 FILLER REDEFINES STRING-TEXT. 03 STRING-T1 PIC X(33). 03 STRING-T2 PIC X(33). 03 FILLER REDEFINES STRING-T2. 04 STRING-T2-1 PIC X(01). 04 FILLER PIC X(32). 03 STRING-TITEL PIC X(20). 03 STRING-VON PIC X(04). 01 T-HILF-FILLER. 02 T-HILF PIC X(26). 02 FILLER REDEFINES T-HILF. 03 T-4 PIC X(04). 03 FILLER PIC X(22). 02 T-HILF-2 PIC X(26). * ******** * EDIFACT-VARIABLE/IATAHH-UEBERGABEBEREICHE ******** 01 ED-EINGANG. 02 ED-EIN-3840 PIC X(9990). 02 FILLER REDEFINES ED-EIN-3840. 03 ED-EIN-70. 04 ED-EIN-10 PIC X(10). 04 FILLER PIC X(60). 03 FILLER PIC X(9920). 01 ED-SEGMENT. 02 SEG-DATA PIC X(401) VALUE SPACES. 02 FILLER REDEFINES SEG-DATA. 03 SEG-ZEILE. 04 SEG-TAG4. 05 SEG-TAG3. 06 SEG-TAG PIC X(02). 06 FILLER PIC X(01). 05 FILLER PIC X(01). 04 FILLER PIC X(76). 03 FILLER PIC X(320). 03 SEG-DATA-DELIM PIC X(01). 01 RESPONSE-ELEMENTE. 02 R-ELEMENTE. 03 AMD-ELEMENTE. 04 AMD-RECLOC. 05 AMD-PRUEF PIC X(06). 05 AMD-FILEKEY PIC X(06). 04 AMD-PERS. 05 AMD-PNRPERN PIC 9(02). 05 AMD-AIRPERN PIC 9(02). 04 AMD-OFFICEID PIC X(09). 04 AMD-IATANR PIC X(08). 03 R-A-ELEMENTE. 04 R-A-AIRLINE. 05 R-A-AIRL PIC X(03). 05 R-A-CODE. 06 R-A-CODEN PIC 9(03). 05 R-A-CHECK PIC X(01). 03 R-D-ELEMENTE. 04 R-D-TIDAT. 05 R-D-TIDATN PIC 9(06). 03 R-G-ELEMENTE. 04 R-G-ISI PIC X(04). 04 R-G-ORIGDEST. 05 R-G-ORIG PIC X(03). 05 R-G-DEST PIC X(03). 03 R-H-ELEMENTE. 04 R-H-ORIGX. 05 FILLER PIC X(03). 05 R-H-X PIC X(01). 05 R-H-FROM-3L PIC X(03). 04 R-H-FROM PIC X(17). 04 R-H-ARR-3L PIC X(03). 04 R-H-ARR PIC X(17). 04 R-H-FLUG. 05 R-H-CIA PIC X(06). 05 R-H-FLY PIC X(05). 05 R-H-CL-SER PIC X(02). 05 R-H-CL PIC X(02). 05 R-H-DATE. 06 R-H-TT PIC 9(02). 06 R-H-MMM PIC X(03). 05 R-H-TIME. 06 R-H-HH PIC 9(02). 06 R-H-MM PIC 9(02). 06 R-H-AP PIC X(01). 05 R-H-ARR-TIME. 06 R-H-A-HH PIC 9(02). 06 R-H-A-MM PIC 9(02). 06 R-H-A-AP PIC X(01). 05 R-H-ARR-DATE. 06 R-H-A-TT PIC 9(02). 06 R-H-A-MMM PIC X(03). 04 R-H-STATUS. 05 R-H-ST PIC X(02). 04 R-H-PNRSTATUS. 05 R-H-PNRST PIC X(02). 04 R-H-FREE PIC X(03). 03 R-M-ELEMENTE. 04 R-M-DATAX OCCURS 28. 05 R-M-PCODE PIC X(03). 05 R-M-FAREBAS PIC X(06). 05 R-M-DESIGNATOR PIC X(06). 03 R-O-ELEMENTE. 04 R-O-VALIDITY OCCURS 28. 05 R-O-BEFORE PIC X(05). 05 R-O-AFTER PIC X(05). 03 R-K-ELEMENTE. 04 R-K-FARE1X. 05 FILLER PIC X(01). 05 R-K-FARE1-WS PIC X(03). 05 R-K-FARE1 PIC X(11). 04 R-K-FARE2X. 05 R-K-FARE2-WS PIC X(03). 05 R-K-FARE2 PIC X(11). 04 R-K-TOTAL. 05 R-K-TTL-WS PIC X(03). 05 R-K-TTL PIC X(11). 03 R-KFT-ELEMENTE. 04 R-KFT-TAXX OCCURS 31. 05 FILLER PIC X(01). 05 R-KFT-WS PIC X(03). 05 R-KFT-TAX PIC X(09). 05 R-KFT-TAXLAND PIC X(03). 03 R-Q-ELEMENTE. 04 R-Q-CALC PIC X(430). 03 R-I-ELEMENTE. 04 R-I-NAMEX. 05 R-I-LFD. 06 R-I-LFDN PIC 9(02). 05 R-I-NAME PIC X(64). 03 R-T-ELEMENTE. 04 R-T-TICKETNR. 05 R-TIX-TYP PIC X(01). 05 R-T-CODEX. 06 R-T-CODEN PIC 9(03). 05 FILLER PIC X(01). 05 R-T-TIXX. 06 R-T-TIXN PIC 9(10). 05 FILLER REDEFINES R-T-TIXX. 06 FILLER PIC X(08). 06 R-T-TIX-RN PIC 9(02). 05 R-T-STRICH PIC X(01). 05 R-T-CONJX. 06 R-T-CONJN PIC 9(02). 03 R-FF-ELEMENTE. 04 R-FF-TEXT PIC X(248). ***** * COPY MEMBER ***** COPY "f-whe.cpy". COPY "w-zahl.cpy". COPY "bizeil.cpy". 02 FILLER REDEFINES BIZEIL. 03 SHIFT-ITEM. 04 SHIFT-01-BYTE PIC X(01). 04 SHIFT-REST PIC X(284). PROCEDURE DIVISION. * DECLARATIVES. DCL SECTION. USE AFTER ERROR PROCEDURE DIRLIST AIRINPUT. DCL-EX. EXIT. END DECLARATIVES. * ANFANG SECTION. P00. ******** * ACCEPT FLAG-LAUFX FROM COMMAND-LINE. IF FLAG-LAUFX = "2" OR "3" NEXT SENTENCE ELSE MOVE 1 TO FLAG-LAUF. IF FLAG-LAUF = 1 MOVE "/transx1/bsp-ok/" TO PFAD MOVE "/transx1/bsp-ok/ls.airche" TO FILENAME ELSE MOVE "/transx1/bsp-notok/" TO PFAD MOVE "/transx1/bsp-notok/ls.airche" TO FILENAME. ****** * WENN AIRIMP ALS HINTERGRUNDPROGRAMM LAEUFT: FLAG-UPROG = 1 ****** MOVE 1 TO FLAG-UPROG. ACCEPT W-CD FROM DATE. *HELP* MOVE W-CD TO DATN. COMPUTE W-WOCHE = (DATM - 1) * 4 + 1. IF DATT > 7 ADD 1 TO W-WOCHE. IF DATT > 15 ADD 1 TO W-WOCHE. IF DATT > 23 ADD 1 TO W-WOCHE. ee- * OPEN INPUT CRSACCESS, TEILNEHMER. ee+ MOVE "crsacces" TO VIEW--PATH ee+ MOVE "OPN" TO VIEW--FUNC ee+ MOVE "I" TO VIEW--OPNMOD ee+ MOVE "CRSACCES1" TO VIEW--IONAME ee+ CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH VIEW--KEY-EQUAL-FIX VIEW--PARAM ee+ MOVE VIEW--STATUS TO FI-STAT ee+ MOVE "teilnehm" TO VIEW--PATH ee+ MOVE "OPN" TO VIEW--FUNC ee+ MOVE "I" TO VIEW--OPNMOD ee+ MOVE "TEILNEHM1" TO VIEW--IONAME ee+ CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH VIEW--KEY-EQUAL-FIX VIEW--PARAM. OPEN EXTEND PCS-PROTDATEI. ee- * OPEN I-O AIRLIST, FLTIDRU, FLDAT. ee+ MOVE "airlist" TO VIEW--PATH ee+ MOVE "OPN" TO VIEW--FUNC ee+ MOVE "U" TO VIEW--OPNMOD ee+ MOVE "AIRLIST1" TO VIEW--IONAME ee+ CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH VIEW--KEY-EQUAL-FIX VIEW--PARAM ee+ MOVE VIEW--STATUS TO FI-STAT ee+ MOVE "fltidru" TO VIEW--PATH ee+ MOVE "OPN" TO VIEW--FUNC ee+ MOVE "U" TO VIEW--OPNMOD ee+ MOVE "FLTIDRU1" TO VIEW--IONAME ee+ CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH VIEW--KEY-EQUAL-FIX VIEW--PARAM ee+ MOVE VIEW--STATUS TO FI-STAT ee+ MOVE "fldat" TO VIEW--PATH ee+ MOVE "OPN" TO VIEW--FUNC ee+ MOVE "U" TO VIEW--OPNMOD ee+ MOVE "FLDAT1" TO VIEW--IONAME ee+ CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH VIEW--KEY-EQUAL-FIX VIEW--PARAM ee+ MOVE VIEW--STATUS TO FI-STAT. ee- * OPEN I-O TOURKUN, EETOURKUN. ee+ MOVE "fltourku" TO VIEW--PATH ee+ MOVE "OPN" TO VIEW--FUNC ee+ MOVE "U" TO VIEW--OPNMOD ee+ MOVE "FLTOURKU1" TO VIEW--IONAME ee+ CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH VIEW--KEY-EQUAL-FIX VIEW--PARAM ee+ MOVE VIEW--STATUS TO FI-STAT ee+ MOVE "fleetour" TO VIEW--PATH ee+ MOVE "OPN" TO VIEW--FUNC ee+ MOVE "U" TO VIEW--OPNMOD ee+ MOVE "FLEETOUR1" TO VIEW--IONAME ee+ CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH VIEW--KEY-EQUAL-FIX VIEW--PARAM ee+ MOVE VIEW--STATUS TO FI-STAT. ee- * OPEN I-O PARAMETER. ee+ MOVE "parametr" TO VIEW--PATH ee+ MOVE "OPN" TO VIEW--FUNC ee+ MOVE "U" TO VIEW--OPNMOD ee+ MOVE "PARAMETR1" TO VIEW--IONAME ee+ CALL "dbwrapper" USING VIEW--IONAME VIEW--PATH VIEW--KEY-EQUAL-FIX VIEW--PARAM. ******** * PERSID ERMITTELN ******** MOVE SPACES TO PERSID. MOVE ZEROES TO DAT-STAT2, DAT-STAT. CALL "PERID2" USING PERSID, DAT-STAT2, DAT-STAT. CALL "ZCMSWF" USING SWNO3. ****** * DIRECTORY EINTRAEGE IN LS: FILENAME UEBER COMMAND-LINE ****** OPEN INPUT DIRLIST. IF FI-STAT NOT = "00" GO TO ENDE. P010. READ DIRLIST NEXT END GO TO ENDE. IF FI-STAT NOT < "10" GO TO ENDE. IF T2 < 56 GO TO P010. MOVE DL-ZEILE (1:T2) TO DIR-ZEILE. IF DIR-PRUEF NOT = "-" GO TO P010. * IF DIR-OWNER NOT = "nobody" GO TO P010. * IF DIR-GROUP NOT = "nobody" GO TO P010. MOVE SPACES TO FILENAME. STRING PFAD DELIMITED BY " " DIR-FILE DELIMITED BY SIZE INTO FILENAME. OPEN INPUT AIRINPUT. IF FI-STAT > "10" GO TO P010. MOVE SPACES TO RESPONSE-ELEMENTE. MOVE ZEROES TO W-ANZ. ******* * AUSLESEN DER 7A-TICKETING-AIR-SATZES ******* P020. READ AIRINPUT NEXT END GO TO P098. IF FI-STAT = "10" GO TO P098. IF FI-STAT > "10" GO TO P098. IF T1 < 10 GO TO P020. ADD 1 TO W-ANZ. MOVE HE-AIRINPUT (1:T1) TO ED-EIN-3840. IF ED-EIN-10 = "AIR-BLK204" GO TO P060-204. IF ED-EIN-10 = "AIR-BLK206" GO TO P060-206. GO TO P098. ******* * DATEN AUS 7A-TICKETING-AIR DATENSATZ EXTRAHIEREN * 7A A.I.R VERSION 204 --> P200 * 7A A.I.R VERSION 206 --> P300 ******* P060-204. MOVE SPACES TO RESPONSE-ELEMENTE, H-FLUGDATENX PCS-SATZ. MOVE T1 TO MAX-MSG. PERFORM P200-SEC. GO TO P098. P060-206. MOVE SPACES TO RESPONSE-ELEMENTE, H-FLUGDATENX, PCS-SATZ. MOVE T1 TO MAX-MSG. PERFORM P300-SEC. GO TO P098. P098. CLOSE AIRINPUT. GO TO P010. P099. EXIT. P200-SEC SECTION. P200. DISPLAY "AIR-BLK204" LINE 23 COL 01. IF FLAG-UPROG = ZEROES ACCEPT IN-CHAR WITH NO ADVANCING. P299-EX. EXIT. P300-SEC SECTION. P300. * INSPECT HE-AIRINPUT REPLACING ALL H-LF BY W-LF. MOVE 1 TO PNT-EIN. MOVE ZEROES TO PNT1, PNT2, OVFL-CNT. MOVE SPACES TO UNST-FILLER. ******** * 'AIR-BLK206'-SEG: ANZAHL SEGEMENTE INSGES. ******** UNSTRING ED-EIN-3840 DELIMITED BY H-SEGTERM INTO UNST-T1 DELIMITER IN U-DELIM COUNT IN PNT1 UNST-T2 COUNT IN PNT2 WITH POINTER PNT-EIN. * ON OVERFLOW MOVE 1 TO OVFL-CNT. IF U-DELIM NOT = H-SEGTERM DISPLAY "U-DELIM:T>" LINE 23 COL 01 U-DELIM "<" GO TO FF-EDI. IF PNT1 > 500 MOVE PNT1 TO DIS-PNT1 DISPLAY "PNT1: " LINE 23 COL 01 DIS-PNT1 GO TO FF-EDI. ****** * 1. PORTION ****** MOVE UNST-T1 TO SEG-DATA. IF SEG-DATA (1:14) = "AIR-BLK206;7A;" NEXT SENTENCE ELSE IF SEG-DATA (1:14) = "AIR-BLK206;BT;" NEXT SENTENCE ELSE IF SEG-DATA (1:13) = "AIR-BLK206;O;" GO TO P397A ELSE DISPLAY "AIROPT NOT = 7A " LINE 23 COL 01 GO TO FF-EDI. MOVE PNT1 TO MAX-SEG. MOVE 1 TO PNT-MSG. ADD 1, MAX-SEG TO PNT-MSG. MOVE ZEROES TO S-CNT, C-CNT, T-CNT. MOVE ZEROES TO AMD-CNT, R-A-CNT, R-D-CNT, R-G-CNT R-H-CNT, R-I-CNT, R-T-CNT, R-K-CNT R-KN-CNT, R-KS-CNT, R-KFT-CNT, R-KNT-CNT R-KST-CNT, R-Q-CNT, R-FE-CNT, R-FM-CNT R-FO-CNT, R-FP-CNT, R-FV-CNT, R-FS-CNT R-FT-CNT, R-M-CNT, R-O-CNT. MOVE SPACES TO UNST-FILLER. ******* * NAECHSTES SEGMENT ******* P310. MOVE PNT-MSG TO PNT-EIN. MOVE ZEROES TO PNT1, PNT2, OVFL-CNT. UNSTRING ED-EIN-3840 DELIMITED BY H-SEGTERM INTO UNST-T1 DELIMITER IN U-DELIM COUNT IN PNT1 UNST-T2 COUNT IN PNT2 WITH POINTER PNT-EIN ON OVERFLOW MOVE 1 TO OVFL-CNT. ****** * MAX-SEG = LAENGE DES ZU BEARBEITENDEN/GELESENEN SEGMENTES * SEG-DELIMITER ANS ENDE DAMIT LETZTES COMPOSITE * AUCH PER UNST-T1 ABGEARBEITET WERDEN KANN ****** MOVE PNT1 TO MAX-SEG. MOVE UNST-T1 TO SEG-DATA. IF U-DELIM NOT = H-SEGTERM DISPLAY "U-DELIM NOT = H-SEGTERM" LINE 23 COL 01 U-DELIM "<" GO TO FF-EDI. MOVE H-COMTERM TO SEG-DATA-DELIM. MOVE 1 TO PNT-SEG. MOVE ZEROES TO C-CNT. ****** * 7A-A.I.R SEGMENTE: ACHTUNG: SEQUENZ DER ABFRAGEN WESENTLICH! ****** P310-DATA-LINES. ****** * SEGEMENTE DIE NUR EINMAL PRO 7A-A.I.R VORKOMMEN ****** IF SEG-TAG3 = "AMD" GO TO P315. IF AMD-CNT < 3 GO TO P315. IF SEG-TAG = "A-" GO TO P320. IF SEG-TAG = "B-" GO TO P310-W. IF SEG-TAG = "C-" GO TO P310-W. IF SEG-TAG = "D-" GO TO P325. IF SEG-TAG = "G-" GO TO P330. IF SEG-TAG = "H-" GO TO P335. IF SEG-TAG = "K-" GO TO P340. IF SEG-TAG3 = "KN-" GO TO P340. IF SEG-TAG3 = "KS-" GO TO P340. IF SEG-TAG3 = "KFT" GO TO P345. IF SEG-TAG3 = "KNT" GO TO P345. IF SEG-TAG3 = "KST" GO TO P345. IF SEG-TAG = "X-" GO TO P310-W. IF SEG-TAG = "L-" GO TO P310-W. IF SEG-TAG = "M-" GO TO P370. IF SEG-TAG = "N-" GO TO P310-W. IF SEG-TAG = "O-" GO TO P375. IF SEG-TAG = "U-" GO TO P310-W. IF SEG-TAG = "Q-" GO TO P350. IF SEG-TAG3 = "SIA" GO TO P310-W. IF SEG-TAG4 = "ENDX" GO TO P392. IF SEG-TAG3 = "END" GO TO P392. ***** * SEGMENTE DIE MEHRMALS PRO 7A-A.I.R-DATENSATZ VORKOMMEN KOENNEN * -PASSENGER DATA-LINES * -PNR TICKETING DATA LINES * -PNR INVOICE/ITINERARY REMARKS * -PREPAID TICKET ADVICE ELEMENT LINES ***** IF SEG-TAG = "I-" GO TO P355. IF SEG-TAG = "S-" GO TO P310-W. IF SEG-TAG = "T-" GO TO P360. IF SEG-TAG = "FE" GO TO P365. IF SEG-TAG = "FM" GO TO P365. IF SEG-TAG = "FO" GO TO P365. IF SEG-TAG = "FP" GO TO P365. IF SEG-TAG = "FV" GO TO P365. IF SEG-TAG = "FS" GO TO P365. IF SEG-TAG = "FT" GO TO P365. IF SEG-TAG = "FH" GO TO P310-W. IF SEG-TAG = "TK" GO TO P310-W. IF SEG-TAG = "RM" GO TO P310-W. IF SEG-TAG3 = "OPL" GO TO P310-W. IF SEG-TAG3 = "SSR" GO TO P310-W. IF SEG-TAG3 = "OSI" GO TO P310-W. IF SEG-TAG3 = "FQV" GO TO P310-W. MOVE SPACES TO FFTEXT. STRING "SEGMENT UNBEKANNT: " DELIMITED BY SIZE SEG-TAG4 DELIMITED BY SIZE INTO FFTEXT. IF FLAG-UPROG NOT = ZEROES PERFORM FFF-F ELSE DISPLAY FFTEXT LINE 23 COL 1 ERASE END LINE ACCEPT IN-CHAR WITH NO ADVANCING IF IN-CHAR = "E" GO TO P392. ******* * DATA-ELEMENTS: B- TICKETING INPUT * DATA-ELEMENTS: C- SERVICING CARRIER * DATA-ELEMENTS: X- OPERATIONAL FLIGHT AIR-SEGMENT * DATA-ELEMENTS: U- UNTICKETED SEGMENT DATA * DATA-ELEMENTS: L- PAYMENT RESTRICTION LINE * DATA-ELEMENTS: M- FARE BASIS CODE LINE * DATA-ELEMENTS: N- SEGMENT FARE LINES * DATA-ELEMENTS: O- VALIDITY DATES LINES * DATA-ELEMENTS: S- SEAT NUMBER DATA * DATA-ELEMENTS: TK TICKETING ARRANGEMENT * DATA-ELEMENTS: FH HAND TICKET NUMBER * DATA-ELEMENTS: RM REMARKS * DATA-ELEMENTS: SIA SUPPLEMENTRAY NEGO DATA LINE * DATA-ELEMENTS: SSR SPECIAL SERVICE REQUEST * DATA-ELEMENTS: OSI OTHER SERVIDE INFORMATION * DATA-ELEMENTS: FQV FREQUENT FLYER * DATA-ELEMENTS: OPL OP REMARKS ******* P310-W. GO TO P390. ********* * LABEL PERFORM ********* UNST-SEG-DATA. MOVE ZEROES TO PNT1, PNT2, OVFL-CNT. MOVE SPACES TO UNST-FILLER. MOVE PNT-SEG TO PNT-EIN. UNSTRING SEG-DATA DELIMITED BY H-COMTERM INTO UNST-T1 DELIMITER IN U-DELIM COUNT IN PNT1 UNST-T2 COUNT IN PNT2 WITH POINTER PNT-EIN ON OVERFLOW ADD 1 TO OVFL-CNT. ****** * MAX-COM = LAENGE DES ZU BEARBEITENDEN/GELESENEN COMPONENTS ****** MOVE PNT1 TO MAX-COM, DIS-PNT1. ****** * 'AMD'-SEGMENT: BESONDERHEIT: TERMINATOR = 3. CR! * IM 3. TEILSEGMENT STEHT PNR-FILEKEY ****** P315. ADD 1 TO AMD-CNT. IF AMD-CNT < 3 GO TO P319. IF AMD-CNT > 3 MOVE "AMD: > 3 TEIL-SEGMENTE" TO FFTEXT PERFORM FFF-F. P316. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P319. ADD 1 TO C-CNT. IF C-CNT > 6 GO TO P318. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P317. ******* * DATA-ELEMENTS: DIE ERSTEN 4 IM DRITTEN TEIL-SEGMENT ******* * 1,. * 2,. * 3, 1 'MUC1A ' + REC.LOC OF PNR * 2 TTL NUMBER OF PASSENGERS IN PNR * TTL NUMBER OF PASSENGERS IN AIR * 3 AMADEUS OFFICE ID BOOKING AGENCY * 4 IATA-NR OF BOOKING AGENCY * 5 AMADEUS OFFICE ID FIRST OWNER * 6 IATA-NR OF FIRST OWNER * 7 AMADEUS OFFICE ID CURRENT OWNER * 8 IATA-NR OF CURRENT OWNER ******* IF C-CNT = 1 MOVE UNST-T1 TO AMD-RECLOC IF AMD-PRUEF NOT = "MUC1A" MOVE "AMD-PRUEF NOT 'MUC1A'" TO FFTEXT PERFORM FFF-F ELSE DISPLAY AMD-FILEKEY LINE 23 COL 1 ERASE END LINE. IF C-CNT = 2 MOVE UNST-T1 TO AMD-PERS IF AMD-PERS NOT NUMERIC MOVE "AMD-PERS NOT NUMERIC" TO FFTEXT PERFORM FFF-F. IF C-CNT = 5 IF UNST-T1 NOT = SPACES MOVE UNST-T1 TO AMD-OFFICEID IF AMD-OFFICEID = SPACES MOVE "AMD-OFFICEID = SPACES" TO FFTEXT PERFORM FFF-F. IF C-CNT = 6 IF UNST-T1 NOT = SPACES MOVE UNST-T1 TO AMD-IATANR IF AMD-IATANR NOT NUMERIC MOVE "AMD-IATANR NOT NUMERIC" TO FFTEXT PERFORM FFF-F. P317. ****** * SCAN ABBRECHEN WENN EINE DER IATANR = TMG-IATANR! ****** ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P318. GO TO P316. ****** * REFERENZ FELDER FUELLEN ****** * VERKNUEPFUNG PNR <--> VORGNR: CRSACCESS ****** P318. MOVE AMD-FILEKEY TO PCS-FILEKEY. MOVE ZEROES TO DUP-RECH. MOVE AMD-FILEKEY TO HE-CRSACCESS. ee- * START CRSACCESS KEY NOT < CA-FKEY INVALID GO TO P318B. ee+ MOVE "NL" TO VIEW--STRMOD ee+ MOVE 01 TO VIEW--KEYNUM ee+ PERFORM START-CRSACCES1 ee+ IF STAT--INVALID ee+ GO TO P318B ee+ END-IF. P318A. ee- * READ CRSACCESS NEXT END GO TO P318B. ee+ PERFORM READ-CRSACCES1-NEXT ee+ IF STAT--ATEND ee+ GO TO P318B ee+ END-IF. IF CA-FILEKEY NOT = AMD-FILEKEY GO TO P318B. IF CA-CRS NOT = "A" GO TO P318A. MOVE CA-RECH TO DUP-RECH. P318B. MOVE DUP-RECH TO PCS-RECH. IF DUP-RECH = ZEROES IF FLAG-UPROG = ZEROES MOVE 000009 TO DUP-RECH ELSE GO TO P397. MOVE DUP-RECH TO DISZ6. DISPLAY " -> " LINE 23 COL 10 DISZ6 LINE 23 COL 15. IF DUP-RECH = ZEROES MOVE SPACES TO EBI-6 ACCEPT EBI-6 WITH NO ADVANCING IF EBI-6 NUMERIC MOVE EBI-6N TO DUP-RECH. ****** * D-NR FESTLEGEN ****** MOVE DUP-RECH TO D-RECH. MOVE 1 TO D-NR. MOVE ZEROES TO D-CONNR. MOVE D-KEY TO VGL-D-KEY. MOVE VGL-D-KEY TO HE-FLTIDRU. MOVE ZEROES TO D-NR, D-CONNR, D-AIRL, D-CODE, D-TICK D-FARE1N, D-FARE2N, D-TAX1N, D-TAX2N D-TAX3N, D-TOTN, D-PROZ, D-AGNR. * MOVE USER-ID TO D-USER-ID. MOVE "PCSI" TO D-BEARB. MOVE LOW-VALUES TO D-TIDATX. MOVE "N" TO D-DRUCK. MOVE AMD-FILEKEY TO D-FILEKEY. P319. GO TO P390. ****** * 'A-'-SEGMENT: ****** P320. ADD 1 TO R-A-CNT. IF R-A-CNT > 1 MOVE "R-A-CNT: > 1 R-A-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. P321. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P324. ADD 1 TO C-CNT. IF C-CNT > 2 GO TO P323. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P322. ******* * DATA-ELEMENTS: A- VALIDATING CARRIER ******* * 1 TICKETING AIRLINE NAME * 2 AIRLINE CODE * AIRLINE NUMERIC CODE * AIRLINE CHECK DIGIT ******* IF C-CNT = 2 MOVE UNST-T1 TO R-A-AIRLINE IF R-A-CODE NOT NUMERIC MOVE "R-A-CODE NOT NUMERIC" TO FFTEXT PERFORM FFF-F. P322. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P323. GO TO P321. ****** * REFERENZ FELDER FUELLEN ****** P323. MOVE R-A-CODEN TO D-AIRL. P324. GO TO P390. ****** * 'D-'-SEGMENT: ****** P325. ADD 1 TO R-D-CNT. IF R-D-CNT > 1 MOVE "R-D-CNT: > 1 R-D-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. P326. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P329. ADD 1 TO C-CNT. IF C-CNT > 3 GO TO P328. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P327. ******* * DATA-ELEMENTS: D- PNR DATE ******* * 1 PNR CREATION DATE * 2 PNR CHANGE DATE * 3 AIR CREATION DATE ******* IF C-CNT = 3 MOVE UNST-T1 TO R-D-TIDAT IF R-D-TIDAT NOT NUMERIC MOVE "R-D-TIDAT NOT NUMERIC" TO FFTEXT PERFORM FFF-F. P327. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P328. GO TO P326. ****** * REFERENZ FELDER FUELLEN ****** P328. MOVE R-D-TIDATN TO D-TIDAT. P329. GO TO P390. ****** * 'G-'-SEGMENT: ****** P330. ADD 1 TO R-G-CNT. IF R-G-CNT > 1 MOVE "R-G-CNT: > 1 R-G-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. P331. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P334. ADD 1 TO C-CNT. IF C-CNT > 3 GO TO P333. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P332. ******* * DATA-ELEMENTS: G- SALES INDICATOR, ORIG/DESTINATION ******* * 1 * 2 SALES INDICATOR * 3 ORIG/DESTINATION ******* IF C-CNT = 2 MOVE UNST-T1 TO R-G-ISI. IF C-CNT = 3 MOVE UNST-T1 TO R-G-ORIGDEST. P332. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P333. GO TO P331. ****** * REFERENZ FELDER FUELLEN ****** P333. MOVE R-G-ISI TO D-ISI. MOVE R-G-ORIG TO D-ORIG-3L, L3-KEY. ee- * READ FLDAT INVALID MOVE SPACES TO L3-ORT. ee+ MOVE 01 TO VIEW--KEYNUM ee+ PERFORM READ-FLDAT1 ee+ IF STAT--INVALID ee+ MOVE SPACES TO L3-ORT ee+ END-IF. MOVE L3-ORT TO D-ORIG. MOVE R-G-DEST TO D-DEST-3L, L3-KEY. ee- * READ FLDAT INVALID MOVE SPACES TO L3-ORT. ee+ MOVE 01 TO VIEW--KEYNUM ee+ PERFORM READ-FLDAT1 ee+ IF STAT--INVALID ee+ MOVE SPACES TO L3-ORT ee+ END-IF. MOVE L3-ORT TO D-DEST. P334. GO TO P390. ****** * 'H-'-SEGMENT: ****** P335. ADD 1 TO R-H-CNT. IF R-H-CNT > 20 MOVE "R-H-CNT: > 20 R-H-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. MOVE SPACES TO R-H-ELEMENTE. P336. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P339. ADD 1 TO C-CNT. IF C-CNT > 14 GO TO P338. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P337. ******* * DATA-ELEMENTS: H- TICKETED AIR SEGMENT * H- TICKETED SURFACE SEGMENT (AIRLINE-CODE = VOID) ******* * 1 * 2 SEG-NR IN PNR * STOPOVER INDICATOR * ORIG. 3LTR-CODE * 3 ORIG. CITY NAME * 4 DEST. 3LTR CODE * 5 DEST. CITY NAME * 6 AIRLINE-CODE EVTL. -VOID- * FLIGHTNUMBER * CLASS OF SERVICE * CLASS OF BOOKING * DEP. DATE * DEP. TIME * ARR. TIME * ARR. DATE * 7 STATUS AND NUMBER IN PARTY * 8 PNR-STATUS AND NUMBER IN PARTY * 9 MEAL CODE * 10 STOPS * 11 EQUIPMENT CODE * 12 ENTERTAINMENT CODE * 13 * 14 BAGGAGE-CODE * 15 * 16 CHECK-IN TIME * 17 ELECTRONIC TICKET INDICATOR * 18 DURATION * 19 NON-SMOKING INDICATOR ******* * DATA-ELEMENTS: H- TICKETED OPEN SEGMENT (FLIGHTNUMBER = OPEN) ******* * 1-6 WIE OBEN * 7 DEPATURE DATE (R-H-DATE) * 8 STATUS (R-H-ST) * 9 BAGGAGE-CODE (R-H-FREE) ******** IF C-CNT = 2 MOVE UNST-T1 TO R-H-ORIGX. IF C-CNT = 3 MOVE UNST-T1 TO R-H-FROM. IF C-CNT = 4 MOVE UNST-T1 TO R-H-ARR-3L. IF C-CNT = 5 MOVE UNST-T1 TO R-H-ARR. ********** * TIME: HHMHx x = P --> PM * = A --> AM * = N --> NOON * = M --> MIDNIGHT ******** IF C-CNT = 6 MOVE UNST-T1 TO R-H-FLUG IF R-H-AP = "P" ADD 12 TO R-H-HH END-IF IF R-H-AP = "M" ADD 12 TO R-H-HH END-IF IF R-H-A-AP = "P" ADD 12 TO R-H-A-HH END-IF IF R-H-A-AP = "M" ADD 12 TO R-H-A-HH END-IF. ******* * UNTERSCHIEDLICHE STRUKTUREN IN DIESEM SEGMENT ******* IF R-H-FLY = "OPEN" GO TO P336A. IF C-CNT = 7 MOVE UNST-T1 TO R-H-STATUS. IF C-CNT = 8 MOVE UNST-T1 TO R-H-PNRSTATUS. IF C-CNT = 14 MOVE UNST-T1 TO R-H-FREE. GO TO P337. P336A. IF C-CNT = 7 MOVE UNST-T1 TO R-H-DATE. IF C-CNT = 8 MOVE UNST-T1 TO R-H-STATUS. IF C-CNT = 9 MOVE UNST-T1 TO R-H-FREE. P337. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P338. GO TO P336. ****** * REFERENZ FELDER FUELLEN ****** P338. IF R-H-X = "X" MOVE R-H-X TO H-X (R-H-CNT). MOVE R-H-FROM-3L TO H-FROM-3L (R-H-CNT), L3-KEY. MOVE R-H-FROM TO H-FROM (R-H-CNT). MOVE SPACES TO L3-ORT. IF R-H-FROM-3L = "AGB" OR "QKL" OR "ZWS" OR "QDU" ee- * READ FLDAT INVALID MOVE SPACES TO L3-ORT. ee+ MOVE 01 TO VIEW--KEYNUM ee+ PERFORM READ-FLDAT1 ee+ IF STAT--INVALID ee+ MOVE SPACES TO L3-ORT ee+ END-IF. IF L3-ORT NOT = SPACES MOVE L3-ORT TO H-FROM (R-H-CNT). IF R-H-CIA = "VOID" MOVE "VOID" TO H-FLY (R-H-CNT), H-BEFORE (R-H-CNT) GO TO P339. MOVE R-H-CIA TO H-CIA (R-H-CNT). MOVE R-H-FLY TO H-FLY (R-H-CNT). MOVE R-H-CL TO H-CL (R-H-CNT). MOVE R-H-DATE TO H-DATE (R-H-CNT). MOVE R-H-TIME TO H-TIME (R-H-CNT). MOVE R-H-ARR-TIME TO H-TIME2 (R-H-CNT). MOVE R-H-ST TO H-ST (R-H-CNT). MOVE R-H-FREE TO H-FREE (R-H-CNT). MOVE R-H-ARR-3L TO H-ARR-3L (R-H-CNT), L3-KEY. MOVE R-H-ARR TO H-ARR (R-H-CNT). MOVE SPACES TO L3-ORT. IF R-H-ARR-3L = "AGB" OR "QKL" OR "ZWS" OR "QDU" ee- * READ FLDAT INVALID MOVE SPACES TO L3-ORT. ee+ MOVE 01 TO VIEW--KEYNUM ee+ PERFORM READ-FLDAT1 ee+ IF STAT--INVALID ee+ MOVE SPACES TO L3-ORT ee+ END-IF. IF L3-ORT NOT = SPACES MOVE L3-ORT TO H-ARR (R-H-CNT). MOVE R-H-ARR-DATE TO H-ARR-DATE (R-H-CNT). IF R-H-ARR-DATE = R-H-DATE OR SPACES GO TO P339. MOVE D-TIDAT TO DATN. MOVE R-H-DATE TO W-FL-TTMMM. PERFORM FLUG-DATUM. MOVE W-FL-DATN TO B-DATN. MOVE R-H-ARR-DATE TO W-FL-TTMMM. PERFORM FLUG-DATUM. MOVE W-FL-DATN TO DATN. ******* * DIFFERENZ AB-DAT BIS AN-DAT ******* PERFORM DATSUB. IF TAGE = 2 MOVE "*" TO H-TIME2-X (R-H-CNT). IF TAGE = 1 MOVE "+" TO H-TIME2-X (R-H-CNT). IF TAGE = -1 MOVE "#" TO H-TIME2-X (R-H-CNT). P339. GO TO P390. ****** * 'K-' -SEGMENT: * 'KN-'-SEGMENT * 'KS-'-SEGMENT ****** P340. MOVE 3 TO PNT-SEG. IF SEG-TAG = "K-" ADD 1 TO R-K-CNT. IF SEG-TAG3 = "KN-" MOVE 4 TO PNT-SEG ADD 1 TO R-KN-CNT. IF SEG-TAG3 = "KS-" MOVE 4 TO PNT-SEG ADD 1 TO R-KS-CNT. IF R-K-CNT > 1 MOVE "R-K-CNT: > 1 R-K-SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-KN-CNT > 1 MOVE "R-KN-CNT: > 1 R-KN-SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-KS-CNT > 1 MOVE "R-KS-CNT: > 1 R-KS-SEGMENTE" TO FFTEXT PERFORM FFF-F. ****** * LT. S.ADLER: FARE SEGMENT-HIERARCHIE : KN- DANN KS- DANN K- ****** IF SEG-TAG3 = "KN-" MOVE SPACES TO R-K-ELEMENTE GO TO P341. IF SEG-TAG3 = "KS-" IF R-KN-CNT = ZEROES MOVE SPACES TO R-K-ELEMENTE GO TO P341. IF SEG-TAG = "K-" IF R-KN-CNT = ZEROES IF R-KS-CNT = ZEROES MOVE SPACES TO R-K-ELEMENTE GO TO P341. GO TO P344. P341. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P344. ADD 1 TO C-CNT. IF C-CNT > 13 GO TO P343. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P342. ******* * DATA-ELEMENTS: K- FARE LINE * KN- NETT FARE LINE * KS- SELLING FARE LINE ******* * 1 X(01) * CURRENCY-CODE * FARE-BASE * 2 CURRENCY-CODE * EQUIVAL AMOUNT * 13 CURRENCY-CODE * TOTAL AMOUNT ******* IF C-CNT = 1 MOVE UNST-T1 TO R-K-FARE1X. IF C-CNT = 2 MOVE UNST-T1 TO R-K-FARE2X. IF C-CNT = 13 MOVE UNST-T1 TO R-K-TOTAL. P342. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P343. GO TO P341. ****** * REFERENZ FELDER FUELLEN: IN FLTIDRU: FARE2 IST DIE WICHTIGERE ****** P343. MOVE R-K-FARE1-WS TO D-FARE1X, D-FARE2X. MOVE R-K-FARE1 TO BIZEIL. PERFORM ZAHL. MOVE WS-PIZR TO D-FARE1N, D-FARE2N. IF R-K-FARE2X NOT = SPACES IF R-K-FARE2-WS = "EUR" MOVE R-K-FARE2-WS TO D-FARE2X MOVE R-K-FARE2 TO BIZEIL PERFORM ZAHL MOVE WS-PIZR TO D-FARE2N. MOVE R-K-TTL-WS TO D-TOTX. MOVE R-K-TTL TO BIZEIL. PERFORM ZAHL. MOVE WS-PIZR TO D-TOTN. P344. GO TO P390. ****** * 'KFT'-SEGMENT: * 'KNT'-SEGMENT: * 'KST'-SEGMENT: ****** P345. IF SEG-TAG3 = "KFT" ADD 1 TO R-KFT-CNT. IF SEG-TAG3 = "KNT" ADD 1 TO R-KNT-CNT. IF SEG-TAG3 = "KST" ADD 1 TO R-KST-CNT. IF R-KFT-CNT > 1 MOVE "R-KFT-CNT: > 1 R-KFT-SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-KNT-CNT > 1 MOVE "R-KNT-CNT: > 1 R-KNT-SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-KST-CNT > 1 MOVE "R-KST-CNT: > 1 R-KST-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 4 TO PNT-SEG. MOVE ZEROES TO X1. ****** * LT. S.ADLER: FARE SEGMENT-HIERARCHIE : KNT DANN KST DANN KFT ****** IF SEG-TAG3 = "KNT" MOVE SPACES TO R-KFT-ELEMENTE GO TO P346. IF SEG-TAG3 = "KST" IF R-KNT-CNT = ZEROES MOVE SPACES TO R-KFT-ELEMENTE GO TO P346. IF SEG-TAG3 = "KFT" IF R-KNT-CNT = ZEROES IF R-KST-CNT = ZEROES MOVE SPACES TO R-KFT-ELEMENTE GO TO P346. GO TO P349. P346. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P349. ADD 1 TO C-CNT. IF C-CNT > 31 GO TO P348. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P347. ******* * DATA-ELEMENTS: KFT TAX DATA * KNT NETT TAX DATA * KST SELLING TAX DATA ******* * 2,..31 X(01) * TAX CURRENCY-CODE * TAX AMOUNT * TAX CODE ******* IF C-CNT > 1 AND < 32 IF UNST-T1 NOT = SPACES ADD 1 TO X1 MOVE UNST-T1 TO R-KFT-TAXX (X1). P347. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P348. GO TO P346. ****** * REFERENZ FELDER FUELLEN ****** P348. IF R-KFT-TAXX (1) NOT = SPACES MOVE R-KFT-WS (1) TO D-TAX1X MOVE R-KFT-TAX (1) TO BIZEIL PERFORM ZAHL MOVE WS-PIZR TO D-TAX1N MOVE R-KFT-TAXLAND (1) TO D-TAX1LAND. IF R-KFT-TAXX (2) NOT = SPACES MOVE R-KFT-WS (2) TO D-TAX2X MOVE R-KFT-TAX (2) TO BIZEIL PERFORM ZAHL MOVE WS-PIZR TO D-TAX2N MOVE R-KFT-TAXLAND (2) TO D-TAX2LAND. MOVE 1 TO POINT1. MOVE SPACES TO XT-FARECALC. IF R-KFT-TAXX (3) NOT = SPACES STRING "XT " DELIMITED BY SIZE R-KFT-WS (3) DELIMITED BY " " " " DELIMITED BY SIZE R-KFT-TAX (3) DELIMITED BY " " R-KFT-TAXLAND (3) DELIMITED BY " " INTO XT-FARECALC POINTER POINT1 MOVE R-KFT-WS (3) TO D-TAX3X MOVE R-KFT-TAX (3) TO BIZEIL PERFORM ZAHL MOVE WS-PIZR TO D-TAX3N MOVE R-KFT-TAXLAND (3) TO D-TAX3LAND. ***** * UNTER DER VORRAUSSETZUNG, DASS TAX3 = SPACES ODER EUR : ***** MOVE POINT1 TO POINT1-XT. MOVE 4 TO X1. P348A. IF R-KFT-TAXX (X1) NOT = SPACES IF R-KFT-WS (X1) = "EUR" IF POINT1 = 1 STRING "XT" DELIMITED BY SIZE INTO XT-FARECALC POINTER POINT1 END-IF STRING " " DELIMITED BY SIZE R-KFT-WS (X1) DELIMITED BY " " " " DELIMITED BY SIZE R-KFT-TAX (X1) DELIMITED BY " " R-KFT-TAXLAND (X1) DELIMITED BY " " INTO XT-FARECALC POINTER POINT1 MOVE R-KFT-WS (X1) TO D-TAX3X MOVE R-KFT-TAX (X1) TO BIZEIL PERFORM ZAHL ADD WS-PIZR TO D-TAX3N MOVE "XT" TO D-TAX3LAND ELSE MOVE "XT NOT = EUR " TO FFTEXT PERFORM FFF-F. IF X1 < 30 ADD 1 TO X1 GO TO P348A. IF POINT1 = POINT1-XT MOVE SPACES TO XT-FARECALC ELSE MOVE POINT1 TO POINT1-XT. P349. GO TO P390. ****** * 'Q-'-SEGMENT: ****** P350. ADD 1 TO R-Q-CNT. IF R-Q-CNT > 1 MOVE "R-G-CNT: > 1 R-Q-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. P351. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P354. ADD 1 TO C-CNT. IF C-CNT > 1 GO TO P353. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P352. ******* * DATA-ELEMENTS: Q- SALES INDICATOR, ORIG/DESTINATION ******* * 1 FARE CALCULATION ******* IF C-CNT = 1 MOVE UNST-T1 TO R-Q-CALC IF R-Q-CALC (241:190) NOT = SPACES MOVE "FARE CALC ZU UMFANGREICH" TO FFTEXT PERFORM FFF-F. P352. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P353. GO TO P351. ****** * REFERENZ FELDER FUELLEN ****** P353. MOVE R-Q-CALC (001:060) TO D-CALC (1). MOVE R-Q-CALC (061:120) TO D-CALC (2). MOVE R-Q-CALC (121:180) TO D-CALC (3). MOVE R-Q-CALC (181:240) TO D-CALC (4). P354. GO TO P390. ****** * 'I-'-SEGMENT: ****** P355. IF R-I-CNT = 1 PERFORM TIDRU. ADD 1 TO R-I-CNT. IF R-I-CNT > 1 MOVE "R-I-CNT: > 1 R-I-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. P356. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P359. ADD 1 TO C-CNT. IF C-CNT > 2 GO TO P358. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P357. ******* * DATA-ELEMENTS: I- NAME ******* * 1 * 2 TEILNEHMER NUMMER IN PNR * TEILNEHMER NAME ******* IF C-CNT = 2 MOVE UNST-T1 TO R-I-NAMEX. P357. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P358. GO TO P356. ****** * REFERENZ FELDER FUELLEN ****** P358. MOVE R-I-NAME TO D-NAM. MOVE R-I-LFDN TO D-TEILN-NR. ****** * GEGEN TEILNEMER PRUEFEN ****** PERFORM TIX-NAME. P359. GO TO P390. ****** * 'T-'-SEGMENT: ****** P360. ADD 1 TO R-T-CNT, T-CNT. IF R-T-CNT > 1 MOVE "R-T-CNT: > 1 R-T-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. P361. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P364. ADD 1 TO C-CNT. IF C-CNT > 1 GO TO P363. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P362. ******* * DATA-ELEMENTS: T- TICKER NUMBER ******* * 1 TIX-TYP (A=ATB, T=TAT) * "-" * TIX-CODE * TIX-NR * "-" * TIX-CONJ. (DIE LETZTEN 2 STELLEN) ******* IF C-CNT = 1 MOVE UNST-T1 TO R-T-TICKETNR IF R-T-CODEX NOT NUMERIC MOVE "R-T-CODE NOT NUMERIC" TO FFTEXT PERFORM FFF-F END-IF IF R-T-TIXX NOT NUMERIC MOVE "R-T-TIXX NOT NUMERIC" TO FFTEXT PERFORM FFF-F END-IF IF R-T-STRICH = "-" IF R-T-CONJX NOT NUMERIC MOVE "R-T-TIXX NOT NUMERIC" TO FFTEXT PERFORM FFF-F. P362. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P363. GO TO P361. ****** * REFERENZ FELDER FUELLEN * -> PASSIERT IN P390ff ****** P363. P364. GO TO P390. ****** * 'FE'-SEGMENT: * 'FM'-SEGMENT: * 'FO'-SEGMENT: * 'FP'-SEGMENT: * 'FV'-SEGMENT: * 'FS'-SEGMENT: * 'FT'-SEGMENT: ****** P365. IF SEG-TAG = "FE" ADD 1 TO R-FE-CNT. IF SEG-TAG = "FM" ADD 1 TO R-FM-CNT. IF SEG-TAG = "FO" ADD 1 TO R-FO-CNT. IF SEG-TAG = "FP" ADD 1 TO R-FP-CNT. IF SEG-TAG = "FV" ADD 1 TO R-FV-CNT. IF SEG-TAG = "FS" ADD 1 TO R-FS-CNT. IF SEG-TAG = "FT" ADD 1 TO R-FT-CNT. IF R-FE-CNT > 1 MOVE "R-FE-CNT: > 1 SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-FM-CNT > 1 MOVE "R-FM-CNT: > 1 SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-FO-CNT > 1 MOVE "R-FO-CNT: > 1 SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-FP-CNT > 1 MOVE "R-FP-CNT: > 1 SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-FV-CNT > 1 MOVE "R-FV-CNT: > 1 SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-FS-CNT > 1 MOVE "R-FS-CNT: > 1 SEGMENTE" TO FFTEXT PERFORM FFF-F. IF R-FT-CNT > 1 MOVE "R-FT-CNT: > 1 SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. MOVE SPACES TO R-FF-TEXT. P366. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P369. ADD 1 TO C-CNT. IF C-CNT > 1 GO TO P368. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P367. ******* * DATA-ELEMENTS: FE ENDORSEMENT * DATA-ELEMENTS: FM FARE COMMISSION * DATA-ELEMENTS: FO ORIGINAL ISSUE /IN EXCAHNGE FOR * DATA-ELEMENTS: FP FORM OF PAYMENT * DATA-ELEMENTS: FV TICKETING CARRIER * DATA-ELEMENTS: FS MISC. TIX REMARKS * DATA-ELEMENTS: FT TOUR CODE ******* * FE 1 ENDORSEMENT/RESTRICTIONS * FM 1 FM FARE COMMISSION * FO 1 ORIGINAL ISSUE /IN EXCAHNGE FOR * FP 1 FORM OF PAYMENT * FV 1 TICKETING CARRIER * FS 1 MISC. TIX REMARKS * FT 1 TOUR CODE ******* IF C-CNT = 1 MOVE UNST-T1 TO R-FF-TEXT. P367. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P368. GO TO P366. ****** * REFERENZ FELDER FUELLEN ****** P368. IF SEG-TAG = "FE" MOVE R-FF-TEXT (01:28) TO D-BEM MOVE R-FF-TEXT (29:28) TO D-BEM-2. IF SEG-TAG = "FM" MOVE R-FF-TEXT TO BIZEIL IF R-FF-TEXT (1:3) = "*M*" OR "*C*" OR "*F*" MOVE R-FF-TEXT (4:10) TO BIZEIL END-IF IF R-FF-TEXT (1:4) = "*CR*" MOVE R-FF-TEXT (5:10) TO BIZEIL END-IF PERFORM ZAHL MOVE WS-PIZR TO D-PROZ. IF SEG-TAG = "FO" MOVE R-FF-TEXT TO D-ISSUE. IF SEG-TAG = "FP" MOVE R-FF-TEXT TO D-PAYM. * IF SEG-TAG = "FV" * MOVE R-FF-TEXT TO IF SEG-TAG = "FS" IF D-BEM = SPACES MOVE R-FF-TEXT TO D-BEM ELSE IF D-BEM-2 = SPACES MOVE R-FF-TEXT TO D-BEM-2. IF SEG-TAG = "FT" MOVE R-FF-TEXT TO D-TOURCODE. P369. GO TO P390. ****** * 'M-'-SEGMENT: FARE BASIS CODES ****** P370. ADD 1 TO R-M-CNT. IF R-M-CNT > 1 MOVE "R-M-CNT: > 1 R-M-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. MOVE ZEROES TO X1. MOVE SPACES TO R-M-ELEMENTE. P371. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P374. ADD 1 TO C-CNT. IF C-CNT > 20 GO TO P373. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P372. ******* * DATA-ELEMENTS: H- TICKETED AIR SEGMENT ******* * 1,..28 PRIM-CODE * FARE-BASIS * TICKETDESIGNATOR ******* IF C-CNT > 0 AND < 20 ADD 1 TO X1 MOVE UNST-T1 TO R-M-DATAX (X1). P372. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P373. GO TO P371. ****** * REFERENZ FELDER FUELLEN ****** P373. MOVE 1 TO X2, X3. P373A. IF H-FLY (X3) = "VOID" IF X3 < 20 ADD 1 TO X3 GO TO P373A ELSE MOVE "X3 = 20 " TO FFTEXT PERFORM FFF-F. MOVE R-M-DATAX (X2) TO H-FAREBAS (X3). IF X2 < X1 ADD 1 TO X2, X3 GO TO P373A. P374. GO TO P390. ****** * 'O-'-SEGMENT: VALIDITY DATES ****** P375. ADD 1 TO R-O-CNT. IF R-O-CNT > 1 MOVE "R-O-CNT: > 1 R-O-SEGMENTE" TO FFTEXT PERFORM FFF-F. MOVE 3 TO PNT-SEG. MOVE ZEROES TO X1. MOVE SPACES TO R-O-ELEMENTE. P376. PERFORM UNST-SEG-DATA. IF U-DELIM NOT = H-COMTERM GO TO P379. ADD 1 TO C-CNT. IF C-CNT > 20 GO TO P379. IF MAX-COM = ZEROES OR UNST-T1 = SPACES GO TO P377. ******* * DATA-ELEMENTS: H- TICKETED AIR SEGMENT ******* * 1,..28 NV BEFOR * NV AFTER ******* IF C-CNT > 0 AND < 20 ADD 1 TO X1 MOVE UNST-T1 TO R-O-VALIDITY (X1). P377. ADD 1, MAX-COM TO PNT-SEG. IF PNT-SEG > MAX-SEG GO TO P378. GO TO P376. ****** * REFERENZ FELDER FUELLEN: ****** P378. MOVE 1 TO X2, X3. P378A. IF H-FLY (X3) = "VOID" IF X3 < 20 ADD 1 TO X3 GO TO P378A ELSE MOVE "X3 = 20 " TO FFTEXT PERFORM FFF-F. MOVE R-O-VALIDITY (X2) TO BIZEIL. IF EBI-2 = "XX" MOVE SPACES TO R-O-BEFORE (X2) MOVE BIZEIL (3:5) TO R-O-AFTER (X2). MOVE R-O-AFTER (X2) TO BIZEIL. IF EBI-2 = "XX" MOVE SPACES TO R-O-AFTER (X2). MOVE R-O-BEFORE (X2) TO H-BEFORE (X3). MOVE R-O-AFTER (X2) TO H-AFTER (X3). IF X2 < X1 ADD 1 TO X2, X3 GO TO P378A. P379. GO TO P390. P390. ADD MAX-SEG, 1 TO PNT-MSG. IF PNT-MSG < MAX-MSG GO TO P310. P392. IF R-I-CNT NOT = R-T-CNT MOVE "R-I-CNT NOT = R-T-CNT" TO FFTEXT PERFORM FFF-F ELSE IF R-I-CNT = ZEROES GO TO P395 ELSE PERFORM TIDRU. ****** * NORMAL: --> MOVE NACH BSP-OK ****** P395. IF T-CNT = ZEROES GO TO P397A. GO TO P399. MOVE SPACES TO BEFEHL. STRING "mv " DELIMITED BY SIZE FILENAME DELIMITED BY " " " /transx1/bsp-ok/" DELIMITED SIZE DIR-FILE DELIMITED BY " " INTO BEFEHL. CALL "SYSTEM" USING BEFEHL GIVING DAT-STAT. GO TO P399. P397. ***** * PRUEFEN OB EVTL. TMG-PNR OHNE TIX-NR ***** IF FLAG-LAUF = 1 MOVE SPACES TO BEFEHL STRING "mv " DELIMITED BY SIZE FILENAME DELIMITED BY " " " /transx1/bsp-notok/" DELIMITED SIZE DIR-FILE DELIMITED BY " " INTO BEFEHL CALL "SYSTEM" USING BEFEHL GIVING DAT-STAT. IF FLAG-LAUF = 3 IF AMD-IATANR = "23226000" GO TO P397B. GO TO P399. P397A. MOVE SPACES TO BEFEHL. STRING "mv " DELIMITED BY SIZE FILENAME DELIMITED BY " " " /transx1/bsp-not7a/" DELIMITED SIZE DIR-FILE DELIMITED BY " " INTO BEFEHL CALL "SYSTEM" USING BEFEHL GIVING DAT-STAT. GO TO P399. P397B. MOVE SPACES TO BEFEHL. STRING "mv " DELIMITED BY SIZE FILENAME DELIMITED BY " " " /transx1/bsp-tmg/" DELIMITED SIZE DIR-FILE DELIMITED BY " " INTO BEFEHL CALL "SYSTEM" USING BEFEHL GIVING DAT-STAT. GO TO P399. P399. EXIT. TIDRU SECTION. ****** * FLTIDRU SCHREIBEN ****** P160. IF R-H-CNT = 0 MOVE "R-H-CNT = 0" TO FFTEXT PERFORM FFF-F GO TO P169. IF R-I-CNT = 0 MOVE "R-I-CNT = 0" TO FFTEXT PERFORM FFF-F GO TO P169. IF R-T-CNT = 0 MOVE "R-T-CNT = 0" TO FFTEXT PERFORM FFF-F GO TO P169. ****** * XT-FARECALC IN FARE CALC UNTERBRINGEN ****** IF XT-FARECALC NOT = SPACES MOVE SPACES TO BIZEIL STRING D-CALCOCC DELIMITED BY "END " "END " DELIMITED BY SIZE XT-FARECALC DELIMITED BY " " INTO BIZEIL MOVE BIZEIL TO D-CALCOCC MOVE SPACES TO XT-FARECALC. ****** * D-NR FESTLEGEN ****** MOVE VGL-D-NR TO Z. MOVE HE-FLTIDRU TO DUP-FLTIDRU. P162. MOVE Z TO D-NR. MOVE ZERO TO D-CONNR. MOVE D-KEY TO VGL-D-KEY. MOVE 99 TO VGL-D-CONNR. ee- * START FLTIDRU KEY NOT < D-KEY INVALID GO TO P162A. ee+ MOVE "NL" TO VIEW--STRMOD ee+ MOVE 01 TO VIEW--KEYNUM ee+ PERFORM START-FLTIDRU1 ee+ IF STAT--INVALID ee+ GO TO P162A ee+ END-IF. ee- * READ FLTIDRU NEXT END GO TO P162A. ee+ PERFORM READ-FLTIDRU1-NEXT ee+ IF STAT--ATEND ee+ GO TO P162A ee+ END-IF. IF D-KEY > VGL-D-KEY MOVE VGL-D-KEY TO D-KEY GO TO P162A. IF Z < 999 ADD 1 TO Z GO TO P162. GO TO FF-LFD. P162A. MOVE DUP-FLTIDRU TO HE-FLTIDRU. MOVE VGL-D-KEY TO D-KEY. ****** * PLAUSIB. CONJUNCTION ****** MOVE ZEROES TO D-CONNR. IF R-T-CONJX NUMERIC MOVE 1 TO D-CONNR. IF R-H-CNT < 5 IF D-CONNR > ZEROES MOVE "CONNR > 0 UND R-H-CNT < 5" TO FFTEXT PERFORM FFF-F. IF R-H-CNT > 4 IF D-CONNR = ZEROES MOVE "CONNR = 0 UND R-H-CNT > 4" TO FFTEXT PERFORM FFF-F. ***** * MAX-CONNR BELEGEN ***** MOVE ZEROES TO MAX-CONNR. IF D-CONNR = ZEROES GO TO P163. IF R-T-CONJN = R-T-TIX-RN GO TO P163. MOVE 1 TO MAX-CONNR. MOVE R-T-TIX-RN TO EBI-2N. P162B. IF EBI-2N = R-T-CONJN GO TO P163. ADD 1 TO MAX-CONNR, EBI-2N. GO TO P162B. P163. IF MAX-CONNR > 8 MOVE "MAX-CONNR > 8 " TO FFTEXT PERFORM FFF-F. ****** * D-MWSTKZ BELEGEN ****** MOVE 1 TO X3. MOVE "D" TO D-MWSTKZ. P163A. IF H-FROM-3L (X3) = SPACES GO TO P164. MOVE H-FROM-3L (X3) TO L3-KEY. ee- * READ FLDAT INVALID GO TO P163B. ee+ MOVE 01 TO VIEW--KEYNUM ee+ PERFORM READ-FLDAT1 ee+ IF STAT--INVALID ee+ GO TO P163B ee+ END-IF. IF L3-INLAND NOT = "J" GO TO P163B. IF H-ARR-3L (X3) = SPACES GO TO P164. MOVE H-ARR-3L (X3) TO L3-KEY. ee- * READ FLDAT INVALID GO TO P163B. ee+ MOVE 01 TO VIEW--KEYNUM ee+ PERFORM READ-FLDAT1 ee+ IF STAT--INVALID ee+ GO TO P163B ee+ END-IF. IF L3-INLAND NOT = "J" GO TO P163B. IF X3 < R-H-CNT ADD 1 TO X3 GO TO P163A. GO TO P164. P163B. MOVE SPACE TO D-MWSTKZ. P164. IF D-MWSTKZ = "D" MOVE "D-MWSTKZ = D " TO FFTEXT PERFORM FFF-F. ***** * 3L-CODE DES GES. ITINERARY IN TEXT-RR ***** MOVE SPACES TO TEXT-RR. MOVE 1 TO POINT1-RR. STRING "REISE-ROUTE: " DELIMITED BY SIZE H-FROM-3L (1) DELIMITED BY SIZE "-" DELIMITED BY SIZE H-ARR-3L (1) DELIMITED BY SIZE INTO TEXT-RR POINTER POINT1-RR. MOVE H-ARR-3L (1) TO W-ARR. MOVE 2 TO X1. P164A. IF H-FROM-3L (X1) NOT = W-ARR STRING " " DELIMITED BY SIZE H-FROM-3L (X1) DELIMITED BY SIZE INTO TEXT-RR POINTER POINT1-RR. IF H-ARR-3L (X1) NOT = SPACES STRING "-" DELIMITED BY SIZE H-ARR-3L (X1) DELIMITED BY SIZE INTO TEXT-RR POINTER POINT1-RR. MOVE H-ARR-3L (X1) TO W-ARR. IF H-FLUGDATEN (X1) = SPACES GO TO P166. IF X1 < R-H-CNT ADD 1 TO X1 GO TO P164A. P166. MOVE R-T-CODEN TO D-CODE MOVE R-T-TIXN TO D-TICK. MOVE SPACES TO D-FLUGDATENOCC. ***** * GES. ITINERARY IN 4ER PORTIONEN AUFTEILEN ***** MOVE 1 TO X1, X2. P166A. IF H-FLUGDATEN (X1) NOT = SPACES MOVE H-FLUGDATEN (X1) TO D-FLUGDATEN (X2) IF X2 < 4 ADD 1 TO X2 GIVING X3 MOVE SPACES TO D-X (X3) MOVE H-ARR-3L (X1) TO D-FROM-3L (X3) MOVE H-ARR (X1) TO D-FROM (X3). IF X2 < 4 ADD 1 TO X1, X2 GO TO P166A. MOVE SPACES TO D-TOX. MOVE H-ARR-3L (X1) TO D-TO-3L. MOVE H-ARR (X1) TO D-TO. ******** * EVTL. 'KLASSE' UPDATE PER REWRITE! ******** MOVE HE-FLTIDRU TO DUP-FLTIDRU. MOVE D-KEY TO VGL-DD-KEY. MOVE ZEROES TO D-NR, D-CONNR. ee- * START FLTIDRU KEY NOT < D-KEY INVALID GO TO P166Z. ee+ MOVE "NL" TO VIEW--STRMOD ee+ MOVE 01 TO VIEW--KEYNUM ee+ PERFORM START-FLTIDRU1 ee+ IF STAT--INVALID ee+ GO TO P166Z ee+ END-IF. P166B. ee- * READ FLTIDRU NEXT END GO TO P166Z. ee+ PERFORM READ-FLTIDRU1-NEXT ee+ IF STAT--ATEND ee+ GO TO P166Z ee+ END-IF. IF D-RECHX NOT = VGL-D-RECHX GO TO P166Z. IF D-TINR NOT = DUP-TINR GO TO P166B. MOVE D-USER-ID TO DUP-USER-ID. MOVE D-USER-STOP TO DUP-USER-STOP. MOVE D-WV TO DUP-WV. MOVE D-TEILN-NRX TO DUP-TEILN-NRX.