better display labels and less columns in tables (deliberately not yet in SepaMandate*)
This commit is contained in:
@ -4,6 +4,7 @@ import org.hostsharing.hsadminng.domain.Asset;
|
||||
import org.hostsharing.hsadminng.repository.AssetRepository;
|
||||
import org.hostsharing.hsadminng.service.dto.AssetDTO;
|
||||
import org.hostsharing.hsadminng.service.mapper.AssetMapper;
|
||||
import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.data.domain.Page;
|
||||
@ -23,11 +24,12 @@ public class AssetService implements IdToDtoResolver<AssetDTO> {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(AssetService.class);
|
||||
|
||||
private final EntityManager em;
|
||||
|
||||
private final AssetRepository assetRepository;
|
||||
|
||||
private final AssetMapper assetMapper;
|
||||
private final AssetValidator assetValidator;
|
||||
private final EntityManager em;
|
||||
|
||||
public AssetService(final EntityManager em, final AssetRepository assetRepository, final AssetMapper assetMapper, final AssetValidator assetValidator) {
|
||||
this.em = em;
|
||||
@ -86,6 +88,7 @@ public class AssetService implements IdToDtoResolver<AssetDTO> {
|
||||
*/
|
||||
public void delete(Long id) {
|
||||
log.debug("Request to delete Asset : {}", id);
|
||||
assetRepository.deleteById(id);
|
||||
|
||||
throw new BadRequestAlertException("Asset transactions are immutable", Asset.ENTITY_NAME, "assetTransactionImmutable");
|
||||
}
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
@ -23,15 +24,19 @@ public class MembershipService implements IdToDtoResolver<MembershipDTO> {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(MembershipService.class);
|
||||
|
||||
private final EntityManager em;
|
||||
|
||||
private final MembershipValidator membershipValidator;
|
||||
|
||||
private final MembershipRepository membershipRepository;
|
||||
|
||||
private final MembershipMapper membershipMapper;
|
||||
|
||||
public MembershipService(final MembershipValidator membershipValidator,
|
||||
public MembershipService(final EntityManager em,
|
||||
final MembershipValidator membershipValidator,
|
||||
final MembershipRepository membershipRepository,
|
||||
final MembershipMapper membershipMapper) {
|
||||
this.em = em;
|
||||
this.membershipValidator = membershipValidator;
|
||||
this.membershipRepository = membershipRepository;
|
||||
this.membershipMapper = membershipMapper;
|
||||
@ -50,6 +55,8 @@ public class MembershipService implements IdToDtoResolver<MembershipDTO> {
|
||||
|
||||
Membership membership = membershipMapper.toEntity(membershipDTO);
|
||||
membership = membershipRepository.save(membership);
|
||||
em.flush();
|
||||
em.refresh(membership);
|
||||
return membershipMapper.toDto(membership);
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,7 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
@ -23,13 +24,16 @@ public class ShareService implements IdToDtoResolver<ShareDTO> {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(ShareService.class);
|
||||
|
||||
private final EntityManager em;
|
||||
|
||||
private final ShareRepository shareRepository;
|
||||
|
||||
private final ShareMapper shareMapper;
|
||||
|
||||
private final ShareValidator shareValidator;
|
||||
|
||||
public ShareService(ShareRepository shareRepository, ShareMapper shareMapper, ShareValidator shareValidator) {
|
||||
public ShareService(final EntityManager em, final ShareRepository shareRepository, final ShareMapper shareMapper, final ShareValidator shareValidator) {
|
||||
this.em = em;
|
||||
this.shareRepository = shareRepository;
|
||||
this.shareMapper = shareMapper;
|
||||
this.shareValidator = shareValidator;
|
||||
@ -48,6 +52,8 @@ public class ShareService implements IdToDtoResolver<ShareDTO> {
|
||||
|
||||
Share share = shareMapper.toEntity(shareDTO);
|
||||
share = shareRepository.save(share);
|
||||
em.flush();
|
||||
em.refresh(share);
|
||||
return shareMapper.toDto(share);
|
||||
}
|
||||
|
||||
|
@ -47,8 +47,8 @@ public class AssetDTO implements Serializable, AccessMappings {
|
||||
@AccessFor(init = Role.ADMIN, update = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
|
||||
private Long membershipId;
|
||||
|
||||
@AccessFor(init = Role.ANYBODY, update = Role.ANYBODY, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
|
||||
private String membershipDisplayReference;
|
||||
@AccessFor(init=Role.ANYBODY, update = Role.ANYBODY, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
|
||||
private String membershipDisplayLabel;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
@ -106,12 +106,12 @@ public class AssetDTO implements Serializable, AccessMappings {
|
||||
this.membershipId = membershipId;
|
||||
}
|
||||
|
||||
public String getMembershipDisplayReference() {
|
||||
return membershipDisplayReference;
|
||||
public String getMembershipDisplayLabel() {
|
||||
return membershipDisplayLabel;
|
||||
}
|
||||
|
||||
public void setMembershipDisplayReference(String membershipDisplayReference) {
|
||||
this.membershipDisplayReference = membershipDisplayReference;
|
||||
public void setMembershipDisplayLabel(String membershipDisplayLabel) {
|
||||
this.membershipDisplayLabel = membershipDisplayLabel;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -145,7 +145,7 @@ public class AssetDTO implements Serializable, AccessMappings {
|
||||
", amount=" + getAmount() +
|
||||
", remark='" + getRemark() + "'" +
|
||||
", membership=" + getMembershipId() +
|
||||
", membership='" + getMembershipDisplayReference() + "'" +
|
||||
", membership='" + getMembershipDisplayLabel() + "'" +
|
||||
"}";
|
||||
}
|
||||
|
||||
|
@ -85,6 +85,9 @@ public class CustomerDTO extends FluentBuilder<CustomerDTO> implements AccessMap
|
||||
@AccessFor(init = Role.ADMIN, update = Role.SUPPORTER, read = Role.SUPPORTER)
|
||||
private String remark;
|
||||
|
||||
@AccessFor(init=Role.ANYBODY, update=Role.ANYBODY, read = Role.ANY_CUSTOMER_USER)
|
||||
private String displayLabel;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
@ -213,6 +216,14 @@ public class CustomerDTO extends FluentBuilder<CustomerDTO> implements AccessMap
|
||||
this.remark = remark;
|
||||
}
|
||||
|
||||
public String getDisplayLabel() {
|
||||
return displayLabel;
|
||||
}
|
||||
|
||||
public void setDisplayLabel(final String displayLabel) {
|
||||
this.displayLabel = displayLabel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
|
@ -46,8 +46,11 @@ public class MembershipDTO extends FluentBuilder<MembershipDTO> implements Seria
|
||||
@AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
|
||||
private String customerPrefix;
|
||||
|
||||
@AccessFor(read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
|
||||
private String membershipDisplayReference;
|
||||
@AccessFor(init = Role.ANYBODY, update = Role.ANYBODY, read = Role.FINANCIAL_CONTACT)
|
||||
private String displayLabel;
|
||||
|
||||
@AccessFor(init = Role.ANYBODY, update = Role.ANYBODY, read = Role.FINANCIAL_CONTACT)
|
||||
private String customerDisplayLabel;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
@ -113,12 +116,20 @@ public class MembershipDTO extends FluentBuilder<MembershipDTO> implements Seria
|
||||
this.customerPrefix = customerPrefix;
|
||||
}
|
||||
|
||||
private String getMembershipDisplayReference() {
|
||||
return membershipDisplayReference;
|
||||
public String getDisplayLabel() {
|
||||
return displayLabel;
|
||||
}
|
||||
|
||||
public void setMembershipDisplayReference(final String membershipDisplayReference) {
|
||||
this.membershipDisplayReference = membershipDisplayReference;
|
||||
public void setDisplayLabel(final String displayLabel) {
|
||||
this.displayLabel = displayLabel;
|
||||
}
|
||||
|
||||
public String getCustomerDisplayLabel() {
|
||||
return customerDisplayLabel;
|
||||
}
|
||||
|
||||
public void setCustomerDisplayLabel(final String customerDisplayLabel) {
|
||||
this.customerDisplayLabel = customerDisplayLabel;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -48,7 +48,7 @@ public class ShareDTO implements Serializable {
|
||||
private Long membershipId;
|
||||
|
||||
@AccessFor(read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
|
||||
private String membershipDisplayReference;
|
||||
private String membershipDisplayLabel;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
@ -106,12 +106,12 @@ public class ShareDTO implements Serializable {
|
||||
this.membershipId = membershipId;
|
||||
}
|
||||
|
||||
public String getMembershipDisplayReference() {
|
||||
return membershipDisplayReference;
|
||||
public String getMembershipDisplayLabel() {
|
||||
return membershipDisplayLabel;
|
||||
}
|
||||
|
||||
public void setMembershipDisplayReference(String membershipDisplayReference) {
|
||||
this.membershipDisplayReference = membershipDisplayReference;
|
||||
public void setMembershipDisplayLabel(String membershipDisplayLabel) {
|
||||
this.membershipDisplayLabel = membershipDisplayLabel;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -145,7 +145,7 @@ public class ShareDTO implements Serializable {
|
||||
", quantity=" + getQuantity() +
|
||||
", remark='" + getRemark() + "'" +
|
||||
", membership=" + getMembershipId() +
|
||||
", membership='" + getMembershipDisplayReference() + "'" +
|
||||
", membership='" + getMembershipDisplayLabel() + "'" +
|
||||
"}";
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +1,12 @@
|
||||
package org.hostsharing.hsadminng.service.mapper;
|
||||
|
||||
import org.hostsharing.hsadminng.domain.Asset;
|
||||
import org.hostsharing.hsadminng.domain.Customer;
|
||||
import org.hostsharing.hsadminng.domain.Membership;
|
||||
import org.hostsharing.hsadminng.service.dto.AssetDTO;
|
||||
import org.mapstruct.AfterMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.MappingTarget;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Mapper for the entity Asset and its DTO AssetDTO.
|
||||
*/
|
||||
@ -18,19 +14,12 @@ import java.util.Objects;
|
||||
public interface AssetMapper extends EntityMapper<AssetDTO, Asset> {
|
||||
|
||||
@Mapping(source = "membership.id", target = "membershipId")
|
||||
@Mapping(target = "membershipDisplayReference", ignore = true)
|
||||
@Mapping(target = "membershipDisplayLabel", ignore = true)
|
||||
AssetDTO toDto(Asset asset);
|
||||
|
||||
@AfterMapping
|
||||
default void setMembershipDisplayReference(final @MappingTarget AssetDTO dto, final Asset entity) {
|
||||
// TODO: rather use method extracted from MembershipMaper.setMembershipDisplayReference() to avoid duplicate code
|
||||
final Membership membership = entity.getMembership();
|
||||
final Customer customer = membership.getCustomer();
|
||||
dto.setMembershipDisplayReference(customer.getReference()
|
||||
+ ":" + customer.getPrefix()
|
||||
+ " [" + customer.getName() + "] "
|
||||
+ membership.getAdmissionDocumentDate().toString() + " - "
|
||||
+ Objects.toString(membership.getCancellationDocumentDate(), ""));
|
||||
default void setMembershipDisplayLabel(final @MappingTarget AssetDTO dto, final Asset entity) {
|
||||
dto.setMembershipDisplayLabel(MembershipMapper.displayLabel(entity.getMembership()));
|
||||
}
|
||||
|
||||
@Mapping(source = "membershipId", target = "membership")
|
||||
|
@ -1,9 +1,11 @@
|
||||
package org.hostsharing.hsadminng.service.mapper;
|
||||
|
||||
import org.hostsharing.hsadminng.domain.*;
|
||||
import org.hostsharing.hsadminng.domain.Customer;
|
||||
import org.hostsharing.hsadminng.service.dto.CustomerDTO;
|
||||
|
||||
import org.mapstruct.*;
|
||||
import org.mapstruct.AfterMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.MappingTarget;
|
||||
|
||||
/**
|
||||
* Mapper for the entity Customer and its DTO CustomerDTO.
|
||||
@ -11,6 +13,18 @@ import org.mapstruct.*;
|
||||
@Mapper(componentModel = "spring", uses = {})
|
||||
public interface CustomerMapper extends EntityMapper<CustomerDTO, Customer> {
|
||||
|
||||
static String displayLabel(Customer customer) {
|
||||
return customer.getName()
|
||||
+ " [" + customer.getReference() + ":" + customer.getPrefix() +"]";
|
||||
}
|
||||
|
||||
@Mapping(target = "displayLabel", ignore = true)
|
||||
CustomerDTO toDto(Customer customer);
|
||||
|
||||
@AfterMapping
|
||||
default void setDisplayLabel(final @MappingTarget CustomerDTO dto, final Customer entity) {
|
||||
dto.setDisplayLabel(displayLabel(entity));
|
||||
}
|
||||
|
||||
@Mapping(target = "memberships", ignore = true)
|
||||
@Mapping(target = "sepamandates", ignore = true)
|
||||
|
@ -16,21 +16,25 @@ import java.util.Objects;
|
||||
@Mapper(componentModel = "spring", uses = {CustomerMapper.class})
|
||||
public interface MembershipMapper extends EntityMapper<MembershipDTO, Membership> {
|
||||
|
||||
static String displayLabel(final Membership entity) {
|
||||
final Customer customer = entity.getCustomer();
|
||||
return CustomerMapper.displayLabel(customer) + " "
|
||||
+ Objects.toString(entity.getAdmissionDocumentDate(), "") + " - "
|
||||
+ Objects.toString(entity.getCancellationDocumentDate(), "...");
|
||||
}
|
||||
|
||||
@Mapping(source = "customer.id", target = "customerId")
|
||||
@Mapping(source = "customer.prefix", target = "customerPrefix")
|
||||
@Mapping(target = "membershipDisplayReference", ignore = true)
|
||||
@Mapping(target = "displayLabel", ignore = true)
|
||||
@Mapping(target = "customerDisplayLabel", ignore = true)
|
||||
MembershipDTO toDto(Membership membership);
|
||||
|
||||
// TODO BLOG HOWTO: multi-field display reference for selection lists
|
||||
// also change the filed in the option list in *-update.html
|
||||
@AfterMapping
|
||||
default void setMembershipDisplayReference(final @MappingTarget MembershipDTO dto, final Membership entity) {
|
||||
final Customer customer = entity.getCustomer();
|
||||
dto.setMembershipDisplayReference(customer.getReference()
|
||||
+ ":" + customer.getPrefix()
|
||||
+ " [" + customer.getName() + "] "
|
||||
+ Objects.toString(entity.getAdmissionDocumentDate()) + " - "
|
||||
+ Objects.toString(entity.getCancellationDocumentDate(), ""));
|
||||
default void setMembershipDisplayLabel(final @MappingTarget MembershipDTO dto, final Membership entity) {
|
||||
dto.setDisplayLabel(displayLabel(entity));
|
||||
dto.setCustomerDisplayLabel(CustomerMapper.displayLabel(entity.getCustomer()));
|
||||
}
|
||||
|
||||
@Mapping(target = "shares", ignore = true)
|
||||
|
@ -2,8 +2,10 @@ package org.hostsharing.hsadminng.service.mapper;
|
||||
|
||||
import org.hostsharing.hsadminng.domain.Share;
|
||||
import org.hostsharing.hsadminng.service.dto.ShareDTO;
|
||||
import org.mapstruct.AfterMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.MappingTarget;
|
||||
|
||||
/**
|
||||
* Mapper for the entity Share and its DTO ShareDTO.
|
||||
@ -12,9 +14,14 @@ import org.mapstruct.Mapping;
|
||||
public interface ShareMapper extends EntityMapper<ShareDTO, Share> {
|
||||
|
||||
@Mapping(source = "membership.id", target = "membershipId")
|
||||
@Mapping(source = "membership.admissionDocumentDate", target = "membershipDisplayReference")
|
||||
@Mapping(target = "membershipDisplayLabel", ignore = true)
|
||||
ShareDTO toDto(Share share);
|
||||
|
||||
@AfterMapping
|
||||
default void setMembershipDisplayLabel(final @MappingTarget ShareDTO dto, final Share entity) {
|
||||
dto.setMembershipDisplayLabel(MembershipMapper.displayLabel(entity.getMembership()));
|
||||
}
|
||||
|
||||
@Mapping(source = "membershipId", target = "membership")
|
||||
Share toEntity(ShareDTO shareDTO);
|
||||
|
||||
|
Reference in New Issue
Block a user