using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;

namespace TellerSystem.Contract.Function
{
    /// <summary>
    /// 收费查询
    /// 根据交易代码、账号、业务类型等预算收费
    /// </summary>
    public class QueryFeePaymentInfo : TFOutput
    {
        #region Output
        /// <summary>
        /// 收费列表
        /// 第1行：收费方式|收费黑名单标志|黑名单账户；其中,收费方式--共四位：每位0不允许，1允许 第一位：现金 第二位：转账（交易账号） 第三位：输入其他账号 第四位：不收 如1010表示可以收取现金和其他账号，不能转账，不能不收；收费黑名单标志--0：黑名单 1：白名单；第n+1行：|费用描述|应收金额|实收金额(优惠后)；
        /// </summary>
        public string SFLB { get; internal set; }

        /// <summary>
        /// 收费标志 0120
        /// P047:需要收费  0000：不需要收费
        /// </summary>
        public string SFBZ { get; internal set; }

        /// <summary>
        /// 收费黑白名单标志 1225
        /// 0:黑名单 1:白名单
        /// </summary>
        public string SFHBMDBZ { get; internal set; }

        /// <summary>
        /// 实收总金额 1227
        /// 
        /// </summary>
        public string SSZJE { get; internal set; }


        #endregion

        #region Input
		/// <summary>
        /// 参数清单
        /// </summary>
        public class Input : TFInput
        {
            /// <summary>
            /// 目标交易代码 0120
            ///  
            /// </summary>
            public string JYDM { get; set; }

            /// <summary>
            /// 渠道类型 096C
            ///  
            /// </summary>
            public string QDLX { get; set; }

            /// <summary>
            /// 业务类型 096M
            ///  
            /// </summary>
            public string YWLX { get; set; }

            /// <summary>
            /// 客户号 096N
            /// 没有交易主账号的情况下使用 
            /// </summary>
            public string KHH { get; set; }

            /// <summary>
            /// 账号 1221
            /// 交易主账号，据此计算优惠等；此账号可以不是付费账号 
            /// </summary>
            public string ZH { get; set; }

            /// <summary>
            /// 加急标志 122F
            /// 1：加急 0：正常 
            /// </summary>
            public string JJBZ { get; set; }

            /// <summary>
            /// 交易发生额 1222
            ///  
            /// </summary>
            public string JYFSE { get; set; }

            /// <summary>
            /// 客户类型 0710
            /// 1-个人  2-对公 
            /// </summary>
            public string KHLX { get; set; }


            /// <summary>                 
            /// 定义业务逻辑              
            /// </summary>                
            /// <returns></returns>  
            public override TFOutput Raise()
            {
                //拉取数据                                  
                var output = new QueryFeePaymentInfo();
                PageData.TradeAPIs.InitFd(MessageData);
                PageData.TradeAPIs.CommSend(MessageData);
				MessageData.Fd126_5 = MainCode;
                MessageData.Fd16 = "9986";
                MessageData.Fd12 = JYDM;
                MessageData.Fd96_C = QDLX;
                MessageData.Fd96_M = YWLX;
                MessageData.Fd96_N = KHH;
                MessageData.Fd122_1 = ZH;
                MessageData.Fd122_F = JJBZ;
                MessageData.Fd122_2 = JYFSE;
                MessageData.Fd71 = KHLX;

                PageData.TradeAPIs.CallServer(MessageData);
                if (MessageData.Fd12 != "0000")
                {
                    output.IsFailed = true;
                    output.FailureCause = PageData.TradeAPIs.GetError(MessageData);
                }                
                output.SFLB = MessageData.FileData;
                output.SFBZ = (MessageData.Fd12);
                output.SFHBMDBZ = (MessageData.Fd122_5);
                output.SSZJE = (MessageData.Fd122_7);

                return output;
            }
        }
        #endregion
    }
}
