InternalProvisionsRateSearch.java
package com.tradecloud.dto.rate;
import com.tradecloud.domain.item.ItemCategory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import com.tradecloud.domain.container.ContainerType;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.model.payment.PaymentMethod;
import com.tradecloud.domain.model.payment.PaymentTerm;
import com.tradecloud.domain.party.Employee;
import com.tradecloud.domain.place.FinalDestination;
import com.tradecloud.domain.place.PlaceOfDischarge;
import com.tradecloud.domain.supplier.OrganisationalUnitSupplier;
import com.tradecloud.domain.supplier.Supplier;
@Component
@Scope("view")
public class InternalProvisionsRateSearch extends RateSearch {
private static final long serialVersionUID = 1L;
private OrganisationalUnit organisationalUnit;
private Employee buyer;
private Supplier supplier;
private PaymentMethod paymentMethod;
private PaymentTerm paymentTerm;
private ContainerType containerType;
private PlaceOfDischarge placeOfDischarge;
private FinalDestination finalDestination;
private ItemCategory itemCategory;
//not used in search, used to set supplier
private OrganisationalUnitSupplier organisationalUnitSupplier;
private OrganisationalUnit company;
public InternalProvisionsRateSearch() {
super();
}
public InternalProvisionsRateSearch(InternalProvisionsRateSearch internalProvisionsRateSearch) {
super(internalProvisionsRateSearch);
this.organisationalUnit = internalProvisionsRateSearch.organisationalUnit;
this.buyer = internalProvisionsRateSearch.buyer;
this.supplier = internalProvisionsRateSearch.supplier;
this.paymentMethod = internalProvisionsRateSearch.paymentMethod;
this.paymentTerm = internalProvisionsRateSearch.paymentTerm;
this.containerType = internalProvisionsRateSearch.containerType;
this.placeOfDischarge = internalProvisionsRateSearch.placeOfDischarge;
this.finalDestination = internalProvisionsRateSearch.finalDestination;
this.organisationalUnitSupplier = internalProvisionsRateSearch.organisationalUnitSupplier;
this.itemCategory = internalProvisionsRateSearch.itemCategory;
this.company = internalProvisionsRateSearch.company;
}
public Employee getBuyer() {
return buyer;
}
public void setBuyer(Employee buyer) {
this.buyer = buyer;
}
public Supplier getSupplier() {
return supplier;
}
public void setSupplier(Supplier supplier) {
this.supplier = supplier;
}
public OrganisationalUnit getOrganisationalUnit() {
return organisationalUnit;
}
public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
this.organisationalUnit = organisationalUnit;
}
public ContainerType getContainerType() {
return containerType;
}
public void setContainerType(ContainerType containerType) {
this.containerType = containerType;
}
public FinalDestination getFinalDestination() {
return finalDestination;
}
public void setFinalDestination(FinalDestination finalDestination) {
this.finalDestination = finalDestination;
}
public PaymentMethod getPaymentMethod() {
return paymentMethod;
}
public void setPaymentMethod(PaymentMethod paymentMethod) {
this.paymentMethod = paymentMethod;
}
public PaymentTerm getPaymentTerm() {
return paymentTerm;
}
public void setPaymentTerm(PaymentTerm paymentTerm) {
this.paymentTerm = paymentTerm;
}
public PlaceOfDischarge getPlaceOfDischarge() {
return placeOfDischarge;
}
public void setPlaceOfDischarge(PlaceOfDischarge placeOfDischarge) {
this.placeOfDischarge = placeOfDischarge;
}
public OrganisationalUnitSupplier getOrganisationalUnitSupplier() {
return organisationalUnitSupplier;
}
public OrganisationalUnit getCompany() {
return company;
}
public void setCompany(OrganisationalUnit company) {
this.company = company;
}
public void setOrganisationalUnitSupplier(OrganisationalUnitSupplier organisationalUnitSupplier) {
this.organisationalUnitSupplier = organisationalUnitSupplier;
if (organisationalUnitSupplier != null)
supplier = organisationalUnitSupplier.getSupplier();
}
public ItemCategory getItemCategory() {
return itemCategory;
}
public void setItemCategory(ItemCategory itemCategory) {
this.itemCategory = itemCategory;
}
@Override
public String toString() {
return """
Cost line '%s'. Business unit '%s'. Company '%s'. Buyer '%s'. Supplier '%s'. %s. Item category '%s'
""".formatted(
costLine,
organisationalUnit != null ? organisationalUnit.getName() : "null",
company != null ? company.getName() : "null",
buyer != null ? buyer.getFullName() : "null",
supplier != null ? supplier.getName() : "null",
costingType,
itemCategory != null ? itemCategory.getName() : "null"
);
}
@Override
public void reset() {
super.reset();
organisationalUnit = null;
buyer = null;
supplier = null;
paymentTerm = null;
paymentMethod = null;
containerType = null;
placeOfDischarge = null;
finalDestination = null;
organisationalUnitSupplier = null;
itemCategory = null;
company = null;
}
@Override
public int hashCode() {
return generate(getBuyer(), getContainerType(), getCostingType(),
getCostLine(), getCurrency(), getEffectiveDateLower(), getEffectiveDateUpper(), getFinalDestination(), getOrganisationalUnit(),
getPaymentMethod(), getPaymentTerm(), getPlaceOfDischarge(), getPriorityConfig(), getSupplier(), getItemCategory(),
getSearchMetaParams(), getRateUnit(), isCostCompareOnly(), getCompany());
}
}