- Dettagli
- Visite: 984
*$ COMMIT *CHG
IDENTIFICATION DIVISION.
PROGRAM-ID. PRTAQ14.
*--------------------------------------------------------------*
* PROGETTO RETTIFICHE *
* ------------------- *
* AUTORE : FRANCO D'AMICO C.O.DI MARSALA *
* *
* FUNZIONE : RICHIESTA CANCELLAZIONE SC3 *
* *
* PGM CHIAMANTI : PRTMN01 *
* PGM CHIAMATI : *
* MAPPE : MRTAQ011 *
* AREA DI INPUT : CRTMN01 - *
*--------------------------------------------------------------*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT VIDEO ASSIGN TO WORKSTATION-MRTAQ01
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 MRTAQ01.
**************************************
WORKING-STORAGE SECTION.
**************************************
EXEC SQL
INCLUDE SQLCA
END-EXEC.
01 F-STATUS PIC XX.
01 IND-ON PIC 1 VALUE B"1".
01 IND-OFF PIC 1 VALUE B"0".
01 DTSC3 PIC S9(8).
01 DATASC3 PIC S9(8).
01 WSC3PR PIC S9(2).
01 WCONTO PIC S9(1).
01 SQLERR PIC S9(5).
01 AREA-INDIC.
COPY DDS-ALL-FORMATS-INDIC OF MRTAQ01.
****************************************************************
* AREA DI COLLOQUIO COL PGM CHIAMANTE *
****************************************************************
LINKAGE SECTION.
COPY CRTMN01 OF DCBCPY.
*****************************************************************
* P R O C E D U R E D I V I S I O N *
*****************************************************************
PROCEDURE DIVISION USING AREA-MN01.
MAIN.
PERFORM APRI THRU EX-APRI.
MOVE 0 TO DTSC3 DATASC3.
MOVE IND-OFF TO IN12 OF MA09-I-INDIC.
IF F-STATUS = "00"
PERFORM SEQUENZA THRU EX-SEQUENZA
UNTIL IN12 OF MA09-I-INDIC = IND-ON
END-IF.
FINE.
MOVE SPACES TO CM1-MSG.
CLOSE VIDEO.
GOBACK.
APRI.
OPEN I-O VIDEO.
IF F-STATUS NOT EQUAL "00"
MOVE F-STATUS TO CM1-FSTATUS
MOVE "MRTAQ01" TO CM1-ERRFILE
MOVE "PRTAQ14" TO CM1-ERRPGM
MOVE 1 TO CM1-RETCOD
CALL "PRTUT02" USING AREA-MN01
END-IF.
EX-APRI.
EXIT.
SEQUENZA.
CLOSE VIDEO.
OPEN I-O VIDEO.
MOVE CM1-MSG TO M9MSG OF MA09-O.
WRITE REC-VIDEO FORMAT "MA09".
READ VIDEO FORMAT "MA09"
INDICATORS ARE AREA-INDIC.
IF IN12 OF MA09-I-INDIC = IND-ON
GO TO EX-SEQUENZA
END-IF.
IF MSC3 OF MA09-I IS NOT NUMERIC
OR MSC3 OF MA09-I IS = 0
MOVE "DATI INCOMPLETI" TO CM1-MSG
GO TO EX-SEQUENZA
ELSE
MOVE MSC3 OF MA09-I TO CM1-SC3
END-IF.
IF MSC3PR OF MA09-I IS NOT NUMERIC
OR MSC3PR OF MA09-I IS = 0
MOVE "DATI INCOMPLETI" TO CM1-MSG
MOVE 0 TO CM1-SC3PR
GO TO EX-SEQUENZA
ELSE
MOVE MSC3PR OF MA09-I TO CM1-SC3PR
END-IF.
MOVE SPACES TO CM1-MSG.
MOVE CM1-SC3 TO DATASC3.
MOVE CM1-SC3PR TO WSC3PR.
* CERCO IN ARTDEU SE ESISTE L'SC3 DIGITATO
EXEC SQL
SELECT RDEUDTSC3 INTO :DTSC3
FROM ARTDEU
WHERE RDEUDTSC3 = :DATASC3
AND RDEUPRSC3 = :WSC3PR
AND RDEUTIREC = 1
AND RDEUFLUTIL = 3
END-EXEC.
* SE NON ESISTE IL N° SC3 HO 0 IN DTSC3
IF DTSC3 = 0
MOVE "SC3 NON PRESENTE O NON MODIFICABILE" TO CM1-MSG
GO TO EX-SEQUENZA
END-IF.
WRITE REC-VIDEO FORMAT "MOK".
READ VIDEO FORMAT "MOK"
INDICATORS ARE AREA-INDIC.
IF IN12 OF MOK-I-INDIC = IND-ON
MOVE IND-OFF TO IN12 OF MOK-I-INDIC
MOVE IND-OFF TO IN12 OF MA09-I-INDIC
GO TO EX-SEQUENZA
END-IF.
IF IN11 OF MOK-I-INDIC = IND-ON
EXEC SQL
DELETE FROM ARTDEU
WHERE RDEUDTSC3 = :DATASC3 AND
RDEUPRSC3 = :WSC3PR
END-EXEC
IF SQLCODE NOT = 0 AND SQLCODE NOT = 100
EXEC SQL ROLLBACK END-EXEC
MOVE SQLCODE TO SQLERR
STRING "ERR.SQL(" SQLERR ")-P.2 PGM PRTAQ14"
DELIMITED BY SIZE INTO CM1-MSG
CALL "PRTUT02" USING AREA-MN01
END-IF
EXEC SQL COMMIT END-EXEC
END-IF.
MOVE "SC3 CANCELLATO REGOLARMENTE" TO CM1-MSG.
EX-SEQUENZA.
EXIT.