package com.jianshui.invoice.domain.vo;

import cn.hutool.core.annotation.Alias;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jianshui.common.annotation.Excel;
import lombok.Data;

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

/**
 * 红字信息表详情对象 redinfodetail
 *
 * @author Gong Quanlin
 * @date 2022-03-29
 */
@Data
public class RedinfodetailAisinoVO {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long id;

    /**
     * redinfo表的id
     */
    @Alias("RedinfoId")
    @Excel(name = "redinfo表的id")
    private Long redinfoId;

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

    /**
     * $column.columnComment
     */
    @Alias("Index")
    @Excel(name = "序号", readConverterExp = "$column.readConverterExp()")
    private Integer index;


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

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

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

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

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

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

    /**
     * 税率
     */
    @Alias("GoodsTaxRate")
    @Excel(name = "税率")
    private BigDecimal taxrate;

    /**
     * 税额
     */
    @Alias("GoodsSE")
    @Excel(name = "税额")
    private BigDecimal tax;

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

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

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

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

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

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

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

    /**
     * 发票行性质
     */
    @Alias("Fphxz")
    @Excel(name = "发票行性质")
    private Integer fphxz;

    /**
     * 扣除额
     */
    @Alias("Kce")
    @Excel(name = "扣除额")
    private BigDecimal kce;

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


    // 含税标志
    @TableField(exist = false)
    @JsonIgnore
    @Alias("Hsbz")
    private String withTaxFlag;

    // 含税单价
    @Alias("PriceWithTax")
    @TableField(exist = false)
    @JsonIgnore
    private String priceWithTax;

    @TableField(exist = false)
    @JsonIgnore
    private String searchValue;

    @TableField(exist = false)
    @JsonIgnore
    private String remark;

    @TableField(exist = false)
    @JsonIgnore
    private Map<String, Object> params;


}
