knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(octk)
NB: tutte le funzioni citate sono presenti nella guida di R, per i dettagli digitare "?nomefunzione" nella console di R.
Il database con i dati di programmazione (DBCOE) è disponbile in Drive
La cartella è organizzata in folder che corrispondono alle date di riferimento, eventualmente versionate in caso di rilasci multipli per correzioni su dati di un rilascio precedente. E' presente anche un repository documentale sempre riferito all'ultima data disponibile e un folder di lavoro con informazioni varie. Per ogni data di riferimento sono presenti quattro tipi di file:
Questa è la struttura del drive PROGRAMMAZIONE:
--- Drive/PROGRAMMAZIONE/
------ AAAAMMGG.V0
--------- DBCOE_Dati_FSC1240.xlsx
--------- DBCOE_Info_FSC1240.xlsx
--------- DBCOE_Interventi_CIS.xlsx
--------- DBCOE_[...].xlsx
--------- link_sito_programmi.xlsx
--------- label_programmi_en.xlsx
--------- fsc_matrice_po_psc.xlsx
--------- fsc_delibere_psc.xlsx
--------- Metadati_DB_Programmazione.xlsx
------ AAAAMMGG.V1
--------- ...
--------- ...
------ REPOSITORY
------ INFO
L'accesso ai dati di programmazione può avvenire direttamente dai file xlsx in Drive oppure attraverso le funzioni del package, che prevede funzioni specifiche per la costruzione di specifici report insieme a funzioni generiche destinate allo sviluppo. Le funzioni utilizzano i seguenti parametri principali:
# ---------------- FUNZIONI GENERICHE ---------------- # caricamento di singolo file "Dati" load_db() # caricamento di tutti i file "Dati" del DB programmazione init_programmazione_dati() # caricamento di tutti i file "Info" del DB programmazione init_info_info() # caricamento e pre-processing per pubblicazione su OpenCoesione workflow_programmazione() # ---------------- REPORT SPECIFICI ---------------- # report di riepilogo per ciclo, ambito e macroarea per caricamento pagina "risorse" su OpenCoesione risorse <- make_report_risorse() # report di riepilogo per ciclo, ambito e macroarea con evidenza degli scambi tra cicli e ambiti fonti_impieghi <- make_report_fonti_impieghi() # report per caricamento pagina "programmi" su OpenCoesione programmi <- make_pagina_programmi() # report per caricamento opendata "dotazioni" su OpenCoesione dotazioni <- make_opendata_dotazioni() # report per caricamento opendata "decisioni" su OpenCoesione decisioni <- make_opendata_decisioni() # report per caricamento della lista dei programmi confluiti nei PSC nella pagina dedicata su OpenCoesione dotazioni_popsc <- make_opendata_dotazioni_popsc() decisioni_popsc <- make_opendata_decisioni_popsc()
Ulteriori funzioni relative all'utilizzo dei file di tipo "Info" sono descritte nelle vignette dedicate:
Il parametro use_flt è associato alla variabile FLAG_MONITORAGGIO dei file "Dati" del DBCOE, che ha questi valori:
Il parametro use_po_psc consente lo switch tra le modalità di rappresentazione dei PSC, ripristinando l'organizzazione originaria:
Per la ricostruzione completa delle variazioni legate all'istruttoria art.44 e alla costruzione dei PSC è necessario utilizzare i file delle serie "strumenti_evo.xlsx" e "PSC_articolazione_tematiche_chk_decimali.xlsx" disponibili in Drive:
--- Drive/PROGRAMMAZIONE/
------ INFO
--------- PO-PSC ------------ "strumenti_evo_XXXXXXXX.xlsx" ------------ "PSC_articolazione_tematiche_chk_decimali_v.XX.xlsx"
L'aggiornamento del DBCOE si basa sulla logica che segue:
# copia file non FSC nel nuovo folder DBCOE setup_dbcoe_no_fsc(db_path_old, db_path_new=NULL) # setup FSC con PSC setup_dbcoe_dati_fsc_po() setup_dbcoe_info_fsc_po() # setup file solo PSC con apertura per programmi d'origine setup_dbcoe_dati_fsc_popsc() setup_dbcoe_info_fsc_popsc() # setup SIE 1420 #TODO: integrare nel package gli script di Nicola
Il flusso di controllo, da svolgere ad ogni aggiornamento del DBCOE, prevede i seguenti step:
Per svolgere il flusso di controllo sono disponbili apposite funzioni di controllo.
# variazione quadro risorse OLD <- file.path(DRIVE, "ELAB", "20210430", "PROGRAMMAZIONE", "sito", "V.03", "temp") chk <- chk_variazione_risorse_ciclo_ambito(risorse_new = risorse, path_to_old = file.path(OLD, "risorse_coesione.csv"), export=TRUE) # variazione lista programmi chk <- chk_variazione_risorse_programmi(programmi_new = programmi, path_to_old = OLD, export = TRUE) # confronto tra ciclo contabile e ciclo strategia chk <- chk_risorse_ciclo_contabile_strategia(use_flt=TRUE, force_yei=FALSE, use_eu=FALSE, export=FALSE)
Le variabili finanziarie relative alle risorse coesione (COE, COE_IMP e COE_PAG) sono disponbili in relazione a operazioni (progetti appartenenti a specifici programmi) e non a semplici progetti. Le regole di riconciliazione tra dati di programmazione (nel DBCOE) e dati di attuazione (provenienti dal flusso bimestrale a livello di "preesteso") viene effettuata automarticamente dal package otck.
L'update del package fatto in occasione del rilascio bimestrale dei dati su OpenCoesione comprende anche l'aggiornamento del file operazioni_light_AAAAMMGG.csv.
Il flusso di elaborazione è svolto da un'apposita funzione di setup:
# bimestre <- 20201231 setup_operazioni(bimestre, progetti=NULL, export=FALSE, use_fix=FALSE, use_ecomix=FALSE, debug=FALSE)
Il dataset operazioni che è disponbile in:
Drive/DATI/AAAAMMGG/DASAS/DATAMART
Il caricamento dei dati di attuazione per operazione può essere effettuato con la specifica funzione, che consente di uare valori in meuro o in euro, oltre che di richiamare i factor di x_AMBITO e x_CICLO.
# caricamento del perimetro operazioni # OLD: prep_perimetro_bimestre_coesione(bimestre, usa_meuro=FALSE) load_operazioni(bimestre, usa_meuro=FALSE)
L'analisi dello stato di attuazione dei programmi viene effettuata ogni bimestre in concomitanza con il rilascio dei dati. E' disponibile un insieme di funzioni dedicate, ciascuna delle quali produce uno specifio report a partire dal merge tra dati di programmazione (provenienti dal DB programmazione) e dati di attuazione (provenieneti dal dataset operazioni).
# report per programma make_report_programmi_coesione(perimetro, usa_meuro=FALSE, use_713=FALSE, use_flt=FALSE, add_totali=FALSE, use_cp2=FALSE, cut_no_risorse=FALSE, tipo_ciclo="CICLO_STRATEGIA", focus="report", export=FALSE, progetti=NULL, po_riclass=NULL) # confronto con bimestre precedente per programma add_delta_programmi_coesione(bimestre, programmi, last_bimestre, last_data_path=NULL, usa_meuro=FALSE, focus="delta", export=FALSE) # report per ciclo e ambito make_report_bimestre_coesione(programmi, usa_meuro=TRUE, export=TRUE) # report in format standard per allegato DEF # TODO: integrare funzione da script di Nicola # OLD: # report per ciclo, ambito e macroarea # make_report_macroaree_coesione(risorse=NULL, perimetro=NULL, use_meuro=TRUE, export=TRUE) # # # report attuazione per programmi e macroarea # make_report_programmi_macroaree_coesione(perimetro, usa_meuro=TRUE, use_713=TRUE, use_flt=TRUE, # add_totali=TRUE, use_cp2=TRUE, cut_no_risorse=FALSE, # tipo_ciclo="CICLO_STRATEGIA", # focus="report_DEF", export=TRUE, progetti)
Per facilitare i controlli su funzionamento dei report esistono funzioni dedicate:
chk_allineamento_risorse <- function(report, programmi, report_macroaree, risorse=NULL) chk_allineamento_costo_coe <- function(report, programmi, report_macroaree, perimetro=NULL) # variazioni risorse per programmi OLD <- file.path(getwd(), "20191231", "STATO", "stato", "V.01", "temp", "report_meuro_programmi_cp2.csv") chk <- chk_variazione_risorse_programmi(programmi_new=programmi_2, programmi_old=NULL, path_to_new=NULL, path_to_old=OLD, export=FALSE) # MEMO: confronta due dataframe risultanti da make_report_programmi_coesione(), descritto sotto
Per assicurare la confrontabilità con i dati pubblicati si usa il parametro cut_no_risorse=FALSE, che esclude i programmi monitorati che non corrispondono a risorse programmate, anticipando correzioni che saranno apportate anche ai progetti visualizzati. Le stesse funzioni sopra sono utilizzate per l'analisi dei dati di programmazione e attuazione contenuta nell'Allegato Coesione al DEF: per massimizzare la centralità delle risorse coesione, lato attuazione si usa il parametro cut_no_risorse=TRUE mentre lato programmazione rimane valido il use_flt=TRUE.
Rispetto ai dati di attuazione, sono apportate le seguenti modifiche:
[DA COMPLETARE]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.