CostCompareSearchResult.java

package com.tradecloud.dto.costing;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;
import java.util.Optional;

public class CostCompareSearchResult {
    private Long summaryId;
    private Long consignmentId;
    private String reference;
    private String portOfLoading;

    private String portOfDischarge;

    private String finalDestination;

    private String transporter;

    private String freightForwarder;

    private String clearingAgent;

    private BigDecimal freightAmount;

    private BigDecimal clearingAmount;
    private BigDecimal forwardingAmount;
    private BigDecimal customsAmount;

    private boolean primaryCosting;

    private Date finalisedDate;

    private boolean useCompareRatesOnly;

    private String costReference;

    public String getReference() {
        return reference;
    }

    public void setReference(String reference) {
        this.reference = reference;
    }

    public String getPortOfLoading() {
        return portOfLoading;
    }

    public void setPortOfLoading(String portOfLoading) {
        this.portOfLoading = portOfLoading;
    }

    public Date getFinalisedDate() {
        return finalisedDate;
    }

    public void setFinalisedDate(Date finalisedDate) {
        this.finalisedDate = finalisedDate;
    }

    public String getPortOfDischarge() {
        return portOfDischarge;
    }

    public void setPortOfDischarge(String portOfDischarge) {
        this.portOfDischarge = portOfDischarge;
    }

    public String getFinalDestination() {
        return finalDestination;
    }

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

    public String getTransporter() {
        return transporter;
    }

    public void setTransporter(String transporter) {
        this.transporter = transporter;
    }

    public String getFreightForwarder() {
        return freightForwarder;
    }

    public void setFreightForwarder(String freightForwarder) {
        this.freightForwarder = freightForwarder;
    }

    public String getClearingAgent() {
        return clearingAgent;
    }

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

    public BigDecimal getFreightAmount() {

        return Optional.ofNullable(freightAmount).orElse(BigDecimal.ZERO);
    }

    public void setFreightAmount(BigDecimal freightAmount) {
        this.freightAmount = freightAmount;
    }

    public BigDecimal getClearingAmount() {
        return Optional.ofNullable(clearingAmount).orElse(BigDecimal.ZERO);
    }

    public void setClearingAmount(BigDecimal clearingAmount) {
        this.clearingAmount = clearingAmount;
    }

    public BigDecimal getForwardingAmount() {
        return Optional.ofNullable(forwardingAmount).orElse(BigDecimal.ZERO);
    }

    public void setForwardingAmount(BigDecimal forwardingAmount) {
        this.forwardingAmount = forwardingAmount;
    }

    public BigDecimal getCustomsAmount() {
        return Optional.ofNullable(customsAmount).orElse(BigDecimal.ZERO);
    }

    public void setCustomsAmount(BigDecimal customsAmount) {
        this.customsAmount = customsAmount;
    }

    public boolean isPrimaryCosting() {
        return primaryCosting;
    }

    public void setPrimaryCosting(boolean primaryCosting) {
        this.primaryCosting = primaryCosting;
    }

    public Long getSummaryId() {
        return summaryId;
    }

    public void setSummaryId(Long summaryId) {
        this.summaryId = summaryId;
    }

    public BigDecimal getSubTotal() {
        return getFreightAmount().add(getClearingAmount()).add(getCustomsAmount()).add(getForwardingAmount());
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof CostCompareSearchResult that)) return false;
        return Objects.equals(getSummaryId(), that.getSummaryId());
    }

    @Override
    public int hashCode() {
        return Objects.hash(getSummaryId());
    }

    public Long getConsignmentId() {
        return consignmentId;
    }

    public String getCostReference() {
        return costReference;
    }

    public void setCostReference(String costReference) {
        this.costReference = costReference;
    }

    public void setConsignmentId(Long consignmentId) {
        this.consignmentId = consignmentId;
    }

    public boolean isUseCompareRatesOnly() {
        return useCompareRatesOnly;
    }

    public void setUseCompareRatesOnly(boolean useCompareRatesOnly) {
        this.useCompareRatesOnly = useCompareRatesOnly;
    }
}