package com.sckw.payment.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sckw.payment.model.dto.ILedger;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 对账-贸易订单 运营端
 *
 * @author xucaiqin
 * @date 2023-07-10 18:11:24
 */
@Getter
@Setter
public class LedgerSell implements ILedger {
    /**
     * 主键
     */
    private Long id;
    /**
     * 贸易对账单编号
     */
    @JsonProperty("tLedgerNo")
    private String tLedgerNo;

    /**
     * 对账单名称
     */
    private String name;


    /**
     * 开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    /**
     * 结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    /**
     * 发票税率（%）
     */
    private Integer taxRate;
    private String taxRateLabel;

    /**
     * 交易方式(预付款、货到付款）
     */
    private String trading;
    private String tradingLabel;


    /**
     * 总应收/元
     */
    private BigDecimal totalPrice;
    /**
     * 不含税金额
     */
    private BigDecimal exTaxPrice;

    /**
     * 实际结算金额
     */
    private BigDecimal settlePrice;

    /**
     * 已收款/元
     */
    private BigDecimal actualPrice;
    /**
     * 扣款金额
     */
    private BigDecimal deductPrice;

    /**
     * 对账采购财务联系人名称
     */
    private String auditUser;

    /**
     * 对账采购财务联系人电话
     */
    private String auditPhone;

    /**
     * 对账销售财务联系人名称
     */
    private String successUser;

    /**
     * 对账销售财务联系人电话
     */
    private String successPhone;

    /**
     * 对账清单凭证
     */
    private String url;
    /**
     * 生成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime generateTime;
    /**
     * 预计收款日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime receiptTime;

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

    /**
     * 状态（1-已保存、2-待对账、3-已对账、4-已完成、5-已退回）
     */
    private Integer status;
    private String statusLabel;
    private String contacts;
    private String phone;
    /**
     * 采购
     */
    private String purchaseFirmName;
    /**
     * 销售
     */
    private String sellFirmName;
    /**
     * 创建人
     */
    private Long createBy;
    private String createByName;

    /**
     * 订单数量
     */
    private Integer orderCount;
}