package com.jwipc.contract.model.po;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFilter;
import lombok.Data;

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

/**
 * 功能描述:
 *
 * @Author: zx
 * @Date: 2024/3/29 0029 13:39
 */
@Data
public class ContractPayOA {

    Head head ;

    Item item;

//    @Data
    public static class Head{

        @JSONField(name="ProcessId")
        public String ProcessId;

        /**
         * SRM业务类型
         */
        @JSONField(name="SRMToS")
        public String SRMToS;

        /**
         * 申请人
         */
        @JSONField(name="Applicant")
        public String Applicant;

        /**
         * 申请日期
         */
        @JSONField(name="ApplyDate")
        public String ApplyDate;

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

        /**
         * 公司(显示值)
         */
        @JSONField(name="CompanyName")
        public String CompanyName;

        /**
         * 支付方式
         */
        @JSONField(name="PayMethod")
        public String PayMethod;

        /**
         * 收款人/单位名称(显示值)
          */
        @JSONField(name="PayeeName")
        public String PayeeName;

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

        /**
         * 银行行号（表单增加字段）
         */
        @JSONField(name="BankNo")
        public String BankNo;

        /**
         * 银行国际代码
         */
        @JSONField(name="SwiftCode")
        public String SwiftCode;

        /**
         * 币别
         */
        @JSONField(name="Currency")
        public String Currency;

        /**
         * 银行名称
         */
        @JSONField(name="BankName")
        public String BankName;

        /**
         * 收款人账号
         */
        @JSONField(name="PayeeAccount")
        public String PayeeAccount;
        /**
         * SAP订单付款
         */
        @JSONField(name="SapOrderPayment")
        public String SapOrderPayment;

        /**
         * 预付款款情况
         */
        @JSONField(name="AdvancePayment")
        public String AdvancePayment;

        /**
         * 合同金额
         */
        @JSONField(name="ContractAmount")
        public String ContractAmount;


        /**
         * 合同金额预付
         */
        @JSONField(name="ContractAmountPrepaid")
        public BigDecimal ContractAmountPrepaid;


        /**
         * 费用归属部门（财务确认）
         */
        @JSONField(name="CostAscriptionDept")
        public String CostAscriptionDept;

        /**
         * 关联流程
         */
        @JSONField(name="RelatedProcess")
        public String RelatedProcess;

        /**
         * 验收流程
         */
        @JSONField(name="RelatedYanShou")
        public String RelatedYanShou;

        /**
         * 模具流程
         */
        @JSONField(name="RelatedMuJu")
        public String RelatedMuJu;

        /**
         * 模具流程
         */
        @JSONField(name="RelatedPurchase")
        public String RelatedPurchase;

        /**
         * 合计金额
         */
        @JSONField(name="TotalAmount")
        public BigDecimal TotalAmount;

        /**
         * 不含税金额合计
         */
        @JSONField(name="ExcludingTaxAmount")
        public BigDecimal ExcludingTaxAmount;

        /**
         * 税额合计
         */
        @JSONField(name="TotalTaxAmount")
        public BigDecimal TotalTaxAmount;

        /**
         * 冲销预借/预付金额
         */
        @JSONField(name="PrepaidAmount")
        public String PrepaidAmount;

        /**
         * 本次应支付金额
         */
        @JSONField(name="PayableAmount")
        public String PayableAmount;

        /**
         * 附件
         */
        @JSONField(name="Attachment")
        public String Attachment;

        /**
         * 本次应支付(大写)
         */
        @JSONField(name="PaymentAmountWords")
        public String PaymentAmountWords;

    }

    @Data
    public static class Item{

        @JsonFilter("purchase_order_item")
        private List<PurchaseOrderItem> purchaseOrderItem;

        @JsonFilter("payment_item")
        private List<PaymentItem> paymentItem;

    }

    @Data
    public static class PurchaseOrderItem{

        /**
         * 采购订单号(预付新增)
         */
        private String PurchaseOrder;


        /**
         * 采购摘要
         */
        private String ProcurementSummary;

        /**
         * 应付金额
         */
        private BigDecimal PayableAmount;

        /**
         * 未付金额
         */
        private BigDecimal UnpaidAmount;

        /**
         * 本次付款金额
         */
        private BigDecimal PaymentAmount;

        /**
         * 使用人
         */
        private String User;

        /**
         * 成本中心
         */
        private String CostCenterCode;

        /**
         *  成本中心(显示值)
         */
        private String CostCenterName;


    }


    public static class PaymentItem{

        /**
         * 报销类别
         */
        public String ReimburseType;
        /**
         * 业务描述
         */
        public String BusinessDesc;
        /**
         * 金额（元）
         */
        public BigDecimal Amount;
        /**
         * 使用人
         */
        public String User;
        /**
         * 内部订单号
         */
        public String InternalOrder;
        /**
         * 项目编号
         */
        public String ProjectNo;
        /**
         * 服务客户
         */
        public String Customer;
        /**
         * 服务客户实际值
         */
        public String CustomerCode;
        /**
         * 驱动因素
         */
        public String DrivingFactors;
        /**
         * 固定资产编码
         */
        public String FixedAssetCode;
        /**
         * 成本中心(显示值)
         */
        public String CostCenter;
        /**
         * 成本中心实际值
         */
        public String CostCenterCode;

    }




}
