package com.sckw.payment.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
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 LedgerLogisticsDto implements ILedger {
    /**
     * 主键
     */
    private Long id;
    /**
     * 物流对账单编号
     */
    private String lLedgerNo;

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

    /**
     * 企业id
     */
    private Long entId;

    /**
     * 托运单位
     */
    private Long checkEntId;

    /**
     * 承运单位
     */
    private Long carrierEntId;


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

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


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

    /**
     * 交易方式(预付款、货到付款）
     */
    private String trading;
    private String tradingLabel;
    /**
     * 对账托运方财务联系人电话
     */
    private String auditPhone;

    /**
     * 对账托运方财务联系人名称
     */
    private String auditUser;
    private Long auditUserId;
    private Long successUserId;
    /**
     * 对账承运方财务联系人名称
     */
    private String successUser;
    /**
     * 对账承运方财务联系人电话
     */
    private String successPhone;

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

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

    /**
     * 已收款/元
     */
    private BigDecimal actualPrice;

    private BigDecimal deductPrice;


    /**
     * 对账清单凭证
     */
    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 Long createBy;
    private String createByName;
    /**
     * 客户联系人
     */
    private String contacts;
    /**
     * 客户联系人电话
     */
    private String phone;
    private String firmName;

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