Advertisement
Guest User

Untitled

a guest
Jul 10th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 11.27 KB | None | 0 0
  1.  IDENTIFICATION DIVISION.
  2.       *
  3.        PROGRAM-ID. STAVE01B.
  4.        AUTHOR. FEDERICO PECIN.
  5.        DATE-WRITTEN. 2011-01-10.
  6.       *
  7.        ENVIRONMENT DIVISION.
  8.       *
  9.        FILE-CONTROL.
  10.       *
  11.            SELECT FILERICH ASSIGN                TO FILERICH.
  12.  
  13.            SELECT FILEREPO ASSIGN                TO FILEREPO.
  14.       *
  15.        DATA DIVISION.
  16.       *
  17.        FILE SECTION.
  18.       *
  19.        FD  FILERICH
  20.            LABEL RECORD IS STANDARD.
  21.  
  22.        01  REC-FILERICH                          PIC X(100).
  23.  
  24.        FD  FILEREPO
  25.            LABEL RECORD IS STANDARD.
  26.  
  27.        01  REC-FILEREPO                          PIC X(300).
  28.       *
  29.        WORKING-STORAGE SECTION.
  30.  
  31.       * TRACCIATO FILE RICHIESTE
  32.        01  W-REC-RICHIESTE.
  33.            03 W-FISCALE-RICH                     PIC X(16).
  34.            03 W-COD-CONS-RICH                    PIC 9(05).
  35.       *
  36.        01  DATA-ROVESCIA                         PIC X(08)         VALUE ZERO.
  37.        01  FILLER REDEFINES DATA-ROVESCIA.
  38.            03 GIORNO-ROV                         PIC 9(02).
  39.            03 MESE-ROV                           PIC 9(02).
  40.            03 ANNO-ROV                           PIC 9(04).
  41.  
  42.        01  DATA-DB2                              PIC X(10)         VALUE ZERO.
  43.        01  FILLER REDEFINES DATA-DB2
  44.            03 ANNO-DB2                           PIC 9(04).
  45.            03 TRAT1-DB2                          PIC X.
  46.            03 MESE-DB2                           PIC 9(02).
  47.            03 TRAT2-DB2                          PIC X.
  48.            03 GIORNO-DB2                         PIC 9(02).
  49.  
  50.        01  SKEDA-PARAMETRO.
  51.            03 SKDA-OGGI                          PIC X(08)         VALUE ZERO.
  52.            03 FILLER                             PIC X.
  53.            03 SKDA-MATR                          PIC X(08)         VALUE ZERO.
  54.  
  55.        01  STAVE01R                              PIC X(8)          VALUE 'STAVE01R'.
  56.        COPY STAVE01C.
  57.  
  58.        COPY STAIMM1C.
  59.        COPY VC00VIDF.
  60.  
  61.        01  NOME-PGM                              PIC X(08)         VALUE 'STAVE01B'.
  62.        01  EOF-FILERICH                          PIC 9             VALUE ZERO.
  63.        01  IND-FISC-LETTI                        PIC 9(6)          VALUE ZERO.
  64.        01  IND-FISC-SCRITTI                      PIC 9(6)          VALUE ZERO.
  65.        01  IND-FISC-MANCANTI                     PIC 9(6)          VALUE ZERO.
  66.        01  SW-SCRITTO                            PIC 9             VALUE ZERO.
  67.        01  TIPO-RECORD                           PIC 9             VALUE 2.
  68.  
  69.       * COMODI
  70.        01  COMODI.
  71.            03 Z-SQL                              PIC -(4)          VALUE ZERO.
  72.  
  73.       * PER ABEND
  74.        01 DAMP                                   PIC X             VALUE SPACE.
  75.        01 DUMP REDEFINES DAMP                    PIC S9.
  76.  
  77.       * INCLUDE TABELLA DB2
  78.            EXEC SQL INCLUDE SQLCA    END-EXEC.
  79.            EXEC SQL INCLUDE VC00TA16 END-EXEC.
  80.            EXEC SQL INCLUDE VC00TA17 END-EXEC.
  81.            EXEC SQL INCLUDE VC00TA60 END-EXEC.
  82.  
  83.       * CURSORE BENI
  84.            EXEC SQL DECLARE CURS-BENI CURSOR FOR
  85.              SELECT *
  86.              FROM VC0VISUREBENI
  87.              WHERE FISCALE_BENI = :FISCALE-BENI
  88.               AND TIPO_REC_BENI = :TIPO-REC-BENI
  89.            END-EXEC.
  90.  
  91.       *
  92.        PROCEDURE DIVISION.
  93.       *--------------------
  94.        MAIN.
  95.            PERFORM INIZIALIZZA
  96.            PERFORM SISTEMA-DATA
  97.            PERFORM LEGGI-FILERICH
  98.            PERFORM ELABORA UNTIL EOF-FILERICH = 1
  99.            PERFORM FINE-PGM.
  100.       *--------------------*
  101.        INIZIALIZZA.
  102.       *--------------------
  103.            DISPLAY 'INIZIO PGM: ' NOME-PGM.
  104.  
  105.            OPEN  INPUT FILERICH
  106.                 OUTPUT FILEREPO.
  107.  
  108.            ACCEPT SKEDA-PARAMETRO.
  109.            .
  110.       *--------------------
  111.        SISTEMA-DATA.
  112.       *--------------------
  113.            MOVE SKDA-OGGI                        TO DATA-ROVESCIA
  114.            MOVE GIORNO-ROV                       TO GIORNO-DB2
  115.            MOVE MESE-ROV                         TO MESE-DB2
  116.            MOVE ANNO-ROV                         TO ANNO-DB2
  117.            MOVE '-'                              TO TRAT1-DB2
  118.            MOVE '-'                              TO TRAT2-DB2
  119.            .
  120.       *--------------------
  121.        ELABORA.
  122.       *--------------------
  123.            PERFORM OPEN-CURS-BENI
  124.            PERFORM FETCH-CURS-BENI
  125.            PERFORM ELABORA-FILEREPO UNTIL SQLCODE = 100
  126.  
  127.            IF SW-SCRITTO = 1
  128.              ADD 1                               TO IND-FISC-SCRITTI
  129.            ELSE
  130.              ADD 1                               TO IND-FISC-MANCANTI
  131.            END-IF
  132.            INITIALIZE SW-SCRITTO
  133.  
  134.            PERFORM CLOSE-CURS-BENI
  135.            PERFORM LEGGI-FILERICH
  136.            .
  137.       *--------------------
  138.        ELABORA-FILEREPO.
  139.       *--------------------
  140.            PERFORM SELECT-VC0IMMOBILI
  141.            IF SQLCODE = 0
  142.              PERFORM SELECT-VC0VISUREANAG
  143.              IF SQLCODE = 0
  144.                PERFORM CHIAMA-STAVE01R
  145.                PERFORM VERIFICA-RETURNCODE
  146.                IF RETURNCODE-RC-STAVE01R = 0
  147.                  PERFORM VALORIZZA-FILEREPO
  148.                  PERFORM SCRIVI-FILEREPO
  149.                  MOVE 1                          TO SW-SCRITTO
  150.                END-IF
  151.              END-IF
  152.            END-IF
  153.            PERFORM FETCH-CURS-BENI
  154.            .
  155.       *--------------------
  156.        SELECT-VC0IMMOBILI.
  157.       *--------------------
  158.            INITIALIZE VC00TAB60
  159.  
  160.            MOVE W-FISCALE-RICH                   TO COD-FISC-IMM
  161.            MOVE COD-CONSERV-BENI                 TO COD-CONS-IMM
  162.            MOVE COD-BENE-BENI                    TO FORN-COD-BENE-IMM
  163.  
  164.            EXEC SQL
  165.              SELECT *
  166.                INTO :VC00TAB60
  167.              FROM VC0IMMOBILI
  168.              WHERE COD_FISC_IMM = :COD-FISC-IMM
  169.               AND COD_CONS_IMM = :COD-CONS-IMM
  170.               AND FORN_COD_BENE_IMM = :FORN-COD-BENE-IMM
  171.            END-EXEC
  172.  
  173.            IF SQLCODE NOT = 0
  174.              MOVE SQLCODE                        TO Z-SQL
  175.              DISPLAY 'ERRORE IN SELECT IN TABELLA VC0IMMOBILI'
  176.              DISPLAY 'SQLCODE: ' Z-SQL
  177.              DISPLAY 'COD_FISC_IMM: ' COD-FISC-IMM
  178.              ADD 1                               TO DUMP
  179.            END-IF
  180.            .
  181.       *--------------------
  182.        SELECT-VC0VISUREANAG.
  183.       *--------------------
  184.            INITIALIZE VC00TAB16
  185.  
  186.            MOVE COD-FISC-IMM                     TO FISCALE-ANAG
  187.            MOVE COD-CONS-IMM                     TO COD-CONSERV-ANAG
  188.  
  189.            EXEC SQL
  190.              SELECT *
  191.                INTO :VC00TAB16
  192.              FROM VC0VISUREANAG
  193.              WHERE FISCALE_ANAG = :FISCALE-ANAG
  194.               AND COD_CONSERV_ANAG = :COD-CONSERV-ANAG
  195.            END-EXEC
  196.  
  197.            IF SQLCODE NOT = 0
  198.              MOVE SQLCODE                        TO Z-SQL
  199.              DISPLAY 'ERRORE IN SELECT IN TABELLA VC0VISUREANAG'
  200.              DISPLAY 'SQLCODE: ' Z-SQL
  201.              DISPLAY 'FISCALE_ANAG: ' FISCALE-ANAG
  202.              ADD 1                               TO DUMP
  203.            END-IF
  204.            .
  205.       *--------------------
  206.        CHIAMA-STAVE01R.
  207.       *--------------------
  208.            INITIALIZE AREA-STAVE01R
  209.  
  210.            MOVE 'DES'                            TO AZIONE-INPUT-STAVE01R
  211.            MOVE COD-CONS-IMM                     TO COD-CONS-INPUT-STAVE01R
  212.  
  213.            CALL STAVE01R USING AREA-STAVE01R
  214.  
  215.            PERFORM VERIFICA-RETURNCODE
  216.            .
  217.       *--------------------
  218.        VERIFICA-RETURNCODE.
  219.       *--------------------
  220.            EVALUATE RETURNCODE-RC-STAVE01R
  221.              WHEN = 4
  222.                DISPLAY MESSAGE-RC-STAVE01R
  223.              WHEN = 8
  224.              WHEN = 12
  225.                DISPLAY MESSAGE-RC-STAVE01R
  226.                ADD 1                             TO DUMP
  227.            END-EVALUATE
  228.            .
  229.       *--------------------
  230.        VALORIZZA-FILEREPO.
  231.       *--------------------
  232.            MOVE AREA-DATI-BENI                   TO VC00VIDF
  233.  
  234.            MOVE COD-FISC-IMM                     TO FISCALE-IMMOB
  235.            MOVE NOME-ANAG                        TO NOME-ANAG-IMMOB
  236.            MOVE COD-CONS-IMM                     TO COD-CONS-IMMOB
  237.            MOVE DES-CONS-OUTPUT-STAVE01R         TO DES-CONS-IMMOB
  238.            MOVE SEZIONE-IMM                      TO SEZIONE-IMMOB
  239.            MOVE FOGLIO-IMM                       TO FOGLIO-IMMOB
  240.            MOVE MAPPALE-IMM                      TO MAPPALE-IMMOB
  241.            MOVE COMUNE-IMM                       TO COMUNE-IMMOB
  242.            MOVE PROVINCIA-IMM                    TO PROV-IMMOB
  243.            MOVE DATA-DB2                         TO DATA-OPE
  244.            MOVE SKDA-MATR                        TO MATR-OPE
  245.            MOVE VD02-TIPO-DEL-BENE               TO TIPO-BENE
  246.            MOVE VD02-VAL-RENDITA-CAT             TO VAL-RENDITA-CAT
  247.            .
  248.       *--------------------
  249.        OPEN-CURS-BENI.
  250.       *--------------------
  251.            INITIALIZE VC00TAB17
  252.  
  253.            MOVE W-FISCALE-RICH                   TO TAC7-COD-CONS
  254.            MOVE TIPO-RECORD                      TO TIPO-REC-BENI
  255.  
  256.            EXEC SQL
  257.             OPEN CURS-BENI
  258.            END-EXEC
  259.  
  260.            IF SQLCODE NOT = 0
  261.              MOVE SLQCODE                        TO Z-SQL
  262.              DISPLAY 'ERRORE IN OPEN IN CURSORE CURS-BENI'
  263.              DISPLAY 'SQLCODE: ' Z-SQL
  264.              ADD 1                               TO DUMP
  265.            END-IF
  266.            .
  267.       *--------------------
  268.        FETCH-CURS-BENI.
  269.       *--------------------
  270.            EXEC SQL
  271.             FETCH CURS-BENI
  272.             INTO :VC00TAB17
  273.            END-EXEC
  274.  
  275.            IF SQLCODE NOT = 100 AND NOT = 0
  276.              MOVE SLQCODE                        TO Z-SQL
  277.              DISPLAY 'ERRORE FETCH IN CURSORE CURS-BENI'
  278.              DISPLAY 'SQLCODE: ' Z-SQL
  279.              ADD 1                               TO DUMP
  280.            END-IF
  281.            .
  282.       *--------------------
  283.        CLOSE-CURS-BENI.
  284.       *--------------------
  285.            EXEC SQL
  286.             CLOSE CURS-BENI
  287.            END-EXEC
  288.  
  289.            IF SQLCODE NOT = 0
  290.              MOVE SLQCODE                        TO Z-SQL
  291.              DISPLAY 'ERRORE IN CLOSE IN CURSORE CURS-BENI'
  292.              DISPLAY 'SQLCODE: ' Z-SQL
  293.              ADD 1                               TO DUMP
  294.            END-IF
  295.            .
  296.       *--------------------
  297.        LEGGI-FILERICH.
  298.       *--------------------
  299.            READ FILERICH INTO W-REC-FILERICH
  300.              AT END MOVE 1                       TO EOF-FILERICH
  301.              NOT AT END
  302.               ADD 1                              TO IND-FISC-LETTI
  303.            END-READ
  304.            .
  305.       *--------------------
  306.        STAMPA-FILERICH.
  307.       *--------------------
  308.            WRITE REC-FILEREPO                    FROM W-REC-IMMOB
  309.            .
  310.       *--------------------
  311.        FINE-PGM.
  312.       *--------------------
  313.            DISPLAY 'NUMERO DI CODICI FISCALI LETTI IN FILERICH: '
  314.       -   IND-FISC-LETTI
  315.            DISPLAY 'NUMERO DI CODICI FISCALI SCRITTI IN FILEREPO: '
  316.       -   IND-FISC-SCRITTI
  317.            DISPLAY 'NUMERO DI CODICI FISCALI NON SCRITTI IN FILEREPO: '
  318.       -   IND-FISC-MANCANTI
  319.  
  320.            DISPLAY 'FINE PGM: ' NOME-PGM
  321.            CLOSE FILERICH
  322.                  FILEREPO.
  323.            GOBACK.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement