package com.jianshui.income.domain.vo.render;

import com.alibaba.fastjson.annotation.JSONField;
import com.jianshui.income.domain.entity.InvoiceCheckDetail;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @Description 远得查验返回结果
 * @Author 巩权林
 * @Date 2022/11/21 00:03
 * TODO HCBZ红冲标志，商品行，其他类型发票还未整理
 **/
@Data
public class GetInvoiceVO {
    @JSONField(name = "id")
    private int id;
    // 查验人的companyid
    @JSONField(name = "company_id")
    private String company_id;
    // 批次号

    @JSONField(name = "pch")
    private String pch;
    // 查验结果
    @JSONField(name = "cyjg")
    private String cyjg;
    // 查验结果信息   查询结果的信息
    @JSONField(name = "cyjgxx")
    private String cyjgxx;
    // 发票种类
    @JSONField(name = "Fplx") // 单独处理
    private String fpzl;
    // 发票代码
    @JSONField(name = "Fpdm")
    private String fpdm;
    // 发票号码
    @JSONField(name = "Fphm")
    private String fphm;
    // 查验次数
    @JSONField(name = "cycs")
    private String cycs;
    // 销售方名称
    @JSONField(name = "Xfmc")
    private String xhfmc;
    // 销售方识别号
    @JSONField(name = "Xfsh")
    private String xhfsbh;
    // 销售方地址电
    @JSONField(name = "Xfdzdh")
    private String xhfdzdh;
    // 销售方地址 2022.09.16 浪潮要求新增需求
    @JSONField(name = "Xfyhzh")
    private String xhfdz;
    // 销售方电话 2022.09.16 浪潮要求新增需求
    @JSONField(name = "xhfdh")
    private String xhfdh;
    // 销售方开户行
    @JSONField(name = "xhfyhzh")
    private String xhfyhzh;
    // 购买方识别号
    @JSONField(name = "Gfsh")
    private String gmfsbh;
    // 购买方名称
    @JSONField(name = "Gfmc")
    private String gmfmc;
    // 购方地址、电话
    @JSONField(name = "Gfdzdh")
    private String gmfdzdh;
    // 购买方开户行及账号
    @JSONField(name = "Gfyhzh")
    private String gmfyhzh;
    // 开票日期   格式 YYYYMMDD
    @JSONField(name = "Kprq")
    private String kprq;
    // 发票金额   发票种类为 01，02，03，14 时不可为空，填写发票不含税金额
    @JSONField(name = "Je")
    private String fpje;
    // 发票税额
    @JSONField(name = "Se")
    private String fpse;
    // 价税合计
    @JSONField(name = "Jshj")
    private String jshj;
    // 备注
    @JSONField(name = "Bz")
    private String bz;
    // 机器编号
    @JSONField(name = "Jqbm")
    private String jqbh;
    // 开票人
    @JSONField(name = "kpr")
    private String kpr;
    // 收款人
    @JSONField(name = "skr")
    private String skr;
    // 复核人
    @JSONField(name = "fhr")
    private String fhr;
    // 校验码
    @JSONField(name = "JYM")
    private String jym;
    // 作废标志  Y:已作废 H:已冲红 N：未作废
    @JSONField(name = "ZFBZ")
    private String zfbz;
    @JSONField(name = "HCBZ")
    private String hcbz;
    // 作废标志  Y:已作废 H:已冲红 N：未作废
    @JSONField(name = "status")
    private String status;
    // 创建时间
    @JSONField(name = "created_at")
    private Date created_at;
    //当前税款所属期
    @JSONField(name = "dqskssq")
    private String dqskssq;
    //当前税款所属期勾选截止日
    @JSONField(name = "gxjzr")
    private String gxjzr;
    //当前税款所属期可勾选发票开票日期起
    @JSONField(name = "gxrqq")
    private String gxrqq;
    //当前税款所属期可勾选发票开票日期止
    @JSONField(name = "gxrqz")
    private String gxrqz;
    //发票状态0-正常1-失控2-作废3-红冲4-异常
    @JSONField(name = "fpzt")
    private String fpzt;
    //认证状态0-未认证 1-已认证
    @JSONField(name = "rzzt")
    private String rzzt;
    //认证日期
    @JSONField(name = "rzrq")
    private String rzrq;
    //认证归属期
    @JSONField(name = "rzsq")
    private String rzsq;
    //认证类型0-未抵扣1-抵扣2-退税3-代理退税4-不抵扣
    @JSONField(name = "rzlx")
    private String rzlx;
    //信息来源0扫描认证1系统推送2出口转内销
    @JSONField(name = "xxly")
    private String xxly;
    //有效税额当RZLX=1(抵扣)、4(不抵扣)、时不为空
    @JSONField(name = "yxse")
    private String yxse;
    //逾期可勾选标志逾期可勾选标志0默认值1 可勾选逾期
    @JSONField(name = "yqkgxbz")
    private String yqkgxbz;
    //管理状态0 正常1 异常
    @JSONField(name = "glzt")
    private String glzt;
    //认证处理状态0未认证1待认证2系统认证中3第三方认证中4认证成功5认证失败
    @JSONField(name = "rzclzt")
    private String rzclzt;
    //失败原因1 成功2 无此票3 该票异常无法认证4 该票已认证5 该票已经逾期无法认证6 该票已经申请认证7 申请认证月份不匹配8 其他异常
    // 9 该票未到期10 红票无法认证11 认证类型不匹配12 信用等级异常13 token 超过五天未获取14 该票不可勾选为逾期15 有效税额异常（有效税额大 于实际税额）
    //16 当期已锁定17 逾期不可勾选18 发票未勾选（确认）19 取消操作不匹配98 管理状态异常
    @JSONField(name = "sbyy")
    private String sbyy;

    @JSONField(name = "Sph")
    private List<GetInvoiceSphVO> Sph;

}
