SELECT conc.id, conc.numerocontratto, lc.decorrenzacontratto, tc.descrizione AS descrizionedurata, lc.datascadenza
,(CASE WHEN sc.revocato = 'true' THEN 'NO' ELSE 'SI' END) AS concessioneattiva
,replace(replace(replace(CAST((SELECT ARRAY_AGG(CONCAT(cimitero.descrizione,' ',settore.descrizione,' ',blocco.descrizione,' fila ', loculo.fila,' n.',loculo.alias,'
')) AS x FROM concessione INNER JOIN loculoconcessione ON loculoconcessione.idconcessione = concessione.id INNER JOIN loculo ON loculo.id = loculoconcessione.idloculo INNER JOIN blocco ON blocco.id = loculo.idblocco INNER JOIN settore ON settore.id = blocco.idsettore INNER JOIN cimitero ON cimitero.id = settore.idcimitero WHERE concessione.id = conc.id) as varchar) , '{"', '') , '","', '') , '
"}', '') AS posti
,replace(replace(CAST((SELECT ARRAY_AGG(CONCAT(tipocostruzione.descrizione,'
')) AS x FROM concessione
INNER JOIN loculoconcessione ON loculoconcessione.idconcessione = concessione.id
INNER JOIN loculo ON loculo.id = loculoconcessione.idloculo
INNER JOIN blocco ON blocco.id = loculo.idblocco
INNER JOIN settore ON settore.id = blocco.idsettore
INNER JOIN cimitero ON cimitero.id = settore.idcimitero
INNER JOIN tipocostruzione ON tipocostruzione.id = loculo.tipotomba
WHERE concessione.id = conc.id) as varchar
) , '{', '') , '}', '') AS tipicostruzione
,replace(replace(replace(CAST((SELECT ARRAY_AGG(CONCAT(defunto.cognome,' ',defunto.nome,'
')) AS x FROM concessione INNER JOIN defuntoconcessione ON defuntoconcessione.idconcessione = concessione.id INNER JOIN defunto ON defunto.id = defuntoconcessione.iddefunto WHERE concessione.id = conc.id) as varchar) , '{"', '') , '","', '') , '
"}', '') AS defunti
,replace(replace(replace(CAST((SELECT ARRAY_AGG(CONCAT(richiedente.cognome,' ',richiedente.nome,'
')) AS x FROM concessione INNER JOIN concessionerichiedente ON concessionerichiedente.idconcessione = concessione.id INNER JOIN richiedente ON richiedente.id = concessionerichiedente.idrichiedente WHERE concessione.id = conc.id AND concessionerichiedente.cessato = '0') as varchar) , '{"', '') , '","', '') , '
"}', '') AS concessionari
,replace(replace(replace(CAST((SELECT ARRAY_AGG(CONCAT(loculoconcessione.datascadenza,'
')) AS x FROM concessione INNER JOIN loculoconcessione ON loculoconcessione.idconcessione = concessione.id INNER JOIN loculo ON loculo.id = loculoconcessione.idloculo INNER JOIN blocco ON blocco.id = loculo.idblocco INNER JOIN settore ON settore.id = blocco.idsettore INNER JOIN cimitero ON cimitero.id = settore.idcimitero WHERE concessione.id = conc.id AND cimitero.id = [[cimitero_id:dbint:default]]) as varchar) , '{"', '') , '","', '') , '
"}', '') AS scadenze
FROM concessione conc
INNER JOIN tipoconcessione tc ON tc.id = conc.tipocontratto
INNER JOIN loculoconcessione lc ON lc.idconcessione = conc.id
INNER JOIN statoconcessione sc ON sc.id = lc.idstatoconcessione
WHERE conc.id > 0
AND conc.id NOT IN (SELECT idpadre FROM concessione)
AND conc.id IN (SELECT idconcessione FROM loculoconcessione INNER JOIN statoconcessione ON statoconcessione.id = loculoconcessione.idstatoconcessione WHERE statoconcessione.revocato = '0')
AND CASE WHEN [[cimitero_id]] <> 0 THEN conc.id IN (SELECT concessione.id FROM concessione INNER JOIN loculoconcessione ON loculoconcessione.idconcessione = concessione.id INNER JOIN loculo ON loculo.id = loculoconcessione.idloculo INNER JOIN blocco ON blocco.id = loculo.idblocco INNER JOIN settore ON settore.id = blocco.idsettore INNER JOIN cimitero ON cimitero.id = settore.idcimitero WHERE cimitero.id = [[cimitero_id:dbint:default]] ) ELSE 1=1 END
AND CASE WHEN '[[datascadenzadal]]' <> 'EMPTY' THEN lc.datascadenza >= [[datascadenzadal:dbdate:default]] ELSE 1=1 END
AND CASE WHEN '[[datascadenzaal]]' <> 'EMPTY' THEN lc.datascadenza < ([[datascadenzaal:dbdate:default]] + interval '1 day') ELSE 1=1 END
AND CASE WHEN '[[datascadenzaal]]' <> 'EMPTY' THEN conc.id NOT IN (SELECT idconcessione FROM loculoconcessione WHERE idloculo IN (SELECT idloculo FROM loculoconcessione WHERE datascadenza > ([[datascadenzaal:dbdate:default]] + interval '1 day'))) ELSE 1=1 END
AND CASE WHEN [[tipocostruzione_id]] <> 0 THEN conc.id IN (SELECT concessione.id FROM concessione INNER JOIN loculoconcessione ON loculoconcessione.idconcessione = concessione.id INNER JOIN loculo ON loculo.id = loculoconcessione.idloculo INNER JOIN tipocostruzione ON tipocostruzione.id = loculo.tipotomba WHERE tipocostruzione.id = [[tipocostruzione_id:dbint:default]] ) ELSE 1=1 END
ORDER BY conc.numerocontratto, conc.id