000100 IDENTIFICATION DIVISION. 00010000 000101 PROGRAM-ID. COBTP211. 00010100 000102 ENVIRONMENT DIVISION. 00010200 000103 CONFIGURATION SECTION. 00010300 000104 INPUT-OUTPUT SECTION. 00010400 000105 FILE-CONTROL. 00010500 000106 SELECT FICHIER-MOUVEMENTS ASSIGN TO MVTS. 00010600 000107* SELECT FICHIER-ETAT ASSIGN TO ETAT. 00010700 000108 DATA DIVISION. 00010800 000109 FILE SECTION. 00010900 000110 FD FICHIER-MOUVEMENTS. 00011000 000111 01 ENREG-MVTS. 00011100 000112 05 NUM-CPT PIC 9(10). 00011200 000113 05 DATE-MVT PIC 9(8). 00011300 000114 05 CODE-MVT PIC X. 00011400 000115 05 MONTANT-MVT PIC 9(8)V99. 00011500 000116 05 FILLER PIC X(21). 00011600 000117*FD FICHIER-ETAT. 00011700 000118*01 ENREG-ETAT PIC X(800). 00011800 000119 WORKING-STORAGE SECTION. 00011900 000120 01 INDICATEURS-DE-RUPTURE. 00012000 000121 05 FIN-DE-FICHIER-MOUVEMENTS PIC X VALUE 'N'. 00012100 000122 05 RUPTURE-NUM-CPT PIC 9(10). 00012200 000123 01 AUTRES. 00012300 000124 05 CUMUL-CARTE PIC 9(8)V99. 00012400 000125 05 CUMUL-DEPOT PIC 9(8)V99. 00012500 000126 05 CUMUL-RETRAIT PIC 9(8)V99. 00012600 000127 05 TOTAL PIC S9(8)V99. 00012700 000128 01 AFFICHAGE. 00012800 000129 05 CUMUL-CARTE-EDITE PIC ZZBZZZBZZ9V,99. 00012900 000130 05 CUMUL-DEPOT-EDITE PIC ZZBZZZBZZ9V,99. 00013000 000131 05 CUMUL-RETRAIT-EDITE PIC ZZBZZZBZZ9V,99. 00013100 000132 05 TOTAL-EDITE PIC ZZBZZZBZZ9V,99. 00013200 000133 PROCEDURE DIVISION. 00013300 000134**** 00013400 000135** PROGRAMME 00013500 000136**** 00013600 000137 000-PROGRAMME. 00013700 000138 OPEN INPUT FICHIER-MOUVEMENTS 00013800 000139* OPEN OUTPUT FICHIER-ETAT 00013900 000140 MOVE 'N' TO FIN-DE-FICHIER-MOUVEMENTS 00014000 000150 PERFORM 500-LECTURE-FICHIER-MOUVEMENTS 00015000 000160 PERFORM 100-COMPTE 00016000 000170 UNTIL FIN-DE-FICHIER-MOUVEMENTS = 'O' 00017000 000180 CLOSE FICHIER-MOUVEMENTS 00018000 000190* CLOSE FICHIER-ETAT 00019000 000200 STOP RUN 00020000 000300 . 00030000 000400**** 00040000 000500** COMPTE 00050000 000600**** 00060000 000700 100-COMPTE. 00070000 000800 MOVE NUM-CPT TO RUPTURE-NUM-CPT 00080000 000900 INITIALIZE CUMUL-CARTE CUMUL-DEPOT CUMUL-RETRAIT 00090000 001000 PERFORM 200-OPERATION 00100000 001100 UNTIL FIN-DE-FICHIER-MOUVEMENTS = 'O' 00110000 001200 OR NUM-CPT NOT EQUAL TO RUPTURE-NUM-CPT 00120000 001300 COMPUTE TOTAL = CUMUL-DEPOT 00130000 001400 - CUMUL-CARTE 00140000 001500 - CUMUL-RETRAIT 00150000 001600 MOVE TOTAL TO TOTAL-EDITE 00160000 001700 MOVE CUMUL-CARTE TO CUMUL-CARTE-EDITE 00170000 001710 MOVE CUMUL-RETRAIT TO CUMUL-RETRAIT-EDITE 00171000 001720 MOVE CUMUL-DEPOT TO CUMUL-DEPOT-EDITE 00172000 001730 DISPLAY '******************' 00173000 001740 DISPLAY 'NUMERO COMPTE CLIENT : ' NUM-CPT 00174000 001750 DISPLAY ' ' 00175000 001760 DISPLAY 'CUMUL DES RETRAITS ' CUMUL-RETRAIT-EDITE 00176000 001770 DISPLAY 'CUMUL DES CARTES BLEUES ' CUMUL-CARTE-EDITE 00177000 001780 DISPLAY 'CUMUL DES DEPOTS ' CUMUL-DEPOT-EDITE 00178000 001790 DISPLAY 'TOTAL ' TOTAL-EDITE 00179000 001791 . 00179100 001792**** 00179200 001793** OPERATION 00179300 001794**** 00179400 001795 200-OPERATION. 00179500 001796 EVALUATE CODE-MVT 00179600 001797 WHEN 'R' 00179700 001798 ADD MONTANT-MVT TO CUMUL-RETRAIT 00179800 001799 WHEN 'C' 00179900 001800 ADD MONTANT-MVT TO CUMUL-CARTE 00180000 001801 WHEN 'D' 00180100 001802 ADD MONTANT-MVT TO CUMUL-DEPOT 00180200 001803 WHEN OTHER 00180300 001804 CONTINUE 00180400 001805 END-EVALUATE 00180500 001806 PERFORM 500-LECTURE-FICHIER-MOUVEMENTS 00180600 001807 . 00180700 001808**** 00180800 001809** LECTURE-FICHIER-MOUVEMENTS 00180900 001810**** 00181000 001811 500-LECTURE-FICHIER-MOUVEMENTS. 00181100 001812 READ FICHIER-MOUVEMENTS 00181200 001813 AT END MOVE 'O' TO FIN-DE-FICHIER-MOUVEMENTS 00181300 001814 . 00181400 001815*********************************************************** 00181500 001816 IDENTIFICATION DIVISION. 00181600 001817 PROGRAM-ID. COBTP212. 00181700 001818 ENVIRONMENT DIVISION. 00181800 001819 CONFIGURATION SECTION. 00181900 001820 INPUT-OUTPUT SECTION. 00182000 001830 FILE-CONTROL. 00183000 001840 SELECT FICHIER-MOUVEMENTS ASSIGN TO MVTS. 00184000 001850 SELECT FICHIER-ETAT ASSIGN TO ETAT. 00185000 001860 DATA DIVISION. 00186000 001870 FILE SECTION. 00187000 001880 FD FICHIER-MOUVEMENTS. 00188000 001890 01 ENREG-MVTS. 00189000 001900 05 NUM-CPT PIC 9(10). 00190000 002000 05 DATE-MVT PIC 9(8). 00200000 002100 05 CODE-MVT PIC X. 00210000 002200 05 MONTANT-MVT PIC 9(8)V99. 00220000 002300 05 FILLER PIC X(21). 00230000 002400 FD FICHIER-ETAT. 00240000 002500 01 ENREG-ETAT PIC X(80). 00250000 002600**** 00260000 002700** WORKING-STORAGE SECTION 00270000 002800**** 00280000 002900 WORKING-STORAGE SECTION. 00290000 003000 01 INDICATEURS-DE-RUPTURE. 00300000 003100 05 FIN-DE-FICHIER-MOUVEMENTS PIC X VALUE 'N'. 00310000 003200 05 RUPTURE-NUM-CPT PIC 9(10). 00320000 003300 01 COMPTEURS. 00330000 003400 05 CTR-LECTURE PIC 999 COMP-3. 00340000 003500 05 CTR-COMPTE PIC 999 COMP-3. 00350000 003600 05 CTR-ECRITURE PIC 9 COMP-3. 00360000 003700 05 CTR-PAGE PIC 999 COMP-3. 00370000 003800 05 CTR-OPERATION PIC 999 COMP-3. 00380000 003900 01 DEFINITIONS. 00390000 004000 05 MAX-COMPTE-PAR-PAGE PIC 9 COMP-3 VALUE 2. 00400000 004100 01 AUTRES. 00410000 004200 05 CUMUL-CARTE PIC 9(8)V99 COMP-3. 00420000 004300 05 CUMUL-DEPOT PIC 9(8)V99 COMP-3. 00430000 004400 05 CUMUL-RETRAIT PIC 9(8)V99 COMP-3. 00440000 004500 05 TOTAL PIC S9(8)V99 COMP-3. 00450000 004600 01 DONNEES-TEMPORELLES. 00460000 004700 05 DATE-SYSTEME. 00470000 004800 10 AA PIC X(2). 00480000 004900 10 MM PIC X(2). 00490000 005000 10 JJ PIC X(2). 00500000 005100 05 DATE-TRAITEMENT. 00510000 005200 10 JJ PIC X(2)/. 00520000 005300 10 MM PIC X(2)/. 00530000 005400 10 AA PIC X(2). 00540000 005500 05 DATE-COMPILATION PIC X(16). 00550000 005600 05 HEURE-SYSTEME. 00560000 005700 10 HH PIC X(2). 00570000 005800 10 MN PIC X(2). 00580000 005900 10 SS PIC X(2). 00590000 006000 10 CC PIC X(2). 00600000 006100 05 HEURE-TRAITEMENT. 00610000 006200 10 HH PIC X(2). 00620000 006300 10 PIC X VALUE ':'. 00630000 006400 10 MN PIC X(2). 00640000 006500 10 PIC X VALUE ':'. 00650000 006600 10 SS PIC X(2). 00660000 006700 10 PIC X VALUE '.'. 00670000 006800 10 CC PIC X(2). 00680000 006900 01 LIGNE-ENTETE. 00690000 007000 05 FILLER PIC X(11) VALUE 'EDITION DU '. 00700000 007100 05 EDITION-DATE PIC XX/XX/XX. 00710000 007200 05 FILLER PIC X(16) VALUE SPACE. 00720000 007300 05 FILLER PIC X(21) VALUE 'RELEVE DES OPERATIONS'. 00730000 007400 05 FILLER PIC X(14) VALUE SPACE. 00740000 007500 05 FILLER PIC X(7) VALUE 'PAGE : '. 00750000 007600 05 EDITION-PAGE PIC ZZ9. 00760000 007700 01 LIGNE-COMPTE. 00770000 007800 05 FILLER PIC X(12) VALUE SPACE. 00780000 007900 05 FILLER PIC X(19) VALUE 'NUMERO DE COMPTE : '. 00790000 008000 05 EDITION-NUM-CPT PIC 9(10). 00800000 008100 05 FILLER PIC X(39) VALUE SPACE. 00810000 008200 01 LIGNE-OPERATION. 00820000 008300 05 FILLER PIC X(18) VALUE SPACE. 00830000 008400 05 FILLER PIC X(10) VALUE 'CUMUL DES '. 00840000 008500 05 EDITION-TYPE-OP PIC X(15). 00850000 008600 05 FILLER PIC X(20) VALUE SPACE. 00860000 008700 05 EDITION-CUMUL PIC ZZBZZZBZZ9V,99. 00870000 008800 01 LIGNE-TOTAL. 00880000 008900 05 FILLER PIC X(18) VALUE SPACE. 00890000 009000 05 FILLER PIC X(10) VALUE 'TOTAL : '. 00900000 009100 05 FILLER PIC X(34) VALUE SPACE. 00910000 009200 05 EDITION-TOTAL PIC -ZZBZZZBZZ9V,99. 00920000 009300 PROCEDURE DIVISION. 00930000 009400**** 00940000 009500** PROGRAMME 00950000 009600**** 00960000 009700 000-PROGRAMME. 00970000 009800 PERFORM 010-INITIALISATION-PROGRAMME 00980000 009900 PERFORM 500-LECTURE-FICHIER-MOUVEMENTS 00990000 010000 PERFORM 100-COMPTE 01000000 010100 UNTIL FIN-DE-FICHIER-MOUVEMENTS = 'O' 01010000 010200 IF CTR-COMPTE = 0 01020000 010300 MOVE 4 TO RETURN-CODE 01030000 010400 PERFORM 030-ABANDON-PROGRAMME 01040000 010500 ELSE 01050000 010600 PERFORM 020-TERMINAISON-PROGRAMME 01060000 010700 END-IF 01070000 010800 STOP RUN 01080000 010900 . 01090000 011000**** 01100000 011100** INITIALISATION-PROGRAMME 01110000 011200**** 01120000 011300 010-INITIALISATION-PROGRAMME. 01130000 011400* DATES DE DEBUT DE TRAITEMENT ET DE COMPILATION 01140000 011500 PERFORM 510-LIRE-INFOS-SYSTEME 01150000 011600 DISPLAY 'PGM COBTP212 DEBUT TRAITEMENT : ' DATE-TRAITEMENT 01160000 011700 ' A ' HEURE-TRAITEMENT 01170000 011800 MOVE WHEN-COMPILED TO DATE-COMPILATION 01180000 011900 DISPLAY 'PGM COBTP212 VERSION COMPILEE : ' DATE-COMPILATION 01190000 012000* OUVERTURE DES FICHIERS 01200000 012100 OPEN INPUT FICHIER-MOUVEMENTS 01210000 012200 OPEN OUTPUT FICHIER-ETAT 01220000 012300* INITIALISATIONS 01230000 012400 MOVE 'N' TO FIN-DE-FICHIER-MOUVEMENTS 01240000 012500 INITIALIZE CTR-LECTURE 01250000 012600 INITIALIZE CTR-COMPTE 01260000 012700 INITIALIZE CTR-ECRITURE 01270000 012800 INITIALIZE CTR-PAGE 01280000 012900 INITIALIZE CTR-OPERATION 01290000 013000 MOVE 0 TO RETURN-CODE 01300000 013100 MOVE DATE-TRAITEMENT TO EDITION-DATE 01310000 013200 MOVE ZERO TO EDITION-PAGE 01320000 013300* ECRITURE DE L'EN TETE DE LA PREMIERE PAGE 01330000 013400 PERFORM 420-EDITION-ENTETE 01340000 013500 . 01350000 013600**** 01360000 013700** TERMINAISON-PROGRAMME 01370000 013800**** 01380000 013900 020-TERMINAISON-PROGRAMME. 01390000 014000* DATE DE FIN DU TRAITEMENT 01400000 014100 PERFORM 510-LIRE-INFOS-SYSTEME 01410000 014200 DISPLAY 'PGM COBTP212 FIN NORMALE … : ' DATE-TRAITEMENT 01420000 014300 ' A ' HEURE-TRAITEMENT 01430000 014400 DISPLAY 'PGM COBTP212 CODE RETOUR POSTE : ' RETURN-CODE 01440000 014500* LOGS DIVERS 01450000 014600 DISPLAY ' ' CTR-LECTURE ' OPERATIONS LUES' 01460000 014700 DISPLAY ' ' CTR-OPERATION ' OPERATIONS TRAITEES' 01470000 014800 DISPLAY ' ' CTR-COMPTE ' COMPTES TRAITES' 01480000 014900* FERMETURE DES FICHIERS 01490000 015000 CLOSE FICHIER-MOUVEMENTS 01500000 015100 CLOSE FICHIER-ETAT 01510000 015200 . 01520000 015300**** 01530000 015400** ABANDON-PROGRAMME 01540000 015500**** 01550000 015600 030-ABANDON-PROGRAMME. 01560000 015700 PERFORM 510-LIRE-INFOS-SYSTEME 01570000 015800 DISPLAY 'PGM COBTP212 FIN ANORMALE : ' DATE-TRAITEMENT 01580000 015900 ' A ' HEURE-TRAITEMENT 01590000 016000 DISPLAY 'PGM COBTP212 CODE RETOUR POST‚ … ' RETURN-CODE 01600000 016100 . 01610000 016200**** 01620000 016300** COMPTE 01630000 016400**** 01640000 016500 100-COMPTE. 01650000 016600 MOVE NUM-CPT TO RUPTURE-NUM-CPT 01660000 016700 INITIALIZE CUMUL-CARTE CUMUL-DEPOT CUMUL-RETRAIT 01670000 016800 PERFORM 200-OPERATION 01680000 016900 UNTIL FIN-DE-FICHIER-MOUVEMENTS = 'O' 01690000 017000 OR NUM-CPT NOT EQUAL TO RUPTURE-NUM-CPT 01700000 017100 COMPUTE TOTAL = CUMUL-DEPOT 01710000 017200 - CUMUL-CARTE 01720000 017300 - CUMUL-RETRAIT 01730000 017400 PERFORM 400-EDITION-COMPTE 01740000 017500 . 01750000 017600**** 01760000 017700** OPERATION 01770000 017800**** 01780000 017900 200-OPERATION. 01790000 018000 EVALUATE CODE-MVT 01800000 018100 WHEN 'R' 01810000 018200 ADD MONTANT-MVT TO CUMUL-RETRAIT 01820000 018300 ADD 1 TO CTR-OPERATION 01830000 018400 WHEN 'C' 01840000 018500 ADD MONTANT-MVT TO CUMUL-CARTE 01850000 018600 ADD 1 TO CTR-OPERATION 01860000 018700 WHEN 'D' 01870000 018800 ADD MONTANT-MVT TO CUMUL-DEPOT 01880000 018900 ADD 1 TO CTR-OPERATION 01890000 019000 WHEN OTHER 01900000 019100 CONTINUE 01910000 019200 END-EVALUATE 01920000 019300 PERFORM 500-LECTURE-FICHIER-MOUVEMENTS 01930000 019400 . 01940000 019500**** 01950000 019600** EDITION-COMPTE 01960000 019700**** 01970000 019800 400-EDITION-COMPTE. 01980000 019900 IF CTR-ECRITURE = MAX-COMPTE-PAR-PAGE 01990000 020000 PERFORM 420-EDITION-ENTETE 02000000 020100 INITIALIZE CTR-ECRITURE 02010000 020200 END-IF 02020000 020300 MOVE RUPTURE-NUM-CPT TO EDITION-NUM-CPT 02030000 020400 WRITE ENREG-ETAT FROM LIGNE-COMPTE 02040000 020500 AFTER ADVANCING 3 LINE 02050000 020600* OPERATION RETRAITS 02060000 020700 MOVE 'RETRAITS ' TO EDITION-TYPE-OP 02070000 020800 MOVE CUMUL-RETRAIT TO EDITION-CUMUL 02080000 020900 WRITE ENREG-ETAT FROM LIGNE-OPERATION 02090000 021000 AFTER ADVANCING 2 LINE 02100000 021100* OPERATION CARTES 02110000 021200 MOVE 'CARTES BLEUES ' TO EDITION-TYPE-OP 02120000 021300 MOVE CUMUL-CARTE TO EDITION-CUMUL 02130000 021400 WRITE ENREG-ETAT FROM LIGNE-OPERATION 02140000 021500* OPERATION DEPOTS 02150000 021600 MOVE 'DEPOTS ' TO EDITION-TYPE-OP 02160000 021700 MOVE CUMUL-DEPOT TO EDITION-CUMUL 02170000 021800 WRITE ENREG-ETAT FROM LIGNE-OPERATION 02180000 021900* TOTAL 02190000 022000 MOVE TOTAL TO EDITION-TOTAL 02200000 022100 WRITE ENREG-ETAT FROM LIGNE-TOTAL 02210000 022200* MISE A JOUR DU COMPTEUR 02220000 022300 ADD 1 TO CTR-COMPTE 02230000 022400 ADD 1 TO CTR-ECRITURE 02240000 022500 . 02250000 022600**** 02260000 022700** EDITION-ENTETE 02270000 022800**** 02280000 022900 420-EDITION-ENTETE. 02290000 023000 ADD 1 TO CTR-PAGE 02300000 023100 MOVE CTR-PAGE TO EDITION-PAGE 02310000 023200 WRITE ENREG-ETAT FROM LIGNE-ENTETE 02320000 023300 AFTER ADVANCING PAGE 02330000 023400 . 02340000 023500**** 02350000 023600** LECTURE-FICHIER-MOUVEMENTS 02360000 023700**** 02370000 023800 500-LECTURE-FICHIER-MOUVEMENTS. 02380000 023900 READ FICHIER-MOUVEMENTS 02390000 024000 AT END MOVE 'O' TO FIN-DE-FICHIER-MOUVEMENTS 02400000 024100 NOT AT END ADD 1 TO CTR-LECTURE 02410000 024200 END-READ 02420000 024300 . 02430000 024400**** 02440000 024500** LIRE-INFOS-SYSTEME 02450000 024600** 02460000 024700 510-LIRE-INFOS-SYSTEME. 02470000 024800 ACCEPT DATE-SYSTEME FROM DATE 02480000 024900 MOVE CORR DATE-SYSTEME TO DATE-TRAITEMENT 02490000 025000 ACCEPT HEURE-SYSTEME FROM TIME 02500000 025100 MOVE CORR HEURE-SYSTEME TO HEURE-TRAITEMENT 02510000 025200 . 02520000