ExportConfig.java
package com.tradecloud.domain.export;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.agent.Agent;
import com.tradecloud.domain.common.Incoterm;
import com.tradecloud.domain.common.IncotermYear;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.model.payment.PaymentTerm;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.party.Bank;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.Country;
import com.tradecloud.domain.place.NamedPlace;
import com.tradecloud.domain.place.PlaceOfCustom;
import org.hibernate.annotations.ForeignKey;
import org.springframework.stereotype.Component;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.xml.bind.annotation.*;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Entity
@Component(value = "ExportConfig")
@Table(name = "exportconfig")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "ExportConfig")
public class ExportConfig extends PersistenceBase {
private static final Long serialVersionUID = 1L;
@ManyToOne
@ForeignKey(name = "exportconfig_exporter_fk")
@XmlElement(name = "DefaultExporter")
private OrganisationalUnit exporter;
@ManyToOne
@ForeignKey(name = "exportconfig_exportconfigconsignee_fk")
@XmlElement(name = "DefaultConsignee")
private ExportParty exportconfigconsignee;
@ManyToOne
@ForeignKey(name = "exportconfig_agent_fk")
@XmlElement(name = "DefaultAgent")
private Agent agent;
@ManyToOne
@ForeignKey(name = "exportconfig_countryofdestination_fk")
@XmlElement(name = "DefaultCountryOfDestination")
private Country countryOfDestination;
@ManyToOne
@ForeignKey(name = "exportconfig_countryofexport_fk")
@XmlElement(name = "DefaultCountryOfExport")
private Country countryOfExport;
@ManyToOne
@ForeignKey(name = "exportconfig_cityofexport_fk")
@XmlElement(name = "DefaultCityOfExport")
private NamedPlace cityOfExport;
private String shipmentCargoSummary;
@ManyToOne
@ForeignKey(name = "exportconfig_shipper_fk")
@XmlElement(name = "DefaultShipper")
private OrganisationalUnit shipper;
@Enumerated(value = EnumType.STRING)
private ShippingMode modeOfTransport;
@ManyToOne
@XmlElement(name = "dutyDrawbackIncoterm")
private Incoterm dutyDrawbackIncoterm;
@ManyToOne
@ForeignKey(name = "placeofcustomsentry_fk")
private PlaceOfCustom placeOfCustomsEntry;
private String customsProcedureCategory;
private String ciTransportConfig;
private String cargoStatus;
@ManyToOne
@ForeignKey(name = "receivingbank_id")
private Bank receivingBank;
@ManyToOne
@ForeignKey(name = "exportconfig_paymentterm_fk")
@XmlElement(name = "DefaultPaymentTerm")
private PaymentTerm paymentterm;
@Column(name = "currency_code")
private String currency;
@ManyToOne
@ForeignKey(name = "exportconfig_incotermyear_fk")
@XmlElement(name = "DeafultIncoTermYear")
private IncotermYear incotermyear;
/**
* Defaults to "SS".
*/
@XmlAttribute
@Pattern(regexp = "\\S+", message = "Spaces are not allowed")
private String seaShipmentPrefix;
/**
* Defaults to "/01".
*/
@XmlAttribute
@Pattern(regexp = "\\S+", message = "Spaces are not allowed")
private String seaShipmentSuffix;
/**
* Defaults to "AS".
*/
@XmlAttribute
@Pattern(regexp = "\\S+", message = "Spaces are not allowed")
private String airShipmentPrefix;
/**
* Defaults to "/01".
*/
@XmlAttribute
@Pattern(regexp = "\\S+", message = "Spaces are not allowed")
private String airShipmentSuffix;
/**
* Defaults to "LS".
*/
@XmlAttribute
@Pattern(regexp = "\\S+", message = "Spaces are not allowed")
private String landShipmentPrefix;
/**
* Defaults to "/01".
*/
@XmlAttribute
@Pattern(regexp = "\\S+", message = "Spaces are not allowed")
private String landShipmentSuffix;
private Integer shipmentNumberLength;
private String extendedCustomsProcedureDefaultRequested;
private String extendedCustomsProcedureDefaultPrevious;
private Double insurancePercentage;
@ManyToOne
@ForeignKey(name = "exportconfig_transporter_fk")
@XmlElement(name = "DefaultTransporter")
private ServiceProvider transporter;
private boolean sarsIntegration;
private boolean useShipmentNumberOnCI;
@Column(name = "com_invoice_footer_text")
private String comInvoiceFooterText;
private boolean displayCustomCode;
private boolean useInsurancePercentage;
private boolean useInvoiceDateOnCI;
private boolean requireTemplateDescription;
private boolean freightAmountRequired;
@OneToMany
private Set<AsycudaCountryConfig> asycudaConfig;
@ElementCollection
@CollectionTable(name = "exportconfig_packinginstructions", joinColumns = {@JoinColumn(name = "config_id", unique = false)})
@Column(name = "instruction", unique = true)
@ForeignKey(name = "fk_exportconfig_packinginstructions", inverseName = "fk_packinginstructions")
@XmlElementWrapper(name = "PackingInstructions")
@XmlElement(name = "PackingInstruction")
private Set<String> exportPackingInstructions = new HashSet<String>();
@OneToMany(cascade = CascadeType.ALL)
private List<TermsAndConditionsConfig> termsAndConditionsConfigList;
/**
* Defaults to true.
*/
@XmlAttribute
@NotNull
private boolean showItemsUnitsOnCI;
private boolean createInvoiceOnOrderSignOff;
private boolean allowOverrideCurrencyExchangeRate;
private boolean useProductLibraryForMissingFields;
private boolean updateExportPartyName;
private boolean requirePrincipleConsignee;
public ExportConfig() {
}
public Set<AsycudaCountryConfig> getAsycudaConfig() {
return asycudaConfig;
}
public void setAsycudaConfig(Set<AsycudaCountryConfig> asycudaConfig) {
this.asycudaConfig = asycudaConfig;
}
public AsycudaCountryConfig getAsycudaCountryConfig(Country country, PlaceOfCustom placeofcustomsExit) {
if (asycudaConfig != null) {
for (AsycudaCountryConfig asycudaCountryConfig : asycudaConfig) {
if (asycudaCountryConfig.getCountry().equals(country) && placeofcustomsExit != null
&& asycudaCountryConfig.getPlaceOfCustomExit() != null
&& asycudaCountryConfig.getPlaceOfCustomExit().equals(placeofcustomsExit)) {
return asycudaCountryConfig;
}
}
for (AsycudaCountryConfig asycudaCountryConfig : asycudaConfig) {
if (asycudaCountryConfig.getCountry().getCode().equals(country.getCode())) {
return asycudaCountryConfig;
}
}
}
return null;
}
public OrganisationalUnit getExporter() {
return exporter;
}
public void setExporter(OrganisationalUnit exporter) {
this.exporter = exporter;
}
public ExportParty getExportconfigconsignee() {
return exportconfigconsignee;
}
public void setExportconfigconsignee(ExportParty exportconfigconsignee) {
this.exportconfigconsignee = exportconfigconsignee;
}
public Agent getAgent() {
return agent;
}
public void setAgent(Agent agent) {
this.agent = agent;
}
public Country getCountryOfDestination() {
return countryOfDestination;
}
public void setCountryOfDestination(Country countryOfDestination) {
this.countryOfDestination = countryOfDestination;
}
public Country getCountryOfExport() {
return countryOfExport;
}
public void setCountryOfExport(Country countryOfExport) {
this.countryOfExport = countryOfExport;
}
public NamedPlace getCityOfExport() {
return cityOfExport;
}
public void setCityOfExport(NamedPlace cityOfExport) {
this.cityOfExport = cityOfExport;
}
public String getShipmentCargoSummary() {
return shipmentCargoSummary;
}
public void setShipmentCargoSummary(String shipmentCargoSummary) {
this.shipmentCargoSummary = shipmentCargoSummary;
}
public OrganisationalUnit getShipper() {
return shipper;
}
public void setShipper(OrganisationalUnit shipper) {
this.shipper = shipper;
}
public ShippingMode getModeOfTransport() {
return modeOfTransport;
}
public void setModeOfTransport(ShippingMode modeOfTransport) {
this.modeOfTransport = modeOfTransport;
}
public PlaceOfCustom getPlaceOfCustomsEntry() {
return placeOfCustomsEntry;
}
public void setPlaceOfCustomsEntry(PlaceOfCustom placeOfCustomsEntry) {
this.placeOfCustomsEntry = placeOfCustomsEntry;
}
public String getCustomsProcedureCategory() {
return customsProcedureCategory;
}
public void setCustomsProcedureCategory(String customsProcedureCategory) {
this.customsProcedureCategory = customsProcedureCategory;
}
public String getCiTransportConfig() {
return ciTransportConfig;
}
public void setCiTransportConfig(String ciTransportConfig) {
this.ciTransportConfig = ciTransportConfig;
}
public String getCargoStatus() {
return cargoStatus;
}
public void setCargoStatus(String cargoStatus) {
this.cargoStatus = cargoStatus;
}
public Bank getReceivingBank() {
return receivingBank;
}
public void setReceivingBank(Bank receivingBank) {
this.receivingBank = receivingBank;
}
public PaymentTerm getPaymentterm() {
return paymentterm;
}
public void setPaymentterm(PaymentTerm paymentterm) {
this.paymentterm = paymentterm;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public IncotermYear getIncotermyear() {
return incotermyear;
}
public void setIncotermyear(IncotermYear incotermyear) {
this.incotermyear = incotermyear;
}
public String getLandShipmentPrefix() {
return landShipmentPrefix;
}
public void setLandShipmentPrefix(String landShipmentPrefix) {
this.landShipmentPrefix = landShipmentPrefix;
}
public String getLandShipmentSuffix() {
return landShipmentSuffix;
}
public void setLandShipmentSuffix(String landShipmentSuffix) {
this.landShipmentSuffix = landShipmentSuffix;
}
public Integer getShipmentNumberLength() {
return shipmentNumberLength;
}
public void setShipmentNumberLength(Integer shipmentNumberLength) {
this.shipmentNumberLength = shipmentNumberLength;
}
public String getExtendedCustomsProcedureDefaultRequested() {
return extendedCustomsProcedureDefaultRequested;
}
public void setExtendedCustomsProcedureDefaultRequested(String extendedCustomsProcedureDefaultRequested) {
this.extendedCustomsProcedureDefaultRequested = extendedCustomsProcedureDefaultRequested;
}
public String getExtendedCustomsProcedureDefaultPrevious() {
return extendedCustomsProcedureDefaultPrevious;
}
public void setExtendedCustomsProcedureDefaultPrevious(String extendedCustomsProcedureDefaultPrevious) {
this.extendedCustomsProcedureDefaultPrevious = extendedCustomsProcedureDefaultPrevious;
}
public Double getInsurancePercentage() {
return insurancePercentage;
}
public void setInsurancePercentage(Double insurancePercentage) {
this.insurancePercentage = insurancePercentage;
}
public ServiceProvider getTransporter() {
return transporter;
}
public void setTransporter(ServiceProvider transporter) {
this.transporter = transporter;
}
public boolean isSarsIntegration() {
return sarsIntegration;
}
public void setSarsIntegration(boolean sarsIntegration) {
this.sarsIntegration = sarsIntegration;
}
public boolean isUseShipmentNumberOnCI() {
return useShipmentNumberOnCI;
}
public void setUseShipmentNumberOnCI(boolean useShipmentNumberOnCI) {
this.useShipmentNumberOnCI = useShipmentNumberOnCI;
}
public Set<String> getExportPackingInstructions() {
return exportPackingInstructions;
}
public void setExportPackingInstructions(Set<String> exportPackingInstructions) {
this.exportPackingInstructions = exportPackingInstructions;
}
public String getComInvoiceFooterText() {
return comInvoiceFooterText;
}
public void setComInvoiceFooterText(String comInvoiceFooterText) {
this.comInvoiceFooterText = comInvoiceFooterText;
}
public boolean isDisplayCustomCode() {
return displayCustomCode;
}
public void setDisplayCustomCode(boolean displayCustomCode) {
this.displayCustomCode = displayCustomCode;
}
public boolean isUseInsurancePercentage() {
return useInsurancePercentage;
}
public void setUseInsurancePercentage(boolean useInsurancePercentage) {
this.useInsurancePercentage = useInsurancePercentage;
}
public boolean isUseInvoiceDateOnCI() {
return useInvoiceDateOnCI;
}
public void setUseInvoiceDateOnCI(boolean useInvoiceDateOnCI) {
this.useInvoiceDateOnCI = useInvoiceDateOnCI;
}
public boolean isShowItemsUnitsOnCI() {
return showItemsUnitsOnCI;
}
public void setShowItemsUnitsOnCI(boolean showItemsUnitsOnCI) {
this.showItemsUnitsOnCI = showItemsUnitsOnCI;
}
public List<TermsAndConditionsConfig> getTermsAndConditionsConfigList() {
return termsAndConditionsConfigList;
}
public void setTermsAndConditionsConfigList(List<TermsAndConditionsConfig> termsAndConditionsConfigList) {
this.termsAndConditionsConfigList = termsAndConditionsConfigList;
}
public boolean isCreateInvoiceOnOrderSignOff() {
return createInvoiceOnOrderSignOff;
}
public void setCreateInvoiceOnOrderSignOff(boolean createInvoiceOnOrderSignOff) {
this.createInvoiceOnOrderSignOff = createInvoiceOnOrderSignOff;
}
public boolean isAllowOverrideCurrencyExchangeRate() {
return allowOverrideCurrencyExchangeRate;
}
public void setAllowOverrideCurrencyExchangeRate(boolean allowOverrideCurrencyExchangeRate) {
this.allowOverrideCurrencyExchangeRate = allowOverrideCurrencyExchangeRate;
}
public boolean isUseProductLibraryForMissingFields() {
return useProductLibraryForMissingFields;
}
public void setUseProductLibraryForMissingFields(boolean useProductLibraryForMissingFields) {
this.useProductLibraryForMissingFields = useProductLibraryForMissingFields;
}
public boolean isUpdateExportPartyName() {
return updateExportPartyName;
}
public void setUpdateExportPartyName(boolean updateExportPartyName) {
this.updateExportPartyName = updateExportPartyName;
}
public boolean isRequirePrincipleConsignee() {
return requirePrincipleConsignee;
}
public void setRequirePrincipleConsignee(boolean requirePrincipleConsignee) {
this.requirePrincipleConsignee = requirePrincipleConsignee;
}
public Incoterm getDutyDrawbackIncoterm() {
return dutyDrawbackIncoterm;
}
public void setDutyDrawbackIncoterm(Incoterm dutyDrawbackIncoterm) {
this.dutyDrawbackIncoterm = dutyDrawbackIncoterm;
}
public boolean isRequireTemplateDescription() {
return requireTemplateDescription;
}
public void setRequireTemplateDescription(boolean requireTemplateDescription) {
this.requireTemplateDescription = requireTemplateDescription;
}
public boolean isFreightAmountRequired() {
return freightAmountRequired;
}
public void setFreightAmountRequired(boolean freightAmountRequired) {
this.freightAmountRequired = freightAmountRequired;
}
public String getSeaShipmentPrefix() {
return seaShipmentPrefix;
}
public void setSeaShipmentPrefix(String seaShipmentPrefix) {
this.seaShipmentPrefix = seaShipmentPrefix;
}
public String getSeaShipmentSuffix() {
return seaShipmentSuffix;
}
public void setSeaShipmentSuffix(String seaShipmentSuffix) {
this.seaShipmentSuffix = seaShipmentSuffix;
}
public String getAirShipmentPrefix() {
return airShipmentPrefix;
}
public void setAirShipmentPrefix(String airShipmentPrefix) {
this.airShipmentPrefix = airShipmentPrefix;
}
public String getAirShipmentSuffix() {
return airShipmentSuffix;
}
public void setAirShipmentSuffix(String airShipmentSuffix) {
this.airShipmentSuffix = airShipmentSuffix;
}
}