package com.sunxung.factoring.entity.underlying.sop;

import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.financing.apply.CFinancingBasicInfo;
import com.sunxung.factoring.entity.underlying.UnderlyingBasicInfo;

import java.math.BigDecimal;

/**
 * @className:UnderlyingAssetsDomestic
 * @description:底层资产（国内保理）实体类 -- 对应sop
 * @author:杜小姣
 * @e-mail:1261237207@qq.com
 * @date:2018年7月16日 下午2:18:48
 */
public class UnderlyingAssetsDomesticToSop extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 底层资产信息Id
     **/
    private Long underlyingAssetsBasicId;

    /**
     * 客户Id
     **/
    private Long customerId;

    /**
     * 底层资产客户列表中，选择的这个客户是债务人还是债权人
     **/
    private String customerIdentity;

    /**
     * 第三方客户的统一社会信用代码
     **/
    private String thirdPartyCustomerCode;

    /**
     * 第三方客户是债权人还是债务人
     **/
    private String thirdPartyIdentity;

    /**
     * 底层资产编号
     **/
    private String underlyingAssetsNo;

    /**
     * 基础交易合同名称
     **/
    private String contractName;

    /**
     * 基础交易合同编号
     **/
    private String contractNo;

    /**
     * 合同金额
     **/
    private BigDecimal contractAmount;

    /**
     * 币种
     **/
    private String currencyCode;

    /**
     * 底层资产类型
     **/
    private String underlyingAssetsTypeCode;

    /**
     * 应收账款种类
     **/
    private String accountsReceivableType;

    /**
     * 备注
     **/
    private String remark;

    /**
     * 数据来源
     */
    private String dataSource;


    /**
     * 贸理通底层编号
     */
    private String tradeUnderlyingNumber;

    /**
     * 销售合同编号
     */
    private String salesContractNumber;
    /**
     * 销售合同名称
     */
    private String salesContractName;

    /**
     * 核心企业名称
     */
    private String purchaserName;


    public UnderlyingAssetsDomesticToSop() {
    }

    public UnderlyingAssetsDomesticToSop(UnderlyingBasicInfo underlyingBasicInfo) {
        this.customerIdentity = "";
        this.thirdPartyIdentity = "";
        this.contractName = underlyingBasicInfo.getContractName();
        this.contractNo = underlyingBasicInfo.getContractNumber();
        this.contractAmount = underlyingBasicInfo.getContractAmount();
        this.remark = underlyingBasicInfo.getRemark();
        this.dataSource = "trade";
        this.tradeUnderlyingNumber = underlyingBasicInfo.getReceivablesNumber();
    }

    public UnderlyingAssetsDomesticToSop(CFinancingBasicInfo financingBasicInfo) {
        this.customerIdentity = "";
        this.thirdPartyIdentity = "";
        this.remark = "";
        this.dataSource = "trade";
    }

    public Long getUnderlyingAssetsBasicId() {
        return underlyingAssetsBasicId;
    }

    public void setUnderlyingAssetsBasicId(Long underlyingAssetsBasicId) {
        this.underlyingAssetsBasicId = underlyingAssetsBasicId;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public String getCustomerIdentity() {
        return customerIdentity;
    }

    public void setCustomerIdentity(String customerIdentity) {
        this.customerIdentity = customerIdentity;
    }

    public String getThirdPartyCustomerCode() {
        return thirdPartyCustomerCode;
    }

    public void setThirdPartyCustomerCode(String thirdPartyCustomerCode) {
        this.thirdPartyCustomerCode = thirdPartyCustomerCode;
    }

    public String getThirdPartyIdentity() {
        return thirdPartyIdentity;
    }

    public void setThirdPartyIdentity(String thirdPartyIdentity) {
        this.thirdPartyIdentity = thirdPartyIdentity;
    }

    public String getUnderlyingAssetsNo() {
        return underlyingAssetsNo;
    }

    public void setUnderlyingAssetsNo(String underlyingAssetsNo) {
        this.underlyingAssetsNo = underlyingAssetsNo;
    }

    public String getContractName() {
        return contractName;
    }

    public void setContractName(String contractName) {
        this.contractName = contractName;
    }

    public String getContractNo() {
        return contractNo;
    }

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

    public BigDecimal getContractAmount() {
        return contractAmount;
    }

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

    public String getCurrencyCode() {
        return currencyCode;
    }

    public void setCurrencyCode(String currencyCode) {
        this.currencyCode = currencyCode;
    }

    public String getUnderlyingAssetsTypeCode() {
        return underlyingAssetsTypeCode;
    }

    public void setUnderlyingAssetsTypeCode(String underlyingAssetsTypeCode) {
        this.underlyingAssetsTypeCode = underlyingAssetsTypeCode;
    }

    public String getAccountsReceivableType() {
        return accountsReceivableType;
    }

    public void setAccountsReceivableType(String accountsReceivableType) {
        this.accountsReceivableType = accountsReceivableType;
    }

    public String getRemark() {
        return remark;
    }

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

    public String getDataSource() {
        return dataSource;
    }

    public void setDataSource(String dataSource) {
        this.dataSource = dataSource;
    }

    public String getTradeUnderlyingNumber() {
        return tradeUnderlyingNumber;
    }

    public void setTradeUnderlyingNumber(String tradeUnderlyingNumber) {
        this.tradeUnderlyingNumber = tradeUnderlyingNumber;
    }

    public String getSalesContractNumber() {
        return salesContractNumber;
    }

    public void setSalesContractNumber(String salesContractNumber) {
        this.salesContractNumber = salesContractNumber;
    }

    public String getPurchaserName() {
        return purchaserName;
    }

    public void setPurchaserName(String purchaserName) {
        this.purchaserName = purchaserName;
    }

    public String getSalesContractName() {
        return salesContractName;
    }

    public void setSalesContractName(String salesContractName) {
        this.salesContractName = salesContractName;
    }
}
