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

            string where = string.Format(format, entrustNumber, (int)ft);
            IList <XH_CapitalAccountFreezeTableInfo> 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]);
        }
Esempio n. 2
0
        private void DoCapitalFreezeCheck()
        {
            XH_CapitalAccountFreezeTableDal dal = new XH_CapitalAccountFreezeTableDal();
            var list = dal.GetAllFreezeMoney();

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

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

            XH_CapitalAccountFreezeTableDal dal = new XH_CapitalAccountFreezeTableDal();

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

            return(true);
        }
Esempio n. 5
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
                {
                    XH_CapitalAccountFreezeTableDal caDal = new XH_CapitalAccountFreezeTableDal();

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

            return(true);
        }
        private int PO_BuildCapitalFreezeRecord(decimal predealCapital, decimal predealCost, GTA.VTS.Common.CommonObject.Types.TransactionDirection buySellType, ReckoningTransaction tm)
        {
            var caft = new XH_CapitalAccountFreezeTableInfo();

            ;
            //委托单号
            caft.EntrustNumber = EntrustNumber;

            //卖不产生冻结金额,只有费用
            if (buySellType == GTA.VTS.Common.CommonObject.Types.TransactionDirection.Buying)
            {
                //冻结 预成交金额
                caft.FreezeCapitalAmount = predealCapital;
            }

            //冻结 预成交费用
            caft.FreezeCost = predealCost;
            //冻结时间
            caft.FreezeTime = DateTime.Now;
            //解冻时间
            caft.ThawTime = DateTime.Now;
            //冻结类型
            caft.FreezeTypeLogo = (int)Types.FreezeType.DelegateFreeze;

            caft.OweCosting = 0;

            caft.CapitalAccountLogo = CapitalAccountId;

            string format =
                "现货资金冻结处理XHBuyOrderLogicFlow.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);

            XH_CapitalAccountFreezeTableDal dal = new XH_CapitalAccountFreezeTableDal();

            return(dal.Add(caft, tm.Database, tm.Transaction));
        }
Esempio n. 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
                {
                    XH_CapitalAccountFreezeTableDal caDal = new XH_CapitalAccountFreezeTableDal();

                    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);
        }