Vat.java
package com.tradecloud.domain;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.base.utils.MathUtils;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;
/**
* Created by ds on 2017/06/07.
*/
@Entity
@Table(name = "vat", uniqueConstraints = {
@UniqueConstraint(columnNames = {"effectiveDate"})})
public class Vat extends PersistenceBase implements Comparable<Vat> {
private BigDecimal vatRate;
@Temporal(TemporalType.TIMESTAMP)
@Column(unique = true, name = "effectiveDate")
private Date effectiveDate;
public Vat() {
}
public Vat(BigDecimal vatRate, Date effectiveDate) {
this.vatRate = vatRate;
this.effectiveDate = effectiveDate;
}
public Date getEffectiveDate() {
return effectiveDate;
}
public void setEffectiveDate(Date effectiveDate) {
this.effectiveDate = effectiveDate;
}
public BigDecimal getVatRate() {
return vatRate != null ? vatRate : BigDecimal.ZERO.setScale(MathUtils.SCALE_DISPLAY,
MathUtils.ROUNDING_MODE);
}
public void setVatRate(BigDecimal vatRate) {
this.vatRate = vatRate;
}
@Override
public int compareTo(Vat o) {
return effectiveDate.compareTo(o.effectiveDate);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
Vat vat = (Vat) o;
return effectiveDate.equals(vat.effectiveDate);
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), effectiveDate);
}
}