package cn.palmte.work.model;

import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author Yuanping Zhang
 * @date 2022/08/08
 */
@Entity
@Table(name = "monthly_settle")
public class MonthlySettle {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @GenericGenerator(name = "persistenceGenerator", strategy = "increment")
    private int id;
    /**
     * 月份
     */
    @Column(name = "month")
    private String month;
    /**
     * 项目编号
     */
    @Column(name = "project_no")
    private String projectNo;
    /**
     * 最终业主
     */
    private String owner;
    /**
     * 合同方
     */
    @Column(name = "contract_party")
    private String contractParty;
    /**
     * 项目名称
     */
    @Column(name = "project_name")
    private String projectName;
    /**
     * 合同金额
     */
    @Column(name = "contract_amount")
    private BigDecimal contractAmount;
    /**
     * 累计已收款
     */
    @Column(name = "total_collect")
    private BigDecimal totalCollect;
    /**
     * 已采购累计付款
     */
    @Column(name = "total_purchased_paid")
    private BigDecimal totalPurchasedPaid;
    /**
     * 已采购累计未付款
     */
    @Column(name = "total_purchased_unpaid")
    private BigDecimal totalPurchasedUnpaid;
    /**
     * 超期垫资金额
     */
    @Column(name = "time_out_amount")
    private BigDecimal timeOutAmount;
    /**
     * 销售累计开票金额
     */
    @Column(name = "total_bill_amount")
    private BigDecimal totalBillAmount;
    /**
     * 合同编号
     */
    @Column(name = "contract_no")
    private String contractNo;
    /**
     * 项目类型
     */
    @Column(name = "project_type")
    private String projectType;
    /**
     * 合同签订时间
     */
    @Column(name = "contract_sign_time")
    @Temporal(TemporalType.DATE)
    private Date contractSignTime;
    /**
     * 销售经理
     */
    @Column(name = "sale_manager")
    private String saleManager;
    /**
     * 项目经理
     */
    @Column(name = "project_manager")
    private String projectManager;
    /**
     * 收款节点
     */
    @Column(name = "collect_point")
    private String collectPoint;
    /**
     * 收款要求时间
     */
    @Column(name = "collect_required_time")
    @Temporal(TemporalType.DATE)
    private Date collectRequiredTime;
    /**
     * 收款金额
     */
    @Column(name = "collect_amount")
    private BigDecimal collectAmount;
    /**
     * 实际收款时间
     */
    @Column(name = "collect_actual_time")
    @Temporal(TemporalType.DATE)
    private Date collectActualTime;
    /**
     * 实际收款金额
     */
    @Column(name = "collect_actual_amount")
    private BigDecimal collectActualAmount;
    /**
     * 实际欠收金额
     */
    @Column(name = "uncollect_actual_amount")
    private BigDecimal uncollectActualAmount;
    /**
     * 超期天数
     */
    @Column(name = "time_out_day")
    private String timeOutDay;
    /**
     * 到货证明
     */
    @Column(name = "product_certificate")
    private String productCertificate;
    /**
     * 验收报告时间
     */
    @Column(name = "inspection_report_time")
    @Temporal(TemporalType.DATE)
    private Date inspectionReportTime;
    /**
     * 项目风险预警
     */
    @Column(name = "risk_warning")
    private String riskWarning;
    /**
     * 已计收金额
     */
    @Column(name = "cal_col_amount")
    private BigDecimal calColAmount;
    /**
     * 未计收金额
     */
    @Column(name = "uncal_col_amount")
    private BigDecimal uncalColAmount;

    @Transient
    private String contractSignTimeStr;

    @Transient
    private String collectRequiredTimeStr;

    @Transient
    private String inspectionReportTimeStr;

    @Transient
    private String collectActualTimeStr;

    /**
     * 合同金额
     */
    @Transient
    private String contractAmountRound;
    /**
     * 累计已收款
     */
    @Transient
    private String totalCollectRound;
    /**
     * 已采购累计付款
     */
    @Transient
    private String totalPurchasedPaidRound;
    /**
     * 已采购累计未付款
     */
    @Transient
    private String totalPurchasedUnpaidRound;
    /**
     * 超期垫资金额
     */
    @Transient
    private String timeOutAmountRound;
    /**
     * 销售累计开票金额
     */
    @Transient
    private String totalBillAmountRound;
    /**
     * 收款金额
     */
    @Transient
    private String collectAmountRound;
    /**
     * 实际收款金额
     */
    @Transient
    private String collectActualAmountRound;
    /**
     * 实际欠收金额
     */
    @Transient
    private String uncollectActualAmountRound;
    /**
     * 已计收金额
     */
    @Transient
    private String calColAmountRound;
    /**
     * 未计收金额
     */
    @Transient
    private String uncalColAmountRound;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getMonth() {
        return month;
    }

    public void setMonth(String month) {
        this.month = month;
    }

    public String getProjectNo() {
        return projectNo;
    }

    public void setProjectNo(String projectNo) {
        this.projectNo = projectNo;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public String getContractParty() {
        return contractParty;
    }

    public void setContractParty(String contractParty) {
        this.contractParty = contractParty;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public BigDecimal getContractAmount() {
        return contractAmount;
    }

    public void setContractAmount(BigDecimal contractAmount) {
        this.contractAmount = contractAmount;
    }

    public BigDecimal getTotalCollect() {
        return totalCollect;
    }

    public void setTotalCollect(BigDecimal totalCollect) {
        this.totalCollect = totalCollect;
    }

    public BigDecimal getTotalPurchasedPaid() {
        return totalPurchasedPaid;
    }

    public void setTotalPurchasedPaid(BigDecimal totalPurchasedPaid) {
        this.totalPurchasedPaid = totalPurchasedPaid;
    }

    public BigDecimal getTotalPurchasedUnpaid() {
        return totalPurchasedUnpaid;
    }

    public void setTotalPurchasedUnpaid(BigDecimal totalPurchasedUnpaid) {
        this.totalPurchasedUnpaid = totalPurchasedUnpaid;
    }

    public BigDecimal getTimeOutAmount() {
        return timeOutAmount;
    }

    public void setTimeOutAmount(BigDecimal timeOutAmount) {
        this.timeOutAmount = timeOutAmount;
    }

    public BigDecimal getTotalBillAmount() {
        return totalBillAmount;
    }

    public void setTotalBillAmount(BigDecimal totalBillAmount) {
        this.totalBillAmount = totalBillAmount;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }

    public Date getContractSignTime() {
        return contractSignTime;
    }

    public void setContractSignTime(Date contractSignTime) {
        this.contractSignTime = contractSignTime;
    }

    public String getSaleManager() {
        return saleManager;
    }

    public void setSaleManager(String saleManager) {
        this.saleManager = saleManager;
    }

    public String getProjectManager() {
        return projectManager;
    }

    public void setProjectManager(String projectManager) {
        this.projectManager = projectManager;
    }

    public String getCollectPoint() {
        return collectPoint;
    }

    public void setCollectPoint(String collectPoint) {
        this.collectPoint = collectPoint;
    }

    public Date getCollectRequiredTime() {
        return collectRequiredTime;
    }

    public void setCollectRequiredTime(Date collectRequiredTime) {
        this.collectRequiredTime = collectRequiredTime;
    }

    public BigDecimal getCollectAmount() {
        return collectAmount;
    }

    public void setCollectAmount(BigDecimal collectAmount) {
        this.collectAmount = collectAmount;
    }

    public Date getCollectActualTime() {
        return collectActualTime;
    }

    public void setCollectActualTime(Date collectActualTime) {
        this.collectActualTime = collectActualTime;
    }

    public BigDecimal getCollectActualAmount() {
        return collectActualAmount;
    }

    public void setCollectActualAmount(BigDecimal collectActualAmount) {
        this.collectActualAmount = collectActualAmount;
    }

    public BigDecimal getUncollectActualAmount() {
        return uncollectActualAmount;
    }

    public void setUncollectActualAmount(BigDecimal uncollectActualAmount) {
        this.uncollectActualAmount = uncollectActualAmount;
    }

    public String getTimeOutDay() {
        return timeOutDay;
    }

    public void setTimeOutDay(String timeOutDay) {
        this.timeOutDay = timeOutDay;
    }

    public String getProductCertificate() {
        return productCertificate;
    }

    public void setProductCertificate(String productCertificate) {
        this.productCertificate = productCertificate;
    }

    public Date getInspectionReportTime() {
        return inspectionReportTime;
    }

    public void setInspectionReportTime(Date inspectionReportTime) {
        this.inspectionReportTime = inspectionReportTime;
    }

    public String getRiskWarning() {
        return riskWarning;
    }

    public void setRiskWarning(String riskWarning) {
        this.riskWarning = riskWarning;
    }

    public BigDecimal getCalColAmount() {
        return calColAmount;
    }

    public void setCalColAmount(BigDecimal calColAmount) {
        this.calColAmount = calColAmount;
    }

    public BigDecimal getUncalColAmount() {
        return uncalColAmount;
    }

    public void setUncalColAmount(BigDecimal uncalColAmount) {
        this.uncalColAmount = uncalColAmount;
    }

    public String getContractSignTimeStr() {
        return contractSignTimeStr;
    }

    public void setContractSignTimeStr(String contractSignTimeStr) {
        this.contractSignTimeStr = contractSignTimeStr;
    }

    public String getCollectRequiredTimeStr() {
        return collectRequiredTimeStr;
    }

    public void setCollectRequiredTimeStr(String collectRequiredTimeStr) {
        this.collectRequiredTimeStr = collectRequiredTimeStr;
    }

    public String getInspectionReportTimeStr() {
        return inspectionReportTimeStr;
    }

    public void setInspectionReportTimeStr(String inspectionReportTimeStr) {
        this.inspectionReportTimeStr = inspectionReportTimeStr;
    }

    public String getCollectActualTimeStr() {
        return collectActualTimeStr;
    }

    public void setCollectActualTimeStr(String collectActualTimeStr) {
        this.collectActualTimeStr = collectActualTimeStr;
    }

    public String getContractAmountRound() {
        return contractAmountRound;
    }

    public void setContractAmountRound(String contractAmountRound) {
        this.contractAmountRound = contractAmountRound;
    }

    public String getTotalCollectRound() {
        return totalCollectRound;
    }

    public void setTotalCollectRound(String totalCollectRound) {
        this.totalCollectRound = totalCollectRound;
    }

    public String getTotalPurchasedPaidRound() {
        return totalPurchasedPaidRound;
    }

    public void setTotalPurchasedPaidRound(String totalPurchasedPaidRound) {
        this.totalPurchasedPaidRound = totalPurchasedPaidRound;
    }

    public String getTotalPurchasedUnpaidRound() {
        return totalPurchasedUnpaidRound;
    }

    public void setTotalPurchasedUnpaidRound(String totalPurchasedUnpaidRound) {
        this.totalPurchasedUnpaidRound = totalPurchasedUnpaidRound;
    }

    public String getTimeOutAmountRound() {
        return timeOutAmountRound;
    }

    public void setTimeOutAmountRound(String timeOutAmountRound) {
        this.timeOutAmountRound = timeOutAmountRound;
    }

    public String getTotalBillAmountRound() {
        return totalBillAmountRound;
    }

    public void setTotalBillAmountRound(String totalBillAmountRound) {
        this.totalBillAmountRound = totalBillAmountRound;
    }

    public String getCollectAmountRound() {
        return collectAmountRound;
    }

    public void setCollectAmountRound(String collectAmountRound) {
        this.collectAmountRound = collectAmountRound;
    }

    public String getCollectActualAmountRound() {
        return collectActualAmountRound;
    }

    public void setCollectActualAmountRound(String collectActualAmountRound) {
        this.collectActualAmountRound = collectActualAmountRound;
    }

    public String getUncollectActualAmountRound() {
        return uncollectActualAmountRound;
    }

    public void setUncollectActualAmountRound(String uncollectActualAmountRound) {
        this.uncollectActualAmountRound = uncollectActualAmountRound;
    }

    public String getCalColAmountRound() {
        return calColAmountRound;
    }

    public void setCalColAmountRound(String calColAmountRound) {
        this.calColAmountRound = calColAmountRound;
    }

    public String getUncalColAmountRound() {
        return uncalColAmountRound;
    }

    public void setUncalColAmountRound(String uncalColAmountRound) {
        this.uncalColAmountRound = uncalColAmountRound;
    }
}
