package com.sunxung.factoring.entity.invoicemanage;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.customerinformation.Customer;
import com.sunxung.factoring.entity.purchcontractmanagement.vo.PurchContractCompletedVo;
import com.sunxung.factoring.entity.sys.Dictionary;
import com.sunxung.factoring.entity.sys.FileStorage;

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

/**
 * @Description : 发票管理-历史信息表
 * @Author : liutao
 * @Date: 2022-3-22
 */
@TableName("invoice_his_info")
public class InvoiceHisInfo extends BaseEntity {
    /**
     * 发票基础信息表ID
     */
    @TableField(value = "invoice_basic_info_id")
    private Long invoiceBasicInfoId;
    /**
     * 业务编号
     **/
    @TableField(value = "business_number")
    private String businessNumber;
    /**
     * 核心企业Id
     */
    @TableField(value = "enterprise_customer_info_id")
    private Long enterpriseCustomerInfoId;
    /**
     * 贸易平台Id
     **/
    @TableField(value = "trading_platform_id")
    private Long tradingPlatformId;
    /**
     * 纳税识别号
     */
    @TableField(value = "tax_identify_number")
    private String taxIdentifyNumber;
    /**
     * 地址
     */
    @TableField(value = "address")
    private String address;
    /**
     * 电话
     */
    @TableField(value = "phone")
    private String phone;
    /**
     * 开户行名称
     */
    @TableField(value = "account_bank_name")
    private String accountBankName;
    /**
     * 开户账号
     */
    @TableField(value = "account_number")
    private String accountNumber;
    /**
     * 发票类型
     */
    @TableField(value = "invoice_type")
    private String invoiceType;
    /**
     * 金额种类
     */
    @TableField(value = "amount_kind")
    private String amountKind;
    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;
    /**
     * 商品大类信息
     */
    @TableField(value = "product_broad_info")
    private String productBroadInfo;
    /**
     * 开票金额总和
     */
    @TableField(value = "open_amount")
    private BigDecimal openAmount;
    /**
     * 货物信息
     */
    @TableField(exist = false)
    private List<InvoiceHisGoodsInfo> invoiceGoodsInfos;
    /**
     * 发票类型
     **/
    @TableField(exist = false)
    private Dictionary invoiceTypeDic;
    /**
     * 金额种类
     **/
    @TableField(exist = false)
    private Dictionary amountKindDic;

    /**
     * 发票状态
     **/
    @TableField(exist = false)
    private Dictionary invoiceStatusDic;

    /**
     * 采购发票附件
     */
    @TableField(exist = false)
    private List<FileStorage> files;

    /**
     * 开票明细附件
     */
    @TableField(exist = false)
    private List<FileStorage> invoiceDetailList;
    /**
     *待开发票
     */
    @TableField(exist = false)
    private List<FileStorage> pendingInvoice;

    /**
     * 核心企业
     */
    @TableField(exist = false)
    private Customer customer;
//
//    /**
//     * 业务信息
//     */
//    @TableField(exist = false)
//    private BusinessBasicInfo businessBasicInfo;
    /**
     * 核心企业名称
     */
    @TableField(exist = false)
    private String enterpriseCorporateName;
    /**
     * 公司名称
     **/
    @TableField(exist = false)
    private String companyName;
    /**
     * 资金占用
     **/
    @TableField(exist = false)
    private InvoiceHisPossessionCostInfo invoicePossessionCostInfos;

    /**
     * 供应商
     **/
    @TableField(exist = false)
    private List<InvoiceHisSupplierInfo> invoiceSupplierInfos;
    /**
     * 合同信息
     **/
    @TableField(exist = false)
    private PurchContractCompletedVo purchContractCompletedVo;
    @TableField(exist = false)
    public List<PurchaseInvoiceHisInfo> purchaseInvoiceInfos;

    public InvoiceHisInfo() {
    }

    public Long getInvoiceBasicInfoId() {
        return invoiceBasicInfoId;
    }

    public void setInvoiceBasicInfoId(Long invoiceBasicInfoId) {
        this.invoiceBasicInfoId = invoiceBasicInfoId;
    }

    public String getBusinessNumber() {
        return businessNumber;
    }

    public void setBusinessNumber(String businessNumber) {
        this.businessNumber = businessNumber;
    }

    public Long getEnterpriseCustomerInfoId() {
        return enterpriseCustomerInfoId;
    }

    public void setEnterpriseCustomerInfoId(Long enterpriseCustomerInfoId) {
        this.enterpriseCustomerInfoId = enterpriseCustomerInfoId;
    }

    public BigDecimal getOpenAmount() {
        return openAmount;
    }

    public void setOpenAmount(BigDecimal openAmount) {
        this.openAmount = openAmount;
    }

    public Long getTradingPlatformId() {
        return tradingPlatformId;
    }

    public void setTradingPlatformId(Long tradingPlatformId) {
        this.tradingPlatformId = tradingPlatformId;
    }

    public String getTaxIdentifyNumber() {
        return taxIdentifyNumber;
    }

    public void setTaxIdentifyNumber(String taxIdentifyNumber) {
        this.taxIdentifyNumber = taxIdentifyNumber;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAccountBankName() {
        return accountBankName;
    }

    public void setAccountBankName(String accountBankName) {
        this.accountBankName = accountBankName;
    }

    public String getAccountNumber() {
        return accountNumber;
    }

    public void setAccountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getAmountKind() {
        return amountKind;
    }

    public void setAmountKind(String amountKind) {
        this.amountKind = amountKind;
    }

    public String getRemark() {
        return remark;
    }

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

    public List<InvoiceHisGoodsInfo> getInvoiceGoodsInfos() {
        return invoiceGoodsInfos;
    }

    public void setInvoiceGoodsInfos(List<InvoiceHisGoodsInfo> invoiceHisGoodsInfos) {
        this.invoiceGoodsInfos = invoiceHisGoodsInfos;
    }

    public Dictionary getInvoiceTypeDic() {
        return invoiceTypeDic;
    }

    public void setInvoiceTypeDic(Dictionary invoiceTypeDic) {
        this.invoiceTypeDic = invoiceTypeDic;
    }

    public Dictionary getAmountKindDic() {
        return amountKindDic;
    }

    public void setAmountKindDic(Dictionary amountKindDic) {
        this.amountKindDic = amountKindDic;
    }

    public Dictionary getInvoiceStatusDic() {
        return invoiceStatusDic;
    }

    public void setInvoiceStatusDic(Dictionary invoiceStatusDic) {
        this.invoiceStatusDic = invoiceStatusDic;
    }

    public List<FileStorage> getFiles() {
        return files;
    }

    public void setFiles(List<FileStorage> files) {
        this.files = files;
    }

    public List<FileStorage> getPendingInvoice() {
        return pendingInvoice;
    }

    public void setPendingInvoice(List<FileStorage> pendingInvoice) {
        this.pendingInvoice = pendingInvoice;
    }

    public Customer getCustomer() {
        return customer;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

//    public BusinessBasicInfo getBusinessBasicInfo() {
//        return businessBasicInfo;
//    }
//
//    public void setBusinessBasicInfo(BusinessBasicInfo businessBasicInfo) {
//        this.businessBasicInfo = businessBasicInfo;
//    }

    public InvoiceHisPossessionCostInfo getInvoicePossessionCostInfos() {
        return invoicePossessionCostInfos;
    }

    public void setInvoicePossessionCostInfos(InvoiceHisPossessionCostInfo invoicePossessionCostInfos) {
        this.invoicePossessionCostInfos = invoicePossessionCostInfos;
    }

    public List<InvoiceHisSupplierInfo> getInvoiceSupplierInfos() {
        return invoiceSupplierInfos;
    }

    public void setInvoiceSupplierInfos(List<InvoiceHisSupplierInfo> invoiceSupplierInfos) {
        this.invoiceSupplierInfos = invoiceSupplierInfos;
    }

    public PurchContractCompletedVo getPurchContractCompletedVo() {
        return purchContractCompletedVo;
    }

    public void setPurchContractCompletedVo(PurchContractCompletedVo purchContractCompletedVo) {
        this.purchContractCompletedVo = purchContractCompletedVo;
    }

    public String getEnterpriseCorporateName() {
        return enterpriseCorporateName;
    }

    public void setEnterpriseCorporateName(String enterpriseCorporateName) {
        this.enterpriseCorporateName = enterpriseCorporateName;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getProductBroadInfo() {
        return productBroadInfo;
    }

    public void setProductBroadInfo(String productBroadInfo) {
        this.productBroadInfo = productBroadInfo;
    }

    public List<PurchaseInvoiceHisInfo> getPurchaseInvoiceHisInfos() {
        return purchaseInvoiceInfos;
    }

    public void setPurchaseInvoiceHisInfos(List<PurchaseInvoiceHisInfo> purchaseInvoiceHisInfos) {
        this.purchaseInvoiceInfos = purchaseInvoiceHisInfos;
    }

    public List<FileStorage> getInvoiceDetailList() {
        return invoiceDetailList;
    }

    public void setInvoiceDetailList(
        List<FileStorage> invoiceDetailList) {
        this.invoiceDetailList = invoiceDetailList;
    }
}
