OrderIntegrationConfig.java

package com.tradecloud.domain.configuration.orderintegration;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.model.DestinationSystem;
import org.hibernate.annotations.ForeignKey;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;

@Entity
@Table(name = "orderintegrationconfig")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "orderintegrationconfig")
public class OrderIntegrationConfig extends PersistenceBase {

    public static final String ORDERSERVICE_SYNCHRONOUS = "ORDERSERVICE_SYNCHRONOUS";

    private boolean autoSignoff;
    private boolean autoFinalise;

    /**
     * Defaults to {@link com.tradecloud.domain.model.DestinationSystem#TS_RETAIL}.
     */
    @Enumerated(value = EnumType.STRING)
    @XmlAttribute
    @NotNull
    private DestinationSystem orderDestinationSystem;

    @OneToOne(cascade = CascadeType.ALL)
    @ForeignKey(name = "fk_purchaseorderintegrationproperties")
    private PurchaseOrderIntegrationProperties purchaseOrderIntegrationProperties = new PurchaseOrderIntegrationProperties();

    @OneToOne(cascade = CascadeType.ALL)
    @ForeignKey(name = "fk_lineItemIntegrationProperties")
    private LineItemIntegrationProperties lineItemIntegrationProperties = new LineItemIntegrationProperties();

    private boolean failIntegratedOrderOnInvalidTariff;

    public LineItemIntegrationProperties getLineItemIntegrationProperties() {
        return lineItemIntegrationProperties;
    }

    public void setLineItemIntegrationProperties(LineItemIntegrationProperties lineItemIntegrationProperties) {
        this.lineItemIntegrationProperties = lineItemIntegrationProperties;
    }

    public DestinationSystem getOrderDestinationSystem() {
        return orderDestinationSystem;
    }

    public void setOrderDestinationSystem(DestinationSystem orderDestinationSystem) {
        this.orderDestinationSystem = orderDestinationSystem;
    }

    public PurchaseOrderIntegrationProperties getPurchaseOrderIntegrationProperties() {
        return purchaseOrderIntegrationProperties;
    }

    public void setPurchaseOrderIntegrationProperties(PurchaseOrderIntegrationProperties purchaseOrderIntegrationProperties) {
        this.purchaseOrderIntegrationProperties = purchaseOrderIntegrationProperties;
    }

    public boolean isAutoSignoff() {
        return autoSignoff;
    }

    public void setAutoSignoff(boolean autoSignoff) {
        this.autoSignoff = autoSignoff;
    }

    public boolean isAutoFinalise() {
        return autoFinalise;
    }

    public void setAutoFinalise(boolean autoFinalise) {
        this.autoFinalise = autoFinalise;
    }

    public boolean isFailIntegratedOrderOnInvalidTariff() {
        return failIntegratedOrderOnInvalidTariff;
    }

    public void setFailIntegratedOrderOnInvalidTariff(boolean failIntegratedOrderOnInvalidTariff) {
        this.failIntegratedOrderOnInvalidTariff = failIntegratedOrderOnInvalidTariff;
    }
}