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

namespace TellerSystem.Contract.Function
{
    /// <summary>
    /// 客户经理客户账户关联关系查询
    /// 客户经理客户账户关联关系查询
    /// </summary>
    public class QueryCM2CARef : TFOutput
    {
        #region Output
        /// <summary>
        /// 文件
        /// 客户号|客户经理编号|客户经理名称|客户经理类型|关联日期|解除日期|账号|账户名|账户ID|账户SEQN|揽存比例|产品类型|客户类型|累计金额|统计天数|机构编号|（增加揽存比例---:客户号|客户经理编号|客户经理类型|关联日期|解除日期|账号|账户名|账户ID|账户SEQN|产品类型|客户类型|累计金额|统计天数|机构编号|
        /// </summary>
        public string WJ { get; internal set; }

        /// <summary>
        /// 文件
        /// 客户号|客户经理编号|客户经理名称|客户经理类型|关联日期|解除日期|账号|账户名|账户ID|账户SEQN|揽存比例|产品类型|客户类型|累计金额|统计天数|机构编号|（增加揽存比例---:客户号|客户经理编号|客户经理类型|关联日期|解除日期|账号|账户名|账户ID|账户SEQN|产品类型|客户类型|累计金额|统计天数|机构编号|
        /// </summary>
        public List<E_WJ> WJData { get; internal set; }

        /// <summary>
        /// 文件
        /// 客户号|客户经理编号|客户经理名称|客户经理类型|关联日期|解除日期|账号|账户名|账户ID|账户SEQN|揽存比例|产品类型|客户类型|累计金额|统计天数|机构编号|（增加揽存比例---:客户号|客户经理编号|客户经理类型|关联日期|解除日期|账号|账户名|账户ID|账户SEQN|产品类型|客户类型|累计金额|统计天数|机构编号|
        /// </summary>
        public class E_WJ
        {
            /// <summary>
            /// 客户号
            /// </summary>
            public string KHH { get; set; }

            /// <summary>
            /// 客户经理编号
            /// </summary>
            public string KHJLBH { get; set; }

            /// <summary>
            /// 客户经理名称
            /// </summary>
            public string KHJLMC { get; set; }

            /// <summary>
            /// 客户经理类型
            /// </summary>
            public string KHJLLX { get; set; }

            /// <summary>
            /// 关联日期
            /// </summary>
            public string GLRQ { get; set; }

            /// <summary>
            /// 解除日期
            /// </summary>
            public string JCRQ { get; set; }

            /// <summary>
            /// 账号
            /// </summary>
            public string ZH { get; set; }

            /// <summary>
            /// 账户名
            /// </summary>
            public string ZHM { get; set; }

            /// <summary>
            /// 账户ID
            /// </summary>
            public string ZHID { get; set; }

            /// <summary>
            /// 账户SEQN
            /// </summary>
            public string ZHSEQN { get; set; }

            /// <summary>
            /// 揽存比例
            /// </summary>
            public string LCBL { get; set; }

            /// <summary>
            /// 产品类型
            /// </summary>
            public string CPLX { get; set; }

            /// <summary>
            /// 客户类型
            /// </summary>
            public string KHLX { get; set; }

            /// <summary>
            /// 累计金额
            /// </summary>
            public string LJJE { get; set; }

            /// <summary>
            /// 统计天数
            /// </summary>
            public string TJTS { get; set; }

            /// <summary>
            /// 机构编号
            /// </summary>
            public string JGBH { get; set; }

        }

        #endregion

        #region Input
		/// <summary>
        /// 参数清单
        /// </summary>
        public class Input : TFInput
        {
            /// <summary>
            /// 客户号 0280
            ///  
            /// </summary>
            public string KHH { get; set; }

            /// <summary>
            /// 账号 0300
            ///  
            /// </summary>
            public string ZH { get; set; }

            /// <summary>
            /// 关联日期 0440
            ///  
            /// </summary>
            public string GLRQ { get; set; }

            /// <summary>
            /// 解除日期 0450
            ///  
            /// </summary>
            public string JCRQ { get; set; }

            /// <summary>
            /// 客户经理编码 0920
            ///  
            /// </summary>
            public string KHJLBM { get; set; }

            /// <summary>
            /// 账户序号 0340
            ///  
            /// </summary>
            public string ZHXH { get; set; }


            /// <summary>                 
            /// 定义业务逻辑              
            /// </summary>                
            /// <returns></returns>  
            public override TFOutput Raise()
            {
                //拉取数据                                  
                var output = new QueryCM2CARef();
                PageData.TradeAPIs.InitFd(MessageData);
                PageData.TradeAPIs.CommSend(MessageData);
				MessageData.Fd126_5 = MainCode;
                MessageData.Fd16 = "CXCL";
                MessageData.Fd28 = KHH;
                MessageData.Fd30 = ZH;
                MessageData.Fd44 = GLRQ;
                MessageData.Fd45 = JCRQ;
                MessageData.Fd92 = KHJLBM;
                MessageData.Fd128 = "0026";
                MessageData.Fd34 = ZHXH;

                PageData.TradeAPIs.CallServer(MessageData);
                if (MessageData.Fd12 != "0000")
                {
                    output.IsFailed = true;
                    output.FailureCause = PageData.TradeAPIs.GetError(MessageData);
                }                
                output.WJData = AnilyzeFileData<E_WJ>(MessageData.FileData,
                                            "客户号|客户经理编号|客户经理名称|客户经理类型|关联日期|解除日期|账号|账户名|账户ID|账户SEQN|揽存比例|产品类型|客户类型|累计金额|统计天数|机构编号|",
                                            x =>
                                            {
                                                return new E_WJ
                                                {
                                                    KHH = x["客户号"],
                                                    KHJLBH = x["客户经理编号"],
                                                    KHJLMC = x["客户经理名称"],
                                                    KHJLLX = x["客户经理类型"],
                                                    GLRQ = x["关联日期"],
                                                    JCRQ = x["解除日期"],
                                                    ZH = x["账号"],
                                                    ZHM = x["账户名"],
                                                    ZHID = x["账户ID"],
                                                    ZHSEQN = x["账户SEQN"],
                                                    LCBL = x["揽存比例"],
                                                    CPLX = x["产品类型"],
                                                    KHLX = x["客户类型"],
                                                    LJJE = x["累计金额"],
                                                    TJTS = x["统计天数"],
                                                    JGBH = x["机构编号"]
                                                };
                                            });
                output.WJ = MessageData.FileData;

                return output;
            }
        }
        #endregion
    }
}
