DocumentClientConfig.java
package com.tradecloud.domain.configuration;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.common.Currency;
import com.tradecloud.domain.document.DocumentState;
import com.tradecloud.domain.duties.CustomsDutyCaptureLevel;
import com.tradecloud.domain.invoice.InvoiceQuantitySource;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.settlement.SettlementDateCalculationType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.ForeignKey;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* A holder for document client configuration values.
*/
@Entity
@Table(name = "documentclientconfig")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "DocumentClientConfig")
public class DocumentClientConfig extends PersistenceBase {
private static final long serialVersionUID = 1L;
/**
* Defines where the quantites on commercial invoice capture are defaulted from.
* Defaults to {@link InvoiceQuantitySource#PACKING_LIST}.
*/
@Enumerated(value = EnumType.STRING)
@XmlAttribute
@NotNull
private InvoiceQuantitySource invoiceQuantitySource;
/**
* Indicates whether a warning should be raised when there is a matching Document reference for a different Supplier or Service Provider.
* Defaults to true.
*/
@XmlAttribute
private boolean matchingSupplierOrServiceProviderDocRefWarning;
@XmlAttribute
private boolean includeCustomsVatOnDocuments;
@XmlAttribute
private boolean commInvoiceOutOfToleranceReason;
/**
* Indicates whether to block duplicates of Document reference and Supplier or Service Provider.
* Defaults to true.
*/
@XmlAttribute
private boolean blockDuplicateSupplierOrServiceProviderDocRefs;
@XmlAttribute
@ForeignKey(name = "fk_serviceProvider")
@ManyToOne
private ServiceProvider defaultServiceProvider;
@XmlAttribute
@ForeignKey(name = "fk_currency")
@ManyToOne
private Currency defaultCurrency;
@ElementCollection
@CollectionTable(name = "documentclientconfig_outoftolerancereasons", joinColumns = {@JoinColumn(name = "config_id", unique = false)})
@Column(name = "reason", unique = true)
@ForeignKey(name = "fk_documentclientconfig_outoftolerancereasons", inverseName = "fk_ outoftolerancereasons")
@XmlElementWrapper(name = "outoftolerancereasons")
@XmlElement(name = "outoftolerancereasons")
private List<String> outOfToleranceReasons = new ArrayList<>();
/**
* The default settlement date calculation type used on the Service Provider invoice creation page.
*/
@Enumerated(value = EnumType.STRING)
@XmlAttribute
@NotNull
private SettlementDateCalculationType settlementDateCalculationType = SettlementDateCalculationType.USE_SERVICE_PROVIDER_PAYMENT_TERMS;
@XmlAttribute
private boolean allowCISignOffWithoutTariff;
private boolean useIntegratedVat;
@ElementCollection(fetch = FetchType.EAGER)
@Column(name = "invoicestatetocomplete")
@Fetch(FetchMode.SELECT)
@Enumerated(EnumType.STRING)
private List<DocumentState> invoiceStateToComplete = new ArrayList<DocumentState>();
@XmlAttribute
private long maxInvoiceReferenceLength;
private boolean nonEditableDocs;
@Enumerated(value = EnumType.STRING)
@XmlAttribute
@NotNull
private SPICostlineCurrency spiCostlineCurrency;
@Enumerated(value = EnumType.STRING)
@XmlAttribute
@NotNull
private CustomsDutyCaptureLevel customsDutyCaptureLevel;
private boolean includeCustomsCostGroup;
private boolean requireMRNOnSPISignoff;
private boolean commInvoiceItemSupplierRef;
private boolean includeClientAccountNumber;
public InvoiceQuantitySource getInvoiceQuantitySource() {
return invoiceQuantitySource;
}
public void setInvoiceQuantitySource(InvoiceQuantitySource invoiceQuantitySource) {
this.invoiceQuantitySource = invoiceQuantitySource;
}
public boolean isMatchingSupplierOrServiceProviderDocRefWarning() {
return matchingSupplierOrServiceProviderDocRefWarning;
}
public void setMatchingSupplierOrServiceProviderDocRefWarning(boolean matchingSupplierOrServiceProviderDocRefWarning) {
this.matchingSupplierOrServiceProviderDocRefWarning = matchingSupplierOrServiceProviderDocRefWarning;
}
public boolean isBlockDuplicateSupplierOrServiceProviderDocRefs() {
return blockDuplicateSupplierOrServiceProviderDocRefs;
}
public void setBlockDuplicateSupplierOrServiceProviderDocRefs(boolean blockDuplicateSupplierOrServiceProviderDocRefs) {
this.blockDuplicateSupplierOrServiceProviderDocRefs = blockDuplicateSupplierOrServiceProviderDocRefs;
}
public SettlementDateCalculationType getSettlementDateCalculationType() {
return settlementDateCalculationType;
}
public void setSettlementDateCalculationType(SettlementDateCalculationType settlementDateCalculationType) {
this.settlementDateCalculationType = settlementDateCalculationType;
}
public boolean isIncludeCustomsVatOnDocuments() {
return includeCustomsVatOnDocuments;
}
public void setIncludeCustomsVatOnDocuments(boolean includeCustomsVatOnDocuments) {
this.includeCustomsVatOnDocuments = includeCustomsVatOnDocuments;
}
public ServiceProvider getDefaultServiceProvider() {
return defaultServiceProvider;
}
public void setDefaultServiceProvider(ServiceProvider defaultServiceProvider) {
this.defaultServiceProvider = defaultServiceProvider;
}
public boolean isCommInvoiceOutOfToleranceReason() {
return commInvoiceOutOfToleranceReason;
}
public void setCommInvoiceOutOfToleranceReason(boolean commInvoiceOutOfToleranceReason) {
this.commInvoiceOutOfToleranceReason = commInvoiceOutOfToleranceReason;
}
public Currency getDefaultCurrency() {
return defaultCurrency;
}
public void setDefaultCurrency(Currency defaultCurrency) {
this.defaultCurrency = defaultCurrency;
}
public SPICostlineCurrency getSpiCostlineCurrency() {
return spiCostlineCurrency;
}
public void setSpiCostlineCurrency(SPICostlineCurrency spiCostlineCurrency) {
this.spiCostlineCurrency = spiCostlineCurrency;
}
public List<String> getOutOfToleranceReasons() {
return outOfToleranceReasons;
}
public void setOutOfToleranceReasons(List<String> outOfToleranceReasons) {
this.outOfToleranceReasons = outOfToleranceReasons;
}
public boolean isAllowCISignOffWithoutTariff() {
return allowCISignOffWithoutTariff;
}
public void setAllowCISignOffWithoutTariff(boolean allowCISignOffWithoutTariff) {
this.allowCISignOffWithoutTariff = allowCISignOffWithoutTariff;
}
public boolean isUseIntegratedVat() {
return useIntegratedVat;
}
public void setUseIntegratedVat(boolean useIntegratedVat) {
this.useIntegratedVat = useIntegratedVat;
}
public List<DocumentState> getInvoiceStateToComplete() {
return invoiceStateToComplete;
}
public void setInvoiceStateToComplete(List<DocumentState> invoiceStateToComplete) {
this.invoiceStateToComplete = invoiceStateToComplete;
}
public long getMaxInvoiceReferenceLength() {
return maxInvoiceReferenceLength;
}
public void setMaxInvoiceReferenceLength(long maxInvoiceReferenceLength) {
this.maxInvoiceReferenceLength = maxInvoiceReferenceLength;
}
public boolean isNonEditableDocs() {
return nonEditableDocs;
}
public void setNonEditableDocs(boolean nonEditableDocs) {
this.nonEditableDocs = nonEditableDocs;
}
public CustomsDutyCaptureLevel getCustomsDutyCaptureLevel() {
return customsDutyCaptureLevel;
}
public void setCustomsDutyCaptureLevel(CustomsDutyCaptureLevel customsDutyCaptureLevel) {
this.customsDutyCaptureLevel = customsDutyCaptureLevel;
}
public boolean isIncludeCustomsCostGroup() {
return includeCustomsCostGroup;
}
public void setIncludeCustomsCostGroup(boolean includeCustomsCostGroup) {
this.includeCustomsCostGroup = includeCustomsCostGroup;
}
public boolean isRequireMRNOnSPISignoff() {
return requireMRNOnSPISignoff;
}
public void setRequireMRNOnSPISignoff(boolean requireMRNOnSPISignoff) {
this.requireMRNOnSPISignoff = requireMRNOnSPISignoff;
}
public boolean isCommInvoiceItemSupplierRef() {
return commInvoiceItemSupplierRef;
}
public void setCommInvoiceItemSupplierRef(boolean commInvoiceItemSupplierRef) {
this.commInvoiceItemSupplierRef = commInvoiceItemSupplierRef;
}
public boolean isIncludeClientAccountNumber() {
return includeClientAccountNumber;
}
public void setIncludeClientAccountNumber(boolean includeClientAccountNumber) {
this.includeClientAccountNumber = includeClientAccountNumber;
}
}