Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- *
- PROGRAM-ID. STAVE01B.
- AUTHOR. FEDERICO PECIN.
- DATE-WRITTEN. 2011-01-10.
- *
- ENVIRONMENT DIVISION.
- *
- FILE-CONTROL.
- *
- SELECT FILERICH ASSIGN TO FILERICH.
- SELECT FILEREPO ASSIGN TO FILEREPO.
- *
- DATA DIVISION.
- *
- FILE SECTION.
- *
- FD FILERICH
- LABEL RECORD IS STANDARD.
- 01 REC-FILERICH PIC X(100).
- FD FILEREPO
- LABEL RECORD IS STANDARD.
- 01 REC-FILEREPO PIC X(300).
- *
- WORKING-STORAGE SECTION.
- * TRACCIATO FILE RICHIESTE
- 01 W-REC-RICHIESTE.
- 03 W-FISCALE-RICH PIC X(16).
- 03 W-COD-CONS-RICH PIC 9(05).
- *
- 01 DATA-ROVESCIA PIC X(08) VALUE ZERO.
- 01 FILLER REDEFINES DATA-ROVESCIA.
- 03 GIORNO-ROV PIC 9(02).
- 03 MESE-ROV PIC 9(02).
- 03 ANNO-ROV PIC 9(04).
- 01 DATA-DB2 PIC X(10) VALUE ZERO.
- 01 FILLER REDEFINES DATA-DB2
- 03 ANNO-DB2 PIC 9(04).
- 03 TRAT1-DB2 PIC X.
- 03 MESE-DB2 PIC 9(02).
- 03 TRAT2-DB2 PIC X.
- 03 GIORNO-DB2 PIC 9(02).
- 01 SKEDA-PARAMETRO.
- 03 SKDA-OGGI PIC X(08) VALUE ZERO.
- 03 FILLER PIC X.
- 03 SKDA-MATR PIC X(08) VALUE ZERO.
- 01 STAVE01R PIC X(8) VALUE 'STAVE01R'.
- COPY STAVE01C.
- COPY STAIMM1C.
- COPY VC00VIDF.
- 01 NOME-PGM PIC X(08) VALUE 'STAVE01B'.
- 01 EOF-FILERICH PIC 9 VALUE ZERO.
- 01 IND-FISC-LETTI PIC 9(6) VALUE ZERO.
- 01 IND-FISC-SCRITTI PIC 9(6) VALUE ZERO.
- 01 IND-FISC-MANCANTI PIC 9(6) VALUE ZERO.
- 01 SW-SCRITTO PIC 9 VALUE ZERO.
- 01 TIPO-RECORD PIC 9 VALUE 2.
- * COMODI
- 01 COMODI.
- 03 Z-SQL PIC -(4) VALUE ZERO.
- * PER ABEND
- 01 DAMP PIC X VALUE SPACE.
- 01 DUMP REDEFINES DAMP PIC S9.
- * INCLUDE TABELLA 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.
- * CURSORE BENI
- EXEC SQL DECLARE CURS-BENI CURSOR FOR
- SELECT *
- FROM VC0VISUREBENI
- WHERE FISCALE_BENI = :FISCALE-BENI
- AND TIPO_REC_BENI = :TIPO-REC-BENI
- END-EXEC.
- *
- PROCEDURE DIVISION.
- *--------------------
- MAIN.
- PERFORM INIZIALIZZA
- PERFORM SISTEMA-DATA
- PERFORM LEGGI-FILERICH
- PERFORM ELABORA UNTIL EOF-FILERICH = 1
- PERFORM FINE-PGM.
- *--------------------*
- INIZIALIZZA.
- *--------------------
- DISPLAY 'INIZIO PGM: ' NOME-PGM.
- OPEN INPUT FILERICH
- OUTPUT FILEREPO.
- ACCEPT SKEDA-PARAMETRO.
- .
- *--------------------
- SISTEMA-DATA.
- *--------------------
- MOVE SKDA-OGGI TO DATA-ROVESCIA
- MOVE GIORNO-ROV TO GIORNO-DB2
- MOVE MESE-ROV TO MESE-DB2
- MOVE ANNO-ROV TO ANNO-DB2
- MOVE '-' TO TRAT1-DB2
- MOVE '-' TO TRAT2-DB2
- .
- *--------------------
- ELABORA.
- *--------------------
- PERFORM OPEN-CURS-BENI
- PERFORM FETCH-CURS-BENI
- PERFORM ELABORA-FILEREPO UNTIL SQLCODE = 100
- IF SW-SCRITTO = 1
- ADD 1 TO IND-FISC-SCRITTI
- ELSE
- ADD 1 TO IND-FISC-MANCANTI
- END-IF
- INITIALIZE SW-SCRITTO
- PERFORM CLOSE-CURS-BENI
- PERFORM LEGGI-FILERICH
- .
- *--------------------
- ELABORA-FILEREPO.
- *--------------------
- PERFORM SELECT-VC0IMMOBILI
- IF SQLCODE = 0
- PERFORM SELECT-VC0VISUREANAG
- IF SQLCODE = 0
- PERFORM CHIAMA-STAVE01R
- PERFORM VERIFICA-RETURNCODE
- IF RETURNCODE-RC-STAVE01R = 0
- PERFORM VALORIZZA-FILEREPO
- PERFORM SCRIVI-FILEREPO
- MOVE 1 TO SW-SCRITTO
- END-IF
- END-IF
- END-IF
- PERFORM FETCH-CURS-BENI
- .
- *--------------------
- SELECT-VC0IMMOBILI.
- *--------------------
- INITIALIZE VC00TAB60
- MOVE W-FISCALE-RICH TO COD-FISC-IMM
- MOVE COD-CONSERV-BENI TO COD-CONS-IMM
- MOVE COD-BENE-BENI TO FORN-COD-BENE-IMM
- EXEC SQL
- SELECT *
- INTO :VC00TAB60
- FROM VC0IMMOBILI
- WHERE COD_FISC_IMM = :COD-FISC-IMM
- AND COD_CONS_IMM = :COD-CONS-IMM
- AND FORN_COD_BENE_IMM = :FORN-COD-BENE-IMM
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN SELECT IN TABELLA VC0IMMOBILI'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'COD_FISC_IMM: ' COD-FISC-IMM
- ADD 1 TO DUMP
- END-IF
- .
- *--------------------
- SELECT-VC0VISUREANAG.
- *--------------------
- INITIALIZE VC00TAB16
- MOVE COD-FISC-IMM TO FISCALE-ANAG
- MOVE COD-CONS-IMM TO COD-CONSERV-ANAG
- EXEC SQL
- SELECT *
- INTO :VC00TAB16
- FROM VC0VISUREANAG
- WHERE FISCALE_ANAG = :FISCALE-ANAG
- AND COD_CONSERV_ANAG = :COD-CONSERV-ANAG
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN SELECT IN TABELLA VC0VISUREANAG'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'FISCALE_ANAG: ' FISCALE-ANAG
- ADD 1 TO DUMP
- END-IF
- .
- *--------------------
- CHIAMA-STAVE01R.
- *--------------------
- INITIALIZE AREA-STAVE01R
- MOVE 'DES' TO AZIONE-INPUT-STAVE01R
- MOVE COD-CONS-IMM TO COD-CONS-INPUT-STAVE01R
- CALL STAVE01R USING AREA-STAVE01R
- PERFORM VERIFICA-RETURNCODE
- .
- *--------------------
- VERIFICA-RETURNCODE.
- *--------------------
- EVALUATE RETURNCODE-RC-STAVE01R
- WHEN = 4
- DISPLAY MESSAGE-RC-STAVE01R
- WHEN = 8
- WHEN = 12
- DISPLAY MESSAGE-RC-STAVE01R
- ADD 1 TO DUMP
- END-EVALUATE
- .
- *--------------------
- VALORIZZA-FILEREPO.
- *--------------------
- MOVE AREA-DATI-BENI TO VC00VIDF
- MOVE COD-FISC-IMM TO FISCALE-IMMOB
- MOVE NOME-ANAG TO NOME-ANAG-IMMOB
- MOVE COD-CONS-IMM TO COD-CONS-IMMOB
- MOVE DES-CONS-OUTPUT-STAVE01R TO DES-CONS-IMMOB
- MOVE SEZIONE-IMM TO SEZIONE-IMMOB
- MOVE FOGLIO-IMM TO FOGLIO-IMMOB
- MOVE MAPPALE-IMM TO MAPPALE-IMMOB
- MOVE COMUNE-IMM TO COMUNE-IMMOB
- MOVE PROVINCIA-IMM TO PROV-IMMOB
- MOVE DATA-DB2 TO DATA-OPE
- MOVE SKDA-MATR TO MATR-OPE
- MOVE VD02-TIPO-DEL-BENE TO TIPO-BENE
- MOVE VD02-VAL-RENDITA-CAT TO VAL-RENDITA-CAT
- .
- *--------------------
- OPEN-CURS-BENI.
- *--------------------
- INITIALIZE VC00TAB17
- MOVE W-FISCALE-RICH TO TAC7-COD-CONS
- MOVE TIPO-RECORD TO TIPO-REC-BENI
- EXEC SQL
- OPEN CURS-BENI
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SLQCODE TO Z-SQL
- DISPLAY 'ERRORE IN OPEN IN CURSORE CURS-BENI'
- DISPLAY 'SQLCODE: ' Z-SQL
- ADD 1 TO DUMP
- END-IF
- .
- *--------------------
- FETCH-CURS-BENI.
- *--------------------
- EXEC SQL
- FETCH CURS-BENI
- INTO :VC00TAB17
- END-EXEC
- IF SQLCODE NOT = 100 AND NOT = 0
- MOVE SLQCODE TO Z-SQL
- DISPLAY 'ERRORE FETCH IN CURSORE CURS-BENI'
- DISPLAY 'SQLCODE: ' Z-SQL
- ADD 1 TO DUMP
- END-IF
- .
- *--------------------
- CLOSE-CURS-BENI.
- *--------------------
- EXEC SQL
- CLOSE CURS-BENI
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SLQCODE TO Z-SQL
- DISPLAY 'ERRORE IN CLOSE IN CURSORE CURS-BENI'
- DISPLAY 'SQLCODE: ' Z-SQL
- ADD 1 TO DUMP
- END-IF
- .
- *--------------------
- LEGGI-FILERICH.
- *--------------------
- READ FILERICH INTO W-REC-FILERICH
- AT END MOVE 1 TO EOF-FILERICH
- NOT AT END
- ADD 1 TO IND-FISC-LETTI
- END-READ
- .
- *--------------------
- STAMPA-FILERICH.
- *--------------------
- WRITE REC-FILEREPO FROM W-REC-IMMOB
- .
- *--------------------
- FINE-PGM.
- *--------------------
- DISPLAY 'NUMERO DI CODICI FISCALI LETTI IN FILERICH: '
- - IND-FISC-LETTI
- DISPLAY 'NUMERO DI CODICI FISCALI SCRITTI IN FILEREPO: '
- - IND-FISC-SCRITTI
- DISPLAY 'NUMERO DI CODICI FISCALI NON SCRITTI IN FILEREPO: '
- - IND-FISC-MANCANTI
- DISPLAY 'FINE PGM: ' NOME-PGM
- CLOSE FILERICH
- FILEREPO.
- GOBACK.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement