Skip to content
This repository has been archived by the owner on Oct 15, 2024. It is now read-only.

Commit

Permalink
[SELC-4919] feat: move taxCodeInvoicing from Institution to Billing (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
giulia-tremolada authored May 20, 2024
1 parent f6baf2d commit 6d076ed
Show file tree
Hide file tree
Showing 18 changed files with 42 additions and 28 deletions.
12 changes: 9 additions & 3 deletions app/src/main/resources/swagger/api-docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -2552,6 +2552,9 @@
"recipientCode" : {
"type" : "string"
},
"taxCodeInvoicing" : {
"type" : "string"
},
"vatNumber" : {
"type" : "string"
}
Expand All @@ -2567,6 +2570,9 @@
"recipientCode" : {
"type" : "string"
},
"taxCodeInvoicing" : {
"type" : "string"
},
"vatNumber" : {
"type" : "string"
}
Expand All @@ -2582,6 +2588,9 @@
"recipientCode" : {
"type" : "string"
},
"taxCodeInvoicing" : {
"type" : "string"
},
"vatNumber" : {
"type" : "string"
}
Expand Down Expand Up @@ -3451,9 +3460,6 @@
"taxCode" : {
"type" : "string"
},
"taxCodeSfe" : {
"type" : "string"
},
"updatedAt" : {
"type" : "string",
"format" : "date-time"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ public class InstitutionToNotify {
private String digitalAddress;
private String address;
private String taxCode;
private String taxCodeInvoicing;
private String origin;
private String originId;
private String zipCode;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ public class UnitaOrganizzativa {
private String codiceIpa;
private String denominazioneEnte;
private String codiceFiscaleEnte;
private String codiceFiscaleSfe;
private String codiceUniUo;
private String codiceUniUoPadre;
private String codiceUniAoo;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ public class Billing {
@JsonProperty("vatNumber")
private String vatNumber;

@JsonProperty("taxCodeInvoicing")
private String taxCodeInvoicing;

@JsonProperty("recipientCode")
private String recipientCode;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ public class Institution {
private String zipCode;
private String taxCode;
private String ivassCode;
private String taxCodeInvoicing;
private String city;
private String county;
private String country;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ public class InstitutionEntity {
private String address;
private String zipCode;
private String taxCode;
private String taxCodeInvoicing;
private String city;
private String county;
private String country;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
public class BillingEntity {

private String vatNumber;
private String taxCodeInvoicing;
private String recipientCode;
private boolean publicServices;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,6 @@ private InstitutionToNotify toInstitutionToNotify(Institution institution) {
toNotify.setOriginId(institution.getOriginId());
toNotify.setZipCode(institution.getZipCode());
toNotify.setPaymentServiceProvider(institution.getPaymentServiceProvider());
toNotify.setTaxCodeInvoicing(institution.getTaxCodeInvoicing());
if (institution.getSubunitType() != null && !"EC".equals(institution.getSubunitType())) {
InstitutionPaSubunitType.valueOf(institution.getSubunitType());
toNotify.setSubUnitType(institution.getSubunitType());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,6 @@ private Institution mappingToInstitutionIPAUo(CreateInstitutionStrategyInput str
newInstitution.setAddress(unitaOrganizzativa.getIndirizzo());
newInstitution.setZipCode(unitaOrganizzativa.getCAP());
newInstitution.setTaxCode(unitaOrganizzativa.getCodiceFiscaleEnte());
newInstitution.setTaxCodeInvoicing(unitaOrganizzativa.getCodiceFiscaleSfe());
newInstitution.setSubunitCode(strategyInput.getSubunitCode());
newInstitution.setSubunitType(InstitutionPaSubunitType.UO.name());
newInstitution.setParentDescription(institutionProxyInfo.getDescription());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ void toNotificationToSend_nullLocation() {
Institution institutionMock = createInstitutionWithoutLocation(institutionId, onboarding);
institutionMock.setRootParentId(null);
institutionMock.setSubunitType(InstitutionPaSubunitType.UO.name());
institutionMock.setTaxCodeInvoicing("taxCodeSfe");

Token tokenMock = createToken(institutionId, tokenId, null,
RelationshipState.DELETED,
OffsetDateTime.parse("2020-11-01T10:00:00Z"), // createdAt
Expand All @@ -484,7 +484,8 @@ void toNotificationToSend_nullLocation() {
//then
assertNotNull(notification.getInstitution().getCategory());
assertNotNull(notification.getInstitution().getCity());
assertEquals(institutionMock.getTaxCodeInvoicing(), notification.getInstitution().getTaxCodeInvoicing());
assertNotNull(notification.getBilling());
assertEquals(onboarding.getBilling(), notification.getBilling());
verify(partyRegistryProxyConnectorMock, times(1)).getInstitutionById(institutionMock.getExternalId());
verify(partyRegistryProxyConnectorMock, times(1)).getExtByCode(any());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,13 +258,18 @@ void persistOnboarding_whenUserNotExistsOnRegistry() {

String pricingPlan = "pricingPlan";
String productId = "productId";
Billing billing = new Billing();
billing.setVatNumber("vatNumber");
billing.setPublicServices(false);
billing.setRecipientCode("recipientCode");
billing.setTaxCodeInvoicing("taxCodeInvoicing");
Onboarding onboarding = dummyOnboarding();
onboarding.setStatus(UtilEnumList.VALID_RELATIONSHIP_STATES.get(0));

Onboarding onboardingToPersist = new Onboarding();
onboardingToPersist.setPricingPlan(pricingPlan);
onboardingToPersist.setProductId(productId);
onboardingToPersist.setBilling(new Billing());
onboardingToPersist.setBilling(billing);

Institution institution = new Institution();
institution.setId("institutionId");
Expand Down Expand Up @@ -296,6 +301,7 @@ void persistOnboarding_whenUserNotExistsOnRegistry() {
verify(institutionConnector, times(1))
.findAndUpdate(any(), captor.capture(), any(), any());
Onboarding actual = captor.getValue();
assertEquals(billing, actual.getBilling());
assertEquals(actual.getCreatedAt().getDayOfYear(), LocalDate.now().getDayOfYear());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import java.util.Optional;

import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
Expand Down Expand Up @@ -300,7 +299,6 @@ void shouldCreateInstitutionFromIpaAoo() {
void shouldCreateInstitutionFromIpaUo() {

UnitaOrganizzativa dummyUnitaOrganizzativa = dummyUnitaOrganizzativa();
dummyUnitaOrganizzativa.setCodiceFiscaleSfe("codiceFiscaleSfe");

when(institutionConnector.save(any())).thenAnswer(args -> args.getArguments()[0]);
when(institutionConnector.findByTaxCodeAndSubunitCode(anyString(), anyString()))
Expand Down Expand Up @@ -405,7 +403,6 @@ void shouldCreateInstitutionFromIpaUoRetrievingExistingEc() {
assertThat(actual.getAddress()).isEqualTo(dummyUnitaOrganizzativa.getIndirizzo());
assertThat(actual.getZipCode()).isEqualTo(dummyUnitaOrganizzativa.getCAP());
assertThat(actual.getTaxCode()).isEqualTo(dummyUnitaOrganizzativa.getCodiceFiscaleEnte());
assertThat(actual.getTaxCodeInvoicing()).isEqualTo(dummyUnitaOrganizzativa.getCodiceFiscaleSfe());
assertThat(actual.getSubunitCode()).isEqualTo(dummyUnitaOrganizzativa.getCodiceUniUo());
assertThat(actual.getSubunitType()).isEqualTo(InstitutionPaSubunitType.UO.name());
assertThat(actual.getParentDescription()).isEqualTo(dummyInstitutionProxyInfo.getDescription());
Expand Down Expand Up @@ -451,7 +448,6 @@ void shouldCreateInstitutionFromIpaUoWithoutTaxCodeSfe() {
assertThat(actual.getAddress()).isEqualTo(dummyUnitaOrganizzativa.getIndirizzo());
assertThat(actual.getZipCode()).isEqualTo(dummyUnitaOrganizzativa.getCAP());
assertThat(actual.getTaxCode()).isEqualTo(dummyUnitaOrganizzativa.getCodiceFiscaleEnte());
assertNull(actual.getTaxCodeInvoicing());
assertThat(actual.getSubunitCode()).isEqualTo(dummyUnitaOrganizzativa.getCodiceUniUo());
assertThat(actual.getSubunitType()).isEqualTo(InstitutionPaSubunitType.UO.name());
assertThat(actual.getParentDescription()).isEqualTo(dummyInstitutionProxyInfo.getDescription());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ private static Institution dummyInstitution(InstitutionType institutionType) {

return new Institution("42", "42", Origin.SELC.name(), "START - setupCommonData",
"The characteristics of someone or something", institutionType, "42 Main St", "42 Main St", "21654",
"TaxCode","ivass", "taxCodeSfe", "city", "county", "country", "istatCode", billing, onboarding, geographicTaxonomies, attributes, paymentServiceProvider,
"TaxCode","ivass", "city", "county", "country", "istatCode", billing, onboarding, geographicTaxonomies, attributes, paymentServiceProvider,
new DataProtectionOfficer(), null, null, "START - setupCommonData", "START - setupCommonData",
"START - setupCommonData", true, OffsetDateTime.now(), OffsetDateTime.now(), null, null, null, null, new PaAttributes(),false);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
@Data
public class BillingRequest {
private String vatNumber;
private String taxCodeInvoicing;
private String recipientCode;
private boolean publicServices;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
@Data
public class BillingResponse {
private String vatNumber;
private String taxCodeInvoicing;
private String recipientCode;
private boolean publicServices;
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ public class InstitutionResponse {
private String address;
private String zipCode;
private String taxCode;
private String taxCodeInvoicing;
private String city;
private String county;
private String country;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public static InstitutionUpdateResponse toInstitutionUpdateResponse(Institution
if (institution.getGeographicTaxonomies() != null) {
var geoCodes = institution.getGeographicTaxonomies().stream()
.map(InstitutionGeographicTaxonomies::getCode)
.collect(Collectors.toList());
.toList();
institutionUpdate.setGeographicTaxonomyCodes(geoCodes);
}
institutionUpdate.setRea(institution.getRea());
Expand Down Expand Up @@ -143,7 +143,7 @@ public static InstitutionUpdate toInstitutionUpdate(InstitutionPut institutionPu
institutionUpdate.setGeographicTaxonomies(Optional.ofNullable(institutionPut.getGeographicTaxonomyCodes())
.map(geoTaxonomiesCodes -> geoTaxonomiesCodes.stream()
.map(code -> new InstitutionGeographicTaxonomies(code, null))
.collect(Collectors.toList()))
.toList())
.orElse(null)
);

Expand Down Expand Up @@ -190,10 +190,12 @@ private static BillingResponse toBillingResponse(Billing billing, Institution in
BillingResponse billingResponse = new BillingResponse();
if (billing != null) {
billingResponse.setVatNumber(billing.getVatNumber());
billingResponse.setTaxCodeInvoicing(billing.getTaxCodeInvoicing());
billingResponse.setRecipientCode(billing.getRecipientCode());
billingResponse.setPublicServices(billing.isPublicServices());
} else if (institution.getBilling() != null) {
billingResponse.setVatNumber(institution.getBilling().getVatNumber());
billingResponse.setTaxCodeInvoicing(institution.getBilling().getTaxCodeInvoicing());
billingResponse.setRecipientCode(institution.getBilling().getRecipientCode());
billingResponse.setPublicServices(institution.getBilling().isPublicServices());
}
Expand All @@ -204,10 +206,12 @@ public static BillingResponse toBillingResponse(Onboarding onboarding, Instituti
BillingResponse billingResponse = new BillingResponse();
if (onboarding.getBilling() != null) {
billingResponse.setVatNumber(onboarding.getBilling().getVatNumber());
billingResponse.setTaxCodeInvoicing(onboarding.getBilling().getTaxCodeInvoicing());
billingResponse.setRecipientCode(onboarding.getBilling().getRecipientCode());
billingResponse.setPublicServices(onboarding.getBilling().isPublicServices());
} else if (institution.getBilling() != null) {
billingResponse.setVatNumber(institution.getBilling().getVatNumber());
billingResponse.setTaxCodeInvoicing(institution.getBilling().getTaxCodeInvoicing());
billingResponse.setRecipientCode(institution.getBilling().getRecipientCode());
billingResponse.setPublicServices(institution.getBilling().isPublicServices());
}
Expand All @@ -221,6 +225,7 @@ public static Billing getBillingFromOnboarding(Onboarding onboarding, Institutio
public static Billing toBilling(BillingRequest billingRequest) {
Billing billing = new Billing();
billing.setRecipientCode(billingRequest.getRecipientCode());
billing.setTaxCodeInvoicing(billingRequest.getTaxCodeInvoicing());
billing.setVatNumber(billingRequest.getVatNumber());
billing.setPublicServices(billing.isPublicServices());
return billing;
Expand Down Expand Up @@ -356,7 +361,7 @@ public static List<InstitutionProduct> toInstitutionProduct(List<Onboarding> onb
product.setId(onboarding.getProductId());
product.setState(onboarding.getStatus());
return product;
}).collect(Collectors.toList());
}).toList();
}

public static InstitutionManagementResponse toInstitutionManagementResponse(Institution institution) {
Expand Down Expand Up @@ -495,7 +500,7 @@ public static List<AttributesResponse> toInstitutionAttributeResponse(List<Attri
public static List<InstitutionToOnboard> toInstitutionToOnboardList(List<ValidInstitution> validInstitutions) {
return validInstitutions.stream()
.map(InstitutionMapperCustom::toInstitutionToOnboard)
.collect(Collectors.toList());
.toList();
}

public static InstitutionToOnboard toInstitutionToOnboard(ValidInstitution validInstitutions) {
Expand All @@ -508,17 +513,17 @@ public static InstitutionToOnboard toInstitutionToOnboard(ValidInstitution valid
public static List<ValidInstitution> toValidInstitutions(List<InstitutionToOnboard> institutions) {
return institutions.stream()
.map(institutionToOnboard -> new ValidInstitution(institutionToOnboard.getId(), institutionToOnboard.getDescription()))
.collect(Collectors.toList());
.toList();
}

public static BulkInstitutions toBulkInstitutions(List<Institution> institution, List<String> idsRequest) {
BulkInstitutions bulkInstitutions = new BulkInstitutions();
bulkInstitutions.setFound(institution.stream()
.map(InstitutionMapperCustom::toBulkInstitution)
.collect(Collectors.toList()));
.toList());
bulkInstitutions.setNotFound(idsRequest.stream()
.filter(s -> institution.stream().noneMatch(inst -> inst.getId().equalsIgnoreCase(s)))
.collect(Collectors.toList()));
.toList());
return bulkInstitutions;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class InstitutionControllerTest {
@Spy
private UserMapper userMapper = new UserMapperImpl();

private final ObjectMapper objectMapper = new ObjectMapper().findAndRegisterModules();;
private final ObjectMapper objectMapper = new ObjectMapper().findAndRegisterModules();


private final static Onboarding onboarding;
Expand All @@ -88,6 +88,7 @@ class InstitutionControllerTest {
billing = new Billing();
billing.setVatNumber("example");
billing.setRecipientCode("example");
billing.setTaxCodeInvoicing("example");

onboarding = new Onboarding();
onboarding.setProductId("example");
Expand Down Expand Up @@ -255,7 +256,7 @@ void shouldGetOnboardingsInstitutionByProductId() throws Exception {
.andExpect(MockMvcResultMatchers.content().contentType("application/json"))
.andExpect(MockMvcResultMatchers.content()
.string(
"{\"onboardings\":[{\"productId\":\"example\",\"tokenId\":\"tokenId\",\"status\":\"ACTIVE\",\"contract\":\"contract\",\"pricingPlan\":\"setPricingPlan\",\"billing\":{\"vatNumber\":\"example\",\"recipientCode\":\"example\",\"publicServices\":false},\"createdAt\":null,\"updatedAt\":null,\"closedAt\":null}]}"));
"{\"onboardings\":[{\"productId\":\"example\",\"tokenId\":\"tokenId\",\"status\":\"ACTIVE\",\"contract\":\"contract\",\"pricingPlan\":\"setPricingPlan\",\"billing\":{\"vatNumber\":\"example\",\"taxCodeInvoicing\":\"example\",\"recipientCode\":\"example\",\"publicServices\":false},\"createdAt\":null,\"updatedAt\":null,\"closedAt\":null}]}"));
}

@Test
Expand Down Expand Up @@ -284,7 +285,7 @@ void testRetrieveInstitutionById() throws Exception {
.perform(requestBuilder)
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content().contentType("application/json"))
.andExpect(MockMvcResultMatchers.content().string("{\"id\":\"42\",\"description\":\"description\",\"institutionType\":\"PG\",\"attributes\":[{\"origin\":null,\"code\":\"code\",\"description\":\"description\"}],\"onboarding\":[{\"productId\":\"example\",\"status\":\"ACTIVE\",\"billing\":{\"vatNumber\":\"example\",\"recipientCode\":\"example\",\"publicServices\":false},\"createdAt\":null,\"updatedAt\":null}],\"imported\":false,\"delegation\":false}"));
.andExpect(MockMvcResultMatchers.content().string("{\"id\":\"42\",\"description\":\"description\",\"institutionType\":\"PG\",\"attributes\":[{\"origin\":null,\"code\":\"code\",\"description\":\"description\"}],\"onboarding\":[{\"productId\":\"example\",\"status\":\"ACTIVE\",\"billing\":{\"vatNumber\":\"example\",\"taxCodeInvoicing\":\"example\",\"recipientCode\":\"example\",\"publicServices\":false},\"createdAt\":null,\"updatedAt\":null}],\"imported\":false,\"delegation\":false}"));
}

@Test
Expand Down

0 comments on commit 6d076ed

Please sign in to comment.