package com.jianshui.invoice.domain.dto.adapter.response.nuonuo2;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jianshui.common.annotation.Excel;
import com.jianshui.invoice.domain.dto.adapter.response.RedInfoDTO;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description
 * @Author 巩权林
 * @Date 2022/4/17 22:30
 **/
@Data
public class RedinfoDTO2Nuonuo2 {

    /**
     * 销方id
     */
    @JSONField(serialize = false)
    private Long companyId;

    /**
     * 本系统订单号
     */
    @JSONField(serialize = false)
    private String systemOrderno;

    /**
     * 客户系统订单号
     */
    @JSONField(serialize = false)
    private String outTradeOrderno;

    /**
     * 流水号
     */
    @JSONField(serialize = false)
    private String fpqqlsh;

    /**
     * bill_info表的bill_id
     */
    @JSONField(serialize = false)
    private Long billInfoId;

    /**
     * 信息表编号
     */
    @JSONField(name = "billInfoNo")
    private String redInfoNo;

    /**
     * 信息表状态
     */
    @JSONField(name = "billStatus")
    private String redInfoStatus;

    /**
     * 信息表状态描述
     */
    // billMessage
    @JSONField(name = "billMessage")
    private String redInfoMessage;

    /**
     * 信息表类型
     */
    // billType
    @JSONField(name = "billType")
    private String redInfoType;

    /**
     * 原发票代码
     */
    // oriInvoiceCode
    @JSONField(name = "oriInvoiceCode")
    private String originFpdm;

    /**
     * 信息表特殊标识
     */
    @JSONField(serialize = false)
    private String redInfoSpecFlag;

    /**
     * 原发票号码
     */
    // oriInvoiceNumber
    @JSONField(name = "oriInvoiceNumber")
    private String originFphm;

    /**
     * 税种类别
     */
    // taxType
    @JSONField(name = "taxType")
    private String taxType;

    /**
     * 原发票开票日期
     */
    @JSONField(serialize = false)
    private String originKprq;

    /**
     * 多税率标志
     */
    // multTaxRate
    @JSONField(name = "multTaxRate")
    private String multTaxRate;

    /**
     * 填开日期
     */
    // billTime
    @JSONField(name = "billTime")
    private String billInputTime;

    /**
     * 购方名称
     */
    // buyerName
    @JSONField(name = "buyerName")
    private String buyerName;

    /**
     * 购方税号
     */
    // buyerTaxNo
    @JSONField(name = "buyerTaxNo")
    private String buyerTaxnum;

    /**
     * 销方名称
     */
    // sellerName
    @JSONField(name = "sellerName")
    private String sellerName;

    /**
     * 销方税号
     */
    // sellerTaxNo
    @JSONField(name = "sellerTaxNo")
    private String sellerTaxnum;

    /**
     * 不含税金额
     */
    @JSONField(serialize = false)
    private BigDecimal taxfreeamt;

    /**
     * 税额
     */
    // taxAmount
    @JSONField(name = "taxAmount")
    private BigDecimal tax;

    /**
     * 含税金额
     */
    // taxExcludedAmount
    @JSONField(name = "taxExcludedAmount")
    private BigDecimal taxamt;

    /**
     * 申请说明
     */
    // applyRemark
    @JSONField(name = "applyRemark")
    private String applyRemark;

    /**
     * 申请表pdf 地址
     */
    // pdfUrl
    @JSONField(name = "pdfUrl")
    private String pdfUrl;

    /**
     * 商品编码版本号
     */
    // codeVersion
    @JSONField(name = "codeVersion")
    private String bmbbh;

    /**
     * 营业税标志
     */
    // businessTaxCode
    @JSONField(name = "businessTaxCode")
    private String businessTaxCode;

    /**
     * 申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;

    /**
     * 发票种类 invoice_type（ p电子增值税普通发票 c增值税普通发票 s 增值税专用发票 e 收购发票 f 收购发票 r增值税普通发票）
     */
    @JSONField(serialize = false)
    private String invoiceType;

    /**
     * 分机号
     */
    @JSONField(serialize = false)
    private String fjh;

    /**
     * 终端号
     */
    @JSONField(serialize = false)
    private String terminalNumber;

    /**
     * 设备编号
     */
    @JSONField(serialize = false)
    private String jspbh;

    /**
     * 所属月份
     */
    @JSONField(serialize = false)
    private String ssyf;

    /**
     * 税率
     */
    @JSONField(serialize = false)
    private BigDecimal taxrate;

    /**
     * 申请选择
     */
    @JSONField(serialize = false)
    private String sqxz;

    /**
     * 经办人
     */
    @JSONField(serialize = false)
    private String jbr;

    /**
     * 申请方税号
     */
    @JSONField(serialize = false)
    private String reqnsrsbh;

    /**
     * 成品油标志
     */
    @JSONField(serialize = false)
    private String productOilFlag;

    /**
     * 服务公司
     */
    @JSONField(serialize = false)
    private String serviceSupplierKey;

    /**
     * 申请类别
     */
    @JSONField(serialize = false)
    private Integer sqlb; // 申请类别,0为销方申请,1为购方申请

    private List<RedinfoDetailDTO2Nuonuo2> details;
}
