package com.doverfuelingsolutions.issp.api.bean;

import com.wayne.www.waynelib.webservice.entity.PosTrxItem;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @desc
 * @info Created by LzPeng on 2020/3/20
 */
public class PayResultHs {


    /**
     * Id : 31519ce0-0473-4c31-aa49-709152419fd2
     * LineNum : 0
     * Paid : 0.01
     * AuthCode : 135329938250208451
     * ResultCode : 0
     * ResultMessage : OK
     * ErrorDetail :
     * BillNumber : 2020032016564336400000000020
     * PayBack : 0.0
     * PosTrx : {"Id":"9aa8e955-7156-4c47-a51e-98414df730ec","Items":[{"Id":"06a9680f-2465-43bc-99b3-242bdc66ee49","LineNum":0,"PosItemId":"d2cb7584-c6eb-4cba-8bdb-d0eaebbe3c1e","Item":{"Id":"d2cb7584-c6eb-4cba-8bdb-d0eaebbe3c1e","ItemId":"1","BarCode":"1","ItemName":"0#","UnitId":0,"Price":6.99,"DateToActivate":"2019-08-13 09:53:23.000","DateToDeactivate":"2020-08-15 23:59:59.000","CreatedDateTime":"2020-03-10 09:40:58.909","IsFuelItem":true,"IsMarkedAsDeletion":false,"TargetBusinessUnitId":"aaa3bf03-1da6-4f31-9f56-c86b487beeee"},"Qty":0.08,"Voided":false,"PosTrxId":"9aa8e955-7156-4c47-a51e-98414df730ec","NetAmount":0.01,"GrossAmount":0.01,"FuelItemSoldOnPumpId":3,"FuelItemSoldOnPumpNozzleId":2,"FuelItemOriginalGrossAmount":0.01,"FuelItemFdcTransactionSeqNo":"57170349","FuelItemFdcReleaseTokenAttribute":11}],"Payments":[],"TransactionSource":0,"TransactionType":0,"ReceiptId":"I0320165640","ShiftId":30,"TransactionInitTimeInPos":"2020-03-20 16:56:55.581","TransactionArrivedAtServerTime":"2020-03-20 16:56:40.965","NetAmount":0.01,"GrossAmount":0.01,"Discount":0,"TransactionStatus":1,"ServiceIdentityUserId":"3c3c4bf7-7f6b-4f90-b052-973cac8a4e6a","BusinessUnitId":"aaa3bf03-1da6-4f31-9f56-c86b487beeee","SiteDeviceId":"503f3e99-fe56-4261-afce-38d28aeed3f1","AccountId":""}
     * PosTrxId : 9aa8e955-7156-4c47-a51e-98414df730ec
     * Mop : {"Id":"b936e87e-5bc2-4155-9529-8b282c8eea0c","PaymentId":3,"CreatedDateTime":"2019-07-10 15:34:44.492","TargetBusinessUnitId":"aaa3bf03-1da6-4f31-9f56-c86b487beeee","Status":0}
     * PosMopId : b936e87e-5bc2-4155-9529-8b282c8eea0c
     */

    private String Id;
    private int LineNum;
    private double Paid;
    private String AuthCode;
    private String ResultCode;
    private String ResultMessage;
    private String ErrorDetail;
    private String BillNumber;
    private double PayBack;
    private PosTrxBean PosTrx;
    private String PosTrxId;
    private MopBean Mop;
    private String PosMopId;

    public String getId() {
        return Id;
    }

    public void setId(String Id) {
        this.Id = Id;
    }

    public int getLineNum() {
        return LineNum;
    }

    public void setLineNum(int LineNum) {
        this.LineNum = LineNum;
    }

    public double getPaid() {
        return Paid;
    }

    public void setPaid(double Paid) {
        this.Paid = Paid;
    }

    public String getAuthCode() {
        return AuthCode;
    }

    public void setAuthCode(String AuthCode) {
        this.AuthCode = AuthCode;
    }

    public String getResultCode() {
        return ResultCode;
    }

    public void setResultCode(String ResultCode) {
        this.ResultCode = ResultCode;
    }

    public String getResultMessage() {
        return ResultMessage;
    }

    public void setResultMessage(String ResultMessage) {
        this.ResultMessage = ResultMessage;
    }

    public String getErrorDetail() {
        return ErrorDetail;
    }

    public void setErrorDetail(String ErrorDetail) {
        this.ErrorDetail = ErrorDetail;
    }

    public String getBillNumber() {
        return BillNumber;
    }

    public void setBillNumber(String BillNumber) {
        this.BillNumber = BillNumber;
    }

    public double getPayBack() {
        return PayBack;
    }

    public void setPayBack(double PayBack) {
        this.PayBack = PayBack;
    }

    public PosTrxBean getPosTrx() {
        return PosTrx;
    }

    public void setPosTrx(PosTrxBean PosTrx) {
        this.PosTrx = PosTrx;
    }

    public String getPosTrxId() {
        return PosTrxId;
    }

    public void setPosTrxId(String PosTrxId) {
        this.PosTrxId = PosTrxId;
    }

    public MopBean getMop() {
        return Mop;
    }

    public void setMop(MopBean Mop) {
        this.Mop = Mop;
    }

    public String getPosMopId() {
        return PosMopId;
    }

    public void setPosMopId(String PosMopId) {
        this.PosMopId = PosMopId;
    }

    public static class PosTrxBean implements Serializable {
        /**
         * Id : 9aa8e955-7156-4c47-a51e-98414df730ec
         * Items : [{"Id":"06a9680f-2465-43bc-99b3-242bdc66ee49","LineNum":0,"PosItemId":"d2cb7584-c6eb-4cba-8bdb-d0eaebbe3c1e","Item":{"Id":"d2cb7584-c6eb-4cba-8bdb-d0eaebbe3c1e","ItemId":"1","BarCode":"1","ItemName":"0#","UnitId":0,"Price":6.99,"DateToActivate":"2019-08-13 09:53:23.000","DateToDeactivate":"2020-08-15 23:59:59.000","CreatedDateTime":"2020-03-10 09:40:58.909","IsFuelItem":true,"IsMarkedAsDeletion":false,"TargetBusinessUnitId":"aaa3bf03-1da6-4f31-9f56-c86b487beeee"},"Qty":0.08,"Voided":false,"PosTrxId":"9aa8e955-7156-4c47-a51e-98414df730ec","NetAmount":0.01,"GrossAmount":0.01,"FuelItemSoldOnPumpId":3,"FuelItemSoldOnPumpNozzleId":2,"FuelItemOriginalGrossAmount":0.01,"FuelItemFdcTransactionSeqNo":"57170349","FuelItemFdcReleaseTokenAttribute":11}]
         * Payments : []
         * TransactionSource : 0
         * TransactionType : 0
         * ReceiptId : I0320165640
         * ShiftId : 30
         * TransactionInitTimeInPos : 2020-03-20 16:56:55.581
         * TransactionArrivedAtServerTime : 2020-03-20 16:56:40.965
         * NetAmount : 0.01
         * GrossAmount : 0.01
         * Discount : 0.0
         * TransactionStatus : 1
         * ServiceIdentityUserId : 3c3c4bf7-7f6b-4f90-b052-973cac8a4e6a
         * BusinessUnitId : aaa3bf03-1da6-4f31-9f56-c86b487beeee
         * SiteDeviceId : 503f3e99-fe56-4261-afce-38d28aeed3f1
         * AccountId :
         */

        private String Id;
        private int TransactionSource;
        private int TransactionType;
        private String ReceiptId;
        private int ShiftId;
        private String TransactionInitTimeInPos;
        private String TransactionArrivedAtServerTime;
        private BigDecimal NetAmount;
        private BigDecimal GrossAmount;
        private BigDecimal Discount;
        private int TransactionStatus;
        private String ServiceIdentityUserId;
        private String BusinessUnitId;
        private String SiteDeviceId;
        private String AccountId;
        private List<PosTrxItem> Items;
        private List<?> Payments;

        public String getId() {
            if (Id == null) return "null";
            return Id;
        }

        public void setId(String Id) {
            this.Id = Id;
        }

        public int getTransactionSource() {
            return TransactionSource;
        }

        public void setTransactionSource(int TransactionSource) {
            this.TransactionSource = TransactionSource;
        }

        public int getTransactionType() {
            return TransactionType;
        }

        public void setTransactionType(int TransactionType) {
            this.TransactionType = TransactionType;
        }

        public String getReceiptId() {
            return ReceiptId;
        }

        public void setReceiptId(String ReceiptId) {
            this.ReceiptId = ReceiptId;
        }

        public int getShiftId() {
            return ShiftId;
        }

        public void setShiftId(int ShiftId) {
            this.ShiftId = ShiftId;
        }

        public String getTransactionInitTimeInPos() {
            return TransactionInitTimeInPos;
        }

        public void setTransactionInitTimeInPos(String TransactionInitTimeInPos) {
            this.TransactionInitTimeInPos = TransactionInitTimeInPos;
        }

        public String getTransactionArrivedAtServerTime() {
            return TransactionArrivedAtServerTime;
        }

        public void setTransactionArrivedAtServerTime(String TransactionArrivedAtServerTime) {
            this.TransactionArrivedAtServerTime = TransactionArrivedAtServerTime;
        }

        public BigDecimal getNetAmount() {
            return NetAmount;
        }

        public void setNetAmount(BigDecimal NetAmount) {
            this.NetAmount = NetAmount;
        }

        public BigDecimal getGrossAmount() {
            return GrossAmount;
        }

        public void setGrossAmount(BigDecimal GrossAmount) {
            this.GrossAmount = GrossAmount;
        }

        public BigDecimal getDiscount() {
            return Discount;
        }

        public void setDiscount(BigDecimal Discount) {
            this.Discount = Discount;
        }

        public int getTransactionStatus() {
            return TransactionStatus;
        }

        public void setTransactionStatus(int TransactionStatus) {
            this.TransactionStatus = TransactionStatus;
        }

        public String getServiceIdentityUserId() {
            return ServiceIdentityUserId;
        }

        public void setServiceIdentityUserId(String ServiceIdentityUserId) {
            this.ServiceIdentityUserId = ServiceIdentityUserId;
        }

        public String getBusinessUnitId() {
            return BusinessUnitId;
        }

        public void setBusinessUnitId(String BusinessUnitId) {
            this.BusinessUnitId = BusinessUnitId;
        }

        public String getSiteDeviceId() {
            return SiteDeviceId;
        }

        public void setSiteDeviceId(String SiteDeviceId) {
            this.SiteDeviceId = SiteDeviceId;
        }

        public String getAccountId() {
            return AccountId;
        }

        public void setAccountId(String AccountId) {
            this.AccountId = AccountId;
        }

        public List<PosTrxItem> getItems() {
            return Items;
        }

        public void setItems(List<PosTrxItem> Items) {
            this.Items = Items;
        }

        public List<?> getPayments() {
            return Payments;
        }

        public void setPayments(List<?> Payments) {
            this.Payments = Payments;
        }

//        public static class ItemsBean implements Serializable {
//            /**
//             * Id : 06a9680f-2465-43bc-99b3-242bdc66ee49
//             * LineNum : 0
//             * PosItemId : d2cb7584-c6eb-4cba-8bdb-d0eaebbe3c1e
//             * Item : {"Id":"d2cb7584-c6eb-4cba-8bdb-d0eaebbe3c1e","ItemId":"1","BarCode":"1","ItemName":"0#","UnitId":0,"Price":6.99,"DateToActivate":"2019-08-13 09:53:23.000","DateToDeactivate":"2020-08-15 23:59:59.000","CreatedDateTime":"2020-03-10 09:40:58.909","IsFuelItem":true,"IsMarkedAsDeletion":false,"TargetBusinessUnitId":"aaa3bf03-1da6-4f31-9f56-c86b487beeee"}
//             * Qty : 0.08
//             * Voided : false
//             * PosTrxId : 9aa8e955-7156-4c47-a51e-98414df730ec
//             * NetAmount : 0.01
//             * GrossAmount : 0.01
//             * FuelItemSoldOnPumpId : 3
//             * FuelItemSoldOnPumpNozzleId : 2
//             * FuelItemOriginalGrossAmount : 0.01
//             * FuelItemFdcTransactionSeqNo : 57170349
//             * FuelItemFdcReleaseTokenAttribute : 11
//             */
//
//            private String Id;
//            private int LineNum;
//            private String PosItemId;
//            private PosItem Item;
//            private double Qty;
//            private boolean Voided;
//            private String PosTrxId;
//            private double NetAmount;
//            private double GrossAmount;
//            private int FuelItemSoldOnPumpId;
//            private int FuelItemSoldOnPumpNozzleId;
//            private double FuelItemOriginalGrossAmount;
//            private String FuelItemFdcTransactionSeqNo;
//            private int FuelItemFdcReleaseTokenAttribute;
//
//            public String getId() {
//                return Id;
//            }
//
//            public void setId(String Id) {
//                this.Id = Id;
//            }
//
//            public int getLineNum() {
//                return LineNum;
//            }
//
//            public void setLineNum(int LineNum) {
//                this.LineNum = LineNum;
//            }
//
//            public String getPosItemId() {
//                return PosItemId;
//            }
//
//            public void setPosItemId(String PosItemId) {
//                this.PosItemId = PosItemId;
//            }
//
//            public PosItem getItem() {
//                return Item;
//            }
//
//            public double getQty() {
//                return Qty;
//            }
//
//            public void setQty(double Qty) {
//                this.Qty = Qty;
//            }
//
//            public boolean isVoided() {
//                return Voided;
//            }
//
//            public void setVoided(boolean Voided) {
//                this.Voided = Voided;
//            }
//
//            public String getPosTrxId() {
//                return PosTrxId;
//            }
//
//            public void setPosTrxId(String PosTrxId) {
//                this.PosTrxId = PosTrxId;
//            }
//
//            public double getNetAmount() {
//                return NetAmount;
//            }
//
//            public void setNetAmount(double NetAmount) {
//                this.NetAmount = NetAmount;
//            }
//
//            public double getGrossAmount() {
//                return GrossAmount;
//            }
//
//            public void setGrossAmount(double GrossAmount) {
//                this.GrossAmount = GrossAmount;
//            }
//
//            public int getFuelItemSoldOnPumpId() {
//                return FuelItemSoldOnPumpId;
//            }
//
//            public void setFuelItemSoldOnPumpId(int FuelItemSoldOnPumpId) {
//                this.FuelItemSoldOnPumpId = FuelItemSoldOnPumpId;
//            }
//
//            public int getFuelItemSoldOnPumpNozzleId() {
//                return FuelItemSoldOnPumpNozzleId;
//            }
//
//            public void setFuelItemSoldOnPumpNozzleId(int FuelItemSoldOnPumpNozzleId) {
//                this.FuelItemSoldOnPumpNozzleId = FuelItemSoldOnPumpNozzleId;
//            }
//
//            public double getFuelItemOriginalGrossAmount() {
//                return FuelItemOriginalGrossAmount;
//            }
//
//            public void setFuelItemOriginalGrossAmount(double FuelItemOriginalGrossAmount) {
//                this.FuelItemOriginalGrossAmount = FuelItemOriginalGrossAmount;
//            }
//
//            public String getFuelItemFdcTransactionSeqNo() {
//                return FuelItemFdcTransactionSeqNo;
//            }
//
//            public void setFuelItemFdcTransactionSeqNo(String FuelItemFdcTransactionSeqNo) {
//                this.FuelItemFdcTransactionSeqNo = FuelItemFdcTransactionSeqNo;
//            }
//
//            public int getFuelItemFdcReleaseTokenAttribute() {
//                return FuelItemFdcReleaseTokenAttribute;
//            }
//
//            public void setFuelItemFdcReleaseTokenAttribute(int FuelItemFdcReleaseTokenAttribute) {
//                this.FuelItemFdcReleaseTokenAttribute = FuelItemFdcReleaseTokenAttribute;
//            }
//
//        }

        public String getMyGrossAmount() {
            if (GrossAmount == null) return "0.00";
            // FIXME 是否需要保留两位小数点
            return GrossAmount.toString();
        }

        public String getMyDiscount() {
            if (Discount == null) return "0.00";
            // FIXME 是否需要保留两位小数点
            return Discount.toString();
        }

        public String getMyNetAmount() {
            if (NetAmount == null) return "0.00";
            // FIXME 是否需要保留两位小数点
            return NetAmount.toString();
        }
    }

    public static class MopBean {
        /**
         * Id : b936e87e-5bc2-4155-9529-8b282c8eea0c
         * PaymentId : 3
         * CreatedDateTime : 2019-07-10 15:34:44.492
         * TargetBusinessUnitId : aaa3bf03-1da6-4f31-9f56-c86b487beeee
         * Status : 0
         */

        private String Id;
        private int PaymentId;
        private String CreatedDateTime;
        private String TargetBusinessUnitId;
        private int Status;

        public String getId() {
            return Id;
        }

        public void setId(String Id) {
            this.Id = Id;
        }

        public int getPaymentId() {
            return PaymentId;
        }

        public void setPaymentId(int PaymentId) {
            this.PaymentId = PaymentId;
        }

        public String getCreatedDateTime() {
            return CreatedDateTime;
        }

        public void setCreatedDateTime(String CreatedDateTime) {
            this.CreatedDateTime = CreatedDateTime;
        }

        public String getTargetBusinessUnitId() {
            return TargetBusinessUnitId;
        }

        public void setTargetBusinessUnitId(String TargetBusinessUnitId) {
            this.TargetBusinessUnitId = TargetBusinessUnitId;
        }

        public int getStatus() {
            return Status;
        }

        public void setStatus(int Status) {
            this.Status = Status;
        }
    }


}
