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

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.jianshui.common.annotation.Excel;
import lombok.Data;

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

/**
 * @Description 航信济南返回报文
 * @Author 巩权林
 * @Date 2022/3/27 15:18
 **/
@Data
public class AisinoJnInvoiceDetailResponse {

    /** 主键ID */
    @Excel(name = "id")
    @JSONField(serialize = false)
    @JsonIgnore
    private Long id;

    /** 发票主键 */
    @Excel(name = "发票主键")
    @JSONField(serialize = false)
    @JsonIgnore
    private Long invoiceId;

    /** 顺序 */
    @Excel(name = "顺序")
    @JSONField(serialize = false)
    @JsonIgnore
    private Long index;

    /** 商品名称 */
    @Excel(name = "商品名称")
    // @JSONField(name = "itemName")
    @JsonProperty("itemName")
    private String goodName;

    /** 商品数量 */
    @Excel(name = "商品数量")
    // @JSONField(name = "itemNum")
    @JsonProperty("itemNum")
    private BigDecimal num;

    /** 商品单价 */
    @Excel(name = "商品单价")
    // @JSONField(name = "itemPrice")
    @JsonProperty("itemPrice")
    private BigDecimal price;

    /** 含税标志 */
    @Excel(name = "含税标志")
    // @JSONField(name = "isIncludeTax") // TODO 需要转成true false
    @JsonProperty("isIncludeTax") // TODO 需要转成true fal")
    private String hsbz;

    /** 税率 */
    @Excel(name = "税率")
    // @JSONField(name = "itemTaxRate")
    @JsonProperty("itemTaxRate")
    private BigDecimal taxrate;

    /** 规格型号 */
    @Excel(name = "规格型号")
    // @JSONField(name = "itemSpec")
    @JsonProperty("itemSpec")
    private String spec;

    /** 单位 */
    @Excel(name = "单位")
    // @JSONField(name = "itemUnit")
    @JsonProperty("itemUnit")
    private String unit;

    /** 税收分类编码 */
    @Excel(name = "税收分类编码")
    // @JSONField(name = "itemCode")
    @JsonProperty("itemCode")
    private String spbm;

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

    /** 自行编码 */
    @Excel(name = "自行编码")
    // @JSONField(name = "itemSelfCode")
    @JsonProperty("itemSelfCode")
    private String zsbm;

    /** 发票行性质 */
    @Excel(name = "发票行性质")
    // @JSONField(name = "itemSelfCode")
    @JsonProperty("invoiceLineProperty")
    private Integer fphxz;

    /** 优惠政策标识 */
    @Excel(name = "优惠政策标识")
    // @JSONField(name = "favouredPolicyFlag")
    @JsonProperty("favouredPolicyFlag")
    private Integer yhzcbs;

    /** 增值税特殊管理 */
    @Excel(name = "增值税特殊管理")
    // @JSONField(name = "favouredPolicyName")
    @JsonProperty("favouredPolicyName")
    private String zzstsgl;

    /** 零税率标识 */
    @Excel(name = "零税率标识")
    // @JSONField(name = "zeroRateFlag")
    @JsonProperty("zeroRateFlag")
    private String lslbs;

    /** 扣除额 */
    @Excel(name = "扣除额")
    // @JSONField(name = "deduction")
    @JsonProperty("deduction")
    private BigDecimal kce;

    /** 不含税金额 */
    @Excel(name = "不含税金额")
    // @JSONField(name = "itemSumAmount") // TODO 需要处理
    @JsonProperty("itemSumAmount") // TODO 需要")
    private BigDecimal taxfreeamt;

    /** 税额 */
    @Excel(name = "税额")
    // @JSONField(name = "itemTaxAmount")
    @JsonProperty("itemTaxAmount")
    private BigDecimal tax;

    /** 含税金额 */
    @Excel(name = "含税金额")
    // @JSONField(name = "itemSumAmount")  // TODO 需要处理
    // @JsonProperty("c_bhsje")  // TODO 需要")
    @JsonIgnore
    private BigDecimal taxamt;

    /** 特殊票种 */
    @Excel(name = "特殊票种")
    @JSONField(serialize = false)
    @JsonIgnore
    private String tspz;
}
