package com.jkcredit.invoice.model.entity.invoice;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.jkcredit.invoice.model.vo.CardAndTradeVo;

import java.util.List;

/**
 * 自有车发票
 * @author mumuxigua
 */
public class SelfCarInvoice {
    private Long id;

    /**
     * 公司编码
     */
    private String companyNum;

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

    /**
     * 公司名称
     */
    private String companyName;
    /**
     * etc卡号
     */
    @Excel(name = "etc卡号")
    private String cardId;
    /**
     * 发票号码
     */
    private String invoiceNum;
    /**
     * 发票代码
     */
    private String invoiceCode;
    /**
     * 开票时间
     */
    private String invoiceMakeTime;

    private String invoiceMakeStart;

    private String invoiceMakeEnd;
    /**
     * 发票url
     */
    private String invoiceUrl;
    /**
     * 发票板式文件url
     */
    private String invoiceHtmlUrl;
    /**
     * 入口收费站
     */
    private String enStation;
    /**
     * 出口收费站
     */
    private String exStation;
    /**
     * 交易时间
     */
    private String exTime;
    /**
     * 交易金额
     */
    private long fee;
    /**
     * 税额（可抵扣金额）
     */
    private long totalTaxAmount;
    /**
     * 车牌号
     */
    private String plateNum;
    /**
     * 车型 见附录8.3
     */
    private Integer vehicleType;
    /**
     * 销方名称
     */
    private String sellerName;
    /**
     * 销方税号
     */
    private String sellerTaxpayerCode;

    /**
     * 价税合计
     */
    private long totalAmount;
    /**
     * 税率
     */
    private double taxRate;
    /**
     * 发票种类
     */
    private String invoiceType;
    /**
     * 金额
     */
    private long amount;
    /**
     * 交易ID
     */
    @Excel(name = "交易id")
    private String tradeId;
    private List<CardAndTradeVo> cardAndTradeVos;

    private List<String> cardIds;

    private List<String> tradeIds;
    /**
     * 购方名称
     */
    private String buyerName;
    /**
     * 购方税号
     */
    private String buyerTaxpayerCode;

    /**
     * 交易状态
     */
    private String tradeStatus;

    /**
     * 计费时间
     */
    private String calculateTime;

    /**
     * 实际计费时间
     */
    private String aclCalculateTime;

    public Long getId() {
        return id;
    }

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

    public String getCardId() {
        return cardId;
    }

    public void setCardId(String cardId) {
        this.cardId = cardId;
    }

    public String getInvoiceNum() {
        return invoiceNum;
    }

    public void setInvoiceNum(String invoiceNum) {
        this.invoiceNum = invoiceNum;
    }

    public String getInvoiceCode() {
        return invoiceCode;
    }

    public void setInvoiceCode(String invoiceCode) {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceMakeTime() {
        return invoiceMakeTime;
    }

    public void setInvoiceMakeTime(String invoiceMakeTime) {
        this.invoiceMakeTime = invoiceMakeTime;
    }

    public String getInvoiceUrl() {
        return invoiceUrl;
    }

    public void setInvoiceUrl(String invoiceUrl) {
        this.invoiceUrl = invoiceUrl;
    }

    public String getInvoiceHtmlUrl() {
        return invoiceHtmlUrl;
    }

    public void setInvoiceHtmlUrl(String invoiceHtmlUrl) {
        this.invoiceHtmlUrl = invoiceHtmlUrl;
    }

    public String getEnStation() {
        return enStation;
    }

    public void setEnStation(String enStation) {
        this.enStation = enStation;
    }

    public String getExStation() {
        return exStation;
    }

    public void setExStation(String exStation) {
        this.exStation = exStation;
    }

    public String getExTime() {
        return exTime;
    }

    public void setExTime(String exTime) {
        this.exTime = exTime;
    }

    public long getFee() {
        return fee;
    }

    public void setFee(long fee) {
        this.fee = fee;
    }

    public long getTotalTaxAmount() {
        return totalTaxAmount;
    }

    public void setTotalTaxAmount(long totalTaxAmount) {
        this.totalTaxAmount = totalTaxAmount;
    }

    public String getPlateNum() {
        return plateNum;
    }

    public void setPlateNum(String plateNum) {
        this.plateNum = plateNum;
    }

    public Integer getVehicleType() {
        return vehicleType;
    }

    public void setVehicleType(Integer vehicleType) {
        this.vehicleType = vehicleType;
    }

    public String getSellerName() {
        return sellerName;
    }

    public void setSellerName(String sellerName) {
        this.sellerName = sellerName;
    }

    public String getSellerTaxpayerCode() {
        return sellerTaxpayerCode;
    }

    public void setSellerTaxpayerCode(String sellerTaxpayerCode) {
        this.sellerTaxpayerCode = sellerTaxpayerCode;
    }

    public long getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(long totalAmount) {
        this.totalAmount = totalAmount;
    }

    public double getTaxRate() {
        return taxRate;
    }

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

    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public long getAmount() {
        return amount;
    }

    public void setAmount(long amount) {
        this.amount = amount;
    }

    public String getTradeId() {
        return tradeId;
    }

    public void setTradeId(String tradeId) {
        this.tradeId = tradeId;
    }

    public String getBuyerName() {
        return buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getBuyerTaxpayerCode() {
        return buyerTaxpayerCode;
    }

    public void setBuyerTaxpayerCode(String buyerTaxpayerCode) {
        this.buyerTaxpayerCode = buyerTaxpayerCode;
    }

    public String getCompanyNum() {
        return companyNum;
    }

    public void setCompanyNum(String companyNum) {
        this.companyNum = companyNum;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getInvoiceMakeStart() {
        return invoiceMakeStart;
    }

    public void setInvoiceMakeStart(String invoiceMakeStart) {
        this.invoiceMakeStart = invoiceMakeStart;
    }

    public String getInvoiceMakeEnd() {
        return invoiceMakeEnd;
    }

    public void setInvoiceMakeEnd(String invoiceMakeEnd) {
        this.invoiceMakeEnd = invoiceMakeEnd;
    }

    public String getTradeStatus() {
        return tradeStatus;
    }

    public void setTradeStatus(String tradeStatus) {
        this.tradeStatus = tradeStatus;
    }

    public String getCalculateTime() {
        return calculateTime;
    }

    public void setCalculateTime(String calculateTime) {
        this.calculateTime = calculateTime;
    }

    public List<CardAndTradeVo> getCardAndTradeVos() {
        return cardAndTradeVos;
    }

    public void setCardAndTradeVos(List<CardAndTradeVo> cardAndTradeVos) {
        this.cardAndTradeVos = cardAndTradeVos;
    }

    public List<String> getCardIds() {
        return cardIds;
    }

    public void setCardIds(List<String> cardIds) {
        this.cardIds = cardIds;
    }

    public List<String> getTradeIds() {
        return tradeIds;
    }

    public void setTradeIds(List<String> tradeIds) {
        this.tradeIds = tradeIds;
    }

    public String getAclCalculateTime() {
        return aclCalculateTime;
    }

    public void setAclCalculateTime(String aclCalculateTime) {
        this.aclCalculateTime = aclCalculateTime;
    }

    @Override
    public String toString() {
        return "SelfCarInvoice{" +
                "id=" + id +
                ", companyNum='" + companyNum + '\'' +
                ", customerName='" + customerName + '\'' +
                ", companyName='" + companyName + '\'' +
                ", cardId='" + cardId + '\'' +
                ", invoiceNum='" + invoiceNum + '\'' +
                ", invoiceCode='" + invoiceCode + '\'' +
                ", invoiceMakeTime='" + invoiceMakeTime + '\'' +
                ", invoiceMakeStart='" + invoiceMakeStart + '\'' +
                ", invoiceMakeEnd='" + invoiceMakeEnd + '\'' +
                ", invoiceUrl='" + invoiceUrl + '\'' +
                ", invoiceHtmlUrl='" + invoiceHtmlUrl + '\'' +
                ", enStation='" + enStation + '\'' +
                ", exStation='" + exStation + '\'' +
                ", exTime='" + exTime + '\'' +
                ", fee=" + fee +
                ", totalTaxAmount=" + totalTaxAmount +
                ", plateNum='" + plateNum + '\'' +
                ", vehicleType=" + vehicleType +
                ", sellerName='" + sellerName + '\'' +
                ", sellerTaxpayerCode='" + sellerTaxpayerCode + '\'' +
                ", totalAmount=" + totalAmount +
                ", taxRate=" + taxRate +
                ", invoiceType='" + invoiceType + '\'' +
                ", amount=" + amount +
                ", tradeId='" + tradeId + '\'' +
                ", buyerName='" + buyerName + '\'' +
                ", buyerTaxpayerCode='" + buyerTaxpayerCode + '\'' +
                ", aclCalculateTime='" + aclCalculateTime + '\'' +
                '}';
    }
}
