Added json field in company
This commit is contained in:
@@ -305,5 +305,6 @@ public class GepafinConstant {
|
|||||||
public static final String USER_ID = "userId";
|
public static final String USER_ID = "userId";
|
||||||
public static final String LOGIN_ATTEMPT_ID = "loginAttemptId";
|
public static final String LOGIN_ATTEMPT_ID = "loginAttemptId";
|
||||||
public static final String USER_ACTION_ID = "userActionId";
|
public static final String USER_ACTION_ID = "userActionId";
|
||||||
|
public static final String VALID_VATNUMBER_MSG = "valid.vatnumber.message";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
@@ -78,6 +79,8 @@ public class CompanyDao {
|
|||||||
} else {
|
} else {
|
||||||
validateCompany(userEntity, companyRequest);
|
validateCompany(userEntity, companyRequest);
|
||||||
CompanyEntity companyEntity = convertCompanyRequestToCompanyEntity(userEntity, companyRequest);
|
CompanyEntity companyEntity = convertCompanyRequestToCompanyEntity(userEntity, companyRequest);
|
||||||
|
companyEntity.setJson(Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) );
|
||||||
|
|
||||||
CompanyEntity companyData = companyRepository.save(companyEntity);
|
CompanyEntity companyData = companyRepository.save(companyEntity);
|
||||||
|
|
||||||
/** This code is responsible for adding a version history log for "creating company" operation. **/
|
/** This code is responsible for adding a version history log for "creating company" operation. **/
|
||||||
@@ -178,7 +181,6 @@ public class CompanyDao {
|
|||||||
CompanyEntity oldCompanyData = Utils.getClonedEntityForData(companyEntity);
|
CompanyEntity oldCompanyData = Utils.getClonedEntityForData(companyEntity);
|
||||||
|
|
||||||
setIfUpdated(companyEntity::getCompanyName, companyEntity::setCompanyName, companyRequest.getCompanyName());
|
setIfUpdated(companyEntity::getCompanyName, companyEntity::setCompanyName, companyRequest.getCompanyName());
|
||||||
setIfUpdated(companyEntity::getVatNumber, companyEntity::setVatNumber, companyRequest.getVatNumber());
|
|
||||||
setIfUpdated(companyEntity::getCodiceFiscale, companyEntity::setCodiceFiscale, companyRequest.getCodiceFiscale());
|
setIfUpdated(companyEntity::getCodiceFiscale, companyEntity::setCodiceFiscale, companyRequest.getCodiceFiscale());
|
||||||
setIfUpdated(companyEntity::getAddress, companyEntity::setAddress, companyRequest.getAddress());
|
setIfUpdated(companyEntity::getAddress, companyEntity::setAddress, companyRequest.getAddress());
|
||||||
setIfUpdated(companyEntity::getPhoneNumber, companyEntity::setPhoneNumber, companyRequest.getPhoneNumber());
|
setIfUpdated(companyEntity::getPhoneNumber, companyEntity::setPhoneNumber, companyRequest.getPhoneNumber());
|
||||||
@@ -192,6 +194,17 @@ public class CompanyDao {
|
|||||||
setIfUpdated(companyEntity::getAnnualRevenue, companyEntity::setAnnualRevenue, companyRequest.getAnnualRevenue());
|
setIfUpdated(companyEntity::getAnnualRevenue, companyEntity::setAnnualRevenue, companyRequest.getAnnualRevenue());
|
||||||
setIfUpdated(companyEntity::getContactName, companyEntity::setContactName, companyRequest.getContactName());
|
setIfUpdated(companyEntity::getContactName, companyEntity::setContactName, companyRequest.getContactName());
|
||||||
setIfUpdated(companyEntity::getContactEmail, companyEntity::setContactEmail, companyRequest.getContactEmail());
|
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());
|
||||||
|
String responseJson = companyRequest.getVatCheckResponse() != null ? Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) : null;
|
||||||
|
setIfUpdated(companyEntity::getJson, companyEntity::setJson, responseJson);
|
||||||
|
|
||||||
|
}
|
||||||
companyRepository.save(companyEntity);
|
companyRepository.save(companyEntity);
|
||||||
|
|
||||||
/** This code is responsible for adding a version history log for the "Update company" operation. **/
|
/** This code is responsible for adding a version history log for the "Update company" operation. **/
|
||||||
|
|||||||
@@ -4,15 +4,11 @@ import feign.FeignException;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
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.enums.UserActionContextEnum;
|
import net.gepafin.tendermanagement.entities.CompanyEntity;
|
||||||
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
import net.gepafin.tendermanagement.model.response.VatCheckResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
|
||||||
import net.gepafin.tendermanagement.service.feignClient.VatCheckService;
|
import net.gepafin.tendermanagement.service.feignClient.VatCheckService;
|
||||||
import net.gepafin.tendermanagement.util.LoggingUtil;
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
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.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -49,10 +45,13 @@ public class VatCheckDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HttpServletRequest request;
|
private HttpServletRequest request;
|
||||||
|
|
||||||
public Map<String, Object> 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))) {
|
if (Boolean.TRUE.equals(Boolean.parseBoolean(isVatCheckGloballyDisabled))) {
|
||||||
return new HashMap<>();
|
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||||
|
return vatCheckResponseBean;
|
||||||
}
|
}
|
||||||
Map<String, Object> responseBody = new HashMap<>();
|
Map<String, Object> responseBody = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
@@ -77,22 +76,28 @@ public class VatCheckDao {
|
|||||||
responseBody.remove("id");
|
responseBody.remove("id");
|
||||||
Map<String, Object> data = new LinkedHashMap<>();
|
Map<String, Object> data = new LinkedHashMap<>();
|
||||||
data.put("data", responseBody);
|
data.put("data", responseBody);
|
||||||
return data;
|
vatCheckResponseBean.setValid(true);
|
||||||
|
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.VALID_VATNUMBER_MSG));
|
||||||
|
vatCheckResponseBean.setVatCheckResponse(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (FeignException ex) {
|
} catch (FeignException ex) {
|
||||||
log.error("Exception occurred while checking vat number: {0}", ex);
|
log.error("Exception occurred while checking vat number: {0}", ex);
|
||||||
Utils.callException(ex.status(), ex);
|
Utils.callException(ex.status(), ex);
|
||||||
}
|
}
|
||||||
return responseBody;
|
return vatCheckResponseBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Object> checkVatNumber(String vatNumber) {
|
public VatCheckResponseBean checkVatNumber(String vatNumber) {
|
||||||
try {
|
try {
|
||||||
return checkVatNumberApi(vatNumber);
|
return checkVatNumberApi(vatNumber);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
log.error("Error in checkVatNumber: {}", e.getMessage());
|
||||||
Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
VatCheckResponseBean vatCheckResponseBean = new VatCheckResponseBean();
|
||||||
|
vatCheckResponseBean.setValid(false);
|
||||||
|
vatCheckResponseBean.setMessage(Translator.toLocale(GepafinConstant.INVALID_VATNUMBER));
|
||||||
|
return vatCheckResponseBean;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,4 +63,7 @@ public class CompanyEntity extends BaseEntity{
|
|||||||
@JoinColumn(name = "HUB_ID")
|
@JoinColumn(name = "HUB_ID")
|
||||||
private HubEntity hub;
|
private HubEntity hub;
|
||||||
|
|
||||||
|
@Column(name = "JSON")
|
||||||
|
private String json;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.gepafin.tendermanagement.model.request;
|
package net.gepafin.tendermanagement.model.request;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@@ -23,4 +24,5 @@ public class CompanyRequest {
|
|||||||
private Boolean isLegalRepresentant;
|
private Boolean isLegalRepresentant;
|
||||||
private String contactName;
|
private String contactName;
|
||||||
private String contactEmail;
|
private String contactEmail;
|
||||||
|
private Map<String, Object> vatCheckResponse;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<String, Object> vatCheckResponse;
|
||||||
|
private String message;
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.model.response.VatCheckResponseBean;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
@@ -26,7 +27,7 @@ public interface CompanyService {
|
|||||||
|
|
||||||
List<CompanyResponse> getCompanyByUserId(HttpServletRequest request, Long userId);
|
List<CompanyResponse> getCompanyByUserId(HttpServletRequest request, Long userId);
|
||||||
|
|
||||||
Map<String, Object> checkVatNumber(HttpServletRequest request, String vatNumber);
|
VatCheckResponseBean checkVatNumber(HttpServletRequest request, String vatNumber);
|
||||||
|
|
||||||
CompanyEntity validateCompany(Long companyId);
|
CompanyEntity validateCompany(Long companyId);
|
||||||
|
|
||||||
@@ -44,5 +45,4 @@ public interface CompanyService {
|
|||||||
UserWithCompanyEntity getUserWithCompanyEntity(Long userId,Long companyId);
|
UserWithCompanyEntity getUserWithCompanyEntity(Long userId,Long companyId);
|
||||||
void removeCompanyFromList(HttpServletRequest request, Long companyId);
|
void removeCompanyFromList(HttpServletRequest request, Long companyId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.model.response.VatCheckResponseBean;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -78,7 +79,7 @@ public class CompanyServiceImpl implements CompanyService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public Map<String, Object> checkVatNumber(HttpServletRequest request, String vatNumber) {
|
public VatCheckResponseBean checkVatNumber(HttpServletRequest request, String vatNumber) {
|
||||||
return vatCheckDao.checkVatNumber(vatNumber);
|
return vatCheckDao.checkVatNumber(vatNumber);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package net.gepafin.tendermanagement.web.rest.api;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.model.response.VatCheckResponseBean;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
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 = {
|
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
||||||
@GetMapping(value = "/vatNumber", produces = { "application/json" })
|
@GetMapping(value = "/vatNumber", produces = { "application/json" })
|
||||||
ResponseEntity<Response<Map<String,Object>>> checkVatNumber(HttpServletRequest request,
|
ResponseEntity<Response<VatCheckResponseBean>> checkVatNumber(HttpServletRequest request,
|
||||||
@Parameter(description = "The vatNumber of company", required = true) @RequestParam("vatNumber") String vatNumber);
|
@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"),
|
@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 = {
|
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import java.util.Map;
|
|||||||
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
|
||||||
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
import net.gepafin.tendermanagement.model.request.UserActionRequest;
|
||||||
|
import net.gepafin.tendermanagement.model.response.VatCheckResponseBean;
|
||||||
import net.gepafin.tendermanagement.util.LoggingUtil;
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -111,15 +112,15 @@ public class CompanyApiController implements CompanyApi{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Map<String,Object>>> checkVatNumber(HttpServletRequest request, String vatNumber) {
|
public ResponseEntity<Response<VatCheckResponseBean>> checkVatNumber(HttpServletRequest request, String vatNumber) {
|
||||||
log.info("check VatNumber with: {}", vatNumber);
|
log.info("check VatNumber with: {}", vatNumber);
|
||||||
|
|
||||||
/** This code is responsible for creating user action logs for the "Check vat number" operation. **/
|
/** 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());
|
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW).actionContext(UserActionContextEnum.CHECK_COMPANY_VAT_NUMBER).build());
|
||||||
|
|
||||||
Map<String,Object> data = companyService.checkVatNumber(request, vatNumber);
|
VatCheckResponseBean vatCheckResponseBean = companyService.checkVatNumber(request, vatNumber);
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
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
|
@Override
|
||||||
|
|||||||
@@ -1962,4 +1962,10 @@
|
|||||||
</addColumn>
|
</addColumn>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="04-12-2024_2" author="Nisha Kashyap">
|
||||||
|
<addColumn tableName="company">
|
||||||
|
<column name="JSON" type="TEXT">
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
@@ -313,3 +313,4 @@ 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.
|
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.
|
application.cannot.approved.or.rejected=Application cannot be approved and rejected because amendment is active.
|
||||||
|
valid.vatnumber.message=The VAT number is valid.
|
||||||
|
|||||||
@@ -307,3 +307,4 @@ user.must.be.associated.with.company.to.create.application=Devi essere associato
|
|||||||
company.id.required.for.preferred.call=ID azienda obbligatorio quando si richiedono solo chiamate preferite.
|
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.
|
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.
|
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.
|
||||||
|
|||||||
Reference in New Issue
Block a user