Skip to content

Commit

Permalink
feat(fe-fd): updates 20240117
Browse files Browse the repository at this point in the history
  • Loading branch information
a-buono committed Jan 17, 2024
1 parent 4e13deb commit b1834ef
Show file tree
Hide file tree
Showing 5 changed files with 143 additions and 113 deletions.
23 changes: 18 additions & 5 deletions fe-piattaforma/src/components/DetailsRow/detailsRow.scss
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@

}

.button-icon {
padding: 0 !important;
}

.details-row {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
Expand Down Expand Up @@ -69,28 +73,37 @@
}

&__right-section {
grid-area: 1 / 3 / 2 / 4;
display: table-cell;
text-align: center;
display: flex;
align-items: center;

.icon-button-relative {
margin-left: auto;
display: flex;

.icon-container {
position: relative;
right: 80px;
bottom: 2px;
}
}

.light-grey-bg {
background-color: color('grey-080');
justify-content: center;
}

span {
margin-bottom: rem(10px);
letter-spacing: rem(1px);
}

& > div {
display: flex;
align-items: center;
justify-content: end;
}
}
}


.icons {
&__icon-visible-password {
object-fit: contain;
Expand Down
15 changes: 10 additions & 5 deletions fe-piattaforma/src/components/DetailsRow/detailsRow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const DetailsRow: React.FC<DetailsRowI> = ({
return (
<Button
tabIndex={-1}
className='button-hidden'
className='button-hidden button-icon'
id={`button-1-not-sent-${id}`}
>
<Icon icon={ItPlusCircle} color='primary' size='sm' />
Expand All @@ -45,6 +45,7 @@ const DetailsRow: React.FC<DetailsRowI> = ({
return (
<>
<Button
className='button-icon'
onClick={() =>
onActionClick[CRUDActionTypes.COMPILE](idQuestionario)
}
Expand Down Expand Up @@ -90,6 +91,7 @@ const DetailsRow: React.FC<DetailsRowI> = ({
return (
<>
<Button
className='button-icon'
onClick={() =>
onActionClick[CRUDActionTypes.COMPILE](idQuestionario)
}
Expand Down Expand Up @@ -134,6 +136,7 @@ const DetailsRow: React.FC<DetailsRowI> = ({
return (
<>
<Button
className='button-icon'
onClick={() =>
onActionClick[CRUDActionTypes.VIEW](idQuestionario)
}
Expand Down Expand Up @@ -177,11 +180,13 @@ const DetailsRow: React.FC<DetailsRowI> = ({
</span>
</div>
</div>
<div className='details-row__right-section primary-color-b1'>
<div className='left-primary-row primary-color-b1'>
<span className='text-uppercase'>{rowInfoType}</span>
<div className='details-cell-button'>
<StatusChip status={stato} />
<div>{loadIcons()}</div>
</div>
<div className='details-row__right-section '>
<StatusChip status={stato} />
<div className='icon-button-relative'>
<div className='icon-container'>{loadIcons()}</div>
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ const ViewSurvey: React.FC = () => {
return e === 'Numero documento non disponibile'
? e.toString().replaceAll('§', ',')
: 'Numero documento disponibile ma non visualizzabile';
} else if (key === '2' && id === '31') {
return valuesInArray[key][id][0]
.toString()
.replaceAll('§', ',');
} else {
return e.toString().replaceAll('§', ',');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,37 @@
@Repository
public interface CittadinoRepository extends JpaRepository<CittadinoEntity, Long> {

@Query(value = "SELECT cit.id AS id, cit.data_ora_aggiornamento AS dataUltimoAggiornamento, cit.codice_fiscale AS codiceFiscale, COUNT(DISTINCT CASE WHEN qc_servizi.stato = 'COMPILATO' THEN qc_servizi.servizio_id END) AS numeroServizi, COUNT(DISTINCT CASE WHEN qc_quest_compilati.stato = 'COMPILATO' THEN qc_quest_compilati.id END) AS numeroQuestionariCompilati FROM cittadino cit LEFT JOIN (SELECT qc.id_cittadino, qc.data_ora_aggiornamento, qc.servizio_id, MAX(qc.stato) AS stato FROM questionario_compilato qc INNER JOIN servizio s ON qc.servizio_id = s.id WHERE s.id_facilitatore = :codiceFiscaleUtenteLoggato AND (COALESCE(:idsSedi) IS NULL OR s.id_sede IN (:idsSedi)) GROUP BY qc.id_cittadino, qc.data_ora_aggiornamento, qc.servizio_id) qc_servizi ON cit.id = qc_servizi.id_cittadino LEFT JOIN (SELECT qc.id_cittadino, qc.id, MAX(qc.stato) AS stato FROM questionario_compilato qc WHERE qc.stato = 'COMPILATO' GROUP BY qc.id_cittadino, qc.id) qc_quest_compilati ON cit.id = qc_quest_compilati.id_cittadino WHERE (:criterioRicerca IS NULL OR UPPER(cit.codice_fiscale) = UPPER(:criterioRicerca) OR UPPER(cit.num_documento) = UPPER(:criterioRicerca)) GROUP BY cit.id, cit.data_ora_aggiornamento, cit.codice_fiscale HAVING numeroServizi >= 1 AND numeroQuestionariCompilati >= 1 ORDER BY cit.codice_fiscale", nativeQuery = true)
@Query(value = "SELECT cit.id AS id, cit.data_ora_aggiornamento AS dataUltimoAggiornamento, cit.codice_fiscale AS codiceFiscale, COUNT(DISTINCT CASE WHEN qc_servizi.stato = 'COMPILATO' THEN qc_servizi.servizio_id END) AS numeroServizi, COUNT(DISTINCT CASE WHEN qc_quest_compilati.stato = 'COMPILATO' THEN qc_quest_compilati.id END) AS numeroQuestionariCompilati FROM cittadino cit LEFT JOIN (SELECT qc.id_cittadino, qc.data_ora_aggiornamento, qc.servizio_id, MAX(qc.stato) AS stato FROM questionario_compilato qc INNER JOIN servizio s ON qc.servizio_id = s.id WHERE s.id_facilitatore = :codiceFiscaleUtenteLoggato AND (COALESCE(:idsSedi) IS NULL OR s.id_sede IN (:idsSedi)) GROUP BY qc.id_cittadino, qc.data_ora_aggiornamento, qc.servizio_id) qc_servizi ON cit.id = qc_servizi.id_cittadino LEFT JOIN (SELECT qc.id_cittadino, qc.id, MAX(qc.stato) AS stato FROM questionario_compilato qc WHERE qc.stato = 'COMPILATO' GROUP BY qc.id_cittadino, qc.id) qc_quest_compilati ON cit.id = qc_quest_compilati.id_cittadino WHERE (:criterioRicerca IS NULL OR UPPER(cit.codice_fiscale) = UPPER(:criterioRicerca) OR UPPER(cit.num_documento) = UPPER(:criterioRicerca)) GROUP BY cit.id, cit.data_ora_aggiornamento, cit.codice_fiscale HAVING numeroServizi >= 1 AND numeroQuestionariCompilati >= 1 ORDER BY cit.codice_fiscale",
nativeQuery = true)
List<CittadinoProjection> findAllCittadiniByFiltro(
@Param("criterioRicerca") String criterioRicerca,
@Param("idsSedi") List<String> idsSedi,
@Param("codiceFiscaleUtenteLoggato") String codiceFiscaleUtenteLoggato);
@Param("criterioRicerca") String criterioRicerca,
@Param("idsSedi") List<String> idsSedi,
@Param("codiceFiscaleUtenteLoggato") String codiceFiscaleUtenteLoggato
);

@Query(value = "SELECT cittadini.conteggio_id from (SELECT DISTINCT qc_cittadino.id_cittadino as id,qc_cittadino.codice_fiscale as codiceFiscale,count_servizi.conteggio as numeroServizi,count_quest_compilati.conteggio as numeroQuestionariCompilati,count(qc_cittadino.id_cittadino) as conteggio_id FROM (SELECT DISTINCT qc.id_cittadino,c.codice_fiscale,c.num_documento,count(qc.id_cittadino) FROM questionario_compilato qc INNER JOIN cittadino c ON c.id=qc.id_cittadino INNER JOIN servizio s ON qc.servizio_id=s.id WHERE s.id_facilitatore=:codiceFiscaleUtenteLoggato AND COALESCE(:idsSedi) IS NULL OR sede_id IN (:idsSedi)) AS qc_cittadino INNER JOIN (SELECT id_cittadino,count(servizio_id) as conteggio FROM questionario_compilato WHERE 1=1 GROUP BY id_cittadino) AS count_servizi ON count_servizi.id_cittadino=qc_cittadino.id_cittadino LEFT JOIN (SELECT id_cittadino,count(*) as conteggio FROM questionario_compilato WHERE stato='COMPILATO' GROUP BY id_cittadino) AS count_quest_compilati ON count_quest_compilati.id_cittadino=qc_cittadino.id_cittadino WHERE (:criterioRicerca IS NULL OR UPPER(qc_cittadino.CODICE_FISCALE)=UPPER(:criterioRicerca) OR UPPER(qc_cittadino.NUM_DOCUMENTO)=UPPER(:criterioRicerca))) as cittadini", nativeQuery = true)
Integer conteggioCittadini(
@Param("criterioRicerca") String criterioRicerca,
@Param("idsSedi") List<String> idsSedi,
@Param("codiceFiscaleUtenteLoggato") String codiceFiscaleUtenteLoggato);

@Query(value = "SELECT cit.id AS id, cit.data_ora_aggiornamento AS dataUltimoAggiornamento, cit.codice_fiscale AS codiceFiscale, COUNT(DISTINCT CASE WHEN qc_servizi.stato = 'COMPILATO' THEN qc_servizi.servizio_id END) AS numeroServizi, COUNT(DISTINCT CASE WHEN qc_quest_compilati.stato = 'COMPILATO' THEN qc_quest_compilati.id END) AS numeroQuestionariCompilati FROM cittadino cit LEFT JOIN (SELECT qc.id_cittadino, qc.data_ora_aggiornamento, qc.servizio_id, MAX(qc.stato) AS stato FROM questionario_compilato qc INNER JOIN servizio s ON qc.servizio_id = s.id WHERE s.id_facilitatore = :codiceFiscaleUtenteLoggato AND (COALESCE(:idsSedi) IS NULL OR s.id_sede IN (:idsSedi)) GROUP BY qc.id_cittadino, qc.data_ora_aggiornamento, qc.servizio_id) qc_servizi ON cit.id = qc_servizi.id_cittadino LEFT JOIN (SELECT qc.id_cittadino, qc.id, MAX(qc.stato) AS stato FROM questionario_compilato qc WHERE qc.stato = 'COMPILATO' AND qc.servizio_id IN (SELECT id FROM servizio WHERE id_facilitatore = :codiceFiscaleUtenteLoggato) GROUP BY qc.id_cittadino, qc.id) qc_quest_compilati ON cit.id = qc_quest_compilati.id_cittadino WHERE (:criterioRicerca IS NULL OR UPPER(cit.codice_fiscale) = UPPER(:criterioRicerca) OR UPPER(cit.num_documento) = UPPER(:criterioRicerca)) GROUP BY cit.id, cit.data_ora_aggiornamento, cit.codice_fiscale HAVING numeroServizi >= 1 AND numeroQuestionariCompilati >= 1 ORDER BY cit.codice_fiscale LIMIT :currPage, :pageSize", nativeQuery = true)
@Param("criterioRicerca") String criterioRicerca,
@Param("idsSedi") List<String> idsSedi,
@Param("codiceFiscaleUtenteLoggato") String codiceFiscaleUtenteLoggato
);

@Query(value = "SELECT cit.id AS id, cit.data_ora_aggiornamento AS dataUltimoAggiornamento, cit.codice_fiscale AS codiceFiscale, COUNT(DISTINCT qc_servizi.servizio_id ) AS numeroServizi, COUNT(DISTINCT CASE WHEN qc_quest_compilati.stato = 'COMPILATO' THEN qc_quest_compilati.id END) AS numeroQuestionariCompilati FROM cittadino cit LEFT JOIN (SELECT qc.id_cittadino, qc.data_ora_aggiornamento, qc.servizio_id, MAX(qc.stato) AS stato FROM questionario_compilato qc INNER JOIN servizio s ON qc.servizio_id = s.id WHERE s.id_facilitatore = :codiceFiscaleUtenteLoggato AND (COALESCE(:idsSedi) IS NULL OR s.id_sede IN (:idsSedi)) GROUP BY qc.id_cittadino, qc.data_ora_aggiornamento, qc.servizio_id) qc_servizi ON cit.id = qc_servizi.id_cittadino LEFT JOIN (SELECT qc.id_cittadino, qc.id, MAX(qc.stato) AS stato FROM questionario_compilato qc WHERE qc.stato = 'COMPILATO' AND qc.servizio_id IN (SELECT id FROM servizio WHERE id_facilitatore = :codiceFiscaleUtenteLoggato) GROUP BY qc.id_cittadino, qc.id) qc_quest_compilati ON cit.id = qc_quest_compilati.id_cittadino WHERE (:criterioRicerca IS NULL OR UPPER(cit.codice_fiscale) = UPPER(:criterioRicerca) OR UPPER(cit.num_documento) = UPPER(:criterioRicerca)) GROUP BY cit.id, cit.data_ora_aggiornamento, cit.codice_fiscale HAVING numeroServizi >= 1 ORDER BY dataUltimoAggiornamento DESC LIMIT :currPage, :pageSize",
nativeQuery = true)
List<CittadinoProjection> findAllCittadiniPaginatiByFiltro(
@Param("criterioRicerca") String criterioRicerca,
@Param("idsSedi") List<String> idsSedi,
@Param("criterioRicerca") String criterioRicerca,
@Param("idsSedi") List<String> idsSedi,
@Param("codiceFiscaleUtenteLoggato") String codiceFiscaleUtenteLoggato,
@Param("currPage") Integer currPage,
@Param("pageSize") Integer pageSize);
@Param("currPage") Integer currPage,
@Param("pageSize") Integer pageSize
);

@Query(value = "SELECT s.id as idServizio, s.nome as nomeServizio, s.id_progetto as idProgetto, s.id_facilitatore as codiceFiscaleFacilitatore, qc.id as idQuestionarioCompilato, qc.stato as statoQuestionarioCompilato, s.id_ente as idEnte,sede.nome as nomeSede, sede.provincia as provincia FROM servizio s INNER JOIN servizio_x_cittadino sxc ON s.id = sxc.id_servizio AND s.id_facilitatore = :idFacilitatore AND sxc.id_cittadino = :idCittadino LEFT JOIN sede sede ON s.id_sede = sede.id LEFT JOIN questionario_compilato qc ON qc.id_cittadino = :idCittadino AND qc.facilitatore_id = :idFacilitatore AND sxc.id_servizio = qc.servizio_id ORDER BY s.nome", nativeQuery = true)
@Query(value = "SELECT s.id as idServizio, s.nome as nomeServizio, s.id_progetto as idProgetto, s.id_facilitatore as codiceFiscaleFacilitatore, qc.id as idQuestionarioCompilato, qc.stato as statoQuestionarioCompilato, s.id_ente as idEnte,sede.nome as nomeSede, sede.provincia as provincia FROM servizio s INNER JOIN servizio_x_cittadino sxc ON s.id = sxc.id_servizio AND s.id_facilitatore = :idFacilitatore AND sxc.id_cittadino = :idCittadino LEFT JOIN sede sede ON s.id_sede = sede.id LEFT JOIN questionario_compilato qc ON qc.id_cittadino = :idCittadino AND qc.facilitatore_id = :idFacilitatore AND sxc.id_servizio = qc.servizio_id ORDER BY s.nome"
,nativeQuery = true)
List<DettaglioServizioSchedaCittadinoProjection> findDettaglioServiziSchedaCittadino(
@Param("idCittadino") Long idCittadino,
@Param("idFacilitatore") String idFacilitatore);
@Param("idFacilitatore") String idFacilitatore
);

@Query(value = "SELECT "
+ " sede.provincia as provincia"
Expand All @@ -54,82 +61,91 @@ List<DettaglioServizioSchedaCittadinoProjection> findDettaglioServiziSchedaCitta
+ " s.id_sede = sede.id "
+ " WHERE "
+ " qc.id_cittadino = :idCittadino "
+ " LIMIT 1", nativeQuery = true)
+ " LIMIT 1",
nativeQuery = true)
String findProvinciaByIdCittadino(@Param("idCittadino") Long idCittadino);

Optional<CittadinoEntity> findByCodiceFiscale(String codiceFiscale);

Optional<CittadinoEntity> findByNumeroDocumento(String numeroDocumento);

@Query(value = " "
+ " SELECT "
+ " * "
+ " FROM "
+ " cittadino cit "
+ " WHERE 1=1 "
+ " AND ("
+ " (:codiceFiscale IS NOT NULL AND :codiceFiscale <> '' AND cit.CODICE_FISCALE = :codiceFiscale)"
+ " OR (:numeroDocumento IS NOT NULL AND :numeroDocumento <> '' AND cit.NUM_DOCUMENTO = :numeroDocumento)"
+ " )", nativeQuery = true)
+ " SELECT "
+ " * "
+ " FROM "
+ " cittadino cit "
+ " WHERE 1=1 "
+ " AND ("
+ " (:codiceFiscale IS NOT NULL AND :codiceFiscale <> '' AND cit.CODICE_FISCALE = :codiceFiscale)"
+ " OR (:numeroDocumento IS NOT NULL AND :numeroDocumento <> '' AND cit.NUM_DOCUMENTO = :numeroDocumento)"
+ " )",
nativeQuery=true)
Optional<CittadinoEntity> findByCodiceFiscaleOrNumeroDocumento(
@Param(value = "codiceFiscale") String codiceFiscale,
@Param(value = "numeroDocumento") String numeroDocumento);
@Param(value = "codiceFiscale") String codiceFiscale,
@Param(value = "numeroDocumento") String numeroDocumento
);

@Query(value = " "
+ " SELECT "
+ " cit.TIPO_CONFERIMENTO_CONSENSO "
+ " FROM "
+ " cittadino cit "
+ " WHERE 1=1 "
+ " AND cit.CODICE_FISCALE = :codiceFiscaleCittadino "
+ " ", nativeQuery = true)
+ " SELECT "
+ " cit.TIPO_CONFERIMENTO_CONSENSO "
+ " FROM "
+ " cittadino cit "
+ " WHERE 1=1 "
+ " AND cit.CODICE_FISCALE = :codiceFiscaleCittadino "
+ " ",
nativeQuery = true)
String findConsensoByCodiceFiscaleCittadino(
@Param(value = "codiceFiscaleCittadino") String codiceFiscaleCittadino);
@Param(value = "codiceFiscaleCittadino") String codiceFiscaleCittadino
);

@Query(value = " "
+ " SELECT "
+ " cit.TIPO_CONFERIMENTO_CONSENSO "
+ " FROM "
+ " cittadino cit "
+ " WHERE 1=1 "
+ " AND cit.NUM_DOCUMENTO = :numeroDocumento "
+ " ", nativeQuery = true)
+ " SELECT "
+ " cit.TIPO_CONFERIMENTO_CONSENSO "
+ " FROM "
+ " cittadino cit "
+ " WHERE 1=1 "
+ " AND cit.NUM_DOCUMENTO = :numeroDocumento "
+ " ",
nativeQuery = true)
String findConsensoByNumDocumentoCittadino(
@Param(value = "numeroDocumento") String numeroDocumento);
@Param(value = "numeroDocumento") String numeroDocumento
);

@Query(value = " "
+ " SELECT "
+ " * "
+ " FROM "
+ " cittadino cit "
+ " WHERE ( "
+ " ( cit.codice_fiscale <> '' AND cit.codice_fiscale = :codiceFiscale ) "
+ " OR ( cit.num_documento <> '' AND cit.num_documento = :numeroDocumento ) "
+ " ) "
+ " AND cit.id <> :id"
+ " ", nativeQuery = true)
+ " SELECT "
+ " * "
+ " FROM "
+ " cittadino cit "
+ " WHERE ( "
+ " ( cit.codice_fiscale <> '' AND cit.codice_fiscale = :codiceFiscale ) "
+ " OR ( cit.num_documento <> '' AND cit.num_documento = :numeroDocumento ) "
+ " ) "
+ " AND cit.id <> :id"
+ " ",
nativeQuery = true)
List<CittadinoEntity> findCittadinoByCodiceFiscaleOrNumeroDocumentoAndIdDiverso(
@Param(value = "codiceFiscale") String codiceFiscale,
@Param(value = "numeroDocumento") String numeroDocumento,
@Param(value = "numeroDocumento") String numeroDocumento,
@Param(value = "id") Long id);

@Query(value = " "
+ " SELECT "
+ " count( distinct(sxc.id_cittadino) ) "
+ " FROM "
+ " servizio_x_cittadino sxc "
+ " INNER JOIN servizio s"
+ " ON s.id = sxc.id_servizio "
+ " WHERE "
+ " 1=1"
+ " AND s.id_facilitatore = :cfUtenteLoggato "
+ " AND sxc.id_cittadino = :idCittadino "
+ " AND s.id_ente = :idEnte "
+ " AND s.id_progetto = :idProgetto "
+ " ", nativeQuery = true)
+ " SELECT "
+ " count( distinct(sxc.id_cittadino) ) "
+ " FROM "
+ " servizio_x_cittadino sxc "
+ " INNER JOIN servizio s"
+ " ON s.id = sxc.id_servizio "
+ " WHERE "
+ " 1=1"
+ " AND s.id_facilitatore = :cfUtenteLoggato "
+ " AND sxc.id_cittadino = :idCittadino "
+ " AND s.id_ente = :idEnte "
+ " AND s.id_progetto = :idProgetto "
+ " ",
nativeQuery = true)
int isCittadinoAssociatoAFacVol(
@Param(value = "idCittadino") Long idCittadino,
@Param(value = "cfUtenteLoggato") String cfUtenteLoggato,
@Param(value = "idEnte") Long idEnte,
@Param(value = "cfUtenteLoggato") String cfUtenteLoggato,
@Param(value = "idEnte") Long idEnte,
@Param(value = "idProgetto") Long idProgetto);
}
Loading

0 comments on commit b1834ef

Please sign in to comment.