diff --git a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java index bbbeb1eb..6cce9e90 100644 --- a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java +++ b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java @@ -305,6 +305,7 @@ public class GepafinConstant { public static final String USER_ID = "userId"; public static final String LOGIN_ATTEMPT_ID = "loginAttemptId"; public static final String USER_ACTION_ID = "userActionId"; + public static final String VALID_VATNUMBER_MSG = "valid.vatnumber.message"; public static final String ATLEAST_ONE_ID_REQUIRED="atleast.one.id.required"; //Appointment diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index 0c56fb16..0b0edf19 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -981,7 +981,8 @@ public class ApplicationDao { private void sendMailToUserAndCompany(UserEntity userEntity, ApplicationEntity applicationEntity) { CallEntity call =applicationEntity.getCall(); CompanyEntity company=companyService.validateCompany(applicationEntity.getCompanyId()); - ProtocolEntity protocol = applicationEntity.getProtocol(); + UserWithCompanyEntity userWithCompany=companyService.getUserWithCompany(userEntity.getId(),company.getId()); + ProtocolEntity protocol= applicationEntity.getProtocol(); HubEntity hub = hubService.valdateHub(applicationEntity.getHubId()); SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService .retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum.APPLICATION_SUBMISSION_TO_USER_AND_COMPANY, @@ -1012,8 +1013,8 @@ public class ApplicationDao { emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(email),emailLogRequest); List recipientEmails = new ArrayList<>(); // recipientEmails.add(email); - String companyEmail = company.getEmail(); - String contactEmail = company.getContactEmail(); + String companyEmail = userWithCompany.getEmail(); + String contactEmail = userWithCompany.getContactEmail(); if (companyEmail != null && !companyEmail.isEmpty()) { recipientEmails.add(companyEmail); diff --git a/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java b/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java index 632d3226..48ec017b 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/CompanyDao.java @@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.dao; import java.util.EnumSet; import java.util.List; +import java.util.Map; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.entities.*; @@ -66,7 +67,7 @@ public class CompanyDao { if (existingCompany != null) { UserWithCompanyEntity existingRelation = userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userEntity.getId(), existingCompany.getId()).orElse(null); if (existingRelation == null) { - userWithCompanyEntity = createUserWithCompanyRelation(userEntity, existingCompany, companyRequest.getIsLegalRepresentant()); + userWithCompanyEntity = createUserWithCompanyRelation(userEntity, existingCompany, companyRequest.getIsLegalRepresentant(),companyRequest); /** This code is responsible for adding a version history log for "adding user with company" operation. **/ loggingUtil.addVersionHistory( @@ -83,7 +84,7 @@ public class CompanyDao { /** This code is responsible for adding a version history log for "creating company" operation. **/ loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(companyData).build()); - userWithCompanyEntity = createUserWithCompanyRelation(userEntity, companyEntity, companyRequest.getIsLegalRepresentant()); + userWithCompanyEntity = createUserWithCompanyRelation(userEntity, companyEntity, companyRequest.getIsLegalRepresentant(),companyRequest); return convertCompanyEntityToCompanyResponse(companyEntity, userWithCompanyEntity); } @@ -107,7 +108,7 @@ public class CompanyDao { } } - private UserWithCompanyEntity createUserWithCompanyRelation(UserEntity userEntity, CompanyEntity companyEntity, Boolean isLegalRepresentant) { + private UserWithCompanyEntity createUserWithCompanyRelation(UserEntity userEntity, CompanyEntity companyEntity, Boolean isLegalRepresentant,CompanyRequest companyRequest) { UserWithCompanyEntity userWithCompanyEntity = new UserWithCompanyEntity(); if (userEntity.getBeneficiary() != null) { @@ -117,6 +118,11 @@ public class CompanyDao { userWithCompanyEntity.setCompanyId(companyEntity.getId()); userWithCompanyEntity.setUserId(userEntity.getId()); userWithCompanyEntity.setIsLegalRepresentant(isLegalRepresentant); + userWithCompanyEntity.setEmail(companyRequest.getEmail()); + userWithCompanyEntity.setPec(companyRequest.getPec()); + userWithCompanyEntity.setContactName(companyRequest.getContactName()); + userWithCompanyEntity.setContactEmail(companyRequest.getContactEmail()); + userWithCompanyEntity.setJson(Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) ); UserWithCompanyEntity userWithCompany = userWithCompanyRepository.save(userWithCompanyEntity); /** This code is responsible for adding a version history log for the "adding user with company" operation. **/ @@ -135,12 +141,8 @@ public class CompanyDao { entity.setProvince(request.getProvince()); entity.setCap(request.getCap()); entity.setCountry(request.getCountry()); - entity.setPec(request.getPec()); - entity.setEmail(request.getEmail()); entity.setNumberOfEmployees(request.getNumberOfEmployees()); entity.setAnnualRevenue(request.getAnnualRevenue()); - entity.setContactName(request.getContactName()); - entity.setContactEmail(request.getContactEmail()); entity.setHub(userEntity.getHub()); return entity; } @@ -157,8 +159,8 @@ public class CompanyDao { response.setProvince(entity.getProvince()); response.setCap(entity.getCap()); response.setCountry(entity.getCountry()); - response.setPec(entity.getPec()); - response.setEmail(entity.getEmail()); + response.setPec(userWithCompanyEntity.getPec()); + response.setEmail(userWithCompanyEntity.getEmail()); response.setNumberOfEmployees(entity.getNumberOfEmployees()); response.setAnnualRevenue(entity.getAnnualRevenue()); if(userWithCompanyEntity!=null) { @@ -166,8 +168,8 @@ public class CompanyDao { } response.setCreatedDate(entity.getCreatedDate()); response.setUpdatedDate(entity.getUpdatedDate()); - response.setContactName(entity.getContactName()); - response.setContactEmail(entity.getContactEmail()); + response.setContactName(userWithCompanyEntity.getContactName()); + response.setContactEmail(userWithCompanyEntity.getContactEmail()); return response; } @@ -178,7 +180,6 @@ public class CompanyDao { CompanyEntity oldCompanyData = Utils.getClonedEntityForData(companyEntity); setIfUpdated(companyEntity::getCompanyName, companyEntity::setCompanyName, companyRequest.getCompanyName()); - setIfUpdated(companyEntity::getVatNumber, companyEntity::setVatNumber, companyRequest.getVatNumber()); setIfUpdated(companyEntity::getCodiceFiscale, companyEntity::setCodiceFiscale, companyRequest.getCodiceFiscale()); setIfUpdated(companyEntity::getAddress, companyEntity::setAddress, companyRequest.getAddress()); setIfUpdated(companyEntity::getPhoneNumber, companyEntity::setPhoneNumber, companyRequest.getPhoneNumber()); @@ -186,12 +187,17 @@ public class CompanyDao { setIfUpdated(companyEntity::getProvince, companyEntity::setProvince, companyRequest.getProvince()); setIfUpdated(companyEntity::getCap, companyEntity::setCap, companyRequest.getCap()); setIfUpdated(companyEntity::getCountry, companyEntity::setCountry, companyRequest.getCountry()); - setIfUpdated(companyEntity::getPec, companyEntity::setPec, companyRequest.getPec()); - setIfUpdated(companyEntity::getEmail, companyEntity::setEmail, companyRequest.getEmail()); setIfUpdated(companyEntity::getNumberOfEmployees, companyEntity::setNumberOfEmployees, companyRequest.getNumberOfEmployees()); setIfUpdated(companyEntity::getAnnualRevenue, companyEntity::setAnnualRevenue, companyRequest.getAnnualRevenue()); - setIfUpdated(companyEntity::getContactName, companyEntity::setContactName, companyRequest.getContactName()); - setIfUpdated(companyEntity::getContactEmail, companyEntity::setContactEmail, companyRequest.getContactEmail()); + + if(StringUtils.isNotBlank(companyRequest.getVatNumber())) { + CompanyEntity existingCompany = companyRepository.findByVatNumberAndHubId(companyRequest.getVatNumber(), userEntity.getHub().getId()); + if(existingCompany!=null){ + throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.VATNUMBER_ALREADY_EXISTS)); + } + companyEntity.setVatNumber(companyRequest.getVatNumber()); + + } companyRepository.save(companyEntity); /** This code is responsible for adding a version history log for the "Update company" operation. **/ @@ -201,8 +207,15 @@ public class CompanyDao { UserWithCompanyEntity userWithCompanyEntity = getUserWithCompany(userEntity.getId(), companyId); //cloned entity for old data UserWithCompanyEntity oldUserWithCompanyData = Utils.getClonedEntityForData(userWithCompanyEntity); - - Utils.setIfUpdated(userWithCompanyEntity::getIsLegalRepresentant, userWithCompanyEntity::setIsLegalRepresentant, companyRequest.getIsLegalRepresentant()); + if(StringUtils.isNotBlank(companyRequest.getVatNumber())) { + String responseJson = companyRequest.getVatCheckResponse() != null ? Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) : null; + setIfUpdated(userWithCompanyEntity::getJson, userWithCompanyEntity::setJson, responseJson); + } + setIfUpdated(userWithCompanyEntity::getPec, userWithCompanyEntity::setPec, userWithCompanyEntity.getPec()); + setIfUpdated(userWithCompanyEntity::getEmail, userWithCompanyEntity::setEmail, userWithCompanyEntity.getEmail()); + setIfUpdated(userWithCompanyEntity::getContactName, userWithCompanyEntity::setContactName, companyRequest.getContactName()); + setIfUpdated(userWithCompanyEntity::getContactEmail, userWithCompanyEntity::setContactEmail, companyRequest.getContactEmail()); + setIfUpdated(userWithCompanyEntity::getIsLegalRepresentant, userWithCompanyEntity::setIsLegalRepresentant, companyRequest.getIsLegalRepresentant()); userWithCompanyEntity = userWithCompanyRepository.save(userWithCompanyEntity); /** This code is responsible for adding a version history log for the "Update company" operation. **/ @@ -254,7 +267,7 @@ public class CompanyDao { return userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userId, companyId).orElseThrow(() -> new ForbiddenAccessException(Status.FORBIDDEN, Translator.toLocale(GepafinConstant.PERMISSION_DENIED))); } - + public UserWithCompanyEntity getUserWithCompany(Long userId, Long compnayId) { return userWithCompanyRepository.findByUserIdAndCompanyIdAndIsDeletedFalse(userId, compnayId).orElseThrow( () -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.USER_COMPANY_RELATION_NOT_FOUND))); @@ -277,39 +290,59 @@ public class CompanyDao { throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.CANNOT_DELETE_COMPANY_WITH_APPLICATION_SUBMITT)); } - for(ApplicationEntity application:userApplications){ - ApplicationEntity oldApplication = Utils.getClonedEntityForData(application); - application.setIsDeleted(Boolean.TRUE); + userApplications = userApplications.stream() + .peek(application -> { + ApplicationEntity oldApplication = Utils.getClonedEntityForData(application); + application.setIsDeleted(Boolean.TRUE); - /** This code is responsible for adding a version history log for the "Soft delete application" operation. **/ - loggingUtil.addVersionHistory( - VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldApplication).newData(application).build()); - - } + /** This code is responsible for adding a version history log for the "Soft delete Faq" operation. **/ + loggingUtil.addVersionHistory( + VersionHistoryRequest.builder() + .request(request) + .actionType(VersionActionTypeEnum.SOFT_DELETE) + .oldData(oldApplication) + .newData(application) + .build() + ); + }) + .toList(); applicationRepository.saveAll(userApplications); - for(FaqEntity faq:faqs){ - FaqEntity oldFaq = Utils.getClonedEntityForData(faq); - faq.setIsDeleted(Boolean.TRUE); - - /** This code is responsible for adding a version history log for the "Soft delete Faq" operation. **/ - loggingUtil.addVersionHistory( - VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldFaq).newData(faq).build()); - } + faqs = faqs.stream() + .peek(faq -> { + FaqEntity oldFaq = Utils.getClonedEntityForData(faq); + faq.setIsDeleted(Boolean.TRUE); + /** This code is responsible for adding a version history log for the "Soft delete Faq" operation. **/ + loggingUtil.addVersionHistory( + VersionHistoryRequest.builder() + .request(request) + .actionType(VersionActionTypeEnum.SOFT_DELETE) + .oldData(oldFaq) + .newData(faq) + .build() + ); + }) + .toList(); faqRepository.saveAll(faqs); - for(BeneficiaryPreferredCallEntity beneficiaryPreferredCall:preferredCallEntities){ - BeneficiaryPreferredCallEntity oldPreferredCall = Utils.getClonedEntityForData(beneficiaryPreferredCall); - beneficiaryPreferredCall.setIsDeleted(Boolean.TRUE); - - /** This code is responsible for adding a version history log for the "Soft Delete BeneficiaryPreferredCall" operation. **/ - loggingUtil.addVersionHistory( - VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldPreferredCall).newData(beneficiaryPreferredCall).build()); - - } + preferredCallEntities = preferredCallEntities.stream() + .peek(beneficiaryPreferredCall -> { + BeneficiaryPreferredCallEntity oldPreferredCall = Utils.getClonedEntityForData(beneficiaryPreferredCall); + beneficiaryPreferredCall.setIsDeleted(Boolean.TRUE); + /** This code is responsible for adding a version history log for the "Soft Delete BeneficiaryPreferredCall" operation. **/ + loggingUtil.addVersionHistory( + VersionHistoryRequest.builder() + .request(request) + .actionType(VersionActionTypeEnum.SOFT_DELETE) + .oldData(oldPreferredCall) + .newData(beneficiaryPreferredCall) + .build() + ); + }) + .toList(); beneficiaryPreferredCallRepository.saveAll(preferredCallEntities); - if(userCompanyDelegationEntity!=null){ + if(userCompanyDelegationEntity!=null){ UserCompanyDelegationEntity oldUserWithCompanyDelegation = Utils.getClonedEntityForData(userCompanyDelegationEntity); userCompanyDelegationEntity.setStatus( UserCompanyDelegationStatusEnum.INACTIVE.getValue()); userCompanyDelegationRepository.save(userCompanyDelegationEntity); diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java index 12d868a5..88e6954a 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java @@ -103,8 +103,10 @@ public class EmailNotificationDao { Optional applicationEvaluationEntity = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationEntity.getId()); CompanyEntity company = companyService.validateCompany(applicationEntity.getCompanyId()); - String companyEmail = company.getEmail(); - String contactEmail = company.getContactEmail(); + + UserWithCompanyEntity userWithCompany=companyService.getUserWithCompany(userEntity.getId(),company.getId()); + String companyEmail = userWithCompany.getEmail(); + String contactEmail = userWithCompany.getContactEmail(); if (companyEmail != null && !companyEmail.isEmpty()) { EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY,company.getId() , diff --git a/src/main/java/net/gepafin/tendermanagement/dao/VatCheckDao.java b/src/main/java/net/gepafin/tendermanagement/dao/VatCheckDao.java index 52321b43..85af1388 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/VatCheckDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/VatCheckDao.java @@ -4,15 +4,11 @@ import feign.FeignException; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.config.Translator; import net.gepafin.tendermanagement.constants.GepafinConstant; -import net.gepafin.tendermanagement.enums.UserActionContextEnum; -import net.gepafin.tendermanagement.enums.UserActionLogsEnum; -import net.gepafin.tendermanagement.model.request.UserActionRequest; +import net.gepafin.tendermanagement.entities.CompanyEntity; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import net.gepafin.tendermanagement.service.feignClient.VatCheckService; import net.gepafin.tendermanagement.util.LoggingUtil; import net.gepafin.tendermanagement.util.Utils; -import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException; -import net.gepafin.tendermanagement.web.rest.api.errors.Status; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -49,10 +45,13 @@ public class VatCheckDao { @Autowired private HttpServletRequest request; - public Map checkVatNumberApi(String vatNumber) { - + public VatCheckResponseBean checkVatNumberApi(String vatNumber) { + VatCheckResponseBean vatCheckResponseBean = new VatCheckResponseBean(); + vatCheckResponseBean.setValid(false); + vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER)); if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) { - return new HashMap<>(); + vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER)); + return vatCheckResponseBean; } Map responseBody = new HashMap<>(); try { @@ -77,22 +76,28 @@ public class VatCheckDao { responseBody.remove("id"); Map data = new LinkedHashMap<>(); data.put("data", responseBody); - return data; + vatCheckResponseBean.setValid(true); + vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.VALID_VATNUMBER_MSG)); + vatCheckResponseBean.setVatCheckResponse(data); } } } catch (FeignException ex) { log.error("Exception occurred while checking vat number: {0}", ex); Utils.callException(ex.status(), ex); } - return responseBody; + return vatCheckResponseBean; } - public Map checkVatNumber(String vatNumber) { + public VatCheckResponseBean checkVatNumber(String vatNumber) { try { return checkVatNumberApi(vatNumber); } catch (Exception e) { - throw new CustomValidationException(Status.VALIDATION_ERROR, - Translator.toLocale(GepafinConstant.INVALID_VATNUMBER)); + log.error("Error in checkVatNumber: {}", e.getMessage()); + VatCheckResponseBean vatCheckResponseBean = new VatCheckResponseBean(); + vatCheckResponseBean.setValid(false); + vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER)); + return vatCheckResponseBean; } } + } diff --git a/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java index e3709ef7..8d5e3f34 100644 --- a/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java +++ b/src/main/java/net/gepafin/tendermanagement/entities/CompanyEntity.java @@ -41,28 +41,19 @@ public class CompanyEntity extends BaseEntity{ @Column(name = "COUNTRY") private String country; - @Column(name = "PEC") - private String pec; - - @Column(name = "EMAIL") - private String email; - @Column(name = "NUMBER_OF_EMPLOYEES") private String numberOfEmployees; @Column(name = "ANNUAL_REVENUE") private BigDecimal annualRevenue; - - @Column(name = "CONTACT_NAME") - private String contactName; - - @Column(name = "CONTACT_EMAIL") - private String contactEmail; @ManyToOne @JoinColumn(name = "HUB_ID") private HubEntity hub; + @Column(name = "JSON") + private String json; + @Column(name = "NDG") private String ndg; } diff --git a/src/main/java/net/gepafin/tendermanagement/entities/UserWithCompanyEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/UserWithCompanyEntity.java index 49770356..1f067a90 100644 --- a/src/main/java/net/gepafin/tendermanagement/entities/UserWithCompanyEntity.java +++ b/src/main/java/net/gepafin/tendermanagement/entities/UserWithCompanyEntity.java @@ -22,6 +22,22 @@ public class UserWithCompanyEntity extends BaseEntity{ @Column(name = "IS_LEGAL_REPRESENTANT") private Boolean isLegalRepresentant; + + @Column(name = "CONTACT_NAME") + private String contactName; + + @Column(name = "CONTACT_EMAIL") + private String contactEmail; + + @Column(name = "PEC") + private String pec; + + @Column(name = "EMAIL") + private String email; + + @Column(name = "JSON") + private String json; + @Column(name = "IS_DELETED") private Boolean isDeleted = false; diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/CompanyRequest.java b/src/main/java/net/gepafin/tendermanagement/model/request/CompanyRequest.java index b9f43932..22ade9a5 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/request/CompanyRequest.java +++ b/src/main/java/net/gepafin/tendermanagement/model/request/CompanyRequest.java @@ -1,6 +1,7 @@ package net.gepafin.tendermanagement.model.request; import java.math.BigDecimal; +import java.util.Map; import lombok.Data; @@ -23,4 +24,5 @@ public class CompanyRequest { private Boolean isLegalRepresentant; private String contactName; private String contactEmail; + private Map vatCheckResponse; } diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/VatCheckResponseBean.java b/src/main/java/net/gepafin/tendermanagement/model/response/VatCheckResponseBean.java new file mode 100644 index 00000000..611925d3 --- /dev/null +++ b/src/main/java/net/gepafin/tendermanagement/model/response/VatCheckResponseBean.java @@ -0,0 +1,12 @@ +package net.gepafin.tendermanagement.model.response; +import lombok.Getter; +import lombok.Setter; +import java.util.Map; + +@Getter +@Setter +public class VatCheckResponseBean { + private Boolean valid; + private Map vatCheckResponse; + private String message; +} diff --git a/src/main/java/net/gepafin/tendermanagement/service/CompanyService.java b/src/main/java/net/gepafin/tendermanagement/service/CompanyService.java index a1120587..da36cc15 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/CompanyService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/CompanyService.java @@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream; import java.util.List; import java.util.Map; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import org.springframework.web.multipart.MultipartFile; import jakarta.servlet.http.HttpServletRequest; @@ -26,7 +27,7 @@ public interface CompanyService { List getCompanyByUserId(HttpServletRequest request, Long userId); - Map checkVatNumber(HttpServletRequest request, String vatNumber); + VatCheckResponseBean checkVatNumber(HttpServletRequest request, String vatNumber); CompanyEntity validateCompany(Long companyId); @@ -44,5 +45,4 @@ public interface CompanyService { UserWithCompanyEntity getUserWithCompanyEntity(Long userId,Long companyId); void removeCompanyFromList(HttpServletRequest request, Long companyId); - } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/CompanyServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/CompanyServiceImpl.java index 2bddb1cf..092c5102 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/CompanyServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/CompanyServiceImpl.java @@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream; import java.util.List; import java.util.Map; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -78,7 +79,7 @@ public class CompanyServiceImpl implements CompanyService { @Override @Transactional(readOnly = true) - public Map checkVatNumber(HttpServletRequest request, String vatNumber) { + public VatCheckResponseBean checkVatNumber(HttpServletRequest request, String vatNumber) { return vatCheckDao.checkVatNumber(vatNumber); } @Override diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/CompanyApi.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/CompanyApi.java index baf1671e..6384f4d7 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/CompanyApi.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/CompanyApi.java @@ -3,6 +3,7 @@ package net.gepafin.tendermanagement.web.rest.api; import java.util.List; import java.util.Map; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; @@ -94,8 +95,8 @@ public interface CompanyApi { @ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = { @ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) }) @GetMapping(value = "/vatNumber", produces = { "application/json" }) - ResponseEntity>> checkVatNumber(HttpServletRequest request, - @Parameter(description = "The vatNumber of company", required = true) @RequestParam("vatNumber") String vatNumber); + ResponseEntity> checkVatNumber(HttpServletRequest request, + @Parameter(description = "The vatNumber of company", required = true) @RequestParam("vatNumber") String vatNumber); @Operation(summary = "Api to download company delegation template", responses = { @ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = { diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CompanyApiController.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CompanyApiController.java index 127edbe1..0bfb0e7a 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CompanyApiController.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/CompanyApiController.java @@ -7,6 +7,7 @@ import java.util.Map; import net.gepafin.tendermanagement.enums.UserActionContextEnum; import net.gepafin.tendermanagement.enums.UserActionLogsEnum; import net.gepafin.tendermanagement.model.request.UserActionRequest; +import net.gepafin.tendermanagement.model.response.VatCheckResponseBean; import net.gepafin.tendermanagement.util.LoggingUtil; import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException; import org.slf4j.Logger; @@ -112,15 +113,15 @@ public class CompanyApiController implements CompanyApi{ } @Override - public ResponseEntity>> checkVatNumber(HttpServletRequest request, String vatNumber) { + public ResponseEntity> checkVatNumber(HttpServletRequest request, String vatNumber) { log.info("check VatNumber with: {}", vatNumber); /** This code is responsible for creating user action logs for the "Check vat number" operation. **/ loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.CHECK_COMPANY_VAT_NUMBER).build()); - Map data = companyService.checkVatNumber(request, vatNumber); + VatCheckResponseBean vatCheckResponseBean = companyService.checkVatNumber(request, vatNumber); return ResponseEntity.status(HttpStatus.OK) - .body(new Response<>(data, Status.SUCCESS, Translator.toLocale(GepafinConstant.CHECK_VATNUMBER_SUCCESS_MSG))); + .body(new Response<>(vatCheckResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CHECK_VATNUMBER_SUCCESS_MSG))); } @Override diff --git a/src/main/resources/db/changelog/db.changelog-1.0.0.xml b/src/main/resources/db/changelog/db.changelog-1.0.0.xml index 0fdebf9e..0d98fae6 100644 --- a/src/main/resources/db/changelog/db.changelog-1.0.0.xml +++ b/src/main/resources/db/changelog/db.changelog-1.0.0.xml @@ -1961,7 +1961,6 @@ - @@ -1971,6 +1970,19 @@ + + + + + + + + + + + + + diff --git a/src/main/resources/message_en.properties b/src/main/resources/message_en.properties index 290f40af..44a27275 100644 --- a/src/main/resources/message_en.properties +++ b/src/main/resources/message_en.properties @@ -313,6 +313,7 @@ company.id.required.for.preferred.call=Company ID is required when requesting on response.days.not.null=Response days should not be null and greater than zero. application.cannot.approved.or.rejected=Application cannot be approved and rejected because amendment is active. +valid.vatnumber.message=The VAT number is valid. atleast.one.id.required=At least one of companyId or applicationId must be provided diff --git a/src/main/resources/message_it.properties b/src/main/resources/message_it.properties index f41e4f1c..0b22e9e3 100644 --- a/src/main/resources/message_it.properties +++ b/src/main/resources/message_it.properties @@ -70,7 +70,7 @@ email.already.exists=Esiste gi? un utente con questa email. invalid_user=Validazione utente fallita. Controlla le informazioni, lo stato dell'account e la scadenza del token. #Global messages -common_message=qualcosa é andato storto. Per favore riprova +common_message=qualcosa � andato storto. Per favore riprova invalid_signature=Gettone non valido. invalid_login=Nome utente o password errati req_validation_er=Errore di convalida @@ -304,7 +304,10 @@ beneficiary.call.duplicate = Una chiamata preferita con questo ID di chiamata e user.must.be.associated.with.company.to.create.application=Devi essere associato a un'azienda per poter presentare domanda per questa applicazione. company.id.required.for.preferred.call=ID azienda obbligatorio quando si richiedono solo chiamate preferite. response.days.not.null=I giorni di risposta non devono essere nulli e maggiori di zero. +application.cannot.approved.or.rejected=La domanda non pu� essere approvata o rifiutata perch� l'emendamento � attivo. +valid.vatnumber.message=Il numero di partita IVA � valido. application.cannot.approved.or.rejected=La domanda non pu? essere approvata o rifiutata perch? l'emendamento ? attivo. + atleast.one.id.required=Almeno uno tra companyId o applicationId deve essere fornito. #Appointment flow messages @@ -326,12 +329,15 @@ appointment.created.successfully = Appuntamento creato con successo. error.try.again = Errore di chiamata di servizio durante l'esecuzione dell'operazione. Riprovare. document.uploading.is.in.progress = Il documento ? in fase di caricamento. all.document.checked.and.one.checklist.checked=Tutti i documenti devono essere controllati e almeno una checklist deve essere controllata. +<<<<<<< HEAD #notification messsages -notification.already.in.state=La notifica è già nello stato fornito. +notification.already.in.state=La notifica � gi� nello stato fornito. notification.fetched.successfully=Notifica recuperata con successo. notification.not.found=Notifica non trovata. notification.sent.successfully=Notifica inviata con successo. notification.deleted.successfully=Notifica eliminata con successo. notification.updated.successfully=Notifica aggiornata con successo. -user.with.company.not.found = Utente con azienda non trovato per utente o azienda. \ No newline at end of file +user.with.company.not.found = Utente con azienda non trovato per utente o azienda. +======= +>>>>>>> 832666a4d412c2c81f5c1dfb5b1866aba2c40bdd