/// <summary>
        /// 检查是否存在对应的委托单号
        /// </summary>
        /// <param name="errMsg">错误信息</param>
        /// <returns>校验结果</returns>
        private bool CheckDelegateExist(ref string errMsg)
        {
            bool result = false;

            errMsg = "";

            try
            {
                XH_TodayEntrustTableDal dal = new XH_TodayEntrustTableDal();

                //todayEntrustTable = DataRepository.XhTodayEntrustTableProvider.GetByEntrustNumber(this.orderNo);
                todayEntrustTable = dal.GetModel(this.orderNo);
            }
            catch (System.Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }

            if (todayEntrustTable != null)
            {
                result = true;
            }
            else
            {
                string errCode = "GT-1500";
                errMsg = "委托不存在。";
                errMsg = errCode + ":" + errMsg;
                LogHelper.WriteInfo(errMsg);
            }

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 创建一个今日委托记录
        /// </summary>
        /// <param name="registerTable">登记表实体</param>
        /// <param name="intNum">分红过户量</param>里
        /// <returns>今日委托实体</returns>
        private static XH_TodayEntrustTableInfo GetHistoryEntrustTable(XH_MelonCutRegisterTableInfo registerTable, int intNum)
        {
            XH_TodayEntrustTableInfo todayEntrustTable = new XH_TodayEntrustTableInfo();

            todayEntrustTable.EntrustNumber  = XHCommonLogic.BuildXHOrderNo();
            todayEntrustTable.CurrencyTypeId = registerTable.TradeCurrencyType;
            todayEntrustTable.TradeUnitId    = MCService.GetPriceUnit(registerTable.Code);
            todayEntrustTable.EntrustAmount  = intNum;
            todayEntrustTable.EntrustPrice   = 0;
            todayEntrustTable.EntrustTime    = DateTime.Now;
            todayEntrustTable.OfferTime      = DateTime.Now;

            todayEntrustTable.BuySellTypeId = (int)GTA.VTS.Common.CommonObject.Types.TransactionDirection.Buying;
            todayEntrustTable.OrderStatusId = (int)Types.OrderStateType.DOSDealed;
            todayEntrustTable.StockAccount  = registerTable.UserAccountDistributeLogo;//持仓账号,在分红记录中都是持仓账号
            //====通过持仓账号查询相关联的资金账号
            UA_UserAccountAllocationTableDal  dal    = new UA_UserAccountAllocationTableDal();
            UA_UserAccountAllocationTableInfo uaUser = dal.GetUserHoldAccountByUserCapitalAccount(registerTable.UserAccountDistributeLogo);

            todayEntrustTable.CapitalAccount = uaUser.UserAccountDistributeLogo;
            //=====
            todayEntrustTable.PortfolioLogo     = "";
            todayEntrustTable.SpotCode          = registerTable.Code;
            todayEntrustTable.TradeAmount       = intNum;
            todayEntrustTable.TradeAveragePrice = 0;
            todayEntrustTable.CancelAmount      = 0;
            todayEntrustTable.IsMarketValue     = false;
            todayEntrustTable.OrderMessage      = "股票分红生成委托记录";
            todayEntrustTable.McOrderId         = Guid.NewGuid().ToString();

            return(todayEntrustTable);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 更新期货委托单状态和信息
        /// </summary>
        /// <param name="order">委托单</param>
        public static void UpdateFutureOrderStatusAndMessage(XH_TodayEntrustTableInfo order)
        {
            try
            {
                string msg = order.OrderMessage;
                if (msg.Length > 50)
                {
                    msg = msg.Substring(0, 49);
                }

                string format =
                    "update qh_todayentrusttable set orderstatusid={0}, OrderMessage='{1}' where entrustnumber='{2}'";
                string sql = string.Format(format, order.OrderStatusId, msg,
                                           order.EntrustNumber);

                //DataRepository.Provider.ExecuteNonQuery(CommandType.Text, sql);
                DbHelperSQL.ExecuteSql(sql);
                //var sxtetp = new SqlXhTodayEntrustTableProvider(TransactionFactory.RC_ConnectionString, true,
                //                                                string.Empty);
                //sxtetp.Update(order);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 更新现货委托单状态,撤单专用,当前状态为最终状态时不更新
        /// </summary>
        /// <param name="stockOrder">委托单</param>
        public static void UpdateStockOrderStatus_Cancel(XH_TodayEntrustTableInfo stockOrder)
        {
            //如果状态时废单,部撤,已撤,已成,那么代表是最终状态
            int a = (int)Types.OrderStateType.DOSCanceled;
            int b = (int)Types.OrderStateType.DOSPartRemoved;
            int c = (int)Types.OrderStateType.DOSRemoved;
            int d = (int)Types.OrderStateType.DOSDealed;

            //如果状态是已报待撤、部成待撤,那么也不需要更新状态
            int e = (int)Types.OrderStateType.DOSRequiredRemoveSoon;
            int f = (int)Types.OrderStateType.DOSPartDealRemoveSoon;

            try
            {
                string format = "update xh_todayentrusttable set orderstatusid={0} where entrustnumber='{1}'";
                format += " and OrderStatusId<>{2} and OrderStatusId<>{3} and OrderStatusId<>{4} and OrderStatusId<>{5}";
                format += " and OrderStatusId<>{6} and OrderStatusId<>{7}";

                string sql = string.Format(format, stockOrder.OrderStatusId, stockOrder.EntrustNumber, a, b, c, d, e, f);
                DbHelperSQL.ExecuteSql(sql);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }
        }
Ejemplo n.º 5
0
        private static XH_TodayEntrustTableInfo ConvertHistoryEntrustTable(XH_HistoryEntrustTableInfo tet)
        {
            XH_TodayEntrustTableInfo tet2 = new XH_TodayEntrustTableInfo();

            tet2.BuySellTypeId = tet.BuySellTypeId;
            //tet2.CallbackChannlId = tet.
            tet2.CancelAmount = tet.CancelAmount;
            //tet2.CancelLogo = tet.ca
            tet2.CapitalAccount    = tet.CapitalAccount;
            tet2.CurrencyTypeId    = tet.CurrencyTypeId;
            tet2.EntrustAmount     = tet.EntrustMount;
            tet2.EntrustNumber     = tet.EntrustNumber;
            tet2.EntrustPrice      = tet.EntrustPrice;
            tet2.EntrustTime       = tet.EntrustTime;
            tet2.HasDoneProfit     = tet.HasDoneProfit;
            tet2.IsMarketValue     = tet.IsMarketValue;
            tet2.McOrderId         = tet.McOrderId;
            tet2.OfferTime         = tet.OfferTime;
            tet2.OrderMessage      = tet.OrderMessage;
            tet2.OrderStatusId     = tet.OrderStatusId;
            tet2.PortfolioLogo     = tet.PortfolioLogo;
            tet2.SpotCode          = tet.SpotCode;
            tet2.StockAccount      = tet.StockAccount;
            tet2.TradeAmount       = tet.TradeAmount;
            tet2.TradeAveragePrice = tet.TradeAveragePrice;
            tet2.TradeUnitId       = tet.TradeUnitId;

            return(tet2);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public void Add(XH_TodayEntrustTableInfo model, Database db, DbTransaction transaction)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into XH_TodayEntrustTable(");
            strSql.Append("EntrustNumber,PortfolioLogo,EntrustPrice,EntrustAmount,SpotCode,TradeAmount,TradeAveragePrice,CancelAmount,CancelLogo,BuySellTypeId,StockAccount,CapitalAccount,OrderStatusId,IsMarketValue,OrderMessage,CurrencyTypeId,TradeUnitId,CallbackChannlId,McOrderId,HasDoneProfit,OfferTime,EntrustTime)");

            strSql.Append(" values (");
            strSql.Append("@EntrustNumber,@PortfolioLogo,@EntrustPrice,@EntrustAmount,@SpotCode,@TradeAmount,@TradeAveragePrice,@CancelAmount,@CancelLogo,@BuySellTypeId,@StockAccount,@CapitalAccount,@OrderStatusId,@IsMarketValue,@OrderMessage,@CurrencyTypeId,@TradeUnitId,@CallbackChannlId,@McOrderId,@HasDoneProfit,@OfferTime,@EntrustTime)");
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, model.EntrustNumber);
            db.AddInParameter(dbCommand, "PortfolioLogo", DbType.AnsiString, model.PortfolioLogo);
            db.AddInParameter(dbCommand, "EntrustPrice", DbType.Decimal, model.EntrustPrice);
            db.AddInParameter(dbCommand, "EntrustAmount", DbType.Int32, model.EntrustAmount);
            db.AddInParameter(dbCommand, "SpotCode", DbType.AnsiString, model.SpotCode);
            db.AddInParameter(dbCommand, "TradeAmount", DbType.Int32, model.TradeAmount);
            db.AddInParameter(dbCommand, "TradeAveragePrice", DbType.Decimal, model.TradeAveragePrice);
            db.AddInParameter(dbCommand, "CancelAmount", DbType.Int32, model.CancelAmount);
            db.AddInParameter(dbCommand, "CancelLogo", DbType.Boolean, model.CancelLogo);
            db.AddInParameter(dbCommand, "BuySellTypeId", DbType.Int32, model.BuySellTypeId);
            db.AddInParameter(dbCommand, "StockAccount", DbType.AnsiString, model.StockAccount);
            db.AddInParameter(dbCommand, "CapitalAccount", DbType.AnsiString, model.CapitalAccount);
            db.AddInParameter(dbCommand, "OrderStatusId", DbType.Int32, model.OrderStatusId);
            db.AddInParameter(dbCommand, "IsMarketValue", DbType.Boolean, model.IsMarketValue);
            db.AddInParameter(dbCommand, "OrderMessage", DbType.AnsiString, model.OrderMessage);
            db.AddInParameter(dbCommand, "CurrencyTypeId", DbType.Int32, model.CurrencyTypeId);
            db.AddInParameter(dbCommand, "TradeUnitId", DbType.Int32, model.TradeUnitId);
            db.AddInParameter(dbCommand, "CallbackChannlId", DbType.AnsiString, model.CallbackChannlId);
            db.AddInParameter(dbCommand, "McOrderId", DbType.AnsiString, model.McOrderId);
            db.AddInParameter(dbCommand, "HasDoneProfit", DbType.Decimal, model.HasDoneProfit);
            db.AddInParameter(dbCommand, "OfferTime", DbType.DateTime, model.OfferTime);
            db.AddInParameter(dbCommand, "EntrustTime", DbType.DateTime, model.EntrustTime);
            db.ExecuteNonQuery(dbCommand, transaction);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool UpRecord(XH_TodayEntrustTableInfo model, Database db, DbTransaction transaction)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update XH_TodayEntrustTable set ");
            strSql.Append("PortfolioLogo=@PortfolioLogo,");
            strSql.Append("EntrustPrice=@EntrustPrice,");
            strSql.Append("EntrustAmount=@EntrustAmount,");
            strSql.Append("SpotCode=@SpotCode,");
            strSql.Append("TradeAmount=@TradeAmount,");
            strSql.Append("TradeAveragePrice=@TradeAveragePrice,");
            strSql.Append("CancelAmount=@CancelAmount,");
            strSql.Append("CancelLogo=@CancelLogo,");
            strSql.Append("BuySellTypeId=@BuySellTypeId,");
            strSql.Append("StockAccount=@StockAccount,");
            strSql.Append("CapitalAccount=@CapitalAccount,");
            strSql.Append("OrderStatusId=@OrderStatusId,");
            strSql.Append("IsMarketValue=@IsMarketValue,");
            strSql.Append("OrderMessage=@OrderMessage,");
            strSql.Append("CurrencyTypeId=@CurrencyTypeId,");
            strSql.Append("TradeUnitId=@TradeUnitId,");
            strSql.Append("CallbackChannlId=@CallbackChannlId,");
            strSql.Append("McOrderId=@McOrderId,");
            strSql.Append("HasDoneProfit=@HasDoneProfit,");
            strSql.Append("OfferTime=@OfferTime,");
            strSql.Append("EntrustTime=@EntrustTime");
            strSql.Append(" where EntrustNumber=@EntrustNumber ");
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, model.EntrustNumber);
            db.AddInParameter(dbCommand, "PortfolioLogo", DbType.AnsiString, model.PortfolioLogo);
            db.AddInParameter(dbCommand, "EntrustPrice", DbType.Decimal, model.EntrustPrice);
            db.AddInParameter(dbCommand, "EntrustAmount", DbType.Int32, model.EntrustAmount);
            db.AddInParameter(dbCommand, "SpotCode", DbType.AnsiString, model.SpotCode);
            db.AddInParameter(dbCommand, "TradeAmount", DbType.Int32, model.TradeAmount);
            db.AddInParameter(dbCommand, "TradeAveragePrice", DbType.Decimal, model.TradeAveragePrice);
            db.AddInParameter(dbCommand, "CancelAmount", DbType.Int32, model.CancelAmount);
            db.AddInParameter(dbCommand, "CancelLogo", DbType.Boolean, model.CancelLogo);
            db.AddInParameter(dbCommand, "BuySellTypeId", DbType.Int32, model.BuySellTypeId);
            db.AddInParameter(dbCommand, "StockAccount", DbType.AnsiString, model.StockAccount);
            db.AddInParameter(dbCommand, "CapitalAccount", DbType.AnsiString, model.CapitalAccount);
            db.AddInParameter(dbCommand, "OrderStatusId", DbType.Int32, model.OrderStatusId);
            db.AddInParameter(dbCommand, "IsMarketValue", DbType.Boolean, model.IsMarketValue);
            db.AddInParameter(dbCommand, "OrderMessage", DbType.AnsiString, model.OrderMessage);
            db.AddInParameter(dbCommand, "CurrencyTypeId", DbType.Int32, model.CurrencyTypeId);
            db.AddInParameter(dbCommand, "TradeUnitId", DbType.Int32, model.TradeUnitId);
            db.AddInParameter(dbCommand, "CallbackChannlId", DbType.AnsiString, model.CallbackChannlId);
            db.AddInParameter(dbCommand, "McOrderId", DbType.AnsiString, model.McOrderId);
            db.AddInParameter(dbCommand, "HasDoneProfit", DbType.Decimal, model.HasDoneProfit);
            db.AddInParameter(dbCommand, "OfferTime", DbType.DateTime, model.OfferTime);
            db.AddInParameter(dbCommand, "EntrustTime", DbType.DateTime, model.EntrustTime);
            if (db.ExecuteNonQuery(dbCommand, transaction) != -1)
            {
                return(true);
            }
            return(false);
        }
        /// <summary>
        /// 依据现货委托单号获取委托单对象
        /// </summary>
        /// <param name="strEntrustId"></param>
        /// <returns></returns>
        public static XH_TodayEntrustTableInfo GetXHEntrustEntity(string strEntrustId)
        {
            XH_TodayEntrustTableInfo result = null;
            XH_TodayEntrustTableDal  xh_TodayEntrustTableDal = new XH_TodayEntrustTableDal();


            result = xh_TodayEntrustTableDal.GetModel(strEntrustId);

            return(result);
        }
        /// <summary>
        /// 依据现货委托单号获取委托单对象
        /// </summary>
        /// <param name="strEntrustId"></param>
        /// <param name="tm"></param>
        /// <returns></returns>
        public static XH_TodayEntrustTableInfo GetXHEntrustEntity(string strEntrustId, ReckoningTransaction tm)
        {
            XH_TodayEntrustTableInfo result = null;

            XH_TodayEntrustTableDal xh_TodayEntrustTableDal = new XH_TodayEntrustTableDal();


            result = xh_TodayEntrustTableDal.GetModel(strEntrustId, tm);

            return(result);
        }
 /// <summary>
 /// 双击列表中委托单号显示在对应的委托单号文本框中
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void daXHTodayEntrust_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     foreach (DataGridViewRow row in this.daXHTodayEntrust.SelectedRows)
     {
         XH_TodayEntrustTableInfo TodayEntrust = row.DataBoundItem as XH_TodayEntrustTableInfo;
         if (TodayEntrust == null)
         {
             return;
         }
         this.txtQueryXHNumber.Text = TodayEntrust.EntrustNumber;
     }
 }
Ejemplo n.º 11
0
 /// <summary>
 /// 更新现货委托单状态
 /// </summary>
 /// <param name="stockOrder">委托单</param>
 public static void UpdateStockOrderStatus(XH_TodayEntrustTableInfo stockOrder)
 {
     try
     {
         string format = "update xh_todayentrusttable set orderstatusid={0} where entrustnumber='{1}'";
         string sql    = string.Format(format, stockOrder.OrderStatusId, stockOrder.EntrustNumber);
         DbHelperSQL.ExecuteSql(sql);
     }
     catch (Exception ex)
     {
         LogHelper.WriteError(ex.Message, ex);
     }
 }
Ejemplo n.º 12
0
        /// <summary>
        /// 更新现货委托单
        /// </summary>
        /// <param name="stockOrder">委托单</param>
        public static bool UpdateStockOrder(XH_TodayEntrustTableInfo stockOrder)
        {
            bool isSuccess = false;
            XH_TodayEntrustTableDal dal = new XH_TodayEntrustTableDal();

            try
            {
                // var sxtetp = new SqlXhTodayEntrustTableProvider(TransactionFactory.RC_ConnectionString, true,
                // string.Empty);
                //sxtetp.Update(stockOrder);
                dal.Update(stockOrder);
                isSuccess = true;
            }
            catch (Exception ex)
            {
                LogHelper.WriteDebug("OrderOfferDataLogic.UpdateStockOrder改使用企业库执行第1次" + ex.Message);
            }

            //使用企业库执行第1次
            if (!isSuccess)
            {
                try
                {
                    // XhTodayEntrustTableDao.Update(stockOrder);
                    dal.Update(stockOrder);
                    isSuccess = true;
                }
                catch (Exception ex)
                {
                    LogHelper.WriteDebug("OrderOfferDataLogic.UpdateStockOrder使用企业库执行第2次" + ex.Message);
                }
            }

            //使用企业库执行第2次
            if (!isSuccess)
            {
                try
                {
                    // XhTodayEntrustTableDao.Update(stockOrder);
                    dal.Update(stockOrder);
                    isSuccess = true;
                }
                catch (Exception ex)
                {
                    LogHelper.WriteError("OrderOfferDataLogic.UpdateStockOrder彻底失败!", ex);
                }
            }

            return(isSuccess);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 检查是否有超过数据库限制长度的字段
        /// </summary>
        /// <param name="tet"></param>
        private static void CheckEntrustLength(XH_TodayEntrustTableInfo tet)
        {
            if (tet.PortfolioLogo.Length > 25)
            {
                string format1 = "CheckEntrustLength[PortfolioLogo={0}]";
                string desc1   = string.Format(format1, tet.PortfolioLogo);
                LogHelper.WriteDebug(desc1);
                tet.PortfolioLogo = tet.PortfolioLogo.Substring(0, 25);
            }

            if (tet.StockAccount.Length > 20)
            {
                string format1 = "CheckEntrustLength[StockAccount={0}]";
                string desc1   = string.Format(format1, tet.StockAccount);
                LogHelper.WriteDebug(desc1);
                tet.StockAccount = tet.StockAccount.Substring(0, 20);
            }

            if (tet.CapitalAccount.Length > 20)
            {
                string format1 = "CheckEntrustLength[CapitalAccount={0}]";
                string desc1   = string.Format(format1, tet.CapitalAccount);
                LogHelper.WriteDebug(desc1);
                tet.CapitalAccount = tet.CapitalAccount.Substring(0, 20);
            }

            if (tet.OrderMessage.Length > 100)
            {
                string format1 = "CheckEntrustLength[OrderMessage={0}]";
                string desc1   = string.Format(format1, tet.OrderMessage);
                LogHelper.WriteDebug(desc1);
                tet.OrderMessage = tet.OrderMessage.Substring(0, 100);
            }

            if (tet.CallbackChannlId.Length > 50)
            {
                string format1 = "CheckEntrustLength[CallbackChannlId={0}]";
                string desc1   = string.Format(format1, tet.CallbackChannlId);
                LogHelper.WriteDebug(desc1);
                tet.CallbackChannlId = tet.CallbackChannlId.Substring(0, 50);
            }

            if (tet.McOrderId.Length > 100)
            {
                string format1 = "CheckEntrustLength[McOrderId={0}]";
                string desc1   = string.Format(format1, tet.McOrderId);
                LogHelper.WriteDebug(desc1);
                tet.McOrderId = tet.McOrderId.Substring(0, 100);
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 更新委托表(带事务)
        /// </summary>
        /// <param name="tet">委托表</param>
        /// <param name="db"></param>
        /// <param name="transaction"></param>
        /// <returns>是否成功</returns>
        public static bool UpdateEntrustTable(XH_TodayEntrustTableInfo tet, Database db, DbTransaction transaction)
        {
            try
            {
                XH_TodayEntrustTableDal dal = new XH_TodayEntrustTableDal();
                dal.Update(tet, db, transaction);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
                return(false);
            }

            return(true);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 根据委托单号获取今日委托
        /// </summary>
        /// <param name="entrustNumber">委托单号</param>
        /// <returns>今日委托</returns>
        public static XH_TodayEntrustTableInfo GetTodayEntrustTable(string entrustNumber)
        {
            XH_TodayEntrustTableInfo tet = null;

            XH_TodayEntrustTableDal dal = new XH_TodayEntrustTableDal();

            try
            {
                tet = dal.GetModel(entrustNumber);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }

            return(tet);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 根据委托单号获取委托,先在当日中查找,找不到再到历史中查找,转换成当日委托实体
        /// </summary>
        /// <param name="entrustNumber">委托单号</param>
        /// <returns>今日委托</returns>
        public static XH_TodayEntrustTableInfo GetAllEntrustTable(string entrustNumber)
        {
            XH_TodayEntrustTableInfo tet = null;

            tet = GetTodayEntrustTable(entrustNumber);

            if (tet == null)
            {
                var tet2 = GetHistoryEntrustTable(entrustNumber);
                if (tet2 != null)
                {
                    tet = ConvertHistoryEntrustTable(tet2);
                }
            }

            return(tet);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public XH_TodayEntrustTableInfo GetModel(string EntrustNumber, ReckoningTransaction tm)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select EntrustNumber,PortfolioLogo,EntrustPrice,EntrustAmount,SpotCode,TradeAmount,TradeAveragePrice,CancelAmount,CancelLogo,BuySellTypeId,StockAccount,CapitalAccount,OrderStatusId,IsMarketValue,OrderMessage,CurrencyTypeId,TradeUnitId,CallbackChannlId,McOrderId,HasDoneProfit,OfferTime,EntrustTime from XH_TodayEntrustTable ");
            strSql.Append(" where EntrustNumber=@EntrustNumber ");
            Database  db        = tm.Database;
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, EntrustNumber);
            XH_TodayEntrustTableInfo model = null;

            using (IDataReader dataReader = db.ExecuteReader(dbCommand, tm.Transaction))
            {
                if (dataReader.Read())
                {
                    model = ReaderBind(dataReader);
                }
            }
            return(model);
        }
Ejemplo n.º 18
0
        /// <summary>
        /// 处理撤单委托状态
        /// </summary>
        /// <param name="tet">委托表</param>
        public static void ProcessCancelOrderStatus(XH_TodayEntrustTableInfo tet)
        {
            //未报,待报,已报的单,做废单处理
            if (tet.OrderStatusId == (int)Types.OrderStateType.DOSUnRequired ||
                tet.OrderStatusId == (int)Types.OrderStateType.DOSRequiredSoon ||
                tet.OrderStatusId == (int)Types.OrderStateType.DOSIsRequired)
            {
                tet.OrderStatusId = (int)Types.OrderStateType.DOSCanceled;
            }
            //已报待撤的单:默认撤单成功,改状态为已撤
            else if (tet.OrderStatusId == (int)Types.OrderStateType.DOSRequiredRemoveSoon)
            {
                tet.OrderStatusId = (int)Types.OrderStateType.DOSRemoved;
            }
            //部成,部成待撤的单:默认撤单成功,改状态为部撤
            else if (tet.OrderStatusId == (int)Types.OrderStateType.DOSPartDealRemoveSoon ||
                     tet.OrderStatusId == (int)Types.OrderStateType.DOSPartDealed)
            {
                tet.OrderStatusId = (int)Types.OrderStateType.DOSPartRemoved;
            }

            //其他的保持原有状态
        }
 /// <summary>
 /// 构造器
 /// </summary>
 /// <param name="original"></param>
 public XhTodayEntrustTableEx(XH_TodayEntrustTableInfo original)
 {
     OriginalEntity = original;
 }
Ejemplo n.º 20
0
        /// <summary>
        /// 对象实体绑定数据
        /// </summary>
        public XH_TodayEntrustTableInfo ReaderBind(IDataReader dataReader)
        {
            XH_TodayEntrustTableInfo model = new XH_TodayEntrustTableInfo();
            object ojb;

            model.EntrustNumber = dataReader["EntrustNumber"].ToString();
            model.PortfolioLogo = dataReader["PortfolioLogo"].ToString();
            ojb = dataReader["EntrustPrice"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.EntrustPrice = (decimal)ojb;
            }
            ojb = dataReader["EntrustAmount"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.EntrustAmount = (int)ojb;
            }
            model.SpotCode = dataReader["SpotCode"].ToString();
            ojb            = dataReader["TradeAmount"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeAmount = (int)ojb;
            }
            ojb = dataReader["TradeAveragePrice"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeAveragePrice = (decimal)ojb;
            }
            ojb = dataReader["CancelAmount"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CancelAmount = (int)ojb;
            }
            ojb = dataReader["CancelLogo"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CancelLogo = (bool)ojb;
            }
            ojb = dataReader["BuySellTypeId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.BuySellTypeId = (int)ojb;
            }
            model.StockAccount   = dataReader["StockAccount"].ToString();
            model.CapitalAccount = dataReader["CapitalAccount"].ToString();
            ojb = dataReader["OrderStatusId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.OrderStatusId = (int)ojb;
            }
            ojb = dataReader["IsMarketValue"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.IsMarketValue = (bool)ojb;
            }
            model.OrderMessage = dataReader["OrderMessage"].ToString();
            ojb = dataReader["CurrencyTypeId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CurrencyTypeId = (int)ojb;
            }
            ojb = dataReader["TradeUnitId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeUnitId = (int)ojb;
            }
            model.CallbackChannlId = dataReader["CallbackChannlId"].ToString();
            model.McOrderId        = dataReader["McOrderId"].ToString();
            ojb = dataReader["HasDoneProfit"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.HasDoneProfit = (decimal)ojb;
            }
            ojb = dataReader["OfferTime"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.OfferTime = (DateTime)ojb;
            }
            ojb = dataReader["EntrustTime"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.EntrustTime = (DateTime)ojb;
            }
            return(model);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 更新过户记录
        /// </summary>
        /// <param name="tm">TransactionManager</param>
        /// <param name="cash">分红信息</param>
        /// <param name="tables">登记列表</param>
        private static bool UpdateStockCut(ReckoningTransaction tm, List <XH_MelonCutRegisterTableInfo> tables)
        {
            #region old code 李健华 2010-06-11 改为因为在每天开市时处理那么生成为当日委托我成交
            //List<XH_AccountHoldTableInfo> accountHoldList = new List<XH_AccountHoldTableInfo>();
            //List<XH_HistoryTradeTableInfo> historyTradeList = new List<XH_HistoryTradeTableInfo>();

            ////add 2010-1-15 因为数据库表有的成交记录是根据委托编号有外键关系,所以这里要生成委托记录
            //List<XH_HistoryEntrustTableInfo> historyEntrustList = new List<XH_HistoryEntrustTableInfo>();
            ////========

            //foreach (XH_MelonCutRegisterTableInfo registerTable in tables)
            //{
            //    //更新持仓表
            //    List<XH_AccountHoldTableInfo> accountHoldTables = GetAccountHoldList(
            //        registerTable.UserAccountDistributeLogo,
            //        registerTable.TradeCurrencyType, registerTable.Code);
            //    if (Utils.IsNullOrEmpty(accountHoldTables))
            //        continue;

            //    //过户的量
            //    decimal num = registerTable.RegisterAmount;
            //    //四舍五入
            //    num = Math.Round(num);
            //    int intNum = decimal.ToInt32(num);

            //    XH_AccountHoldTableInfo accountTable = accountHoldTables[0];
            //    SetAccountTable(accountTable, intNum);

            //    accountHoldList.Add(accountTable);

            //    //更新委托记录表
            //    XH_HistoryEntrustTableInfo historyEntrustTable = GetHistoryEntrustTable(registerTable, intNum);
            //    historyEntrustList.Add(historyEntrustTable);
            //    //更新历史成交表
            //    XH_HistoryTradeTableInfo historyTradeTable = GetHistoryTradeTable(registerTable, intNum);
            //    historyTradeTable.EntrustNumber = historyEntrustTable.EntrustNumber;
            //    historyTradeTable.CapitalAccount = historyEntrustTable.CapitalAccount;
            //    historyTradeList.Add(historyTradeTable);

            //    string format = "MelonCutService.UpdateStockCut进行股票分红[商品代码={0},持仓帐号={1},分红金额={2}]";
            //    string desc = string.Format(format, registerTable.Code, registerTable.UserAccountDistributeLogo, num);
            //    LogHelper.WriteDebug(desc);
            //}


            //XH_AccountHoldTableDal xh_AccountHoldTableDal = new XH_AccountHoldTableDal();
            //if (accountHoldList.Count > 0)
            //{
            //    foreach (var holdTableInfo in accountHoldList)
            //    {
            //        xh_AccountHoldTableDal.Update(holdTableInfo, tm.Database, tm.Transaction);
            //    }
            //}

            ////先添加委托记录
            //XH_HistoryEntrustTableDal xh_HistoryEntrustTableDal = new XH_HistoryEntrustTableDal();
            //if (historyEntrustList.Count > 0)
            //{
            //    foreach (XH_HistoryEntrustTableInfo item in historyEntrustList)
            //    {

            //        xh_HistoryEntrustTableDal.Add(item, tm.Database, tm.Transaction);
            //    }
            //}
            ////添加成交记录
            ////DataRepository.XhAccountHoldTableProvider.Update(tm, accountHoldList);

            ////DataRepository.XhHistoryTradeTableProvider.BulkInsert(historyTradeList);
            //XH_HistoryTradeTableDal xh_HistoryTradeTableDal = new XH_HistoryTradeTableDal();
            //if (historyTradeList.Count > 0)
            //{
            //    foreach (XH_HistoryTradeTableInfo historyTradeTable in historyTradeList)
            //    {
            //        //DataRepository.XhHistoryTradeTableProvider.Insert(tm, historyTradeTable);
            //        xh_HistoryTradeTableDal.Add(historyTradeTable, tm.Database, tm.Transaction);
            //    }
            //}


            ////删除对应的登记记录
            ////DataRepository.XhMelonCutRegisterTableProvider.Delete(tm, tables);
            //XH_MelonCutRegisterTableDal xh_MelonCutRegisterTableDal = new XH_MelonCutRegisterTableDal();
            //if (tables.Count > 0)
            //{
            //    foreach (var data in tables)
            //    {
            //        xh_MelonCutRegisterTableDal.Delete(data, tm.Database, tm.Transaction);
            //    }
            //}
            #endregion

            #region new code 李健华 2010-06-11 改为因为在每天开市时处理那么生成为当日委托我成交
            bool issuc = true;
            try
            {
                List <XH_AccountHoldTableInfo> accountHoldList = new List <XH_AccountHoldTableInfo>();
                List <XH_TodayTradeTableInfo>  todayTradeList  = new List <XH_TodayTradeTableInfo>();

                //add 2010-1-15 因为数据库表有的成交记录是根据委托编号有外键关系,所以这里要生成委托记录
                List <XH_TodayEntrustTableInfo>  todayEntrustList = new List <XH_TodayEntrustTableInfo>();
                UA_UserAccountAllocationTableDal dal = new UA_UserAccountAllocationTableDal();

                //========

                foreach (XH_MelonCutRegisterTableInfo registerTable in tables)
                {
                    //更新持仓表
                    List <XH_AccountHoldTableInfo> accountHoldTables = GetAccountHoldList(registerTable.UserAccountDistributeLogo, registerTable.TradeCurrencyType, registerTable.Code);
                    if (Utils.IsNullOrEmpty(accountHoldTables))
                    {
                        continue;
                    }

                    //过户的量
                    decimal num = registerTable.RegisterAmount;
                    //四舍五入
                    num = Math.Round(num);
                    int intNum = decimal.ToInt32(num);

                    XH_AccountHoldTableInfo accountTable = accountHoldTables[0];
                    SetAccountTable(accountTable, intNum);

                    accountHoldList.Add(accountTable);

                    //更新委托记录表
                    XH_TodayEntrustTableInfo todayEntrustTable = GetHistoryEntrustTable(registerTable, intNum);
                    todayEntrustList.Add(todayEntrustTable);
                    //更新历史成交表
                    XH_TodayTradeTableInfo todayTradeTable = GetTodayTradeTable(registerTable, intNum);
                    todayTradeTable.EntrustNumber  = todayEntrustTable.EntrustNumber;
                    todayTradeTable.CapitalAccount = todayEntrustTable.CapitalAccount;
                    todayTradeList.Add(todayTradeTable);
                    UA_UserAccountAllocationTableInfo userModel = dal.GetModel(registerTable.UserAccountDistributeLogo);
                    #region 回推相关成交记录信息
                    ReckonEndObject <XH_TodayEntrustTableInfo, XH_TodayTradeTableInfo> reckonEndObject = new ReckonEndObject <XH_TodayEntrustTableInfo, XH_TodayTradeTableInfo>();
                    reckonEndObject.IsSuccess    = true;
                    reckonEndObject.EntrustTable = todayEntrustTable;
                    List <XH_TodayTradeTableInfo> tradeModels = new List <XH_TodayTradeTableInfo>();
                    tradeModels.Add(todayTradeTable);
                    reckonEndObject.TradeTableList = tradeModels;
                    if (userModel != null)
                    {
                        reckonEndObject.TradeID = userModel.UserID;
                    }
                    reckonEndObject.Message = "分红委托成交";

                    CounterOrderService.Instance.AcceptStockDealOrder(reckonEndObject);
                    #endregion

                    string format = "MelonCutService.UpdateStockCut进行股票分红[商品代码={0},持仓帐号={1},分红金额={2}]";
                    string desc   = string.Format(format, registerTable.Code, registerTable.UserAccountDistributeLogo, num);
                    LogHelper.WriteDebug(desc);
                }


                XH_AccountHoldTableDal xh_AccountHoldTableDal = new XH_AccountHoldTableDal();
                if (accountHoldList.Count > 0)
                {
                    foreach (var holdTableInfo in accountHoldList)
                    {
                        xh_AccountHoldTableDal.Update(holdTableInfo, tm.Database, tm.Transaction);
                    }
                }

                //先添加委托记录
                XH_TodayEntrustTableDal xh_HistoryEntrustTableDal = new XH_TodayEntrustTableDal();
                if (todayEntrustList.Count > 0)
                {
                    foreach (XH_TodayEntrustTableInfo item in todayEntrustList)
                    {
                        xh_HistoryEntrustTableDal.Add(item, tm.Database, tm.Transaction);
                    }
                }
                //添加成交记录
                //DataRepository.XhAccountHoldTableProvider.Update(tm, accountHoldList);

                //DataRepository.XhHistoryTradeTableProvider.BulkInsert(historyTradeList);
                XH_TodayTradeTableDal xh_todayTradeTableDal = new XH_TodayTradeTableDal();
                if (todayTradeList.Count > 0)
                {
                    foreach (XH_TodayTradeTableInfo todayTradeTable in todayTradeList)
                    {
                        //DataRepository.XhHistoryTradeTableProvider.Insert(tm, historyTradeTable);
                        xh_todayTradeTableDal.Add(todayTradeTable, tm);
                    }
                }


                //删除对应的登记记录
                //DataRepository.XhMelonCutRegisterTableProvider.Delete(tm, tables);
                XH_MelonCutRegisterTableDal xh_MelonCutRegisterTableDal = new XH_MelonCutRegisterTableDal();
                if (tables.Count > 0)
                {
                    foreach (var data in tables)
                    {
                        xh_MelonCutRegisterTableDal.Delete(data, tm.Database, tm.Transaction);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteError("过户分红异常" + ex.Message, ex);
                issuc = false;
            }
            return(issuc);

            #endregion
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 构建现货委托单
        /// </summary>
        /// <param name="order"></param>
        /// <param name="originalOrder"></param>
        /// <param name="strHoldingAccount"></param>
        /// <param name="strCapitalAccount"></param>
        /// <param name="iCurType"></param>
        /// <param name="strMessage"></param>
        /// <returns></returns>
        public static string BuildXhOrder(ref XH_TodayEntrustTableInfo order, StockOrderRequest originalOrder,
                                          string strHoldingAccount, string strCapitalAccount, int iCurType,
                                          ref string strMessage)
        {
            if (order == null)
            {
                order = new XH_TodayEntrustTableInfo();
            }

            order.EntrustNumber  = BuildXHOrderNo();
            order.CurrencyTypeId = iCurType;
            order.TradeUnitId    = (int)originalOrder.OrderUnitType;
            order.EntrustAmount  = (int)originalOrder.OrderAmount;
            order.EntrustPrice   = Convert.ToDecimal(originalOrder.OrderPrice);
            order.EntrustTime    = DateTime.Now;
            order.OfferTime      = DateTime.Now;
            order.IsMarketValue  = originalOrder.OrderWay == Types.OrderPriceType.OPTMarketPrice
                                      ? true
                                      : false;
            order.BuySellTypeId = (int)originalOrder.BuySell;
            order.OrderStatusId = (int)Types.OrderStateType.DOSUnRequired;

            if (strHoldingAccount == null)
            {
                strHoldingAccount = "";
            }
            order.StockAccount = strHoldingAccount.Trim();

            if (strCapitalAccount == null)
            {
                strCapitalAccount = "";
            }
            order.CapitalAccount = strCapitalAccount.Trim();

            if (originalOrder.PortfoliosId == null)
            {
                originalOrder.PortfoliosId = "";
            }
            order.PortfolioLogo = originalOrder.PortfoliosId.Trim();

            if (originalOrder.Code == null)
            {
                originalOrder.Code = "";
            }
            order.SpotCode = originalOrder.Code.Trim();

            order.TradeAmount       = 0;
            order.TradeAveragePrice = 0;
            order.CancelAmount      = 0;
            order.CancelLogo        = true;

            if (originalOrder.ChannelID == null)
            {
                originalOrder.ChannelID = "";
            }
            order.CallbackChannlId = originalOrder.ChannelID.Trim();

            order.IsMarketValue = originalOrder.OrderWay == Types.OrderPriceType.OPTMarketPrice
                                      ? true
                                      : false;
            order.OrderMessage = "";
            order.McOrderId    = "";
            CheckEntrustLength(order);

#if (DEBUG)
            LogHelper.WriteDebug("XHCommonLogic.BuildXhOrder:" + order);
#endif

            XH_TodayEntrustTableDal dal = new XH_TodayEntrustTableDal();
            dal.Add(order);

            return(order.EntrustNumber);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// 构建现货成交回报
        /// </summary>
        /// <param name="tet"></param>
        /// <param name="sdbe"></param>
        /// <param name="xhcr"></param>
        /// <param name="dealCapital"></param>
        /// <param name="tm"></param>
        /// <returns></returns>
        public static XH_TodayTradeTableInfo BuildXHDealRpt(XH_TodayEntrustTableInfo tet, StockDealBackEntity sdbe,
                                                            XHCostResult xhcr, decimal dealCapital,
                                                            ReckoningTransaction tm)
        {
            string result = string.Empty;

            //成交回报实体
            var xhDealrpt = new XH_TodayTradeTableInfo();

            //xhDealrpt.TradeNumber = this.BuildXHDealOrderNo();
            xhDealrpt.TradeNumber = sdbe.Id; //不再自己构建id,使用成交回报的id,一一对应
            //成交时间
            xhDealrpt.TradeTime = sdbe.DealTime;
            //成交价
            xhDealrpt.TradePrice = sdbe.DealPrice;
            //成交单位
            xhDealrpt.TradeUnitId = tet.TradeUnitId;
            //成交量
            xhDealrpt.TradeAmount = Convert.ToInt32(sdbe.DealAmount);
            //股东代码
            xhDealrpt.StockAccount = tet.StockAccount;
            //资金帐户
            xhDealrpt.CapitalAccount = tet.CapitalAccount;
            //成交回报类型
            xhDealrpt.TradeTypeId = (int)Types.DealRptType.DRTDealed;
            //现货名称
            xhDealrpt.SpotCode = tet.SpotCode;
            //印花税
            xhDealrpt.StampTax = xhcr.StampDuty;
            //佣金
            xhDealrpt.Commission = xhcr.Commision;
            //过户费
            xhDealrpt.TransferAccountFee = xhcr.TransferToll;
            //交易系统使用费
            xhDealrpt.TradingSystemUseFee = xhcr.TradeSystemFees;
            //监管费
            xhDealrpt.MonitoringFee = xhcr.MonitoringFee;
            //结算费
            xhDealrpt.ClearingFee = xhcr.ClearingFees;
            //委托价格
            xhDealrpt.EntrustPrice = tet.EntrustPrice;
            //成交金额
            xhDealrpt.TradeCapitalAmount = dealCapital; // xhDealrpt.TradePrice*xhDealrpt.TradeAmount;//TODO:是否正确?没有算比例
            //投组标识
            xhDealrpt.PortfolioLogo = tet.PortfolioLogo;
            //货币类型
            xhDealrpt.CurrencyTypeId = tet.CurrencyTypeId;
            //买卖方向
            xhDealrpt.BuySellTypeId = tet.BuySellTypeId;

            xhDealrpt.EntrustNumber = tet.EntrustNumber;
            XH_TodayTradeTableDal xhTodayTradeTableDal = new XH_TodayTradeTableDal();

            if (xhTodayTradeTableDal.Exists(xhDealrpt.TradeNumber))
            {
                string format = "BuildXHDealRpt数据库已经存在TradeNumber={0}";
                string desc   = string.Format(format, xhDealrpt.TradeNumber);
                LogHelper.WriteDebug(desc);

                //xhDealrpt = xhTodayTradeTableDal.GetModel(xhDealrpt.TradeNumber);
                return(null);
            }

            try
            {
                xhTodayTradeTableDal.Add(xhDealrpt, tm);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
                xhDealrpt = null;
            }

            return(xhDealrpt);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// 构建现货撤单成交回报
        /// </summary>
        /// <param name="tet"></param>
        /// <param name="rde"></param>
        /// <param name="tm"></param>
        /// <param name="trade"></param>
        /// <param name="isInternalCancel"></param>
        /// <returns></returns>
        public static string BuildXHCancelRpt(XH_TodayEntrustTableInfo tet, CancelOrderEntity rde,
                                              ReckoningTransaction tm, out XH_TodayTradeTableInfo trade,
                                              bool isInternalCancel)
        {
            string result = string.Empty;

            //当为价格错误的撤单时,直接作为废单,不记录到数据库中。
            if (rde.OrderVolume == -1)
            {
                trade = null;
                return(result);
            }

            //成交回报实体
            var xhDealrpt = new XH_TodayTradeTableInfo();

            //xhDealrpt.TradeNumber = this.BuildXHDealOrderNo();
            xhDealrpt.TradeNumber = rde.Id; //不再自己构建id,使用撤单回报的id,一一对应
            //成交时间
            xhDealrpt.TradeTime = DateTime.Now;
            //成交价
            xhDealrpt.TradePrice = 0;
            //成交单位
            xhDealrpt.TradeUnitId = tet.TradeUnitId;
            //成交量
            xhDealrpt.TradeAmount = Convert.ToInt32(rde.OrderVolume);
            //股东代码
            xhDealrpt.StockAccount = tet.StockAccount;
            //资金帐户
            xhDealrpt.CapitalAccount = tet.CapitalAccount;
            //成交回报类型
            if (isInternalCancel)
            {
                xhDealrpt.TradeTypeId = (int)Types.DealRptType.DRTInternalCanceled;
            }
            else
            {
                xhDealrpt.TradeTypeId = (int)Types.DealRptType.DRTCanceled;
            }
            //现货名称
            xhDealrpt.SpotCode = tet.SpotCode;

            //印花税
            xhDealrpt.StampTax = 0;
            //佣金
            xhDealrpt.Commission = 0;
            //过户费
            xhDealrpt.TransferAccountFee = 0;
            //交易系统使用费
            xhDealrpt.TradingSystemUseFee = 0;
            //监管费
            xhDealrpt.MonitoringFee = 0;
            xhDealrpt.ClearingFee   = 0;

            //委托价格
            xhDealrpt.EntrustPrice = tet.EntrustPrice;
            //成交金额
            xhDealrpt.TradeCapitalAmount = xhDealrpt.TradePrice * xhDealrpt.TradeAmount;
            //投组标识
            xhDealrpt.PortfolioLogo = tet.PortfolioLogo;
            //货币类型
            xhDealrpt.CurrencyTypeId = tet.CurrencyTypeId;
            //买卖方向
            xhDealrpt.BuySellTypeId = tet.BuySellTypeId;

            xhDealrpt.EntrustNumber = tet.EntrustNumber;
            XH_TodayTradeTableDal xhTodayTradeTableDal = new XH_TodayTradeTableDal();

            xhTodayTradeTableDal.Add(xhDealrpt, tm);
            result = xhDealrpt.TradeNumber;

            trade = xhDealrpt;
            return(result);
        }