DemurragePreAlertSearchResult.java

package com.tradecloud.dto.demurrage;

import com.tradecloud.domain.container.ContainerType;
import com.tradecloud.domain.model.shipment.ShippingMode;
import com.tradecloud.domain.party.ServiceProvider;
import com.tradecloud.domain.place.Depot;
import com.tradecloud.domain.place.PlaceOfDischarge;
import java.math.BigInteger;
import java.util.Date;

/**
 * https://connect.devstream.net/display/Dev/Overstay+and+Storage+Pre-Alert+Report.
 * https://connect.devstream.net/display/Dev/Detention+Pre-Alert+Report. Could
 * probably do a class hierarchy, but it is just a DTO.
 *
 * @author jon
 */
public class DemurragePreAlertSearchResult {

    private String containerReference;

    private long containerId;

    private String shipmentReference;

    private long shipmentId;

    private ShippingMode shippingMode;

    private ServiceProvider carrier;

    private ServiceProvider clearingAgent;

    private Date dischargeDate;

    private String dischargeDateString;

    private String comments;

    // Overstay and storage only
    private PlaceOfDischarge placeOfDischarge;

    private Date carrierReleaseDate;

    private String carrierReleaseDateString;

    private int daysInPlaceStorage;

    private int daysInOverstay;

    // Turn-in only
    private ContainerType containerType;

    private String shipmentNumber;

    private Date freePeriodEndDate;

    private String freePeriodEndDateString;

    private long daysInDetention;

    private Depot turnInDepot;

    private String finalDestination;

    private String billOfLadingReference;

    private String vesselName;

    private String voyageNumber;

    private Date pickUpDate;

    private Date createdDate;

    private Date containerTurnInDate;

    private boolean normalTurnInIndicator;

    private Date detentionDateFrom;

    private Date detentionDateTo;

    private String shipmentComments;

    private String turnInEventTransactionComments;

    private Date signedOffDate;

    private String status;

    private Date storageDateFrom;

    private Date storageDateTo;

    private BigInteger teu;

    private BigInteger daysToClear;

    private BigInteger daysToPickup;

    private Date overstayDateFrom;

    private Date overstayDateTo;

    private String partyResponsibleForCharges;


    private Date scheduledDeliveryDate;

    private Date etaFinalDestination;

    private Date ataFinalDestination;

    public Date getScheduledDeliveryDate() {
        return scheduledDeliveryDate;
    }

    public void setScheduledDeliveryDate(Date scheduledDeliveryDate) {
        this.scheduledDeliveryDate = scheduledDeliveryDate;
    }

    public Date getEtaFinalDestination() {
        return etaFinalDestination;
    }

    public void setEtaFinalDestination(Date etaFinalDestination) {
        this.etaFinalDestination = etaFinalDestination;
    }

    public Date getAtaFinalDestination() {
        return ataFinalDestination;
    }

    public void setAtaFinalDestination(Date ataFinalDestination) {
        this.ataFinalDestination = ataFinalDestination;
    }

    public String getContainerReference() {
        return containerReference;
    }

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

    public String getShipmentReference() {
        return shipmentReference;
    }

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

    public PlaceOfDischarge getPlaceOfDischarge() {
        return placeOfDischarge;
    }

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

    public ServiceProvider getCarrier() {
        return carrier;
    }

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

    public ServiceProvider getClearingAgent() {
        return clearingAgent;
    }

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

    public Date getDischargeDate() {
        return dischargeDate;
    }

    public void setDischargeDate(Date dischargeDate) {
        this.dischargeDate = dischargeDate;
    }

    public Date getCarrierReleaseDate() {
        return carrierReleaseDate;
    }

    public void setCarrierReleaseDate(Date carrierReleaseDate) {
        this.carrierReleaseDate = carrierReleaseDate;
    }

    public int getDaysInPlaceStorage() {
        return daysInPlaceStorage;
    }

    public void setDaysInPlaceStorage(int daysInPlaceStorage) {
        this.daysInPlaceStorage = daysInPlaceStorage;
    }

    public int getDaysInOverstay() {
        return daysInOverstay;
    }

    public void setDaysInOverstay(int daysInOverstay) {
        this.daysInOverstay = daysInOverstay;
    }

    public String getComments() {
        return comments;
    }

    public void setComments(String comments) {
        this.comments = comments;
    }

    public long getDaysInDetention() {
        return daysInDetention;
    }

    public void setDaysInDetention(long daysInDetention) {
        this.daysInDetention = daysInDetention;
    }

    public Depot getTurnInDepot() {
        return turnInDepot;
    }

    public void setTurnInDepot(Depot turnInDepot) {
        this.turnInDepot = turnInDepot;
    }

    public Date getFreePeriodEndDate() {
        return freePeriodEndDate;
    }

    public void setFreePeriodEndDate(Date freePeriodEndDate) {
        this.freePeriodEndDate = freePeriodEndDate;
    }

    public ContainerType getContainerType() {
        return containerType;
    }

    public void setContainerType(ContainerType containerType) {
        this.containerType = containerType;
    }

    public String getShipmentNumber() {
        return shipmentNumber;
    }

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

    public long getContainerId() {
        return containerId;
    }

    public void setContainerId(long containerId) {
        this.containerId = containerId;
    }

    public long getShipmentId() {
        return shipmentId;
    }

    public void setShipmentId(long shipmentId) {
        this.shipmentId = shipmentId;
    }

    public ShippingMode getShippingMode() {
        return shippingMode;
    }

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

    public String getFinalDestination() {
        return finalDestination;
    }

    public void setFinalDestination(String finalDestination) {
        this.finalDestination = finalDestination;
    }

    public String getBillOfLadingReference() {
        return billOfLadingReference;
    }

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

    public String getVesselName() {
        return vesselName;
    }

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

    public String getVoyageNumber() {
        return voyageNumber;
    }

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

    public Date getPickUpDate() {
        return pickUpDate;
    }

    public void setPickUpDate(Date pickUpDate) {
        this.pickUpDate = pickUpDate;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public Date getContainerTurnInDate() {
        return containerTurnInDate;
    }

    public void setContainerTurnInDate(Date containerTurnInDate) {
        this.containerTurnInDate = containerTurnInDate;
    }

    public boolean isNormalTurnInIndicator() {
        return normalTurnInIndicator;
    }

    public void setNormalTurnInIndicator(boolean normalTurnInIndicator) {
        this.normalTurnInIndicator = normalTurnInIndicator;
    }

    public Date getDetentionDateFrom() {
        return detentionDateFrom;
    }

    public void setDetentionDateFrom(Date detentionDateFrom) {
        this.detentionDateFrom = detentionDateFrom;
    }

    public Date getDetentionDateTo() {
        return detentionDateTo;
    }

    public void setDetentionDateTo(Date detentionDateTo) {
        this.detentionDateTo = detentionDateTo;
    }

    public String getShipmentComments() {
        return shipmentComments;
    }

    public void setShipmentComments(String shipmentComments) {
        this.shipmentComments = shipmentComments;
    }

    public String getTurnInEventTransactionComments() {
        return turnInEventTransactionComments;
    }

    public void setTurnInEventTransactionComments(String turnInEventTransactionComments) {
        this.turnInEventTransactionComments = turnInEventTransactionComments;
    }

    public Date getSignedOffDate() {
        return signedOffDate;
    }

    public void setSignedOffDate(Date signedOffDate) {
        this.signedOffDate = signedOffDate;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getStorageDateFrom() {
        return storageDateFrom;
    }

    public void setStorageDateFrom(Date storageDateFrom) {
        this.storageDateFrom = storageDateFrom;
    }

    public Date getStorageDateTo() {
        return storageDateTo;
    }

    public void setStorageDateTo(Date storageDateTo) {
        this.storageDateTo = storageDateTo;
    }

    public BigInteger getTeu() {
        return teu;
    }

    public void setTeu(BigInteger teu) {
        this.teu = teu;
    }

    public BigInteger getDaysToClear() {
        return daysToClear;
    }

    public void setDaysToClear(BigInteger daysToClear) {
        this.daysToClear = daysToClear;
    }

    public BigInteger getDaysToPickup() {
        return daysToPickup;
    }

    public void setDaysToPickup(BigInteger daysToPickup) {
        this.daysToPickup = daysToPickup;
    }

    public Date getOverstayDateFrom() {
        return overstayDateFrom;
    }

    public void setOverstayDateFrom(Date overstayDateFrom) {
        this.overstayDateFrom = overstayDateFrom;
    }

    public Date getOverstayDateTo() {
        return overstayDateTo;
    }

    public void setOverstayDateTo(Date overstayDateTo) {
        this.overstayDateTo = overstayDateTo;
    }

    public String getPartyResponsibleForCharges() {
        return partyResponsibleForCharges;
    }

    public void setPartyResponsibleForCharges(String partyResponsibleForCharges) {
        this.partyResponsibleForCharges = partyResponsibleForCharges;
    }

    /**
     * @return the dischargeDateString
     */
    public String getDischargeDateString() {
        return getTCFormateDate(dischargeDate);
    }

    private String getTCFormateDate(Date date) {
        if (date != null) {
            int year = dischargeDate.getYear() + 1900;
            int month = dischargeDate.getMonth();
            int day = dischargeDate.getDay();
            String formatdischargeDate = day + monthformat(month) + year;
            return formatdischargeDate;
        } else {
            return "";
        }
    }

    /**
     * @param dischargeDateString the dischargeDateString to set
     */
    public void setDischargeDateString(String dischargeDateString) {
        this.dischargeDateString = dischargeDateString;
    }

    /**
     * @return the carrierReleaseDateString
     */
    public String getCarrierReleaseDateString() {
        return getTCFormateDate(carrierReleaseDate);
    }

    /**
     * @param carrierReleaseDateString the carrierReleaseDateString to set
     */
    public void setCarrierReleaseDateString(String carrierReleaseDateString) {
        this.carrierReleaseDateString = carrierReleaseDateString;
    }

    /**
     * @return the freePeriodEndDateString
     */
    public String getFreePeriodEndDateString() {
        return getTCFormateDate(freePeriodEndDate);
    }

    /**
     * @param freePeriodEndDateString the freePeriodEndDateString to set
     */
    public void setFreePeriodEndDateString(String freePeriodEndDateString) {
        this.freePeriodEndDateString = freePeriodEndDateString;
    }

    private String monthformat(int month) {
        switch (month) {
            case 0:
                return " Jan, ";
            case 1:
                return " Feb, ";
            case 2:
                return " Mar,";
            case 3:
                return " Apr, ";
            case 4:
                return " May, ";
            case 5:
                return " Jun, ";
            case 6:
                return " Jul, ";
            case 7:
                return " Aug, ";
            case 8:
                return " Sep, ";
            case 9:
                return " Oct, ";
            case 10:
                return " Nov, ";
            case 11:
                return " Dec, ";
            default:
                return "";
        }
    }
}