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

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jianshui.common.annotation.Excel;
import com.jianshui.invoice.domain.Redinfodetail;
import lombok.Data;

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

/**
 * 开票信息对象 bill_info
 *
 * @author tianenhui
 * @date 2020-12-06
 */
@Data
public class HxRedInfoDetailsDTO {

    /**
     * 申请单号
     */
    @Excel(name = "申请单号")
    @JSONField(name = "billno")
    private String billno;


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

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

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

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

    /**
     * 含税标识
     */
    @JSONField(name = "withTaxFlag")
    private String withTaxFlag;

    /**
     * 商品单价，不含税
     */
    @Excel(name = "商品单价，不含税")
    @JSONField(name = "taxExcludedPrice")
    private BigDecimal price;

    /**
     * 商品单价，不含税
     */
    @Excel(name = "商品单价") // TODO 需要单独处理
    @JSONField(name = "price")
    private BigDecimal priceWithTax;

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

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

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

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

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

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

    /**
     * 优惠政策标识，0不使用，1使用
     */
    @Excel(name = "优惠政策标识，0不使用，1使用")
    @JSONField(name = "favouredPolicyFlag")
    private Integer yhzcbs;

    /**
     * 增值税特殊管理（优惠政策表示名称）
     */
    @Excel(name = "增值税特殊管理", readConverterExp = "优=惠政策表示名称")
    @JSONField(name = "favouredPolicyName")
    private String zzstsgl;

    /**
     * 零税率标识，1=免税,2=不征税,3=普通零税率
     */
    @Excel(name = "零税率标识，1=免税,2=不征税,3=普通零税率")
    @JSONField(name = "zeroRateFlag")
    private String lslbs;

    /**
     * 商品编码简称
     */
    @Excel(name = "商品编码简称")
    @JSONField(name = "goodsCodAbb")
    private String goodAbbreviation;

    /**
     * 发票行性质，0=正常行,1=折扣行,2=被折扣行
     */
    @Excel(name = "发票行性质，0=正常行,1=折扣行,2=被折扣行")
    @JSONField(name = "fphxz")
    private Integer fphxz;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "updatedTime")
    private Date updatedTime;

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