Done ticket GEPAFINBE-215
This commit is contained in:
@@ -420,7 +420,8 @@ public class FormDao {
|
|||||||
.matchesPattern(value, fieldValidatorBean.getPattern(), fieldLabel) // Only applies if pattern is present
|
.matchesPattern(value, fieldValidatorBean.getPattern(), fieldLabel) // Only applies if pattern is present
|
||||||
.validateCustom(value, fieldValidatorBean.getCustom(), fieldLabel,contentResponseBean); // Add the custom validation here
|
.validateCustom(value, fieldValidatorBean.getCustom(), fieldLabel,contentResponseBean); // Add the custom validation here
|
||||||
if (fieldValidatorBean.getCustom() != null && fieldValidatorBean.getCustom().equals(GepafinConstant.IS_PIVA)) {
|
if (fieldValidatorBean.getCustom() != null && fieldValidatorBean.getCustom().equals(GepafinConstant.IS_PIVA)) {
|
||||||
String error = validateVatNumber(value, fieldValidatorBean.getCustom(), fieldLabel);
|
Long hubId = applicationEntity.getHubId();
|
||||||
|
String error = validateVatNumber(value, fieldLabel,hubId);
|
||||||
if(error != null) {
|
if(error != null) {
|
||||||
validator.addError(error);
|
validator.addError(error);
|
||||||
}
|
}
|
||||||
@@ -504,14 +505,14 @@ public class FormDao {
|
|||||||
}).filter(value -> !value.isEmpty()).findFirst().orElse(contentResponseBean.getId());
|
}).filter(value -> !value.isEmpty()).findFirst().orElse(contentResponseBean.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public String validateVatNumber(String value,String customRule,String fieldId){
|
public String validateVatNumber(String value,String fieldId, Long hubId){
|
||||||
String error=null;
|
String error=null;
|
||||||
|
|
||||||
if (value!=null && value.matches("^\\d{1,11}$")) {
|
if (value!=null && value.matches("^\\d{1,11}$")) {
|
||||||
// Map<String, Object> customData=null;
|
// Map<String, Object> customData=null;
|
||||||
try {
|
try {
|
||||||
// Map<String, Object> vatCheckResponse = vatCheckDao.checkVatNumberApi(value);
|
// Map<String, Object> vatCheckResponse = vatCheckDao.checkVatNumberApi(value);
|
||||||
vatCheckDao.checkVatNumber(value);
|
vatCheckDao.checkVatNumber(value, hubId);
|
||||||
// if (Boolean.FALSE.equals(CollectionUtils.isEmpty(vatCheckResponse))) {
|
// if (Boolean.FALSE.equals(CollectionUtils.isEmpty(vatCheckResponse))) {
|
||||||
// customData = vatCheckResponse;
|
// customData = vatCheckResponse;
|
||||||
// }
|
// }
|
||||||
|
|||||||
@@ -3,12 +3,17 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
import feign.FeignException;
|
import feign.FeignException;
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.entities.CompanyEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
import net.gepafin.tendermanagement.enums.VatCheckVersionTypeEnum;
|
import net.gepafin.tendermanagement.enums.VatCheckVersionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.response.VatCheckResponseBean;
|
import net.gepafin.tendermanagement.model.response.VatCheckResponseBean;
|
||||||
|
import net.gepafin.tendermanagement.repositories.CompanyRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.GlobalConfigRepository;
|
import net.gepafin.tendermanagement.repositories.GlobalConfigRepository;
|
||||||
import net.gepafin.tendermanagement.service.feignClient.VatCheckV1Service;
|
import net.gepafin.tendermanagement.service.feignClient.VatCheckV1Service;
|
||||||
import net.gepafin.tendermanagement.service.feignClient.VatCheckV2Service;
|
import net.gepafin.tendermanagement.service.feignClient.VatCheckV2Service;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
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.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -48,6 +53,9 @@ public class VatCheckDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private GlobalConfigRepository globalConfigRepository;
|
private GlobalConfigRepository globalConfigRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CompanyRepository companyRepository;
|
||||||
|
|
||||||
public final Logger log = LoggerFactory.getLogger(VatCheckDao.class);
|
public final Logger log = LoggerFactory.getLogger(VatCheckDao.class);
|
||||||
|
|
||||||
public VatCheckResponseBean checkVatNumberV1(String vatNumber) {
|
public VatCheckResponseBean checkVatNumberV1(String vatNumber) {
|
||||||
@@ -56,6 +64,7 @@ public class VatCheckDao {
|
|||||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||||
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
|
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
|
||||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||||
|
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V1);
|
||||||
return vatCheckResponseBean;
|
return vatCheckResponseBean;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -96,6 +105,7 @@ public class VatCheckDao {
|
|||||||
|
|
||||||
public static void processValidResponseV1(Map<String, Object> responseMap, VatCheckResponseBean vatCheckResponseBean) {
|
public static void processValidResponseV1(Map<String, Object> responseMap, VatCheckResponseBean vatCheckResponseBean) {
|
||||||
Object dataObj = responseMap.get("data");
|
Object dataObj = responseMap.get("data");
|
||||||
|
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V1);
|
||||||
if (dataObj instanceof Map<?, ?> rawDataMap) {
|
if (dataObj instanceof Map<?, ?> rawDataMap) {
|
||||||
Map<String, Object> responseBody = new LinkedHashMap<>();
|
Map<String, Object> responseBody = new LinkedHashMap<>();
|
||||||
rawDataMap.forEach((k, v) -> {
|
rawDataMap.forEach((k, v) -> {
|
||||||
@@ -118,9 +128,20 @@ public class VatCheckDao {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public VatCheckResponseBean checkVatNumber(String vatNumber) {
|
public VatCheckResponseBean checkVatNumber(String vatNumber, Long hubId) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
CompanyEntity company = companyRepository.findByVatNumberAndHubId(vatNumber, hubId);
|
||||||
|
|
||||||
|
if (company != null && Boolean.FALSE.equals(StringUtils.isEmpty(company.getJson()))) {
|
||||||
|
Map<String, Object> responseMap = Utils.convertJsonStringToMap(company.getJson());
|
||||||
|
|
||||||
|
VatCheckResponseBean jsonResponse = validateJsonFromDb(responseMap);
|
||||||
|
if (jsonResponse != null) {
|
||||||
|
return jsonResponse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String vatApiVersion = getVatCheckVersion();
|
String vatApiVersion = getVatCheckVersion();
|
||||||
if(!isVatCheckApiV2(vatApiVersion)){
|
if(!isVatCheckApiV2(vatApiVersion)){
|
||||||
return checkVatNumberV1(vatNumber);
|
return checkVatNumberV1(vatNumber);
|
||||||
@@ -134,6 +155,26 @@ public class VatCheckDao {
|
|||||||
return vatCheckResponseBean;
|
return vatCheckResponseBean;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private VatCheckResponseBean validateJsonFromDb(Map<String, Object> responseMap) {
|
||||||
|
if (responseMap == null || !responseMap.containsKey("data")) return null;
|
||||||
|
|
||||||
|
Object data = responseMap.get("data");
|
||||||
|
|
||||||
|
if (data instanceof Map<?, ?> dataMap && !dataMap.isEmpty()) {
|
||||||
|
VatCheckResponseBean response = new VatCheckResponseBean();
|
||||||
|
processValidResponseV1(responseMap, response);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data instanceof List<?> dataList && !dataList.isEmpty()) {
|
||||||
|
VatCheckResponseBean response = new VatCheckResponseBean();
|
||||||
|
processValidResponse(responseMap, response);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public VatCheckResponseBean checkVatNumberV2(String vatNumber) {
|
public VatCheckResponseBean checkVatNumberV2(String vatNumber) {
|
||||||
|
|
||||||
@@ -142,6 +183,7 @@ public class VatCheckDao {
|
|||||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||||
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
|
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
|
||||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||||
|
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V2);
|
||||||
return vatCheckResponseBean;
|
return vatCheckResponseBean;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@@ -175,6 +217,7 @@ public class VatCheckDao {
|
|||||||
|
|
||||||
public static void processValidResponse(Map<String, Object> responseMap, VatCheckResponseBean vatCheckResponseBean) {
|
public static void processValidResponse(Map<String, Object> responseMap, VatCheckResponseBean vatCheckResponseBean) {
|
||||||
|
|
||||||
|
vatCheckResponseBean.setVersion(VatCheckVersionTypeEnum.V2);
|
||||||
if (responseMap == null || !responseMap.containsKey("data")) {
|
if (responseMap == null || !responseMap.containsKey("data")) {
|
||||||
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package net.gepafin.tendermanagement.model.response;
|
package net.gepafin.tendermanagement.model.response;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import net.gepafin.tendermanagement.enums.VatCheckVersionTypeEnum;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -9,4 +11,5 @@ public class VatCheckResponseBean {
|
|||||||
private Boolean valid;
|
private Boolean valid;
|
||||||
private Map<String, Object> vatCheckResponse;
|
private Map<String, Object> vatCheckResponse;
|
||||||
private String message;
|
private String message;
|
||||||
|
private VatCheckVersionTypeEnum version;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,7 +83,9 @@ public class CompanyServiceImpl implements CompanyService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public VatCheckResponseBean checkVatNumber(HttpServletRequest request, String vatNumber) {
|
public VatCheckResponseBean checkVatNumber(HttpServletRequest request, String vatNumber) {
|
||||||
return vatCheckDao.checkVatNumber(vatNumber);
|
UserEntity userEntity = validator.validateUser(request);
|
||||||
|
Long hubId = userEntity.getHub().getId();
|
||||||
|
return vatCheckDao.checkVatNumber(vatNumber, hubId);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public CompanyEntity validateCompany(Long companyId) {
|
public CompanyEntity validateCompany(Long companyId) {
|
||||||
|
|||||||
Reference in New Issue
Block a user