|
|
|
|
@@ -67,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(
|
|
|
|
|
@@ -79,14 +79,12 @@ public class CompanyDao {
|
|
|
|
|
} else {
|
|
|
|
|
validateCompany(userEntity, companyRequest);
|
|
|
|
|
CompanyEntity companyEntity = convertCompanyRequestToCompanyEntity(userEntity, companyRequest);
|
|
|
|
|
companyEntity.setJson(Utils.convertMapIntoJsonString(companyRequest.getVatCheckResponse()) );
|
|
|
|
|
|
|
|
|
|
CompanyEntity companyData = companyRepository.save(companyEntity);
|
|
|
|
|
|
|
|
|
|
/** 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);
|
|
|
|
|
}
|
|
|
|
|
@@ -110,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) {
|
|
|
|
|
@@ -120,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. **/
|
|
|
|
|
@@ -138,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;
|
|
|
|
|
}
|
|
|
|
|
@@ -160,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) {
|
|
|
|
|
@@ -169,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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -188,12 +187,8 @@ 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());
|
|
|
|
|
@@ -201,8 +196,6 @@ public class CompanyDao {
|
|
|
|
|
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);
|
|
|
|
|
@@ -214,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. **/
|
|
|
|
|
@@ -267,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)));
|
|
|
|
|
@@ -290,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);
|
|
|
|
|
|