package cn.palmte.work.bean;

import java.math.BigDecimal;

/**
 * 预算页面
 * @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
 */
public class BudgetBean extends IncomeCostBean{
    /**
     * 总的采购成本不含税
     */
    private BigDecimal costPurchaseTotalTaxExclude;
    /**
     * 总的采购成本含税
     */
    private BigDecimal costPurchaseTotalTaxInclude;
    /**
     * 设备收入税金
     */
    private BigDecimal incomeDeviceTax;
    /**
     * 设施收入税金
     */
    private BigDecimal incomeEngineerTax;
    /**
     * 服务收入税金
     */
    private BigDecimal incomeServiceTax;
    /**
     * 采购设备成本税金
     */
    private BigDecimal costPurchaseDeviceTax;
    /**
     * 采购施工成本税金
     */
    private BigDecimal costPurchaseBuildTax;
    /**
     * 采购服务成本税金
     */
    private BigDecimal costPurchaseServiceTax;
    /**
     * 采购其他成本含税
     */
    private BigDecimal costPurchaseOtherTax;
    /**
     * 采购其他成本含税
     */
    private BigDecimal costOtherOtherTax;
    /**
     * 公司管理费用
     */
    private BigDecimal costCompanyManageTaxExclude;
    /**
     * null就返回0
     */
    @Override
    protected BigDecimal handleSpecial(BigDecimal src) {
        return null == src ? new BigDecimal(0) : src;
    }

    public BigDecimal getCostPurchaseTotalTaxExclude() {
        return handleSpecial(costPurchaseTotalTaxExclude);
    }

    public void setCostPurchaseTotalTaxExclude(BigDecimal costPurchaseTotalTaxExclude) {
        this.costPurchaseTotalTaxExclude = costPurchaseTotalTaxExclude;
    }

    public BigDecimal getCostPurchaseTotalTaxInclude() {
        return handleSpecial(costPurchaseTotalTaxInclude);
    }

    public void setCostPurchaseTotalTaxInclude(BigDecimal costPurchaseTotalTaxInclude) {
        this.costPurchaseTotalTaxInclude = costPurchaseTotalTaxInclude;
    }

    public BigDecimal getCostPurchaseTotalTax() {
        return getCostPurchaseTotalTaxInclude().subtract(getCostPurchaseTotalTaxExclude());
    }

    public BigDecimal getIncomeDeviceTax() {
        return handleSpecial(incomeDeviceTax);
    }

    public void setIncomeDeviceTax(BigDecimal incomeDeviceTax) {
        this.incomeDeviceTax = incomeDeviceTax;
    }

    public BigDecimal getIncomeEngineerTax() {
        return handleSpecial(incomeEngineerTax);
    }

    public void setIncomeEngineerTax(BigDecimal incomeEngineerTax) {
        this.incomeEngineerTax = incomeEngineerTax;
    }

    public BigDecimal getIncomeServiceTax() {
        return handleSpecial(incomeServiceTax);
    }

    public void setIncomeServiceTax(BigDecimal incomeServiceTax) {
        this.incomeServiceTax = incomeServiceTax;
    }

    public BigDecimal getCostPurchaseDeviceTax() {
        return handleSpecial(costPurchaseDeviceTax);
    }

    public void setCostPurchaseDeviceTax(BigDecimal costPurchaseDeviceTax) {
        this.costPurchaseDeviceTax = costPurchaseDeviceTax;
    }

    public BigDecimal getCostPurchaseBuildTax() {
        return handleSpecial(costPurchaseBuildTax);
    }

    public void setCostPurchaseBuildTax(BigDecimal costPurchaseBuildTax) {
        this.costPurchaseBuildTax = costPurchaseBuildTax;
    }

    public BigDecimal getCostPurchaseServiceTax() {
        return handleSpecial(costPurchaseServiceTax);
    }

    public void setCostPurchaseServiceTax(BigDecimal costPurchaseServiceTax) {
        this.costPurchaseServiceTax = costPurchaseServiceTax;
    }

    public BigDecimal getCostPurchaseOtherTax() {
        return handleSpecial(costPurchaseOtherTax);
    }

    public void setCostPurchaseOtherTax(BigDecimal costPurchaseOtherTax) {
        this.costPurchaseOtherTax = costPurchaseOtherTax;
    }

    public BigDecimal getCostOtherOtherTax() {
        return handleSpecial(costOtherOtherTax);
    }

    public void setCostOtherOtherTax(BigDecimal costOtherOtherTax) {
        this.costOtherOtherTax = costOtherOtherTax;
    }

    @Override
    public BigDecimal getCostCompanyManageTaxExclude() {
        return getIncomeTotalTaxExclude().multiply(BigDecimal.valueOf(0.028));
    }

    @Override
    public void setCostCompanyManageTaxExclude(BigDecimal costCompanyManageTaxExclude) {
        this.costCompanyManageTaxExclude = costCompanyManageTaxExclude;
    }
}
