merging from master

This commit is contained in:
Michael Hoennig 2019-04-24 17:41:28 +02:00
commit fb961ca4a1
106 changed files with 3365 additions and 1136 deletions

View File

@ -46,10 +46,10 @@
"otherEntityRelationshipName": "asset", "otherEntityRelationshipName": "asset",
"relationshipValidateRules": "required", "relationshipValidateRules": "required",
"relationshipName": "membership", "relationshipName": "membership",
"otherEntityField": "documentDate" "otherEntityField": "admissionDocumentDate"
} }
], ],
"changelogDate": "20190418143053", "changelogDate": "20190424123258",
"entityTableName": "asset", "entityTableName": "asset",
"dto": "mapstruct", "dto": "mapstruct",
"pagination": "infinite-scroll", "pagination": "infinite-scroll",

View File

@ -34,6 +34,58 @@
], ],
"fieldValidateRulesMaxlength": 80 "fieldValidateRulesMaxlength": 80
}, },
{
"fieldName": "kind",
"fieldType": "CustomerKind",
"fieldValues": "NATURAL,LEGAL",
"fieldValidateRules": [
"required"
]
},
{
"fieldName": "birthDate",
"fieldType": "LocalDate"
},
{
"fieldName": "birthPlace",
"fieldType": "String",
"fieldValidateRules": [
"maxlength"
],
"fieldValidateRulesMaxlength": 80
},
{
"fieldName": "registrationCourt",
"fieldType": "String",
"fieldValidateRules": [
"maxlength"
],
"fieldValidateRulesMaxlength": 80
},
{
"fieldName": "registrationNumber",
"fieldType": "String",
"fieldValidateRules": [
"maxlength"
],
"fieldValidateRulesMaxlength": 80
},
{
"fieldName": "vatRegion",
"fieldType": "VatRegion",
"fieldValues": "DOMESTIC,EU,OTHER",
"fieldValidateRules": [
"required"
]
},
{
"fieldName": "vatNumber",
"fieldType": "String",
"fieldValidateRules": [
"maxlength"
],
"fieldValidateRulesMaxlength": 40
},
{ {
"fieldName": "contractualSalutation", "fieldName": "contractualSalutation",
"fieldType": "String", "fieldType": "String",
@ -90,7 +142,7 @@
"relationshipName": "sepamandate" "relationshipName": "sepamandate"
} }
], ],
"changelogDate": "20190418143050", "changelogDate": "20190424123255",
"entityTableName": "customer", "entityTableName": "customer",
"dto": "mapstruct", "dto": "mapstruct",
"pagination": "infinite-scroll", "pagination": "infinite-scroll",

View File

@ -2,21 +2,25 @@
"name": "Membership", "name": "Membership",
"fields": [ "fields": [
{ {
"fieldName": "documentDate", "fieldName": "admissionDocumentDate",
"fieldType": "LocalDate", "fieldType": "LocalDate",
"fieldValidateRules": [ "fieldValidateRules": [
"required" "required"
] ]
}, },
{ {
"fieldName": "memberFrom", "fieldName": "cancellationDocumentDate",
"fieldType": "LocalDate"
},
{
"fieldName": "memberFromDate",
"fieldType": "LocalDate", "fieldType": "LocalDate",
"fieldValidateRules": [ "fieldValidateRules": [
"required" "required"
] ]
}, },
{ {
"fieldName": "memberUntil", "fieldName": "memberUntilDate",
"fieldType": "LocalDate" "fieldType": "LocalDate"
}, },
{ {
@ -50,7 +54,7 @@
"otherEntityField": "prefix" "otherEntityField": "prefix"
} }
], ],
"changelogDate": "20190418143051", "changelogDate": "20190424123256",
"entityTableName": "membership", "entityTableName": "membership",
"dto": "mapstruct", "dto": "mapstruct",
"pagination": "infinite-scroll", "pagination": "infinite-scroll",

View File

@ -28,29 +28,29 @@
"fieldValidateRulesMaxlength": 11 "fieldValidateRulesMaxlength": 11
}, },
{ {
"fieldName": "documentDate", "fieldName": "grantingDocumentDate",
"fieldType": "LocalDate", "fieldType": "LocalDate",
"fieldValidateRules": [ "fieldValidateRules": [
"required" "required"
] ]
}, },
{ {
"fieldName": "validFrom", "fieldName": "revokationDocumentDate",
"fieldType": "LocalDate"
},
{
"fieldName": "validFromDate",
"fieldType": "LocalDate", "fieldType": "LocalDate",
"fieldValidateRules": [ "fieldValidateRules": [
"required" "required"
] ]
}, },
{ {
"fieldName": "validUntil", "fieldName": "validUntilDate",
"fieldType": "LocalDate" "fieldType": "LocalDate"
}, },
{ {
"fieldName": "lastUsed", "fieldName": "lastUsedDate",
"fieldType": "LocalDate"
},
{
"fieldName": "cancellationDate",
"fieldType": "LocalDate" "fieldType": "LocalDate"
}, },
{ {
@ -72,7 +72,7 @@
"otherEntityField": "prefix" "otherEntityField": "prefix"
} }
], ],
"changelogDate": "20190418143054", "changelogDate": "20190424123259",
"entityTableName": "sepa_mandate", "entityTableName": "sepa_mandate",
"dto": "mapstruct", "dto": "mapstruct",
"pagination": "infinite-scroll", "pagination": "infinite-scroll",

View File

@ -46,10 +46,10 @@
"otherEntityRelationshipName": "share", "otherEntityRelationshipName": "share",
"relationshipValidateRules": "required", "relationshipValidateRules": "required",
"relationshipName": "membership", "relationshipName": "membership",
"otherEntityField": "documentDate" "otherEntityField": "admissionDocumentDate"
} }
], ],
"changelogDate": "20190418143052", "changelogDate": "20190424123257",
"entityTableName": "share", "entityTableName": "share",
"dto": "mapstruct", "dto": "mapstruct",
"pagination": "infinite-scroll", "pagination": "infinite-scroll",

View File

@ -19,3 +19,12 @@ Either simply:
or with a specific port: or with a specific port:
SERVER_PORT=8081 ./gradlew bootRun SERVER_PORT=8081 ./gradlew bootRun
== Running JUnit tests with branch coverage
=== for IntelliJ IDEA
see: https://confluence.jetbrains.com/display/IDEADEV/IDEA+Coverage+Runner
Either apply it to specific test configurations or,
better, delete the previous test configurations and amend the JUnit template.

View File

@ -208,12 +208,29 @@ task cucumberTestReport(type: TestReport) {
pitest { pitest {
targetClasses = ['org.hostsharing.hsadminng.*'] targetClasses = ['org.hostsharing.hsadminng.*']
excludedClasses = [
// Unit Testing Spring configurations makes little sense in most cases.
'org.hostsharing.hsadminng.config.*',
'org.hostsharing.hsadminng.ApplicationWebXml',
'org.hostsharing.hsadminng.HsadminNgApp',
// Unit testing this would need PowerMock and
// blackbox testing of random values has little value.
'org.hostsharing.hsadminng.service.util.RandomUtil',
// The following are mostly generated classes,
// as soon as we amend these, consider removing the exclude.
'org.hostsharing.hsadminng.**Criteria',
'org.hostsharing.hsadminng.aop.logging.*',
'org.hostsharing.hsadminng.web.api.*' // API helpers, not the API itself
]
threads = 2 threads = 2
// Do not set these limit even lower, they are already pretty bad values! // Do not set these limit lower! 90% each might sound good, but keep in mind:
// 83%*78% means that only ~66% of the code is properly covered by automated tests. // 90%*90% means that ~81% of the code are properly covered by automated tests.
mutationThreshold = 78 mutationThreshold = 90
coverageThreshold = 83 coverageThreshold = 90
outputFormats = ['XML', 'HTML'] outputFormats = ['XML', 'HTML']
timestampedReports = false timestampedReports = false

View File

@ -2,17 +2,16 @@ package org.hostsharing.hsadminng.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.*; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Objects; import java.util.Objects;
import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
/** /**
* A Asset. * A Asset.
*/ */
@ -21,6 +20,8 @@ import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
public class Asset implements Serializable { public class Asset implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public static final String ENTITY_NAME = "asset";
@Id @Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
@ -48,8 +49,8 @@ public class Asset implements Serializable {
@Column(name = "remark", length = 160) @Column(name = "remark", length = 160)
private String remark; private String remark;
@NotNull
@ManyToOne(optional = false) @ManyToOne(optional = false)
@NotNull
@JsonIgnoreProperties("assets") @JsonIgnoreProperties("assets")
private Membership membership; private Membership membership;

View File

@ -1,9 +1,13 @@
package org.hostsharing.hsadminng.domain; package org.hostsharing.hsadminng.domain;
import org.hostsharing.hsadminng.domain.enumeration.CustomerKind;
import org.hostsharing.hsadminng.domain.enumeration.VatRegion;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate;
import java.util.HashSet; import java.util.HashSet;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
@ -39,6 +43,35 @@ public class Customer implements Serializable {
@Column(name = "name", length = 80, nullable = false) @Column(name = "name", length = 80, nullable = false)
private String name; private String name;
@NotNull
@Enumerated(EnumType.STRING)
@Column(name = "kind", nullable = false)
private CustomerKind kind;
@Column(name = "birth_date")
private LocalDate birthDate;
@Size(max = 80)
@Column(name = "birth_place", length = 80)
private String birthPlace;
@Size(max = 80)
@Column(name = "registration_court", length = 80)
private String registrationCourt;
@Size(max = 80)
@Column(name = "registration_number", length = 80)
private String registrationNumber;
@NotNull
@Enumerated(EnumType.STRING)
@Column(name = "vat_region", nullable = false)
private VatRegion vatRegion;
@Size(max = 40)
@Column(name = "vat_number", length = 40)
private String vatNumber;
@Size(max = 80) @Size(max = 80)
@Column(name = "contractual_salutation", length = 80) @Column(name = "contractual_salutation", length = 80)
private String contractualSalutation; private String contractualSalutation;
@ -120,6 +153,97 @@ public class Customer implements Serializable {
this.name = name; this.name = name;
} }
public CustomerKind getKind() {
return kind;
}
public Customer kind(CustomerKind kind) {
this.kind = kind;
return this;
}
public void setKind(CustomerKind kind) {
this.kind = kind;
}
public LocalDate getBirthDate() {
return birthDate;
}
public Customer birthDate(LocalDate birthDate) {
this.birthDate = birthDate;
return this;
}
public void setBirthDate(LocalDate birthDate) {
this.birthDate = birthDate;
}
public String getBirthPlace() {
return birthPlace;
}
public Customer birthPlace(String birthPlace) {
this.birthPlace = birthPlace;
return this;
}
public void setBirthPlace(String birthPlace) {
this.birthPlace = birthPlace;
}
public String getRegistrationCourt() {
return registrationCourt;
}
public Customer registrationCourt(String registrationCourt) {
this.registrationCourt = registrationCourt;
return this;
}
public void setRegistrationCourt(String registrationCourt) {
this.registrationCourt = registrationCourt;
}
public String getRegistrationNumber() {
return registrationNumber;
}
public Customer registrationNumber(String registrationNumber) {
this.registrationNumber = registrationNumber;
return this;
}
public void setRegistrationNumber(String registrationNumber) {
this.registrationNumber = registrationNumber;
}
public VatRegion getVatRegion() {
return vatRegion;
}
public Customer vatRegion(VatRegion vatRegion) {
this.vatRegion = vatRegion;
return this;
}
public void setVatRegion(VatRegion vatRegion) {
this.vatRegion = vatRegion;
}
public String getVatNumber() {
return vatNumber;
}
public Customer vatNumber(String vatNumber) {
this.vatNumber = vatNumber;
return this;
}
public void setVatNumber(String vatNumber) {
this.vatNumber = vatNumber;
}
public String getContractualSalutation() { public String getContractualSalutation() {
return contractualSalutation; return contractualSalutation;
} }
@ -264,6 +388,13 @@ public class Customer implements Serializable {
", reference=" + getReference() + ", reference=" + getReference() +
", prefix='" + getPrefix() + "'" + ", prefix='" + getPrefix() + "'" +
", name='" + getName() + "'" + ", name='" + getName() + "'" +
", kind='" + getKind() + "'" +
", birthDate='" + getBirthDate() + "'" +
", birthPlace='" + getBirthPlace() + "'" +
", registrationCourt='" + getRegistrationCourt() + "'" +
", registrationNumber='" + getRegistrationNumber() + "'" +
", vatRegion='" + getVatRegion() + "'" +
", vatNumber='" + getVatNumber() + "'" +
", contractualSalutation='" + getContractualSalutation() + "'" + ", contractualSalutation='" + getContractualSalutation() + "'" +
", contractualAddress='" + getContractualAddress() + "'" + ", contractualAddress='" + getContractualAddress() + "'" +
", billingSalutation='" + getBillingSalutation() + "'" + ", billingSalutation='" + getBillingSalutation() + "'" +

View File

@ -29,15 +29,18 @@ public class Membership implements Serializable {
private Long id; private Long id;
@NotNull @NotNull
@Column(name = "document_date", nullable = false) @Column(name = "admission_document_date", nullable = false)
private LocalDate documentDate; private LocalDate admissionDocumentDate;
@Column(name = "cancellation_document_date")
private LocalDate cancellationDocumentDate;
@NotNull @NotNull
@Column(name = "member_from", nullable = false) @Column(name = "member_from_date", nullable = false)
private LocalDate memberFrom; private LocalDate memberFromDate;
@Column(name = "member_until") @Column(name = "member_until_date")
private LocalDate memberUntil; private LocalDate memberUntilDate;
@Size(max = 160) @Size(max = 160)
@Column(name = "remark", length = 160) @Column(name = "remark", length = 160)
@ -69,43 +72,56 @@ public class Membership implements Serializable {
this.id = id; this.id = id;
} }
public LocalDate getDocumentDate() { public LocalDate getAdmissionDocumentDate() {
return documentDate; return admissionDocumentDate;
} }
public Membership documentDate(LocalDate documentDate) { public Membership admissionDocumentDate(LocalDate admissionDocumentDate) {
this.documentDate = documentDate; this.admissionDocumentDate = admissionDocumentDate;
return this; return this;
} }
public void setDocumentDate(LocalDate documentDate) { public void setAdmissionDocumentDate(LocalDate admissionDocumentDate) {
this.documentDate = documentDate; this.admissionDocumentDate = admissionDocumentDate;
} }
public LocalDate getMemberFrom() { public LocalDate getCancellationDocumentDate() {
return memberFrom; return cancellationDocumentDate;
} }
public Membership memberFrom(LocalDate memberFrom) { public Membership cancellationDocumentDate(LocalDate cancellationDocumentDate) {
this.memberFrom = memberFrom; this.cancellationDocumentDate = cancellationDocumentDate;
return this; return this;
} }
public void setMemberFrom(LocalDate memberFrom) { public void setCancellationDocumentDate(LocalDate cancellationDocumentDate) {
this.memberFrom = memberFrom; this.cancellationDocumentDate = cancellationDocumentDate;
} }
public LocalDate getMemberUntil() { public LocalDate getMemberFromDate() {
return memberUntil; return memberFromDate;
} }
public Membership memberUntil(LocalDate memberUntil) { public Membership memberFromDate(LocalDate memberFromDate) {
this.memberUntil = memberUntil; this.memberFromDate = memberFromDate;
return this; return this;
} }
public void setMemberUntil(LocalDate memberUntil) { public void setMemberFromDate(LocalDate memberFromDate) {
this.memberUntil = memberUntil; this.memberFromDate = memberFromDate;
}
public LocalDate getMemberUntilDate() {
return memberUntilDate;
}
public Membership memberUntilDate(LocalDate memberUntilDate) {
this.memberUntilDate = memberUntilDate;
return this;
}
public void setMemberUntilDate(LocalDate memberUntilDate) {
this.memberUntilDate = memberUntilDate;
} }
public String getRemark() { public String getRemark() {
@ -210,9 +226,10 @@ public class Membership implements Serializable {
public String toString() { public String toString() {
return "Membership{" + return "Membership{" +
"id=" + getId() + "id=" + getId() +
", documentDate='" + getDocumentDate() + "'" + ", admissionDocumentDate='" + getAdmissionDocumentDate() + "'" +
", memberFrom='" + getMemberFrom() + "'" + ", cancellationDocumentDate='" + getCancellationDocumentDate() + "'" +
", memberUntil='" + getMemberUntil() + "'" + ", memberFromDate='" + getMemberFromDate() + "'" +
", memberUntilDate='" + getMemberUntilDate() + "'" +
", remark='" + getRemark() + "'" + ", remark='" + getRemark() + "'" +
"}"; "}";
} }

View File

@ -4,8 +4,8 @@ package org.hostsharing.hsadminng.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.*; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Objects; import java.util.Objects;
@ -38,21 +38,21 @@ public class SepaMandate implements Serializable {
private String bic; private String bic;
@NotNull @NotNull
@Column(name = "document_date", nullable = false) @Column(name = "granting_document_date", nullable = false)
private LocalDate documentDate; private LocalDate grantingDocumentDate;
@Column(name = "revokation_document_date")
private LocalDate revokationDocumentDate;
@NotNull @NotNull
@Column(name = "valid_from", nullable = false) @Column(name = "valid_from_date", nullable = false)
private LocalDate validFrom; private LocalDate validFromDate;
@Column(name = "valid_until") @Column(name = "valid_until_date")
private LocalDate validUntil; private LocalDate validUntilDate;
@Column(name = "last_used") @Column(name = "last_used_date")
private LocalDate lastUsed; private LocalDate lastUsedDate;
@Column(name = "cancellation_date")
private LocalDate cancellationDate;
@Size(max = 160) @Size(max = 160)
@Column(name = "remark", length = 160) @Column(name = "remark", length = 160)
@ -111,69 +111,69 @@ public class SepaMandate implements Serializable {
this.bic = bic; this.bic = bic;
} }
public LocalDate getDocumentDate() { public LocalDate getGrantingDocumentDate() {
return documentDate; return grantingDocumentDate;
} }
public SepaMandate documentDate(LocalDate documentDate) { public SepaMandate grantingDocumentDate(LocalDate grantingDocumentDate) {
this.documentDate = documentDate; this.grantingDocumentDate = grantingDocumentDate;
return this; return this;
} }
public void setDocumentDate(LocalDate documentDate) { public void setGrantingDocumentDate(LocalDate grantingDocumentDate) {
this.documentDate = documentDate; this.grantingDocumentDate = grantingDocumentDate;
} }
public LocalDate getValidFrom() { public LocalDate getRevokationDocumentDate() {
return validFrom; return revokationDocumentDate;
} }
public SepaMandate validFrom(LocalDate validFrom) { public SepaMandate revokationDocumentDate(LocalDate revokationDocumentDate) {
this.validFrom = validFrom; this.revokationDocumentDate = revokationDocumentDate;
return this; return this;
} }
public void setValidFrom(LocalDate validFrom) { public void setRevokationDocumentDate(LocalDate revokationDocumentDate) {
this.validFrom = validFrom; this.revokationDocumentDate = revokationDocumentDate;
} }
public LocalDate getValidUntil() { public LocalDate getValidFromDate() {
return validUntil; return validFromDate;
} }
public SepaMandate validUntil(LocalDate validUntil) { public SepaMandate validFromDate(LocalDate validFromDate) {
this.validUntil = validUntil; this.validFromDate = validFromDate;
return this; return this;
} }
public void setValidUntil(LocalDate validUntil) { public void setValidFromDate(LocalDate validFromDate) {
this.validUntil = validUntil; this.validFromDate = validFromDate;
} }
public LocalDate getLastUsed() { public LocalDate getValidUntilDate() {
return lastUsed; return validUntilDate;
} }
public SepaMandate lastUsed(LocalDate lastUsed) { public SepaMandate validUntilDate(LocalDate validUntilDate) {
this.lastUsed = lastUsed; this.validUntilDate = validUntilDate;
return this; return this;
} }
public void setLastUsed(LocalDate lastUsed) { public void setValidUntilDate(LocalDate validUntilDate) {
this.lastUsed = lastUsed; this.validUntilDate = validUntilDate;
} }
public LocalDate getCancellationDate() { public LocalDate getLastUsedDate() {
return cancellationDate; return lastUsedDate;
} }
public SepaMandate cancellationDate(LocalDate cancellationDate) { public SepaMandate lastUsedDate(LocalDate lastUsedDate) {
this.cancellationDate = cancellationDate; this.lastUsedDate = lastUsedDate;
return this; return this;
} }
public void setCancellationDate(LocalDate cancellationDate) { public void setLastUsedDate(LocalDate lastUsedDate) {
this.cancellationDate = cancellationDate; this.lastUsedDate = lastUsedDate;
} }
public String getRemark() { public String getRemark() {
@ -230,11 +230,11 @@ public class SepaMandate implements Serializable {
", reference='" + getReference() + "'" + ", reference='" + getReference() + "'" +
", iban='" + getIban() + "'" + ", iban='" + getIban() + "'" +
", bic='" + getBic() + "'" + ", bic='" + getBic() + "'" +
", documentDate='" + getDocumentDate() + "'" + ", grantingDocumentDate='" + getGrantingDocumentDate() + "'" +
", validFrom='" + getValidFrom() + "'" + ", revokationDocumentDate='" + getRevokationDocumentDate() + "'" +
", validUntil='" + getValidUntil() + "'" + ", validFromDate='" + getValidFromDate() + "'" +
", lastUsed='" + getLastUsed() + "'" + ", validUntilDate='" + getValidUntilDate() + "'" +
", cancellationDate='" + getCancellationDate() + "'" + ", lastUsedDate='" + getLastUsedDate() + "'" +
", remark='" + getRemark() + "'" + ", remark='" + getRemark() + "'" +
"}"; "}";
} }

View File

@ -2,16 +2,15 @@ package org.hostsharing.hsadminng.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.hostsharing.hsadminng.domain.enumeration.ShareAction;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.*; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.Objects; import java.util.Objects;
import org.hostsharing.hsadminng.domain.enumeration.ShareAction;
/** /**
* A Share. * A Share.
*/ */
@ -49,8 +48,8 @@ public class Share implements Serializable {
@Column(name = "remark", length = 160) @Column(name = "remark", length = 160)
private String remark; private String remark;
@NotNull
@ManyToOne(optional = false) @ManyToOne(optional = false)
@NotNull
@JsonIgnoreProperties("shares") @JsonIgnoreProperties("shares")
private Membership membership; private Membership membership;

View File

@ -0,0 +1,8 @@
package org.hostsharing.hsadminng.domain.enumeration;
/**
* The CustomerKind enumeration.
*/
public enum CustomerKind {
NATURAL, LEGAL
}

View File

@ -0,0 +1,8 @@
package org.hostsharing.hsadminng.domain.enumeration;
/**
* The VatRegion enumeration.
*/
public enum VatRegion {
DOMESTIC, EU, OTHER
}

View File

@ -16,6 +16,6 @@ import org.springframework.stereotype.Repository;
public interface MembershipRepository extends JpaRepository<Membership, Long>, JpaSpecificationExecutor<Membership> { public interface MembershipRepository extends JpaRepository<Membership, Long>, JpaSpecificationExecutor<Membership> {
@Query("SELECT CASE WHEN COUNT(m)> 0 THEN TRUE ELSE FALSE END " + @Query("SELECT CASE WHEN COUNT(m)> 0 THEN TRUE ELSE FALSE END " +
" FROM Membership m WHERE m.customer.id=:customerId AND m.memberUntil IS NULL") " FROM Membership m WHERE m.customer.id=:customerId AND m.memberUntilDate IS NULL")
boolean hasUncancelledMembershipForCustomer(@Param("customerId") final long customerId); boolean hasUncancelledMembershipForCustomer(@Param("customerId") final long customerId);
} }

View File

@ -6,7 +6,6 @@ import org.hostsharing.hsadminng.service.dto.AssetDTO;
import org.hostsharing.hsadminng.service.mapper.AssetMapper; import org.hostsharing.hsadminng.service.mapper.AssetMapper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -26,10 +25,12 @@ public class AssetService {
private final AssetRepository assetRepository; private final AssetRepository assetRepository;
private final AssetMapper assetMapper; private final AssetMapper assetMapper;
private final AssetValidator assetValidator;
public AssetService(AssetRepository assetRepository, AssetMapper assetMapper) { public AssetService(AssetRepository assetRepository, AssetMapper assetMapper, AssetValidator assetValidator ) {
this.assetRepository = assetRepository; this.assetRepository = assetRepository;
this.assetMapper = assetMapper; this.assetMapper = assetMapper;
this.assetValidator = assetValidator;
} }
/** /**
@ -40,6 +41,7 @@ public class AssetService {
*/ */
public AssetDTO save(AssetDTO assetDTO) { public AssetDTO save(AssetDTO assetDTO) {
log.debug("Request to save Asset : {}", assetDTO); log.debug("Request to save Asset : {}", assetDTO);
assetValidator.validate(assetDTO);
Asset asset = assetMapper.toEntity(assetDTO); Asset asset = assetMapper.toEntity(assetDTO);
asset = assetRepository.save(asset); asset = assetRepository.save(asset);
return assetMapper.toDto(asset); return assetMapper.toDto(asset);

View File

@ -0,0 +1,43 @@
package org.hostsharing.hsadminng.service;
import org.hostsharing.hsadminng.domain.Asset;
import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
import org.hostsharing.hsadminng.service.dto.AssetDTO;
import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@Service
public class AssetValidator {
public void validate(final AssetDTO assetDTO) {
if (assetDTO.getId() != null) {
throw new BadRequestAlertException("Asset transactions are immutable", Asset.ENTITY_NAME, "assetTransactionImmutable");
}
if (assetDTO.getDocumentDate().isAfter(assetDTO.getValueDate())) {
throw new BadRequestAlertException("Document date may not be after value date", Asset.ENTITY_NAME, "documentDateMayNotBeAfterValueDate");
}
if ((assetDTO.getAction() == AssetAction.PAYMENT) && (assetDTO.getAmount().compareTo(BigDecimal.valueOf(0)) <= 0)) {
throw new BadRequestAlertException("Asset payments require a positive amount", Asset.ENTITY_NAME, "assetPaymentsPositiveAmount");
}
if ((assetDTO.getAction() == AssetAction.ADOPTION) && (assetDTO.getAmount().compareTo(BigDecimal.valueOf(0)) <= 0)) {
throw new BadRequestAlertException("Asset adoptions require a positive amount", Asset.ENTITY_NAME, "assetAdoptionsPositiveAmount");
}
if ((assetDTO.getAction() == AssetAction.PAYBACK) && (assetDTO.getAmount().compareTo(BigDecimal.valueOf(0)) >= 0)) {
throw new BadRequestAlertException("Asset paybacks require a negative amount", Asset.ENTITY_NAME, "assetPaybacksNegativeAmount");
}
if ((assetDTO.getAction() == AssetAction.HANDOVER) && (assetDTO.getAmount().compareTo(BigDecimal.valueOf(0)) >= 0)) {
throw new BadRequestAlertException("Asset handovers require a negative amount", Asset.ENTITY_NAME, "assetHandoversNegativeAmount");
}
if ((assetDTO.getAction() == AssetAction.LOSS) && (assetDTO.getAmount().compareTo(BigDecimal.valueOf(0)) >= 0)) {
throw new BadRequestAlertException("Asset losses require a negative amount", Asset.ENTITY_NAME, "assetLossesNegativeAmount");
}
if ((assetDTO.getAction() == AssetAction.CLEARING) && (assetDTO.getAmount().compareTo(BigDecimal.valueOf(0)) >= 0)) {
throw new BadRequestAlertException("Asset clearings require a negative amount", Asset.ENTITY_NAME, "assetClearingsNegativeAmount");
}
}
}

View File

@ -1,9 +1,14 @@
package org.hostsharing.hsadminng.service; package org.hostsharing.hsadminng.service;
import java.util.List; import io.github.jhipster.service.QueryService;
import org.hostsharing.hsadminng.domain.Customer;
import javax.persistence.criteria.JoinType; import org.hostsharing.hsadminng.domain.Customer_;
import org.hostsharing.hsadminng.domain.Membership_;
import org.hostsharing.hsadminng.domain.SepaMandate_;
import org.hostsharing.hsadminng.repository.CustomerRepository;
import org.hostsharing.hsadminng.service.dto.CustomerCriteria;
import org.hostsharing.hsadminng.service.dto.CustomerDTO;
import org.hostsharing.hsadminng.service.mapper.CustomerMapper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@ -12,14 +17,8 @@ import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import io.github.jhipster.service.QueryService; import javax.persistence.criteria.JoinType;
import java.util.List;
import org.hostsharing.hsadminng.domain.Customer;
import org.hostsharing.hsadminng.domain.*; // for static metamodels
import org.hostsharing.hsadminng.repository.CustomerRepository;
import org.hostsharing.hsadminng.service.dto.CustomerCriteria;
import org.hostsharing.hsadminng.service.dto.CustomerDTO;
import org.hostsharing.hsadminng.service.mapper.CustomerMapper;
/** /**
* Service for executing complex queries for Customer entities in the database. * Service for executing complex queries for Customer entities in the database.
@ -98,6 +97,27 @@ public class CustomerQueryService extends QueryService<Customer> {
if (criteria.getName() != null) { if (criteria.getName() != null) {
specification = specification.and(buildStringSpecification(criteria.getName(), Customer_.name)); specification = specification.and(buildStringSpecification(criteria.getName(), Customer_.name));
} }
if (criteria.getKind() != null) {
specification = specification.and(buildSpecification(criteria.getKind(), Customer_.kind));
}
if (criteria.getBirthDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getBirthDate(), Customer_.birthDate));
}
if (criteria.getBirthPlace() != null) {
specification = specification.and(buildStringSpecification(criteria.getBirthPlace(), Customer_.birthPlace));
}
if (criteria.getRegistrationCourt() != null) {
specification = specification.and(buildStringSpecification(criteria.getRegistrationCourt(), Customer_.registrationCourt));
}
if (criteria.getRegistrationNumber() != null) {
specification = specification.and(buildStringSpecification(criteria.getRegistrationNumber(), Customer_.registrationNumber));
}
if (criteria.getVatRegion() != null) {
specification = specification.and(buildSpecification(criteria.getVatRegion(), Customer_.vatRegion));
}
if (criteria.getVatNumber() != null) {
specification = specification.and(buildStringSpecification(criteria.getVatNumber(), Customer_.vatNumber));
}
if (criteria.getContractualSalutation() != null) { if (criteria.getContractualSalutation() != null) {
specification = specification.and(buildStringSpecification(criteria.getContractualSalutation(), Customer_.contractualSalutation)); specification = specification.and(buildStringSpecification(criteria.getContractualSalutation(), Customer_.contractualSalutation));
} }

View File

@ -1,9 +1,11 @@
package org.hostsharing.hsadminng.service; package org.hostsharing.hsadminng.service;
import java.util.List; import io.github.jhipster.service.QueryService;
import org.hostsharing.hsadminng.domain.*;
import javax.persistence.criteria.JoinType; import org.hostsharing.hsadminng.repository.MembershipRepository;
import org.hostsharing.hsadminng.service.dto.MembershipCriteria;
import org.hostsharing.hsadminng.service.dto.MembershipDTO;
import org.hostsharing.hsadminng.service.mapper.MembershipMapper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@ -12,14 +14,8 @@ import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import io.github.jhipster.service.QueryService; import javax.persistence.criteria.JoinType;
import java.util.List;
import org.hostsharing.hsadminng.domain.Membership;
import org.hostsharing.hsadminng.domain.*; // for static metamodels
import org.hostsharing.hsadminng.repository.MembershipRepository;
import org.hostsharing.hsadminng.service.dto.MembershipCriteria;
import org.hostsharing.hsadminng.service.dto.MembershipDTO;
import org.hostsharing.hsadminng.service.mapper.MembershipMapper;
/** /**
* Service for executing complex queries for Membership entities in the database. * Service for executing complex queries for Membership entities in the database.
@ -89,14 +85,17 @@ public class MembershipQueryService extends QueryService<Membership> {
if (criteria.getId() != null) { if (criteria.getId() != null) {
specification = specification.and(buildSpecification(criteria.getId(), Membership_.id)); specification = specification.and(buildSpecification(criteria.getId(), Membership_.id));
} }
if (criteria.getDocumentDate() != null) { if (criteria.getAdmissionDocumentDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getDocumentDate(), Membership_.documentDate)); specification = specification.and(buildRangeSpecification(criteria.getAdmissionDocumentDate(), Membership_.admissionDocumentDate));
} }
if (criteria.getMemberFrom() != null) { if (criteria.getCancellationDocumentDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getMemberFrom(), Membership_.memberFrom)); specification = specification.and(buildRangeSpecification(criteria.getCancellationDocumentDate(), Membership_.cancellationDocumentDate));
} }
if (criteria.getMemberUntil() != null) { if (criteria.getMemberFromDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getMemberUntil(), Membership_.memberUntil)); specification = specification.and(buildRangeSpecification(criteria.getMemberFromDate(), Membership_.memberFromDate));
}
if (criteria.getMemberUntilDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getMemberUntilDate(), Membership_.memberUntilDate));
} }
if (criteria.getRemark() != null) { if (criteria.getRemark() != null) {
specification = specification.and(buildStringSpecification(criteria.getRemark(), Membership_.remark)); specification = specification.and(buildStringSpecification(criteria.getRemark(), Membership_.remark));

View File

@ -14,7 +14,7 @@ public class MembershipValidator {
private MembershipRepository membershipRepository; private MembershipRepository membershipRepository;
public void validate(final MembershipDTO membershipDTO) { public void validate(final MembershipDTO membershipDTO) {
if (membershipDTO.getMemberUntil() != null && !membershipDTO.getMemberUntil().isAfter(membershipDTO.getMemberFrom())) { if (membershipDTO.getMemberUntilDate() != null && !membershipDTO.getMemberUntilDate().isAfter(membershipDTO.getMemberFromDate())) {
throw new BadRequestAlertException("Invalid untilDate", Membership.ENTITY_NAME, "untilDateMustBeAfterSinceDate"); throw new BadRequestAlertException("Invalid untilDate", Membership.ENTITY_NAME, "untilDateMustBeAfterSinceDate");
} }

View File

@ -1,9 +1,13 @@
package org.hostsharing.hsadminng.service; package org.hostsharing.hsadminng.service;
import java.util.List; import io.github.jhipster.service.QueryService;
import org.hostsharing.hsadminng.domain.Customer_;
import javax.persistence.criteria.JoinType; import org.hostsharing.hsadminng.domain.SepaMandate;
import org.hostsharing.hsadminng.domain.SepaMandate_;
import org.hostsharing.hsadminng.repository.SepaMandateRepository;
import org.hostsharing.hsadminng.service.dto.SepaMandateCriteria;
import org.hostsharing.hsadminng.service.dto.SepaMandateDTO;
import org.hostsharing.hsadminng.service.mapper.SepaMandateMapper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@ -12,14 +16,8 @@ import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import io.github.jhipster.service.QueryService; import javax.persistence.criteria.JoinType;
import java.util.List;
import org.hostsharing.hsadminng.domain.SepaMandate;
import org.hostsharing.hsadminng.domain.*; // for static metamodels
import org.hostsharing.hsadminng.repository.SepaMandateRepository;
import org.hostsharing.hsadminng.service.dto.SepaMandateCriteria;
import org.hostsharing.hsadminng.service.dto.SepaMandateDTO;
import org.hostsharing.hsadminng.service.mapper.SepaMandateMapper;
/** /**
* Service for executing complex queries for SepaMandate entities in the database. * Service for executing complex queries for SepaMandate entities in the database.
@ -98,20 +96,20 @@ public class SepaMandateQueryService extends QueryService<SepaMandate> {
if (criteria.getBic() != null) { if (criteria.getBic() != null) {
specification = specification.and(buildStringSpecification(criteria.getBic(), SepaMandate_.bic)); specification = specification.and(buildStringSpecification(criteria.getBic(), SepaMandate_.bic));
} }
if (criteria.getDocumentDate() != null) { if (criteria.getGrantingDocumentDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getDocumentDate(), SepaMandate_.documentDate)); specification = specification.and(buildRangeSpecification(criteria.getGrantingDocumentDate(), SepaMandate_.grantingDocumentDate));
} }
if (criteria.getValidFrom() != null) { if (criteria.getRevokationDocumentDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getValidFrom(), SepaMandate_.validFrom)); specification = specification.and(buildRangeSpecification(criteria.getRevokationDocumentDate(), SepaMandate_.revokationDocumentDate));
} }
if (criteria.getValidUntil() != null) { if (criteria.getValidFromDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getValidUntil(), SepaMandate_.validUntil)); specification = specification.and(buildRangeSpecification(criteria.getValidFromDate(), SepaMandate_.validFromDate));
} }
if (criteria.getLastUsed() != null) { if (criteria.getValidUntilDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getLastUsed(), SepaMandate_.lastUsed)); specification = specification.and(buildRangeSpecification(criteria.getValidUntilDate(), SepaMandate_.validUntilDate));
} }
if (criteria.getCancellationDate() != null) { if (criteria.getLastUsedDate() != null) {
specification = specification.and(buildRangeSpecification(criteria.getCancellationDate(), SepaMandate_.cancellationDate)); specification = specification.and(buildRangeSpecification(criteria.getLastUsedDate(), SepaMandate_.lastUsedDate));
} }
if (criteria.getRemark() != null) { if (criteria.getRemark() != null) {
specification = specification.and(buildStringSpecification(criteria.getRemark(), SepaMandate_.remark)); specification = specification.and(buildStringSpecification(criteria.getRemark(), SepaMandate_.remark));

View File

@ -1,7 +1,6 @@
package org.hostsharing.hsadminng.service; package org.hostsharing.hsadminng.service;
import org.hostsharing.hsadminng.domain.Share; import org.hostsharing.hsadminng.domain.Share;
import org.hostsharing.hsadminng.domain.enumeration.ShareAction;
import org.hostsharing.hsadminng.repository.ShareRepository; import org.hostsharing.hsadminng.repository.ShareRepository;
import org.hostsharing.hsadminng.service.dto.ShareDTO; import org.hostsharing.hsadminng.service.dto.ShareDTO;
import org.hostsharing.hsadminng.service.mapper.ShareMapper; import org.hostsharing.hsadminng.service.mapper.ShareMapper;
@ -28,9 +27,12 @@ public class ShareService {
private final ShareMapper shareMapper; private final ShareMapper shareMapper;
public ShareService(ShareRepository shareRepository, ShareMapper shareMapper) { private final ShareValidator shareValidator;
public ShareService(ShareRepository shareRepository, ShareMapper shareMapper, ShareValidator shareValidator) {
this.shareRepository = shareRepository; this.shareRepository = shareRepository;
this.shareMapper = shareMapper; this.shareMapper = shareMapper;
this.shareValidator = shareValidator;
} }
/** /**
@ -42,16 +44,8 @@ public class ShareService {
public ShareDTO save(ShareDTO shareDTO) { public ShareDTO save(ShareDTO shareDTO) {
log.debug("Request to save Share : {}", shareDTO); log.debug("Request to save Share : {}", shareDTO);
if (shareDTO.getId() != null) { shareValidator.validate(shareDTO);
throw new BadRequestAlertException("Share transactions are immutable", Share.ENTITY_NAME, "shareTransactionImmutable");
}
if((shareDTO.getAction() == ShareAction.SUBSCRIPTION) && (shareDTO.getQuantity() <= 0)) {
throw new BadRequestAlertException("Share subscriptions require a positive quantity", Share.ENTITY_NAME, "shareSubscriptionPositivQuantity");
}
if((shareDTO.getAction() == ShareAction.CANCELLATION) && (shareDTO.getQuantity() >= 0)) {
throw new BadRequestAlertException("Share cancellations require a negative quantity", Share.ENTITY_NAME, "shareCancellationNegativeQuantity");
}
Share share = shareMapper.toEntity(shareDTO); Share share = shareMapper.toEntity(shareDTO);
share = shareRepository.save(share); share = shareRepository.save(share);
return shareMapper.toDto(share); return shareMapper.toDto(share);

View File

@ -0,0 +1,30 @@
package org.hostsharing.hsadminng.service;
import org.hostsharing.hsadminng.domain.Share;
import org.hostsharing.hsadminng.domain.enumeration.ShareAction;
import org.hostsharing.hsadminng.service.dto.ShareDTO;
import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException;
import org.springframework.stereotype.Service;
@Service
public class ShareValidator {
public void validate(final ShareDTO shareDTO) {
if (shareDTO.getId() != null) {
throw new BadRequestAlertException("Share transactions are immutable", Share.ENTITY_NAME, "shareTransactionImmutable");
}
if (shareDTO.getDocumentDate().isAfter(shareDTO.getValueDate())) {
throw new BadRequestAlertException("Document date may not be after value date", Share.ENTITY_NAME, "documentDateMayNotBeAfterValueDate");
}
if ((shareDTO.getAction() == ShareAction.SUBSCRIPTION) && (shareDTO.getQuantity() <= 0)) {
throw new BadRequestAlertException("Share subscriptions require a positive quantity", Share.ENTITY_NAME, "shareSubscriptionPositiveQuantity");
}
if ((shareDTO.getAction() == ShareAction.CANCELLATION) && (shareDTO.getQuantity() >= 0)) {
throw new BadRequestAlertException("Share cancellations require a negative quantity", Share.ENTITY_NAME, "shareCancellationNegativeQuantity");
}
}
}

View File

@ -1,10 +1,13 @@
package org.hostsharing.hsadminng.service.dto; package org.hostsharing.hsadminng.service.dto;
import java.time.LocalDate;
import javax.validation.constraints.*; import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Objects; import java.util.Objects;
import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
/** /**
* A DTO for the Asset entity. * A DTO for the Asset entity.
@ -31,7 +34,7 @@ public class AssetDTO implements Serializable {
private Long membershipId; private Long membershipId;
private String membershipDocumentDate; private String membershipAdmissionDocumentDate;
public Long getId() { public Long getId() {
return id; return id;
@ -89,12 +92,12 @@ public class AssetDTO implements Serializable {
this.membershipId = membershipId; this.membershipId = membershipId;
} }
public String getMembershipDocumentDate() { public String getMembershipAdmissionDocumentDate() {
return membershipDocumentDate; return membershipAdmissionDocumentDate;
} }
public void setMembershipDocumentDate(String membershipDocumentDate) { public void setMembershipAdmissionDocumentDate(String membershipAdmissionDocumentDate) {
this.membershipDocumentDate = membershipDocumentDate; this.membershipAdmissionDocumentDate = membershipAdmissionDocumentDate;
} }
@Override @Override
@ -128,7 +131,7 @@ public class AssetDTO implements Serializable {
", amount=" + getAmount() + ", amount=" + getAmount() +
", remark='" + getRemark() + "'" + ", remark='" + getRemark() + "'" +
", membership=" + getMembershipId() + ", membership=" + getMembershipId() +
", membership='" + getMembershipDocumentDate() + "'" + ", membership='" + getMembershipAdmissionDocumentDate() + "'" +
"}"; "}";
} }
} }

View File

@ -1,14 +1,11 @@
package org.hostsharing.hsadminng.service.dto; package org.hostsharing.hsadminng.service.dto;
import io.github.jhipster.service.filter.*;
import org.hostsharing.hsadminng.domain.enumeration.CustomerKind;
import org.hostsharing.hsadminng.domain.enumeration.VatRegion;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects; import java.util.Objects;
import io.github.jhipster.service.filter.BooleanFilter;
import io.github.jhipster.service.filter.DoubleFilter;
import io.github.jhipster.service.filter.Filter;
import io.github.jhipster.service.filter.FloatFilter;
import io.github.jhipster.service.filter.IntegerFilter;
import io.github.jhipster.service.filter.LongFilter;
import io.github.jhipster.service.filter.StringFilter;
/** /**
* Criteria class for the Customer entity. This class is used in CustomerResource to * Criteria class for the Customer entity. This class is used in CustomerResource to
@ -19,6 +16,16 @@ import io.github.jhipster.service.filter.StringFilter;
* fix type specific filters. * fix type specific filters.
*/ */
public class CustomerCriteria implements Serializable { public class CustomerCriteria implements Serializable {
/**
* Class for filtering CustomerKind
*/
public static class CustomerKindFilter extends Filter<CustomerKind> {
}
/**
* Class for filtering VatRegion
*/
public static class VatRegionFilter extends Filter<VatRegion> {
}
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -30,6 +37,20 @@ public class CustomerCriteria implements Serializable {
private StringFilter name; private StringFilter name;
private CustomerKindFilter kind;
private LocalDateFilter birthDate;
private StringFilter birthPlace;
private StringFilter registrationCourt;
private StringFilter registrationNumber;
private VatRegionFilter vatRegion;
private StringFilter vatNumber;
private StringFilter contractualSalutation; private StringFilter contractualSalutation;
private StringFilter contractualAddress; private StringFilter contractualAddress;
@ -76,6 +97,62 @@ public class CustomerCriteria implements Serializable {
this.name = name; this.name = name;
} }
public CustomerKindFilter getKind() {
return kind;
}
public void setKind(CustomerKindFilter kind) {
this.kind = kind;
}
public LocalDateFilter getBirthDate() {
return birthDate;
}
public void setBirthDate(LocalDateFilter birthDate) {
this.birthDate = birthDate;
}
public StringFilter getBirthPlace() {
return birthPlace;
}
public void setBirthPlace(StringFilter birthPlace) {
this.birthPlace = birthPlace;
}
public StringFilter getRegistrationCourt() {
return registrationCourt;
}
public void setRegistrationCourt(StringFilter registrationCourt) {
this.registrationCourt = registrationCourt;
}
public StringFilter getRegistrationNumber() {
return registrationNumber;
}
public void setRegistrationNumber(StringFilter registrationNumber) {
this.registrationNumber = registrationNumber;
}
public VatRegionFilter getVatRegion() {
return vatRegion;
}
public void setVatRegion(VatRegionFilter vatRegion) {
this.vatRegion = vatRegion;
}
public StringFilter getVatNumber() {
return vatNumber;
}
public void setVatNumber(StringFilter vatNumber) {
this.vatNumber = vatNumber;
}
public StringFilter getContractualSalutation() { public StringFilter getContractualSalutation() {
return contractualSalutation; return contractualSalutation;
} }
@ -147,6 +224,13 @@ public class CustomerCriteria implements Serializable {
Objects.equals(reference, that.reference) && Objects.equals(reference, that.reference) &&
Objects.equals(prefix, that.prefix) && Objects.equals(prefix, that.prefix) &&
Objects.equals(name, that.name) && Objects.equals(name, that.name) &&
Objects.equals(kind, that.kind) &&
Objects.equals(birthDate, that.birthDate) &&
Objects.equals(birthPlace, that.birthPlace) &&
Objects.equals(registrationCourt, that.registrationCourt) &&
Objects.equals(registrationNumber, that.registrationNumber) &&
Objects.equals(vatRegion, that.vatRegion) &&
Objects.equals(vatNumber, that.vatNumber) &&
Objects.equals(contractualSalutation, that.contractualSalutation) && Objects.equals(contractualSalutation, that.contractualSalutation) &&
Objects.equals(contractualAddress, that.contractualAddress) && Objects.equals(contractualAddress, that.contractualAddress) &&
Objects.equals(billingSalutation, that.billingSalutation) && Objects.equals(billingSalutation, that.billingSalutation) &&
@ -163,6 +247,13 @@ public class CustomerCriteria implements Serializable {
reference, reference,
prefix, prefix,
name, name,
kind,
birthDate,
birthPlace,
registrationCourt,
registrationNumber,
vatRegion,
vatNumber,
contractualSalutation, contractualSalutation,
contractualAddress, contractualAddress,
billingSalutation, billingSalutation,
@ -180,6 +271,13 @@ public class CustomerCriteria implements Serializable {
(reference != null ? "reference=" + reference + ", " : "") + (reference != null ? "reference=" + reference + ", " : "") +
(prefix != null ? "prefix=" + prefix + ", " : "") + (prefix != null ? "prefix=" + prefix + ", " : "") +
(name != null ? "name=" + name + ", " : "") + (name != null ? "name=" + name + ", " : "") +
(kind != null ? "kind=" + kind + ", " : "") +
(birthDate != null ? "birthDate=" + birthDate + ", " : "") +
(birthPlace != null ? "birthPlace=" + birthPlace + ", " : "") +
(registrationCourt != null ? "registrationCourt=" + registrationCourt + ", " : "") +
(registrationNumber != null ? "registrationNumber=" + registrationNumber + ", " : "") +
(vatRegion != null ? "vatRegion=" + vatRegion + ", " : "") +
(vatNumber != null ? "vatNumber=" + vatNumber + ", " : "") +
(contractualSalutation != null ? "contractualSalutation=" + contractualSalutation + ", " : "") + (contractualSalutation != null ? "contractualSalutation=" + contractualSalutation + ", " : "") +
(contractualAddress != null ? "contractualAddress=" + contractualAddress + ", " : "") + (contractualAddress != null ? "contractualAddress=" + contractualAddress + ", " : "") +
(billingSalutation != null ? "billingSalutation=" + billingSalutation + ", " : "") + (billingSalutation != null ? "billingSalutation=" + billingSalutation + ", " : "") +

View File

@ -6,6 +6,8 @@ import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.SerializerProvider;
import org.hostsharing.hsadminng.domain.enumeration.CustomerKind;
import org.hostsharing.hsadminng.domain.enumeration.VatRegion;
import org.hostsharing.hsadminng.service.accessfilter.*; import org.hostsharing.hsadminng.service.accessfilter.*;
import org.springframework.boot.jackson.JsonComponent; import org.springframework.boot.jackson.JsonComponent;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
@ -13,6 +15,7 @@ import org.springframework.context.ApplicationContext;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import java.io.IOException; import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects; import java.util.Objects;
/** /**
@ -41,6 +44,26 @@ public class CustomerDTO implements Serializable {
@AccessFor(init = Role.ADMIN, read = Role.ANY_CUSTOMER_USER) @AccessFor(init = Role.ADMIN, read = Role.ANY_CUSTOMER_USER)
private String name; private String name;
@NotNull
private CustomerKind kind;
private LocalDate birthDate;
@Size(max = 80)
private String birthPlace;
@Size(max = 80)
private String registrationCourt;
@Size(max = 80)
private String registrationNumber;
@NotNull
private VatRegion vatRegion;
@Size(max = 40)
private String vatNumber;
@Size(max = 80) @Size(max = 80)
@AccessFor(init = Role.ADMIN, update = Role.CONTRACTUAL_CONTACT, read = Role.ANY_CUSTOMER_CONTACT) @AccessFor(init = Role.ADMIN, update = Role.CONTRACTUAL_CONTACT, read = Role.ANY_CUSTOMER_CONTACT)
private String contractualSalutation; private String contractualSalutation;
@ -94,6 +117,62 @@ public class CustomerDTO implements Serializable {
this.name = name; this.name = name;
} }
public CustomerKind getKind() {
return kind;
}
public void setKind(CustomerKind kind) {
this.kind = kind;
}
public LocalDate getBirthDate() {
return birthDate;
}
public void setBirthDate(LocalDate birthDate) {
this.birthDate = birthDate;
}
public String getBirthPlace() {
return birthPlace;
}
public void setBirthPlace(String birthPlace) {
this.birthPlace = birthPlace;
}
public String getRegistrationCourt() {
return registrationCourt;
}
public void setRegistrationCourt(String registrationCourt) {
this.registrationCourt = registrationCourt;
}
public String getRegistrationNumber() {
return registrationNumber;
}
public void setRegistrationNumber(String registrationNumber) {
this.registrationNumber = registrationNumber;
}
public VatRegion getVatRegion() {
return vatRegion;
}
public void setVatRegion(VatRegion vatRegion) {
this.vatRegion = vatRegion;
}
public String getVatNumber() {
return vatNumber;
}
public void setVatNumber(String vatNumber) {
this.vatNumber = vatNumber;
}
public String getContractualSalutation() { public String getContractualSalutation() {
return contractualSalutation; return contractualSalutation;
} }
@ -162,6 +241,13 @@ public class CustomerDTO implements Serializable {
", reference=" + getReference() + ", reference=" + getReference() +
", prefix='" + getPrefix() + "'" + ", prefix='" + getPrefix() + "'" +
", name='" + getName() + "'" + ", name='" + getName() + "'" +
", kind='" + getKind() + "'" +
", birthDate='" + getBirthDate() + "'" +
", birthPlace='" + getBirthPlace() + "'" +
", registrationCourt='" + getRegistrationCourt() + "'" +
", registrationNumber='" + getRegistrationNumber() + "'" +
", vatRegion='" + getVatRegion() + "'" +
", vatNumber='" + getVatNumber() + "'" +
", contractualSalutation='" + getContractualSalutation() + "'" + ", contractualSalutation='" + getContractualSalutation() + "'" +
", contractualAddress='" + getContractualAddress() + "'" + ", contractualAddress='" + getContractualAddress() + "'" +
", billingSalutation='" + getBillingSalutation() + "'" + ", billingSalutation='" + getBillingSalutation() + "'" +

View File

@ -1,15 +1,12 @@
package org.hostsharing.hsadminng.service.dto; package org.hostsharing.hsadminng.service.dto;
import io.github.jhipster.service.filter.Filter;
import io.github.jhipster.service.filter.LocalDateFilter;
import io.github.jhipster.service.filter.LongFilter;
import io.github.jhipster.service.filter.StringFilter;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects; import java.util.Objects;
import io.github.jhipster.service.filter.BooleanFilter;
import io.github.jhipster.service.filter.DoubleFilter;
import io.github.jhipster.service.filter.Filter;
import io.github.jhipster.service.filter.FloatFilter;
import io.github.jhipster.service.filter.IntegerFilter;
import io.github.jhipster.service.filter.LongFilter;
import io.github.jhipster.service.filter.StringFilter;
import io.github.jhipster.service.filter.LocalDateFilter;
/** /**
* Criteria class for the Membership entity. This class is used in MembershipResource to * Criteria class for the Membership entity. This class is used in MembershipResource to
@ -25,11 +22,13 @@ public class MembershipCriteria implements Serializable {
private LongFilter id; private LongFilter id;
private LocalDateFilter documentDate; private LocalDateFilter admissionDocumentDate;
private LocalDateFilter memberFrom; private LocalDateFilter cancellationDocumentDate;
private LocalDateFilter memberUntil; private LocalDateFilter memberFromDate;
private LocalDateFilter memberUntilDate;
private StringFilter remark; private StringFilter remark;
@ -47,28 +46,36 @@ public class MembershipCriteria implements Serializable {
this.id = id; this.id = id;
} }
public LocalDateFilter getDocumentDate() { public LocalDateFilter getAdmissionDocumentDate() {
return documentDate; return admissionDocumentDate;
} }
public void setDocumentDate(LocalDateFilter documentDate) { public void setAdmissionDocumentDate(LocalDateFilter admissionDocumentDate) {
this.documentDate = documentDate; this.admissionDocumentDate = admissionDocumentDate;
} }
public LocalDateFilter getMemberFrom() { public LocalDateFilter getCancellationDocumentDate() {
return memberFrom; return cancellationDocumentDate;
} }
public void setMemberFrom(LocalDateFilter memberFrom) { public void setCancellationDocumentDate(LocalDateFilter cancellationDocumentDate) {
this.memberFrom = memberFrom; this.cancellationDocumentDate = cancellationDocumentDate;
} }
public LocalDateFilter getMemberUntil() { public LocalDateFilter getMemberFromDate() {
return memberUntil; return memberFromDate;
} }
public void setMemberUntil(LocalDateFilter memberUntil) { public void setMemberFromDate(LocalDateFilter memberFromDate) {
this.memberUntil = memberUntil; this.memberFromDate = memberFromDate;
}
public LocalDateFilter getMemberUntilDate() {
return memberUntilDate;
}
public void setMemberUntilDate(LocalDateFilter memberUntilDate) {
this.memberUntilDate = memberUntilDate;
} }
public StringFilter getRemark() { public StringFilter getRemark() {
@ -115,9 +122,10 @@ public class MembershipCriteria implements Serializable {
final MembershipCriteria that = (MembershipCriteria) o; final MembershipCriteria that = (MembershipCriteria) o;
return return
Objects.equals(id, that.id) && Objects.equals(id, that.id) &&
Objects.equals(documentDate, that.documentDate) && Objects.equals(admissionDocumentDate, that.admissionDocumentDate) &&
Objects.equals(memberFrom, that.memberFrom) && Objects.equals(cancellationDocumentDate, that.cancellationDocumentDate) &&
Objects.equals(memberUntil, that.memberUntil) && Objects.equals(memberFromDate, that.memberFromDate) &&
Objects.equals(memberUntilDate, that.memberUntilDate) &&
Objects.equals(remark, that.remark) && Objects.equals(remark, that.remark) &&
Objects.equals(shareId, that.shareId) && Objects.equals(shareId, that.shareId) &&
Objects.equals(assetId, that.assetId) && Objects.equals(assetId, that.assetId) &&
@ -128,9 +136,10 @@ public class MembershipCriteria implements Serializable {
public int hashCode() { public int hashCode() {
return Objects.hash( return Objects.hash(
id, id,
documentDate, admissionDocumentDate,
memberFrom, cancellationDocumentDate,
memberUntil, memberFromDate,
memberUntilDate,
remark, remark,
shareId, shareId,
assetId, assetId,
@ -142,9 +151,10 @@ public class MembershipCriteria implements Serializable {
public String toString() { public String toString() {
return "MembershipCriteria{" + return "MembershipCriteria{" +
(id != null ? "id=" + id + ", " : "") + (id != null ? "id=" + id + ", " : "") +
(documentDate != null ? "documentDate=" + documentDate + ", " : "") + (admissionDocumentDate != null ? "admissionDocumentDate=" + admissionDocumentDate + ", " : "") +
(memberFrom != null ? "memberFrom=" + memberFrom + ", " : "") + (cancellationDocumentDate != null ? "cancellationDocumentDate=" + cancellationDocumentDate + ", " : "") +
(memberUntil != null ? "memberUntil=" + memberUntil + ", " : "") + (memberFromDate != null ? "memberFromDate=" + memberFromDate + ", " : "") +
(memberUntilDate != null ? "memberUntilDate=" + memberUntilDate + ", " : "") +
(remark != null ? "remark=" + remark + ", " : "") + (remark != null ? "remark=" + remark + ", " : "") +
(shareId != null ? "shareId=" + shareId + ", " : "") + (shareId != null ? "shareId=" + shareId + ", " : "") +
(assetId != null ? "assetId=" + assetId + ", " : "") + (assetId != null ? "assetId=" + assetId + ", " : "") +

View File

@ -24,14 +24,17 @@ public class MembershipDTO implements Serializable {
@NotNull @NotNull
@AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT}) @AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
private LocalDate documentDate; private LocalDate admissionDocumentDate;
@AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
private LocalDate cancellationDocumentDate;
@NotNull @NotNull
@AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT}) @AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
private LocalDate memberFrom; private LocalDate memberFromDate;
@AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT}) @AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
private LocalDate memberUntil; private LocalDate memberUntilDate;
@Size(max = 160) @Size(max = 160)
@AccessFor(init = Role.ADMIN, read = Role.SUPPORTER) @AccessFor(init = Role.ADMIN, read = Role.SUPPORTER)
@ -58,28 +61,36 @@ public class MembershipDTO implements Serializable {
this.id = id; this.id = id;
} }
public LocalDate getDocumentDate() { public LocalDate getAdmissionDocumentDate() {
return documentDate; return admissionDocumentDate;
} }
public void setDocumentDate(LocalDate documentDate) { public void setAdmissionDocumentDate(LocalDate admissionDocumentDate) {
this.documentDate = documentDate; this.admissionDocumentDate = admissionDocumentDate;
} }
public LocalDate getMemberFrom() { public LocalDate getCancellationDocumentDate() {
return memberFrom; return cancellationDocumentDate;
} }
public void setMemberFrom(LocalDate memberFrom) { public void setCancellationDocumentDate(LocalDate cancellationDocumentDate) {
this.memberFrom = memberFrom; this.cancellationDocumentDate = cancellationDocumentDate;
} }
public LocalDate getMemberUntil() { public LocalDate getMemberFromDate() {
return memberUntil; return memberFromDate;
} }
public void setMemberUntil(LocalDate memberUntil) { public void setMemberFromDate(LocalDate memberFromDate) {
this.memberUntil = memberUntil; this.memberFromDate = memberFromDate;
}
public LocalDate getMemberUntilDate() {
return memberUntilDate;
}
public void setMemberUntilDate(LocalDate memberUntilDate) {
this.memberUntilDate = memberUntilDate;
} }
public String getRemark() { public String getRemark() {
@ -131,9 +142,10 @@ public class MembershipDTO implements Serializable {
public String toString() { public String toString() {
return "MembershipDTO{" + return "MembershipDTO{" +
"id=" + getId() + "id=" + getId() +
", documentDate='" + getDocumentDate() + "'" + ", admissionDocumentDate='" + getAdmissionDocumentDate() + "'" +
", memberFrom='" + getMemberFrom() + "'" + ", cancellationDocumentDate='" + getCancellationDocumentDate() + "'" +
", memberUntil='" + getMemberUntil() + "'" + ", memberFromDate='" + getMemberFromDate() + "'" +
", memberUntilDate='" + getMemberUntilDate() + "'" +
", remark='" + getRemark() + "'" + ", remark='" + getRemark() + "'" +
", customer=" + getCustomerId() + ", customer=" + getCustomerId() +
", customer='" + getCustomerPrefix() + "'" + ", customer='" + getCustomerPrefix() + "'" +

View File

@ -1,15 +1,12 @@
package org.hostsharing.hsadminng.service.dto; package org.hostsharing.hsadminng.service.dto;
import io.github.jhipster.service.filter.Filter;
import io.github.jhipster.service.filter.LocalDateFilter;
import io.github.jhipster.service.filter.LongFilter;
import io.github.jhipster.service.filter.StringFilter;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects; import java.util.Objects;
import io.github.jhipster.service.filter.BooleanFilter;
import io.github.jhipster.service.filter.DoubleFilter;
import io.github.jhipster.service.filter.Filter;
import io.github.jhipster.service.filter.FloatFilter;
import io.github.jhipster.service.filter.IntegerFilter;
import io.github.jhipster.service.filter.LongFilter;
import io.github.jhipster.service.filter.StringFilter;
import io.github.jhipster.service.filter.LocalDateFilter;
/** /**
* Criteria class for the SepaMandate entity. This class is used in SepaMandateResource to * Criteria class for the SepaMandate entity. This class is used in SepaMandateResource to
@ -31,15 +28,15 @@ public class SepaMandateCriteria implements Serializable {
private StringFilter bic; private StringFilter bic;
private LocalDateFilter documentDate; private LocalDateFilter grantingDocumentDate;
private LocalDateFilter validFrom; private LocalDateFilter revokationDocumentDate;
private LocalDateFilter validUntil; private LocalDateFilter validFromDate;
private LocalDateFilter lastUsed; private LocalDateFilter validUntilDate;
private LocalDateFilter cancellationDate; private LocalDateFilter lastUsedDate;
private StringFilter remark; private StringFilter remark;
@ -77,44 +74,44 @@ public class SepaMandateCriteria implements Serializable {
this.bic = bic; this.bic = bic;
} }
public LocalDateFilter getDocumentDate() { public LocalDateFilter getGrantingDocumentDate() {
return documentDate; return grantingDocumentDate;
} }
public void setDocumentDate(LocalDateFilter documentDate) { public void setGrantingDocumentDate(LocalDateFilter grantingDocumentDate) {
this.documentDate = documentDate; this.grantingDocumentDate = grantingDocumentDate;
} }
public LocalDateFilter getValidFrom() { public LocalDateFilter getRevokationDocumentDate() {
return validFrom; return revokationDocumentDate;
} }
public void setValidFrom(LocalDateFilter validFrom) { public void setRevokationDocumentDate(LocalDateFilter revokationDocumentDate) {
this.validFrom = validFrom; this.revokationDocumentDate = revokationDocumentDate;
} }
public LocalDateFilter getValidUntil() { public LocalDateFilter getValidFromDate() {
return validUntil; return validFromDate;
} }
public void setValidUntil(LocalDateFilter validUntil) { public void setValidFromDate(LocalDateFilter validFromDate) {
this.validUntil = validUntil; this.validFromDate = validFromDate;
} }
public LocalDateFilter getLastUsed() { public LocalDateFilter getValidUntilDate() {
return lastUsed; return validUntilDate;
} }
public void setLastUsed(LocalDateFilter lastUsed) { public void setValidUntilDate(LocalDateFilter validUntilDate) {
this.lastUsed = lastUsed; this.validUntilDate = validUntilDate;
} }
public LocalDateFilter getCancellationDate() { public LocalDateFilter getLastUsedDate() {
return cancellationDate; return lastUsedDate;
} }
public void setCancellationDate(LocalDateFilter cancellationDate) { public void setLastUsedDate(LocalDateFilter lastUsedDate) {
this.cancellationDate = cancellationDate; this.lastUsedDate = lastUsedDate;
} }
public StringFilter getRemark() { public StringFilter getRemark() {
@ -148,11 +145,11 @@ public class SepaMandateCriteria implements Serializable {
Objects.equals(reference, that.reference) && Objects.equals(reference, that.reference) &&
Objects.equals(iban, that.iban) && Objects.equals(iban, that.iban) &&
Objects.equals(bic, that.bic) && Objects.equals(bic, that.bic) &&
Objects.equals(documentDate, that.documentDate) && Objects.equals(grantingDocumentDate, that.grantingDocumentDate) &&
Objects.equals(validFrom, that.validFrom) && Objects.equals(revokationDocumentDate, that.revokationDocumentDate) &&
Objects.equals(validUntil, that.validUntil) && Objects.equals(validFromDate, that.validFromDate) &&
Objects.equals(lastUsed, that.lastUsed) && Objects.equals(validUntilDate, that.validUntilDate) &&
Objects.equals(cancellationDate, that.cancellationDate) && Objects.equals(lastUsedDate, that.lastUsedDate) &&
Objects.equals(remark, that.remark) && Objects.equals(remark, that.remark) &&
Objects.equals(customerId, that.customerId); Objects.equals(customerId, that.customerId);
} }
@ -164,11 +161,11 @@ public class SepaMandateCriteria implements Serializable {
reference, reference,
iban, iban,
bic, bic,
documentDate, grantingDocumentDate,
validFrom, revokationDocumentDate,
validUntil, validFromDate,
lastUsed, validUntilDate,
cancellationDate, lastUsedDate,
remark, remark,
customerId customerId
); );
@ -181,11 +178,11 @@ public class SepaMandateCriteria implements Serializable {
(reference != null ? "reference=" + reference + ", " : "") + (reference != null ? "reference=" + reference + ", " : "") +
(iban != null ? "iban=" + iban + ", " : "") + (iban != null ? "iban=" + iban + ", " : "") +
(bic != null ? "bic=" + bic + ", " : "") + (bic != null ? "bic=" + bic + ", " : "") +
(documentDate != null ? "documentDate=" + documentDate + ", " : "") + (grantingDocumentDate != null ? "grantingDocumentDate=" + grantingDocumentDate + ", " : "") +
(validFrom != null ? "validFrom=" + validFrom + ", " : "") + (revokationDocumentDate != null ? "revokationDocumentDate=" + revokationDocumentDate + ", " : "") +
(validUntil != null ? "validUntil=" + validUntil + ", " : "") + (validFromDate != null ? "validFromDate=" + validFromDate + ", " : "") +
(lastUsed != null ? "lastUsed=" + lastUsed + ", " : "") + (validUntilDate != null ? "validUntilDate=" + validUntilDate + ", " : "") +
(cancellationDate != null ? "cancellationDate=" + cancellationDate + ", " : "") + (lastUsedDate != null ? "lastUsedDate=" + lastUsedDate + ", " : "") +
(remark != null ? "remark=" + remark + ", " : "") + (remark != null ? "remark=" + remark + ", " : "") +
(customerId != null ? "customerId=" + customerId + ", " : "") + (customerId != null ? "customerId=" + customerId + ", " : "") +
"}"; "}";

View File

@ -1,7 +1,9 @@
package org.hostsharing.hsadminng.service.dto; package org.hostsharing.hsadminng.service.dto;
import java.time.LocalDate;
import javax.validation.constraints.*; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate;
import java.util.Objects; import java.util.Objects;
/** /**
@ -22,16 +24,16 @@ public class SepaMandateDTO implements Serializable {
private String bic; private String bic;
@NotNull @NotNull
private LocalDate documentDate; private LocalDate grantingDocumentDate;
private LocalDate revokationDocumentDate;
@NotNull @NotNull
private LocalDate validFrom; private LocalDate validFromDate;
private LocalDate validUntil; private LocalDate validUntilDate;
private LocalDate lastUsed; private LocalDate lastUsedDate;
private LocalDate cancellationDate;
@Size(max = 160) @Size(max = 160)
private String remark; private String remark;
@ -73,44 +75,44 @@ public class SepaMandateDTO implements Serializable {
this.bic = bic; this.bic = bic;
} }
public LocalDate getDocumentDate() { public LocalDate getGrantingDocumentDate() {
return documentDate; return grantingDocumentDate;
} }
public void setDocumentDate(LocalDate documentDate) { public void setGrantingDocumentDate(LocalDate grantingDocumentDate) {
this.documentDate = documentDate; this.grantingDocumentDate = grantingDocumentDate;
} }
public LocalDate getValidFrom() { public LocalDate getRevokationDocumentDate() {
return validFrom; return revokationDocumentDate;
} }
public void setValidFrom(LocalDate validFrom) { public void setRevokationDocumentDate(LocalDate revokationDocumentDate) {
this.validFrom = validFrom; this.revokationDocumentDate = revokationDocumentDate;
} }
public LocalDate getValidUntil() { public LocalDate getValidFromDate() {
return validUntil; return validFromDate;
} }
public void setValidUntil(LocalDate validUntil) { public void setValidFromDate(LocalDate validFromDate) {
this.validUntil = validUntil; this.validFromDate = validFromDate;
} }
public LocalDate getLastUsed() { public LocalDate getValidUntilDate() {
return lastUsed; return validUntilDate;
} }
public void setLastUsed(LocalDate lastUsed) { public void setValidUntilDate(LocalDate validUntilDate) {
this.lastUsed = lastUsed; this.validUntilDate = validUntilDate;
} }
public LocalDate getCancellationDate() { public LocalDate getLastUsedDate() {
return cancellationDate; return lastUsedDate;
} }
public void setCancellationDate(LocalDate cancellationDate) { public void setLastUsedDate(LocalDate lastUsedDate) {
this.cancellationDate = cancellationDate; this.lastUsedDate = lastUsedDate;
} }
public String getRemark() { public String getRemark() {
@ -165,11 +167,11 @@ public class SepaMandateDTO implements Serializable {
", reference='" + getReference() + "'" + ", reference='" + getReference() + "'" +
", iban='" + getIban() + "'" + ", iban='" + getIban() + "'" +
", bic='" + getBic() + "'" + ", bic='" + getBic() + "'" +
", documentDate='" + getDocumentDate() + "'" + ", grantingDocumentDate='" + getGrantingDocumentDate() + "'" +
", validFrom='" + getValidFrom() + "'" + ", revokationDocumentDate='" + getRevokationDocumentDate() + "'" +
", validUntil='" + getValidUntil() + "'" + ", validFromDate='" + getValidFromDate() + "'" +
", lastUsed='" + getLastUsed() + "'" + ", validUntilDate='" + getValidUntilDate() + "'" +
", cancellationDate='" + getCancellationDate() + "'" + ", lastUsedDate='" + getLastUsedDate() + "'" +
", remark='" + getRemark() + "'" + ", remark='" + getRemark() + "'" +
", customer=" + getCustomerId() + ", customer=" + getCustomerId() +
", customer='" + getCustomerPrefix() + "'" + ", customer='" + getCustomerPrefix() + "'" +

View File

@ -1,12 +1,5 @@
package org.hostsharing.hsadminng.service.dto; package org.hostsharing.hsadminng.service.dto;
import org.hostsharing.hsadminng.domain.enumeration.ShareAction;
import org.hostsharing.hsadminng.service.MembershipService;
import org.hostsharing.hsadminng.service.accessfilter.AccessFor;
import org.hostsharing.hsadminng.service.accessfilter.ParentId;
import org.hostsharing.hsadminng.service.accessfilter.Role;
import org.hostsharing.hsadminng.service.accessfilter.SelfId;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
@ -24,10 +17,12 @@ public class ShareDTO implements Serializable {
@NotNull @NotNull
@AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT}) @AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
@AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
private LocalDate documentDate; private LocalDate documentDate;
@NotNull @NotNull
@AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT}) @AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
@AccessFor(init = Role.ADMIN, read = {Role.CONTRACTUAL_CONTACT, Role.FINANCIAL_CONTACT})
private LocalDate valueDate; private LocalDate valueDate;
@NotNull @NotNull
@ -47,7 +42,7 @@ public class ShareDTO implements Serializable {
private Long membershipId; private Long membershipId;
@AccessFor(init = Role.ADMIN, read = Role.SUPPORTER) @AccessFor(init = Role.ADMIN, read = Role.SUPPORTER)
private String membershipDocumentDate; private String membershipAdmissionDocumentDate;
public Long getId() { public Long getId() {
return id; return id;
@ -105,12 +100,12 @@ public class ShareDTO implements Serializable {
this.membershipId = membershipId; this.membershipId = membershipId;
} }
public String getMembershipDocumentDate() { public String getMembershipAdmissionDocumentDate() {
return membershipDocumentDate; return membershipAdmissionDocumentDate;
} }
public void setMembershipDocumentDate(String membershipDocumentDate) { public void setMembershipAdmissionDocumentDate(String membershipAdmissionDocumentDate) {
this.membershipDocumentDate = membershipDocumentDate; this.membershipAdmissionDocumentDate = membershipAdmissionDocumentDate;
} }
@Override @Override
@ -144,7 +139,7 @@ public class ShareDTO implements Serializable {
", quantity=" + getQuantity() + ", quantity=" + getQuantity() +
", remark='" + getRemark() + "'" + ", remark='" + getRemark() + "'" +
", membership=" + getMembershipId() + ", membership=" + getMembershipId() +
", membership='" + getMembershipDocumentDate() + "'" + ", membership='" + getMembershipAdmissionDocumentDate() + "'" +
"}"; "}";
} }
} }

View File

@ -1,9 +1,9 @@
package org.hostsharing.hsadminng.service.mapper; package org.hostsharing.hsadminng.service.mapper;
import org.hostsharing.hsadminng.domain.*; import org.hostsharing.hsadminng.domain.Asset;
import org.hostsharing.hsadminng.service.dto.AssetDTO; import org.hostsharing.hsadminng.service.dto.AssetDTO;
import org.mapstruct.Mapper;
import org.mapstruct.*; import org.mapstruct.Mapping;
/** /**
* Mapper for the entity Asset and its DTO AssetDTO. * Mapper for the entity Asset and its DTO AssetDTO.
@ -12,7 +12,7 @@ import org.mapstruct.*;
public interface AssetMapper extends EntityMapper<AssetDTO, Asset> { public interface AssetMapper extends EntityMapper<AssetDTO, Asset> {
@Mapping(source = "membership.id", target = "membershipId") @Mapping(source = "membership.id", target = "membershipId")
@Mapping(source = "membership.documentDate", target = "membershipDocumentDate") @Mapping(source = "membership.admissionDocumentDate", target = "membershipAdmissionDocumentDate")
AssetDTO toDto(Asset asset); AssetDTO toDto(Asset asset);
@Mapping(source = "membershipId", target = "membership") @Mapping(source = "membershipId", target = "membership")

View File

@ -1,9 +1,9 @@
package org.hostsharing.hsadminng.service.mapper; package org.hostsharing.hsadminng.service.mapper;
import org.hostsharing.hsadminng.domain.*; import org.hostsharing.hsadminng.domain.Share;
import org.hostsharing.hsadminng.service.dto.ShareDTO; import org.hostsharing.hsadminng.service.dto.ShareDTO;
import org.mapstruct.Mapper;
import org.mapstruct.*; import org.mapstruct.Mapping;
/** /**
* Mapper for the entity Share and its DTO ShareDTO. * Mapper for the entity Share and its DTO ShareDTO.
@ -12,7 +12,7 @@ import org.mapstruct.*;
public interface ShareMapper extends EntityMapper<ShareDTO, Share> { public interface ShareMapper extends EntityMapper<ShareDTO, Share> {
@Mapping(source = "membership.id", target = "membershipId") @Mapping(source = "membership.id", target = "membershipId")
@Mapping(source = "membership.documentDate", target = "membershipDocumentDate") @Mapping(source = "membership.admissionDocumentDate", target = "membershipAdmissionDocumentDate")
ShareDTO toDto(Share share); ShareDTO toDto(Share share);
@Mapping(source = "membershipId", target = "membership") @Mapping(source = "membershipId", target = "membership")

View File

@ -1,25 +1,24 @@
package org.hostsharing.hsadminng.web.rest; package org.hostsharing.hsadminng.web.rest;
import io.github.jhipster.web.util.ResponseUtil;
import org.hostsharing.hsadminng.service.AssetQueryService;
import org.hostsharing.hsadminng.service.AssetService; import org.hostsharing.hsadminng.service.AssetService;
import org.hostsharing.hsadminng.service.dto.AssetCriteria;
import org.hostsharing.hsadminng.service.dto.AssetDTO;
import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException; import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException;
import org.hostsharing.hsadminng.web.rest.util.HeaderUtil; import org.hostsharing.hsadminng.web.rest.util.HeaderUtil;
import org.hostsharing.hsadminng.web.rest.util.PaginationUtil; import org.hostsharing.hsadminng.web.rest.util.PaginationUtil;
import org.hostsharing.hsadminng.service.dto.AssetDTO;
import org.hostsharing.hsadminng.service.dto.AssetCriteria;
import org.hostsharing.hsadminng.service.AssetQueryService;
import io.github.jhipster.web.util.ResponseUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -74,13 +73,8 @@ public class AssetResource {
@PutMapping("/assets") @PutMapping("/assets")
public ResponseEntity<AssetDTO> updateAsset(@Valid @RequestBody AssetDTO assetDTO) throws URISyntaxException { public ResponseEntity<AssetDTO> updateAsset(@Valid @RequestBody AssetDTO assetDTO) throws URISyntaxException {
log.debug("REST request to update Asset : {}", assetDTO); log.debug("REST request to update Asset : {}", assetDTO);
if (assetDTO.getId() == null) { // TODO mhoennig: Rather completely remove the endpoint?
throw new BadRequestAlertException("Invalid id", ENTITY_NAME, "idnull"); throw new BadRequestAlertException("Assets are immutable", ENTITY_NAME, "assetTransactionImmutable");
}
AssetDTO result = assetService.save(assetDTO);
return ResponseEntity.ok()
.headers(HeaderUtil.createEntityUpdateAlert(ENTITY_NAME, assetDTO.getId().toString()))
.body(result);
} }
/** /**
@ -132,7 +126,7 @@ public class AssetResource {
@DeleteMapping("/assets/{id}") @DeleteMapping("/assets/{id}")
public ResponseEntity<Void> deleteAsset(@PathVariable Long id) { public ResponseEntity<Void> deleteAsset(@PathVariable Long id) {
log.debug("REST request to delete Asset : {}", id); log.debug("REST request to delete Asset : {}", id);
assetService.delete(id); // TODO mhoennig: Rather completely remove the endpoint?
return ResponseEntity.ok().headers(HeaderUtil.createEntityDeletionAlert(ENTITY_NAME, id.toString())).build(); throw new BadRequestAlertException("Asset are immutable", ENTITY_NAME, "assetTransactionImmutable");
} }
} }

View File

@ -3,10 +3,28 @@ dto all with mapstruct
service all with serviceClass service all with serviceClass
paginate all with infinite-scroll paginate all with infinite-scroll
enum CustomerKind {
NATURAL,
LEGAL
}
enum VatRegion {
DOMESTIC,
EU,
OTHER
}
entity Customer { entity Customer {
reference Integer required unique min(10000) max(99999), reference Integer required unique min(10000) max(99999),
prefix String required maxlength(3) unique pattern(/[a-z][a-z0-9]+/), prefix String required maxlength(3) unique pattern(/[a-z][a-z0-9]+/),
name String required maxlength(80), name String required maxlength(80),
kind CustomerKind required,
birthDate LocalDate,
birthPlace String maxlength(80),
registrationCourt String maxlength(80),
registrationNumber String maxlength(80),
vatRegion VatRegion required,
vatNumber String maxlength(40),
contractualSalutation String maxlength(80), contractualSalutation String maxlength(80),
contractualAddress String required maxlength(400), contractualAddress String required maxlength(400),
billingSalutation String maxlength(80), billingSalutation String maxlength(80),
@ -15,9 +33,10 @@ entity Customer {
} }
entity Membership { entity Membership {
documentDate LocalDate required, admissionDocumentDate LocalDate required,
memberFrom LocalDate required, cancellationDocumentDate LocalDate,
memberUntil LocalDate, memberFromDate LocalDate required,
memberUntilDate LocalDate,
remark String maxlength(160) remark String maxlength(160)
} }
@ -55,17 +74,17 @@ entity SepaMandate {
reference String maxlength(40) unique required, reference String maxlength(40) unique required,
iban String maxlength(34), iban String maxlength(34),
bic String maxlength(11), bic String maxlength(11),
documentDate LocalDate required, grantingDocumentDate LocalDate required,
validFrom LocalDate required, revokationDocumentDate LocalDate,
validUntil LocalDate, validFromDate LocalDate required,
lastUsed LocalDate, validUntilDate LocalDate,
cancellationDate LocalDate, lastUsedDate LocalDate,
remark String maxlength(160) remark String maxlength(160)
} }
relationship OneToMany { relationship OneToMany {
Customer{membership} to Membership{customer(prefix) required}, Customer{membership} to Membership{customer(prefix) required},
Customer{sepamandate} to SepaMandate{customer(prefix) required}, Customer{sepamandate} to SepaMandate{customer(prefix) required},
Membership{share} to Share{membership(documentDate) required}, Membership{share} to Share{membership(admissionDocumentDate) required},
Membership{asset} to Asset{membership(documentDate) required} Membership{asset} to Asset{membership(admissionDocumentDate) required}
} }

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<property name="now" value="now()" dbms="h2"/>
<property name="now" value="current_timestamp" dbms="postgresql"/>
<property name="floatType" value="float4" dbms="postgresql, h2"/>
<property name="floatType" value="float" dbms="mysql, oracle, mssql"/>
<!--
Added the entity Customer.
-->
<changeSet id="20190424123255-1" author="jhipster">
<createTable tableName="customer">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="reference" type="integer">
<constraints nullable="false" unique="true" uniqueConstraintName="ux_customer_reference" />
</column>
<column name="prefix" type="varchar(3)">
<constraints nullable="false" unique="true" uniqueConstraintName="ux_customer_prefix" />
</column>
<column name="name" type="varchar(80)">
<constraints nullable="false" />
</column>
<column name="kind" type="varchar(255)">
<constraints nullable="false" />
</column>
<column name="birth_date" type="date">
<constraints nullable="true" />
</column>
<column name="birth_place" type="varchar(80)">
<constraints nullable="true" />
</column>
<column name="registration_court" type="varchar(80)">
<constraints nullable="true" />
</column>
<column name="registration_number" type="varchar(80)">
<constraints nullable="true" />
</column>
<column name="vat_region" type="varchar(255)">
<constraints nullable="false" />
</column>
<column name="vat_number" type="varchar(40)">
<constraints nullable="true" />
</column>
<column name="contractual_salutation" type="varchar(80)">
<constraints nullable="true" />
</column>
<column name="contractual_address" type="varchar(400)">
<constraints nullable="false" />
</column>
<column name="billing_salutation" type="varchar(80)">
<constraints nullable="true" />
</column>
<column name="billing_address" type="varchar(400)">
<constraints nullable="true" />
</column>
<column name="remark" type="varchar(160)">
<constraints nullable="true" />
</column>
<!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
</createTable>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->
</databaseChangeLog>

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<property name="now" value="now()" dbms="h2"/>
<property name="now" value="current_timestamp" dbms="postgresql"/>
<property name="floatType" value="float4" dbms="postgresql, h2"/>
<property name="floatType" value="float" dbms="mysql, oracle, mssql"/>
<!--
Added the entity Membership.
-->
<changeSet id="20190424123256-1" author="jhipster">
<createTable tableName="membership">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="admission_document_date" type="date">
<constraints nullable="false" />
</column>
<column name="cancellation_document_date" type="date">
<constraints nullable="true" />
</column>
<column name="member_from_date" type="date">
<constraints nullable="false" />
</column>
<column name="member_until_date" type="date">
<constraints nullable="true" />
</column>
<column name="remark" type="varchar(160)">
<constraints nullable="true" />
</column>
<column name="customer_id" type="bigint">
<constraints nullable="false" />
</column>
<!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
</createTable>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->
</databaseChangeLog>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<!--
Added the constraints for entity Membership.
-->
<changeSet id="20190424123256-2" author="jhipster">
<addForeignKeyConstraint baseColumnNames="customer_id"
baseTableName="membership"
constraintName="fk_membership_customer_id"
referencedColumnNames="id"
referencedTableName="customer"/>
</changeSet>
</databaseChangeLog>

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<property name="now" value="now()" dbms="h2"/>
<property name="now" value="current_timestamp" dbms="postgresql"/>
<property name="floatType" value="float4" dbms="postgresql, h2"/>
<property name="floatType" value="float" dbms="mysql, oracle, mssql"/>
<!--
Added the entity Share.
-->
<changeSet id="20190424123257-1" author="jhipster">
<createTable tableName="share">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="document_date" type="date">
<constraints nullable="false" />
</column>
<column name="value_date" type="date">
<constraints nullable="false" />
</column>
<column name="action" type="varchar(255)">
<constraints nullable="false" />
</column>
<column name="quantity" type="integer">
<constraints nullable="false" />
</column>
<column name="remark" type="varchar(160)">
<constraints nullable="true" />
</column>
<column name="membership_id" type="bigint">
<constraints nullable="false" />
</column>
<!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
</createTable>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->
</databaseChangeLog>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<!--
Added the constraints for entity Share.
-->
<changeSet id="20190424123257-2" author="jhipster">
<addForeignKeyConstraint baseColumnNames="membership_id"
baseTableName="share"
constraintName="fk_share_membership_id"
referencedColumnNames="id"
referencedTableName="membership"/>
</changeSet>
</databaseChangeLog>

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<property name="now" value="now()" dbms="h2"/>
<property name="now" value="current_timestamp" dbms="postgresql"/>
<property name="floatType" value="float4" dbms="postgresql, h2"/>
<property name="floatType" value="float" dbms="mysql, oracle, mssql"/>
<!--
Added the entity Asset.
-->
<changeSet id="20190424123258-1" author="jhipster">
<createTable tableName="asset">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="document_date" type="date">
<constraints nullable="false" />
</column>
<column name="value_date" type="date">
<constraints nullable="false" />
</column>
<column name="action" type="varchar(255)">
<constraints nullable="false" />
</column>
<column name="amount" type="decimal(10,2)">
<constraints nullable="false" />
</column>
<column name="remark" type="varchar(160)">
<constraints nullable="true" />
</column>
<column name="membership_id" type="bigint">
<constraints nullable="false" />
</column>
<!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
</createTable>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->
</databaseChangeLog>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<!--
Added the constraints for entity Asset.
-->
<changeSet id="20190424123258-2" author="jhipster">
<addForeignKeyConstraint baseColumnNames="membership_id"
baseTableName="asset"
constraintName="fk_asset_membership_id"
referencedColumnNames="id"
referencedTableName="membership"/>
</changeSet>
</databaseChangeLog>

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<property name="now" value="now()" dbms="h2"/>
<property name="now" value="current_timestamp" dbms="postgresql"/>
<property name="floatType" value="float4" dbms="postgresql, h2"/>
<property name="floatType" value="float" dbms="mysql, oracle, mssql"/>
<!--
Added the entity SepaMandate.
-->
<changeSet id="20190424123259-1" author="jhipster">
<createTable tableName="sepa_mandate">
<column name="id" type="bigint" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="reference" type="varchar(40)">
<constraints nullable="false" unique="true" uniqueConstraintName="ux_sepa_mandate_reference" />
</column>
<column name="iban" type="varchar(34)">
<constraints nullable="true" />
</column>
<column name="bic" type="varchar(11)">
<constraints nullable="true" />
</column>
<column name="granting_document_date" type="date">
<constraints nullable="false" />
</column>
<column name="revokation_document_date" type="date">
<constraints nullable="true" />
</column>
<column name="valid_from_date" type="date">
<constraints nullable="false" />
</column>
<column name="valid_until_date" type="date">
<constraints nullable="true" />
</column>
<column name="last_used_date" type="date">
<constraints nullable="true" />
</column>
<column name="remark" type="varchar(160)">
<constraints nullable="true" />
</column>
<column name="customer_id" type="bigint">
<constraints nullable="false" />
</column>
<!-- jhipster-needle-liquibase-add-column - JHipster will add columns here, do not remove-->
</createTable>
</changeSet>
<!-- jhipster-needle-liquibase-add-changeset - JHipster will add changesets here, do not remove-->
</databaseChangeLog>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<!--
Added the constraints for entity SepaMandate.
-->
<changeSet id="20190424123259-2" author="jhipster">
<addForeignKeyConstraint baseColumnNames="customer_id"
baseTableName="sepa_mandate"
constraintName="fk_sepa_mandate_customer_id"
referencedColumnNames="id"
referencedTableName="customer"/>
</changeSet>
</databaseChangeLog>

View File

@ -5,15 +5,15 @@
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd"> xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
<include file="config/liquibase/changelog/00000000000000_initial_schema.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/00000000000000_initial_schema.xml" relativeToChangelogFile="false"/>
<include file="config/liquibase/changelog/20190418143050_added_entity_Customer.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/20190424123255_added_entity_Customer.xml" relativeToChangelogFile="false"/>
<include file="config/liquibase/changelog/20190418143051_added_entity_Membership.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/20190424123256_added_entity_Membership.xml" relativeToChangelogFile="false"/>
<include file="config/liquibase/changelog/20190418143052_added_entity_Share.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/20190424123257_added_entity_Share.xml" relativeToChangelogFile="false"/>
<include file="config/liquibase/changelog/20190418143053_added_entity_Asset.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/20190424123258_added_entity_Asset.xml" relativeToChangelogFile="false"/>
<include file="config/liquibase/changelog/20190418143054_added_entity_SepaMandate.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/20190424123259_added_entity_SepaMandate.xml" relativeToChangelogFile="false"/>
<!-- jhipster-needle-liquibase-add-changelog - JHipster will add liquibase changelogs here --> <!-- jhipster-needle-liquibase-add-changelog - JHipster will add liquibase changelogs here -->
<include file="config/liquibase/changelog/20190418143051_added_entity_constraints_Membership.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/20190424123256_added_entity_constraints_Membership.xml" relativeToChangelogFile="false"/>
<include file="config/liquibase/changelog/20190418143052_added_entity_constraints_Share.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/20190424123257_added_entity_constraints_Share.xml" relativeToChangelogFile="false"/>
<include file="config/liquibase/changelog/20190418143053_added_entity_constraints_Asset.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/20190424123258_added_entity_constraints_Asset.xml" relativeToChangelogFile="false"/>
<include file="config/liquibase/changelog/20190418143054_added_entity_constraints_SepaMandate.xml" relativeToChangelogFile="false"/> <include file="config/liquibase/changelog/20190424123259_added_entity_constraints_SepaMandate.xml" relativeToChangelogFile="false"/>
<!-- jhipster-needle-liquibase-add-constraints-changelog - JHipster will add liquibase constraints changelogs here --> <!-- jhipster-needle-liquibase-add-constraints-changelog - JHipster will add liquibase constraints changelogs here -->
</databaseChangeLog> </databaseChangeLog>

View File

@ -28,7 +28,7 @@
<dt><span jhiTranslate="hsadminNgApp.asset.membership">Membership</span></dt> <dt><span jhiTranslate="hsadminNgApp.asset.membership">Membership</span></dt>
<dd> <dd>
<div *ngIf="asset.membershipId"> <div *ngIf="asset.membershipId">
<a [routerLink]="['/membership', asset.membershipId, 'view']">{{asset.membershipDocumentDate}}</a> <a [routerLink]="['/membership', asset.membershipId, 'view']">{{asset.membershipAdmissionDocumentDate}}</a>
</div> </div>
</dd> </dd>
</dl> </dl>

View File

@ -89,7 +89,7 @@
<label class="form-control-label" jhiTranslate="hsadminNgApp.asset.membership" for="field_membership">Membership</label> <label class="form-control-label" jhiTranslate="hsadminNgApp.asset.membership" for="field_membership">Membership</label>
<select class="form-control" id="field_membership" name="membership" [(ngModel)]="asset.membershipId" required> <select class="form-control" id="field_membership" name="membership" [(ngModel)]="asset.membershipId" required>
<option *ngIf="!editForm.value.membership" [ngValue]="null" selected></option> <option *ngIf="!editForm.value.membership" [ngValue]="null" selected></option>
<option [ngValue]="membershipOption.id" *ngFor="let membershipOption of memberships; trackBy: trackMembershipById">{{membershipOption.documentDate}}</option> <option [ngValue]="membershipOption.id" *ngFor="let membershipOption of memberships; trackBy: trackMembershipById">{{membershipOption.admissionDocumentDate}}</option>
</select> </select>
</div> </div>
<div [hidden]="!(editForm.controls.membership?.dirty && editForm.controls.membership?.invalid)"> <div [hidden]="!(editForm.controls.membership?.dirty && editForm.controls.membership?.invalid)">

View File

@ -20,7 +20,7 @@
<th jhiSortBy="action"><span jhiTranslate="hsadminNgApp.asset.action">Action</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="action"><span jhiTranslate="hsadminNgApp.asset.action">Action</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="amount"><span jhiTranslate="hsadminNgApp.asset.amount">Amount</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="amount"><span jhiTranslate="hsadminNgApp.asset.amount">Amount</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="remark"><span jhiTranslate="hsadminNgApp.asset.remark">Remark</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="remark"><span jhiTranslate="hsadminNgApp.asset.remark">Remark</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="membershipDocumentDate"><span jhiTranslate="hsadminNgApp.asset.membership">Membership</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="membershipAdmissionDocumentDate"><span jhiTranslate="hsadminNgApp.asset.membership">Membership</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
@ -34,7 +34,7 @@
<td>{{asset.remark}}</td> <td>{{asset.remark}}</td>
<td> <td>
<div *ngIf="asset.membershipId"> <div *ngIf="asset.membershipId">
<a [routerLink]="['../membership', asset.membershipId , 'view' ]" >{{asset.membershipDocumentDate}}</a> <a [routerLink]="['../membership', asset.membershipId , 'view' ]" >{{asset.membershipAdmissionDocumentDate}}</a>
</div> </div>
</td> </td>
<td class="text-right"> <td class="text-right">

View File

@ -17,6 +17,34 @@
<dd> <dd>
<span>{{customer.name}}</span> <span>{{customer.name}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.customer.kind">Kind</span></dt>
<dd>
<span jhiTranslate="{{'hsadminNgApp.CustomerKind.' + customer.kind}}">{{customer.kind}}</span>
</dd>
<dt><span jhiTranslate="hsadminNgApp.customer.birthDate">Birth Date</span></dt>
<dd>
<span>{{customer.birthDate}}</span>
</dd>
<dt><span jhiTranslate="hsadminNgApp.customer.birthPlace">Birth Place</span></dt>
<dd>
<span>{{customer.birthPlace}}</span>
</dd>
<dt><span jhiTranslate="hsadminNgApp.customer.registrationCourt">Registration Court</span></dt>
<dd>
<span>{{customer.registrationCourt}}</span>
</dd>
<dt><span jhiTranslate="hsadminNgApp.customer.registrationNumber">Registration Number</span></dt>
<dd>
<span>{{customer.registrationNumber}}</span>
</dd>
<dt><span jhiTranslate="hsadminNgApp.customer.vatRegion">Vat Region</span></dt>
<dd>
<span jhiTranslate="{{'hsadminNgApp.VatRegion.' + customer.vatRegion}}">{{customer.vatRegion}}</span>
</dd>
<dt><span jhiTranslate="hsadminNgApp.customer.vatNumber">Vat Number</span></dt>
<dd>
<span>{{customer.vatNumber}}</span>
</dd>
<dt><span jhiTranslate="hsadminNgApp.customer.contractualSalutation">Contractual Salutation</span></dt> <dt><span jhiTranslate="hsadminNgApp.customer.contractualSalutation">Contractual Salutation</span></dt>
<dd> <dd>
<span>{{customer.contractualSalutation}}</span> <span>{{customer.contractualSalutation}}</span>

View File

@ -66,6 +66,87 @@
</small> </small>
</div> </div>
</div> </div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.customer.kind" for="field_kind">Kind</label>
<select class="form-control" name="kind" [(ngModel)]="customer.kind" id="field_kind" required>
<option value="NATURAL">{{'hsadminNgApp.CustomerKind.NATURAL' | translate}}</option>
<option value="LEGAL">{{'hsadminNgApp.CustomerKind.LEGAL' | translate}}</option>
</select>
<div [hidden]="!(editForm.controls.kind?.dirty && editForm.controls.kind?.invalid)">
<small class="form-text text-danger"
[hidden]="!editForm.controls.kind?.errors?.required" jhiTranslate="entity.validation.required">
This field is required.
</small>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.customer.birthDate" for="field_birthDate">Birth Date</label>
<div class="input-group">
<input id="field_birthDate" type="text" class="form-control" name="birthDate" ngbDatepicker #birthDateDp="ngbDatepicker" [(ngModel)]="customer.birthDate"
/>
<span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="birthDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.customer.birthPlace" for="field_birthPlace">Birth Place</label>
<input type="text" class="form-control" name="birthPlace" id="field_birthPlace"
[(ngModel)]="customer.birthPlace" maxlength="80"/>
<div [hidden]="!(editForm.controls.birthPlace?.dirty && editForm.controls.birthPlace?.invalid)">
<small class="form-text text-danger"
[hidden]="!editForm.controls.birthPlace?.errors?.maxlength" jhiTranslate="entity.validation.maxlength" [translateValues]="{ max: 80 }">
This field cannot be longer than 80 characters.
</small>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.customer.registrationCourt" for="field_registrationCourt">Registration Court</label>
<input type="text" class="form-control" name="registrationCourt" id="field_registrationCourt"
[(ngModel)]="customer.registrationCourt" maxlength="80"/>
<div [hidden]="!(editForm.controls.registrationCourt?.dirty && editForm.controls.registrationCourt?.invalid)">
<small class="form-text text-danger"
[hidden]="!editForm.controls.registrationCourt?.errors?.maxlength" jhiTranslate="entity.validation.maxlength" [translateValues]="{ max: 80 }">
This field cannot be longer than 80 characters.
</small>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.customer.registrationNumber" for="field_registrationNumber">Registration Number</label>
<input type="text" class="form-control" name="registrationNumber" id="field_registrationNumber"
[(ngModel)]="customer.registrationNumber" maxlength="80"/>
<div [hidden]="!(editForm.controls.registrationNumber?.dirty && editForm.controls.registrationNumber?.invalid)">
<small class="form-text text-danger"
[hidden]="!editForm.controls.registrationNumber?.errors?.maxlength" jhiTranslate="entity.validation.maxlength" [translateValues]="{ max: 80 }">
This field cannot be longer than 80 characters.
</small>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.customer.vatRegion" for="field_vatRegion">Vat Region</label>
<select class="form-control" name="vatRegion" [(ngModel)]="customer.vatRegion" id="field_vatRegion" required>
<option value="DOMESTIC">{{'hsadminNgApp.VatRegion.DOMESTIC' | translate}}</option>
<option value="EU">{{'hsadminNgApp.VatRegion.EU' | translate}}</option>
<option value="OTHER">{{'hsadminNgApp.VatRegion.OTHER' | translate}}</option>
</select>
<div [hidden]="!(editForm.controls.vatRegion?.dirty && editForm.controls.vatRegion?.invalid)">
<small class="form-text text-danger"
[hidden]="!editForm.controls.vatRegion?.errors?.required" jhiTranslate="entity.validation.required">
This field is required.
</small>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.customer.vatNumber" for="field_vatNumber">Vat Number</label>
<input type="text" class="form-control" name="vatNumber" id="field_vatNumber"
[(ngModel)]="customer.vatNumber" maxlength="40"/>
<div [hidden]="!(editForm.controls.vatNumber?.dirty && editForm.controls.vatNumber?.invalid)">
<small class="form-text text-danger"
[hidden]="!editForm.controls.vatNumber?.errors?.maxlength" jhiTranslate="entity.validation.maxlength" [translateValues]="{ max: 40 }">
This field cannot be longer than 40 characters.
</small>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.customer.contractualSalutation" for="field_contractualSalutation">Contractual Salutation</label> <label class="form-control-label" jhiTranslate="hsadminNgApp.customer.contractualSalutation" for="field_contractualSalutation">Contractual Salutation</label>
<input type="text" class="form-control" name="contractualSalutation" id="field_contractualSalutation" <input type="text" class="form-control" name="contractualSalutation" id="field_contractualSalutation"

View File

@ -1,8 +1,7 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { HttpResponse, HttpErrorResponse } from '@angular/common/http'; import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { filter, map } from 'rxjs/operators';
import { ICustomer } from 'app/shared/model/customer.model'; import { ICustomer } from 'app/shared/model/customer.model';
import { CustomerService } from './customer.service'; import { CustomerService } from './customer.service';
@ -13,6 +12,7 @@ import { CustomerService } from './customer.service';
export class CustomerUpdateComponent implements OnInit { export class CustomerUpdateComponent implements OnInit {
customer: ICustomer; customer: ICustomer;
isSaving: boolean; isSaving: boolean;
birthDateDp: any;
constructor(protected customerService: CustomerService, protected activatedRoute: ActivatedRoute) {} constructor(protected customerService: CustomerService, protected activatedRoute: ActivatedRoute) {}

View File

@ -18,6 +18,13 @@
<th jhiSortBy="reference"><span jhiTranslate="hsadminNgApp.customer.reference">Reference</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="reference"><span jhiTranslate="hsadminNgApp.customer.reference">Reference</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="prefix"><span jhiTranslate="hsadminNgApp.customer.prefix">Prefix</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="prefix"><span jhiTranslate="hsadminNgApp.customer.prefix">Prefix</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="name"><span jhiTranslate="hsadminNgApp.customer.name">Name</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="name"><span jhiTranslate="hsadminNgApp.customer.name">Name</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="kind"><span jhiTranslate="hsadminNgApp.customer.kind">Kind</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="birthDate"><span jhiTranslate="hsadminNgApp.customer.birthDate">Birth Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="birthPlace"><span jhiTranslate="hsadminNgApp.customer.birthPlace">Birth Place</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="registrationCourt"><span jhiTranslate="hsadminNgApp.customer.registrationCourt">Registration Court</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="registrationNumber"><span jhiTranslate="hsadminNgApp.customer.registrationNumber">Registration Number</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="vatRegion"><span jhiTranslate="hsadminNgApp.customer.vatRegion">Vat Region</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="vatNumber"><span jhiTranslate="hsadminNgApp.customer.vatNumber">Vat Number</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="contractualSalutation"><span jhiTranslate="hsadminNgApp.customer.contractualSalutation">Contractual Salutation</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="contractualSalutation"><span jhiTranslate="hsadminNgApp.customer.contractualSalutation">Contractual Salutation</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="contractualAddress"><span jhiTranslate="hsadminNgApp.customer.contractualAddress">Contractual Address</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="contractualAddress"><span jhiTranslate="hsadminNgApp.customer.contractualAddress">Contractual Address</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="billingSalutation"><span jhiTranslate="hsadminNgApp.customer.billingSalutation">Billing Salutation</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="billingSalutation"><span jhiTranslate="hsadminNgApp.customer.billingSalutation">Billing Salutation</span> <fa-icon [icon]="'sort'"></fa-icon></th>
@ -32,6 +39,13 @@
<td>{{customer.reference}}</td> <td>{{customer.reference}}</td>
<td>{{customer.prefix}}</td> <td>{{customer.prefix}}</td>
<td>{{customer.name}}</td> <td>{{customer.name}}</td>
<td jhiTranslate="{{'hsadminNgApp.CustomerKind.' + customer.kind}}">{{customer.kind}}</td>
<td>{{customer.birthDate | date:'mediumDate'}}</td>
<td>{{customer.birthPlace}}</td>
<td>{{customer.registrationCourt}}</td>
<td>{{customer.registrationNumber}}</td>
<td jhiTranslate="{{'hsadminNgApp.VatRegion.' + customer.vatRegion}}">{{customer.vatRegion}}</td>
<td>{{customer.vatNumber}}</td>
<td>{{customer.contractualSalutation}}</td> <td>{{customer.contractualSalutation}}</td>
<td>{{customer.contractualAddress}}</td> <td>{{customer.contractualAddress}}</td>
<td>{{customer.billingSalutation}}</td> <td>{{customer.billingSalutation}}</td>

View File

@ -1,8 +1,7 @@
import { Component, OnInit, OnDestroy } from '@angular/core'; import { Component, OnDestroy, OnInit } from '@angular/core';
import { HttpErrorResponse, HttpHeaders, HttpResponse } from '@angular/common/http'; import { HttpErrorResponse, HttpHeaders, HttpResponse } from '@angular/common/http';
import { Subscription, Subject } from 'rxjs'; import { Subscription } from 'rxjs';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators'; import { JhiAlertService, JhiEventManager, JhiParseLinks } from 'ng-jhipster';
import { JhiEventManager, JhiParseLinks, JhiAlertService } from 'ng-jhipster';
import { ICustomer } from 'app/shared/model/customer.model'; import { ICustomer } from 'app/shared/model/customer.model';
import { AccountService } from 'app/core'; import { AccountService } from 'app/core';
@ -24,9 +23,6 @@ export class CustomerComponent implements OnInit, OnDestroy {
predicate: any; predicate: any;
reverse: any; reverse: any;
totalItems: number; totalItems: number;
filterValue: any;
filterValueChanged = new Subject<string>();
subscription: Subscription;
constructor( constructor(
protected customerService: CustomerService, protected customerService: CustomerService,
@ -43,25 +39,11 @@ export class CustomerComponent implements OnInit, OnDestroy {
}; };
this.predicate = 'id'; this.predicate = 'id';
this.reverse = true; this.reverse = true;
this.resetFilter();
}
resetFilter() {
this.filterValue = {
number: null,
prefix: null
};
this.loadAll();
} }
loadAll() { loadAll() {
const criteria = {
...(this.filterValue.number && { 'number.equals': this.filterValue.number }),
...(this.filterValue.prefix && { 'prefix.contains': this.filterValue.prefix })
};
this.customerService this.customerService
.query({ .query({
...criteria,
page: this.page, page: this.page,
size: this.itemsPerPage, size: this.itemsPerPage,
sort: this.sort() sort: this.sort()
@ -72,10 +54,6 @@ export class CustomerComponent implements OnInit, OnDestroy {
); );
} }
filter($event) {
this.filterValueChanged.next($event.target.value);
}
reset() { reset() {
this.page = 0; this.page = 0;
this.customers = []; this.customers = [];
@ -93,15 +71,6 @@ export class CustomerComponent implements OnInit, OnDestroy {
this.currentAccount = account; this.currentAccount = account;
}); });
this.registerChangeInCustomers(); this.registerChangeInCustomers();
this.subscription = this.filterValueChanged
.pipe(
debounceTime(500),
distinctUntilChanged((previous: any, current: any) => previous === current)
)
.subscribe(() => {
this.loadAll();
});
} }
ngOnDestroy() { ngOnDestroy() {
@ -127,8 +96,6 @@ export class CustomerComponent implements OnInit, OnDestroy {
protected paginateCustomers(data: ICustomer[], headers: HttpHeaders) { protected paginateCustomers(data: ICustomer[], headers: HttpHeaders) {
this.links = this.parseLinks.parse(headers.get('link')); this.links = this.parseLinks.parse(headers.get('link'));
this.totalItems = parseInt(headers.get('X-Total-Count'), 10); this.totalItems = parseInt(headers.get('X-Total-Count'), 10);
this.page = 0;
this.customers = [];
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
this.customers.push(data[i]); this.customers.push(data[i]);
} }

View File

@ -1,6 +1,9 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { HttpClient, HttpResponse } from '@angular/common/http'; import { HttpClient, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import * as moment from 'moment';
import { DATE_FORMAT } from 'app/shared/constants/input.constants';
import { map } from 'rxjs/operators';
import { SERVER_API_URL } from 'app/app.constants'; import { SERVER_API_URL } from 'app/app.constants';
import { createRequestOption } from 'app/shared'; import { createRequestOption } from 'app/shared';
@ -16,23 +19,56 @@ export class CustomerService {
constructor(protected http: HttpClient) {} constructor(protected http: HttpClient) {}
create(customer: ICustomer): Observable<EntityResponseType> { create(customer: ICustomer): Observable<EntityResponseType> {
return this.http.post<ICustomer>(this.resourceUrl, customer, { observe: 'response' }); const copy = this.convertDateFromClient(customer);
return this.http
.post<ICustomer>(this.resourceUrl, copy, { observe: 'response' })
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
} }
update(customer: ICustomer): Observable<EntityResponseType> { update(customer: ICustomer): Observable<EntityResponseType> {
return this.http.put<ICustomer>(this.resourceUrl, customer, { observe: 'response' }); const copy = this.convertDateFromClient(customer);
return this.http
.put<ICustomer>(this.resourceUrl, copy, { observe: 'response' })
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
} }
find(id: number): Observable<EntityResponseType> { find(id: number): Observable<EntityResponseType> {
return this.http.get<ICustomer>(`${this.resourceUrl}/${id}`, { observe: 'response' }); return this.http
.get<ICustomer>(`${this.resourceUrl}/${id}`, { observe: 'response' })
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
} }
query(req?: any): Observable<EntityArrayResponseType> { query(req?: any): Observable<EntityArrayResponseType> {
const options = createRequestOption(req); const options = createRequestOption(req);
return this.http.get<ICustomer[]>(this.resourceUrl, { params: options, observe: 'response' }); return this.http
.get<ICustomer[]>(this.resourceUrl, { params: options, observe: 'response' })
.pipe(map((res: EntityArrayResponseType) => this.convertDateArrayFromServer(res)));
} }
delete(id: number): Observable<HttpResponse<any>> { delete(id: number): Observable<HttpResponse<any>> {
return this.http.delete<any>(`${this.resourceUrl}/${id}`, { observe: 'response' }); return this.http.delete<any>(`${this.resourceUrl}/${id}`, { observe: 'response' });
} }
protected convertDateFromClient(customer: ICustomer): ICustomer {
const copy: ICustomer = Object.assign({}, customer, {
birthDate: customer.birthDate != null && customer.birthDate.isValid() ? customer.birthDate.format(DATE_FORMAT) : null
});
return copy;
}
protected convertDateFromServer(res: EntityResponseType): EntityResponseType {
if (res.body) {
res.body.birthDate = res.body.birthDate != null ? moment(res.body.birthDate) : null;
}
return res;
}
protected convertDateArrayFromServer(res: EntityArrayResponseType): EntityArrayResponseType {
if (res.body) {
res.body.forEach((customer: ICustomer) => {
customer.birthDate = customer.birthDate != null ? moment(customer.birthDate) : null;
});
}
return res;
}
} }

View File

@ -5,17 +5,21 @@
<hr> <hr>
<jhi-alert-error></jhi-alert-error> <jhi-alert-error></jhi-alert-error>
<dl class="row-md jh-entity-details"> <dl class="row-md jh-entity-details">
<dt><span jhiTranslate="hsadminNgApp.membership.documentDate">Document Date</span></dt> <dt><span jhiTranslate="hsadminNgApp.membership.admissionDocumentDate">Admission Document Date</span></dt>
<dd> <dd>
<span>{{membership.documentDate}}</span> <span>{{membership.admissionDocumentDate}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.membership.memberFrom">Member From</span></dt> <dt><span jhiTranslate="hsadminNgApp.membership.cancellationDocumentDate">Cancellation Document Date</span></dt>
<dd> <dd>
<span>{{membership.memberFrom}}</span> <span>{{membership.cancellationDocumentDate}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.membership.memberUntil">Member Until</span></dt> <dt><span jhiTranslate="hsadminNgApp.membership.memberFromDate">Member From Date</span></dt>
<dd> <dd>
<span>{{membership.memberUntil}}</span> <span>{{membership.memberFromDate}}</span>
</dd>
<dt><span jhiTranslate="hsadminNgApp.membership.memberUntilDate">Member Until Date</span></dt>
<dd>
<span>{{membership.memberUntilDate}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.membership.remark">Remark</span></dt> <dt><span jhiTranslate="hsadminNgApp.membership.remark">Remark</span></dt>
<dd> <dd>

View File

@ -10,44 +10,54 @@
[(ngModel)]="membership.id" readonly /> [(ngModel)]="membership.id" readonly />
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.membership.documentDate" for="field_documentDate">Document Date</label> <label class="form-control-label" jhiTranslate="hsadminNgApp.membership.admissionDocumentDate" for="field_admissionDocumentDate">Admission Document Date</label>
<div class="input-group"> <div class="input-group">
<input id="field_documentDate" type="text" class="form-control" name="documentDate" ngbDatepicker #documentDateDp="ngbDatepicker" [(ngModel)]="membership.documentDate" <input id="field_admissionDocumentDate" type="text" class="form-control" name="admissionDocumentDate" ngbDatepicker #admissionDocumentDateDp="ngbDatepicker" [(ngModel)]="membership.admissionDocumentDate"
required/> required/>
<span class="input-group-append"> <span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="documentDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button> <button type="button" class="btn btn-secondary" (click)="admissionDocumentDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span> </span>
</div> </div>
<div [hidden]="!(editForm.controls.documentDate?.dirty && editForm.controls.documentDate?.invalid)"> <div [hidden]="!(editForm.controls.admissionDocumentDate?.dirty && editForm.controls.admissionDocumentDate?.invalid)">
<small class="form-text text-danger" <small class="form-text text-danger"
[hidden]="!editForm.controls.documentDate?.errors?.required" jhiTranslate="entity.validation.required"> [hidden]="!editForm.controls.admissionDocumentDate?.errors?.required" jhiTranslate="entity.validation.required">
This field is required. This field is required.
</small> </small>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.membership.memberFrom" for="field_memberFrom">Member From</label> <label class="form-control-label" jhiTranslate="hsadminNgApp.membership.cancellationDocumentDate" for="field_cancellationDocumentDate">Cancellation Document Date</label>
<div class="input-group"> <div class="input-group">
<input id="field_memberFrom" type="text" class="form-control" name="memberFrom" ngbDatepicker #memberFromDp="ngbDatepicker" [(ngModel)]="membership.memberFrom" <input id="field_cancellationDocumentDate" type="text" class="form-control" name="cancellationDocumentDate" ngbDatepicker #cancellationDocumentDateDp="ngbDatepicker" [(ngModel)]="membership.cancellationDocumentDate"
required/>
<span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="memberFromDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span>
</div>
<div [hidden]="!(editForm.controls.memberFrom?.dirty && editForm.controls.memberFrom?.invalid)">
<small class="form-text text-danger"
[hidden]="!editForm.controls.memberFrom?.errors?.required" jhiTranslate="entity.validation.required">
This field is required.
</small>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.membership.memberUntil" for="field_memberUntil">Member Until</label>
<div class="input-group">
<input id="field_memberUntil" type="text" class="form-control" name="memberUntil" ngbDatepicker #memberUntilDp="ngbDatepicker" [(ngModel)]="membership.memberUntil"
/> />
<span class="input-group-append"> <span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="memberUntilDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button> <button type="button" class="btn btn-secondary" (click)="cancellationDocumentDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.membership.memberFromDate" for="field_memberFromDate">Member From Date</label>
<div class="input-group">
<input id="field_memberFromDate" type="text" class="form-control" name="memberFromDate" ngbDatepicker #memberFromDateDp="ngbDatepicker" [(ngModel)]="membership.memberFromDate"
required/>
<span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="memberFromDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span>
</div>
<div [hidden]="!(editForm.controls.memberFromDate?.dirty && editForm.controls.memberFromDate?.invalid)">
<small class="form-text text-danger"
[hidden]="!editForm.controls.memberFromDate?.errors?.required" jhiTranslate="entity.validation.required">
This field is required.
</small>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.membership.memberUntilDate" for="field_memberUntilDate">Member Until Date</label>
<div class="input-group">
<input id="field_memberUntilDate" type="text" class="form-control" name="memberUntilDate" ngbDatepicker #memberUntilDateDp="ngbDatepicker" [(ngModel)]="membership.memberUntilDate"
/>
<span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="memberUntilDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span> </span>
</div> </div>
</div> </div>

View File

@ -1,9 +1,8 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { HttpResponse, HttpErrorResponse } from '@angular/common/http'; import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { filter, map } from 'rxjs/operators'; import { filter, map } from 'rxjs/operators';
import * as moment from 'moment';
import { JhiAlertService } from 'ng-jhipster'; import { JhiAlertService } from 'ng-jhipster';
import { IMembership } from 'app/shared/model/membership.model'; import { IMembership } from 'app/shared/model/membership.model';
import { MembershipService } from './membership.service'; import { MembershipService } from './membership.service';
@ -19,9 +18,10 @@ export class MembershipUpdateComponent implements OnInit {
isSaving: boolean; isSaving: boolean;
customers: ICustomer[]; customers: ICustomer[];
documentDateDp: any; admissionDocumentDateDp: any;
memberFromDp: any; cancellationDocumentDateDp: any;
memberUntilDp: any; memberFromDateDp: any;
memberUntilDateDp: any;
constructor( constructor(
protected jhiAlertService: JhiAlertService, protected jhiAlertService: JhiAlertService,

View File

@ -15,9 +15,10 @@
<thead> <thead>
<tr jhiSort [(predicate)]="predicate" [(ascending)]="reverse" [callback]="reset.bind(this)"> <tr jhiSort [(predicate)]="predicate" [(ascending)]="reverse" [callback]="reset.bind(this)">
<th jhiSortBy="id"><span jhiTranslate="global.field.id">ID</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="id"><span jhiTranslate="global.field.id">ID</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="documentDate"><span jhiTranslate="hsadminNgApp.membership.documentDate">Document Date</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="admissionDocumentDate"><span jhiTranslate="hsadminNgApp.membership.admissionDocumentDate">Admission Document Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="memberFrom"><span jhiTranslate="hsadminNgApp.membership.memberFrom">Member From</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="cancellationDocumentDate"><span jhiTranslate="hsadminNgApp.membership.cancellationDocumentDate">Cancellation Document Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="memberUntil"><span jhiTranslate="hsadminNgApp.membership.memberUntil">Member Until</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="memberFromDate"><span jhiTranslate="hsadminNgApp.membership.memberFromDate">Member From Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="memberUntilDate"><span jhiTranslate="hsadminNgApp.membership.memberUntilDate">Member Until Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="remark"><span jhiTranslate="hsadminNgApp.membership.remark">Remark</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="remark"><span jhiTranslate="hsadminNgApp.membership.remark">Remark</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="customerPrefix"><span jhiTranslate="hsadminNgApp.membership.customer">Customer</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="customerPrefix"><span jhiTranslate="hsadminNgApp.membership.customer">Customer</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th></th> <th></th>
@ -26,9 +27,10 @@
<tbody infinite-scroll (scrolled)="loadPage(page + 1)" [infiniteScrollDisabled]="page >= links['last']" [infiniteScrollDistance]="0"> <tbody infinite-scroll (scrolled)="loadPage(page + 1)" [infiniteScrollDisabled]="page >= links['last']" [infiniteScrollDistance]="0">
<tr *ngFor="let membership of memberships ;trackBy: trackId"> <tr *ngFor="let membership of memberships ;trackBy: trackId">
<td><a [routerLink]="['/membership', membership.id, 'view' ]">{{membership.id}}</a></td> <td><a [routerLink]="['/membership', membership.id, 'view' ]">{{membership.id}}</a></td>
<td>{{membership.documentDate | date:'mediumDate'}}</td> <td>{{membership.admissionDocumentDate | date:'mediumDate'}}</td>
<td>{{membership.memberFrom | date:'mediumDate'}}</td> <td>{{membership.cancellationDocumentDate | date:'mediumDate'}}</td>
<td>{{membership.memberUntil | date:'mediumDate'}}</td> <td>{{membership.memberFromDate | date:'mediumDate'}}</td>
<td>{{membership.memberUntilDate | date:'mediumDate'}}</td>
<td>{{membership.remark}}</td> <td>{{membership.remark}}</td>
<td> <td>
<div *ngIf="membership.customerId"> <div *ngIf="membership.customerId">

View File

@ -51,20 +51,33 @@ export class MembershipService {
protected convertDateFromClient(membership: IMembership): IMembership { protected convertDateFromClient(membership: IMembership): IMembership {
const copy: IMembership = Object.assign({}, membership, { const copy: IMembership = Object.assign({}, membership, {
documentDate: admissionDocumentDate:
membership.documentDate != null && membership.documentDate.isValid() ? membership.documentDate.format(DATE_FORMAT) : null, membership.admissionDocumentDate != null && membership.admissionDocumentDate.isValid()
memberFrom: membership.memberFrom != null && membership.memberFrom.isValid() ? membership.memberFrom.format(DATE_FORMAT) : null, ? membership.admissionDocumentDate.format(DATE_FORMAT)
memberUntil: : null,
membership.memberUntil != null && membership.memberUntil.isValid() ? membership.memberUntil.format(DATE_FORMAT) : null cancellationDocumentDate:
membership.cancellationDocumentDate != null && membership.cancellationDocumentDate.isValid()
? membership.cancellationDocumentDate.format(DATE_FORMAT)
: null,
memberFromDate:
membership.memberFromDate != null && membership.memberFromDate.isValid()
? membership.memberFromDate.format(DATE_FORMAT)
: null,
memberUntilDate:
membership.memberUntilDate != null && membership.memberUntilDate.isValid()
? membership.memberUntilDate.format(DATE_FORMAT)
: null
}); });
return copy; return copy;
} }
protected convertDateFromServer(res: EntityResponseType): EntityResponseType { protected convertDateFromServer(res: EntityResponseType): EntityResponseType {
if (res.body) { if (res.body) {
res.body.documentDate = res.body.documentDate != null ? moment(res.body.documentDate) : null; res.body.admissionDocumentDate = res.body.admissionDocumentDate != null ? moment(res.body.admissionDocumentDate) : null;
res.body.memberFrom = res.body.memberFrom != null ? moment(res.body.memberFrom) : null; res.body.cancellationDocumentDate =
res.body.memberUntil = res.body.memberUntil != null ? moment(res.body.memberUntil) : null; res.body.cancellationDocumentDate != null ? moment(res.body.cancellationDocumentDate) : null;
res.body.memberFromDate = res.body.memberFromDate != null ? moment(res.body.memberFromDate) : null;
res.body.memberUntilDate = res.body.memberUntilDate != null ? moment(res.body.memberUntilDate) : null;
} }
return res; return res;
} }
@ -72,9 +85,12 @@ export class MembershipService {
protected convertDateArrayFromServer(res: EntityArrayResponseType): EntityArrayResponseType { protected convertDateArrayFromServer(res: EntityArrayResponseType): EntityArrayResponseType {
if (res.body) { if (res.body) {
res.body.forEach((membership: IMembership) => { res.body.forEach((membership: IMembership) => {
membership.documentDate = membership.documentDate != null ? moment(membership.documentDate) : null; membership.admissionDocumentDate =
membership.memberFrom = membership.memberFrom != null ? moment(membership.memberFrom) : null; membership.admissionDocumentDate != null ? moment(membership.admissionDocumentDate) : null;
membership.memberUntil = membership.memberUntil != null ? moment(membership.memberUntil) : null; membership.cancellationDocumentDate =
membership.cancellationDocumentDate != null ? moment(membership.cancellationDocumentDate) : null;
membership.memberFromDate = membership.memberFromDate != null ? moment(membership.memberFromDate) : null;
membership.memberUntilDate = membership.memberUntilDate != null ? moment(membership.memberUntilDate) : null;
}); });
} }
return res; return res;

View File

@ -17,25 +17,25 @@
<dd> <dd>
<span>{{sepaMandate.bic}}</span> <span>{{sepaMandate.bic}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.sepaMandate.documentDate">Document Date</span></dt> <dt><span jhiTranslate="hsadminNgApp.sepaMandate.grantingDocumentDate">Granting Document Date</span></dt>
<dd> <dd>
<span>{{sepaMandate.documentDate}}</span> <span>{{sepaMandate.grantingDocumentDate}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.sepaMandate.validFrom">Valid From</span></dt> <dt><span jhiTranslate="hsadminNgApp.sepaMandate.revokationDocumentDate">Revokation Document Date</span></dt>
<dd> <dd>
<span>{{sepaMandate.validFrom}}</span> <span>{{sepaMandate.revokationDocumentDate}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.sepaMandate.validUntil">Valid Until</span></dt> <dt><span jhiTranslate="hsadminNgApp.sepaMandate.validFromDate">Valid From Date</span></dt>
<dd> <dd>
<span>{{sepaMandate.validUntil}}</span> <span>{{sepaMandate.validFromDate}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.sepaMandate.lastUsed">Last Used</span></dt> <dt><span jhiTranslate="hsadminNgApp.sepaMandate.validUntilDate">Valid Until Date</span></dt>
<dd> <dd>
<span>{{sepaMandate.lastUsed}}</span> <span>{{sepaMandate.validUntilDate}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.sepaMandate.cancellationDate">Cancellation Date</span></dt> <dt><span jhiTranslate="hsadminNgApp.sepaMandate.lastUsedDate">Last Used Date</span></dt>
<dd> <dd>
<span>{{sepaMandate.cancellationDate}}</span> <span>{{sepaMandate.lastUsedDate}}</span>
</dd> </dd>
<dt><span jhiTranslate="hsadminNgApp.sepaMandate.remark">Remark</span></dt> <dt><span jhiTranslate="hsadminNgApp.sepaMandate.remark">Remark</span></dt>
<dd> <dd>

View File

@ -47,64 +47,64 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.documentDate" for="field_documentDate">Document Date</label> <label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.grantingDocumentDate" for="field_grantingDocumentDate">Granting Document Date</label>
<div class="input-group"> <div class="input-group">
<input id="field_documentDate" type="text" class="form-control" name="documentDate" ngbDatepicker #documentDateDp="ngbDatepicker" [(ngModel)]="sepaMandate.documentDate" <input id="field_grantingDocumentDate" type="text" class="form-control" name="grantingDocumentDate" ngbDatepicker #grantingDocumentDateDp="ngbDatepicker" [(ngModel)]="sepaMandate.grantingDocumentDate"
required/> required/>
<span class="input-group-append"> <span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="documentDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button> <button type="button" class="btn btn-secondary" (click)="grantingDocumentDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span> </span>
</div> </div>
<div [hidden]="!(editForm.controls.documentDate?.dirty && editForm.controls.documentDate?.invalid)"> <div [hidden]="!(editForm.controls.grantingDocumentDate?.dirty && editForm.controls.grantingDocumentDate?.invalid)">
<small class="form-text text-danger" <small class="form-text text-danger"
[hidden]="!editForm.controls.documentDate?.errors?.required" jhiTranslate="entity.validation.required"> [hidden]="!editForm.controls.grantingDocumentDate?.errors?.required" jhiTranslate="entity.validation.required">
This field is required. This field is required.
</small> </small>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.validFrom" for="field_validFrom">Valid From</label> <label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.revokationDocumentDate" for="field_revokationDocumentDate">Revokation Document Date</label>
<div class="input-group"> <div class="input-group">
<input id="field_validFrom" type="text" class="form-control" name="validFrom" ngbDatepicker #validFromDp="ngbDatepicker" [(ngModel)]="sepaMandate.validFrom" <input id="field_revokationDocumentDate" type="text" class="form-control" name="revokationDocumentDate" ngbDatepicker #revokationDocumentDateDp="ngbDatepicker" [(ngModel)]="sepaMandate.revokationDocumentDate"
required/> />
<span class="input-group-append"> <span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="validFromDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button> <button type="button" class="btn btn-secondary" (click)="revokationDocumentDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span> </span>
</div> </div>
<div [hidden]="!(editForm.controls.validFrom?.dirty && editForm.controls.validFrom?.invalid)"> </div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.validFromDate" for="field_validFromDate">Valid From Date</label>
<div class="input-group">
<input id="field_validFromDate" type="text" class="form-control" name="validFromDate" ngbDatepicker #validFromDateDp="ngbDatepicker" [(ngModel)]="sepaMandate.validFromDate"
required/>
<span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="validFromDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span>
</div>
<div [hidden]="!(editForm.controls.validFromDate?.dirty && editForm.controls.validFromDate?.invalid)">
<small class="form-text text-danger" <small class="form-text text-danger"
[hidden]="!editForm.controls.validFrom?.errors?.required" jhiTranslate="entity.validation.required"> [hidden]="!editForm.controls.validFromDate?.errors?.required" jhiTranslate="entity.validation.required">
This field is required. This field is required.
</small> </small>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.validUntil" for="field_validUntil">Valid Until</label> <label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.validUntilDate" for="field_validUntilDate">Valid Until Date</label>
<div class="input-group"> <div class="input-group">
<input id="field_validUntil" type="text" class="form-control" name="validUntil" ngbDatepicker #validUntilDp="ngbDatepicker" [(ngModel)]="sepaMandate.validUntil" <input id="field_validUntilDate" type="text" class="form-control" name="validUntilDate" ngbDatepicker #validUntilDateDp="ngbDatepicker" [(ngModel)]="sepaMandate.validUntilDate"
/> />
<span class="input-group-append"> <span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="validUntilDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button> <button type="button" class="btn btn-secondary" (click)="validUntilDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span> </span>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.lastUsed" for="field_lastUsed">Last Used</label> <label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.lastUsedDate" for="field_lastUsedDate">Last Used Date</label>
<div class="input-group"> <div class="input-group">
<input id="field_lastUsed" type="text" class="form-control" name="lastUsed" ngbDatepicker #lastUsedDp="ngbDatepicker" [(ngModel)]="sepaMandate.lastUsed" <input id="field_lastUsedDate" type="text" class="form-control" name="lastUsedDate" ngbDatepicker #lastUsedDateDp="ngbDatepicker" [(ngModel)]="sepaMandate.lastUsedDate"
/> />
<span class="input-group-append"> <span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="lastUsedDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button> <button type="button" class="btn btn-secondary" (click)="lastUsedDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span>
</div>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="hsadminNgApp.sepaMandate.cancellationDate" for="field_cancellationDate">Cancellation Date</label>
<div class="input-group">
<input id="field_cancellationDate" type="text" class="form-control" name="cancellationDate" ngbDatepicker #cancellationDateDp="ngbDatepicker" [(ngModel)]="sepaMandate.cancellationDate"
/>
<span class="input-group-append">
<button type="button" class="btn btn-secondary" (click)="cancellationDateDp.toggle()"><fa-icon [icon]="'calendar-alt'"></fa-icon></button>
</span> </span>
</div> </div>
</div> </div>

View File

@ -1,9 +1,8 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { HttpResponse, HttpErrorResponse } from '@angular/common/http'; import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { filter, map } from 'rxjs/operators'; import { filter, map } from 'rxjs/operators';
import * as moment from 'moment';
import { JhiAlertService } from 'ng-jhipster'; import { JhiAlertService } from 'ng-jhipster';
import { ISepaMandate } from 'app/shared/model/sepa-mandate.model'; import { ISepaMandate } from 'app/shared/model/sepa-mandate.model';
import { SepaMandateService } from './sepa-mandate.service'; import { SepaMandateService } from './sepa-mandate.service';
@ -19,11 +18,11 @@ export class SepaMandateUpdateComponent implements OnInit {
isSaving: boolean; isSaving: boolean;
customers: ICustomer[]; customers: ICustomer[];
documentDateDp: any; grantingDocumentDateDp: any;
validFromDp: any; revokationDocumentDateDp: any;
validUntilDp: any; validFromDateDp: any;
lastUsedDp: any; validUntilDateDp: any;
cancellationDateDp: any; lastUsedDateDp: any;
constructor( constructor(
protected jhiAlertService: JhiAlertService, protected jhiAlertService: JhiAlertService,

View File

@ -18,11 +18,11 @@
<th jhiSortBy="reference"><span jhiTranslate="hsadminNgApp.sepaMandate.reference">Reference</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="reference"><span jhiTranslate="hsadminNgApp.sepaMandate.reference">Reference</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="iban"><span jhiTranslate="hsadminNgApp.sepaMandate.iban">Iban</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="iban"><span jhiTranslate="hsadminNgApp.sepaMandate.iban">Iban</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="bic"><span jhiTranslate="hsadminNgApp.sepaMandate.bic">Bic</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="bic"><span jhiTranslate="hsadminNgApp.sepaMandate.bic">Bic</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="documentDate"><span jhiTranslate="hsadminNgApp.sepaMandate.documentDate">Document Date</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="grantingDocumentDate"><span jhiTranslate="hsadminNgApp.sepaMandate.grantingDocumentDate">Granting Document Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="validFrom"><span jhiTranslate="hsadminNgApp.sepaMandate.validFrom">Valid From</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="revokationDocumentDate"><span jhiTranslate="hsadminNgApp.sepaMandate.revokationDocumentDate">Revokation Document Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="validUntil"><span jhiTranslate="hsadminNgApp.sepaMandate.validUntil">Valid Until</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="validFromDate"><span jhiTranslate="hsadminNgApp.sepaMandate.validFromDate">Valid From Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="lastUsed"><span jhiTranslate="hsadminNgApp.sepaMandate.lastUsed">Last Used</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="validUntilDate"><span jhiTranslate="hsadminNgApp.sepaMandate.validUntilDate">Valid Until Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="cancellationDate"><span jhiTranslate="hsadminNgApp.sepaMandate.cancellationDate">Cancellation Date</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="lastUsedDate"><span jhiTranslate="hsadminNgApp.sepaMandate.lastUsedDate">Last Used Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="remark"><span jhiTranslate="hsadminNgApp.sepaMandate.remark">Remark</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="remark"><span jhiTranslate="hsadminNgApp.sepaMandate.remark">Remark</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="customerPrefix"><span jhiTranslate="hsadminNgApp.sepaMandate.customer">Customer</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="customerPrefix"><span jhiTranslate="hsadminNgApp.sepaMandate.customer">Customer</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th></th> <th></th>
@ -34,11 +34,11 @@
<td>{{sepaMandate.reference}}</td> <td>{{sepaMandate.reference}}</td>
<td>{{sepaMandate.iban}}</td> <td>{{sepaMandate.iban}}</td>
<td>{{sepaMandate.bic}}</td> <td>{{sepaMandate.bic}}</td>
<td>{{sepaMandate.documentDate | date:'mediumDate'}}</td> <td>{{sepaMandate.grantingDocumentDate | date:'mediumDate'}}</td>
<td>{{sepaMandate.validFrom | date:'mediumDate'}}</td> <td>{{sepaMandate.revokationDocumentDate | date:'mediumDate'}}</td>
<td>{{sepaMandate.validUntil | date:'mediumDate'}}</td> <td>{{sepaMandate.validFromDate | date:'mediumDate'}}</td>
<td>{{sepaMandate.lastUsed | date:'mediumDate'}}</td> <td>{{sepaMandate.validUntilDate | date:'mediumDate'}}</td>
<td>{{sepaMandate.cancellationDate | date:'mediumDate'}}</td> <td>{{sepaMandate.lastUsedDate | date:'mediumDate'}}</td>
<td>{{sepaMandate.remark}}</td> <td>{{sepaMandate.remark}}</td>
<td> <td>
<div *ngIf="sepaMandate.customerId"> <div *ngIf="sepaMandate.customerId">

View File

@ -51,29 +51,35 @@ export class SepaMandateService {
protected convertDateFromClient(sepaMandate: ISepaMandate): ISepaMandate { protected convertDateFromClient(sepaMandate: ISepaMandate): ISepaMandate {
const copy: ISepaMandate = Object.assign({}, sepaMandate, { const copy: ISepaMandate = Object.assign({}, sepaMandate, {
documentDate: grantingDocumentDate:
sepaMandate.documentDate != null && sepaMandate.documentDate.isValid() sepaMandate.grantingDocumentDate != null && sepaMandate.grantingDocumentDate.isValid()
? sepaMandate.documentDate.format(DATE_FORMAT) ? sepaMandate.grantingDocumentDate.format(DATE_FORMAT)
: null, : null,
validFrom: sepaMandate.validFrom != null && sepaMandate.validFrom.isValid() ? sepaMandate.validFrom.format(DATE_FORMAT) : null, revokationDocumentDate:
validUntil: sepaMandate.revokationDocumentDate != null && sepaMandate.revokationDocumentDate.isValid()
sepaMandate.validUntil != null && sepaMandate.validUntil.isValid() ? sepaMandate.validUntil.format(DATE_FORMAT) : null, ? sepaMandate.revokationDocumentDate.format(DATE_FORMAT)
lastUsed: sepaMandate.lastUsed != null && sepaMandate.lastUsed.isValid() ? sepaMandate.lastUsed.format(DATE_FORMAT) : null, : null,
cancellationDate: validFromDate:
sepaMandate.cancellationDate != null && sepaMandate.cancellationDate.isValid() sepaMandate.validFromDate != null && sepaMandate.validFromDate.isValid()
? sepaMandate.cancellationDate.format(DATE_FORMAT) ? sepaMandate.validFromDate.format(DATE_FORMAT)
: null : null,
validUntilDate:
sepaMandate.validUntilDate != null && sepaMandate.validUntilDate.isValid()
? sepaMandate.validUntilDate.format(DATE_FORMAT)
: null,
lastUsedDate:
sepaMandate.lastUsedDate != null && sepaMandate.lastUsedDate.isValid() ? sepaMandate.lastUsedDate.format(DATE_FORMAT) : null
}); });
return copy; return copy;
} }
protected convertDateFromServer(res: EntityResponseType): EntityResponseType { protected convertDateFromServer(res: EntityResponseType): EntityResponseType {
if (res.body) { if (res.body) {
res.body.documentDate = res.body.documentDate != null ? moment(res.body.documentDate) : null; res.body.grantingDocumentDate = res.body.grantingDocumentDate != null ? moment(res.body.grantingDocumentDate) : null;
res.body.validFrom = res.body.validFrom != null ? moment(res.body.validFrom) : null; res.body.revokationDocumentDate = res.body.revokationDocumentDate != null ? moment(res.body.revokationDocumentDate) : null;
res.body.validUntil = res.body.validUntil != null ? moment(res.body.validUntil) : null; res.body.validFromDate = res.body.validFromDate != null ? moment(res.body.validFromDate) : null;
res.body.lastUsed = res.body.lastUsed != null ? moment(res.body.lastUsed) : null; res.body.validUntilDate = res.body.validUntilDate != null ? moment(res.body.validUntilDate) : null;
res.body.cancellationDate = res.body.cancellationDate != null ? moment(res.body.cancellationDate) : null; res.body.lastUsedDate = res.body.lastUsedDate != null ? moment(res.body.lastUsedDate) : null;
} }
return res; return res;
} }
@ -81,11 +87,13 @@ export class SepaMandateService {
protected convertDateArrayFromServer(res: EntityArrayResponseType): EntityArrayResponseType { protected convertDateArrayFromServer(res: EntityArrayResponseType): EntityArrayResponseType {
if (res.body) { if (res.body) {
res.body.forEach((sepaMandate: ISepaMandate) => { res.body.forEach((sepaMandate: ISepaMandate) => {
sepaMandate.documentDate = sepaMandate.documentDate != null ? moment(sepaMandate.documentDate) : null; sepaMandate.grantingDocumentDate =
sepaMandate.validFrom = sepaMandate.validFrom != null ? moment(sepaMandate.validFrom) : null; sepaMandate.grantingDocumentDate != null ? moment(sepaMandate.grantingDocumentDate) : null;
sepaMandate.validUntil = sepaMandate.validUntil != null ? moment(sepaMandate.validUntil) : null; sepaMandate.revokationDocumentDate =
sepaMandate.lastUsed = sepaMandate.lastUsed != null ? moment(sepaMandate.lastUsed) : null; sepaMandate.revokationDocumentDate != null ? moment(sepaMandate.revokationDocumentDate) : null;
sepaMandate.cancellationDate = sepaMandate.cancellationDate != null ? moment(sepaMandate.cancellationDate) : null; sepaMandate.validFromDate = sepaMandate.validFromDate != null ? moment(sepaMandate.validFromDate) : null;
sepaMandate.validUntilDate = sepaMandate.validUntilDate != null ? moment(sepaMandate.validUntilDate) : null;
sepaMandate.lastUsedDate = sepaMandate.lastUsedDate != null ? moment(sepaMandate.lastUsedDate) : null;
}); });
} }
return res; return res;

View File

@ -28,7 +28,7 @@
<dt><span jhiTranslate="hsadminNgApp.share.membership">Membership</span></dt> <dt><span jhiTranslate="hsadminNgApp.share.membership">Membership</span></dt>
<dd> <dd>
<div *ngIf="share.membershipId"> <div *ngIf="share.membershipId">
<a [routerLink]="['/membership', share.membershipId, 'view']">{{share.membershipDocumentDate}}</a> <a [routerLink]="['/membership', share.membershipId, 'view']">{{share.membershipAdmissionDocumentDate}}</a>
</div> </div>
</dd> </dd>
</dl> </dl>

View File

@ -85,7 +85,7 @@
<label class="form-control-label" jhiTranslate="hsadminNgApp.share.membership" for="field_membership">Membership</label> <label class="form-control-label" jhiTranslate="hsadminNgApp.share.membership" for="field_membership">Membership</label>
<select class="form-control" id="field_membership" name="membership" [(ngModel)]="share.membershipId" required> <select class="form-control" id="field_membership" name="membership" [(ngModel)]="share.membershipId" required>
<option *ngIf="!editForm.value.membership" [ngValue]="null" selected></option> <option *ngIf="!editForm.value.membership" [ngValue]="null" selected></option>
<option [ngValue]="membershipOption.id" *ngFor="let membershipOption of memberships; trackBy: trackMembershipById">{{membershipOption.documentDate}}</option> <option [ngValue]="membershipOption.id" *ngFor="let membershipOption of memberships; trackBy: trackMembershipById">{{membershipOption.admissionDocumentDate}}</option>
</select> </select>
</div> </div>
<div [hidden]="!(editForm.controls.membership?.dirty && editForm.controls.membership?.invalid)"> <div [hidden]="!(editForm.controls.membership?.dirty && editForm.controls.membership?.invalid)">

View File

@ -20,7 +20,7 @@
<th jhiSortBy="action"><span jhiTranslate="hsadminNgApp.share.action">Action</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="action"><span jhiTranslate="hsadminNgApp.share.action">Action</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="quantity"><span jhiTranslate="hsadminNgApp.share.quantity">Quantity</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="quantity"><span jhiTranslate="hsadminNgApp.share.quantity">Quantity</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="remark"><span jhiTranslate="hsadminNgApp.share.remark">Remark</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="remark"><span jhiTranslate="hsadminNgApp.share.remark">Remark</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th jhiSortBy="membershipDocumentDate"><span jhiTranslate="hsadminNgApp.share.membership">Membership</span> <fa-icon [icon]="'sort'"></fa-icon></th> <th jhiSortBy="membershipAdmissionDocumentDate"><span jhiTranslate="hsadminNgApp.share.membership">Membership</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
@ -34,7 +34,7 @@
<td>{{share.remark}}</td> <td>{{share.remark}}</td>
<td> <td>
<div *ngIf="share.membershipId"> <div *ngIf="share.membershipId">
<a [routerLink]="['../membership', share.membershipId , 'view' ]" >{{share.membershipDocumentDate}}</a> <a [routerLink]="['../membership', share.membershipId , 'view' ]" >{{share.membershipAdmissionDocumentDate}}</a>
</div> </div>
</td> </td>
<td class="text-right"> <td class="text-right">

View File

@ -16,7 +16,7 @@ export interface IAsset {
action?: AssetAction; action?: AssetAction;
amount?: number; amount?: number;
remark?: string; remark?: string;
membershipDocumentDate?: string; membershipAdmissionDocumentDate?: string;
membershipId?: number; membershipId?: number;
} }
@ -28,7 +28,7 @@ export class Asset implements IAsset {
public action?: AssetAction, public action?: AssetAction,
public amount?: number, public amount?: number,
public remark?: string, public remark?: string,
public membershipDocumentDate?: string, public membershipAdmissionDocumentDate?: string,
public membershipId?: number public membershipId?: number
) {} ) {}
} }

View File

@ -1,11 +1,30 @@
import { Moment } from 'moment';
import { IMembership } from 'app/shared/model/membership.model'; import { IMembership } from 'app/shared/model/membership.model';
import { ISepaMandate } from 'app/shared/model/sepa-mandate.model'; import { ISepaMandate } from 'app/shared/model/sepa-mandate.model';
export const enum CustomerKind {
NATURAL = 'NATURAL',
LEGAL = 'LEGAL'
}
export const enum VatRegion {
DOMESTIC = 'DOMESTIC',
EU = 'EU',
OTHER = 'OTHER'
}
export interface ICustomer { export interface ICustomer {
id?: number; id?: number;
reference?: number; reference?: number;
prefix?: string; prefix?: string;
name?: string; name?: string;
kind?: CustomerKind;
birthDate?: Moment;
birthPlace?: string;
registrationCourt?: string;
registrationNumber?: string;
vatRegion?: VatRegion;
vatNumber?: string;
contractualSalutation?: string; contractualSalutation?: string;
contractualAddress?: string; contractualAddress?: string;
billingSalutation?: string; billingSalutation?: string;
@ -21,6 +40,13 @@ export class Customer implements ICustomer {
public reference?: number, public reference?: number,
public prefix?: string, public prefix?: string,
public name?: string, public name?: string,
public kind?: CustomerKind,
public birthDate?: Moment,
public birthPlace?: string,
public registrationCourt?: string,
public registrationNumber?: string,
public vatRegion?: VatRegion,
public vatNumber?: string,
public contractualSalutation?: string, public contractualSalutation?: string,
public contractualAddress?: string, public contractualAddress?: string,
public billingSalutation?: string, public billingSalutation?: string,

View File

@ -4,9 +4,10 @@ import { IAsset } from 'app/shared/model/asset.model';
export interface IMembership { export interface IMembership {
id?: number; id?: number;
documentDate?: Moment; admissionDocumentDate?: Moment;
memberFrom?: Moment; cancellationDocumentDate?: Moment;
memberUntil?: Moment; memberFromDate?: Moment;
memberUntilDate?: Moment;
remark?: string; remark?: string;
shares?: IShare[]; shares?: IShare[];
assets?: IAsset[]; assets?: IAsset[];
@ -17,9 +18,10 @@ export interface IMembership {
export class Membership implements IMembership { export class Membership implements IMembership {
constructor( constructor(
public id?: number, public id?: number,
public documentDate?: Moment, public admissionDocumentDate?: Moment,
public memberFrom?: Moment, public cancellationDocumentDate?: Moment,
public memberUntil?: Moment, public memberFromDate?: Moment,
public memberUntilDate?: Moment,
public remark?: string, public remark?: string,
public shares?: IShare[], public shares?: IShare[],
public assets?: IAsset[], public assets?: IAsset[],

View File

@ -5,11 +5,11 @@ export interface ISepaMandate {
reference?: string; reference?: string;
iban?: string; iban?: string;
bic?: string; bic?: string;
documentDate?: Moment; grantingDocumentDate?: Moment;
validFrom?: Moment; revokationDocumentDate?: Moment;
validUntil?: Moment; validFromDate?: Moment;
lastUsed?: Moment; validUntilDate?: Moment;
cancellationDate?: Moment; lastUsedDate?: Moment;
remark?: string; remark?: string;
customerPrefix?: string; customerPrefix?: string;
customerId?: number; customerId?: number;
@ -21,11 +21,11 @@ export class SepaMandate implements ISepaMandate {
public reference?: string, public reference?: string,
public iban?: string, public iban?: string,
public bic?: string, public bic?: string,
public documentDate?: Moment, public grantingDocumentDate?: Moment,
public validFrom?: Moment, public revokationDocumentDate?: Moment,
public validUntil?: Moment, public validFromDate?: Moment,
public lastUsed?: Moment, public validUntilDate?: Moment,
public cancellationDate?: Moment, public lastUsedDate?: Moment,
public remark?: string, public remark?: string,
public customerPrefix?: string, public customerPrefix?: string,
public customerId?: number public customerId?: number

View File

@ -12,7 +12,7 @@ export interface IShare {
action?: ShareAction; action?: ShareAction;
quantity?: number; quantity?: number;
remark?: string; remark?: string;
membershipDocumentDate?: string; membershipAdmissionDocumentDate?: string;
membershipId?: number; membershipId?: number;
} }
@ -24,7 +24,7 @@ export class Share implements IShare {
public action?: ShareAction, public action?: ShareAction,
public quantity?: number, public quantity?: number,
public remark?: string, public remark?: string,
public membershipDocumentDate?: string, public membershipAdmissionDocumentDate?: string,
public membershipId?: number public membershipId?: number
) {} ) {}
} }

View File

@ -2,25 +2,25 @@
"hsadminNgApp": { "hsadminNgApp": {
"asset": { "asset": {
"home": { "home": {
"title": "Assets", "title": "Geschäftsguthaben-Transaktionen",
"createLabel": "Asset erstellen", "createLabel": "Geschäftsguthaben-Transaktion erfassen",
"createOrEditLabel": "Asset erstellen oder bearbeiten" "createOrEditLabel": "Geschäftsguthaben-Transaktion erfassen oder bearbeiten"
}, },
"created": "Asset erstellt mit ID {{ param }}", "created": "Geschäftsguthaben-Transaktion erfasst mit ID {{ param }}",
"updated": "Asset aktualisiert mit ID {{ param }}", "updated": "Geschäftsguthaben-Transaktion aktualisiert mit ID {{ param }}",
"deleted": "Asset gelöscht mit ID {{ param }}", "deleted": "Geschäftsguthaben-Transaktion gelöscht mit ID {{ param }}",
"delete": { "delete": {
"question": "Soll Asset {{ id }} wirklich dauerhaft gelöscht werden?" "question": "Soll die Geschäftsguthaben-Transaktion {{ id }} wirklich dauerhaft gelöscht werden?"
}, },
"detail": { "detail": {
"title": "Asset" "title": "Geschäftsguthaben-Transaktion"
}, },
"documentDate": "Document Date", "documentDate": "Belegdatum",
"valueDate": "Value Date", "valueDate": "Buchungsdatum",
"action": "Action", "action": "Transaktion",
"amount": "Amount", "amount": "Betrag",
"remark": "Remark", "remark": "Bemerkung",
"membership": "Membership" "membership": "zugehörige Mitgliedschaft"
} }
} }
} }

View File

@ -2,12 +2,12 @@
"hsadminNgApp": { "hsadminNgApp": {
"AssetAction": { "AssetAction": {
"null": "", "null": "",
"PAYMENT": "PAYMENT", "PAYMENT": "Einzahlung",
"HANDOVER": "HANDOVER", "HANDOVER": "Übertragung",
"ADOPTION": "ADOPTION", "ADOPTION": "Übernahme",
"LOSS": "LOSS", "LOSS": "Verlust",
"CLEARING": "CLEARING", "CLEARING": "Verrechnung",
"PAYBACK": "PAYBACK" "PAYBACK": "Auszahlung"
} }
} }
} }

View File

@ -1,12 +1,20 @@
{ {
"error": { "error": {
"shareSubscriptionPositivQuantity": "Zeichnungen von Geschäftsanteilen erfordern eine positive Stückzahl", "shareSubscriptionPositiveQuantity": "Zeichnungen von Geschäftsanteilen erfordern eine positive Stückzahl",
"shareCancellationNegativeQuantity": "Kündigungen von Geschäftsanteilen erfordern eine negative Stückzahl", "shareCancellationNegativeQuantity": "Kündigungen von Geschäftsanteilen erfordern eine negative Stückzahl",
"shareTransactionImmutable": "Transaktionen mit Geschäftsanteilen sind unveränderlich", "shareTransactionImmutable": "Transaktionen mit Geschäftsanteilen sind unveränderlich",
"membershipNotDeletable": "Mitgliedschaft kann nicht gelöscht werden, setze stattdessen das 'untilDate'", "membershipNotDeletable": "Mitgliedschaft kann nicht gelöscht werden, setze stattdessen das 'untilDate'",
"untilDateMustBeAfterSinceDate": "Mitgliedshafts-Austrittsdatum muss nach dem Beitrittsdatum liegen", "untilDateMustBeAfterSinceDate": "Mitgliedshafts-Austrittsdatum muss nach dem Beitrittsdatum liegen",
"anotherUncancelledMembershipExists": "Nur eine einzige ungekündigte Mitgliedschaft pro Kunde ist zulässig", "anotherUncancelledMembershipExists": "Nur eine einzige ungekündigte Mitgliedschaft pro Kunde ist zulässig",
"initializationProhibited": "Initialisierung des Feldes unzulässig", "initializationProhibited": "Initialisierung des Feldes unzulässig",
"updateProhibited": "Aktualisierung des Feldes unzulässig" "updateProhibited": "Aktualisierung des Feldes unzulässig",
"documentDateMayNotBeAfterValueDate": "Belegdatum darf nicht vor dem Buchungsdatum liegen",
"assetTransactionImmutable": "Transaktionen mit Geschäftsguthaben sind unveränderlich",
"assetPaymentsPositiveAmount": "Einzahlungen von Geschäftsguthaben erfordern einen positiven Betrag",
"assetAdoptionsPositiveAmount": "Übernahmen von Geschäftsguthaben erfordern einen positiven Betrag",
"assetPaybacksNegativeAmount": "Auszahlungen von Geschäftsguthaben erfordern einen negativen Betrag",
"assetHandoversNegativeAmount": "Übertragungen von Geschäftsguthaben erfordern einen negativen Betrag",
"assetLossesNegativeAmount": "Verluste von Geschäftsguthaben erfordern einen negativen Betrag",
"assetClearingsNegativeAmount": "Verrechnungen von Geschäftsguthaben erfordern einen negativen Betrag"
} }
} }

View File

@ -18,6 +18,13 @@
"reference": "Reference", "reference": "Reference",
"prefix": "Prefix", "prefix": "Prefix",
"name": "Name", "name": "Name",
"kind": "Kind",
"birthDate": "Birth Date",
"birthPlace": "Birth Place",
"registrationCourt": "Registration Court",
"registrationNumber": "Registration Number",
"vatRegion": "Vat Region",
"vatNumber": "Vat Number",
"contractualSalutation": "Contractual Salutation", "contractualSalutation": "Contractual Salutation",
"contractualAddress": "Contractual Address", "contractualAddress": "Contractual Address",
"billingSalutation": "Billing Salutation", "billingSalutation": "Billing Salutation",

View File

@ -0,0 +1,9 @@
{
"hsadminNgApp": {
"CustomerKind": {
"null": "",
"NATURAL": "NATURAL",
"LEGAL": "LEGAL"
}
}
}

View File

@ -15,9 +15,10 @@
"detail": { "detail": {
"title": "Membership" "title": "Membership"
}, },
"documentDate": "Document Date", "admissionDocumentDate": "Admission Document Date",
"memberFrom": "Member From", "cancellationDocumentDate": "Cancellation Document Date",
"memberUntil": "Member Until", "memberFromDate": "Member From Date",
"memberUntilDate": "Member Until Date",
"remark": "Remark", "remark": "Remark",
"share": "Share", "share": "Share",
"asset": "Asset", "asset": "Asset",

View File

@ -18,11 +18,11 @@
"reference": "Reference", "reference": "Reference",
"iban": "Iban", "iban": "Iban",
"bic": "Bic", "bic": "Bic",
"documentDate": "Document Date", "grantingDocumentDate": "Granting Document Date",
"validFrom": "Valid From", "revokationDocumentDate": "Revokation Document Date",
"validUntil": "Valid Until", "validFromDate": "Valid From Date",
"lastUsed": "Last Used", "validUntilDate": "Valid Until Date",
"cancellationDate": "Cancellation Date", "lastUsedDate": "Last Used Date",
"remark": "Remark", "remark": "Remark",
"customer": "Customer" "customer": "Customer"
} }

View File

@ -2,25 +2,25 @@
"hsadminNgApp": { "hsadminNgApp": {
"share": { "share": {
"home": { "home": {
"title": "Shares", "title": "Geschäftsanteil-Transaktionen",
"createLabel": "Share erstellen", "createLabel": "Geschäftsanteil-Transaktion erfassen",
"createOrEditLabel": "Share erstellen oder bearbeiten" "createOrEditLabel": "Geschäftsanteil-Transaktion erfassen oder bearbeiten"
}, },
"created": "Share erstellt mit ID {{ param }}", "created": "Geschäftsanteil-Transaktion erfasst mit ID {{ param }}",
"updated": "Share aktualisiert mit ID {{ param }}", "updated": "Geschäftsanteil-Transaktion aktualisiert mit ID {{ param }}",
"deleted": "Share gelöscht mit ID {{ param }}", "deleted": "Geschäftsanteil-Transaktion gelöscht mit ID {{ param }}",
"delete": { "delete": {
"question": "Soll Share {{ id }} wirklich dauerhaft gelöscht werden?" "question": "Soll die Geschäftsanteil-Transaktion {{ id }} wirklich dauerhaft gelöscht werden?"
}, },
"detail": { "detail": {
"title": "Share" "title": "Geschäftsanteil-Transaktion"
}, },
"documentDate": "Document Date", "documentDate": "Belegdatum",
"valueDate": "Value Date", "valueDate": "Buchungsdatum",
"action": "Action", "action": "Aktion",
"quantity": "Quantity", "quantity": "Anzahl",
"remark": "Remark", "remark": "Bemerkung",
"membership": "Membership" "membership": "zugehörige Mitgliedschaft"
} }
} }
} }

View File

@ -2,8 +2,8 @@
"hsadminNgApp": { "hsadminNgApp": {
"ShareAction": { "ShareAction": {
"null": "", "null": "",
"SUBSCRIPTION": "SUBSCRIPTION", "SUBSCRIPTION": "Zeichnung",
"CANCELLATION": "CANCELLATION" "CANCELLATION": "Kündigung"
} }
} }
} }

View File

@ -0,0 +1,10 @@
{
"hsadminNgApp": {
"VatRegion": {
"null": "",
"DOMESTIC": "DOMESTIC",
"EU": "EU",
"OTHER": "OTHER"
}
}
}

View File

@ -2,25 +2,25 @@
"hsadminNgApp": { "hsadminNgApp": {
"asset": { "asset": {
"home": { "home": {
"title": "Assets", "title": "Asset Transactions",
"createLabel": "Create a new Asset", "createLabel": "Register a new asset transaction",
"createOrEditLabel": "Create or edit a Asset" "createOrEditLabel": "Register or edit an asset transaction"
}, },
"created": "A new Asset is created with identifier {{ param }}", "created": "A new asset transaction is registered with identifier {{ param }}",
"updated": "A Asset is updated with identifier {{ param }}", "updated": "An asset transaction is updated with identifier {{ param }}",
"deleted": "A Asset is deleted with identifier {{ param }}", "deleted": "An asset transaction is deleted with identifier {{ param }}",
"delete": { "delete": {
"question": "Are you sure you want to delete Asset {{ id }}?" "question": "Are you sure you want to delete asset transaction {{ id }}?"
}, },
"detail": { "detail": {
"title": "Asset" "title": "Asset transaction"
}, },
"documentDate": "Document Date", "documentDate": "Document date",
"valueDate": "Value Date", "valueDate": "Value date",
"action": "Action", "action": "Action",
"amount": "Amount", "amount": "Amount",
"remark": "Remark", "remark": "Remark",
"membership": "Membership" "membership": "Related membership"
} }
} }
} }

View File

@ -2,12 +2,12 @@
"hsadminNgApp": { "hsadminNgApp": {
"AssetAction": { "AssetAction": {
"null": "", "null": "",
"PAYMENT": "PAYMENT", "PAYMENT": "Payment",
"HANDOVER": "HANDOVER", "HANDOVER": "Handover",
"ADOPTION": "ADOPTION", "ADOPTION": "Adoption",
"LOSS": "LOSS", "LOSS": "Loss",
"CLEARING": "CLEARING", "CLEARING": "Clearing",
"PAYBACK": "PAYBACK" "PAYBACK": "Payback"
} }
} }
} }

View File

@ -1,12 +1,20 @@
{ {
"error": { "error": {
"shareSubscriptionPositivQuantity": "Share subscriptions require a positive quantity", "shareSubscriptionPositiveQuantity": "Share subscriptions require a positive quantity",
"shareCancellationNegativeQuantity": "Share cancellations require a negative quantity", "shareCancellationNegativeQuantity": "Share cancellations require a negative quantity",
"shareTransactionImmutable": "Share transactions are immutable", "shareTransactionImmutable": "Share transactions are immutable",
"membershipNotDeletable": "Membership cannot be deleted, instead set 'untilDate'", "membershipNotDeletable": "Membership cannot be deleted, instead set 'untilDate'",
"untilDateMustBeAfterSinceDate": "Membership until date must be after since date", "untilDateMustBeAfterSinceDate": "Membership until date must be after since date",
"anotherUncancelledMembershipExists": "Only a single uncancelled membership allowed per customer", "anotherUncancelledMembershipExists": "Only a single uncancelled membership allowed per customer",
"initializationProhibited": "Initialization of the field prohibited", "initializationProhibited": "Initialization of the field prohibited",
"updateProhibited": "Update of the field prohibited" "updateProhibited": "Update of the field prohibited",
"documentDateMayNotBeAfterValueDate": "Document date may not be after value date",
"assetTransactionImmutable": "Asset transactions are immutable",
"assetPaymentsPositiveAmount": "Asset payments require a positive amount",
"assetAdoptionsPositiveAmount": "Asset adoptions require a positive amount",
"assetPaybacksNegativeAmount": "Asset paybacks require a negative amount",
"assetHandoversNegativeAmount": "Asset handovers require a negative amount",
"assetLossesNegativeAmount": "Asset losses require a negative amount",
"assetClearingsNegativeAmount": "Asset clearings require a negative amount"
} }
} }

View File

@ -18,6 +18,13 @@
"reference": "Reference", "reference": "Reference",
"prefix": "Prefix", "prefix": "Prefix",
"name": "Name", "name": "Name",
"kind": "Kind",
"birthDate": "Birth Date",
"birthPlace": "Birth Place",
"registrationCourt": "Registration Court",
"registrationNumber": "Registration Number",
"vatRegion": "Vat Region",
"vatNumber": "Vat Number",
"contractualSalutation": "Contractual Salutation", "contractualSalutation": "Contractual Salutation",
"contractualAddress": "Contractual Address", "contractualAddress": "Contractual Address",
"billingSalutation": "Billing Salutation", "billingSalutation": "Billing Salutation",

View File

@ -0,0 +1,9 @@
{
"hsadminNgApp": {
"CustomerKind": {
"null": "",
"NATURAL": "NATURAL",
"LEGAL": "LEGAL"
}
}
}

View File

@ -15,9 +15,10 @@
"detail": { "detail": {
"title": "Membership" "title": "Membership"
}, },
"documentDate": "Document Date", "admissionDocumentDate": "Admission Document Date",
"memberFrom": "Member From", "cancellationDocumentDate": "Cancellation Document Date",
"memberUntil": "Member Until", "memberFromDate": "Member From Date",
"memberUntilDate": "Member Until Date",
"remark": "Remark", "remark": "Remark",
"share": "Share", "share": "Share",
"asset": "Asset", "asset": "Asset",

View File

@ -18,11 +18,11 @@
"reference": "Reference", "reference": "Reference",
"iban": "Iban", "iban": "Iban",
"bic": "Bic", "bic": "Bic",
"documentDate": "Document Date", "grantingDocumentDate": "Granting Document Date",
"validFrom": "Valid From", "revokationDocumentDate": "Revokation Document Date",
"validUntil": "Valid Until", "validFromDate": "Valid From Date",
"lastUsed": "Last Used", "validUntilDate": "Valid Until Date",
"cancellationDate": "Cancellation Date", "lastUsedDate": "Last Used Date",
"remark": "Remark", "remark": "Remark",
"customer": "Customer" "customer": "Customer"
} }

View File

@ -2,25 +2,25 @@
"hsadminNgApp": { "hsadminNgApp": {
"share": { "share": {
"home": { "home": {
"title": "Shares", "title": "Share Transactions",
"createLabel": "Create a new Share", "createLabel": "Register a new share transaction",
"createOrEditLabel": "Create or edit a Share" "createOrEditLabel": "Register or edit a share transaction"
}, },
"created": "A new Share is created with identifier {{ param }}", "created": "A new share transactions is registered with identifier {{ param }}",
"updated": "A Share is updated with identifier {{ param }}", "updated": "A share transaction is updated with identifier {{ param }}",
"deleted": "A Share is deleted with identifier {{ param }}", "deleted": "A share transcation is deleted with identifier {{ param }}",
"delete": { "delete": {
"question": "Are you sure you want to delete Share {{ id }}?" "question": "Are you sure you want to delete share transaction {{ id }}?"
}, },
"detail": { "detail": {
"title": "Share" "title": "Share transaction"
}, },
"documentDate": "Document Date", "documentDate": "Document date",
"valueDate": "Value Date", "valueDate": "Value date",
"action": "Action", "action": "Action",
"quantity": "Quantity", "quantity": "Quantity",
"remark": "Remark", "remark": "Remark",
"membership": "Membership" "membership": "Related membership"
} }
} }
} }

View File

@ -2,8 +2,8 @@
"hsadminNgApp": { "hsadminNgApp": {
"ShareAction": { "ShareAction": {
"null": "", "null": "",
"SUBSCRIPTION": "SUBSCRIPTION", "SUBSCRIPTION": "Subscription",
"CANCELLATION": "CANCELLATION" "CANCELLATION": "Cancellation"
} }
} }
} }

View File

@ -0,0 +1,10 @@
{
"hsadminNgApp": {
"VatRegion": {
"null": "",
"DOMESTIC": "DOMESTIC",
"EU": "EU",
"OTHER": "OTHER"
}
}
}

View File

@ -5,6 +5,8 @@ import org.apache.commons.lang3.RandomUtils;
import org.hostsharing.hsadminng.HsadminNgApp; import org.hostsharing.hsadminng.HsadminNgApp;
import org.hostsharing.hsadminng.domain.Customer; import org.hostsharing.hsadminng.domain.Customer;
import org.hostsharing.hsadminng.domain.Membership; import org.hostsharing.hsadminng.domain.Membership;
import org.hostsharing.hsadminng.domain.enumeration.CustomerKind;
import org.hostsharing.hsadminng.domain.enumeration.VatRegion;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -20,7 +22,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest(classes = HsadminNgApp.class) @SpringBootTest(classes = HsadminNgApp.class)
@Transactional @Transactional
public class MembershipRepositoryIntTest { public class MembershipRepositoryIntTest {
@Autowired @Autowired
private CustomerRepository customerRepository; private CustomerRepository customerRepository;
@ -72,6 +74,8 @@ public class MembershipRepositoryIntTest {
customer.setReference(RandomUtils.nextInt(10001, 19999)); customer.setReference(RandomUtils.nextInt(10001, 19999));
customer.setName(RandomStringUtils.randomAlphabetic(10)); customer.setName(RandomStringUtils.randomAlphabetic(10));
customer.setContractualAddress(RandomStringUtils.randomAlphabetic(10)); customer.setContractualAddress(RandomStringUtils.randomAlphabetic(10));
customer.setKind(CustomerKind.NATURAL);
customer.setVatRegion(VatRegion.DOMESTIC);
customerRepository.save(customer); customerRepository.save(customer);
return customer; return customer;
} }
@ -80,10 +84,11 @@ public class MembershipRepositoryIntTest {
final Customer customer = createCustomer(); final Customer customer = createCustomer();
final Membership membership = new Membership(); final Membership membership = new Membership();
membership.setCustomer(customer); membership.setCustomer(customer);
membership.setMemberUntil(LocalDate.parse(from)); membership.setMemberFromDate(LocalDate.parse(from));
if (to != null) { if (to != null) {
membership.setMemberFrom(LocalDate.parse(to)); membership.setMemberUntilDate(LocalDate.parse(to));
} }
membership.setAdmissionDocumentDate(membership.getMemberFromDate().minusDays(7));
membershipRepository.save(membership); membershipRepository.save(membership);
return customer; return customer;
} }

View File

@ -0,0 +1,238 @@
package org.hostsharing.hsadminng.service;
import com.google.common.collect.ImmutableList;
import org.apache.commons.lang3.RandomUtils;
import org.assertj.core.api.AbstractThrowableAssert;
import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
import org.hostsharing.hsadminng.service.dto.AssetDTO;
import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException;
import org.junit.Test;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.function.Consumer;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.catchThrowableOfType;
public class AssetValidatorUnitTest {
private AssetValidator assetValidator = new AssetValidator();
@Test
public void shouldAcceptValidIncreasingTransaction() {
for (AssetAction action : ImmutableList.of(AssetAction.PAYMENT, AssetAction.ADOPTION)) {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(action).withAmount("64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isNull();
}
}
@Test
public void shouldAcceptValidDecreasingTransaction() {
for (AssetAction action : ImmutableList.of(AssetAction.PAYBACK, AssetAction.HANDOVER, AssetAction.CLEARING, AssetAction.LOSS)) {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(action).withAmount("-64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isNull();
}
}
@Test
public void shouldAcceptIfDocumentDateEqualsValueDate() {
new GivenAssetValidationTestCase()
.withDocumentDate("2019-04-11").withValueDate("2019-04-11")
.withAction(AssetAction.PAYMENT).withAmount("64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isNull();
}
@Test
public void shouldRejectUpdates() {
new GivenAssetValidationTestCase()
.withId(RandomUtils.nextLong())
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset transactions are immutable", "asset", "assetTransactionImmutable"));
}
@Test
public void shouldRejectIfDocumentDateAfterValueDate() {
new GivenAssetValidationTestCase()
.withDocumentDate("2019-04-13").withValueDate("2019-04-12")
.withAction(AssetAction.PAYMENT).withAmount("64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Document date may not be after value date", "asset", "documentDateMayNotBeAfterValueDate"));
}
@Test
public void shouldRejectIfPaymentWithNegativeAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.PAYMENT).withAmount("-64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset payments require a positive amount", "asset", "assetPaymentsPositiveAmount"));
}
@Test
public void shouldRejectIfPaymentWithZeroAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.PAYMENT).withAmount("0.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset payments require a positive amount", "asset", "assetPaymentsPositiveAmount"));
}
@Test
public void shouldRejectIfAdoptionWithNegativeAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.ADOPTION).withAmount("-64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset adoptions require a positive amount", "asset", "assetAdoptionsPositiveAmount"));
}
@Test
public void shouldRejectIfAdoptionWithZeroAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.ADOPTION).withAmount("0.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset adoptions require a positive amount", "asset", "assetAdoptionsPositiveAmount"));
}
@Test
public void shouldRejectIfPaybackWithPositiveAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.PAYBACK).withAmount("64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset paybacks require a negative amount", "asset", "assetPaybacksNegativeAmount"));
}
@Test
public void shouldRejectIfPaybackWithZeroAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.PAYBACK).withAmount("0.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset paybacks require a negative amount", "asset", "assetPaybacksNegativeAmount"));
}
@Test
public void shouldRejectIfHandoverWithPositiveAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.HANDOVER).withAmount("64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset handovers require a negative amount", "asset", "assetHandoversNegativeAmount"));
}
@Test
public void shouldRejectIfHandoverWithZeroAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.HANDOVER).withAmount("0.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset handovers require a negative amount", "asset", "assetHandoversNegativeAmount"));
}
@Test
public void shouldRejectIfLossWithPositiveAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.LOSS).withAmount("64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset losses require a negative amount", "asset", "assetLossesNegativeAmount"));
}
@Test
public void shouldRejectIfLossWithZeroAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.LOSS).withAmount("0.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset losses require a negative amount", "asset", "assetLossesNegativeAmount"));
}
@Test
public void shouldRejectIfClearingWithPositiveAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.CLEARING).withAmount("64.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset clearings require a negative amount", "asset", "assetClearingsNegativeAmount"));
}
@Test
public void shouldRejectIfClearingWithZeroAmount() {
new GivenAssetValidationTestCase()
.withAnyValidDateValues()
.withAction(AssetAction.CLEARING).withAmount("0.00")
.when((AssetDTO assetDto) -> assetValidator.validate(assetDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Asset clearings require a negative amount", "asset", "assetClearingsNegativeAmount"));
}
// -- only test fixture below ---
private class GivenAssetValidationTestCase {
private final AssetDTO assetDto = new AssetDTO();
private BadRequestAlertException actualException;
public GivenAssetValidationTestCase withId(long id) {
assetDto.setId(id);
return this;
}
GivenAssetValidationTestCase withDocumentDate(String documentDate) {
assetDto.setDocumentDate(LocalDate.parse(documentDate));
return this;
}
GivenAssetValidationTestCase withValueDate(String valueDate) {
assetDto.setValueDate(LocalDate.parse(valueDate));
return this;
}
public GivenAssetValidationTestCase withAnyValidDateValues() {
return withDocumentDate("2019-04-11").withValueDate("2019-04-12");
}
GivenAssetValidationTestCase withAction(AssetAction assetAction) {
assetDto.setAction(assetAction);
return this;
}
GivenAssetValidationTestCase withAmount(String amount) {
assetDto.setAmount(new BigDecimal(amount));
return this;
}
GivenAssetValidationTestCase when(final Consumer<AssetDTO> statement) {
actualException = catchThrowableOfType(() -> assetValidator.validate(assetDto), BadRequestAlertException.class);
return this;
}
public AbstractThrowableAssert<?, ? extends Throwable> thenActualException() {
return assertThat(actualException);
}
}
}

View File

@ -101,12 +101,12 @@ public class MembershipValidatorUnitTest {
GivenMembershipValidationTestCase since(final String sinceDate) { GivenMembershipValidationTestCase since(final String sinceDate) {
membershipDto.setMemberFrom(LocalDate.parse(sinceDate)); membershipDto.setMemberFromDate(LocalDate.parse(sinceDate));
return this; return this;
} }
public GivenMembershipValidationTestCase until(final String untilDate) { public GivenMembershipValidationTestCase until(final String untilDate) {
membershipDto.setMemberUntil(LocalDate.parse(untilDate)); membershipDto.setMemberUntilDate(LocalDate.parse(untilDate));
return this; return this;
} }

View File

@ -19,6 +19,8 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.catchThrowableOfType; import static org.assertj.core.api.Assertions.catchThrowableOfType;
import static org.mockito.ArgumentMatchers.same; import static org.mockito.ArgumentMatchers.same;
import static org.mockito.BDDMockito.given; import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doThrow;
// HINT: In IntelliJ IDEA such unit test classes can be created with Shift-Ctrl-T. // HINT: In IntelliJ IDEA such unit test classes can be created with Shift-Ctrl-T.
@ -31,6 +33,9 @@ public class ShareServiceUnitTest {
@Mock @Mock
private ShareRepository shareRepository; private ShareRepository shareRepository;
@Mock
private ShareValidator shareValidator; // needed for @InjectMocks shareService
@Mock @Mock
private ShareMapper shareMapper; private ShareMapper shareMapper;
@ -55,23 +60,11 @@ public class ShareServiceUnitTest {
} }
@Test @Test
public void saveShouldNotUpdateAnyExistingShareTransaction() { public void saveShouldPersistValidTransactions() {
// given
final ShareDTO givenShareDTO = givenShareDTO(anyNonNullId(), ShareAction.SUBSCRIPTION, anyPositiveNumber());
// when
final Throwable throwException = catchThrowableOfType(() -> shareService.save(givenShareDTO), BadRequestAlertException.class);
// then
assertThat(throwException).isEqualToComparingFieldByField(
new BadRequestAlertException("Share transactions are immutable", "share", "shareTransactionImmutable"));
}
@Test
public void saveShouldPersistSubscriptionWithPositiveAmount() {
// given // given
final ShareDTO givenShareDTO = givenShareDTO(null, ShareAction.SUBSCRIPTION, anyPositiveNumber()); final ShareDTO givenShareDTO = givenShareDTO(null, ShareAction.SUBSCRIPTION, anyPositiveNumber());
// HINT: given(...)...will...() can't be used for void methods, in that case use Mockito's do...() methods
doNothing().when(shareValidator).validate(givenShareDTO);
// when // when
final ShareDTO returnedShareDto = shareService.save(givenShareDTO); final ShareDTO returnedShareDto = shareService.save(givenShareDTO);
@ -81,22 +74,24 @@ public class ShareServiceUnitTest {
} }
@Test @Test
public void saveShouldRejectSubscriptionWithNegativeAmount() { public void saveShouldNotPersistInvalidTransactions() {
// given // given
final ShareDTO givenShareDTO = givenShareDTO(null, ShareAction.SUBSCRIPTION, anyNegativeNumber()); final ShareDTO givenShareDTO = givenShareDTO(null, ShareAction.SUBSCRIPTION, anyNegativeNumber());
doThrow(new BadRequestAlertException("Some Dummy Test Violation", "share", "shareInvalidTestDummy")).when(shareValidator).validate(givenShareDTO);
// when // when
final Throwable throwException = catchThrowableOfType(() -> shareService.save(givenShareDTO), BadRequestAlertException.class); final Throwable throwException = catchThrowableOfType(() -> shareService.save(givenShareDTO), BadRequestAlertException.class);
// then // then
assertThat(throwException).isEqualToComparingFieldByField( assertThat(throwException).isEqualToComparingFieldByField(
new BadRequestAlertException("Share subscriptions require a positive quantity", "share", "shareSubscriptionPositivQuantity")); new BadRequestAlertException("Some Dummy Test Violation", "share", "shareInvalidTestDummy"));
} }
@Test @Test
public void saveShouldPersistCancellationWithNegativeAmount() { public void saveShouldUpdateValidTransactions() {
// given // given
final ShareDTO givenShareDTO = givenShareDTO(null, ShareAction.CANCELLATION, anyNegativeNumber()); final ShareDTO givenShareDTO = givenShareDTO(anyNonNullId(), ShareAction.SUBSCRIPTION, anyPositiveNumber());
doNothing().when(shareValidator).validate(givenShareDTO);
// when // when
final ShareDTO returnedShareDto = shareService.save(givenShareDTO); final ShareDTO returnedShareDto = shareService.save(givenShareDTO);
@ -106,16 +101,18 @@ public class ShareServiceUnitTest {
} }
@Test @Test
public void saveShouldRejectCancellationWithPositiveAmount() { public void saveShouldNotUpdateInvalidTransactions() {
// given // given
final ShareDTO givenShareDTO = givenShareDTO(null, ShareAction.CANCELLATION, anyPositiveNumber()); final ShareDTO givenShareDTO = givenShareDTO(anyNonNullId(), ShareAction.SUBSCRIPTION, anyNegativeNumber());
// HINT: given(...) can't be used for void methods, in that case use Mockito's do...() methods
doThrow(new BadRequestAlertException("Some Dummy Test Violation", "share", "shareInvalidTestDummy")).when(shareValidator).validate(givenShareDTO);
// when // when
final Throwable throwException = catchThrowableOfType(() -> shareService.save(givenShareDTO), BadRequestAlertException.class); final Throwable throwException = catchThrowableOfType(() -> shareService.save(givenShareDTO), BadRequestAlertException.class);
// then // then
assertThat(throwException).isEqualToComparingFieldByField( assertThat(throwException).isEqualToComparingFieldByField(
new BadRequestAlertException("Share cancellations require a negative quantity", "share", "shareCancellationNegativeQuantity")); new BadRequestAlertException("Some Dummy Test Violation", "share", "shareInvalidTestDummy"));
} }
// --- only test fixture code below --- // --- only test fixture code below ---

View File

@ -0,0 +1,154 @@
package org.hostsharing.hsadminng.service;
import org.apache.commons.lang3.RandomUtils;
import org.assertj.core.api.AbstractThrowableAssert;
import org.hostsharing.hsadminng.domain.enumeration.ShareAction;
import org.hostsharing.hsadminng.service.dto.ShareDTO;
import org.hostsharing.hsadminng.web.rest.errors.BadRequestAlertException;
import org.junit.Test;
import java.time.LocalDate;
import java.util.function.Consumer;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.catchThrowableOfType;
public class ShareValidatorUnitTest {
private ShareValidator shareValidator = new ShareValidator();
@Test
public void shouldAcceptValidSubscription() {
new GivenShareValidationTestCase()
.withAnyValidDateValues()
.withAction(ShareAction.SUBSCRIPTION).withQuantity(1)
.when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
.thenActualException().isNull();
}
@Test
public void shouldAcceptValidCancellation() {
new GivenShareValidationTestCase()
.withAnyValidDateValues()
.withAction(ShareAction.CANCELLATION).withQuantity(-1)
.when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
.thenActualException().isNull();
}
@Test
public void shouldAcceptIfDocumentDateEqualsValueDate() {
new GivenShareValidationTestCase()
.withDocumentDate("2019-04-11").withValueDate("2019-04-11")
.withAction(ShareAction.SUBSCRIPTION).withQuantity(1)
.when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
.thenActualException().isNull();
}
@Test
public void shouldRejectUpdates() {
new GivenShareValidationTestCase()
.withId(RandomUtils.nextLong())
.when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Share transactions are immutable", "share", "shareTransactionImmutable"));
}
@Test
public void shouldRejectIfDocumentDateAfterValueDate() {
new GivenShareValidationTestCase()
.withDocumentDate("2019-04-13").withValueDate("2019-04-12")
.withAction(ShareAction.SUBSCRIPTION).withQuantity(1)
.when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Document date may not be after value date", "share", "documentDateMayNotBeAfterValueDate"));
}
@Test
public void shouldRejectIfSubscriptionWithNegativeQuantity() {
new GivenShareValidationTestCase()
.withAnyValidDateValues()
.withAction(ShareAction.SUBSCRIPTION).withQuantity(-1)
.when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Share subscriptions require a positive quantity", "share", "shareSubscriptionPositiveQuantity"));
}
@Test
public void shouldRejectIfSubscriptionWithZeroQuantity() {
new GivenShareValidationTestCase()
.withAnyValidDateValues()
.withAction(ShareAction.SUBSCRIPTION).withQuantity(0)
.when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Share subscriptions require a positive quantity", "share", "shareSubscriptionPositiveQuantity"));
}
@Test
public void shouldRejectIfCancellationWithPositiveQuantity() {
new GivenShareValidationTestCase()
.withAnyValidDateValues()
.withAction(ShareAction.CANCELLATION).withQuantity(1)
.when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Share cancellations require a negative quantity", "share", "shareCancellationNegativeQuantity"));
}
@Test
public void shouldRejectIfCancellationWithZeroQuantity() {
new GivenShareValidationTestCase()
.withAnyValidDateValues()
.withAction(ShareAction.CANCELLATION).withQuantity(0)
.when((ShareDTO shareDto) -> shareValidator.validate(shareDto))
.thenActualException().isEqualToComparingFieldByField(new BadRequestAlertException(
"Share cancellations require a negative quantity", "share", "shareCancellationNegativeQuantity"));
}
// -- only test fixture below ---
private class GivenShareValidationTestCase {
private final ShareDTO shareDto = new ShareDTO();
private BadRequestAlertException actualException;
public GivenShareValidationTestCase withId(long id) {
shareDto.setId(id);
return this;
}
GivenShareValidationTestCase withDocumentDate(String documentDate) {
shareDto.setDocumentDate(LocalDate.parse(documentDate));
return this;
}
GivenShareValidationTestCase withValueDate(String valueDate) {
shareDto.setValueDate(LocalDate.parse(valueDate));
return this;
}
public GivenShareValidationTestCase withAnyValidDateValues() {
return withDocumentDate("2019-04-11").withValueDate("2019-04-12");
}
GivenShareValidationTestCase withAction(ShareAction shareAction) {
shareDto.setAction(shareAction);
return this;
}
GivenShareValidationTestCase withQuantity(Integer quantity) {
shareDto.setQuantity(quantity);
return this;
}
GivenShareValidationTestCase when(final Consumer<ShareDTO> statement) {
actualException = catchThrowableOfType(() -> shareValidator.validate(shareDto), BadRequestAlertException.class);
return this;
}
public AbstractThrowableAssert<?, ? extends Throwable> thenActualException() {
return assertThat(actualException);
}
}
}

View File

@ -0,0 +1,15 @@
package org.hostsharing.hsadminng.service.dto;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class MembershipDTOTest {
@Test
public void withShouldApplyCallback() {
final MembershipDTO actual = new MembershipDTO().with(m -> m.setRemark("Some Remark"));
assertThat(actual.getRemark()).isEqualTo("Some Remark");
}
}

View File

@ -1,17 +1,15 @@
package org.hostsharing.hsadminng.web.rest; package org.hostsharing.hsadminng.web.rest;
import org.hostsharing.hsadminng.HsadminNgApp; import org.hostsharing.hsadminng.HsadminNgApp;
import org.hostsharing.hsadminng.domain.Asset; import org.hostsharing.hsadminng.domain.Asset;
import org.hostsharing.hsadminng.domain.Membership; import org.hostsharing.hsadminng.domain.Membership;
import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
import org.hostsharing.hsadminng.repository.AssetRepository; import org.hostsharing.hsadminng.repository.AssetRepository;
import org.hostsharing.hsadminng.service.AssetQueryService;
import org.hostsharing.hsadminng.service.AssetService; import org.hostsharing.hsadminng.service.AssetService;
import org.hostsharing.hsadminng.service.dto.AssetDTO; import org.hostsharing.hsadminng.service.dto.AssetDTO;
import org.hostsharing.hsadminng.service.mapper.AssetMapper; import org.hostsharing.hsadminng.service.mapper.AssetMapper;
import org.hostsharing.hsadminng.web.rest.errors.ExceptionTranslator; import org.hostsharing.hsadminng.web.rest.errors.ExceptionTranslator;
import org.hostsharing.hsadminng.service.dto.AssetCriteria;
import org.hostsharing.hsadminng.service.AssetQueryService;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -33,14 +31,11 @@ import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.List; import java.util.List;
import static org.hostsharing.hsadminng.web.rest.TestUtil.createFormattingConversionService;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.hasItem;
import static org.hostsharing.hsadminng.web.rest.TestUtil.createFormattingConversionService;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import org.hostsharing.hsadminng.domain.enumeration.AssetAction;
/** /**
* Test class for the AssetResource REST controller. * Test class for the AssetResource REST controller.
* *
@ -129,6 +124,26 @@ public class AssetResourceIntTest {
return asset; return asset;
} }
/**
* Create a persistent entity related to the given persistent membership for testing purposes.
*
* This is a static method, as tests for other entities might also need it,
* if they test an entity which requires the current entity.
*/
public static Asset createPersistentEntity(EntityManager em, final Membership membership) {
Asset asset = new Asset()
.documentDate(DEFAULT_DOCUMENT_DATE)
.valueDate(DEFAULT_VALUE_DATE)
.action(DEFAULT_ACTION)
.amount(DEFAULT_AMOUNT)
.remark(DEFAULT_REMARK);
// Add required entity
asset.setMembership(membership);
membership.addAsset(asset);
em.persist(asset);
em.flush();
return asset;
}
@Before @Before
public void initTest() { public void initTest() {
asset = createEntity(em); asset = createEntity(em);
@ -542,9 +557,7 @@ public class AssetResourceIntTest {
@Transactional @Transactional
public void getAllAssetsByMembershipIsEqualToSomething() throws Exception { public void getAllAssetsByMembershipIsEqualToSomething() throws Exception {
// Initialize the database // Initialize the database
Membership membership = MembershipResourceIntTest.createEntity(em); Membership membership = MembershipResourceIntTest.createPersistentEntity(em, CustomerResourceIntTest.createPersistentEntity(em));
em.persist(membership);
em.flush();
asset.setMembership(membership); asset.setMembership(membership);
assetRepository.saveAndFlush(asset); assetRepository.saveAndFlush(asset);
Long membershipId = membership.getId(); Long membershipId = membership.getId();
@ -626,17 +639,17 @@ public class AssetResourceIntTest {
restAssetMockMvc.perform(put("/api/assets") restAssetMockMvc.perform(put("/api/assets")
.contentType(TestUtil.APPLICATION_JSON_UTF8) .contentType(TestUtil.APPLICATION_JSON_UTF8)
.content(TestUtil.convertObjectToJsonBytes(assetDTO))) .content(TestUtil.convertObjectToJsonBytes(assetDTO)))
.andExpect(status().isOk()); .andExpect(status().isBadRequest());
// Validate the Asset in the database // Validate the Asset in the database
List<Asset> assetList = assetRepository.findAll(); List<Asset> assetList = assetRepository.findAll();
assertThat(assetList).hasSize(databaseSizeBeforeUpdate); assertThat(assetList).hasSize(databaseSizeBeforeUpdate);
Asset testAsset = assetList.get(assetList.size() - 1); Asset testAsset = assetList.get(assetList.size() - 1);
assertThat(testAsset.getDocumentDate()).isEqualTo(UPDATED_DOCUMENT_DATE); assertThat(testAsset.getDocumentDate()).isEqualTo(DEFAULT_DOCUMENT_DATE);
assertThat(testAsset.getValueDate()).isEqualTo(UPDATED_VALUE_DATE); assertThat(testAsset.getValueDate()).isEqualTo(DEFAULT_VALUE_DATE);
assertThat(testAsset.getAction()).isEqualTo(UPDATED_ACTION); assertThat(testAsset.getAction()).isEqualByComparingTo(DEFAULT_ACTION);
assertThat(testAsset.getAmount()).isEqualTo(UPDATED_AMOUNT); assertThat(testAsset.getAmount()).isEqualByComparingTo(DEFAULT_AMOUNT);
assertThat(testAsset.getRemark()).isEqualTo(UPDATED_REMARK); assertThat(testAsset.getRemark()).isEqualTo(DEFAULT_REMARK);
} }
@Test @Test
@ -669,11 +682,11 @@ public class AssetResourceIntTest {
// Delete the asset // Delete the asset
restAssetMockMvc.perform(delete("/api/assets/{id}", asset.getId()) restAssetMockMvc.perform(delete("/api/assets/{id}", asset.getId())
.accept(TestUtil.APPLICATION_JSON_UTF8)) .accept(TestUtil.APPLICATION_JSON_UTF8))
.andExpect(status().isOk()); .andExpect(status().isBadRequest());
// Validate the database is empty // Validate the database still contains the same number of assets
List<Asset> assetList = assetRepository.findAll(); List<Asset> assetList = assetRepository.findAll();
assertThat(assetList).hasSize(databaseSizeBeforeDelete - 1); assertThat(assetList).hasSize(databaseSizeBeforeDelete);
} }
@Test @Test

View File

@ -1,18 +1,17 @@
package org.hostsharing.hsadminng.web.rest; package org.hostsharing.hsadminng.web.rest;
import org.hostsharing.hsadminng.HsadminNgApp; import org.hostsharing.hsadminng.HsadminNgApp;
import org.hostsharing.hsadminng.domain.Customer; import org.hostsharing.hsadminng.domain.Customer;
import org.hostsharing.hsadminng.domain.Membership; import org.hostsharing.hsadminng.domain.Membership;
import org.hostsharing.hsadminng.domain.SepaMandate; import org.hostsharing.hsadminng.domain.SepaMandate;
import org.hostsharing.hsadminng.domain.enumeration.CustomerKind;
import org.hostsharing.hsadminng.domain.enumeration.VatRegion;
import org.hostsharing.hsadminng.repository.CustomerRepository; import org.hostsharing.hsadminng.repository.CustomerRepository;
import org.hostsharing.hsadminng.service.CustomerQueryService;
import org.hostsharing.hsadminng.service.CustomerService; import org.hostsharing.hsadminng.service.CustomerService;
import org.hostsharing.hsadminng.service.dto.CustomerDTO; import org.hostsharing.hsadminng.service.dto.CustomerDTO;
import org.hostsharing.hsadminng.service.mapper.CustomerMapper; import org.hostsharing.hsadminng.service.mapper.CustomerMapper;
import org.hostsharing.hsadminng.web.rest.errors.ExceptionTranslator; import org.hostsharing.hsadminng.web.rest.errors.ExceptionTranslator;
import org.hostsharing.hsadminng.service.dto.CustomerCriteria;
import org.hostsharing.hsadminng.service.CustomerQueryService;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -29,15 +28,15 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.Validator; import org.springframework.validation.Validator;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.List; import java.util.List;
import static org.hostsharing.hsadminng.web.rest.TestUtil.createFormattingConversionService;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.hasItem;
import static org.hostsharing.hsadminng.web.rest.TestUtil.createFormattingConversionService;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
/** /**
* Test class for the CustomerResource REST controller. * Test class for the CustomerResource REST controller.
* *
@ -49,27 +48,56 @@ public class CustomerResourceIntTest {
private static final Integer DEFAULT_REFERENCE = 10000; private static final Integer DEFAULT_REFERENCE = 10000;
private static final Integer UPDATED_REFERENCE = 10001; private static final Integer UPDATED_REFERENCE = 10001;
private static final Integer OTHER_REFERENCE_BASE = 11000;
private static final String DEFAULT_PREFIX = "hu"; private static final String DEFAULT_PREFIX = "def";
private static final String UPDATED_PREFIX = "umj"; private static final String UPDATED_PREFIX = "new";
private static final String OTHER_PREFIX_BASE = "o";
private static final String DEFAULT_NAME = "AAAAAAAAAA"; private static final String DEFAULT_NAME = "Default GmbH";
private static final String UPDATED_NAME = "BBBBBBBBBB"; private static final String UPDATED_NAME = "Updated Default GmbH";
private static final String OTHER_NAME_BASE = "Other Corp.";
private static final String DEFAULT_CONTRACTUAL_SALUTATION = "AAAAAAAAAA"; private static final String DEFAULT_CONTRACTUAL_ADDRESS = "Default Address";
private static final String UPDATED_CONTRACTUAL_SALUTATION = "BBBBBBBBBB"; private static final String UPDATED_CONTRACTUAL_ADDRESS = "Updated Address";
private static final String OTHER_CONTRACTUAL_ADDRESS_BASE = "Other Street ";
private static final String DEFAULT_CONTRACTUAL_ADDRESS = "AAAAAAAAAA"; private static final String DEFAULT_CONTRACTUAL_SALUTATION = "Default Contractual Salutation";
private static final String UPDATED_CONTRACTUAL_ADDRESS = "BBBBBBBBBB"; private static final String UPDATED_CONTRACTUAL_SALUTATION = "Update Contractual Salutation";
private static final String DEFAULT_BILLING_SALUTATION = "AAAAAAAAAA"; private static final String DEFAULT_BILLING_ADDRESS = "Default Billing Address";
private static final String UPDATED_BILLING_SALUTATION = "BBBBBBBBBB"; private static final String UPDATED_BILLING_ADDRESS = "Updated Billing Address";
private static final String DEFAULT_BILLING_ADDRESS = "AAAAAAAAAA"; private static final String DEFAULT_BILLING_SALUTATION = "Default Billing Salutation";
private static final String UPDATED_BILLING_ADDRESS = "BBBBBBBBBB"; private static final String UPDATED_BILLING_SALUTATION = "Updted Billing Salutation";
private static final String DEFAULT_REMARK = "AAAAAAAAAA"; private static final String DEFAULT_REMARK = "Default Remark";
private static final String UPDATED_REMARK = "BBBBBBBBBB"; private static final String UPDATED_REMARK = "Updated Remark";
private static final CustomerKind DEFAULT_KIND = CustomerKind.NATURAL;
private static final CustomerKind UPDATED_KIND = CustomerKind.LEGAL;
private static final CustomerKind OTHER_KIND = CustomerKind.LEGAL;
private static final LocalDate DEFAULT_BIRTH_DATE = LocalDate.ofEpochDay(0L);
private static final LocalDate UPDATED_BIRTH_DATE = LocalDate.now(ZoneId.systemDefault());
private static final String DEFAULT_BIRTH_PLACE = "AAAAAAAAAA";
private static final String UPDATED_BIRTH_PLACE = "BBBBBBBBBB";
private static final String DEFAULT_REGISTRATION_COURT = "AAAAAAAAAA";
private static final String UPDATED_REGISTRATION_COURT = "BBBBBBBBBB";
private static final String DEFAULT_REGISTRATION_NUMBER = "AAAAAAAAAA";
private static final String UPDATED_REGISTRATION_NUMBER = "BBBBBBBBBB";
private static final VatRegion DEFAULT_VAT_REGION = VatRegion.DOMESTIC;
private static final VatRegion UPDATED_VAT_REGION = VatRegion.EU;
private static final VatRegion OTHER_VAT_REGION = VatRegion.EU;
private static final String DEFAULT_VAT_NUMBER = "AAAAAAAAAA";
private static final String UPDATED_VAT_NUMBER = "BBBBBBBBBB";
private static int otherCounter = 0;
@Autowired @Autowired
private CustomerRepository customerRepository; private CustomerRepository customerRepository;
@ -125,6 +153,13 @@ public class CustomerResourceIntTest {
.reference(DEFAULT_REFERENCE) .reference(DEFAULT_REFERENCE)
.prefix(DEFAULT_PREFIX) .prefix(DEFAULT_PREFIX)
.name(DEFAULT_NAME) .name(DEFAULT_NAME)
.kind(DEFAULT_KIND)
.birthDate(DEFAULT_BIRTH_DATE)
.birthPlace(DEFAULT_BIRTH_PLACE)
.registrationCourt(DEFAULT_REGISTRATION_COURT)
.registrationNumber(DEFAULT_REGISTRATION_NUMBER)
.vatRegion(DEFAULT_VAT_REGION)
.vatNumber(DEFAULT_VAT_NUMBER)
.contractualSalutation(DEFAULT_CONTRACTUAL_SALUTATION) .contractualSalutation(DEFAULT_CONTRACTUAL_SALUTATION)
.contractualAddress(DEFAULT_CONTRACTUAL_ADDRESS) .contractualAddress(DEFAULT_CONTRACTUAL_ADDRESS)
.billingSalutation(DEFAULT_BILLING_SALUTATION) .billingSalutation(DEFAULT_BILLING_SALUTATION)
@ -133,6 +168,26 @@ public class CustomerResourceIntTest {
return customer; return customer;
} }
/**
* Create another entity for tests.
*
* This is a static method, as tests for other entities might also need it,
* if they test an entity which requires the current entity.
*/
public static Customer createPersistentEntity(EntityManager em) {
Customer customer = new Customer()
.reference(OTHER_REFERENCE_BASE + otherCounter)
.prefix(OTHER_PREFIX_BASE + String.format("%02d", otherCounter))
.name(OTHER_NAME_BASE + otherCounter)
.kind(OTHER_KIND)
.vatRegion(OTHER_VAT_REGION)
.contractualAddress(OTHER_CONTRACTUAL_ADDRESS_BASE + otherCounter);
em.persist(customer);
em.flush();
++otherCounter;
return customer;
}
@Before @Before
public void initTest() { public void initTest() {
customer = createEntity(em); customer = createEntity(em);
@ -157,6 +212,13 @@ public class CustomerResourceIntTest {
assertThat(testCustomer.getReference()).isEqualTo(DEFAULT_REFERENCE); assertThat(testCustomer.getReference()).isEqualTo(DEFAULT_REFERENCE);
assertThat(testCustomer.getPrefix()).isEqualTo(DEFAULT_PREFIX); assertThat(testCustomer.getPrefix()).isEqualTo(DEFAULT_PREFIX);
assertThat(testCustomer.getName()).isEqualTo(DEFAULT_NAME); assertThat(testCustomer.getName()).isEqualTo(DEFAULT_NAME);
assertThat(testCustomer.getKind()).isEqualTo(DEFAULT_KIND);
assertThat(testCustomer.getBirthDate()).isEqualTo(DEFAULT_BIRTH_DATE);
assertThat(testCustomer.getBirthPlace()).isEqualTo(DEFAULT_BIRTH_PLACE);
assertThat(testCustomer.getRegistrationCourt()).isEqualTo(DEFAULT_REGISTRATION_COURT);
assertThat(testCustomer.getRegistrationNumber()).isEqualTo(DEFAULT_REGISTRATION_NUMBER);
assertThat(testCustomer.getVatRegion()).isEqualTo(DEFAULT_VAT_REGION);
assertThat(testCustomer.getVatNumber()).isEqualTo(DEFAULT_VAT_NUMBER);
assertThat(testCustomer.getContractualSalutation()).isEqualTo(DEFAULT_CONTRACTUAL_SALUTATION); assertThat(testCustomer.getContractualSalutation()).isEqualTo(DEFAULT_CONTRACTUAL_SALUTATION);
assertThat(testCustomer.getContractualAddress()).isEqualTo(DEFAULT_CONTRACTUAL_ADDRESS); assertThat(testCustomer.getContractualAddress()).isEqualTo(DEFAULT_CONTRACTUAL_ADDRESS);
assertThat(testCustomer.getBillingSalutation()).isEqualTo(DEFAULT_BILLING_SALUTATION); assertThat(testCustomer.getBillingSalutation()).isEqualTo(DEFAULT_BILLING_SALUTATION);
@ -241,6 +303,44 @@ public class CustomerResourceIntTest {
assertThat(customerList).hasSize(databaseSizeBeforeTest); assertThat(customerList).hasSize(databaseSizeBeforeTest);
} }
@Test
@Transactional
public void checkKindIsRequired() throws Exception {
int databaseSizeBeforeTest = customerRepository.findAll().size();
// set the field null
customer.setKind(null);
// Create the Customer, which fails.
CustomerDTO customerDTO = customerMapper.toDto(customer);
restCustomerMockMvc.perform(post("/api/customers")
.contentType(TestUtil.APPLICATION_JSON_UTF8)
.content(TestUtil.convertObjectToJsonBytes(customerDTO)))
.andExpect(status().isBadRequest());
List<Customer> customerList = customerRepository.findAll();
assertThat(customerList).hasSize(databaseSizeBeforeTest);
}
@Test
@Transactional
public void checkVatRegionIsRequired() throws Exception {
int databaseSizeBeforeTest = customerRepository.findAll().size();
// set the field null
customer.setVatRegion(null);
// Create the Customer, which fails.
CustomerDTO customerDTO = customerMapper.toDto(customer);
restCustomerMockMvc.perform(post("/api/customers")
.contentType(TestUtil.APPLICATION_JSON_UTF8)
.content(TestUtil.convertObjectToJsonBytes(customerDTO)))
.andExpect(status().isBadRequest());
List<Customer> customerList = customerRepository.findAll();
assertThat(customerList).hasSize(databaseSizeBeforeTest);
}
@Test @Test
@Transactional @Transactional
public void checkContractualAddressIsRequired() throws Exception { public void checkContractualAddressIsRequired() throws Exception {
@ -274,6 +374,13 @@ public class CustomerResourceIntTest {
.andExpect(jsonPath("$.[*].reference").value(hasItem(DEFAULT_REFERENCE))) .andExpect(jsonPath("$.[*].reference").value(hasItem(DEFAULT_REFERENCE)))
.andExpect(jsonPath("$.[*].prefix").value(hasItem(DEFAULT_PREFIX.toString()))) .andExpect(jsonPath("$.[*].prefix").value(hasItem(DEFAULT_PREFIX.toString())))
.andExpect(jsonPath("$.[*].name").value(hasItem(DEFAULT_NAME.toString()))) .andExpect(jsonPath("$.[*].name").value(hasItem(DEFAULT_NAME.toString())))
.andExpect(jsonPath("$.[*].kind").value(hasItem(DEFAULT_KIND.toString())))
.andExpect(jsonPath("$.[*].birthDate").value(hasItem(DEFAULT_BIRTH_DATE.toString())))
.andExpect(jsonPath("$.[*].birthPlace").value(hasItem(DEFAULT_BIRTH_PLACE.toString())))
.andExpect(jsonPath("$.[*].registrationCourt").value(hasItem(DEFAULT_REGISTRATION_COURT.toString())))
.andExpect(jsonPath("$.[*].registrationNumber").value(hasItem(DEFAULT_REGISTRATION_NUMBER.toString())))
.andExpect(jsonPath("$.[*].vatRegion").value(hasItem(DEFAULT_VAT_REGION.toString())))
.andExpect(jsonPath("$.[*].vatNumber").value(hasItem(DEFAULT_VAT_NUMBER.toString())))
.andExpect(jsonPath("$.[*].contractualSalutation").value(hasItem(DEFAULT_CONTRACTUAL_SALUTATION.toString()))) .andExpect(jsonPath("$.[*].contractualSalutation").value(hasItem(DEFAULT_CONTRACTUAL_SALUTATION.toString())))
.andExpect(jsonPath("$.[*].contractualAddress").value(hasItem(DEFAULT_CONTRACTUAL_ADDRESS.toString()))) .andExpect(jsonPath("$.[*].contractualAddress").value(hasItem(DEFAULT_CONTRACTUAL_ADDRESS.toString())))
.andExpect(jsonPath("$.[*].billingSalutation").value(hasItem(DEFAULT_BILLING_SALUTATION.toString()))) .andExpect(jsonPath("$.[*].billingSalutation").value(hasItem(DEFAULT_BILLING_SALUTATION.toString())))
@ -295,6 +402,13 @@ public class CustomerResourceIntTest {
.andExpect(jsonPath("$.reference").value(DEFAULT_REFERENCE)) .andExpect(jsonPath("$.reference").value(DEFAULT_REFERENCE))
.andExpect(jsonPath("$.prefix").value(DEFAULT_PREFIX.toString())) .andExpect(jsonPath("$.prefix").value(DEFAULT_PREFIX.toString()))
.andExpect(jsonPath("$.name").value(DEFAULT_NAME.toString())) .andExpect(jsonPath("$.name").value(DEFAULT_NAME.toString()))
.andExpect(jsonPath("$.kind").value(DEFAULT_KIND.toString()))
.andExpect(jsonPath("$.birthDate").value(DEFAULT_BIRTH_DATE.toString()))
.andExpect(jsonPath("$.birthPlace").value(DEFAULT_BIRTH_PLACE.toString()))
.andExpect(jsonPath("$.registrationCourt").value(DEFAULT_REGISTRATION_COURT.toString()))
.andExpect(jsonPath("$.registrationNumber").value(DEFAULT_REGISTRATION_NUMBER.toString()))
.andExpect(jsonPath("$.vatRegion").value(DEFAULT_VAT_REGION.toString()))
.andExpect(jsonPath("$.vatNumber").value(DEFAULT_VAT_NUMBER.toString()))
.andExpect(jsonPath("$.contractualSalutation").value(DEFAULT_CONTRACTUAL_SALUTATION.toString())) .andExpect(jsonPath("$.contractualSalutation").value(DEFAULT_CONTRACTUAL_SALUTATION.toString()))
.andExpect(jsonPath("$.contractualAddress").value(DEFAULT_CONTRACTUAL_ADDRESS.toString())) .andExpect(jsonPath("$.contractualAddress").value(DEFAULT_CONTRACTUAL_ADDRESS.toString()))
.andExpect(jsonPath("$.billingSalutation").value(DEFAULT_BILLING_SALUTATION.toString())) .andExpect(jsonPath("$.billingSalutation").value(DEFAULT_BILLING_SALUTATION.toString()))
@ -446,6 +560,306 @@ public class CustomerResourceIntTest {
defaultCustomerShouldNotBeFound("name.specified=false"); defaultCustomerShouldNotBeFound("name.specified=false");
} }
@Test
@Transactional
public void getAllCustomersByKindIsEqualToSomething() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where kind equals to DEFAULT_KIND
defaultCustomerShouldBeFound("kind.equals=" + DEFAULT_KIND);
// Get all the customerList where kind equals to UPDATED_KIND
defaultCustomerShouldNotBeFound("kind.equals=" + UPDATED_KIND);
}
@Test
@Transactional
public void getAllCustomersByKindIsInShouldWork() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where kind in DEFAULT_KIND or UPDATED_KIND
defaultCustomerShouldBeFound("kind.in=" + DEFAULT_KIND + "," + UPDATED_KIND);
// Get all the customerList where kind equals to UPDATED_KIND
defaultCustomerShouldNotBeFound("kind.in=" + UPDATED_KIND);
}
@Test
@Transactional
public void getAllCustomersByKindIsNullOrNotNull() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where kind is not null
defaultCustomerShouldBeFound("kind.specified=true");
// Get all the customerList where kind is null
defaultCustomerShouldNotBeFound("kind.specified=false");
}
@Test
@Transactional
public void getAllCustomersByBirthDateIsEqualToSomething() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where birthDate equals to DEFAULT_BIRTH_DATE
defaultCustomerShouldBeFound("birthDate.equals=" + DEFAULT_BIRTH_DATE);
// Get all the customerList where birthDate equals to UPDATED_BIRTH_DATE
defaultCustomerShouldNotBeFound("birthDate.equals=" + UPDATED_BIRTH_DATE);
}
@Test
@Transactional
public void getAllCustomersByBirthDateIsInShouldWork() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where birthDate in DEFAULT_BIRTH_DATE or UPDATED_BIRTH_DATE
defaultCustomerShouldBeFound("birthDate.in=" + DEFAULT_BIRTH_DATE + "," + UPDATED_BIRTH_DATE);
// Get all the customerList where birthDate equals to UPDATED_BIRTH_DATE
defaultCustomerShouldNotBeFound("birthDate.in=" + UPDATED_BIRTH_DATE);
}
@Test
@Transactional
public void getAllCustomersByBirthDateIsNullOrNotNull() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where birthDate is not null
defaultCustomerShouldBeFound("birthDate.specified=true");
// Get all the customerList where birthDate is null
defaultCustomerShouldNotBeFound("birthDate.specified=false");
}
@Test
@Transactional
public void getAllCustomersByBirthDateIsGreaterThanOrEqualToSomething() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where birthDate greater than or equals to DEFAULT_BIRTH_DATE
defaultCustomerShouldBeFound("birthDate.greaterOrEqualThan=" + DEFAULT_BIRTH_DATE);
// Get all the customerList where birthDate greater than or equals to UPDATED_BIRTH_DATE
defaultCustomerShouldNotBeFound("birthDate.greaterOrEqualThan=" + UPDATED_BIRTH_DATE);
}
@Test
@Transactional
public void getAllCustomersByBirthDateIsLessThanSomething() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where birthDate less than or equals to DEFAULT_BIRTH_DATE
defaultCustomerShouldNotBeFound("birthDate.lessThan=" + DEFAULT_BIRTH_DATE);
// Get all the customerList where birthDate less than or equals to UPDATED_BIRTH_DATE
defaultCustomerShouldBeFound("birthDate.lessThan=" + UPDATED_BIRTH_DATE);
}
@Test
@Transactional
public void getAllCustomersByBirthPlaceIsEqualToSomething() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where birthPlace equals to DEFAULT_BIRTH_PLACE
defaultCustomerShouldBeFound("birthPlace.equals=" + DEFAULT_BIRTH_PLACE);
// Get all the customerList where birthPlace equals to UPDATED_BIRTH_PLACE
defaultCustomerShouldNotBeFound("birthPlace.equals=" + UPDATED_BIRTH_PLACE);
}
@Test
@Transactional
public void getAllCustomersByBirthPlaceIsInShouldWork() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where birthPlace in DEFAULT_BIRTH_PLACE or UPDATED_BIRTH_PLACE
defaultCustomerShouldBeFound("birthPlace.in=" + DEFAULT_BIRTH_PLACE + "," + UPDATED_BIRTH_PLACE);
// Get all the customerList where birthPlace equals to UPDATED_BIRTH_PLACE
defaultCustomerShouldNotBeFound("birthPlace.in=" + UPDATED_BIRTH_PLACE);
}
@Test
@Transactional
public void getAllCustomersByBirthPlaceIsNullOrNotNull() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where birthPlace is not null
defaultCustomerShouldBeFound("birthPlace.specified=true");
// Get all the customerList where birthPlace is null
defaultCustomerShouldNotBeFound("birthPlace.specified=false");
}
@Test
@Transactional
public void getAllCustomersByRegistrationCourtIsEqualToSomething() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where registrationCourt equals to DEFAULT_REGISTRATION_COURT
defaultCustomerShouldBeFound("registrationCourt.equals=" + DEFAULT_REGISTRATION_COURT);
// Get all the customerList where registrationCourt equals to UPDATED_REGISTRATION_COURT
defaultCustomerShouldNotBeFound("registrationCourt.equals=" + UPDATED_REGISTRATION_COURT);
}
@Test
@Transactional
public void getAllCustomersByRegistrationCourtIsInShouldWork() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where registrationCourt in DEFAULT_REGISTRATION_COURT or UPDATED_REGISTRATION_COURT
defaultCustomerShouldBeFound("registrationCourt.in=" + DEFAULT_REGISTRATION_COURT + "," + UPDATED_REGISTRATION_COURT);
// Get all the customerList where registrationCourt equals to UPDATED_REGISTRATION_COURT
defaultCustomerShouldNotBeFound("registrationCourt.in=" + UPDATED_REGISTRATION_COURT);
}
@Test
@Transactional
public void getAllCustomersByRegistrationCourtIsNullOrNotNull() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where registrationCourt is not null
defaultCustomerShouldBeFound("registrationCourt.specified=true");
// Get all the customerList where registrationCourt is null
defaultCustomerShouldNotBeFound("registrationCourt.specified=false");
}
@Test
@Transactional
public void getAllCustomersByRegistrationNumberIsEqualToSomething() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where registrationNumber equals to DEFAULT_REGISTRATION_NUMBER
defaultCustomerShouldBeFound("registrationNumber.equals=" + DEFAULT_REGISTRATION_NUMBER);
// Get all the customerList where registrationNumber equals to UPDATED_REGISTRATION_NUMBER
defaultCustomerShouldNotBeFound("registrationNumber.equals=" + UPDATED_REGISTRATION_NUMBER);
}
@Test
@Transactional
public void getAllCustomersByRegistrationNumberIsInShouldWork() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where registrationNumber in DEFAULT_REGISTRATION_NUMBER or UPDATED_REGISTRATION_NUMBER
defaultCustomerShouldBeFound("registrationNumber.in=" + DEFAULT_REGISTRATION_NUMBER + "," + UPDATED_REGISTRATION_NUMBER);
// Get all the customerList where registrationNumber equals to UPDATED_REGISTRATION_NUMBER
defaultCustomerShouldNotBeFound("registrationNumber.in=" + UPDATED_REGISTRATION_NUMBER);
}
@Test
@Transactional
public void getAllCustomersByRegistrationNumberIsNullOrNotNull() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where registrationNumber is not null
defaultCustomerShouldBeFound("registrationNumber.specified=true");
// Get all the customerList where registrationNumber is null
defaultCustomerShouldNotBeFound("registrationNumber.specified=false");
}
@Test
@Transactional
public void getAllCustomersByVatRegionIsEqualToSomething() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where vatRegion equals to DEFAULT_VAT_REGION
defaultCustomerShouldBeFound("vatRegion.equals=" + DEFAULT_VAT_REGION);
// Get all the customerList where vatRegion equals to UPDATED_VAT_REGION
defaultCustomerShouldNotBeFound("vatRegion.equals=" + UPDATED_VAT_REGION);
}
@Test
@Transactional
public void getAllCustomersByVatRegionIsInShouldWork() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where vatRegion in DEFAULT_VAT_REGION or UPDATED_VAT_REGION
defaultCustomerShouldBeFound("vatRegion.in=" + DEFAULT_VAT_REGION + "," + UPDATED_VAT_REGION);
// Get all the customerList where vatRegion equals to UPDATED_VAT_REGION
defaultCustomerShouldNotBeFound("vatRegion.in=" + UPDATED_VAT_REGION);
}
@Test
@Transactional
public void getAllCustomersByVatRegionIsNullOrNotNull() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where vatRegion is not null
defaultCustomerShouldBeFound("vatRegion.specified=true");
// Get all the customerList where vatRegion is null
defaultCustomerShouldNotBeFound("vatRegion.specified=false");
}
@Test
@Transactional
public void getAllCustomersByVatNumberIsEqualToSomething() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where vatNumber equals to DEFAULT_VAT_NUMBER
defaultCustomerShouldBeFound("vatNumber.equals=" + DEFAULT_VAT_NUMBER);
// Get all the customerList where vatNumber equals to UPDATED_VAT_NUMBER
defaultCustomerShouldNotBeFound("vatNumber.equals=" + UPDATED_VAT_NUMBER);
}
@Test
@Transactional
public void getAllCustomersByVatNumberIsInShouldWork() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where vatNumber in DEFAULT_VAT_NUMBER or UPDATED_VAT_NUMBER
defaultCustomerShouldBeFound("vatNumber.in=" + DEFAULT_VAT_NUMBER + "," + UPDATED_VAT_NUMBER);
// Get all the customerList where vatNumber equals to UPDATED_VAT_NUMBER
defaultCustomerShouldNotBeFound("vatNumber.in=" + UPDATED_VAT_NUMBER);
}
@Test
@Transactional
public void getAllCustomersByVatNumberIsNullOrNotNull() throws Exception {
// Initialize the database
customerRepository.saveAndFlush(customer);
// Get all the customerList where vatNumber is not null
defaultCustomerShouldBeFound("vatNumber.specified=true");
// Get all the customerList where vatNumber is null
defaultCustomerShouldNotBeFound("vatNumber.specified=false");
}
@Test @Test
@Transactional @Transactional
public void getAllCustomersByContractualSalutationIsEqualToSomething() throws Exception { public void getAllCustomersByContractualSalutationIsEqualToSomething() throws Exception {
@ -645,7 +1059,7 @@ public class CustomerResourceIntTest {
@Transactional @Transactional
public void getAllCustomersByMembershipIsEqualToSomething() throws Exception { public void getAllCustomersByMembershipIsEqualToSomething() throws Exception {
// Initialize the database // Initialize the database
Membership membership = MembershipResourceIntTest.createEntity(em); Membership membership = MembershipResourceIntTest.createPersistentEntity(em, createPersistentEntity(em));
em.persist(membership); em.persist(membership);
em.flush(); em.flush();
customer.addMembership(membership); customer.addMembership(membership);
@ -664,7 +1078,7 @@ public class CustomerResourceIntTest {
@Transactional @Transactional
public void getAllCustomersBySepamandateIsEqualToSomething() throws Exception { public void getAllCustomersBySepamandateIsEqualToSomething() throws Exception {
// Initialize the database // Initialize the database
SepaMandate sepamandate = SepaMandateResourceIntTest.createEntity(em); SepaMandate sepamandate = SepaMandateResourceIntTest.createEntity(em, createPersistentEntity(em));
em.persist(sepamandate); em.persist(sepamandate);
em.flush(); em.flush();
customer.addSepamandate(sepamandate); customer.addSepamandate(sepamandate);
@ -689,6 +1103,13 @@ public class CustomerResourceIntTest {
.andExpect(jsonPath("$.[*].reference").value(hasItem(DEFAULT_REFERENCE))) .andExpect(jsonPath("$.[*].reference").value(hasItem(DEFAULT_REFERENCE)))
.andExpect(jsonPath("$.[*].prefix").value(hasItem(DEFAULT_PREFIX))) .andExpect(jsonPath("$.[*].prefix").value(hasItem(DEFAULT_PREFIX)))
.andExpect(jsonPath("$.[*].name").value(hasItem(DEFAULT_NAME))) .andExpect(jsonPath("$.[*].name").value(hasItem(DEFAULT_NAME)))
.andExpect(jsonPath("$.[*].kind").value(hasItem(DEFAULT_KIND.toString())))
.andExpect(jsonPath("$.[*].birthDate").value(hasItem(DEFAULT_BIRTH_DATE.toString())))
.andExpect(jsonPath("$.[*].birthPlace").value(hasItem(DEFAULT_BIRTH_PLACE)))
.andExpect(jsonPath("$.[*].registrationCourt").value(hasItem(DEFAULT_REGISTRATION_COURT)))
.andExpect(jsonPath("$.[*].registrationNumber").value(hasItem(DEFAULT_REGISTRATION_NUMBER)))
.andExpect(jsonPath("$.[*].vatRegion").value(hasItem(DEFAULT_VAT_REGION.toString())))
.andExpect(jsonPath("$.[*].vatNumber").value(hasItem(DEFAULT_VAT_NUMBER)))
.andExpect(jsonPath("$.[*].contractualSalutation").value(hasItem(DEFAULT_CONTRACTUAL_SALUTATION))) .andExpect(jsonPath("$.[*].contractualSalutation").value(hasItem(DEFAULT_CONTRACTUAL_SALUTATION)))
.andExpect(jsonPath("$.[*].contractualAddress").value(hasItem(DEFAULT_CONTRACTUAL_ADDRESS))) .andExpect(jsonPath("$.[*].contractualAddress").value(hasItem(DEFAULT_CONTRACTUAL_ADDRESS)))
.andExpect(jsonPath("$.[*].billingSalutation").value(hasItem(DEFAULT_BILLING_SALUTATION))) .andExpect(jsonPath("$.[*].billingSalutation").value(hasItem(DEFAULT_BILLING_SALUTATION)))
@ -744,6 +1165,13 @@ public class CustomerResourceIntTest {
.reference(UPDATED_REFERENCE) .reference(UPDATED_REFERENCE)
.prefix(UPDATED_PREFIX) .prefix(UPDATED_PREFIX)
.name(UPDATED_NAME) .name(UPDATED_NAME)
.kind(UPDATED_KIND)
.birthDate(UPDATED_BIRTH_DATE)
.birthPlace(UPDATED_BIRTH_PLACE)
.registrationCourt(UPDATED_REGISTRATION_COURT)
.registrationNumber(UPDATED_REGISTRATION_NUMBER)
.vatRegion(UPDATED_VAT_REGION)
.vatNumber(UPDATED_VAT_NUMBER)
.contractualSalutation(UPDATED_CONTRACTUAL_SALUTATION) .contractualSalutation(UPDATED_CONTRACTUAL_SALUTATION)
.contractualAddress(UPDATED_CONTRACTUAL_ADDRESS) .contractualAddress(UPDATED_CONTRACTUAL_ADDRESS)
.billingSalutation(UPDATED_BILLING_SALUTATION) .billingSalutation(UPDATED_BILLING_SALUTATION)
@ -763,6 +1191,13 @@ public class CustomerResourceIntTest {
assertThat(testCustomer.getReference()).isEqualTo(UPDATED_REFERENCE); assertThat(testCustomer.getReference()).isEqualTo(UPDATED_REFERENCE);
assertThat(testCustomer.getPrefix()).isEqualTo(UPDATED_PREFIX); assertThat(testCustomer.getPrefix()).isEqualTo(UPDATED_PREFIX);
assertThat(testCustomer.getName()).isEqualTo(UPDATED_NAME); assertThat(testCustomer.getName()).isEqualTo(UPDATED_NAME);
assertThat(testCustomer.getKind()).isEqualTo(UPDATED_KIND);
assertThat(testCustomer.getBirthDate()).isEqualTo(UPDATED_BIRTH_DATE);
assertThat(testCustomer.getBirthPlace()).isEqualTo(UPDATED_BIRTH_PLACE);
assertThat(testCustomer.getRegistrationCourt()).isEqualTo(UPDATED_REGISTRATION_COURT);
assertThat(testCustomer.getRegistrationNumber()).isEqualTo(UPDATED_REGISTRATION_NUMBER);
assertThat(testCustomer.getVatRegion()).isEqualTo(UPDATED_VAT_REGION);
assertThat(testCustomer.getVatNumber()).isEqualTo(UPDATED_VAT_NUMBER);
assertThat(testCustomer.getContractualSalutation()).isEqualTo(UPDATED_CONTRACTUAL_SALUTATION); assertThat(testCustomer.getContractualSalutation()).isEqualTo(UPDATED_CONTRACTUAL_SALUTATION);
assertThat(testCustomer.getContractualAddress()).isEqualTo(UPDATED_CONTRACTUAL_ADDRESS); assertThat(testCustomer.getContractualAddress()).isEqualTo(UPDATED_CONTRACTUAL_ADDRESS);
assertThat(testCustomer.getBillingSalutation()).isEqualTo(UPDATED_BILLING_SALUTATION); assertThat(testCustomer.getBillingSalutation()).isEqualTo(UPDATED_BILLING_SALUTATION);

Some files were not shown because too many files have changed in this diff Show More