SELECT
   id_progetto AS idprogetto
 , codice_fiscale AS cf
 /*, dipartimento*/
 , beneficiario_ultimo AS ben
 , forma_giuridica AS fga
 , forma_giuridica AS fg
 , array_to_string(tipo_beneficiario, ',') AS tipoben
 , fine_esercizio
 , comune_sede_legale AS comsl
 , cap_sede_legale AS capsl
 , provincia_sede_legale AS prvsl
 , indirizzo_sede_legale AS indsl
 , codice_comune_sede_legale
 , comune_sede_legale AS comunesedelegale
 , cap_sede_legale AS capsedelegale 
 , provincia_sede_legale AS provinciasedelegale
 , indirizzo_sede_legale
 , codice_comune_unita_locale
 , comune_unita_locale AS comul
 , cap_unita_locale AS capul
 , provincia_unita_locale AS prvul
 , indirizzo_unita_locale AS indul
 , classificazione_ateco AS classateco
 , codice_ateco AS ateco_raw
 , ateco_format(codice_ateco) AS ateco
 , dimensione_impresa AS dimatt
 , dimensione_impresa AS dimensioneimpresa
 , dimensione_impresa AS dimimp
 , ruolo_partner AS ruopar
 , ruolo_partner IS NOT NULL AS parternariato
 , ruolo_partner IS NOT NULL AS partenariato
 , legale_rappr AS lrappr
 , settore_attivita AS setatt
 , fatturato AS fatt
 , addetti_bilancio AS addbil
 , spese_rendicontate_ammesse
 , ambiti_disciplinari
 , numero_rea
 , partita_iva
 , partita_iva AS piva
 , contatto_nominativo AS referentebeneficiario
 , contatto_telefono
 , contatto_fax
 , contatto_email
 , parco_scientifico_tecnologico
 , centro_di_competenza
 , esl_percentuale
 , esl_valore AS aimat
 , fonte_db AS fdb
 , fonte_dati AS fdati
 , fonte_db_data AS fdbd
 , presenza_varianti
 , erogatore
 , organismo_intermedio
 , stato_richiesta AS status
 , tipo_iniziativa
 , COALESCE(programma, 'N/D') AS programma
 , COALESCE(linea, 'N/D') AS linea
 , COALESCE(linea, 'N/D') AS clin
 , descrizione_linea AS dlin
 , atto_approvazione_bando AS attobando
 , (atto_approvazione_bando).numero AS nattobando
 , (atto_approvazione_bando).data AS dattobando
 , dirigente AS dirigenteregionaleresponsabile
 , tipologia_aiuto AS tipologiaaiuto
 , data_domanda AS ddom
 , descrizione_attivita AS desat
 , data_avvio_investimento AS dai
 , data_ultimazione_prevista AS dataprevistafineprogetto
 , data_completamento_istruttoria AS dci
 , data_rinuncia_ritiro AS drr
 , data_respinta AS dres
 , titolo_progetto AS titoloprogetto
 , data_inizio_progetto_prevista AS inizio_progetto_previsto
 , data_inizio_progetto_effettiva AS inizio_progetto_effettivo
 , data_fine_progetto_prevista AS fine_progetto_prevista
 , data_fine_progetto_effettiva AS fine_progetto_effettiva
 , piano_dei_costi AS pdc
 , link_documentazione AS documenti
 , procedura_attivazione AS pratt
 , controlli_in_loco AS cil
 , data_ultimo_controllo_in_loco AS ducil
 , organismo_concedente AS organismoconcedente
 , norma_agevolazione AS normaagevolazione
 , titolare_bando AS titolarebando
 , codice_ateco_progetto AS ateco_progetto
 , atto_revoca AS atrev
 , array_to_string(array_distinct(tipo_agevolazione), ',') AS formaagevolazione
 , importo_richiesto AS iric
 , importo_richiesto_deminimis AS iricdm
 , array_to_string(atto_concessione_provvisoria, ',') AS atpro
 , importo_provvisorio AS ipro
 , importo_provvisorio_deminimis AS iprodm
 , array_to_string(atto_concessione_definitiva, ',') AS atdef
 , array_to_string(array(SELECT (unnest(atto_concessione_definitiva)).data), ',') AS dataammissionefinanziamento
 , array_to_string(array(SELECT (unnest(atto_concessione_definitiva)).numero), ',') AS numeroammissionefinanziamento
 , array_to_string(data_erogazione, ',') AS dataultimaerogazionebeneficiario
 , importo_definitivo AS contributoammesso
 , importo_definitivo_deminimis AS idefdm
 , importo_definitivo_deminimis_lty AS idefdm_lty
 , array_to_string(data_erogazione, ',') AS dataultimaerogazione
 , importo_erogato AS contributoerogato
 , importo_erogato_deminimis AS contributoerogatodm
 , importo_erogato_deminimis_lty AS contributoerogatodm_lty
 , erogazione_bancaria
 , array_to_string(banca_erogatrice, ',') AS banca_erogatrice
 , motivo_revoca AS motivorevoca
 , importo_revocato AS irev
 , atto_agevolazione_revocata AS attrev
 , spesa_richiesta AS costototaleprogetto
 , spesa_ammessa_in_istruttoria AS speseammissibiliistruttoria
 , spesa_ammessa AS investimentoammesso
 , cup AS cup_cipe
 , cup AS cupcipe
 , array_to_string(codici_di_progetto, ',') AS codiciprogetto
 , codice_progetto AS codiceprogetto
 , array_to_string(verbale, ',') AS verb
 , array_to_string(tipo_verbale, ',') AS tipoverb
FROM beneficiari_progetti
LEFT JOIN progetti USING(id_progetto)
LEFT JOIN linee USING(programma,linea)
LEFT JOIN bandi USING(atto_approvazione_bando)
LEFT JOIN (SELECT id_progetto, array_agg(codice) AS codici_di_progetto FROM codici_di_progetto GROUP BY id_progetto) codici_di_progetto USING(id_progetto)
LEFT JOIN (SELECT id_progetto, codifica AS fonte_dati, codice AS codice_progetto FROM codici_di_progetto) codice_progetto USING(id_progetto,fonte_dati)
LEFT JOIN (
	SELECT
	   id_progetto
	 , codice_fiscale
	 /*, dipartimento*/
	 , array_agg(DISTINCT tipo_beneficiario) AS tipo_beneficiario
	FROM tb_bp
	GROUP BY id_progetto, codice_fiscale
) tipi_beneficiari USING(id_progetto,codice_fiscale/*,dipartimento*/)
LEFT JOIN (
	SELECT
	   id_progetto
	 , array_agg(DISTINCT tipo_verbale) AS tipo_verbale
	 , array_agg(DISTINCT verbale) AS verbale
	FROM verbali
	GROUP BY id_progetto
) AS verbali USING(id_progetto)
LEFT JOIN dati_finanziari_beneficiari_mv USING(id_progetto,codice_fiscale/*,dipartimento*/)
LEFT JOIN deminimis_lty_mv USING(codice_fiscale/*,dipartimento*/)
WHERE COALESCE(codice_fiscale = :cf, FALSE)