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

import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.financing.apply.CFinancingAccountsReceivableInfo;
import com.sunxung.factoring.entity.financing.review.ReviewQuotaDisburse;

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

/**
 * @Description : 底层资产应收账款实体类（对应sop）
 * @Author : L.Jia
 * @Date: 2021-11-18 17:53
 */
public class DomesticAccountsReceivableToSop extends BaseEntity {

    /**
     * 底层资产（国内保理）实体类Id
     */
    private Long underlyingAssetsDomesticId;

    /**
     * 应收账款金额
     */
    private BigDecimal accountsReceivable;
    /**
     * 应收账款净额
     */
    private BigDecimal netAccountsReceivable;
    /**
     * 应收账款开始时间
     */
    private Date startOfReconciliation;
    /**
     * 应收账款结束时间
     */
    private Date endOfReconciliation;
    /**
     * 应收账款期限
     */
    private Long accountReceivablePeriod;

    /**
     * 应收账款金额
     */
    private BigDecimal accountsReceivableAmount;

    /**
     * 应收账款净额
     */
    private BigDecimal netAccountsReceivableAmount;

    /**
     * 对应贸理通底层资产编号
     */
    private String tradeReceivablesNumber;

    /**
     * 应收账款货物信息
     */
    private List<CFinancingAccountsReceivableInfo> accountsReceivableGoodsList;

    public DomesticAccountsReceivableToSop() {
    }

    public DomesticAccountsReceivableToSop(ReviewQuotaDisburse reviewQuotaDisburse) {
        this.startOfReconciliation = reviewQuotaDisburse.getStartDate();
        this.endOfReconciliation = reviewQuotaDisburse.getEndDate();
        this.accountReceivablePeriod = reviewQuotaDisburse.getTerm().longValue();
    }

    public Long getUnderlyingAssetsDomesticId() {
        return underlyingAssetsDomesticId;
    }

    public void setUnderlyingAssetsDomesticId(Long underlyingAssetsDomesticId) {
        this.underlyingAssetsDomesticId = underlyingAssetsDomesticId;
    }

    public BigDecimal getAccountsReceivable() {
        return accountsReceivable;
    }

    public void setAccountsReceivable(BigDecimal accountsReceivable) {
        this.accountsReceivable = accountsReceivable;
    }

    public BigDecimal getNetAccountsReceivable() {
        return netAccountsReceivable;
    }

    public void setNetAccountsReceivable(BigDecimal netAccountsReceivable) {
        this.netAccountsReceivable = netAccountsReceivable;
    }

    public Date getStartOfReconciliation() {
        return startOfReconciliation;
    }

    public void setStartOfReconciliation(Date startOfReconciliation) {
        this.startOfReconciliation = startOfReconciliation;
    }

    public Date getEndOfReconciliation() {
        return endOfReconciliation;
    }

    public void setEndOfReconciliation(Date endOfReconciliation) {
        this.endOfReconciliation = endOfReconciliation;
    }

    public Long getAccountReceivablePeriod() {
        return accountReceivablePeriod;
    }

    public void setAccountReceivablePeriod(Long accountReceivablePeriod) {
        this.accountReceivablePeriod = accountReceivablePeriod;
    }

    public BigDecimal getAccountsReceivableAmount() {
        return accountsReceivableAmount;
    }

    public void setAccountsReceivableAmount(BigDecimal accountsReceivableAmount) {
        this.accountsReceivableAmount = accountsReceivableAmount;
    }

    public BigDecimal getNetAccountsReceivableAmount() {
        return netAccountsReceivableAmount;
    }

    public void setNetAccountsReceivableAmount(BigDecimal netAccountsReceivableAmount) {
        this.netAccountsReceivableAmount = netAccountsReceivableAmount;
    }

    public List<CFinancingAccountsReceivableInfo> getAccountsReceivableGoodsList() {
        return accountsReceivableGoodsList;
    }

    public void setAccountsReceivableGoodsList(List<CFinancingAccountsReceivableInfo> accountsReceivableGoodsList) {
        this.accountsReceivableGoodsList = accountsReceivableGoodsList;
    }

    public String getTradeReceivablesNumber() {
        return tradeReceivablesNumber;
    }

    public void setTradeReceivablesNumber(String tradeReceivablesNumber) {
        this.tradeReceivablesNumber = tradeReceivablesNumber;
    }
}
