PurchaseOrderSearch.java

package com.tradecloud.dto.order;

import com.tradecloud.domain.base.utils.DateRange;
import com.tradecloud.domain.event.ActivityLogType;
import com.tradecloud.domain.model.ordermanagement.BusinessState;
import com.tradecloud.domain.model.ordermanagement.OrderState;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.party.Employee;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.Country;
import com.tradecloud.domain.search.OrgUnitFilter;
import com.tradecloud.domain.supplier.OrganisationalUnitSupplier;
import org.apache.commons.lang3.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;
import java.util.List;

@Component
@Scope("view")
public class PurchaseOrderSearch extends OrderSearch implements Serializable, OrgUnitFilter {

    private static final long serialVersionUID = 1L;

    private OrganisationalUnitSupplier supplier;
    private List<OrganisationalUnitSupplier> suppliers;
    private Employee buyer;
    private List<Employee> buyers;
    private Date shipmentCreatedFrom;
    private Date shipmentCreatedTo;
    // numberOfDaysToShip has been set to String type in order to test against null.
    private String numberOfDaysToShip;
    private String settledInFull = "NO";
    private DateRange containerPickupDateRange;
    private String containerTypeCode;
    private boolean consolidationSearch;
    private Date latestShipmentDate;
    private Date earliestShipmentDate;
    private Date requiredShipmentDate;
    private int daysToMakeDateRange;
    private OrderConfirmedType confirmed;
    private boolean liteSearch;
    private List<OrderState> orderStateList;
    private List<BusinessState> businessStateList;
    private boolean exactMatch;
    private String description;
    private List<ActivityLogType> activityTypes;
    private boolean ICP;
    private ServiceProvider freightForwarder;
    private ServiceProvider clearingAgent;
    private List<Long> shipmentIds;
    private List<OrganisationalUnit> organisationalUnitList;

    private Country country;

    private String consignmentReference;

    public OrganisationalUnitSupplier getSupplier() {
        return supplier;
    }

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

    public Employee getBuyer() {
        return buyer;
    }

    public void setBuyer(Employee buyer) {
        this.buyer = buyer;
    }

    public Date getShipmentCreatedFrom() {
        return shipmentCreatedFrom;
    }

    public void setShipmentCreatedFrom(Date shipmentCreatedFrom) {
        this.shipmentCreatedFrom = shipmentCreatedFrom;
    }

    public Date getShipmentCreatedTo() {
        return shipmentCreatedTo;
    }

    public void setShipmentCreatedTo(Date shipmentCreatedTo) {
        this.shipmentCreatedTo = shipmentCreatedTo;
    }

    public String getNumberOfDaysToShip() {
        return numberOfDaysToShip;
    }

    public void setNumberOfDaysToShip(String numberOfDaysToShip) {
        this.numberOfDaysToShip = numberOfDaysToShip;
    }

    public DateRange getContainerPickupDateRange() {
        return containerPickupDateRange;
    }

    public void setContainerPickupDateRange(DateRange containerPickupDateRange) {
        this.containerPickupDateRange = containerPickupDateRange;
    }

    public List<OrderState> getOrderStateList() {
        return orderStateList;
    }

    public void setOrderStateList(List<OrderState> orderStateList) {
        this.orderStateList = orderStateList;
    }

    public List<BusinessState> getBusinessStateList() {
        return businessStateList;
    }

    public void setBusinessStateList(List<BusinessState> businessStateList) {
        this.businessStateList = businessStateList;
    }

    public String getSettledInFull() {
        return settledInFull;
    }

    public void setSettledInFull(String settledInFull) {
        this.settledInFull = settledInFull;
    }

    public static enum OrderConfirmedType {
        ANY, CONFIRMED, UNCONFIRMED;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .appendSuper(super.toString())
                .append("buyer", buyer)
                .append("supplier", supplier)
                .append("orderReference", orderReference)
                .append("shippingReference", getShippingReference())
                .toString();
    }

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

    @Override
    public boolean isPurchaseOrder() {
        return true;
    }

    public boolean isConsolidationSearch() {
        return consolidationSearch;
    }

    public void setConsolidationSearch(boolean consolidationSearch) {
        this.consolidationSearch = consolidationSearch;
    }

    public String getContainerTypeCode() {
        return containerTypeCode;
    }

    public void setContainerTypeCode(String containerTypeCode) {
        this.containerTypeCode = containerTypeCode;
    }

    public Date getLatestShipmentDate() {
        return latestShipmentDate;
    }

    public void setLatestShipmentDate(Date latestShipmentDate) {
        this.latestShipmentDate = latestShipmentDate;
    }

    public Date getEarliestShipmentDate() {
        return earliestShipmentDate;
    }

    public void setEarliestShipmentDate(Date earliestShipmentDate) {
        this.earliestShipmentDate = earliestShipmentDate;
    }

    public Date getRequiredShipmentDate() {
        return requiredShipmentDate;
    }

    public void setRequiredShipmentDate(Date requiredShipmentDate) {
        this.requiredShipmentDate = requiredShipmentDate;
    }

    public int getDaysToMakeDateRange() {
        return daysToMakeDateRange;
    }

    public void setDaysToMakeDateRange(int daysToMakeDateRange) {
        this.daysToMakeDateRange = daysToMakeDateRange;
    }

    public boolean isLiteSearch() {
        return liteSearch;
    }

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

    public OrderConfirmedType getConfirmed() {
        return confirmed;
    }

    public void setConfirmed(OrderConfirmedType confirmed) {
        this.confirmed = confirmed;
    }

    public boolean isExactMatch() {
        return exactMatch;
    }

    public void setExactMatch(boolean exactMatch) {
        this.exactMatch = exactMatch;
    }

    public List<OrganisationalUnitSupplier> getSuppliers() {
        return suppliers;
    }

    public void setSuppliers(List<OrganisationalUnitSupplier> suppliers) {
        this.suppliers = suppliers;
    }

    public List<Employee> getBuyers() {
        return buyers;
    }

    public void setBuyers(List<Employee> buyers) {
        this.buyers = buyers;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public List<ActivityLogType> getActivityTypes() {
        return activityTypes;
    }

    public void setActivityTypes(List<ActivityLogType> activityTypes) {
        this.activityTypes = activityTypes;
    }

    public boolean isICP() {
        return ICP;
    }

    public void setICP(boolean ICP) {
        this.ICP = ICP;
    }

    @Override
    public ServiceProvider getFreightForwarder() {
        return freightForwarder;
    }

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

    public ServiceProvider getClearingAgent() {
        return clearingAgent;
    }

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

    public List<Long> getShipmentIds() {
        return shipmentIds;
    }

    public void setShipmentIds(List<Long> shipmentIds) {
        this.shipmentIds = shipmentIds;
    }

    public Country getCountry() {
        return country;
    }

    public void setCountry(Country country) {
        this.country = country;
    }

    public String getConsignmentReference() {
        return consignmentReference;
    }

    public void setConsignmentReference(String consignmentReference) {
        this.consignmentReference = consignmentReference;
    }

    public List<OrganisationalUnit> getOrganisationalUnitList() {
        return organisationalUnitList;
    }

    public void setOrganisationalUnitList(List<OrganisationalUnit> organisationalUnitList) {
        this.organisationalUnitList = organisationalUnitList;
        this.organisationalUnits = organisationalUnitList;
    }

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

    }

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

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