CostingDocumentSearch.java

package com.tradecloud.dto.invoice;

import com.tradecloud.domain.base.utils.DateRange;
import com.tradecloud.domain.base.utils.IntegerRange;
import com.tradecloud.domain.base.utils.ObjectUtil;
import com.tradecloud.domain.common.Currency;
import com.tradecloud.domain.document.DocumentState;
import com.tradecloud.domain.document.DocumentType;
import com.tradecloud.domain.dto.base.SearchBase;
import com.tradecloud.domain.export.ExportParty;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.supplier.Creditor;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import java.util.List;

/**
 *
 */
@Component
@Scope("view")
public class CostingDocumentSearch extends SearchBase implements Serializable {

    private DocumentType documentType;

    private String reference;

    private String shipmentNumber;

    private ExportParty exportParty;

    private List<Creditor> creditors;

    private DateRange dateRange = new DateRange();

    private DateRange creationDateRange = new DateRange();

    private DateRange signOffDateRange = new DateRange();

    private String orderReference;

    private Date billofLadingDate;

    private String shipmentNumberPrefix;

    private String shipmentNumberSuffix;

    private IntegerRange shipmentNumberRange = new IntegerRange();

    private String shipmentReference;

    private Currency currency;

    private DocumentState state;

    private List<DocumentState> states;

    private OrganisationalUnit organisationalUnit;

    private Collection<OrganisationalUnit> organisationalUnits;

    private String invoiceNumber;

    private DateRange settlementDate = new DateRange();

    private DateRange invoiceDate = new DateRange();

    private Boolean withSubShipments;
    private String invoiceType;
    //false exclude complete shipment , true all shipments
    private Boolean includeLinkedToCompleteShipments = Boolean.TRUE;
    private boolean linkedToShipment;

    private DateRange estimatedArrivalDateAtPlaceOfDischargeFromTo;
    private String additionalReference;

    public Boolean getIncludeLinkedToCompleteShipments() {
        return includeLinkedToCompleteShipments;
    }

    public void setIncludeLinkedToCompleteShipments(Boolean includeLinkedToCompleteShipments) {
        this.includeLinkedToCompleteShipments = includeLinkedToCompleteShipments;
    }

    public DateRange getInvoiceDate() {
        return invoiceDate;
    }

    public void setInvoiceDate(DateRange invoiceDate) {
        this.invoiceDate = invoiceDate;
    }

    public Boolean getWithSubShipments() {
        return withSubShipments;
    }

    public void setWithSubShipments(Boolean withSubShipments) {
        this.withSubShipments = withSubShipments;
    }

    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public DocumentType getDocumentType() {
        return documentType;
    }

    public void setDocumentType(DocumentType documentType) {
        this.documentType = documentType;
    }

    public String getReference() {
        return reference;
    }

    public void setReference(String reference) {
        this.reference = reference;
    }

    public DateRange getDateRange() {
        return dateRange;
    }

    public void setDateRange(DateRange dateRange) {
        this.dateRange = dateRange;
    }

    public DateRange getCreationDateRange() {
        return creationDateRange;
    }

    public void setCreationDateRange(DateRange creationDateRange) {
        this.creationDateRange = creationDateRange;
    }

    public String getOrderReference() {
        return orderReference;
    }

    public void setOrderReference(String orderReference) {
        this.orderReference = orderReference;
    }

    public IntegerRange getShipmentNumberRange() {
        return shipmentNumberRange;
    }

    public void setShipmentNumberRange(IntegerRange shipmentNumberRange) {
        this.shipmentNumberRange = shipmentNumberRange;
    }

    public String getShipmentReference() {
        return shipmentReference;
    }

    public void setShipmentReference(String shipmentReference) {
        this.shipmentReference = shipmentReference;
    }

    public String getShipmentNumber() {
        return shipmentNumber;
    }

    public void setShipmentNumber(String shipmentNumber) {
        this.shipmentNumber = shipmentNumber;
    }

    public Currency getCurrency() {
        return currency;
    }

    public void setCurrency(Currency currency) {
        this.currency = currency;
    }

    public Date getBillofLadingDate() {
        return billofLadingDate;
    }

    public void setBillofLadingDate(Date billofLadingDate) {
        this.billofLadingDate = billofLadingDate;
    }

    public String getShipmentNumberPrefix() {
        return shipmentNumberPrefix;
    }

    public void setShipmentNumberPrefix(String shipmentNumberPrefix) {
        this.shipmentNumberPrefix = shipmentNumberPrefix;
    }

    public String getShipmentNumberSuffix() {
        return shipmentNumberSuffix;
    }

    public void setShipmentNumberSuffix(String shipmentNumberSuffix) {
        this.shipmentNumberSuffix = shipmentNumberSuffix;
    }

    public OrganisationalUnit getOrganisationalUnit() {
        return organisationalUnit;
    }

    public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
        this.organisationalUnit = organisationalUnit;
    }

    public Collection<OrganisationalUnit> getOrganisationalUnits() {
        return organisationalUnits;
    }

    public void setOrganisationalUnits(Collection<OrganisationalUnit> organisationalUnits) {
        this.organisationalUnits = organisationalUnits;
    }

    @Override
    public String getTableName() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public String getInvoiceNumber() {
        return invoiceNumber;
    }

    public void setInvoiceNumber(String invoiceNumber) {
        this.invoiceNumber = invoiceNumber;
    }

    public DateRange getSettlementDate() {
        return settlementDate;
    }

    public void setSettlementDate(DateRange settlementDate) {
        this.settlementDate = settlementDate;
    }

    @Override
    public boolean noSelectedOrgUnit() {
        return ObjectUtil.allNull(organisationalUnit, organisationalUnits);
    }

    public boolean isLinkedToShipment() {
        return linkedToShipment;
    }

    public void setLinkedToShipment(boolean linkedToShipment) {
        this.linkedToShipment = linkedToShipment;
    }

    public DateRange getEstimatedArrivalDateAtPlaceOfDischargeFromTo() {
        return estimatedArrivalDateAtPlaceOfDischargeFromTo;
    }

    public void setEstimatedArrivalDateAtPlaceOfDischargeFromTo(DateRange estimatedArrivalDateAtPlaceOfDischargeFromTo) {
        this.estimatedArrivalDateAtPlaceOfDischargeFromTo = estimatedArrivalDateAtPlaceOfDischargeFromTo;
    }

    public String getAdditionalReference() {
        return additionalReference;
    }

    public void setAdditionalReference(String additionalReference) {
        this.additionalReference = additionalReference;
    }

    @Override
    public void setOrganisationalUnits2(List<OrganisationalUnit> organisationalUnits) {
        setOrganisationalUnits(organisationalUnits);
    }

    @Override
    public Collection<OrganisationalUnit> getOrganisationalUnits2() {
        return getOrganisationalUnits();
    }

    public void setOrganisationalUnit2(OrganisationalUnit organisationalUnit) {
        setOrganisationalUnit(organisationalUnit);
    }

    public DateRange getSignOffDateRange() {
        return signOffDateRange;
    }

    public void setSignOffDateRange(DateRange signOffDateRange) {
        this.signOffDateRange = signOffDateRange;
    }

    public List<DocumentState> getStates() {
        return states;
    }

    public void setStates(List<DocumentState> states) {
        this.states = states;
    }

    public List<Creditor> getCreditors() {
        return creditors;
    }

    public void setCreditors(List<Creditor> creditors) {
        this.creditors = creditors;
    }

    public ExportParty getExportParty() {
        return exportParty;
    }

    public void setExportParty(ExportParty exportParty) {
        this.exportParty = exportParty;
    }
}