package cn.palmte.work.model;

import org.hibernate.annotations.GenericGenerator;

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

/**
 * 项目结算现金流量表
 * @author Yuanping Zhang
 * @date 2021/11/10
 */
@Entity
@Table(name = "project_settle_cash_flow")
public class ProjectSettleCashFlow {
    public static final int SALE_INCOME_CASH = 1;//销售商品、提供劳务收到的现金
    public static final int TAX_RETURN = 2;//收到的税费返还
    public static final int EARNEST_MONEY_INCOME = 3;//收到其他与经营活动有关的现金
    public static final int PURCHASE_COST = 4;//购买商品、接受劳务支付的现金
    public static final int TAX_COST = 5;//支付的各项税费
    public static final int EARNEST_MONEY_COST = 6;//支付其他与经营活动有关的现金
    public static final int NET_CASH_FLOW = 7;//经营活动产生的现金流量净额
    public static final int CASH_INFLOW_FROM_INVESTING_ACTIVITIES = 8;//投资活动现金流入
    public static final int CASH_OUTFLOW_FROM_INVESTING_ACTIVITIES = 9;//投资活动现金流出
    public static final int NET_CASH_FROM_INVESTING_ACTIVITIES = 10;//投资活动产生的现金流量净额
    public static final int FINANCING_CAPITAL_INFLOW = 11;//融资资金流入
    public static final int FINANCING_CAPITAL_OUTFLOW = 12;//还款资金流出
    public static final int FINANCING_CAPITAL_CASHFLOW = 13;//筹资活动产生的现金流量净额
    public static final int NET_INCREASE_MONETARY_FUNDS = 14;//货币资金净增加额

    /**
     * id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @GenericGenerator(name = "persistenceGenerator", strategy = "increment")
    private Integer id;

    @Column(name = "project_id")
    private int projectId;

    @Column(name = "type")
    private int type;

    @Column(name = "amount")
    private BigDecimal amount;

    @Column(name = "time")
    private String time;

    @Column(name = "budget")
    private BigDecimal budget;

    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 BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public BigDecimal getBudget() {
        return budget;
    }

    public void setBudget(BigDecimal budget) {
        this.budget = budget;
    }
}