ConsignmentSearch.java

package com.tradecloud.dto.consignment;

import com.tradecloud.domain.base.utils.ObjectUtil;
import com.tradecloud.domain.common.Currency;
import com.tradecloud.domain.common.Incoterm;
import com.tradecloud.domain.dto.base.SearchBase;
import com.tradecloud.domain.model.ordermanagement.ConsignmentState;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.model.shipment.ShipmentState;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.party.Employee;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.PlaceOfDischarge;
import com.tradecloud.domain.place.PlaceOfLoading;
import com.tradecloud.domain.shipment.Shipment;
import com.tradecloud.domain.supplier.OrganisationalUnitSupplier;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

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

@Component
@Scope("view")
@Getter
@Setter
public class ConsignmentSearch extends SearchBase implements Serializable {

    /**
     * UID.
     */
    private static final long serialVersionUID = 1L;

    private String number;
    private String reference;
    private String strictReference;
    private ConsignmentState state;
    private ShippingMode shippingMode;
    private ShippingMode multiModalShippingMode;
    private Currency currency;
    private Employee customer;
    private Employee consignee;
    private Shipment shipment;
    private OrganisationalUnitSupplier supplier;
    private PlaceOfLoading placeOfLoading;
    private PlaceOfDischarge placeOfDischarge;
    private Incoterm incoterm;
    private ServiceProvider freightForwarder;
    private ServiceProvider carrier;
    private Date latestShipmentDateTo;
    private Date latestShipmentDateFrom;
    private Date arrivalDateAtPlaceOfDischargeFrom;
    private Date arrivalDateAtPlaceOfDischargeTo;
    private Date estimatedDepartureDateTo;
    private Date estimatedDepartureDateFrom;
    private Date actualDepartureDateTo;
    private Date actualDepartureDateFrom;
    private Date estimatedArrivalDateTo;
    private Date estimatedArrivalDateFrom;
    private Date created;
    private String shipmentReference;
    private String shipmentNumber;
    private ShipmentState shipmentState;
    private Date shipmentCreationDateFrom;
    private Date shipmentCreationDateTo;
    private boolean liteConsignment = true;
    private boolean userModeLite;
    private OrganisationalUnit organisationalUnit;
    private Collection<OrganisationalUnit> organisationalUnits;
    private boolean liteSearch;
    /*
     *  referenceStrict = true, ie:  'where reference = '<reference>'
     *  referenceStrict = false, ie:  'where reference ilike '%<reference>%'
     */
    private boolean referenceStrict = false;

    private boolean emptyShipment;

    private boolean elc;

    public String getShipmentReference() {
        return shipmentReference;
    }

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

    public String getStrictReference() {
        return strictReference;
    }

    public void setStrictReference(String strictReference) {
        this.strictReference = strictReference;
    }

    public String getShipmentNumber() {
        return shipmentNumber;
    }

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

    public ShipmentState getShipmentState() {
        return shipmentState;
    }

    public void setShipmentState(ShipmentState shipmentState) {
        this.shipmentState = shipmentState;
    }

    public Date getShipmentCreationDateFrom() {
        return shipmentCreationDateFrom;
    }

    public void setShipmentCreationDateFrom(Date shipmentCreationDateFrom) {
        this.shipmentCreationDateFrom = shipmentCreationDateFrom;
    }

    public Date getShipmentCreationDateTo() {
        return shipmentCreationDateTo;
    }

    public void setShipmentCreationDateTo(Date shipmentCreationDateTo) {
        this.shipmentCreationDateTo = shipmentCreationDateTo;
    }

    public Date getEstimatedDepartureDateTo() {
        return estimatedDepartureDateTo;
    }

    public void setEstimatedDepartureDateTo(Date estimatedDepartureDateTo) {
        this.estimatedDepartureDateTo = estimatedDepartureDateTo;
    }

    public OrganisationalUnitSupplier getSupplier() {
        return supplier;
    }

    public void setSupplier(OrganisationalUnitSupplier supplier) {
        this.supplier = supplier;
    }

    public Date getEstimatedDepartureDateFrom() {
        return estimatedDepartureDateFrom;
    }

    public void setEstimatedDepartureDateFrom(Date estimatedDepartureDateFrom) {
        this.estimatedDepartureDateFrom = estimatedDepartureDateFrom;
    }

    public Date getEstimatedArrivalDateTo() {
        return estimatedArrivalDateTo;
    }

    public void setEstimatedArrivalDateTo(Date estimatedArrivalDateTo) {
        this.estimatedArrivalDateTo = estimatedArrivalDateTo;
    }

    public Date getEstimatedArrivalDateFrom() {
        return estimatedArrivalDateFrom;
    }

    public void setEstimatedArrivalDateFrom(Date estimatedArrivalDateFrom) {
        this.estimatedArrivalDateFrom = estimatedArrivalDateFrom;
    }

    public static long getSerialversionuid() {
        return serialVersionUID;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getReference() {
        return reference;
    }

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

    public ConsignmentState getState() {
        return state;
    }

    public void setState(ConsignmentState state) {
        this.state = state;
    }

    public ShippingMode getShippingMode() {
        return shippingMode;
    }

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

    public Currency getCurrency() {
        return currency;
    }

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

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

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

    public Employee getCustomer() {
        return customer;
    }

    public void setCustomer(Employee customer) {
        this.customer = customer;
    }

    public Employee getConsignee() {
        return consignee;
    }

    public void setConsignee(Employee consignee) {
        this.consignee = consignee;
    }

    public Shipment getShipment() {
        return shipment;
    }

    public void setShipment(Shipment shipment) {
        this.shipment = shipment;
    }

    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 Incoterm getIncoterm() {
        return incoterm;
    }

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

    public ServiceProvider getFreightForwarder() {
        return freightForwarder;
    }

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

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

    public boolean isEmptyShipment() {
        return emptyShipment;
    }

    public void setEmptyShipment(boolean emptyShipment) {
        this.emptyShipment = emptyShipment;
    }

    @Override
    public String getTableName() {
        return "Consignment";
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public ServiceProvider getCarrier() {
        return carrier;
    }

    public void setCarrier(ServiceProvider carrier) {
        this.carrier = carrier;
    }

    public Date getActualDepartureDateTo() {
        return actualDepartureDateTo;
    }

    public void setActualDepartureDateTo(Date actualDepartureDateTo) {
        this.actualDepartureDateTo = actualDepartureDateTo;
    }

    public Date getActualDepartureDateFrom() {
        return actualDepartureDateFrom;
    }

    public void setActualDepartureDateFrom(Date actualDepartureDateFrom) {
        this.actualDepartureDateFrom = actualDepartureDateFrom;
    }

    public Date getLatestShipmentDateTo() {
        return latestShipmentDateTo;
    }

    public void setLatestShipmentDateTo(Date latestShipmentDateTo) {
        this.latestShipmentDateTo = latestShipmentDateTo;
    }

    public Date getLatestShipmentDateFrom() {
        return latestShipmentDateFrom;
    }

    public void setLatestShipmentDateFrom(Date latestShipmentDateFrom) {
        this.latestShipmentDateFrom = latestShipmentDateFrom;
    }

    public Date getArrivalDateAtPlaceOfDischargeFrom() {
        return arrivalDateAtPlaceOfDischargeFrom;
    }

    public void setArrivalDateAtPlaceOfDischargeFrom(Date arrivalDateAtPlaceOfDischargeFrom) {
        this.arrivalDateAtPlaceOfDischargeFrom = arrivalDateAtPlaceOfDischargeFrom;
    }

    public Date getArrivalDateAtPlaceOfDischargeTo() {
        return arrivalDateAtPlaceOfDischargeTo;
    }

    public void setArrivalDateAtPlaceOfDischargeTo(Date arrivalDateAtPlaceOfDischargeTo) {
        this.arrivalDateAtPlaceOfDischargeTo = arrivalDateAtPlaceOfDischargeTo;
    }

    public boolean isReferenceStrict() {
        return referenceStrict;
    }

    public void setReferenceStrict(boolean referenceStrict) {
        this.referenceStrict = referenceStrict;
    }

    public boolean isLiteConsignment() {
        return liteConsignment;
    }

    public void setLiteConsignment(boolean liteConsignment) {
        this.liteConsignment = liteConsignment;
    }

    public boolean isUserModeLite() {
        return userModeLite;
    }

    public void setUserModeLite(boolean userModeLite) {
        this.userModeLite = userModeLite;
    }

    public boolean isLiteSearch() {
        return liteSearch;
    }

    public void setLiteSearch(boolean liteSearch) {
        this.liteSearch = liteSearch;
    }

    public OrganisationalUnit getOrganisationalUnit() {
        return organisationalUnit;
    }

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

    public boolean isElc() {
        return elc;
    }

    public void setElc(boolean elc) {
        this.elc = elc;
    }

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

}