package com.jwipc.finance.dto;


import com.alibaba.fastjson2.annotation.JSONField;
import com.jwipc.api.dto.SapBaseParamDTO;
import lombok.Data;

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

/**
 * @author shenyang.ou
 * @date 2024/3/21 13:09
 * @desc
 */
@Data
public class AccountStatementToSapDTO extends SapBaseParamDTO {

    @Data
    public static class ItHead {
        @JSONField(name="item")
        public List<Head> item;
    }

    @Data
    public static class ItItem {
        @JSONField(name="item")
        public List<Item> item;
    }

    @Data
    public static class Head {

        /**
         * 对账单号
         */
        @JSONField(name="ZZJSD")
        public String ZZJSD;

        /**
         * 对账单状态
         */
        @JSONField(name="ZSTATE")
        public Integer ZSTATE;

        /**
         * 删除标记(X:表示已删除；空：表示未删除)
         */
        @JSONField(name="ZDEL")
        public String ZDEL;

        /**
         * 复核人名称(财务确认人员（对账）)
         */
        @JSONField(name="FNAME")
        public String FNAME;

        /**
         * 用户名
         */
        @JSONField(name="UNAME")
        public String UNAME;

        /**
         * 上次更改日期(当前日期YYYYMMDD)
         */
        @JSONField(name="AEDAT")
        public String AEDAT;

        /**
         * 供应商编码
         */
        @JSONField(name="LIFNR")
        public String LIFNR;

        /**
         * 公司代码
         */
        @JSONField(name="BUKRS")
        public String BUKRS;

        /**
         * 对账期间从
         */
        @JSONField(name="ZDZQJC")
        public String ZDZQJC;

        /**
         * 对账期间到
         */
        @JSONField(name="ZDZQJD")
        public String ZDZQJD;

        /**
         * 含税金额合计
         */
        @JSONField(name="ZHSJE")
        public String ZHSJE;

        /**
         * 未税金额合计
         */
        @JSONField(name="ZHJJE")
        public String ZHJJE;

        /**
         * 税额合计
         */
        @JSONField(name="ZHJSE")
        public String ZHJSE;

        /**
         * 付款条件代码
         */
        @JSONField(name="ZTERM")
        public String ZTERM;

        /**
         * 发票号
         */
        @JSONField(name="ZFPH")
        public String ZFPH;

        /**
         * 税额差 用发票减系统，等于差值
         */
        @JSONField(name="ZSEC")
        public String ZSEC;

        /**
         * 金额差 用发票含税金额减系统，等于差值
         */
        @JSONField(name="ZJEC")
        public String ZJEC;

        /**
         * 财务复核日期
         */
        @JSONField(name="ZFHDATE")
        public String ZFHDATE;

        /**
         * 对账单年
         */
        @JSONField(name="ZDZN")
        public String ZDZN;

        /**
         * 对账单月
         */
        @JSONField(name="ZDZY")
        public String ZDZY;

        /**
         * 货币码
         */
        @JSONField(name="WAERS")
        public String WAERS;

        /**
         * 对账事由
         */
        @JSONField(name="ZZJSY")
        public String ZZJSY;

        /**
         * MIRO过账日期
         */
        @JSONField(name="ZBUDAT")
        public String ZBUDAT;

        /**
         * 发票校验人
         */
        @JSONField(name="JNAME")
        public String JNAME;


        /**
         * 推送类型(A:-同步对账单；B-发票校验)
         */
        @JSONField(name="ZTYPE")
        public String ZTYPE;
    }

    @Data
    public static class Item {

        /**
         * 对账单号
         */
        @JSONField(name="ZZJSD")
        public String ZZJSD;

        /**
         * 对账单行号
         */
        @JSONField(name="ZEBELP")
        public String ZEBELP;

        /**
         * 采购凭证编号
         */
        @JSONField(name="EBELN")
        public String EBELN;

        /**
         * 采购凭证的项目编号
         */
        @JSONField(name="EBELP")
        public String EBELP;

        /**
         * 物料编号
         */
        @JSONField(name="MATNR")
        public String MATNR;

        /**
         * 采购订单计量单位
         */
        @JSONField(name="MEINS")
        public String MEINS;

        /**
         * 移动类型
         */
        @JSONField(name="BWART")
        private String BWART;

        /**
         * 特殊库存标识
         */
        @JSONField(name="SOBKZ")
        private String SOBKZ;

        /**
         * 物料凭证编号
         */
        @JSONField(name="BELNR")
        private String BELNR;

        /**
         * 物料凭证中的项目
         */
        @JSONField(name="BUZEI")
        private String BUZEI;

        /**
         * 物料凭证的年份
         */
        @JSONField(name="GJAHR")
        private String GJAHR;

        /**
         * 参考凭证年度
         */
        @JSONField(name="LFGJA")
        private String LFGJA;

        /**
         * 参考凭证的凭证号
         */
        @JSONField(name="LFBNR")
        private String LFBNR;

        /**
         * 参考凭证项目
         */
        @JSONField(name="LFPOS")
        private String LFPOS;

        /**
         * 税额
         */
        @JSONField(name="ZSUIE")
        public String ZSUIE;

        /**
         * 其他折扣
         */
        @JSONField(name="ZSPJE")
        public String ZSPJE;

        /**
         * 本次结算数量
         */
        @JSONField(name="ZMENGE")
        private String ZMENGE;

        /**
         * 含税金额
         */
        @JSONField(name="KWERT")
        private String KWERT;

        /**
         * 结算金额
         */
        @JSONField(name="ZJSJE")
        private String ZJSJE;
    }

    @JSONField(name="IT_HEAD")
    private ItHead IT_HEAD;
    @JSONField(name="IT_ITEM")
    private ItItem IT_ITEM;
}
