diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/BillingPaRequest.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/BillingPaRequest.java index 61303bf5e..c3bf69a1c 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/BillingPaRequest.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/BillingPaRequest.java @@ -1,6 +1,5 @@ package it.pagopa.selfcare.onboarding.controller.request; -import jakarta.validation.constraints.NotEmpty; import lombok.Data; @Data diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregate.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregate.java index 12f734b72..cf24afa18 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregate.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregate.java @@ -11,11 +11,11 @@ public class CsvAggregate { @CsvBindByPosition(position = 1) private String description; @CsvBindByPosition(position = 2) - private String subunitCode; + private String vatNumber; @CsvBindByPosition(position = 3) private String subunitType; @CsvBindByPosition(position = 4) - private String geoTaxonomy; + private String subunitCode; @CsvBindByPosition(position = 5) private String address; @CsvBindByPosition(position = 6) diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java index 292253031..e87b4932e 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java @@ -62,6 +62,9 @@ public class AggregatesServiceDefault implements AggregatesService{ public static final String ERROR_DESCRIPTION = "La ragione sociale è obbligatoria"; public static final String ERROR_SUBUNIT_TYPE = "SubunitType non valido"; + public static final String ERROR_AOO_UO = "In caso di AOO/UO è necessario specificare la tipologia e il codice univoco IPA AOO/UO"; + public static final String ERROR_VATNUMBER = "La partita IVA è obbligatoria"; + @Override public Uni validateAggregatesCsv(File file){ AggregatesCsvResponse aggregatesCsvResponse = readItemsFromCsv(file); @@ -119,6 +122,11 @@ private Uni checkRequiredFields(CsvAggregate csvAggregate) { return Uni.createFrom().failure(new InvalidRequestException(ERROR_TAXCODE)); } else if (StringUtils.isEmpty(csvAggregate.getDescription())) { return Uni.createFrom().failure(new InvalidRequestException(ERROR_DESCRIPTION)); + } else if (StringUtils.isEmpty(csvAggregate.getVatNumber())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_VATNUMBER)); + } else if ((StringUtils.isEmpty(csvAggregate.getSubunitType()) && StringUtils.isNotEmpty(csvAggregate.getSubunitCode())) + || (StringUtils.isNotEmpty(csvAggregate.getSubunitType()) && StringUtils.isEmpty(csvAggregate.getSubunitCode()))) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_AOO_UO)); } return Uni.createFrom().voidItem(); } @@ -137,8 +145,10 @@ public AggregatesCsvResponse readItemsFromCsv(File file) { String nextLine; while ((nextLine = bufferedReader.readLine()) != null) { - parseLine(nextLine, lineNumber, resultList, errors); - lineNumber++; + if(!nextLine.startsWith("(*")){ + parseLine(nextLine, lineNumber, resultList, errors); + lineNumber++; + } } return new AggregatesCsvResponse(resultList, errors); diff --git a/apps/onboarding-ms/src/test/resources/aggregates.csv b/apps/onboarding-ms/src/test/resources/aggregates.csv index 617bdb5fb..9cf6bece3 100644 --- a/apps/onboarding-ms/src/test/resources/aggregates.csv +++ b/apps/onboarding-ms/src/test/resources/aggregates.csv @@ -1,10 +1,10 @@ codice fiscale,Ragione Sociale,subunitCode,subunitType,Area Geografica,Sede,Codice IPA -1437190414;Servizi turistici e culturali;AQ66UML;AOO;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA -00297110389;SAN LEO 2000 SERVIZI TURISTICI SRL;;;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA -4551120274;Progetto Tiburtina;KNDJE4;UO;;Via Torino 186;00L7M4KW -4551120275;;;;;Via Torino 186;00L7M4KW -;Servizi turistici e culturali;AQ66UML;AOO;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA +1437190414;Servizi turistici e culturali;123456456;AQ66UML;AOO;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA +00297110389;SAN LEO 2000 SERVIZI TURISTICI SRL;123456456;;;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA +4551120274;Progetto Tiburtina;123456456;KNDJE4;UO;;Via Torino 186;00L7M4KW +4551120275;;;;;;Via Torino 186;00L7M4KW +;Servizi turistici e culturali;123456456;AQ66UML;AOO;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA 4551120275;Servizi turistici e culturali;AQ66;AOO;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA 4551120275;Servizi turistici e culturali;AQ66;UO;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA -345645;Servizi turistici e culturali;;;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA -345645;Servizi turistici e culturali;123;AEO;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA +345645;Servizi turistici e culturali;123456456;;UO;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA +345645;Servizi turistici e culturali;123456456;123;;;PIAZZA DANTE ALIGHIERI 14;02IKT4NA