package com.fjhx.sale.entity.statement.vo;

import com.fjhx.account.entity.account.po.AccountRequestFundsDetail;
import com.fjhx.account.entity.account.vo.AccountRequestFundsDetailVo;
import com.fjhx.account.entity.tax.po.TaxRefundDetails;
import com.fjhx.common.entity.currency.po.CurrencyRate;
import com.fjhx.purchase.entity.pay.po.Pay;
import com.fjhx.purchase.entity.pay.po.PayDetail;
import com.fjhx.purchase.entity.purchase.po.Purchase;
import com.fjhx.sale.entity.claim.po.ClaimContract;
import lombok.Getter;
import lombok.Setter;

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

@Getter
@Setter
public class ProfitSettlementVo {

    /**
     * 销售合同id
     */
    private Long contractId;

    /**
     * 销售合同编号
     */
    private String contractCode;

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

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 业务员id
     */
    private Long userId;

    /**
     * 业务员名称
     */
    private String userName;

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

    /**
     * 币种（字典account_currency）
     */
    private String currency;

    /**
     * 已付货款
     */
    private BigDecimal accountPaid;

    /**
     * 销售合同到账金额
     */
    private BigDecimal contractArrival = BigDecimal.ZERO;

    /**
     * 退税金额
     */
    private BigDecimal taxReturnMoney = BigDecimal.ZERO;

    /**
     * 其他收入
     */
    private BigDecimal otherIncome = BigDecimal.ZERO;

    /**
     * 采购合同金额
     */
    private BigDecimal purchaseAmount;

    /**
     * 支付货款
     */
    private BigDecimal payForGoods = BigDecimal.ZERO;

    /**
     * 其他支出
     */
    private BigDecimal otherExpenses = BigDecimal.ZERO;

    /**
     * 汇率json
     * List<ContractCurrencyRate> 转 json
     * {@link com.fjhx.sale.entity.contract.bo.ContractCurrencyRate}
     */
    private String currencyRateJson;

    /**
     * 合计收入
     */
    private BigDecimal totalIncome;

    /**
     * 合计支出
     */
    private BigDecimal totalExpenses;

    /**
     * 毛利
     */
    private BigDecimal grossProfit;

    /**
     * 毛利率
     */
    private BigDecimal grossProfitMargin;

    /**
     * 是否结算 1已结算 0未结算
     */
    private Integer settlementStatus;

    /**
     * 税率
     */
    private BigDecimal rate;

    /**
     * 到账认领列表
     */
    private List<ClaimContract> claimList;

    /**
     * 退税列表
     */
    private List<TaxRefundDetails> taxReturnList;

    /**
     * 采购列表
     */
    private List<Purchase> purchaseList;

    /**
     * 付款列表
     */
    private List<Pay> payList;

    /**
     * 请款列表
     */
    private List<AccountRequestFundsDetailVo> accountRequestFundsDetailList;

    /**
     * 币种列表
     */
    private List<CurrencyRate> currencyList;
}
