LineItemSearch.java

package com.tradecloud.dto.lineitem;

import com.tradecloud.domain.base.utils.DateRange;
import com.tradecloud.domain.base.utils.ObjectUtil;
import com.tradecloud.domain.dto.base.SearchBase;
import com.tradecloud.domain.model.ordermanagement.Order;
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.supplier.OrganisationalUnitSupplier;
import lombok.*;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

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

@Component
@Scope("view")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class LineItemSearch extends SearchBase implements Serializable {

    private static final long serialVersionUID = 1L;

    private String code;
    private Order parentOrder;
    private OrganisationalUnit orderOrganisationalUnit;
    protected Collection<OrganisationalUnit> organisationalUnits;
    private OrganisationalUnitSupplier purchaseOrderSupplier;
    private Country countryOfOrigin;
    private Employee purchaseOrderBuyer;
    private String styleReference;
    private String styleDescription;
    private BigInteger businessDaysNotCosted;
    private Date awaitingCostingDateEnd;
    private DateRange latestShipmentDateRange = new DateRange();
    private ServiceProvider clearingAgent;
    protected String orderReference;
    private String proFormaReference;
    private Integer lineNumber;

    public Order getParentOrder() {
        return parentOrder;
    }

    public void setParentOrder(Order parentOrder) {
        this.parentOrder = parentOrder;
    }

    @Override
    public String toString() {
        return "ItemSearch [parentOrder=" + parentOrder + "]";
    }

    public LineItemSearch(Order parentOrder) {
        super();
        this.parentOrder = parentOrder;
    }

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

    @Override
    public boolean noSelectedOrgUnit() {
        return ObjectUtil.allNull(orderOrganisationalUnit);
    }

    public void setLineNumber(Integer lineNumber) {
        this.lineNumber = lineNumber;
    }

    public Integer getLineNumber() {
        return lineNumber;
    }
}