- Dettagli
- Visite: 1023
IDENTIFICATION DIVISION.
PROGRAM-ID. PRTAN081.
*--------------------------------------------------------------*
* PROGETTO RETTIFICHE *
* ------------------- *
* AUTORE : FRANCO D'AMICO C.O.DI MARSALA *
* *
* FUNZIONE : SCELTA MATRICOLA E PERIODO *
* PGM CHIAMANTI : PRTAN01 *
* PGM CHIAMATI : PRTUT02-PRTUT03-PRTAN09 *
* MAPPE : MRTAN081 *
* AREA DI INPUT : CRTMN01 - *
*--------------------------------------------------------------*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT VIDEO ASSIGN TO WORKSTATION-MRTAN08
ORGANIZATION IS TRANSACTION
ACCESS IS SEQUENTIAL
FILE STATUS IS F-STATUS.
DATA DIVISION.
FILE SECTION.
FD VIDEO
LABEL RECORD IS omitted.
01 REC-VIDEO.
COPY DDS-ALL-FORMAT OF MRTAN08.
*****************************************************************
WORKING-STORAGE SECTION.
*****************************************************************
77 F-STATUS PIC XX.
01 IND-ON PIC 1 VALUE B"1".
01 IND-OFF PIC 1 VALUE B"0".
01 AREA-VIDEO.
03 WMATR PIC 9(10).
03 WMESE PIC 99.
03 WANNO PIC 9(4).
03 WMSG PIC X(76).
01 AREA-INDIC.
COPY DDS-ALL-FORMATS-INDIC OF MRTAN08.
01 WMPERI.
03 WMANNO PIC 9(4).
03 WMMESE PIC 99.
LINKAGE SECTION.
COPY CRTMN01 OF DCBCPY.
*****************************************************************
PROCEDURE DIVISION USING AREA-MN01.
MAIN.
MOVE 0 TO CM1-MATRICOLA CM1-D10PER CM1-PROPER WMPERI.
MOVE SPACES TO CM1-MSG.
MOVE LOW-VALUE TO AREA-VIDEO.
OPEN I-O VIDEO.
IF F-STATUS NOT EQUAL "00"
MOVE F-STATUS TO CM1-FSTATUS
MOVE "MRTAN08" TO CM1-ERRFILE
MOVE "PRTAN08" TO CM1-ERRPGM
MOVE 1 TO CM1-RETCOD
CALL "PRTUT02" USING AREA-MN01
END-IF.
WRITE REC-VIDEO FORMAT "NERO".
MOVE IND-OFF TO IN12 OF MV011-I-INDIC.
PERFORM SEQUENZA THRU EX-SEQUENZA
UNTIL IN12 OF MV011-I-INDIC = IND-ON.
FINE.
CLOSE VIDEO.
GOBACK.
SEQUENZA.
MOVE WMSG TO CM1-MSG.
CALL "PRTUT03" USING AREA-MN01.
MOVE CM1-MSG TO WMSG.
MOVE AREA-VIDEO TO REC-VIDEO.
WRITE REC-VIDEO FORMAT "MV011".
READ VIDEO FORMAT "MV011"
INDICATORS ARE AREA-INDIC.
IF IN12 OF MV011-I-INDIC = IND-ON
MOVE SPACES TO CM1-MSG
GO TO EX-SEQUENZA
END-IF.
IF MV01MATR OF MV011-I IS NOT NUMERIC
OR MV01MATR OF MV011-I IS = 0
MOVE "DIGITA LA MATRICOLA " TO MV01MSG WMSG
GO TO EX-SEQUENZA
END-IF.
IF MV01MATR OF MV011-I IS > 0
MOVE MV01MATR OF MV011-I TO CM1-MATRICOLA WMATR
END-IF.
IF MV01ANNO OF MV011-I IS NUMERIC AND MV01ANNO OF MV011-I
IS > 0
AND (MV01MESE OF MV011-I IS NOT NUMERIC OR MV01MESE
OF MV011-I IS < 1 OR MV01MESE OF MV011-I IS > 12)
MOVE "MESE DEL PERIODO NON VALIDO!" TO MV01MSG WMSG
CALL "PRTUT03" USING AREA-MN01
GO TO EX-SEQUENZA
END-IF.
IF MV01MESE OF MV011-I IS NUMERIC
AND MV01ANNO OF MV011-I IS NUMERIC
IF MV01MESE OF MV011-I IS > 0
AND MV01ANNO OF MV011-I IS > 0
MOVE MV01MESE OF MV011-I TO WMMESE WMESE
MOVE MV01ANNO OF MV011-I TO WMANNO WANNO
ELSE
MOVE 0 TO WMMESE WMANNO WANNO
END-IF
ELSE
MOVE 0 TO WMMESE WMANNO WANNO
END-IF.
MOVE WMPERI TO CM1-D10PER.
MOVE 0 TO CM1-PROPER.
MOVE SPACES TO CM1-MSG MV01MSG.
MOVE 0 TO CM1-OK.
INSPECT CM1-GUIDA TALLYING CM1-OK FOR ALL CM1-END.
IF CM1-OK > 0
CALL "PRTAN09" USING AREA-MN01
ELSE
MOVE "MATRICOLA INCOMPATIBILE CON GRUPPO" TO MV01MSG WMSG
GO TO EX-SEQUENZA
END-IF.
MOVE CM1-MSG TO WMSG.
EX-SEQUENZA. EXIT.
