ItemsAndOrdersClientConfig.java

package com.tradecloud.domain.configuration;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.common.Currency;
import com.tradecloud.domain.common.Incoterm;
import com.tradecloud.domain.configuration.orderintegration.OrderIntegrationConfig;
import com.tradecloud.domain.document.invoice.UnitPricePerItem;
import com.tradecloud.domain.item.PackageType;
import com.tradecloud.domain.item.UnitType;
import com.tradecloud.domain.item.VolumeUnitOfMeasure;
import com.tradecloud.domain.item.WeightUnitOfMeasure;
import com.tradecloud.domain.model.ordermanagement.OrderUpdateRejection;
import com.tradecloud.domain.model.payment.PaymentTerm;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.Country;
import com.tradecloud.domain.place.NamedPlace;
import com.tradecloud.domain.place.PlaceOfDischarge;
import com.tradecloud.domain.place.PlaceOfLoading;
import org.hibernate.annotations.ForeignKey;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.*;
import java.math.BigDecimal;
import java.util.HashSet;
import java.util.Set;

/**
 * An entity representing item and order client configuration values.
 */
@Entity
@Table(name = "itemsandordersclientconfig")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "ItemsAndOrdersClientConfig")
public class ItemsAndOrdersClientConfig extends PersistenceBase {

    private static final long serialVersionUID = 1L;

    /**
     * Defaults to CHINA.
     */
    @ManyToOne
    @ForeignKey(name = "fk_countryoforigin")
    @XmlElement(name = "CountryOfOrigin")
    @NotNull(message = "Country of origin is required")
    private Country countryOfOrigin;

    /**
     * Defaults to FOB.
     */
    @ManyToOne
    @ForeignKey(name = "fk_incoterm")
    @XmlElement(name = "Incoterm")
    @NotNull(message = "Incoterm is required")
    private Incoterm incoterm;

    /**
     * Defaults to {@link UnitPricePerItem#FACTORY_PRICE}.
     */
    @Enumerated(value = EnumType.STRING)
    @XmlAttribute
    @NotNull(message = "Unit price per item is required")
    private UnitPricePerItem unitPricePerItem;

    /**
     * Defaults to USD.
     */
    @ManyToOne
    @ForeignKey(name = "fk_purchasecurrency")
    @XmlElement(name = "PurchaseCurrency")
    @NotNull(message = "Purchase currency is required")
    private Currency purchaseCurrency;

    /**
     * Defaults to {@link ShippingMode#SEA}.
     */
    @XmlAttribute
    @NotNull(message = "Shipping mode is required")
    @Enumerated(value = EnumType.STRING)
    private ShippingMode shippingMode;

    @XmlElement(name = "NamedPlace")
    @ManyToOne
    @ForeignKey(name = "fk_namedplace")
    private NamedPlace namedPlace;

    /**
     * Defaults to Cape Town.
     */
    @ManyToOne
    @ForeignKey(name = "fk_placeofloading")
    @XmlElement(name = "PlaceOfLoading")
    private PlaceOfLoading placeOfLoading;

    /**
     * Defaults to Durban.
     */
    @ManyToOne
    @ForeignKey(name = "fk_placeofdischarge")
    @XmlElement(name = "PlaceOfDischarge")
    private PlaceOfDischarge placeOfDischarge;

    /**
     * Defaults to UNIT.
     */
    @ManyToOne
    @ForeignKey(name = "fk_unittype")
    @XmlElement(name = "UnitType")
    @NotNull(message = "Unit type is required")
    private UnitType unitType;

    /**
     * Defaults to CARTON.
     */
    @ManyToOne
    @ForeignKey(name = "fk_packagetype")
    @XmlElement(name = "PackageType")
    @NotNull(message = "Package type is required")
    private PackageType packageType;

    /**
     * Defaults to M3.
     */
    @ManyToOne
    @ForeignKey(name = "fk_volumeuom")
    @XmlElement(name = "VolumeUnitOfMeasure")
    private VolumeUnitOfMeasure volumeUOM;

    /**
     * Defaults to KG.
     */
    @ManyToOne
    @ForeignKey(name = "fk_weightuom")
    @XmlElement(name = "WeightUnitOfMeasure")
    private WeightUnitOfMeasure weightUOM;

    // Should possibly be @NotNull. But have to there is the startup case
    // Rename to freightForwarder
    @ManyToOne
    @ForeignKey(name = "fk_lsp")
    @XmlElement(name = "LSP")
    private ServiceProvider lsp;

    // Should possibly be @NotNull. But have to there is the startup case
    @ManyToOne
    @ForeignKey(name = "fk_clearingagent")
    @XmlElement(name = "ClearingAgent")
    private ServiceProvider clearingAgent;

    @ManyToOne
    @ForeignKey(name = "fk_transporter")
    @XmlElement(name = "Transporter")
    private ServiceProvider transporter;

    /**
     * Defaults to true.
     */
    @XmlAttribute
    @NotNull
    private boolean forceUnsignOffReason;

    /**
     * Defaults to true.
     */
    @XmlAttribute
    @NotNull
    private boolean forceOrderDeleteReason;

    /**
     * Defaults to false.
     */
    @XmlAttribute
    @NotNull
    private boolean orderDisabledUnitPricePerItem;

    /**
     * Defaults to true.
     */
    @XmlAttribute
    @NotNull
    private boolean useOrderLeadTime;

    /**
     * Defaults to 10%.
     */
    @XmlAttribute
    @NotNull
    private BigDecimal lcToleranceAbove;

    /**
     * Defaults to 0%.
     */
    @XmlAttribute
    @NotNull
    private BigDecimal lcToleranceBelow;

    /**
     * Defaults to Day 7.
     */
    @ManyToOne
    @ForeignKey(name = "fk_paymentterm")
    @XmlElement(name = "PaymentTerm")
    @NotNull(message = "Payment term is required")
    private PaymentTerm paymentTerm;

    @ElementCollection
    @CollectionTable(name = "itemsandordersclientconfig_unsignoffreasons", joinColumns = {@JoinColumn(name = "config_id", unique = false)})
    @Column(name = "reason", unique = true)
    @ForeignKey(name = "fk_itemsandordersclientconfig", inverseName = "fk_unsignedoffreason")
    @XmlElementWrapper(name = "UnsignOffReasons")
    @XmlElement(name = "UnsignOffReason")
    private Set<String> unsignOffReasons = new HashSet<>();

    @ElementCollection
    @CollectionTable(name = "orderclientconfig_deletereasons", joinColumns = {@JoinColumn(name = "config_id", unique = false)})
    @Column(name = "reason", unique = true)
    @ForeignKey(name = "orderclientconfig_deletereasons_config_id_fkey", inverseName = "fk_orderdeletereason")
    @XmlElementWrapper(name = "OrderDeleteReasons")
    @XmlElement(name = "OrderDeleteReason")
    private Set<String> orderDeleteReasons = new HashSet<>();

    @OneToOne(cascade = CascadeType.ALL)
    @ForeignKey(name = "fk_orderIntegrationConfig")
    @XmlElement(name = "orderIntegrationConfig")
    private OrderIntegrationConfig orderIntegrationConfig = new OrderIntegrationConfig();

    /**
     * Defaults to 'Warning Message'.
     */
    @Enumerated(value = EnumType.STRING)
    @XmlAttribute
    @NotNull
    private AmendCountryOfOriginOnItem amendCountryOfOriginOnItem;

    /**
     * Order update rejection setting.
     */
    @Enumerated(value = EnumType.STRING)
    @XmlAttribute
    @NotNull
    private OrderUpdateRejection orderUpdateRejection;

    /**
     * Maximum Supplier reference field length(item and product). Can be a whole number between 1
     * and 75, defaults to 30.
     */
    @XmlAttribute
    @NotNull
    private int maximumSupplierReferenceLengthItemAndProduct;

    /**
     * Defaults to true.
     */
    @XmlAttribute
    @NotNull
    private boolean useSamples = true;

    /**
     * Maximum item and products reference field length. Can be a whole number between 1
     * and 75, defaults to 30.
     */
    @XmlAttribute
    @NotNull
    private int maximumItemAndProductReferenceLength;

    /**
     * Maximum item and products description field length. Can be a whole number between 1
     * and 75, defaults to 40.
     */
    @XmlAttribute
    @NotNull
    private int maximumItemAndProductDescriptionLength;

    /**
     * Defaults to false.
     */
    @XmlAttribute
    @NotNull
    private boolean allocateCustomsDutyCostsToSamples;

    /**
     * Defaults to true.
     */
    @XmlAttribute
    @NotNull
    private boolean useSpareParts = true;

    @XmlAttribute
    @NotNull
    private boolean bondedItems = true;

    private boolean ignoreTariffStatusOnInvoiceSignOff = false;

    private boolean allowPurchaseOrderCreateWithLocalCurrency = false;
    private boolean validateAllowedCurrencies = false;

    /**
     * Defaults to false.
     */
    @XmlAttribute
    @NotNull
    private boolean downloadLineItemTemplate;

    /**
     * Defaults to false.
     */
    @XmlAttribute
    @NotNull
    private boolean uploadLineItemTemplate;

    /**
     * Defaults to false.
     */
    @XmlAttribute
    @NotNull
    private boolean allocateCustomsDutyCostsToSpareParts;

    @XmlAttribute
    @NotNull
    private boolean integratedOrderItemsEditable;

    @XmlAttribute
    @NotNull
    private boolean integratedOrderItemsEditOnCommercialInvoice;

    @XmlAttribute
    @NotNull
    @Enumerated(value = EnumType.STRING)
    private ProformaUniquenessConfig validateProformaInvoiceRefSupplierComb;

    @XmlAttribute
    @NotNull
    private boolean disableDeleteReasonFreeText;

    @ManyToOne
    @ForeignKey(name = "fk_localCustomsAuthority")
    @XmlElement(name = "LocalCustomsAuthority")
    private ServiceProvider localCustomsAuthority;

    @ManyToOne
    @ForeignKey(name = "fk_localPortAuthority")
    @XmlElement(name = "LocalPortAuthority")
    private ServiceProvider localPortAuthority;


    @XmlAttribute
    @NotNull
    private boolean gRNRequiresShipmentSignOff;

    private boolean defaultFromFdType;

    private boolean canEditItemType;

    private boolean itemLinenumberOrdering;

    private boolean setItemCategoryToItemProperty;

    private boolean createChildOrders;

    private boolean rebateCodeOptional;
    private boolean autoSignOffUploaded;
    private boolean autoFinaliseUploaded;

    private boolean logisticsOrderUpdateRejectPriorToOrderSignOff;

    private boolean itemCategoryRequired;

    public Country getCountryOfOrigin() {
        return countryOfOrigin;
    }

    public void setCountryOfOrigin(Country countryOfOrigin) {
        this.countryOfOrigin = countryOfOrigin;
    }

    public Incoterm getIncoterm() {
        return incoterm;
    }

    public void setIncoterm(Incoterm incoterm) {
        this.incoterm = incoterm;
    }

    public UnitPricePerItem getUnitPricePerItem() {
        return unitPricePerItem;
    }

    public void setUnitPricePerItem(UnitPricePerItem unitPricePerItem) {
        this.unitPricePerItem = unitPricePerItem;
    }

    public Currency getPurchaseCurrency() {
        return purchaseCurrency;
    }

    public void setPurchaseCurrency(Currency purchaseCurrency) {
        this.purchaseCurrency = purchaseCurrency;
    }

    public ShippingMode getShippingMode() {
        return shippingMode;
    }

    public void setShippingMode(ShippingMode shippingMode) {
        this.shippingMode = shippingMode;
    }

    public NamedPlace getNamedPlace() {
        return namedPlace;
    }

    public void setNamedPlace(NamedPlace namedPlace) {
        this.namedPlace = namedPlace;
    }

    public PlaceOfLoading getPlaceOfLoading() {
        return placeOfLoading;
    }

    public void setPlaceOfLoading(PlaceOfLoading placeOfLoading) {
        this.placeOfLoading = placeOfLoading;
    }

    public PlaceOfDischarge getPlaceOfDischarge() {
        return placeOfDischarge;
    }

    public void setPlaceOfDischarge(PlaceOfDischarge placeOfDischarge) {
        this.placeOfDischarge = placeOfDischarge;
    }

    public UnitType getUnitType() {
        return unitType;
    }

    public void setUnitType(UnitType unitType) {
        this.unitType = unitType;
    }

    public PackageType getPackageType() {
        return packageType;
    }

    public void setPackageType(PackageType packageType) {
        this.packageType = packageType;
    }

    public VolumeUnitOfMeasure getVolumeUOM() {
        return volumeUOM;
    }

    public void setVolumeUOM(VolumeUnitOfMeasure volumeUOM) {
        this.volumeUOM = volumeUOM;
    }

    public WeightUnitOfMeasure getWeightUOM() {
        return weightUOM;
    }

    public void setWeightUOM(WeightUnitOfMeasure weightUOM) {
        this.weightUOM = weightUOM;
    }

    public ServiceProvider getLsp() {
        return lsp;
    }

    public void setLsp(ServiceProvider lsp) {
        this.lsp = lsp;
    }

    public ServiceProvider getFreightForwarder() {
        return lsp;
    }

    public void setFreightForwarder(ServiceProvider serviceProvider) {
        this.lsp = serviceProvider;
    }

    public ServiceProvider getClearingAgent() {
        return clearingAgent;
    }

    public void setClearingAgent(ServiceProvider clearingAgent) {
        this.clearingAgent = clearingAgent;
    }

    public ServiceProvider getTransporter() {
        return transporter;
    }

    public void setTransporter(ServiceProvider transporter) {
        this.transporter = transporter;
    }

    public boolean isForceUnsignOffReason() {
        return forceUnsignOffReason;
    }

    public void setForceUnsignOffReason(boolean forceUnsignOffReason) {
        this.forceUnsignOffReason = forceUnsignOffReason;
    }

    public boolean isForceOrderDeleteReason() {
        return forceOrderDeleteReason;
    }

    public void setForceOrderDeleteReason(boolean forceOrderDeleteReason) {
        this.forceOrderDeleteReason = forceOrderDeleteReason;
    }

    public boolean isOrderDisabledUnitPricePerItem() {
        return orderDisabledUnitPricePerItem;
    }

    public void setOrderDisabledUnitPricePerItem(boolean orderDisabledUnitPricePerItem) {
        this.orderDisabledUnitPricePerItem = orderDisabledUnitPricePerItem;
    }

    public boolean isUseOrderLeadTime() {
        return useOrderLeadTime;
    }

    public void setUseOrderLeadTime(boolean useOrderLeadTime) {
        this.useOrderLeadTime = useOrderLeadTime;
    }

    public Set<String> getUnsignOffReasons() {
        return unsignOffReasons;
    }

    public void setUnsignOffReasons(Set<String> unsignOffReasons) {
        this.unsignOffReasons = unsignOffReasons;
    }

    public Set<String> getOrderDeleteReasons() {
        return orderDeleteReasons;
    }

    public void setOrderDeleteReasons(Set<String> orderDeleteReasons) {
        this.orderDeleteReasons = orderDeleteReasons;
    }

    public OrderIntegrationConfig getOrderIntegrationConfig() {
        return orderIntegrationConfig;
    }

    public void setOrderIntegrationConfig(OrderIntegrationConfig orderIntegrationConfig) {
        this.orderIntegrationConfig = orderIntegrationConfig;
    }

    public AmendCountryOfOriginOnItem getAmendCountryOfOriginOnItem() {
        return this.amendCountryOfOriginOnItem;
    }

    public void setAmendCountryOfOriginOnItem(AmendCountryOfOriginOnItem amendCountryOfOriginOnItem) {
        this.amendCountryOfOriginOnItem = amendCountryOfOriginOnItem;
    }

    public BigDecimal getLcToleranceAbove() {
        return lcToleranceAbove;
    }

    public void setLcToleranceAbove(BigDecimal lcToleranceAbove) {
        this.lcToleranceAbove = lcToleranceAbove;
    }

    public BigDecimal getLcToleranceBelow() {
        return lcToleranceBelow;
    }

    public void setLcToleranceBelow(BigDecimal lcToleranceBelow) {
        this.lcToleranceBelow = lcToleranceBelow;
    }

    public PaymentTerm getPaymentTerm() {
        return paymentTerm;
    }

    public void setPaymentTerm(PaymentTerm paymentTerm) {
        this.paymentTerm = paymentTerm;
    }

    public OrderUpdateRejection getOrderUpdateRejection() {
        return orderUpdateRejection;
    }

    public void setOrderUpdateRejection(OrderUpdateRejection orderUpdateRejection) {
        this.orderUpdateRejection = orderUpdateRejection;
    }

    public int getMaximumSupplierReferenceLengthItemAndProduct() {
        return maximumSupplierReferenceLengthItemAndProduct;
    }

    public void setMaximumSupplierReferenceLengthItemAndProduct(int maximumSupplierReferenceLengthItemAndProduct) {
        this.maximumSupplierReferenceLengthItemAndProduct = maximumSupplierReferenceLengthItemAndProduct;
    }

    public int getMaximumItemAndProductReferenceLength() {
        return maximumItemAndProductReferenceLength;
    }

    public void setMaximumItemAndProductReferenceLength(int maximumItemAndProductReferenceLength) {
        this.maximumItemAndProductReferenceLength = maximumItemAndProductReferenceLength;
    }

    public int getMaximumItemAndProductDescriptionLength() {
        return maximumItemAndProductDescriptionLength;
    }

    public void setMaximumItemAndProductDescriptionLength(int maximumItemAndProductDescriptionLength) {
        this.maximumItemAndProductDescriptionLength = maximumItemAndProductDescriptionLength;
    }

    public boolean isUseSamples() {
        return useSamples;
    }

    public void setUseSamples(boolean useSamples) {
        this.useSamples = useSamples;
    }

    public boolean isAllocateCustomsDutyCostsToSamples() {
        return allocateCustomsDutyCostsToSamples;
    }

    public void setAllocateCustomsDutyCostsToSamples(boolean allocateCustomsDutyCostsToSamples) {
        this.allocateCustomsDutyCostsToSamples = !useSamples ? false : allocateCustomsDutyCostsToSamples;
    }

    public boolean isUseSpareParts() {
        return useSpareParts;
    }

    public void setUseSpareParts(boolean useSpareParts) {
        this.useSpareParts = useSpareParts;
    }

    public boolean isBondedItems() {
        return bondedItems;
    }

    public void setBondedItems(boolean bondedItems) {
        this.bondedItems = bondedItems;
    }

    public boolean isAllocateCustomsDutyCostsToSpareParts() {
        return allocateCustomsDutyCostsToSpareParts;
    }

    public void setAllocateCustomsDutyCostsToSpareParts(boolean allocateCustomsDutyCostsToSpareParts) {
        this.allocateCustomsDutyCostsToSpareParts = !useSpareParts ? false : allocateCustomsDutyCostsToSpareParts;
    }

    public boolean isIgnoreTariffStatusOnInvoiceSignOff() {
        return ignoreTariffStatusOnInvoiceSignOff;
    }

    public void setIgnoreTariffStatusOnInvoiceSignOff(boolean ignoreTariffStatusOnInvoiceSignOff) {
        this.ignoreTariffStatusOnInvoiceSignOff = ignoreTariffStatusOnInvoiceSignOff;
    }

    public boolean isAllowPurchaseOrderCreateWithLocalCurrency() {
        return allowPurchaseOrderCreateWithLocalCurrency;
    }

    public void setAllowPurchaseOrderCreateWithLocalCurrency(boolean allowPurchaseOrderCreateWithLocalCurrency) {
        this.allowPurchaseOrderCreateWithLocalCurrency = allowPurchaseOrderCreateWithLocalCurrency;
    }

    public boolean isUploadLineItemTemplate() {
        return uploadLineItemTemplate;
    }

    public void setUploadLineItemTemplate(boolean uploadLineItemTemplate) {
        this.uploadLineItemTemplate = uploadLineItemTemplate;
    }

    public boolean isDownloadLineItemTemplate() {
        return downloadLineItemTemplate;
    }

    public void setDownloadLineItemTemplate(boolean downloadLineItemTemplate) {
        this.downloadLineItemTemplate = downloadLineItemTemplate;
    }

    public boolean isIntegratedOrderItemsEditable() {
        return integratedOrderItemsEditable;
    }

    public void setIntegratedOrderItemsEditable(boolean integratedOrderItemsEditable) {
        this.integratedOrderItemsEditable = integratedOrderItemsEditable;
    }

    public boolean isIntegratedOrderItemsEditOnCommercialInvoice() {
        return integratedOrderItemsEditOnCommercialInvoice;
    }

    public void setIntegratedOrderItemsEditOnCommercialInvoice(boolean integratedOrderItemsEditOnCommercialInvoice) {
        this.integratedOrderItemsEditOnCommercialInvoice = integratedOrderItemsEditOnCommercialInvoice;
    }

    public ProformaUniquenessConfig getValidateProformaInvoiceRefSupplierComb() {
        return validateProformaInvoiceRefSupplierComb;
    }

    public void setValidateProformaInvoiceRefSupplierComb(ProformaUniquenessConfig validateProformaInvoiceRefSupplierComb) {
        this.validateProformaInvoiceRefSupplierComb = validateProformaInvoiceRefSupplierComb;
    }

    public boolean isDisableDeleteReasonFreeText() {
        return disableDeleteReasonFreeText;
    }

    public void setDisableDeleteReasonFreeText(boolean disableDeleteReasonFreeText) {
        this.disableDeleteReasonFreeText = disableDeleteReasonFreeText;
    }

    public ServiceProvider getLocalCustomsAuthority() {
        return localCustomsAuthority;
    }

    public void setLocalCustomsAuthority(ServiceProvider localCustomsAuthority) {
        this.localCustomsAuthority = localCustomsAuthority;
    }

    public ServiceProvider getLocalPortAuthority() {
        return localPortAuthority;
    }

    public void setLocalPortAuthority(ServiceProvider localPortAuthority) {
        this.localPortAuthority = localPortAuthority;
    }

    public boolean isDefaultFromFdType() {
        return defaultFromFdType;
    }

    public void setDefaultFromFdType(boolean defaultFromFdType) {
        this.defaultFromFdType = defaultFromFdType;
    }

    public boolean isCanEditItemType() {
        return canEditItemType;
    }

    public void setCanEditItemType(boolean canEditItemType) {
        this.canEditItemType = canEditItemType;
    }

    public boolean isItemLinenumberOrdering() {
        return itemLinenumberOrdering;
    }

    public void setItemLinenumberOrdering(boolean itemLinenumberOrdering) {
        this.itemLinenumberOrdering = itemLinenumberOrdering;
    }

    public boolean isgRNRequiresShipmentSignOff() {
        return gRNRequiresShipmentSignOff;
    }

    public void setgRNRequiresShipmentSignOff(boolean gRNRequiresShipmentSignOff) {
        this.gRNRequiresShipmentSignOff = gRNRequiresShipmentSignOff;
    }

    public boolean isSetItemCategoryToItemProperty() {
        return setItemCategoryToItemProperty;
    }

    public void setSetItemCategoryToItemProperty(boolean setItemCategoryToItemProperty) {
        this.setItemCategoryToItemProperty = setItemCategoryToItemProperty;
    }

    public boolean isValidateAllowedCurrencies() {
        return validateAllowedCurrencies;
    }

    public void setValidateAllowedCurrencies(boolean validateAllowedCurrencies) {
        this.validateAllowedCurrencies = validateAllowedCurrencies;
    }

    public boolean isCreateChildOrders() {
        return createChildOrders;
    }

    public void setCreateChildOrders(boolean createChildOrders) {
        this.createChildOrders = createChildOrders;
    }

    public boolean isRebateCodeOptional() {
        return rebateCodeOptional;
    }

    public void setRebateCodeOptional(boolean rebateCodeOptional) {
        this.rebateCodeOptional = rebateCodeOptional;
    }

    public boolean isLogisticsOrderUpdateRejectPriorToOrderSignOff() {
        return logisticsOrderUpdateRejectPriorToOrderSignOff;
    }

    public void setLogisticsOrderUpdateRejectPriorToOrderSignOff(boolean logisticsOrderUpdateRejectPriorToOrderSignOff) {
        this.logisticsOrderUpdateRejectPriorToOrderSignOff = logisticsOrderUpdateRejectPriorToOrderSignOff;
    }

    public boolean isAutoSignOffUploaded() {
        return autoSignOffUploaded;
    }

    public void setAutoSignOffUploaded(boolean autoSignOffUploaded) {
        this.autoSignOffUploaded = autoSignOffUploaded;
    }

    public boolean isAutoFinaliseUploaded() {
        return autoFinaliseUploaded;
    }

    public void setAutoFinaliseUploaded(boolean autoFinaliseUploaded) {
        this.autoFinaliseUploaded = autoFinaliseUploaded;
    }

    public boolean isItemCategoryRequired() {
        return itemCategoryRequired;
    }

    public void setItemCategoryRequired(boolean itemCategoryRequired) {
        this.itemCategoryRequired = itemCategoryRequired;
    }
}