Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *---------------------------------------------------------------*
- *STAVE01B DATO UN FILE DI INPUT CON TRACCIATO
- * 01 REC-RICHIESTE.
- * 03 FISCALE-RICH PIC X(16).
- * 03 COD-CONS-RICH PIC 9(60).
- * ACCEDERE ALLA VC0VISUREBENI E PER OGNI BENE TROVATO
- * ACCEDERE ALLA VC0IMMOBILI CON FISCALE, CONSERVATORIA E
- * COD-BENE-BENI E SCRIVERE UN FILE DI OUTPUT COME DA STAIMM01C;
- * UTILIZZARE UNA ROUTINE PER OTTENERE DES-CONS-IMM ACCEDENDO A
- * VC0CONSERVATORIE; DATA OPERAZIONE E MATRICOLA SI OTTENGONO DA
- * SKEDA-PARAMETRO.
- * --------------------------------------------------------------*
- IDENTIFICATION DIVISION.
- PROGRAM-ID. STAVE01B.
- AUTHOR. MAZZAROLO MATTEO.
- DATE-WRITTEN. 2011-01-10.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT FILERICH ASSIGN TO FILERICH.
- SELECT FILEIMM ASSIGN TO FILEIMM.
- DATA DIVISION.
- FILE SECTION.
- FD FILERICH LABEL RECORD IS STANDARD.
- 01 REC-FILERICH PIC X(200).
- FD FILEIMM LABEL RECORD IS STANDARD.
- 01 REC-FILEIMM PIC X(200).
- WORKING-STORAGE SECTION.
- * INFO PROGRAMMA
- 01 NOME-PGM PIC X(08) VALUE 'STAVE01B'.
- * DATI SKEDA-PARAMETRO
- 01 SKEDA-PARAMETRO.
- 03 SK-DATA-OPE PIC X(08).
- 03 FILLER PIC X(01).
- 03 SK-MATR-OPE PIC X(08).
- * RECORD FILERICH
- 01 W-REC-RICHIESTE.
- 03 FISCALE-RICH PIC X(16).
- 03 COD-CONS-RICH PIC 9(05).
- * DATA-COMODO
- 01 DATA-COMODO PIC X(08).
- 01 FILLER REDEFINES DATA-COMODO.
- 03 DATA-COMODO-GIORNO PIC X(02).
- 03 DATA-COMODO-MESE PIC X(02).
- 03 DATA-COMODO-ANNO PIC X(04).
- * DATA-DB2
- 01 DATA-DB2 PIC X(10).
- 01 FILLER REDEFINES DATA-DB2.
- 03 DATA-DB2-GIORNO PIC X(04).
- 03 DATA-DB2-TRAT1 PIC X(01).
- 03 DATA-DB2-MESE PIC X(02).
- 03 DATA-DB2-TRAT2 PIC X(01).
- 03 DATA-DB2-GIORNO PIC X(02).
- * EOF
- 01 EOF-FILERICH PIC 9(01).
- * ALTRE VARIABILI
- 01 SQLCODE-VC0IMMOBILI PIC 9(06).
- 01 SQLCODE-VC0VISUREANAG PIC 9(06).
- 01 SW-NESSUN-ERRORE PIC 9(06) VALUE ZERO.
- 01 CONT-RIGHE-FILERICH PIC 9(06) VALUE ZERO.
- 01 CONT-RIGHE-FILEIMM PIC 9(06) VALUE ZERO.
- 01 CONT-BENI-TOT PIC 9(06) VALUE ZERO.
- * COMODI
- 01 COMODI.
- 02 Z-SQL PIC -(4) VALUE ZERO.
- * PER ABEND
- 01 DAMP PIC X VALUE SPACE.
- 01 DUMP REDIFINES DAMP PIC S9.
- * INCLUDE TABELLE DB2
- EXEC SQL INCLUDE SQLCA END-EXEC.
- EXEC SQL INCLUDE VC00TA16 END-EXEC.
- EXEC SQL INCLUDE VC00TA17 END-EXEC.
- EXEC SQL INCLUDE VC00TA60 END-EXEC.
- * CURS-VC0VISUREBENI
- EXEC SQL DECLARE CURS-VC0VISUREBENI CURSOR FOR
- SELECT *
- FROM VC00TA17
- WHERE FISCALE_BENI = :FISCALE-BENI
- AND COD_CONSERV_BENI = :COD-CONSERV-BENI
- AND TIPO_REC_BENI = :TIPO-REC-BENI
- FOR FETCH ONLY
- END-EXEC.
- * TRACCIATO FILEIMM
- COPY STAIMM1C.
- * ROUTINES
- 01 STAVE01R PIC X(08) VALUE 'STAVE01R'.
- COPY STAVE01C.
- PROCEDURE DIVISION.
- *------
- MAIN.
- *------
- PERFORM INIZIALIZZA
- PERFORM LEGGI-FILERICH
- PERFORM CONTROLLA-FILERICH UNTIL EOF-FILERICH = 1
- PERFORM REPORT-FINE-PGM
- PERFORM FINE-PGM
- .
- *-------------
- INIZIALIZZA.
- *-------------
- DISPLAY 'INIZIO PGM ' NOME-PGM
- OPEN INPUT FILERICH
- OUTPUT FILEIMM
- ACCEPT SKEDA-PARAMETRO
- MOVE SK-DATA-OPE TO DATA-COMODO
- MOVE DATA-COMODO-ANNO TO DATA-DB2-ANNO
- MOVE DATA-COMODO-MESE TO DATA-DB2-MESE
- MOVE DATA-COMODO-GIORNO TO DATA-DB2-GIORNO
- MOVE '-' TO DATA-DB2-TRAT1
- MOVE '-' TO DATA-DB2-TRAT2
- .
- *--------------------
- CONTROLLA-FILERICH.
- *--------------------
- PERFORM OPEN-CURS-VC0VISUREBENI
- PERFORM FETCH-CURS-VC0VISUREBENI
- PERFORM OTTIENI-DATI
- UNTIL SQLCODE = 100
- PERFORM CLOSE-CURS-VC0VISUREBENI
- PERFORM LEGGI-FILERICH
- .
- *--------------
- OTTIENI-DATI.
- *--------------
- PERFORM SELECT-VC0IMMOBILI
- MOVE SQLCODE TO SQLCODE-VC0IMMOBILI
- PERFORM SELECT-VC0VISUREANAG
- MOVE SQLCODE TO SQLCODE-VC0VISUREANAG
- MOVE AREA-DATI-BENI TO VC00VIDF
- PERFORM CHIAMA-STAVE01E
- PERFORM CONTROLLA-ERRORI
- IF SW-NESSUN-ERRORE = 1
- PERFORM VALORIZZA-REC-IMMOB
- PERFORM SCRIVI-FILEIMM
- INITIALIZE SW-NESSUN-ERRORE
- END-IF
- ADD 1 TO CONT-BENI-TOT
- PERFORM FETCH-CURS-VC0VISUREBENI
- .
- *-----------------
- CHIAMA-STAVE01R.
- *-----------------
- INITIALIZE AREA-STAVE01R
- MOVE 'CON' TO AZIONE-INPUT-STAVE01R
- MOVE COD-CONS-RICH TO COD-CONS-INPUT-STAVE01R
- CALL STAVE01R USING STAVE01C
- .
- *------------------
- CONTROLLA-ERRORI.
- *------------------
- EVALUATE TRUE
- WHEN RETURNCODE-RC-STAVE01R = 4
- DISPLAY MESSAGE-RC-STAVE01R
- DISPLAY 'ERRORE IN ' FISCALE-RICH' E ' COD-CONS-RICH
- WHEN RETURNCODE-RC-STAVE01R = 8
- WHEN RETURNCODE-RC-STAVE01R = 12
- DISPLAY MESSAGE-RC-STAVE01R
- ADD 1 TO DUMP
- WHEN SQLCODE-VC0IMMOBILI = 100
- DISPLAY 'SELECT VUOTO IN VC0IMMOBILI PER 'FISCALE-RICH' E 'COD-CONS-RICH
- WHEN SQLCODE-VC0VISUREANAG = 100
- DISPLAY 'SELECT VUOTO IN VC0VISUREANAG PER 'FISCALE-RICH' E 'COD-CONS-RICH
- WHEN OTHER
- MOVE 1 TO SW-NESSUN-ERRORE
- ADD 1 TO CONT-BENI-NESSUN-ERRORE
- END-EVALUATE
- .
- *--------------------
- SELECT-VC0IMMOBILI.
- *--------------------
- INITIALIZE VC00TAB60
- MOVE FISCALE-BENI TO COD-FISC-IMM
- MOVE COD-CONSERV-BENI TO COD-CONS-IMM OF VC0IMMOBILI
- MOVE COD-BENE-BENI TO FORN-COD-BENE-IMM
- EXEC SQL
- SELECT *
- INTO :VC00TA60
- FROM VC0IMMOBILI
- WHERE COD_FISC_IMM = :COD-FISC-IMM
- AND COD_CONS_IMM = :COD-CONS-IMM OF VC0IMMOBILI
- AND FORN_COD_BENE_IMM = :FORN-COD-BENE-IMM
- END-EXEC
- IF SQLCODE NOT = ZERO
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN SELECT IN VC0IMMOBILI'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'COD_FISC_IMM:' COD-FISC-IMM
- DISPLAY 'COD_CONS_IMM: ' COD-CONS-IMM OF VC0IMMOBILI
- DISPLAY 'FORN_COD_BENE_IMM: ' FORN-COD-BENE-IMM
- ADD 1 TO DUMP
- END-IF
- .
- *----------------------
- SELECT-VC0VISUREANAG.
- *----------------------
- INITIALIZE VC00TAB16
- MOVE FISCALE-BENI TO FISCALE-ANAG
- MOVE COD-CONSERV-BENI TO COD-CONSERV-ANAG
- EXEC SQL
- SELECT *
- INTO :VC00TA16
- FROM VC0VISUREANAG
- WHERE FISCALE_ANAG = :FISCALE-ANAG
- AND COD_CONSERV_ANAG = :COD-CONSERV-ANAG
- END-EXEC
- IF SQLCODE NOT = ZERO
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN SELECT IN VC0IMMOBILI'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'FISCALE_ANAG: ' FISCALE-ANAG
- DISPLAY 'COD_CONSERV_ANAG: ' COD-CONSERV-ANAG
- ADD 1 TO DUMP
- END-IF
- .
- *---------------------
- VALORIZZA-REC-IMMOB.
- *---------------------
- MOVE FISCALE-RICH TO FISCALE-IMM
- MOVE NOME-ANAG OF VC0VISUREANAG TO NOME-ANAG OF REC-IMMOB
- MOVE COD-CONS-RICH TO COD-CONS-IMM
- MOVE DES-CONS-OUTPUT-STAVE01R TO DES-CONS-IMM
- MOVE SEZIONE-IMM OF VC0IMMOBILI TO SEZIONE-IMM OF REC-IMMOB
- MOVE FOGLIO-IMM OF VC0IMMOBILI TO FOGLIO-IMM OF REC-IMMOB
- MOVE MAPPALE-IMM OF VC0IMMOBILI TO MAPPALE-IMM OF REC-IMMOB
- MOVE COMUNE-IMM OF VC0IMMOBILI TO COMUNE-IMM OF REC-IMMOB
- MOVE PROVINCIA-IMM TO PROV-IMM
- MOVE DATA-DB2 TO DATA-OPE
- MOVE SK-MATR-OPE TO MATR-OPE
- MOVE VD02-TIPO-DEL-BENE TO TIPO-BENE
- MOVE VD02-VAL-RENDITA-CAT TO VAL-RENDITA-CAT
- .
- *-------------------------
- OPEN-CURS-VC0VISUREBENI.
- *-------------------------
- INITIALIZE VC00TAB17
- MOVE FISCALE-RICH TO FISCALE-BENI
- MOVE COD-CONS-RICH TO COD-CONSERV-BENI
- MOVE 2 TO TIPO-REC-BENI
- EXEC SQL
- OPEN CURS-VC0VISUREBENI
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN APERTURA DI CURS-VC0VISUREBENI'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'FISCALE_BENI: ' FISCALE-BENI
- DISPLAY 'COD_CONSERV_RICH: ' COD-CONSERV-RICH
- DISPLAY 'TIPO_REC_BENI: ' TIPO-REC-BENI
- ADD 1 TO DUMP
- END-IF
- .
- *--------------------------
- FETCH-CURS-VC0VISUREBENI.
- *--------------------------
- EXEC SQL
- FETCH CURS-VC0VISUREBENI
- INTO :VC00TAB17
- END-EXEC
- IF SQLCODE NOT = 0 AND NOT = 100
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN FETCH DI CURS-VC0VISUREBENI'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'FISCALE_BENI: ' FISCALE-BENI
- DISPLAY 'COD_CONSERV_RICH: ' COD-CONSERV-RICH
- DISPLAY 'TIPO_REC_BENI: ' TIPO-REC-BENI
- ADD 1 TO DUMP
- END-IF
- .
- *--------------------------
- CLOSE-CURS-VC0VISUREBENI.
- *--------------------------
- EXEC SQL
- CLOSE CURS-FISCALE-VC0VISUREBENI
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN CHIUSURA DI CURS-VC0VISUREBENI'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'FISCALE_BENI: ' FISCALE-BENI
- DISPLAY 'COD_CONSERV_RICH: ' COD-CONSERV-RICH
- DISPLAY 'TIPO_REC_BENI: ' TIPO-REC-BENI
- ADD 1 TO DUMP
- END-IF
- .
- *----------------
- LEGGI-FILERICH.
- *----------------
- READ FILERICH INTO W-REC-RICHIESTE
- AT END MOVE 1 TO EOF-FILERICH
- NOT AT END
- ADD 1 TO CONT-RIGHE-FILERICH
- .
- *----------------
- SCRIVI-FILEIMM.
- *----------------
- WRITE REC-IMMOB FROM REC-FILEIMM
- ADD 1 TO CONT-RIGHE-FILEIMM
- .
- *-----------------
- REPORT-FINE-PGM.
- *-----------------
- DISPLAY '*---------------- REPORT FINE-PGM ---------------------*'
- DISPLAY 'LETTE 'CONT-RIGHE-FILERICH' RIGHE DA FILERICH;'
- DISPLAY 'SCRITTE 'CONT-RIGHE-FILEIMM' RIGHE IN FILEIMM;'
- DISPLAY 'TROVATI 'CONT-BENI-TOT' BENI IN TOTALE;'
- DISPLAY 'ELABORATI 'CONT-BENI-NESSUN-ERRORE' BENI SENZA-ERRORI;'
- DISPLAY '*------------------------------------------------------*'
- .
- *----------
- FINE-PGM.
- *----------
- CLOSE FILERICH
- FILEIMM
- DISPLAY 'FINE PGM' NOME-PGM
- GOBACK
- .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement