package com.inkasso.factoring.ledgermanagement.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.inkasso.adapter.bean.BaseBean;
import com.inkasso.factoring.dict.entity.Dictionary;
import com.inkasso.factoring.ledgermanagement.entity.vo.GoodsAssignVo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 分账管理--基本信息表
 *
 * @author LiuJia
 * @date 2021.11.11
 */
@TableName("ledger_account_basic_info")
public class LedgerAccountBasicInfo extends BaseBean {

    /**
     * 对应现金流基础信息表(入账)Id
     */
    @TableField("cash_flow_manage_basic_info_id")
    private Long cashFlowManageBasicInfoId;

    /**
     * 企业Id
     */
    @TableField("enterprise_id")
    private Long enterpriseId;

    /**
     * 企业名称
     */
    @TableField(exist = false)
    private String customerName;

    /**
     * 标签 0:下游回款、1:上游回购
     */
    @TableField("label")
    private Integer label;

    /**
     * 分账单号
     */
    @TableField("ledger_number")
    private String ledgerNumber;

    /**
     * 分账状态 待处理、已完成
     */
    @TableField("ledger_status")
    private String ledgerStatus;

    /**
     * 分账状态字典项
     */
    @TableField(exist = false)
    private Dictionary ledgerStatusDict;

    /**
     * 币种
     */
    @TableField("currency")
    private String currency;

    /**
     * 入账类型（现金、票据贴现）
     */
    @TableField("ledger_type")
    private String ledgerType;

    /**
     * 入账类型（现金、票据贴现）字典项
     */
    @TableField(exist = false)
    private Dictionary ledgerTypeDict;

    /**
     * 入账金额
     */
    @TableField("ledger_amount")
    private BigDecimal ledgerAmount;

    /**
     * 入账日期
     */
    @TableField("ledger_date")
    private Date ledgerDate;

    /**
     * 贴现费用（当入账类型为票据贴现时填写）
     */
    @TableField("discount_charge")
    private BigDecimal discountCharge;

    /**
     * 说明（当入账类型为票据贴现时填写）
     */
    @TableField("remark")
    private String remark;

    /**
     * 货款金额
     */
    @TableField("goods_amount")
    private BigDecimal goodsAmount;

    /**
     * 供应商Id
     */
    @TableField(exist = false)
    private Long supplierId;

    /**
     * 分配信息
     */
    @TableField(exist = false)
    private List<GoodsAssignVo> assignVoList;

    public LedgerAccountBasicInfo() {
    }

    public Long getCashFlowManageBasicInfoId() {
        return cashFlowManageBasicInfoId;
    }

    public void setCashFlowManageBasicInfoId(Long cashFlowManageBasicInfoId) {
        this.cashFlowManageBasicInfoId = cashFlowManageBasicInfoId;
    }

    public Long getEnterpriseId() {
        return enterpriseId;
    }

    public void setEnterpriseId(Long enterpriseId) {
        this.enterpriseId = enterpriseId;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public Integer getLabel() {
        return label;
    }

    public void setLabel(Integer label) {
        this.label = label;
    }

    public String getLedgerNumber() {
        return ledgerNumber;
    }

    public void setLedgerNumber(String ledgerNumber) {
        this.ledgerNumber = ledgerNumber;
    }

    public String getLedgerStatus() {
        return ledgerStatus;
    }

    public void setLedgerStatus(String ledgerStatus) {
        this.ledgerStatus = ledgerStatus;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public String getLedgerType() {
        return ledgerType;
    }

    public void setLedgerType(String ledgerType) {
        this.ledgerType = ledgerType;
    }

    public BigDecimal getLedgerAmount() {
        return ledgerAmount;
    }

    public void setLedgerAmount(BigDecimal ledgerAmount) {
        this.ledgerAmount = ledgerAmount;
    }

    public Date getLedgerDate() {
        return ledgerDate;
    }

    public void setLedgerDate(Date ledgerDate) {
        this.ledgerDate = ledgerDate;
    }

    public BigDecimal getDiscountCharge() {
        return discountCharge;
    }

    public void setDiscountCharge(BigDecimal discountCharge) {
        this.discountCharge = discountCharge;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public BigDecimal getGoodsAmount() {
        return goodsAmount;
    }

    public void setGoodsAmount(BigDecimal goodsAmount) {
        this.goodsAmount = goodsAmount;
    }

    public List<GoodsAssignVo> getAssignVoList() {
        return assignVoList;
    }

    public void setAssignVoList(List<GoodsAssignVo> assignVoList) {
        this.assignVoList = assignVoList;
    }

    public Dictionary getLedgerStatusDict() {
        return ledgerStatusDict;
    }

    public void setLedgerStatusDict(Dictionary ledgerStatusDict) {
        this.ledgerStatusDict = ledgerStatusDict;
    }

    public Dictionary getLedgerTypeDict() {
        return ledgerTypeDict;
    }

    public void setLedgerTypeDict(Dictionary ledgerTypeDict) {
        this.ledgerTypeDict = ledgerTypeDict;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }
}
