예제 #1
0
        /// <summary>
        /// 获取现货对应委托单的资金冻结对象
        /// </summary>
        /// <param name="entrustNumber">委托单号</param>
        /// <param name="ft">冻结类型</param>
        /// <returns>委托单的资金冻结实体</returns>
        public static HK_CapitalAccountFreezeInfo GetCapitalAccountFreeze(string entrustNumber, Types.FreezeType ft)
        {
            HK_CapitalAccountFreezeDal dal = new HK_CapitalAccountFreezeDal();
            string format = "EntrustNumber='{0}' AND FreezeTypeLogo={1}";

            string where = string.Format(format, entrustNumber, (int)ft);
            IList <HK_CapitalAccountFreezeInfo> list = null;

            try
            {
                list = dal.GetListArray(where);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }

            if (list == null)
            {
                return(null);
            }

            if (list.Count == 0)
            {
                return(null);
            }

            return(list[0]);
        }
예제 #2
0
        private int PO_BuildCapitalFreezeRecord(decimal predealCapital, decimal predealCost,
                                                Types.TransactionDirection buySellType, ReckoningTransaction tm)
        {
            HK_CapitalAccountFreezeInfo caft = new HK_CapitalAccountFreezeInfo();

            caft.EntrustNumber = EntrustNumber; //委托单号
            //卖不产生冻结金额,只有费用
            if (buySellType == Types.TransactionDirection.Buying)
            {
                caft.FreezeCapitalAmount = predealCapital;                                  //冻结 预成交金额
            }
            caft.FreezeCost         = predealCost;                                          //冻结 预成交费用
            caft.FreezeTime         = DateTime.Now;                                         //冻结时间
            caft.ThawTime           = DateTime.Now;                                         //解冻时间
            caft.FreezeTypeLogo     = (int)Entity.Contants.Types.FreezeType.DelegateFreeze; //冻结类型
            caft.OweCosting         = 0;
            caft.CapitalAccountLogo = CapitalAccountId;
            string format =
                "港股资金冻结处理HKBuyOrderLogicFlow.PO_BuildCapitalFreezeRecord[委托单号={0},冻结时间={1},解冻时间={2},冻结类型={3},预成交金额={4},预成交费用={5},资金账户ID={6}]";

            string desc = string.Format(format, caft.EntrustNumber, caft.FreezeTime, caft.ThawTime, caft.FreezeTypeLogo,
                                        caft.FreezeCapitalAmount, caft.FreezeCost, CapitalAccountId);

            LogHelper.WriteDebug(desc);

            HK_CapitalAccountFreezeDal dal = new HK_CapitalAccountFreezeDal();

            return(dal.Add(caft, tm.Database, tm.Transaction));
        }
예제 #3
0
        private void DoCapitalFreezeCheck()
        {
            HK_CapitalAccountFreezeDal dal = new HK_CapitalAccountFreezeDal();
            var list = dal.GetAllFreezeMoney();

            foreach (var freezeSum in list)
            {
                //InternalDoCheck(freezeSum);
                smartPool.QueueWorkItem(InternalDoCheck, freezeSum);
            }
        }
예제 #4
0
        /// <summary>
        /// 插入一条空的资金冻结记录
        /// </summary>
        /// <param name="capitalAccountId"></param>
        /// <param name="entrustNumber"></param>
        /// <returns></returns>
        public static int InsertNullCapitalFreeze(int capitalAccountId, string entrustNumber)
        {
            HK_CapitalAccountFreezeInfo caf = new HK_CapitalAccountFreezeInfo();

            caf.CapitalAccountLogo  = capitalAccountId;
            caf.EntrustNumber       = entrustNumber;
            caf.FreezeTypeLogo      = (int)Types.FreezeType.DelegateFreeze;
            caf.FreezeTime          = DateTime.Now;
            caf.FreezeCapitalAmount = 0;
            caf.FreezeCost          = 0;

            HK_CapitalAccountFreezeDal dal = new HK_CapitalAccountFreezeDal();

            return(dal.Add(caf));
        }
예제 #5
0
        /// <summary>
        /// 删除持仓冻结记录
        /// </summary>
        /// <param name="persistCapitalFreezeId">持仓冻结记录id</param>
        /// <returns>是否成功 </returns>
        public static bool DeleteCapitalFreeze(int persistCapitalFreezeId)
        {
            if (persistCapitalFreezeId != -1)
            {
                try
                {
                    HK_CapitalAccountFreezeDal caDal = new HK_CapitalAccountFreezeDal();
                    caDal.Delete(persistCapitalFreezeId);
                }
                catch (Exception ex)
                {
                    LogHelper.WriteError(ex.Message, ex);
                    return(false);
                }
            }

            return(true);
        }
예제 #6
0
        /// <summary>
        /// 清除资金冻结
        /// </summary>
        /// <param name="persistCapitalFreezeId"></param>
        /// <param name="db"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public static bool ClearCapitalFreeze(int persistCapitalFreezeId, Database db, DbTransaction transaction)
        {
            if (persistCapitalFreezeId != -1)
            {
                try
                {
                    HK_CapitalAccountFreezeDal caDal = new HK_CapitalAccountFreezeDal();

                    caDal.Clear(persistCapitalFreezeId, db, transaction);
                }
                catch (Exception ex)
                {
                    LogHelper.WriteError(ex.Message, ex);
                    return(false);
                }
            }

            return(true);
        }
예제 #7
0
        /// <summary>
        /// 删除持仓冻结记录
        /// </summary>
        /// <param name="persistCapitalFreezeId">持仓冻结记录id</param>
        /// <param name="db">数据库对象</param>
        /// <param name="transaction">事务对象</param>
        /// <returns>是否成功</returns>
        public static bool DeleteCapitalFreeze(int persistCapitalFreezeId, Database db, DbTransaction transaction)
        {
            if (persistCapitalFreezeId != -1)
            {
                try
                {
                    HK_CapitalAccountFreezeDal caDal = new HK_CapitalAccountFreezeDal();

                    ReckoningTransaction tm = new ReckoningTransaction();
                    tm.Database    = db;
                    tm.Transaction = transaction;
                    caDal.Delete(persistCapitalFreezeId, tm);
                }
                catch (Exception ex)
                {
                    LogHelper.WriteError(ex.Message, ex);
                    return(false);
                }
            }

            return(true);
        }