DocumentSearch.java

package com.tradecloud.dto.invoice;

import com.tradecloud.domain.base.utils.DateRange;
import com.tradecloud.domain.base.utils.ObjectUtil;
import com.tradecloud.domain.dms.DocumentGroupState;
import com.tradecloud.domain.document.DocumentState;
import com.tradecloud.domain.dto.base.SearchBase;
import com.tradecloud.domain.event.ShipmentEventType;
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.FinalDestination;
import com.tradecloud.domain.place.PlaceOfDischarge;
import com.tradecloud.domain.place.PlaceOfLoading;
import com.tradecloud.domain.supplier.OrganisationalUnitSupplier;

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

public class DocumentSearch extends SearchBase implements Serializable {

    private static final long serialVersionUID = 1L;

    private String number;
    private String reference;
    private String billOfLadingReference;
    private String masterAirwayBillNumber;
    private ShipmentState state;
    private List<ShipmentState> applicableStates;
    private ShipmentEventType event;
    private ShippingMode mode;
    private Date warehouseDeliveryDateFrom;
    private Date warehouseDeliveryDateTo;
    private Date createdDateFrom;
    private Date createdDateTo;
    private Date billOfLadingDateFrom;
    private Date billOfLadingDateTo;
    private Date estimateArrivalDateAtPODFrom;
    private Date estimateArrivalDateAtPODTo;
    private String masterBillOfLadingReference;
    private Employee Buyer;

    private final DateRange signedOffDateRange = new DateRange();
    private OrganisationalUnit organisationalUnit;
    private String order;
    private List<OrganisationalUnit> organisationalUnitList;

    private OrganisationalUnitSupplier supplier;

    // Both 'vesselName' and 'voyageNumber' pertain to SeaShipment as the entity class in a Criteria search.
    // See ShipmentRepositoryImpl search(ShipmentSearch search) method
    private String vesselName;
    private String voyageNumber;

    // Both 'airlineName' and 'flightNumber' pertain to AirShipment as the entity class in a Criteria search.
    // See ShipmentRepositoryImpl search(ShipmentSearch search) method
    private String airlineName;
    private String flightNumber;
    private ServiceProvider freightForwarder;

    private ServiceProvider clearingAgent;
    private ServiceProvider carrier;
    private FinalDestination containerFinalDestination;

    private PlaceOfDischarge placeOfDischarge;

    private PlaceOfLoading placeOfLoading;

    private ServiceProvider shippingLine;

    private String containerReference;

    private DocumentGroupState documentGroupState;

    private DateRange vesselBerthedDate;

    private DateRange scheduledDepartureDate;

    private DateRange actualDateOfDeparture;

    private DateRange actualArrivalDateAtPOD;

    private String itemReference;
    private String itemDescription;
    private String subShipmentReference;
//    private String shippingVessel;
//    private String motherVesselName;

    private String houseWayBillNumber;

    private DateRange houseWayBillDate;

    private DateRange MasterAirwayBillIssueDate;
    private DateRange settlementDate;

    private List<DocumentState> commercialInvoicingStates;
    private List<DocumentState> serviceProviderInvoicingStates;

    private Date signedOffDateFrom;
    private Date signedOffDateTo;
    private String SARSReferenceNumber;
    private boolean canAffectCustomsDeclaration;

    public String getBillOfLadingReference() {
        return billOfLadingReference;
    }

    public void setBillOfLadingReference(String billOfLadingReference) {
        this.billOfLadingReference = billOfLadingReference;
    }

    public String getMasterAirwayBillNumber() {
        return masterAirwayBillNumber;
    }

    public void setMasterAirwayBillNumber(String masterAirwayBillNumber) {
        this.masterAirwayBillNumber = masterAirwayBillNumber;
    }

    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 ShipmentState getState() {
        return state;
    }

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

    public ShippingMode getMode() {
        return mode;
    }

    public void setMode(ShippingMode mode) {
        this.mode = mode;
    }

    public Date getWarehouseDeliveryDateFrom() {
        return warehouseDeliveryDateFrom;
    }

    public void setWarehouseDeliveryDateFrom(Date warehouseDeliveryDateFrom) {
        this.warehouseDeliveryDateFrom = warehouseDeliveryDateFrom;
    }

    public Date getWarehouseDeliveryDateTo() {
        return warehouseDeliveryDateTo;
    }

    public void setWarehouseDeliveryDateTo(Date warehouseDeliveryDateTo) {
        this.warehouseDeliveryDateTo = warehouseDeliveryDateTo;
    }

    public Date getCreatedDateFrom() {
        return createdDateFrom;
    }

    public void setCreatedDateFrom(Date createdDateFrom) {
        this.createdDateFrom = createdDateFrom;
    }

    public Date getCreatedDateTo() {
        return createdDateTo;
    }

    public void setCreatedDateTo(Date createdDateTo) {
        this.createdDateTo = createdDateTo;
    }

    public ShipmentEventType getEvent() {
        return event;
    }

    public Employee getBuyer() {
        return Buyer;
    }

    public void setBuyer(Employee buyer) {
        Buyer = buyer;
    }

    public void setEvent(ShipmentEventType event) {
        this.event = event;
    }

    public void setVesselName(String vesselName) {
        this.vesselName = vesselName;
    }

    public String getVesselName() {
        return this.vesselName;
    }

    public void setVoyageNumber(String voyageNumber) {
        this.voyageNumber = voyageNumber;
    }

    public String getVoyageNumber() {
        return this.voyageNumber;
    }

    public void setAirlineName(String airlineName) {
        this.airlineName = airlineName;
    }

    public String getAirlineName() {
        return this.airlineName;
    }

    public void setFlightNumber(String flightNumber) {
        this.flightNumber = flightNumber;
    }

    public String getFlightNumber() {
        return this.flightNumber;
    }

    public void setPlaceOfDischarge(PlaceOfDischarge placeOfDischarge) {
        this.placeOfDischarge = placeOfDischarge;
    }

    public PlaceOfDischarge getPlaceOfDischarge() {
        return this.placeOfDischarge;
    }

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

    /**
     * @return the freightForwarder
     */
    public ServiceProvider getFreightForwarder() {
        return freightForwarder;
    }

    /**
     * @param freightForwarder the freightForwarder to set
     */
    public void setFreightForwarder(ServiceProvider freightForwarder) {
        this.freightForwarder = freightForwarder;
    }

    public ServiceProvider getShippingLine() {
        return shippingLine;
    }

    public void setShippingLine(ServiceProvider shippingLine) {
        this.shippingLine = shippingLine;
    }

    public PlaceOfLoading getPlaceOfLoading() {
        return placeOfLoading;
    }

    public void setPlaceOfLoading(PlaceOfLoading placeOfLoading) {
        this.placeOfLoading = placeOfLoading;
    }

    public String getContainerReference() {
        return containerReference;
    }

    public void setContainerReference(String containerReference) {
        this.containerReference = containerReference;
    }

    public DateRange getSignedOffDateRange() {
        return signedOffDateRange;
    }

    public String getMasterBillOfLadingReference() {
        return masterBillOfLadingReference;
    }

    public void setMasterBillOfLadingReference(String masterBillOfLadingReference) {
        this.masterBillOfLadingReference = masterBillOfLadingReference;
    }

    public String getOrder() {
        return order;
    }

    public void setOrder(String order) {
        this.order = order;
    }

    public List<ShipmentState> getApplicableStates() {
        return applicableStates;
    }

    public void setApplicableStates(List<ShipmentState> applicableStates) {
        this.applicableStates = applicableStates;
    }

    public OrganisationalUnit getOrganisationalUnit() {
        return organisationalUnit;
    }

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

    public OrganisationalUnitSupplier getSupplier() {
        return supplier;
    }

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

    public DocumentGroupState getDocumentGroupState() {
        return documentGroupState;
    }

    public void setDocumentGroupState(DocumentGroupState documentGroupState) {
        this.documentGroupState = documentGroupState;
    }

    public Date getBillOfLadingDateFrom() {
        return billOfLadingDateFrom;
    }

    public void setBillOfLadingDateFrom(Date billOfLadingDateFrom) {
        this.billOfLadingDateFrom = billOfLadingDateFrom;
    }

    public Date getBillOfLadingDateTo() {
        return billOfLadingDateTo;
    }

    public void setBillOfLadingDateTo(Date billOfLadingDateTo) {
        this.billOfLadingDateTo = billOfLadingDateTo;
    }

    public Date getEstimateArrivalDateAtPODFrom() {
        return estimateArrivalDateAtPODFrom;
    }

    public void setEstimateArrivalDateAtPODFrom(Date estimateArrivalDateAtPODFrom) {
        this.estimateArrivalDateAtPODFrom = estimateArrivalDateAtPODFrom;
    }

    public Date getEstimateArrivalDateAtPODTo() {
        return estimateArrivalDateAtPODTo;
    }

    public void setEstimateArrivalDateAtPODTo(Date estimateArrivalDateAtPODTo) {
        this.estimateArrivalDateAtPODTo = estimateArrivalDateAtPODTo;
    }

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

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

    public ServiceProvider getClearingAgent() {
        return clearingAgent;
    }

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

    public ServiceProvider getCarrier() {
        return carrier;
    }

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

    public FinalDestination getContainerFinalDestination() {
        return containerFinalDestination;
    }

    public void setContainerFinalDestination(FinalDestination containerFinalDestination) {
        this.containerFinalDestination = containerFinalDestination;
    }

    public DateRange getVesselBerthedDate() {
        return vesselBerthedDate;
    }

    public void setVesselBerthedDate(DateRange vesselBerthedDate) {
        this.vesselBerthedDate = vesselBerthedDate;
    }

    public DateRange getScheduledDepartureDate() {
        return scheduledDepartureDate;
    }

    public void setScheduledDepartureDate(DateRange scheduledDepartureDate) {
        this.scheduledDepartureDate = scheduledDepartureDate;
    }

    public DateRange getActualDateOfDeparture() {
        return actualDateOfDeparture;
    }

    public void setActualDateOfDeparture(DateRange actualDateOfDeparture) {
        this.actualDateOfDeparture = actualDateOfDeparture;
    }

    public DateRange getActualArrivalDateAtPOD() {
        return actualArrivalDateAtPOD;
    }

    public void setActualArrivalDateAtPOD(DateRange actualArrivalDateAtPOD) {
        this.actualArrivalDateAtPOD = actualArrivalDateAtPOD;
    }

    public String getItemReference() {
        return itemReference;
    }

    public void setItemReference(String itemReference) {
        this.itemReference = itemReference;
    }

    public String getItemDescription() {
        return itemDescription;
    }

    public void setItemDescription(String itemDescription) {
        this.itemDescription = itemDescription;
    }

    public String getSubShipmentReference() {
        return subShipmentReference;
    }

    public void setSubShipmentReference(String subShipmentReference) {
        this.subShipmentReference = subShipmentReference;
    }

//    public String getShippingVessel() {
//        return shippingVessel;
//    }
//
//    public void setShippingVessel(String shippingVessel) {
//        this.shippingVessel = shippingVessel;
//    }
//
//    public String getMotherVesselName() {
//        return motherVesselName;
//    }
//
//    public void setMotherVesselName(String motherVesselName) {
//        this.motherVesselName = motherVesselName;
//    }

    public String getHouseWayBillNumber() {
        return houseWayBillNumber;
    }

    public void setHouseWayBillNumber(String houseWayBillNumber) {
        this.houseWayBillNumber = houseWayBillNumber;
    }

    public DateRange getHouseWayBillDate() {
        return houseWayBillDate;
    }

    public void setHouseWayBillDate(DateRange houseWayBillDate) {
        this.houseWayBillDate = houseWayBillDate;
    }

    public DateRange getMasterAirwayBillIssueDate() {
        return MasterAirwayBillIssueDate;
    }

    public void setMasterAirwayBillIssueDate(DateRange masterAirwayBillIssueDate) {
        this.MasterAirwayBillIssueDate = masterAirwayBillIssueDate;
    }

    public DateRange getSettlementDate() {
        return settlementDate;
    }

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

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

    public List<DocumentState> getCommercialInvoicingStates() {
        return commercialInvoicingStates;
    }

    public void setCommercialInvoicingStates(List<DocumentState> commercialInvoicingStates) {
        this.commercialInvoicingStates = commercialInvoicingStates;
    }

    public List<DocumentState> getServiceProviderInvoicingStates() {
        return serviceProviderInvoicingStates;
    }

    public void setServiceProviderInvoicingStates(List<DocumentState> serviceProviderInvoicingStates) {
        this.serviceProviderInvoicingStates = serviceProviderInvoicingStates;
    }

    public Date getSignedOffDateFrom() {
        return signedOffDateFrom;
    }

    public void setSignedOffDateFrom(Date signedOffDateFrom) {
        this.signedOffDateFrom = signedOffDateFrom;
    }

    public Date getSignedOffDateTo() {
        return signedOffDateTo;
    }

    public void setSignedOffDateTo(Date signedOffDateTo) {
        this.signedOffDateTo = signedOffDateTo;
    }

    public String getSARSReferenceNumber() {
        return SARSReferenceNumber;
    }

    public void setSARSReferenceNumber(String SARSReferenceNumber) {
        this.SARSReferenceNumber = SARSReferenceNumber;
    }

    public boolean isCanAffectCustomsDeclaration() {
        return canAffectCustomsDeclaration;
    }

    public void setCanAffectCustomsDeclaration(boolean canAffectCustomsDeclaration) {
        this.canAffectCustomsDeclaration = canAffectCustomsDeclaration;
    }
}