package com.sckw.payment.model.dto;

import com.fasterxml.jackson.annotation.JsonFormat;

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

/**
 * 对账-物流订单 承运方
 *
 * @author xucaiqin
 * @date 2023-07-10 18:11:24
 */
public class LedgerCarrierDto 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 BigDecimal totalPrice;
    /**
     * 不含税金额
     */
    private BigDecimal exTaxPrice;

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

    /**
     * 已收款/元
     */
    private BigDecimal actualPrice;
    /**
     * 对账审核人电话
     */
    private String auditPhone;

    /**
     * 对账审核人名称
     */
    private String auditUser;
    /**
     * 对账清单凭证
     */
    private String url;
    /**
     * 生成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime generateTime;
    /**
     * 预计收款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    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 firmName;

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

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getlLedgerNo() {
        return lLedgerNo;
    }

    public void setlLedgerNo(String lLedgerNo) {
        this.lLedgerNo = lLedgerNo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getEntId() {
        return entId;
    }

    public void setEntId(Long entId) {
        this.entId = entId;
    }

    public String getAuditPhone() {
        return auditPhone;
    }

    public void setAuditPhone(String auditPhone) {
        this.auditPhone = auditPhone;
    }

    public String getAuditUser() {
        return auditUser;
    }

    public void setAuditUser(String auditUser) {
        this.auditUser = auditUser;
    }

    public Long getCheckEntId() {
        return checkEntId;
    }

    public void setCheckEntId(Long checkEntId) {
        this.checkEntId = checkEntId;
    }

    public Long getCarrierEntId() {
        return carrierEntId;
    }

    public void setCarrierEntId(Long carrierEntId) {
        this.carrierEntId = carrierEntId;
    }

    public LocalDateTime getStartTime() {
        return startTime;
    }

    public void setStartTime(LocalDateTime startTime) {
        this.startTime = startTime;
    }

    public LocalDateTime getEndTime() {
        return endTime;
    }

    public void setEndTime(LocalDateTime endTime) {
        this.endTime = endTime;
    }

    public String getTaxRateLabel() {
        return taxRateLabel;
    }

    @Override
    public void setTaxRateLabel(String taxRateLabel) {
        this.taxRateLabel = taxRateLabel;
    }

    public Integer getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(Integer taxRate) {
        this.taxRate = taxRate;
    }

    @Override
    public String getTrading() {
        return trading;
    }

    @Override
    public void setTrading(String trading) {
        this.trading = trading;
    }

    public String getTradingLabel() {
        return tradingLabel;
    }

    @Override
    public void setTradingLabel(String tradingLabel) {
        this.tradingLabel = tradingLabel;
    }

    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getExTaxPrice() {
        return exTaxPrice;
    }

    public void setExTaxPrice(BigDecimal exTaxPrice) {
        this.exTaxPrice = exTaxPrice;
    }

    public BigDecimal getSettlePrice() {
        return settlePrice;
    }

    public void setSettlePrice(BigDecimal settlePrice) {
        this.settlePrice = settlePrice;
    }

    public BigDecimal getActualPrice() {
        return actualPrice;
    }

    public void setActualPrice(BigDecimal actualPrice) {
        this.actualPrice = actualPrice;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public LocalDateTime getGenerateTime() {
        return generateTime;
    }

    public void setGenerateTime(LocalDateTime generateTime) {
        this.generateTime = generateTime;
    }

    public LocalDateTime getReceiptTime() {
        return receiptTime;
    }

    public void setReceiptTime(LocalDateTime receiptTime) {
        this.receiptTime = receiptTime;
    }

    public String getRemark() {
        return remark;
    }

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

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStatusLabel() {
        return statusLabel;
    }

    @Override
    public void setStatusLabel(String statusLabel) {
        this.statusLabel = statusLabel;
    }

    public String getContacts() {
        return contacts;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getFirmName() {
        return firmName;
    }

    public void setFirmName(String firmName) {
        this.firmName = firmName;
    }

    public Integer getOrderCount() {
        return orderCount;
    }

    public void setOrderCount(Integer orderCount) {
        this.orderCount = orderCount;
    }
}