fourcal/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailBa...

161 lines
3.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package cn.palmte.work.model;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.math.BigDecimal;
@MappedSuperclass
public class ProjectBudgetIncomeDetailBase {
public static final int TYPE_DEVICE = 1;
public static final int TYPE_ENGINEER = 2;
public static final int TYPE_SERVICE = 3;
/**
* id
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@GenericGenerator(name = "persistenceGenerator", strategy = "increment")
private Integer id;
@Column(name = "project_id")
private int projectId;
private int type;
private String name;
private String spec;
private String param;
private String unit;
private BigDecimal amount;
private BigDecimal price;
@Column(name = "tax_rate")
private BigDecimal taxRate;
// 质保期 5 个字符
@Column(name = "expiration_date")
public String expirationDate;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSpec() {
return spec;
}
public void setSpec(String spec) {
this.spec = spec;
}
public String getParam() {
return param;
}
public void setParam(String param) {
this.param = param;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public BigDecimal getTaxRate() {
return taxRate;
}
public void setTaxRate(BigDecimal taxRate) {
this.taxRate = taxRate;
}
public String getExpirationDate() {
return expirationDate;
}
public void setExpirationDate(String expirationDate) {
this.expirationDate = expirationDate;
}
public BigDecimal getTotalTaxInclude(){
if(null == price){
return BigDecimal.ZERO;
}
return price.multiply(amount);
}
public BigDecimal getTotalTaxExclude(){
BigDecimal totalTaxInclude = getTotalTaxInclude();
if(null == totalTaxInclude) {
return BigDecimal.ZERO;
} else if (taxRate == null){
return totalTaxInclude;
}
//不含税总金额=含税总金额/1+税率)
BigDecimal bigDecimal = taxRate.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(1));
return totalTaxInclude.divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP);
}
public BigDecimal getTotalTax(){
BigDecimal totalTaxInclude = getTotalTaxInclude();
if(null == totalTaxInclude || taxRate == null){
return BigDecimal.ZERO;
}
//不含税总金额=含税总金额/1+税率)
BigDecimal bigDecimal = taxRate.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(1));
return totalTaxInclude.multiply(taxRate.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)).divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP);
}
}