000100 Identification Division. 000200 Program-id. ELEVBET1. 000300 Environment Division. 000400 Configuration Section. 000500 Special-Names. 000600 Decimal-Point is Comma 000700 . 000800 Input-Output Section. 000900 File-Control. 001000 Select Elev-Fil Assign to ELEVFIL 001100 Organization is Indexed 001200 Access is Dynamic 001300 Record Key is EF-Elev-Nummer 001400 . 001500 Select Elev-Betalning Assign to ELEVBET 001600 Organization is Sequential 001700 Access is Sequential 001800 . 001900 Select Elev-Lista Assign to ELEVLIST 002000 Organization is Sequential. 002100 002200 Data Division. 002300 File Section. 002400 FD Elev-Fil. 002500 01 Elev-Fil-Post. 002600 88 Slut-Pa-Elev-Fil Value High-Value. 002700 05 EF-Elev-Nummer Pic X(07). 002800 05 Pic X(01). 002900 05 EF-Elev-Namn Pic X(30). 003000 05 EF-Kon Pic X(01). 003100 05 EF-Kurs-Kod Pic X(04). 003200 05 EF-Kurs-Kostnad Pic 9(04). 003300 05 EF-Kurs-Betalt Pic 9(04)V99. 003400 05 Pic X(27). 003500 003600 FD Elev-Betalning Recording Mode F. 003700 01 Elev-Betalning-Post. 003800 88 Slut-Pa-Elev-Betalning Value High-Value. 003900 05 EB-Elev-Nummer Pic X(07). 004000 05 EB-Betalning Pic 9(04)V99. 004100 05 Pic X(67). 004200 004300 FD Elev-Lista Recording Mode F. 004400 01 Elev-Lista-Rad Pic X(120). 004500 004600 Working-Storage Section. 004700 01 Rapport-Blankrad Pic X(10) Value Space. 004800 004900 01 Rapport-Rubrik1. 005000 05 Pic X(25) Value Space. 005100 05 Pic X(40) Value 'Utestaende betalningar for elever'. 005200 005300 01 Rapport-Rubrik2. 005400 05 Pic X(30) Value 'Elevnamn'. 005500 05 Pic X(12) Value 'Elevnr'. 005600 05 Pic X(11) Value 'Avgift'. 005700 05 Pic X(13) Value 'Betalt'. 005800 05 Pic X(10) Value 'Rest'. 005900 006000 01 Rapport-Fot. 006100 05 Pic X(25) Value Space. 006200 05 Pic X(30) Value '*** S L U T pa Rapport ***'. 006300 006400 01 Elev-Detaljrad. 006500 05 ED-Elev-Namn Pic X(30). 006600 05 ED-Elev-Nummer Pic X(11). 006700 05 ED-Avgift Pic Z(03)9,99. 006800 05 Pic X(04) Value Space. 006900 05 ED-Betalt Pic Z(04),99. 007000 05 Pic X(04) Value Space. 007100 05 ED-Rest Pic Z(03)9,99. 007200 007300 01 Nagra-Variabler. 007400 05 Rest-Betalning Pic 9(04)V99 Value 0. 007500 007600 Linkage Section. 007700 01 JCL-Parameter. 007800 05 Param-Langd Pic S9(04) Binary. 007900 05 Param-Data Pic X(04). 008000 88 Alla Value 'ALLA'. 008100 008200 Procedure Division Using JCL-Parameter. 008300 Perform Kontrollera-JCL-Parameter 008400 008500 Perform Oppna-Alla-Filer 008600 008700 Perform Skriv-Rubriker 008800 008900 Perform Laes-Elev-Betalning Until 009000 Slut-Pa-Elev-Betalning 009100 009200 Perform Skriv-Rapportslut 009300 009400 Perform Stang-Alla-Filer 009500 GoBack 009600 . 009700*---------------------------------------------- 009800 Kontrollera-JCL-Parameter. 009900*---------------------------------------------- 010000 If Param-Langd > 0 And 010100 Not Alla 010200 Display '*** Parameter felaktig' 010300 Move 99 to Return-Code 010400 GoBack 010500 End-If 010600 . 010700*---------------------------------------------- 010800 Laes-Elev-Betalning. 010900*---------------------------------------------- 011000 Read Elev-Betalning 011100 At End 011200 Set Slut-Pa-Elev-Betalning to True 011300 Display '*** Slut på Elev-Betalning' 011400 Not At End 011500 Display '*** läser elevbetalning ***' 011600 Perform Uppdatera-Elev-Fil 011700 End-Read 011800 . 011900 012000*---------------------------------------------- 012100 Uppdatera-Elev-Fil. 012200*---------------------------------------------- 012300 Display '*** läser elevfil ***' 012400 Move EB-Elev-Nummer to EF-Elev-Nummer 012500 Read Elev-Fil 012600 Invalid Key 012700 Display 'Post i Elev-fil saknas för elevnummer: ' 012800 EB-Elev-Nummer 012900 Move 99 to Return-Code 013000 GoBack 013100 End-Read 013200 013300 Add EB-Betalning to EF-Kurs-Betalt 013400 013500 Rewrite Elev-Fil-Post 013600 Invalid Key 013700 Display 'Gick ej att uppdatera Elev-Fil,' 013800 ' elevnummer: ' EB-Elev-Nummer 013900 Move 99 to Return-Code 014000 GoBack 014100 End-Rewrite 014200 014300 Compute Rest-Betalning = EF-Kurs-Kostnad - 014400 EF-Kurs-Betalt 014500 014600* Subtract EF-Kurs-Betalt from EF-Kurs-Kostnad 014700* Giving Rest-Betalning 014800 014900 Perform Skriv-Detaljrad 015000 . 015100*---------------------------------------------- 015200 Skriv-Detaljrad. 015300*---------------------------------------------- 015400 If Rest-Betalning Is Greater Than Zero 015500 Or Alla 015600 Move EF-Elev-Namn to ED-Elev-Namn 015700 Move EF-Elev-Nummer to ED-Elev-Nummer 015800 Move EF-Kurs-Kostnad to ED-Avgift 015900 Move EF-Kurs-Betalt to ED-Betalt 016000 Move Rest-Betalning to ED-Rest 016100 Write Elev-Lista-Rad from Elev-Detaljrad 016200 End-If 016300 . 016400*---------------------------------------------- 016500 Skriv-Rubriker. 016600*---------------------------------------------- 016700 Write Elev-Lista-Rad from Rapport-Rubrik1 016800 Write Elev-Lista-Rad from Rapport-Blankrad 016900 Write Elev-Lista-Rad from Rapport-Rubrik2 017000 Write Elev-Lista-Rad from Rapport-Blankrad 017100 . 017200*---------------------------------------------- 017300 Skriv-Rapportslut. 017400*---------------------------------------------- 017500 Write Elev-Lista-Rad from Rapport-Blankrad 017600 Write Elev-Lista-Rad from Rapport-Fot 017700 . 017800*---------------------------------------------- 017900 Oppna-Alla-Filer. 018000*---------------------------------------------- 018100 Open Input Elev-Betalning 018200 Open I-O Elev-Fil 018300 Open Output Elev-Lista 018400 . 018500*---------------------------------------------- 018600 Stang-Alla-Filer. 018700*---------------------------------------------- 018800 Close Elev-Fil 018900 Close Elev-Betalning 019000 Close Elev-Lista 019100 . 019200*---------------------------------------------- 019300 End Program ELEVBET1. 019400*---------------------------------------------- 000100 Identification Division. 000200 Program-id. ELEVBET1. 000300 Environment Division. 000400 Configuration Section. 000500 Special-Names. 000600 Decimal-Point is Comma 000700 . 000800 Input-Output Section. 000900 File-Control. 001000 Select Elev-Fil Assign to ELEVFIL 001100 Organization is Indexed 001200 Access is Dynamic 001300 Record Key is EF-Elev-Nummer 001400 . 001500 Select Elev-Betalning Assign to ELEVBET 001600 Organization is Sequential 001700 Access is Sequential 001800 . 001900 Select Elev-Lista Assign to ELEVLIST 002000 Organization is Sequential. 002100 002200 Data Division. 002300 File Section. 002400 FD Elev-Fil. 002500 01 Elev-Fil-Post. 002600 88 Slut-Pa-Elev-Fil Value High-Value. 002700 05 EF-Elev-Nummer Pic X(07). 002800 05 Pic X(01). 002900 05 EF-Elev-Namn Pic X(30). 003000 05 EF-Kon Pic X(01). 003100 05 EF-Kurs-Kod Pic X(04). 003200 05 EF-Kurs-Kostnad Pic 9(04). 003300 05 EF-Kurs-Betalt Pic 9(04)V99. 003400 05 Pic X(27). 003500 003600 FD Elev-Betalning Recording Mode F. 003700 01 Elev-Betalning-Post. 003800 88 Slut-Pa-Elev-Betalning Value High-Value. 003900 05 EB-Elev-Nummer Pic X(07). 004000 05 EB-Betalning Pic 9(04)V99. 004100 05 Pic X(67). 004200 004300 FD Elev-Lista Recording Mode F. 004400 01 Elev-Lista-Rad Pic X(120). 004500 004600 Working-Storage Section. 004700 01 Rapport-Blankrad Pic X(10) Value Space. 004800 004900 01 Rapport-Rubrik1. 005000 05 Pic X(25) Value Space. 005100 05 Pic X(40) Value 'Utestaende betalningar for elever'. 005200 005300 01 Rapport-Rubrik2. 005400 05 Pic X(30) Value 'Elevnamn'. 005500 05 Pic X(12) Value 'Elevnr'. 005600 05 Pic X(11) Value 'Avgift'. 005700 05 Pic X(13) Value 'Betalt'. 005800 05 Pic X(10) Value 'Rest'. 005900 006000 01 Rapport-Fot. 006100 05 Pic X(25) Value Space. 006200 05 Pic X(30) Value '*** S L U T pa Rapport ***'. 006300 006400 01 Elev-Detaljrad. 006500 05 ED-Elev-Namn Pic X(30). 006600 05 ED-Elev-Nummer Pic X(11). 006700 05 ED-Avgift Pic Z(03)9,99. 006800 05 Pic X(04) Value Space. 006900 05 ED-Betalt Pic Z(04),99. 007000 05 Pic X(04) Value Space. 007100 05 ED-Rest Pic Z(03)9,99. 007200 007300 01 Nagra-Variabler. 007400 05 Rest-Betalning Pic 9(04)V99 Value 0. 007500 007600 Linkage Section. 007700 01 JCL-Parameter. 007800 05 Param-Langd Pic S9(04) Binary. 007900 05 Param-Data Pic X(04). 008000 88 Alla Value 'ALLA'. 008100 008200 Procedure Division Using JCL-Parameter. 008300 Perform Kontrollera-JCL-Parameter 008400 008500 Perform Oppna-Alla-Filer 008600 008700 Perform Skriv-Rubriker 008800 008900 Perform Laes-Elev-Betalning Until 009000 Slut-Pa-Elev-Betalning 009100 009200 Perform Skriv-Rapportslut 009300 009400 Perform Stang-Alla-Filer 009500 GoBack 009600 . 009700*---------------------------------------------- 009800 Kontrollera-JCL-Parameter. 009900*---------------------------------------------- 010000 If Param-Langd > 0 And 010100 Not Alla 010200 Display '*** Parameter felaktig' 010300 Move 99 to Return-Code 010400 GoBack 010500 End-If 010600 . 010700*---------------------------------------------- 010800 Laes-Elev-Betalning. 010900*---------------------------------------------- 011000 Read Elev-Betalning 011100 At End 011200 Set Slut-Pa-Elev-Betalning to True 011300 Display '*** Slut på Elev-Betalning' 011400 Not At End 011500 Perform Uppdatera-Elev-Fil 011600 End-Read 011700 . 011800 011900*---------------------------------------------- 012000 Uppdatera-Elev-Fil. 012100*---------------------------------------------- 012200 Move EB-Elev-Nummer to EF-Elev-Nummer 012300 Read Elev-Fil 012400 Invalid Key 012500 Display 'Post i Elev-fil saknas för elevnummer: ' 012600 EB-Elev-Nummer 012700 Move 99 to Return-Code 012800 GoBack 012900 End-Read 013000 013100 Add EB-Betalning to EF-Kurs-Betalt 013200 013300 Rewrite Elev-Fil-Post 013400 Invalid Key 013500 Display 'Gick ej att uppdatera Elev-Fil,' 013600 ' elevnummer: ' EB-Elev-Nummer 013700 Move 99 to Return-Code 013800 GoBack 013900 End-Rewrite 014000 014100 Compute Rest-Betalning = EF-Kurs-Kostnad - 014200 EF-Kurs-Betalt 014300 014400* Subtract EF-Kurs-Betalt from EF-Kurs-Kostnad 014500* Giving Rest-Betalning 014600 014700 Perform Skriv-Detaljrad 014800 . 014900*---------------------------------------------- 015000 Skriv-Detaljrad. 015100*---------------------------------------------- 015200 If Rest-Betalning Is Greater Than Zero 015300 Or Alla 015400 Move EF-Elev-Namn to ED-Elev-Namn 015500 Move EF-Elev-Nummer to ED-Elev-Nummer 015600 Move EF-Kurs-Kostnad to ED-Avgift 015700 Move EF-Kurs-Betalt to ED-Betalt 015800 Move Rest-Betalning to ED-Rest 015900 Write Elev-Lista-Rad from Elev-Detaljrad 016000 End-If 016100 . 016200*---------------------------------------------- 016300 Skriv-Rubriker. 016400*---------------------------------------------- 016500 Write Elev-Lista-Rad from Rapport-Rubrik1 016600 Write Elev-Lista-Rad from Rapport-Blankrad 016700 Write Elev-Lista-Rad from Rapport-Rubrik2 016800 Write Elev-Lista-Rad from Rapport-Blankrad 016900 . 017000*---------------------------------------------- 017100 Skriv-Rapportslut. 017200*---------------------------------------------- 017300 Write Elev-Lista-Rad from Rapport-Blankrad 017400 Write Elev-Lista-Rad from Rapport-Fot 017500 . 017600*---------------------------------------------- 017700 Oppna-Alla-Filer. 017800*---------------------------------------------- 017900 Open Input Elev-Betalning 018000 Open I-O Elev-Fil 018100 Open Output Elev-Lista 018200 . 018300*---------------------------------------------- 018400 Stang-Alla-Filer. 018500*---------------------------------------------- 018600 Close Elev-Fil 018700 Close Elev-Betalning 018800 Close Elev-Lista 018900 . 019000*---------------------------------------------- 019100 End Program ELEVBET1. 019200*----------------------------------------------