package com.jwipc.finance.dto;

import lombok.Data;

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

@Data
public class PayImportToOpenDTO {
    private DataHead data;
    @Data
    public static class DataHead {
        // 主表字段
        /**
         * 结算组织.编码
         */
        public String settleorg_number;

        /**
         * 单据编号
         */
        public String billno;

        /**
         * 单据类型.编码
         * ap_payapply_BT_S: 采购付款申请
         * ap_payapply_oth_BT_S: 其他付款申请
         */
        public String billtype_number;

        /**
         * 申请日期
         */
        public String applydate;

        /**
         * 申请组织.编码
         */
        public String applyorg_number;

        /**
         * 采购组织.编码
         */
        public String purorg_number;

        /**
         * 付款组织.编码
         */
        public String payorg_number;

        /**
         * 收款供应商.编码
         */
        public String m4p4_supplier_number;

        /**
         * 供应商开户行
         */
        public String m4p4_assacct;

        /**
         * 开户行账号
         */
        public String m4p4_deposit_bank;

        /**
         * 银行代码
         */
        public String m4p4_bank_code;

        /**
         * 付款地址
         */
        public String m4p4_pay_address;

        /**
         * 收款单位
         */
        public String m4p4_payee;

        /**
         * 业务类型
         */
        public String m4p4_business_type;

        /**
         * 提前支付
         */
        public String m4p4_advancepayment;

        /**
         * 超付款计划
         */
        public String m4p4_ex_pay_plan;

        /**
         * 付款用途
         */
        public String m4p4_pay_purpose;

        /**
         * 影像文件
         */
        public String m4p4_image_file;
        public String imageno;

        /**
         * 承兑期限
         */
        public String m4p4_accep_period;

        /**
         * 报关公司
         */
        public String m4p4_customs_broker;

        /**
         * 供应商退款
         */
        public String m4p4_supplier_refund;

        /**
         * 付款方式.编码
         */
        public String m4p4_pay_type_number;

        /**
         * 备注
         */
        public String m4p4_remarks;

        /**
         * 经办人.工号
         */
        public String m4p4_handler_number;
        public String creator_number;

        /**
         * 付款币种.货币代码
         */
        public String paycurrency_number;

        /**
         * 结算币.货币代码
         */
        public String settlecurrency_number;

        /**
         * 汇率表.编码
         */
        public String exratetable_number;

        /**
         * 汇率日期
         */
        public String exratedate;

        /**
         * 换算方式
         */
        public String quotation;

        /**
         * 超付款计划金额
         */
        public String m4p4_ex_pay_planamt;

        /**
         * 已付款金额
         */
        public String m4p4_amt_paid;

        /**
         * 申请金额
         */
        public String applyamount;

        /**
         * 折扣总金额
         */
        public String m4p4_discount_amt_sum;

        /**
         * 应付总金额
         */
        public String m4p4_pay_amt_amt;
        public String m4p4_ex_planamt;
        public String m4p4_intelbank_code;

        /**
         * 申请金额折结算币
         */
        public String appseleamount;

        /**
         * 交易类型.编码
         */
        public String m4p4_crosstrantype_number;

        /**
         * 核准金额
         */
        public String approvalamount;

        /**
         * 核准金额折结算币
         */
        public String aprseleamount;
        /**
         * 逾期款项
         */
        public String m4p4_overdue_payamt;
        /**
         * 到期款项
         */
        public String m4p4_due_payamt;
        /**
         * 应付账款余额
         */
        public String m4p4_ac_paybalance;
        /**
         * 暂估余额
         */
        public String m4p4_estimate_balance;
        /**
         * 代收
         */
        public String m4p4_collection;
        public String m4p4_agency_supplier_number;
        public String feepayer;
        public String m4p4_pay_behalf;
        public String m4p4_emergency_degree;
        public String m4p4_prepaid_method;

        private List<Entry> entry;
        private List<Entry2> m4p4_3ord_matc_entry;
        private List<Entry3> m4p4_srm_entry;
    }

    @Data
    public static class Entry {
// 明细字段
        /**
         * 明细.id
         */
        public String id;
        /**
         * 明细.摘要
         */
        public String m4p4_summary;

        /**
         * 明细.付款条件
         */
        public String m4p4_pay_term;

        /**
         * 明细.报关公司
         */
        public String m4p4_custom_broker;

        /**
         * 明细.已申请金额
         */
        public String m4p4_applied_amt;

        /**
         * 明细.折扣金额
         */
        public String m4p4_discount_amt;

        /**
         * 明细.本次申请金额
         */
        public String m4p4_applied_amt_e;

        /**
         * 明细.可申请金额
         */
        public String m4p4_applied_amt_a;

        /**
         * 明细.冲账金额
         */
        public String m4p4_offset_amt;

        /**
         * 明细.付款到期日
         */
        public String m4p4_pay_due_date;

        /**
         * 明细.期望付款日
         */
        public String e_expaydate;

        /**
         * 明细.采购组
         */
        public String m4p4_procure_group;
        /**
         * 明细.采购订单号
         */
        public String m4p4_purchase_order_num;
        /**
         * 明细.开票申请单号
         */
        public String m4p4_inv_apply;

        /**
         * 明细.对账单号
         */
        public String m4p4_statementnumber;

        /**
         * 明细.申请金额
         */
        public String e_applyamount;

        /**
         * 明细.含税金额
         */
        public String m4p4_taxandamt;

        /**
         * 明细.税率
         */
        public String m4p4_taxrate_number;

        /**
         * 明细.申请金额折结算币
         */
        public String e_appseleamount;

        /**
         * 付款类型.编码
         */
        public String e_paymenttype_number;

        /**
         * 明细.往来类型 [bd_supplier:供应商, bos_user:人员, bos_org:公司, bd_customer:客户]
         */
        public String e_asstacttype;

        /**
         * 往来户.编码
         */
        public String e_asstact_number;

        /**
         * 结算方式.编码
         */
        public String e_settlementtype_number;

        /**
         * 明细.实际应付金额
         */
        public String e_payamount;

        /**
         * 明细.核准金额
         */
        public String e_approvedamt;

        /**
         * 明细.核准金额折结算币
         */
        public String e_approvedseleamt;

        /**
         * 明细.对账影像
         */
        public String m4p4_reconcilia_image;

        /**
         * 明细.开票影像
         */
        public String m4p4_invoice_image;
        public String m4p4_supplier_number;
        public String m4p4_purchase_row;
    }
    @Data
    public static class Entry2 {
        /**
         * 三单匹配.是否齐全 [1:齐全, 0:不齐全]
         */
        public String m4p4_complete;
        public String id;

        /**
         * 三单匹配.境外附件-请款时 确认附件类型清单
         */
        public String m4p4_attachment_type;
    }
    @Data
    public static class Entry3 {
        public String m4p4_approved_amount;
        public String m4p4_account_number;
        public String m4p4_purchase_num;
        public String m4p4_ex_payment_date;
        public String m4p4_settlement_modes_number;
        public String m4p4_srm_entry_id;

        public String seq;
        public String e_paymenttype_number;
        public String e_asstact_number;
        public String e_applyamount;
        public String e_asstacttype;
    }
}
