000100 IDENTIFICATION DIVISION. 00010000 000200 PROGRAM-ID. COBTP213. 00020000 000300 ENVIRONMENT DIVISION. 00030000 000400 CONFIGURATION SECTION. 00040000 000500 INPUT-OUTPUT SECTION. 00050000 000600 FILE-CONTROL. 00060000 000700 SELECT FIC-MVTS ASSIGN TO MVTS. 00070000 000800 SELECT FIC-ETAT ASSIGN TO ETAT. 00080000 000900 SELECT FIC-CPTIN ASSIGN TO CPTIN. 00090000 001000 SELECT FIC-CPTOUT ASSIGN TO CPTOUT. 00100000 001100 DATA DIVISION. 00110000 001200 FILE SECTION. 00120000 001300 FD FIC-MVTS. 00130000 001400 01 ENREG-MVTS. 00140000 001500 05 NUM-CPT-MVT PIC 9(10). 00150000 001600 05 DATE-MVT PIC 9(8). 00160000 001700 05 CODE-MVT PIC X. 00170000 001800 05 MONTANT-MVT PIC 9(8)V99. 00180000 001900 05 FILLER PIC X(21). 00190000 002000 FD FIC-ETAT. 00200000 002100 01 ENREG-ETAT PIC X(80). 00210000 002200 FD FIC-CPTIN. 00220000 002300 01 ENREG-CPTIN. 00230000 002400 05 NUM-CPT-CPT PIC 9(10). 00240000 002500 05 DATE-CREATION PIC 9(8). 00250000 002600 05 SOLDE PIC S9(8)V99. 00260000 002700 05 DATE-MAJ PIC 9(8). 00270000 002800 05 FILLER PIC X(4). 00280000 002900 FD FIC-CPTOUT. 00290000 003000 01 ENREG-CPTOUT PIC X(40). 00300000 003100**** 00310000 003200** WORKING-STORAGE SECTION 00320000 003300**** 00330000 003400 WORKING-STORAGE SECTION. 00340000 003500 01 INDICATEURS-DE-RUPTURE. 00350000 003600 05 EOF-MVTS PIC X VALUE 'N'. 00360000 003700 05 EOF-CPTIN PIC X VALUE 'N'. 00370000 003800 05 R-NUM-CPT-CPT PIC 9(10). 00380000 003900 05 R-NUM-CPT-MVT PIC 9(10). 00390000 004000 01 COMPTEURS. 00400000 004100 05 CTR-LECTURE-MVT PIC 999 COMP-3. 00410000 004110 05 CTR-LECTURE-CPT PIC 999 COMP-3. 00411000 004200 05 CTR-COMPTE PIC 999 COMP-3. 00420000 004300 05 CTR-ECRITURE PIC 9 COMP-3. 00430000 004400 05 CTR-PAGE PIC 999 COMP-3. 00440000 004500 05 CTR-OPERATION PIC 999 COMP-3. 00450000 004510 05 CTR-REPORT PIC 999 COMP-3. 00451000 004520 05 CTR-CREATION PIC 999 COMP-3. 00452000 004530 05 CTR-MAJ PIC 999 COMP-3. 00453000 004600 01 DEFINITIONS. 00460000 004700 05 MAX-COMPTE-PAR-PAGE PIC 9 COMP-3 VALUE 2. 00470000 004800 01 AUTRES. 00480000 004900 05 CUMUL-CARTE PIC 9(8)V99 COMP-3. 00490000 005000 05 CUMUL-DEPOT PIC 9(8)V99 COMP-3. 00500000 005100 05 CUMUL-RETRAIT PIC 9(8)V99 COMP-3. 00510000 005200 05 TOTAL PIC S9(8)V99 COMP-3. 00520000 005300 05 NOUVEAU-SOLDE PIC S9(8)V99 COMP-3. 00530000 005400 05 ANCIEN-SOLDE PIC S9(8)V99 COMP-3. 00540000 005500 01 DONNEES-TEMPORELLES. 00550000 005600 05 DATE-SYSTEME. 00560000 005700 10 AA PIC X(2). 00570000 005800 10 MM PIC X(2). 00580000 005900 10 JJ PIC X(2). 00590000 006000 05 DATE-TRAITEMENT. 00600000 006100 10 JJ PIC X(2)/. 00610000 006200 10 MM PIC X(2)/. 00620000 006300 10 AA PIC X(2). 00630000 006400 05 DATE-COMPILATION PIC X(16). 00640000 006500 05 HEURE-SYSTEME. 00650000 006600 10 HH PIC X(2). 00660000 006700 10 MN PIC X(2). 00670000 006800 10 SS PIC X(2). 00680000 006900 10 CC PIC X(2). 00690000 007000 05 HEURE-TRAITEMENT. 00700000 007100 10 HH PIC X(2). 00710000 007200 10 PIC X VALUE ':'. 00720000 007300 10 MN PIC X(2). 00730000 007400 10 PIC X VALUE ':'. 00740000 007500 10 SS PIC X(2). 00750000 007600 10 PIC X VALUE '.'. 00760000 007700 10 CC PIC X(2). 00770000 007800 01 LIGNE-ENTETE. 00780000 007900 05 FILLER PIC X(11) VALUE 'EDITION DU '. 00790000 008000 05 EDITION-DATE PIC XX/XX/XX. 00800000 008100 05 FILLER PIC X(16) VALUE SPACE. 00810000 008200 05 FILLER PIC X(21) VALUE 'RELEVE DES OPERATIONS'. 00820000 008300 05 FILLER PIC X(14) VALUE SPACE. 00830000 008400 05 FILLER PIC X(7) VALUE 'PAGE : '. 00840000 008500 05 EDITION-PAGE PIC ZZ9. 00850000 008600 01 LIGNE-COMPTE. 00860000 008700 05 FILLER PIC X(12) VALUE SPACE. 00870000 008800 05 FILLER PIC X(19) VALUE 'NUMERO DE COMPTE : '. 00880000 008900 05 EDITION-NUM-CPT PIC 9(10). 00890000 009000 05 FILLER PIC X(39) VALUE SPACE. 00900000 009100 01 LIGNE-OPERATION. 00910000 009200 05 FILLER PIC X(18) VALUE SPACE. 00920000 009300 05 FILLER PIC X(10) VALUE 'CUMUL DES '. 00930000 009400 05 EDITION-TYPE-OP PIC X(15). 00940000 009500 05 FILLER PIC X(20) VALUE SPACE. 00950000 009600 05 EDITION-CUMUL PIC ZZBZZZBZZ9V,99. 00960000 009700 01 LIGNE-TOTAL. 00970000 009800 05 FILLER PIC X(18) VALUE SPACE. 00980000 009900 05 FILLER PIC X(10) VALUE 'TOTAL : '. 00990000 010000 05 FILLER PIC X(34) VALUE SPACE. 01000000 010100 05 EDITION-TOTAL PIC -ZZBZZZBZZ9V,99. 01010000 010200 01 LIGNE-SOLDE. 01020000 010300 05 FILLER PIC X(6) VALUE SPACE. 01030000 010400 05 EDITION-TYPE-SOLDE PIC X(16). 01040000 010500 05 FILLER PIC X(20) VALUE SPACE. 01050000 010600 05 EDITION-SOLDE PIC -ZZBZZZBZZ9V,99. 01060000 010700 01 LIGNE-CPTOUT. 01070000 010800 05 EDITION-CPT-NUM-CPT PIC 9(10). 01080000 010900 05 EDITION-CPT-DATE-CREATION PIC 9(8). 01090000 011000 05 EDITION-CPT-SOLDE PIC S9(8)V99. 01100000 011100 05 EDITION-CPT-DATE-MAJ PIC 9(8). 01110000 011200 05 FILLER PIC X(4). 01120000 011300 PROCEDURE DIVISION. 01130000 011310 01131000 011320 01132000 011400**** 01140000 011500** PROGRAMME 01150000 011600**** 01160000 011700 000-PROGRAMME. 01170000 011800 PERFORM 010-INITIALISATION-PROGRAMME 01180000 011900 PERFORM 500-LECTURE-FICHIER-MOUVEMENTS 01190000 012000 PERFORM 520-LECTURE-FICHIER-COMPTES 01200000 012100 PERFORM 100-COMPTE 01210000 012200 UNTIL EOF-MVTS = 'O' 01220000 012210 AND EOF-CPTIN = 'O' 01221000 012300 IF CTR-COMPTE = 0 01230000 012400 MOVE 4 TO RETURN-CODE 01240000 012500 PERFORM 030-ABANDON-PROGRAMME 01250000 012600 ELSE 01260000 012700 PERFORM 020-TERMINAISON-PROGRAMME 01270000 012800 END-IF 01280000 012900 STOP RUN 01290000 013000 . 01300000 013010 01301000 013100**** 01310000 013200** INITIALISATION-PROGRAMME 01320000 013300**** 01330000 013400 010-INITIALISATION-PROGRAMME. 01340000 013500* DATES DE DEBUT DE TRAITEMENT ET DE COMPILATION 01350000 013600 PERFORM 510-LIRE-INFOS-SYSTEME 01360000 013700 DISPLAY 'PGM COBTP212 DEBUT TRAITEMENT : ' DATE-TRAITEMENT 01370000 013800 ' A ' HEURE-TRAITEMENT 01380000 013900 MOVE WHEN-COMPILED TO DATE-COMPILATION 01390000 014000 DISPLAY 'PGM COBTP212 VERSION COMPILEE : ' DATE-COMPILATION 01400000 014100* OUVERTURE DES FICHIERS 01410000 014200 OPEN INPUT FIC-MVTS 01420000 014300 OPEN INPUT FIC-CPTIN 01430000 014400 OPEN OUTPUT FIC-CPTOUT 01440000 014500 OPEN OUTPUT FIC-ETAT 01450000 014600* INITIALISATIONS 01460000 014700 MOVE 'N' TO EOF-MVTS 01470000 014800 MOVE 'N' TO EOF-CPTIN 01480000 014900 INITIALIZE CTR-LECTURE-MVT 01490000 015000 INITIALIZE CTR-COMPTE 01500000 015100 INITIALIZE CTR-ECRITURE 01510000 015200 INITIALIZE CTR-PAGE 01520000 015300 INITIALIZE CTR-OPERATION 01530000 015310 INITIALIZE CTR-LECTURE-CPT 01531000 015320 INITIALIZE CTR-REPORT 01532000 015330 INITIALIZE CTR-MAJ 01533000 015340 INITIALIZE CTR-CREATION 01534000 015400 MOVE 0 TO RETURN-CODE 01540000 015500 MOVE DATE-TRAITEMENT TO EDITION-DATE 01550000 015600 MOVE ZERO TO EDITION-PAGE 01560000 015700* ECRITURE DE L'EN TETE DE LA PREMIERE PAGE 01570000 015800 PERFORM 420-EDITION-ENTETE 01580000 015900 . 01590000 015910 01591000 016000**** 01600000 016100** TERMINAISON-PROGRAMME 01610000 016200**** 01620000 016300 020-TERMINAISON-PROGRAMME. 01630000 016400* DATE DE FIN DU TRAITEMENT 01640000 016500 PERFORM 510-LIRE-INFOS-SYSTEME 01650000 016600 DISPLAY 'PGM COBTP212 FIN NORMALE … : ' DATE-TRAITEMENT 01660000 016700 ' A ' HEURE-TRAITEMENT 01670000 016800 DISPLAY 'PGM COBTP212 CODE RETOUR POSTE : ' RETURN-CODE 01680000 016900* LOGS DIVERS 01690000 017000 DISPLAY ' ' CTR-LECTURE-MVT ' MOUVEMENTS LUS' 01700000 017100 DISPLAY ' ' CTR-OPERATION ' OPERATIONS TRAITEES' 01710000 017200 DISPLAY ' ' CTR-COMPTE ' COMPTES TRAITES' 01720000 017210 DISPLAY ' ' CTR-LECTURE-CPT ' COMPTES LUS' 01721000 017211 DISPLAY ' ' CTR-REPORT ' COMPTES REPORTES ' 01721100 017212 DISPLAY ' ' CTR-MAJ ' COMPTES MIS A JOUR' 01721200 017220 DISPLAY ' ' CTR-CREATION ' COMPTES CREES ' 01722000 017300* FERMETURE DES FICHIERS 01730000 017400 CLOSE FIC-MVTS 01740000 017500 CLOSE FIC-ETAT 01750000 017510 CLOSE FIC-CPTIN 01751000 017520 CLOSE FIC-CPTOUT 01752000 017600 . 01760000 017610 01761000 017700**** 01770000 017800** ABANDON-PROGRAMME 01780000 017900**** 01790000 018000 030-ABANDON-PROGRAMME. 01800000 018100 PERFORM 510-LIRE-INFOS-SYSTEME 01810000 018200 DISPLAY 'PGM COBTP212 FIN ANORMALE : ' DATE-TRAITEMENT 01820000 018300 ' A ' HEURE-TRAITEMENT 01830000 018400 DISPLAY 'PGM COBTP212 CODE RETOUR POST‚ … ' RETURN-CODE 01840000 018500 . 01850000 018510 01851000 018600**** 01860000 018700** COMPTE 01870000 018800**** 01880000 018900 100-COMPTE. 01890000 019000 MOVE NUM-CPT-CPT TO R-NUM-CPT-CPT 01900000 019100 MOVE NUM-CPT-MVT TO R-NUM-CPT-MVT 01910000 019200 INITIALIZE CUMUL-CARTE CUMUL-DEPOT CUMUL-RETRAIT 01920000 019300* ALTERNATIVE MULTIPLE 01930000 019400* WARNING METTRE UN EVALUATE WHEN CF DAVID 01940000 019500 IF R-NUM-CPT-CPT < R-NUM-CPT-MVT 01950000 019600 PERFORM 300-REPORT 01960000 019700 END-IF 01970000 019800 IF R-NUM-CPT-CPT = R-NUM-CPT-MVT 01980000 019900 PERFORM 320-MAJ 01990000 020000 END-IF 02000000 020100 IF R-NUM-CPT-CPT > R-NUM-CPT-MVT 02010000 020200 PERFORM 340-CREATION 02020000 020300 END-IF 02030000 020400 02040000 020500 COMPUTE TOTAL = CUMUL-DEPOT 02050000 020600 - CUMUL-CARTE 02060000 020700 - CUMUL-RETRAIT 02070000 020800 COMPUTE NOUVEAU-SOLDE = ANCIEN-SOLDE 02080000 020900 + TOTAL 02090000 021000 MOVE NOUVEAU-SOLDE TO EDITION-CPT-SOLDE 02100000 021100* ECRIRE FIC-ETAT 02110000 021200 PERFORM 400-EDITION-COMPTE 02120000 021300* ECRIRE FIC-CPTOUT 02130000 021400 WRITE ENREG-CPTOUT FROM LIGNE-CPTOUT 02140000 021500 . 02150000 021510 02151000 021600**** 02160000 021700** OPERATION 02170000 021800**** 02180000 021900 200-OPERATION. 02190000 022000 EVALUATE CODE-MVT 02200000 022100 WHEN 'R' 02210000 022200 ADD MONTANT-MVT TO CUMUL-RETRAIT 02220000 022300 ADD 1 TO CTR-OPERATION 02230000 022400 WHEN 'C' 02240000 022500 ADD MONTANT-MVT TO CUMUL-CARTE 02250000 022600 ADD 1 TO CTR-OPERATION 02260000 022700 WHEN 'D' 02270000 022800 ADD MONTANT-MVT TO CUMUL-DEPOT 02280000 022900 ADD 1 TO CTR-OPERATION 02290000 023000 WHEN OTHER 02300000 023100 CONTINUE 02310000 023200 END-EVALUATE 02320000 023300 MOVE DATE-MVT TO EDITION-CPT-DATE-MAJ 02330000 023400 PERFORM 500-LECTURE-FICHIER-MOUVEMENTS 02340000 023500 . 02350000 023510 02351000 023600**** 02360000 023700** REPORT 02370000 023800**** 02380000 023900 300-REPORT. 02390000 023901 DISPLAY 'REPORT COMPTE : ' NUM-CPT-CPT 02390100 023910* VALEURS POUR EDITION FIC-CPTOUT 02391000 024000 MOVE ENREG-CPTIN TO LIGNE-CPTOUT 02400000 024100 MOVE SOLDE TO ANCIEN-SOLDE 02410000 024110* VALEURS POUR EDITION FIC-ETAT 02411000 024120 MOVE NUM-CPT-CPT TO EDITION-NUM-CPT 02412000 024130* SUITE 02413000 024140 ADD 1 TO CTR-REPORT 02414000 024200 PERFORM 520-LECTURE-FICHIER-COMPTES 02420000 024300 . 02430000 024400 02440000 024500**** 02450000 024600** MAJ 02460000 024700**** 02470000 024800 320-MAJ. 02480000 024801 DISPLAY 'MAJ COMPTE : ' NUM-CPT-CPT 02480100 024810* VALEURS POUR EDITION FIC-CPTOUT 02481000 024900 MOVE NUM-CPT-CPT TO EDITION-CPT-NUM-CPT 02490000 025000 MOVE DATE-CREATION TO EDITION-CPT-DATE-CREATION 02500000 025100 MOVE SOLDE TO ANCIEN-SOLDE 02510000 025110* VALEURS POUR EDITION FIC-ETAT 02511000 025120 MOVE NUM-CPT-CPT TO EDITION-NUM-CPT 02512000 025130* SUITE 02513000 025200 PERFORM 200-OPERATION 02520000 025300 UNTIL EOF-MVTS = 'O' 02530000 025400 OR NUM-CPT-MVT NOT EQUAL TO R-NUM-CPT-MVT 02540000 025410 ADD 1 TO CTR-MAJ 02541000 025500 PERFORM 520-LECTURE-FICHIER-COMPTES 02550000 025600 . 02560000 025700 02570000 025800**** 02580000 025900** CREATION 02590000 026000**** 02600000 026100 340-CREATION. 02610000 026101 DISPLAY 'CREATION COMPTE : ' NUM-CPT-MVT 02610100 026110* VALEURS POUR EDITION FIC-CPTOUT 02611000 026200 MOVE NUM-CPT-MVT TO EDITION-CPT-NUM-CPT 02620000 026300 MOVE DATE-MVT TO EDITION-CPT-DATE-CREATION 02630000 026400 INITIALIZE ANCIEN-SOLDE 02640000 026410* VALEURS POUR EDITION FIC-ETAT 02641000 026420 MOVE NUM-CPT-MVT TO EDITION-NUM-CPT 02642000 026500 PERFORM 200-OPERATION 02650000 026600 UNTIL EOF-MVTS = 'O' 02660000 026700 OR NUM-CPT-MVT NOT EQUAL TO R-NUM-CPT-MVT 02670000 026710 ADD 1 TO CTR-CREATION 02671000 026800 . 02680000 026900 02690000 027000**** 02700000 027100** EDITION-COMPTE 02710000 027200**** 02720000 027300 400-EDITION-COMPTE. 02730000 027400 IF CTR-ECRITURE = MAX-COMPTE-PAR-PAGE 02740000 027500 PERFORM 420-EDITION-ENTETE 02750000 027600 INITIALIZE CTR-ECRITURE 02760000 027700 END-IF 02770000 027800* NUMERO DE COMPTE 02780000 028000 WRITE ENREG-ETAT FROM LIGNE-COMPTE 02800000 028100 AFTER ADVANCING 3 LINE 02810000 028200* ANCIEN SOLDE 02820000 028300 MOVE 'ANCIEN SOLDE :' TO EDITION-TYPE-SOLDE 02830000 028400 MOVE ANCIEN-SOLDE TO EDITION-SOLDE 02840000 028500 WRITE ENREG-ETAT FROM LIGNE-SOLDE 02850000 028510 AFTER ADVANCING 2 LINE 02851000 028600* OPERATION RETRAITS 02860000 028700 MOVE 'RETRAITS ' TO EDITION-TYPE-OP 02870000 028800 MOVE CUMUL-RETRAIT TO EDITION-CUMUL 02880000 028900 WRITE ENREG-ETAT FROM LIGNE-OPERATION 02890000 029000 AFTER ADVANCING 2 LINE 02900000 029100* OPERATION CARTES 02910000 029200 MOVE 'CARTES BLEUES ' TO EDITION-TYPE-OP 02920000 029300 MOVE CUMUL-CARTE TO EDITION-CUMUL 02930000 029400 WRITE ENREG-ETAT FROM LIGNE-OPERATION 02940000 029500* OPERATION DEPOTS 02950000 029600 MOVE 'DEPOTS ' TO EDITION-TYPE-OP 02960000 029700 MOVE CUMUL-DEPOT TO EDITION-CUMUL 02970000 029800 WRITE ENREG-ETAT FROM LIGNE-OPERATION 02980000 029900* TOTAL 02990000 030000 MOVE TOTAL TO EDITION-TOTAL 03000000 030100 WRITE ENREG-ETAT FROM LIGNE-TOTAL 03010000 030110* NOUVEAU SOLDE 03011000 030120 MOVE 'NOUVEAU SOLDE : ' TO EDITION-TYPE-SOLDE 03012000 030130 MOVE NOUVEAU-SOLDE TO EDITION-SOLDE 03013000 030140 WRITE ENREG-ETAT FROM LIGNE-SOLDE 03014000 030150 AFTER ADVANCING 2 LINE 03015000 030200* MISE A JOUR DU COMPTEUR 03020000 030300 ADD 1 TO CTR-COMPTE 03030000 030400 ADD 1 TO CTR-ECRITURE 03040000 030500 . 03050000 030510 03051000 030600**** 03060000 030700** EDITION-ENTETE 03070000 030800**** 03080000 030900 420-EDITION-ENTETE. 03090000 031000 ADD 1 TO CTR-PAGE 03100000 031100 MOVE CTR-PAGE TO EDITION-PAGE 03110000 031200 WRITE ENREG-ETAT FROM LIGNE-ENTETE 03120000 031300 AFTER ADVANCING PAGE 03130000 031400 . 03140000 031410 03141000 031500**** 03150000 031600** LECTURE-FICHIER-MOUVEMENTS 03160000 031700** ASTUCE HV EN FIN DE LECTURE 03170000 031800**** 03180000 031900 500-LECTURE-FICHIER-MOUVEMENTS. 03190000 032000 READ FIC-MVTS 03200000 032100 AT END MOVE 'O' TO EOF-MVTS 03210000 032200 MOVE 'O' TO EOF-MVTS 03220000 032300 MOVE 99999999999 TO NUM-CPT-MVT 03230000 032400 NOT AT END ADD 1 TO CTR-LECTURE-MVT 03240000 032500 END-READ 03250000 032600 . 03260000 032610 03261000 032700**** 03270000 032800** LIRE-INFOS-SYSTEME 03280000 032900**** 03290000 033000 510-LIRE-INFOS-SYSTEME. 03300000 033100 ACCEPT DATE-SYSTEME FROM DATE 03310000 033200 MOVE CORR DATE-SYSTEME TO DATE-TRAITEMENT 03320000 033300 ACCEPT HEURE-SYSTEME FROM TIME 03330000 033400 MOVE CORR HEURE-SYSTEME TO HEURE-TRAITEMENT 03340000 033500 . 03350000 033510 03351000 033600**** 03360000 033700** LECTURE-FICHIER-COMPTES 03370000 033800** ASTUCE HV EN FIN DE LECTURE 03380000 033900**** 03390000 034000 520-LECTURE-FICHIER-COMPTES. 03400000 034100 READ FIC-CPTIN 03410000 034200 AT END MOVE 'O' TO EOF-CPTIN 03420000 034300 MOVE 'O' TO EOF-CPTIN 03430000 034400 MOVE 99999999999 TO NUM-CPT-CPT 03440000 034500 NOT AT END ADD 1 TO CTR-LECTURE-CPT 03450000 034600 END-READ 03460000 034700 . 03470000 034800***************************************************** 03480001 034900 IDENTIFICATION DIVISION. 03490001 035000 PROGRAM-ID. COBTP214. 03500001 035100 03510001 035200 ENVIRONMENT DIVISION. 03520001 035300 CONFIGURATION SECTION. 03530001 035400 INPUT-OUTPUT SECTION. 03540001 035500 FILE-CONTROL. 03550001 035600 SELECT FIC-TRANS ASSIGN TO TRANS. 03560001 035700 SELECT FIC-ETAT ASSIGN TO ETAT. 03570001 035800 SELECT FIC-CPT ASSIGN TO CPT 03580001 035900 ORGANIZATION INDEXED 03590001 036000 ACCESS MODE RANDOM 03600001 036100 RECORD KEY CLE-CPT 03610001 036200 FILE STATUS FS-CPT. 03620001 036300 DATA DIVISION. 03630001 036400**** 03640001 036500** FILE SECTION 03650001 036600**** 03660001 036700 FILE SECTION. 03670001 036800 FD FIC-TRANS. 03680001 036900 01 ENREG-TRANS. 03690001 037000 05 NUM-CPT-TRANS PIC 9(10). 03700001 037100 05 CODE-TRANS PIC X. 03710001 037200 05 NOM-CLIENT-TRANS PIC X(20). 03720001 037300 05 DATE-CREATION-TRANS. 03730001 037400 10 AA PIC XX. 03740001 037500 10 MM PIC XX. 03750001 037600 10 JJ PIC XX. 03760001 037700 05 SOLDE-TRANS PIC S9(07)V9(02) COMP-3. 03770001 037800 05 DATE-MAJ-TRANS. 03780001 037900 10 AA PIC XX. 03790001 038000 10 MM PIC XX. 03800001 038100 10 JJ PIC XX. 03810001 038200 05 IMAJ-NOM-CLIENT PIC X. 03820001 038300 05 IMAJ-DATE-CREATION PIC X. 03830001 038400 05 IMAJ-SOLDE PIC X. 03840001 038500 05 IMAJ-DATE-MAJ PIC X. 03850001 038600 05 FILLER PIC X(8). 03860001 038700 FD FIC-CPT. 03870001 038800 01 ENREG-CPT. 03880001 038900 05 CLE-CPT. 03890001 039000 10 NUM-CPT-CPT PIC 9(10). 03900001 039100 05 NOM-CLIENT-CPT PIC X(20). 03910001 039200 05 DATE-CREATION-CPT. 03920001 039300 10 AA PIC XX. 03930001 039400 10 MM PIC XX. 03940001 039500 10 JJ PIC XX. 03950001 039600 05 SOLDE-CPT PIC S9(07)V99 COMP-3. 03960001 039700 05 DATE-MAJ-CPT. 03970001 039800 10 AA PIC XX. 03980001 039900 10 MM PIC XX. 03990001 040000 10 JJ PIC XX. 04000001 040100 05 FILLER PIC X(3). 04010001 040200 FD FIC-ETAT. 04020001 040300 01 ENREG-ETAT PIC X(80). 04030001 040400**** 04040001 040500** WORKING-STORAGE SECTION 04050001 040600**** 04060001 040700 WORKING-STORAGE SECTION. 04070001 040800 01 INDICATEURS-DE-RUPTURE. 04080001 040900 05 EOF-TRANS PIC X VALUE 'N'. 04090001 041000 01 COMPTEURS. 04100001 041100 05 CTR-LECTURE-TRANS PIC 999 COMP-3. 04110001 041200 05 CTR-CREATION-OK PIC 999 COMP-3. 04120001 041300 05 CTR-CREATION-FAILED PIC 999 COMP-3. 04130001 041400 05 CTR-MAJ-OK PIC 999 COMP-3. 04140001 041500 05 CTR-MAJ-FAILED PIC 999 COMP-3. 04150001 041600 05 CTR-SUPPRESSION-OK PIC 999 COMP-3. 04160001 041700 05 CTR-SUPPRESSION-FAILED PIC 999 COMP-3. 04170001 041800 01 CODE-RETOUR-FICHIER. 04180001 041900 05 FS-CPT PIC XX. 04190001 042000 88 FS-CPT-NORMAL VALUE '00'. 04200001 042100 88 FS-CPT-NOTFND VALUE '23'. 04210001 042200 88 FS-CPT-DUPREC VALUE '22'. 04220001 042300 88 FS-CPT-ENDFILE VALUE '10'. 04230001 042400 01 DEFINITIONS. 04240001 042500 05 MAX-COMPTE-PAR-PAGE PIC 9 COMP-3 VALUE 2. 04250001 042600 01 DONNEES-TEMPORELLES. 04260001 042700 05 DATE-SYSTEME. 04270001 042800 10 AA PIC X(2). 04280001 042900 10 MM PIC X(2). 04290001 043000 10 JJ PIC X(2). 04300001 043100 05 DATE-TRAITEMENT. 04310001 043200 10 JJ PIC X(2)/. 04320001 043300 10 MM PIC X(2)/. 04330001 043400 10 AA PIC X(2). 04340001 043500 05 DATE-COMPILATION PIC X(16). 04350001 043600 05 HEURE-SYSTEME. 04360001 043700 10 HH PIC X(2). 04370001 043800 10 MN PIC X(2). 04380001 043900 10 SS PIC X(2). 04390001 044000 10 CC PIC X(2). 04400001 044100 05 HEURE-TRAITEMENT. 04410001 044200 10 HH PIC X(2). 04420001 044300 10 PIC X VALUE ':'. 04430001 044400 10 MN PIC X(2). 04440001 044500 10 PIC X VALUE ':'. 04450001 044600 10 SS PIC X(2). 04460001 044700 10 PIC X VALUE '.'. 04470001 044800 10 CC PIC X(2). 04480001 044900* FIC-ETAT 04490001 045000 01 LIGNE-ENTETE1. 04500001 045100 05 FILLER PIC X(11) VALUE 'EDITION DU '. 04510001 045200 05 EDITION-DATE PIC XX/XX/XX. 04520001 045300 05 FILLER PIC X(16) VALUE SPACE. 04530001 045400 05 FILLER PIC X(21) VALUE 'RELEVE DES OPERATIONS'. 04540001 045500 05 FILLER PIC X(14) VALUE SPACE. 04550001 045600 05 FILLER PIC X(7) VALUE 'PAGE : '. 04560001 045700 05 EDITION-PAGE PIC ZZ9. 04570001 045800 01 LIGNE-ENTETE2. 04580001 045900 05 FILLER PIC X(28) VALUE SPACE. 04590001 046000 05 FILLER PIC X(23) VALUE 'MISE A JOUR DES COMPTES'. 04600001 046100 05 FILLER PIC X(29) VALUE SPACE. 04610001 046200 01 LIGNE-ENTETE3. 04620001 046300 05 FILLER PIC X(20) VALUE SPACE. 04630001 046400 05 FILLER PIC X(10) VALUE 'DEBUT ETAT'. 04640001 046500 05 FILLER PIC X(50) VALUE SPACE. 04650001 046600 01 LIGNE-TRANSACTION. 04660001 046700 05 FILLER PIC X(2) VALUE SPACE. 04670001 046800 05 EDITION-ETAT-NUM-CPT PIC 9(10). 04680001 046900 05 FILLER PIC X(2) VALUE SPACE. 04690001 047000 05 EDITION-ETAT-DATE-CREATION. 04700001 047100 10 JJ PIC XX/. 04710001 047200 10 MM PIC XX/. 04720001 047300 10 AA PIC XX. 04730001 047400 05 FILLER PIC X(2) VALUE SPACE. 04740001 047500 05 EDITION-ETAT-DATE-MAJ. 04750001 047600 10 JJ PIC XX/. 04760001 047700 10 MM PIC XX/. 04770001 047800 10 AA PIC XX. 04780001 047900 05 FILLER PIC X(2) VALUE SPACE. 04790001 048000 05 EDITION-ETAT-SOLDE PIC +ZBZZZBZZ9V,99. 04800001 048100 05 FILLER PIC XX VALUE SPACE. 04810001 048200 05 EDITION-ETAT-NOM-CLIENT PIC X(20). 04820001 048300 05 FILLER PIC XX VALUE SPACE. 04830001 048400 05 EDITION-ETAT-STATUT PIC X(8). 04840001 048500 05 FILLER PIC X. 04850001 048600* FICHIER DES COMPTES CLIENT 04860001 048700 01 LIGNE-CPT. 04870001 048800 05 EDITION-CPT-NUM-CPT PIC 9(10). 04880001 048900 05 EDITION-CPT-NOM-CLIENT PIC X(20). 04890001 049000 05 EDITION-CPT-DATE-CREATION PIC 9(6). 04900001 049100 05 EDITION-CPT-SOLDE PIC S9(7)V99 COMP-3. 04910001 049200 05 EDITION-CPT-DATE-MAJ PIC 9(6). 04920001 049300 PROCEDURE DIVISION. 04930001 049400 04940001 049500 04950001 049600**** 04960001 049700** PROGRAMME 04970001 049800**** 04980001 049900 000-PROGRAMME. 04990001 050000 PERFORM 010-INITIALISATION-PROGRAMME 05000001 050100 PERFORM 520-LECTURE-FICHIER-TRANS 05010001 050200 PERFORM 100-TRANSACTION 05020001 050300 UNTIL EOF-TRANS = 'O' 05030001 050400 IF CTR-LECTURE-TRANS = 0 05040001 050500 MOVE 4 TO RETURN-CODE 05050001 050600 PERFORM 030-ABANDON-PROGRAMME 05060001 050700 ELSE 05070001 050800 PERFORM 020-TERMINAISON-PROGRAMME 05080001 050900 END-IF 05090001 051000 STOP RUN 05100001 051100 . 05110001 051200 05120001 051300**** 05130001 051400** INITIALISATION-PROGRAMME 05140001 051500**** 05150001 051600 010-INITIALISATION-PROGRAMME. 05160001 051700* DATES DE DEBUT DE TRAITEMENT ET DE COMPILATION 05170001 051800 PERFORM 500-LIRE-INFOS-SYSTEME 05180001 051900 DISPLAY 'PGM COBTP214 DEBUT TRAITEMENT : ' DATE-TRAITEMENT 05190001 052000 ' A ' HEURE-TRAITEMENT 05200001 052100 MOVE WHEN-COMPILED TO DATE-COMPILATION 05210001 052200 DISPLAY 'PGM COBTP214 VERSION COMPILEE : ' DATE-COMPILATION 05220001 052300* OUVERTURE DES FICHIERS 05230001 052400 OPEN INPUT FIC-TRANS 05240001 052500 OPEN OUTPUT FIC-ETAT 05250001 052600 PERFORM 600-OPEN-FICHIER-COMPTES 05260001 052700* INITIALISATIONS DIVERSES 05270001 052800 MOVE 'N' TO EOF-TRANS 05280001 052900 MOVE 0 TO RETURN-CODE 05290001 053000 MOVE DATE-TRAITEMENT TO EDITION-DATE 05300001 053100 MOVE ZERO TO EDITION-PAGE 05310001 053200* INITIALISATIONS COMPTEURS 05320001 053300 INITIALIZE COMPTEURS 05330001 053400* INITIALIZE CTR-LECTURE-TRANS 05340001 053500* INITIALIZE CTR-CREATION-OK 05350001 053600* INITIALIZE CTR-CREATION-FAILED 05360001 053700* INITIALIZE CTR-MAJ-OK 05370001 053800* INITIALIZE CTR-MAJ-FAILED 05380001 053900* INITIALIZE CTR-SUPPRESSION-OK 05390001 054000* INITIALIZE CTR-SUPPRESSION-FAILED 05400001 054100* ECRITURE DE L'EN TETE DE LA PREMIERE PAGE 05410001 054200* PERFORM 420-EDITION-ENTETE 05420001 054300 WRITE ENREG-ETAT FROM LIGNE-ENTETE3 05430001 054400 . 05440001 054500 05450001 054600**** 05460001 054700** TERMINAISON-PROGRAMME 05470001 054800**** 05480001 054900 020-TERMINAISON-PROGRAMME. 05490001 055000* DATE DE FIN DU TRAITEMENT 05500001 055100 PERFORM 500-LIRE-INFOS-SYSTEME 05510001 055200 DISPLAY 'PGM COBTP214 FIN NORMALE … : ' DATE-TRAITEMENT 05520001 055300 ' A ' HEURE-TRAITEMENT 05530001 055400 DISPLAY 'PGM COBTP214 CODE RETOUR POSTE : ' RETURN-CODE 05540001 055500* LOGS DIVERS 05550001 055600 DISPLAY ' ' CTR-LECTURE-TRANS ' TRANSACTIONS LUES' 05560001 055700 DISPLAY ' ' CTR-CREATION-OK ' CREATIONS OK ' 05570001 055800 DISPLAY ' ' CTR-CREATION-FAILED ' CREATIONS RATEES' 05580001 055900 DISPLAY ' ' CTR-MAJ-OK ' MAJ OK ' 05590001 056000 DISPLAY ' ' CTR-MAJ-FAILED ' MAJ RATEES ' 05600001 056100 DISPLAY ' ' CTR-SUPPRESSION-OK ' SUPPRESSIONS OK ' 05610001 056200 DISPLAY ' ' CTR-SUPPRESSION-FAILED ' SUPPRESSIONS RATEES' 05620001 056300* FERMETURE DES FICHIERS 05630001 056400 CLOSE FIC-TRANS 05640001 056500 CLOSE FIC-ETAT 05650001 056600 CLOSE FIC-CPT 05660001 056700 . 05670001 056800 05680001 056900**** 05690001 057000** ABANDON-PROGRAMME 05700001 057100**** 05710001 057200 030-ABANDON-PROGRAMME. 05720001 057300 PERFORM 500-LIRE-INFOS-SYSTEME 05730001 057400 DISPLAY 'PGM COBTP214 FIN ANORMALE : ' DATE-TRAITEMENT 05740001 057500 ' A ' HEURE-TRAITEMENT 05750001 057600 DISPLAY 'PGM COBTP214 CODE RETOUR POST‚ … ' RETURN-CODE 05760001 057700* LOGS DIVERS 05770001 057800 DISPLAY ' ' CTR-LECTURE-TRANS ' TRANSACTIONS LUES' 05780001 057900 DISPLAY ' ' CTR-CREATION-OK ' CREATIONS OK ' 05790001 058000 DISPLAY ' ' CTR-CREATION-FAILED ' CREATIONS RATEES' 05800001 058100 DISPLAY ' ' CTR-MAJ-OK ' MAJ OK ' 05810001 058200 DISPLAY ' ' CTR-MAJ-FAILED ' MAJ RATEES ' 05820001 058300 DISPLAY ' ' CTR-SUPPRESSION-OK ' SUPPRESSIONS OK' 05830001 058400 DISPLAY ' ' CTR-SUPPRESSION-FAILED ' SUPPRESSIONS RATEES' 05840001 058500 STOP RUN 05850001 058600 . 05860001 058700 05870001 058800**** 05880001 058900** TRANSACTION 05890001 059000**** 05900001 059100 100-TRANSACTION. 05910001 059200 INITIALIZE LIGNE-TRANSACTION 05920001 059300 MOVE NUM-CPT-TRANS TO CLE-CPT 05930001 059400 PERFORM 620-LECTURE-FICHIER-COMPTES 05940001 059500 EVALUATE TRUE 05950001 059600 WHEN CODE-TRANS = 'C' PERFORM 200-CREATION 05960001 059700 WHEN CODE-TRANS = 'M' PERFORM 220-MAJ 05970001 059800 WHEN CODE-TRANS = 'S' PERFORM 240-SUPPRESSION 05980001 059900 WHEN OTHER CONTINUE 05990001 060000 END-EVALUATE 06000001 060100 PERFORM 400-EDITION-TRANSACTION 06010001 060200 PERFORM 520-LECTURE-FICHIER-TRANS 06020001 060300 . 06030001 060400 06040001 060500**** 06050001 060600** CREATION 06060001 060700**** 06070001 060800 200-CREATION. 06080001 060900* VALEURS POUR FIC-ETAT 06090001 061000 MOVE NUM-CPT-TRANS TO EDITION-ETAT-NUM-CPT 06100001 061100 MOVE NOM-CLIENT-TRANS TO EDITION-ETAT-NOM-CLIENT 06110001 061200 MOVE CORR DATE-CREATION-TRANS TO EDITION-ETAT-DATE-CREATION 06120001 061300 MOVE SOLDE-TRANS TO EDITION-ETAT-SOLDE 06130001 061400 MOVE CORR DATE-MAJ-TRANS TO EDITION-ETAT-DATE-MAJ 06140001 061500 06150001 061600 IF FS-CPT-NOTFND THEN 06160001 061700* VALEURS POUR FIC-CPT 06170001 061800 MOVE NUM-CPT-TRANS TO EDITION-CPT-NUM-CPT 06180001 061900 MOVE NOM-CLIENT-TRANS TO EDITION-CPT-NOM-CLIENT 06190001 062000 MOVE DATE-CREATION-TRANS TO EDITION-CPT-DATE-CREATION 06200001 062100 MOVE SOLDE-TRANS TO EDITION-CPT-SOLDE 06210001 062200 MOVE DATE-MAJ-TRANS TO EDITION-CPT-DATE-MAJ 06220001 062300 WRITE ENREG-CPT FROM LIGNE-CPT 06230001 062400* STATUT FIC-ETAT 06240001 062500 MOVE 'C OK ' TO EDITION-ETAT-STATUT 06250001 062600 ADD 1 TO CTR-CREATION-OK 06260001 062700 ELSE 06270001 062800* STATUT FIC-ETAT 06280001 062900 MOVE 'C A TORT' TO EDITION-ETAT-STATUT 06290001 063000 ADD 1 TO CTR-CREATION-FAILED 06300001 063100 END-IF 06310001 063200 . 06320001 063300 06330001 063400**** 06340001 063500** MISE A JOUR 06350001 063600**** 06360001 063700 220-MAJ. 06370001 063800 06380001 063900 IF FS-CPT-NOTFND THEN 06390001 064000* VALEURS POUR LIGNE-TRANSACTION 06400001 064100 MOVE NUM-CPT-TRANS TO EDITION-ETAT-NUM-CPT 06410001 064200 06420001 064300 MOVE 'M A TORT' TO EDITION-ETAT-STATUT 06430001 064400 ADD 1 TO CTR-MAJ-FAILED 06440001 064500 ELSE 06450001 064600* VALEURS POUR LIGNE-CPT 06460001 064700 MOVE NUM-CPT-CPT TO EDITION-CPT-NUM-CPT 06470001 064800 IF IMAJ-NOM-CLIENT = 'O' THEN 06480001 064900 MOVE NOM-CLIENT-TRANS TO EDITION-CPT-NOM-CLIENT 06490001 065000 ELSE 06500001 065100 MOVE NOM-CLIENT-CPT TO EDITION-CPT-NOM-CLIENT 06510001 065200 END-IF 06520001 065300 IF IMAJ-DATE-CREATION = 'O' THEN 06530001 065400 MOVE DATE-CREATION-TRANS TO EDITION-CPT-DATE-CREATION 06540001 065500 ELSE 06550001 065600 MOVE DATE-CREATION-CPT TO EDITION-CPT-DATE-CREATION 06560001 065700 END-IF 06570001 065800 IF IMAJ-SOLDE = 'O' THEN 06580001 065900 MOVE SOLDE-TRANS TO EDITION-CPT-SOLDE 06590001 066000 ELSE 06600001 066100 MOVE SOLDE-TRANS TO EDITION-CPT-SOLDE 06610001 066200 END-IF 06620001 066300 IF IMAJ-DATE-MAJ = 'O' THEN 06630001 066400 MOVE DATE-MAJ-TRANS TO EDITION-CPT-DATE-MAJ 06640001 066500 ELSE 06650001 066600 MOVE DATE-MAJ-TRANS TO EDITION-CPT-DATE-MAJ 06660001 066700 END-IF 06670001 066800 REWRITE ENREG-CPT FROM LIGNE-CPT 06680001 066900* VALEURS POUR LIGNE-TRANSACTION 06690001 067000 MOVE NUM-CPT-TRANS TO EDITION-ETAT-NUM-CPT 06700001 067100 IF IMAJ-NOM-CLIENT = 'O' THEN 06710001 067200 MOVE NOM-CLIENT-TRANS TO EDITION-ETAT-NOM-CLIENT 06720001 067300 ELSE 06730001 067400 MOVE NOM-CLIENT-CPT TO EDITION-ETAT-NOM-CLIENT 06740001 067500 END-IF 06750001 067600 IF IMAJ-DATE-CREATION = 'O' THEN 06760001 067700 MOVE CORR DATE-CREATION-TRANS TO EDITION-ETAT-DATE-CREATION 06770001 067800 ELSE 06780001 067900 MOVE CORR DATE-CREATION-CPT TO EDITION-ETAT-DATE-CREATION 06790001 068000 END-IF 06800001 068100 IF IMAJ-SOLDE = 'O' THEN 06810001 068200 MOVE SOLDE-TRANS TO EDITION-ETAT-SOLDE 06820001 068300 ELSE 06830001 068400 MOVE SOLDE-TRANS TO EDITION-ETAT-SOLDE 06840001 068500 END-IF 06850001 068600 IF IMAJ-DATE-MAJ = 'O' THEN 06860001 068700 MOVE CORR DATE-MAJ-TRANS TO EDITION-ETAT-DATE-MAJ 06870001 068800 ELSE 06880001 068900 MOVE CORR DATE-MAJ-TRANS TO EDITION-ETAT-DATE-MAJ 06890001 069000 END-IF 06900001 069100 MOVE 'M OK ' TO EDITION-ETAT-STATUT 06910001 069200 ADD 1 TO CTR-MAJ-OK 06920001 069300 END-IF 06930001 069400 . 06940001 069500 06950001 069600**** 06960001 069700** SUPPRESSION 06970001 069800**** 06980001 069900 240-SUPPRESSION. 06990001 070000 IF FS-CPT-NOTFND THEN 07000001 070100* VALEURS POUR LIGNE-TRANSACTION 07010001 070200 MOVE NUM-CPT-TRANS TO EDITION-ETAT-NUM-CPT 07020001 070300 MOVE 'S A TORT' TO EDITION-ETAT-STATUT 07030001 070400 ADD 1 TO CTR-SUPPRESSION-FAILED 07040001 070500 ELSE 07050001 070600 DELETE FIC-CPT RECORD 07060001 070700* VALEURS POUR LIGNE-TRANSACTION 07070001 070800 MOVE NUM-CPT-CPT TO EDITION-ETAT-NUM-CPT 07080001 070900 MOVE NOM-CLIENT-CPT TO EDITION-ETAT-NOM-CLIENT 07090001 071000 MOVE CORR DATE-CREATION-CPT TO EDITION-ETAT-DATE-CREATION 07100001 071100 MOVE SOLDE-CPT TO EDITION-ETAT-SOLDE 07110001 071200 MOVE CORR DATE-MAJ-CPT TO EDITION-ETAT-DATE-MAJ 07120001 071300 MOVE 'S OK ' TO EDITION-ETAT-STATUT 07130001 071400 ADD 1 TO CTR-SUPPRESSION-OK 07140001 071500 END-IF 07150001 071600 . 07160001 071700**** 07170001 071800** EDITION-TRANSACTION 07180001 071900**** 07190001 072000 400-EDITION-TRANSACTION. 07200001 072100* DISPLAY 'LIGNE-TRANSACTION : ' LIGNE-TRANSACTION 07210001 072200 WRITE ENREG-ETAT FROM LIGNE-TRANSACTION 07220001 072300 . 07230001 072400 07240001 072500**** 07250001 072600** EDITION-ENTETE 07260001 072700**** 07270001 072800* 420-EDITION-ENTETE. 07280001 072900* ADD 1 TO CTR-PAGE 07290001 073000* MOVE CTR-PAGE TO EDITION-PAGE 07300001 073100* WRITE ENREG-ETAT FROM LIGNE-ENTETE 07310001 073200* AFTER ADVANCING PAGE 07320001 073300* . 07330001 073400 07340001 073500**** 07350001 073600** LIRE-INFOS-SYSTEME 07360001 073700**** 07370001 073800 500-LIRE-INFOS-SYSTEME. 07380001 073900 ACCEPT DATE-SYSTEME FROM DATE 07390001 074000 MOVE CORR DATE-SYSTEME TO DATE-TRAITEMENT 07400001 074100 ACCEPT HEURE-SYSTEME FROM TIME 07410001 074200 MOVE CORR HEURE-SYSTEME TO HEURE-TRAITEMENT 07420001 074300 . 07430001 074400 07440001 074500**** 07450001 074600** LECTURE-FICHIER-TRANSACTIONS 07460001 074700**** 07470001 074800 520-LECTURE-FICHIER-TRANS. 07480001 074900 READ FIC-TRANS 07490001 075000 AT END MOVE 'O' TO EOF-TRANS 07500001 075100 NOT AT END ADD 1 TO CTR-LECTURE-TRANS 07510001 075200 END-READ 07520001 075300 . 07530001 075400 07540001 075500**** 07550001 075600** OPEN-FICHIER-COMPTES 07560001 075700**** 07570001 075800 600-OPEN-FICHIER-COMPTES. 07580001 075900 OPEN I-O FIC-CPT 07590001 076000 IF FS-CPT-NORMAL 07600001 076100 CONTINUE 07610001 076200 ELSE 07620001 076300 DISPLAY 'OPEN I-O FIC-CPT FAILED. FS = ' FS-CPT 07630001 076400 MOVE 8 TO RETURN-CODE 07640001 076500 PERFORM 030-ABANDON-PROGRAMME 07650001 076600 END-IF 07660001 076700 . 07670001 076800**** 07680001 076900** LIRE-FICHIER-COMPTE 07690001 077000**** 07700001 077100 620-LECTURE-FICHIER-COMPTES. 07710001 077200 READ FIC-CPT 07720001 077300 IF FS-CPT-NORMAL OR FS-CPT-NOTFND 07730001 077400 CONTINUE 07740001 077500 ELSE 07750001 077600 DISPLAY 'READ I-O FIC-CPT FAILED. FS = ' FS-CPT 07760001 077700 MOVE 8 TO RETURN-CODE 07770001 077800 PERFORM 030-ABANDON-PROGRAMME 07780001 077900 END-IF 07790001 078000 . 07800001 078100********************************************************* 07810001 078200 IDENTIFICATION DIVISION. 07820001 078300 PROGRAM-ID. COBTP215. 07830001 078400 07840001 078500 ENVIRONMENT DIVISION. 07850001 078600 CONFIGURATION SECTION. 07860001 078700 INPUT-OUTPUT SECTION. 07870001 078800 FILE-CONTROL. 07880001 078900 SELECT FIC-CPT ASSIGN TO CPT 07890001 079000 ORGANIZATION INDEXED 07900001 079100 ACCESS MODE DYNAMIC 07910001 079200 RECORD KEY CLE-CPT 07920001 079300 ALTERNATE RECORD KEY IS NOM-CLIENT-CPT WITH DUPLICATES 07930001 079400 FILE STATUS FS-CPT. 07940001 079500 SELECT FIC-ETAT ASSIGN TO ETAT. 07950001 079600 DATA DIVISION. 07960001 079700**** 07970001 079800** FILE SECTION 07980001 079900**** 07990001 080000 FILE SECTION. 08000001 080100 FD FIC-CPT. 08010001 080200 01 ENREG-CPT. 08020001 080300 05 CLE-CPT. 08030001 080400 10 NUM-CPT-CPT PIC 9(10). 08040001 080500 05 NOM-CLIENT-CPT PIC X(20). 08050001 080600 05 DATE-CREATION-CPT. 08060001 080700 10 AA PIC XX. 08070001 080800 10 MM PIC XX. 08080001 080900 10 JJ PIC XX. 08090001 081000 05 SOLDE-CPT PIC S9(07)V99 COMP-3. 08100001 081100 05 DATE-MAJ-CPT. 08110001 081200 10 AA PIC XX. 08120001 081300 10 MM PIC XX. 08130001 081400 10 JJ PIC XX. 08140001 081500 05 FILLER PIC X(3). 08150001 081600 FD FIC-ETAT. 08160001 081700 01 ENREG-ETAT PIC X(80). 08170001 081800**** 08180001 081900** WORKING-STORAGE SECTION 08190001 082000**** 08200001 082100 WORKING-STORAGE SECTION. 08210001 082200 01 INDICATEURS-DE-RUPTURE. 08220001 082300 05 EOF-CARTE PIC X VALUE 'N'. 08230001 082400 05 FIN-LISTE PIC X VALUE 'N'. 08240001 082500 01 COMPTEURS. 08250001 082600 05 CTR-DEMANDE PIC 999 COMP-3. 08260001 082700 05 CTR-DEMANDE-A PIC 999 COMP-3. 08270001 082800 05 CTR-DEMANDE-B PIC 999 COMP-3. 08280001 082900 01 CODE-RETOUR-FICHIER. 08290001 083000 05 FS-CPT PIC XX. 08300001 083100 88 FS-CPT-NORMAL VALUE '00'. 08310001 083200 88 FS-CPT-DUPKEY VALUE '02'. 08320001 083300 88 FS-CPT-ENDFILE VALUE '10'. 08330001 083400 88 FS-CPT-NOTFND VALUE '23'. 08340001 083500 88 FS-CPT-DUPREC VALUE '22'. 08350001 083600 01 CARTE. 08360001 083700 05 TYPE-DEMANDE PIC X(1). 08370001 083800 05 FILLER PIC X(79). 08380001 083900 01 DEMANDE-A. 08390001 084000 05 TYPE-DEMANDE-A PIC X(1). 08400001 084100 05 NOM-DEMANDE-A PIC X(20). 08410001 084200 05 DEBUT-DEMANDE-A PIC 9(10). 08420001 084300 05 FIN-DEMANDE-A PIC 9(10). 08430001 084400 05 FILLER PIC X(39). 08440001 084500 01 DEMANDE-B. 08450001 084600 05 TYPE-DEMANDE-B PIC X(1). 08460001 084700 05 NOM-DEMANDE-B PIC X(20). 08470001 084800 05 DEBUT-DEMANDE-B PIC X(20). 08480001 084900 05 FIN-DEMANDE-B PIC X(20). 08490001 085000 05 FILLER PIC X(19). 08500001 085100 01 DONNEES-TEMPORELLES. 08510001 085200 05 DATE-SYSTEME. 08520001 085300 10 AA PIC X(2). 08530001 085400 10 MM PIC X(2). 08540001 085500 10 JJ PIC X(2). 08550001 085600 05 DATE-TRAITEMENT. 08560001 085700 10 JJ PIC X(2)/. 08570001 085800 10 MM PIC X(2)/. 08580001 085900 10 AA PIC X(2). 08590001 086000 05 DATE-COMPILATION PIC X(16). 08600001 086100 05 HEURE-SYSTEME. 08610001 086200 10 HH PIC X(2). 08620001 086300 10 MN PIC X(2). 08630001 086400 10 SS PIC X(2). 08640001 086500 10 CC PIC X(2). 08650001 086600 05 HEURE-TRAITEMENT. 08660001 086700 10 HH PIC X(2). 08670001 086800 10 PIC X VALUE ':'. 08680001 086900 10 MN PIC X(2). 08690001 087000 10 PIC X VALUE ':'. 08700001 087100 10 SS PIC X(2). 08710001 087200 10 PIC X VALUE '.'. 08720001 087300 10 CC PIC X(2). 08730001 087400* FIC-ETAT 08740001 087500 01 LIGNE-PAGE. 08750001 087600 05 FILLER PIC X(11) VALUE 'EDITION DU '. 08760001 087700 05 EDITION-DATE-TRAITEMENT PIC XX/XX/XX. 08770001 087800 05 FILLER PIC X(51) VALUE SPACE. 08780001 087900 05 FILLER PIC X(7) VALUE 'PAGE : '. 08790001 088000 05 EDITION-NUM-PAGE PIC ZZ9. 08800001 088100 01 LIGNE-DEMANDEUR. 08810001 088200 05 FILLER PIC X(12) VALUE 'DEMANDEUR : '. 08820001 088300 05 EDITION-NOM-DEMANDEUR PIC X(20). 08830001 088400 05 FILLER PIC X(4) VALUE SPACE. 08840001 088500 05 FILLER PIC X(14) VALUE 'NUM DEMANDE : '. 08850001 088600 05 EDITION-NUM-DEMANDE PIC ZZ9. 08860001 088700 05 FILLER PIC X(27) VALUE SPACE. 08870001 088800 01 LIGNE-TYPE. 08880001 088900 05 FILLER PIC X(20) VALUE SPACE. 08890001 089000 05 FILLER PIC X(22) VALUE 'LISTE DES COMPTES PAR '. 08900001 089100 05 EDITION-TYPE PIC X(06). 08910001 089200 05 FILLER PIC X(32) VALUE SPACE. 08920001 089300 01 LIGNE-REF-DEBUT. 08930001 089400 05 EDITION-TYPE-REF-DEBUT PIC X(18) VALUE 'REFERENCE08940001 089500- 'DEBUT : '. 08950001 089600 05 EDITION-REF-DEBUT PIC X(20). 08960001 089700 05 FILLER PIC X(42) VALUE SPACE. 08970001 089800 01 LIGNE-REF-FIN. 08980001 089900 05 EDITION-TYPE-REF-FIN PIC X(18) VALUE 'REFERENCE08990001 090000- 'FIN : '. 09000001 090100 05 EDITION-REF-FIN PIC X(20). 09010001 090200 05 FILLER PIC X(42) VALUE SPACE. 09020001 090300 01 LIGNE-TITRES. 09030001 090400 05 FILLER PIC X(16) VALUE 'NUMERO COMPTE '. 09040001 090500 05 FILLER PIC X(16) VALUE ' CREATION '. 09050001 090600 05 FILLER PIC X(16) VALUE ' M-A-J '. 09060001 090700 05 FILLER PIC X(16) VALUE ' SOLDE '. 09070001 090800 05 FILLER PIC X(16) VALUE ' NOM CLIENT '. 09080001 090900 01 LIGNE-VIDE. 09090001 091000 05 FILLER PIC X(80) VALUE SPACE. 09100001 091100 01 LIGNE-COMPTE. 09110001 091200 05 FILLER PIC X(5) VALUE SPACE. 09120001 091300 05 EDITION-NUM-CPT PIC 9(10). 09130001 091400 05 FILLER PIC X(3) VALUE SPACE. 09140001 091500 05 EDITION-DATE-CREATION. 09150001 091600 10 JJ PIC XX/. 09160001 091700 10 MM PIC XX/. 09170001 091800 10 AA PIC XX. 09180001 091900 05 FILLER PIC X(2) VALUE SPACE. 09190001 092000 05 EDITION-DATE-MAJ. 09200001 092100 10 JJ PIC XX/. 09210001 092200 10 MM PIC XX/. 09220001 092300 10 AA PIC XX. 09230001 092400 05 FILLER PIC X(3) VALUE SPACE. 09240001 092500 05 EDITION-SOLDE PIC +ZBZZZBZZ9V,99. 09250001 092600 05 FILLER PIC X(2) VALUE SPACE. 09260001 092700 05 EDITION-NOM-CLIENT PIC X(20). 09270001 092800 05 FILLER PIC X(6) VALUE SPACE. 09280001 092900 PROCEDURE DIVISION. 09290001 093000 09300001 093100 09310001 093200**** 09320001 093300** PROGRAMME 09330001 093400**** 09340001 093500 000-PROGRAMME. 09350001 093600 PERFORM 010-INITIALISATION-PROGRAMME 09360001 093700 PERFORM 520-LECTURE-CARTE 09370001 093800 PERFORM 100-DEMANDE 09380001 093900 UNTIL EOF-CARTE = 'O' 09390001 094000 PERFORM 020-TERMINAISON-PROGRAMME 09400001 094100 STOP RUN 09410001 094200 . 09420001 094300 09430001 094400**** 09440001 094500** INITIALISATION-PROGRAMME 09450001 094600**** 09460001 094700 010-INITIALISATION-PROGRAMME. 09470001 094800* DATES DE DEBUT DE TRAITEMENT ET DE COMPILATION 09480001 094900 PERFORM 500-LIRE-INFOS-SYSTEME 09490001 095000 DISPLAY 'PGM COBTP214 DEBUT TRAITEMENT : ' DATE-TRAITEMENT 09500001 095100 ' A ' HEURE-TRAITEMENT 09510001 095200 MOVE WHEN-COMPILED TO DATE-COMPILATION 09520001 095300 DISPLAY 'PGM COBTP214 VERSION COMPILEE : ' DATE-COMPILATION 09530001 095400* OUVERTURE DES FICHIERS 09540001 095500 OPEN OUTPUT FIC-ETAT 09550001 095600 PERFORM 600-OPEN-FICHIER-COMPTES 09560001 095700* INITIALISATIONS DIVERSES 09570001 095800 MOVE 'N' TO EOF-CARTE 09580001 095900 MOVE 0 TO RETURN-CODE 09590001 096000 MOVE DATE-TRAITEMENT TO EDITION-DATE-TRAITEMENT 09600001 096100* INITIALISATIONS COMPTEURS 09610001 096200 INITIALIZE COMPTEURS 09620001 096300 . 09630001 096400 09640001 096500**** 09650001 096600** TERMINAISON-PROGRAMME 09660001 096700**** 09670001 096800 020-TERMINAISON-PROGRAMME. 09680001 096900* DATE DE FIN DU TRAITEMENT 09690001 097000 PERFORM 500-LIRE-INFOS-SYSTEME 09700001 097100 DISPLAY 'PGM COBTP215 FIN NORMALE … : ' DATE-TRAITEMENT 09710001 097200 ' A ' HEURE-TRAITEMENT 09720001 097300 DISPLAY 'PGM COBTP215 CODE RETOUR POSTE : ' RETURN-CODE 09730001 097400* LOGS DIVERS 09740001 097500 DISPLAY ' ' CTR-DEMANDE ' DEMANDES TRAITEES' 09750001 097600 DISPLAY ' ' CTR-DEMANDE-A ' DEMANDES A ' 09760001 097700 DISPLAY ' ' CTR-DEMANDE-B ' DEMANDES B ' 09770001 097800* FERMETURE DES FICHIERS 09780001 097900 CLOSE FIC-ETAT 09790001 098000 CLOSE FIC-CPT 09800001 098100 . 09810001 098200 09820001 098300**** 09830001 098400** ABANDON-PROGRAMME 09840001 098500**** 09850001 098600 030-ABANDON-PROGRAMME. 09860001 098700 PERFORM 500-LIRE-INFOS-SYSTEME 09870001 098800 DISPLAY 'PGM COBTP215 FIN ANORMALE : ' DATE-TRAITEMENT 09880001 098900 ' A ' HEURE-TRAITEMENT 09890001 099000 DISPLAY 'PGM COBTP215 CODE RETOUR POST‚ … ' RETURN-CODE 09900001 099100* LOGS DIVERS 09910001 099200 DISPLAY ' ' CTR-DEMANDE ' DEMANDES TRAITEES' 09920001 099300 DISPLAY ' ' CTR-DEMANDE-A ' DEMANDES A ' 09930001 099400 DISPLAY ' ' CTR-DEMANDE-B ' DEMANDES B ' 09940001 099500 STOP RUN 09950001 099600 . 09960001 099700 09970001 099800**** 09980001 099900** DEMANDE 09990001 100000**** 10000001 100100 100-DEMANDE. 10010001 100200 ADD 1 TO CTR-DEMANDE 10020001 100300 EVALUATE TRUE 10030001 100400 WHEN TYPE-DEMANDE = 'A' PERFORM 120-DEMANDE-A 10040001 100500 WHEN TYPE-DEMANDE = 'B' PERFORM 140-DEMANDE-B 10050001 100600 WHEN OTHER CONTINUE 10060001 100700 END-EVALUATE 10070001 100800 PERFORM 520-LECTURE-CARTE 10080001 100900 . 10090001 101000 10100001 101100**** 10110001 101200** DEMANDE-A 10120001 101300**** 10130001 101400 120-DEMANDE-A. 10140001 101500 MOVE CARTE TO DEMANDE-A 10150001 101600 MOVE 'N' TO FIN-LISTE 10160001 101700 ADD 1 TO CTR-DEMANDE-A 10170001 101800* POUR EDITION 10180001 101900 MOVE NOM-DEMANDE-A TO EDITION-NOM-DEMANDEUR 10190001 102000 MOVE 'NUMERO' TO EDITION-TYPE 10200001 102100 MOVE DEBUT-DEMANDE-A TO EDITION-REF-DEBUT 10210001 102200 MOVE FIN-DEMANDE-A TO EDITION-REF-FIN 10220001 102300 10230001 102400 PERFORM 420-EDITION-DEMANDE 10240001 102500 MOVE DEBUT-DEMANDE-A TO NUM-CPT-CPT 10250001 102600 START FIC-CPT KEY IS >= CLE-CPT 10260001 102700 END-START 10270001 102800 PERFORM 640-TEST-START-KEY 10280001 102900 PERFORM 660-READ-NEXT 10290001 103000 PERFORM 200-COMPTE 10300001 103100 UNTIL FIN-LISTE = 'O' OR FIN-DEMANDE-A < NUM-CPT-CPT 10310001 103200 . 10320001 103300 10330001 103400**** 10340001 103500** DEMANDE-B 10350001 103600**** 10360001 103700 140-DEMANDE-B. 10370001 103800 MOVE CARTE TO DEMANDE-B 10380001 103900 MOVE 'N' TO FIN-LISTE 10390001 104000 ADD 1 TO CTR-DEMANDE-B 10400001 104100* POUR EDITION 10410001 104200 MOVE NOM-DEMANDE-B TO EDITION-NOM-DEMANDEUR 10420001 104300 MOVE 'NOM ' TO EDITION-TYPE 10430001 104400 MOVE DEBUT-DEMANDE-B TO EDITION-REF-DEBUT 10440001 104500 MOVE FIN-DEMANDE-B TO EDITION-REF-FIN 10450001 104600 10460001 104700 PERFORM 420-EDITION-DEMANDE 10470001 104800 MOVE DEBUT-DEMANDE-B TO NOM-CLIENT-CPT 10480001 104900 START FIC-CPT KEY IS >= NOM-CLIENT-CPT 10490001 105000 END-START 10500001 105100 PERFORM 640-TEST-START-KEY 10510001 105200 PERFORM 660-READ-NEXT 10520001 105300 PERFORM 200-COMPTE 10530001 105400 UNTIL FIN-LISTE = 'O' OR FIN-DEMANDE-B < NOM-CLIENT-CPT 10540001 105500 . 10550001 105600 10560001 105700**** 10570001 105800** COMPTE 10580001 105900**** 10590001 106000 200-COMPTE. 10600001 106100 PERFORM 400-EDITION-COMPTE 10610001 106200 PERFORM 660-READ-NEXT 10620001 106300 . 10630001 106400 10640001 106500**** 10650001 106600** EDITION-COMPTE 10660001 106700**** 10670001 106800 400-EDITION-COMPTE. 10680001 106900 MOVE NUM-CPT-CPT TO EDITION-NUM-CPT 10690001 107000 MOVE CORR DATE-CREATION-CPT TO EDITION-DATE-CREATION 10700001 107100 MOVE CORR DATE-MAJ-CPT TO EDITION-DATE-MAJ 10710001 107200 MOVE SOLDE-CPT TO EDITION-SOLDE 10720001 107300 MOVE NOM-CLIENT-CPT TO EDITION-NOM-CLIENT 10730001 107400 WRITE ENREG-ETAT FROM LIGNE-COMPTE 10740001 107500 . 10750001 107600 10760001 107700**** 10770001 107800** EDITION-DEMANDE 10780001 107900**** 10790001 108000 420-EDITION-DEMANDE. 10800001 108100 10810001 108200* LIGNE PAGE 10820001 108300 MOVE 0 TO EDITION-NUM-PAGE 10830001 108400 WRITE ENREG-ETAT FROM LIGNE-PAGE 10840001 108500 AFTER ADVANCING PAGE 10850001 108600* LIGNE DEMANDEUR 10860001 108700 MOVE CTR-DEMANDE TO EDITION-NUM-DEMANDE 10870001 108800 WRITE ENREG-ETAT FROM LIGNE-DEMANDEUR 10880001 108900 AFTER ADVANCING 2 LINES 10890001 109000* LIGNE TYPE 10900001 109100 WRITE ENREG-ETAT FROM LIGNE-TYPE 10910001 109200 AFTER ADVANCING 2 LINES 10920001 109300* LIGNE REFERENCE DEBUT 10930001 109400 WRITE ENREG-ETAT FROM LIGNE-REF-DEBUT 10940001 109500 AFTER ADVANCING 2 LINES 10950001 109600* LIGNE REFERENCE FIN 10960001 109700 WRITE ENREG-ETAT FROM LIGNE-REF-FIN 10970001 109800* LIGNE REFERENCE TITRES 10980001 109900 WRITE ENREG-ETAT FROM LIGNE-TITRES 10990001 110000 AFTER ADVANCING 2 LINES 11000001 110100 WRITE ENREG-ETAT FROM LIGNE-VIDE 11010001 110200 AFTER ADVANCING 2 LINES 11020001 110300 . 11030001 110400 11040001 110500**** 11050001 110600** LIRE-INFOS-SYSTEME 11060001 110700**** 11070001 110800 500-LIRE-INFOS-SYSTEME. 11080001 110900 ACCEPT DATE-SYSTEME FROM DATE 11090001 111000 MOVE CORR DATE-SYSTEME TO DATE-TRAITEMENT 11100001 111100 ACCEPT HEURE-SYSTEME FROM TIME 11110001 111200 MOVE CORR HEURE-SYSTEME TO HEURE-TRAITEMENT 11120001 111300 . 11130001 111400 11140001 111500**** 11150001 111600** LECTURE-CARTE : LIT SUR SYSIN 11160001 111700**** 11170001 111800 520-LECTURE-CARTE. 11180001 111900 MOVE HIGH-VALUE TO CARTE 11190001 112000 ACCEPT CARTE FROM SYSIN 11200001 112100 IF CARTE = HIGH-VALUE THEN 11210001 112200 MOVE 'O' TO EOF-CARTE 11220001 112300 ELSE 11230001 112400 CONTINUE 11240001 112500 END-IF 11250001 112600 . 11260001 112700 11270001 112800**** 11280001 112900** OPEN-FICHIER-COMPTES 11290001 113000**** 11300001 113100 600-OPEN-FICHIER-COMPTES. 11310001 113200 OPEN INPUT FIC-CPT 11320001 113300 IF FS-CPT-NORMAL 11330001 113400 CONTINUE 11340001 113500 ELSE 11350001 113600 DISPLAY 'OPEN INPUT FIC-CPT FAILED. FS = ' FS-CPT 11360001 113700 MOVE 8 TO RETURN-CODE 11370001 113800 PERFORM 030-ABANDON-PROGRAMME 11380001 113900 END-IF 11390001 114000 . 11400001 114100**** 11410001 114200** LIRE-FICHIER-COMPTE 11420001 114300**** 11430001 114400 620-LECTURE-FICHIER-COMPTES. 11440001 114500 READ FIC-CPT 11450001 114600 IF FS-CPT-NORMAL OR FS-CPT-NOTFND 11460001 114700 CONTINUE 11470001 114800 ELSE 11480001 114900 DISPLAY 'READ INPUT FIC-CPT FAILED. FS = ' FS-CPT 11490001 115000 MOVE 8 TO RETURN-CODE 11500001 115100 PERFORM 030-ABANDON-PROGRAMME 11510001 115200 END-IF 11520001 115300 . 11530001 115400 11540001 115500**** 11550001 115600** TEST-START-KEY 11560001 115700**** 11570001 115800 640-TEST-START-KEY. 11580001 115900 IF FS-CPT-NORMAL OR FS-CPT-NOTFND 11590001 116000 CONTINUE 11600001 116100 ELSE 11610001 116200 DISPLAY 'START-KEY FIC-CPT FAILED. FS = ' FS-CPT 11620001 116300 MOVE 8 TO RETURN-CODE 11630001 116400 PERFORM 030-ABANDON-PROGRAMME 11640001 116500 END-IF 11650001 116600 . 11660001 116700 11670001 116800**** 11680001 116900** READ-NEXT 11690001 117000**** 11700001 117100 660-READ-NEXT. 11710001 117200 READ FIC-CPT NEXT RECORD 11720001 117300 IF FS-CPT-NORMAL OR FS-CPT-DUPKEY 11730001 117400 CONTINUE 11740001 117500 ELSE 11750001 117600 MOVE 'O' TO FIN-LISTE 11760001 117700 END-IF 11770001 117800 . 11780001