ShipItemAlcCostReportSearch.java

package com.tradecloud.dto.invoice;

import com.tradecloud.domain.base.utils.DateRange;
import com.tradecloud.domain.base.utils.ObjectUtil;
import com.tradecloud.domain.costing.clean.ActualCostSummary;
import com.tradecloud.domain.dto.base.SearchBase;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.supplier.OrganisationalUnitSupplier;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.io.Serializable;

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

    // Don't like this. But can generate the report/s in one of two ways.
    // Supply the summary, and you get the corresponding report, or supply search params
    // and get all that meet the criteria
    private ActualCostSummary actualCostSummary;

    private OrganisationalUnit organisationalUnit;

    private OrganisationalUnitSupplier organisationalUnitSupplier;

    private final DateRange createDateRange = new DateRange();

    private final DateRange signOffDateRange = new DateRange();

    private final DateRange estimatedArrAtPodDateRange = new DateRange();

    public ShipItemAlcCostReportSearch() {
    }

    public ShipItemAlcCostReportSearch(ActualCostSummary actualCostSummary) {
        this.actualCostSummary = actualCostSummary;
    }

    /**
     * @return the actualCostSummary
     */
    public ActualCostSummary getActualCostSummary() {
        return actualCostSummary;
    }

    /**
     * @param actualCostSummary the actualCostSummary to set
     */
    public void setActualCostSummary(ActualCostSummary actualCostSummary) {
        this.actualCostSummary = actualCostSummary;
    }

    /**
     * @return the createDateRange
     */
    public DateRange getCreateDateRange() {
        return createDateRange;
    }

    /**
     * @return the signOffDateRange
     */
    public DateRange getSignOffDateRange() {
        return signOffDateRange;
    }

    /**
     * @return the organisationalUnit
     */
    public OrganisationalUnit getOrganisationalUnit() {
        return organisationalUnit;
    }

    /**
     * @param organisationalUnit the organisationalUnit to set
     */
    public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
        this.organisationalUnit = organisationalUnit;
    }

    /**
     * @return the organisationalUnitSupplier
     */
    public OrganisationalUnitSupplier getOrganisationalUnitSupplier() {
        return organisationalUnitSupplier;
    }

    /**
     * @param organisationalUnitSupplier the organisationalUnitSupplier to set
     */
    public void setOrganisationalUnitSupplier(OrganisationalUnitSupplier organisationalUnitSupplier) {
        this.organisationalUnitSupplier = organisationalUnitSupplier;
    }

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

    @Override
    public String getTableName() {
        return null;
    }

    /**
     * @return the estimatedArrAtPodDateRange
     */
    public DateRange getEstimatedArrAtPodDateRange() {
        return estimatedArrAtPodDateRange;
    }
}