package com.jianshui.invoice.domain.dto.api.aisino.console;

import cn.hutool.core.annotation.Alias;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 总部控制台-开票-入参总表
 *
 * @author dxk
 * @date 2022年06月27日 17:30
 */
@Data
public class AisinoConsoleInvoiceAddDTO {

    /**
     * 0 专票 2 普票
     */
    private Integer invoiceType;

    /**
     * 购方名称
     */
    @NotEmpty
    @Alias("buyerName")
    private String customerName;


    /**
     * 购方税号
     */
    @Alias("buyerTaxnum")
    private String customerTaxNr;

    /**
     * 购方地址电话
     */
    private String customerAddressTel;

    /**
     * 购方银行账户
     */
    private String customerBankAccountNr;

    /**
     * 备注
     */
    @Alias("message")
    private String memo;

    /**
     * 付款人
     */
    @Alias("payee")
    private String payee;

    /**
     * 审核人
     */
    @Alias("checker")
    private String checker;

    /**
     * 开票人
     */
    @NotEmpty
    @Alias("clerk")
    private String issuer;

    /**
     * 销方银行账户
     */
    private String sellerBankAccountNr;

    /**
     * 销方地址电话
     */
    private String sellerAddressTel;

    /**
     * 是否是清单:当发票明细行超出 8 行时，即使 listed 设置为 false，也自动开具清单（纸质发票最多打
     * 印 8 行明细）
     */
    private Boolean listed;

    /**
     * 销售单号
     */
    @Alias("orderno")
    private String documentNr;

    /**
     * 1 标识校验，0 标识开票
     */
    @NotNull
    private Integer CheckEWM;

    /**
     * 税额
     */
    private Double tax;

    /**
     * 数量
     */
    private Double quantity;


    @Alias("jdcbz")
    private String JDCBZ;

    // 机动车发票开具新增字段start

    /**
     * 机动车-购方名称
     */
//    @NotEmpty
    @Alias("buyerName")
    private String infoClientName;

    /** 身份证号码/组织机 构代码*/
    @Alias("bsrysfzjhm")
    private String IDCard;

    /** 车辆类型*/
    private String vehicleKind;
    /** 厂牌型号*/
    private String brandModel;
    /** 产地*/
    private String originPlace;
    /** 合格证号*/
    private String qualityCertificate;
    /** 进口证明书号*/
    private String impCertificateNo;
    /** 商检单号*/
    private String commInspectionNo;
    /** 车辆识别代号/车架号码*/
    private String vehicleNo;
    /** 发动机号*/
    private String enginNo;
    /** 生产企业名称*/
    @Alias("manufacturerName")
    private String ManufacturerName;
    /** 价税合计*/
    private String amountTaxTotal;
    /** 销货单位 电话*/
    @Alias("salephone")
    private String sellerPhone;
    /** 销货单位 账号*/
    @Alias("saleaccount")
    private String sellerAccount;
    /** 销货单位 地址*/
    @Alias("saleaddress")
    private String sellerAddress;
    /** 销货单位 开户银行*/
    @Alias("saleaccount")
    private String sellerBank;
    /** 税率*/
    @Alias("taxrate")
    private String infoTaxRate;

    /** 限乘人数*/
    private String peopleNo;
    /** 备注*/
    @Alias("message")
    private String infoNotes;
    /** 单据编号*/
//    private String documentNr;
    /** 开票人*/
    @Alias("clerk")
    private String infoInvoicer;
    /** 机动车发票票面版式标志*/
    @Alias("infoClientAddressPhone")
    private String InfoClientAddressPhone;
    /** 吨位*/
    @Alias("unit")
    private String tonnage;
    /** 机动车蓝字发票开具时间*/
    @Alias("invoicedate")
    private String JDCBlueInvKJSJ;
    /** 填开、校验、空白作废标志*/
//    private String CheckEWM;

    // end



    /**
     * 发票明细
     */
    List<AisinoConsoleInvoiceAddDetailDTO> invoiceItems;


}
