/// <summary>
        /// 更新一条数据
        ///<param name="model"></param>
        /// </summary>
        public void Update(HK_TodayTradeInfo model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update HK_TodayTrade set ");
            strSql.Append("EntrustNumber=@EntrustNumber,");
            strSql.Append("PortfolioLogo=@PortfolioLogo,");
            strSql.Append("TradePrice=@TradePrice,");
            strSql.Append("TradeAmount=@TradeAmount,");
            strSql.Append("EntrustPrice=@EntrustPrice,");
            strSql.Append("StampTax=@StampTax,");
            strSql.Append("Commission=@Commission,");
            strSql.Append("TransferAccountFee=@TransferAccountFee,");
            strSql.Append("TradeProceduresFee=@TradeProceduresFee,");
            strSql.Append("MonitoringFee=@MonitoringFee,");
            strSql.Append("TradingSystemUseFee=@TradingSystemUseFee,");
            strSql.Append("TradeCapitalAmount=@TradeCapitalAmount,");
            strSql.Append("ClearingFee=@ClearingFee,");
            strSql.Append("HoldAccount=@HoldAccount,");
            strSql.Append("CapitalAccount=@CapitalAccount,");
            strSql.Append("Code=@Code,");
            strSql.Append("TradeTypeId=@TradeTypeId,");
            strSql.Append("TradeUnitId=@TradeUnitId,");
            strSql.Append("BuySellTypeId=@BuySellTypeId,");
            strSql.Append("CurrencyTypeId=@CurrencyTypeId,");
            strSql.Append("TradeTime=@TradeTime");
            strSql.Append(" where TradeNumber=@TradeNumber ");
            Database  db        = DatabaseFactory.CreateDatabase();
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "TradeNumber", DbType.AnsiString, model.TradeNumber);
            db.AddInParameter(dbCommand, "PortfolioLogo", DbType.AnsiString, model.PortfolioLogo);
            db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, model.EntrustNumber);
            db.AddInParameter(dbCommand, "TradePrice", DbType.Decimal, model.TradePrice);
            db.AddInParameter(dbCommand, "TradeAmount", DbType.Int32, model.TradeAmount);
            db.AddInParameter(dbCommand, "EntrustPrice", DbType.Decimal, model.EntrustPrice);
            db.AddInParameter(dbCommand, "StampTax", DbType.Decimal, model.StampTax);
            db.AddInParameter(dbCommand, "Commission", DbType.Decimal, model.Commission);
            db.AddInParameter(dbCommand, "TransferAccountFee", DbType.Decimal, model.TransferAccountFee);
            db.AddInParameter(dbCommand, "TradeProceduresFee", DbType.Decimal, model.TradeProceduresFee);
            db.AddInParameter(dbCommand, "MonitoringFee", DbType.Decimal, model.MonitoringFee);
            db.AddInParameter(dbCommand, "TradingSystemUseFee", DbType.Decimal, model.TradingSystemUseFee);
            db.AddInParameter(dbCommand, "TradeCapitalAmount", DbType.Decimal, model.TradeCapitalAmount);
            db.AddInParameter(dbCommand, "ClearingFee", DbType.Decimal, model.ClearingFee);
            db.AddInParameter(dbCommand, "HoldAccount", DbType.AnsiString, model.HoldAccount);
            db.AddInParameter(dbCommand, "CapitalAccount", DbType.AnsiString, model.CapitalAccount);
            db.AddInParameter(dbCommand, "Code", DbType.AnsiString, model.Code);
            db.AddInParameter(dbCommand, "TradeTypeId", DbType.Int32, model.TradeTypeId);
            db.AddInParameter(dbCommand, "TradeUnitId", DbType.Int32, model.TradeUnitId);
            db.AddInParameter(dbCommand, "BuySellTypeId", DbType.Int32, model.BuySellTypeId);
            db.AddInParameter(dbCommand, "CurrencyTypeId", DbType.Int32, model.CurrencyTypeId);
            db.AddInParameter(dbCommand, "TradeTime", DbType.DateTime, model.TradeTime);
            db.ExecuteNonQuery(dbCommand);
        }
        /// <summary>
        /// 得到一个对象实体
        ///<param name="tradeNumber"></param>
        /// </summary>
        public HK_TodayTradeInfo GetModel(string tradeNumber)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select TradeNumber,PortfolioLogo,EntrustNumber,TradePrice,TradeAmount,EntrustPrice,StampTax,Commission,TransferAccountFee,TradeProceduresFee,MonitoringFee,TradingSystemUseFee,TradeCapitalAmount,ClearingFee,HoldAccount,CapitalAccount,Code,TradeTypeId,TradeUnitId,BuySellTypeId,CurrencyTypeId,TradeTime from HK_TodayTrade ");
            strSql.Append(" where TradeNumber=@TradeNumber ");
            Database  db        = DatabaseFactory.CreateDatabase();
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "TradeNumber", DbType.AnsiString, tradeNumber);
            HK_TodayTradeInfo model = null;

            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                if (dataReader.Read())
                {
                    model = ReaderBind(dataReader);
                }
            }
            return(model);
        }
        /// <summary>
        /// 增加一条数据
        ///<param name="model"></param>
        /// </summary>
        public void Add(HK_TodayTradeInfo model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into HK_TodayTrade(");
            strSql.Append("TradeNumber,PortfolioLogo,EntrustNumber,TradePrice,TradeAmount,EntrustPrice,StampTax,Commission,TransferAccountFee,TradeProceduresFee,MonitoringFee,TradingSystemUseFee,TradeCapitalAmount,ClearingFee,HoldAccount,CapitalAccount,Code,TradeTypeId,TradeUnitId,BuySellTypeId,CurrencyTypeId,TradeTime)");

            strSql.Append(" values (");
            strSql.Append("@TradeNumber,@PortfolioLogo,@EntrustNumber,@TradePrice,@TradeAmount,@EntrustPrice,@StampTax,@Commission,@TransferAccountFee,@TradeProceduresFee,@MonitoringFee,@TradingSystemUseFee,@TradeCapitalAmount,@ClearingFee,@HoldAccount,@CapitalAccount,@Code,@TradeTypeId,@TradeUnitId,@BuySellTypeId,@CurrencyTypeId,@TradeTime)");
            Database  db        = DatabaseFactory.CreateDatabase();
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "TradeNumber", DbType.AnsiString, model.TradeNumber);
            db.AddInParameter(dbCommand, "PortfolioLogo", DbType.AnsiString, model.PortfolioLogo);
            db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, model.EntrustNumber);
            db.AddInParameter(dbCommand, "TradePrice", DbType.Decimal, model.TradePrice);
            db.AddInParameter(dbCommand, "TradeAmount", DbType.Int32, model.TradeAmount);
            db.AddInParameter(dbCommand, "EntrustPrice", DbType.Decimal, model.EntrustPrice);
            db.AddInParameter(dbCommand, "StampTax", DbType.Decimal, model.StampTax);
            db.AddInParameter(dbCommand, "Commission", DbType.Decimal, model.Commission);
            db.AddInParameter(dbCommand, "TransferAccountFee", DbType.Decimal, model.TransferAccountFee);
            db.AddInParameter(dbCommand, "TradeProceduresFee", DbType.Decimal, model.TradeProceduresFee);
            db.AddInParameter(dbCommand, "MonitoringFee", DbType.Decimal, model.MonitoringFee);
            db.AddInParameter(dbCommand, "TradingSystemUseFee", DbType.Decimal, model.TradingSystemUseFee);
            db.AddInParameter(dbCommand, "TradeCapitalAmount", DbType.Decimal, model.TradeCapitalAmount);
            db.AddInParameter(dbCommand, "ClearingFee", DbType.Decimal, model.ClearingFee);
            db.AddInParameter(dbCommand, "HoldAccount", DbType.AnsiString, model.HoldAccount);
            db.AddInParameter(dbCommand, "CapitalAccount", DbType.AnsiString, model.CapitalAccount);
            db.AddInParameter(dbCommand, "Code", DbType.AnsiString, model.Code);
            db.AddInParameter(dbCommand, "TradeTypeId", DbType.Int32, model.TradeTypeId);
            db.AddInParameter(dbCommand, "TradeUnitId", DbType.Int32, model.TradeUnitId);
            db.AddInParameter(dbCommand, "BuySellTypeId", DbType.Int32, model.BuySellTypeId);
            db.AddInParameter(dbCommand, "CurrencyTypeId", DbType.Int32, model.CurrencyTypeId);
            db.AddInParameter(dbCommand, "TradeTime", DbType.DateTime, model.TradeTime);
            db.ExecuteNonQuery(dbCommand);
        }
Example #4
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 HK_TodayTradeInfo BuildHKDealRpt(HK_TodayEntrustInfo tet, HKDealBackEntity sdbe,
                                                       HKCostResult xhcr, decimal dealCapital,
                                                       ReckoningTransaction tm)
        {
            string result = string.Empty;

            //成交回报实体
            var hkDealRpt = new HK_TodayTradeInfo();

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

            hkDealRpt.EntrustNumber = tet.EntrustNumber;
            HK_TodayTradeDal hkTodayTradeDal = new HK_TodayTradeDal();

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

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

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

            return(hkDealRpt);
        }
Example #5
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 BuildHKCancelRpt(HK_TodayEntrustInfo tet, CancelOrderEntity rde,
                                              ReckoningTransaction tm, out HK_TodayTradeInfo trade,
                                              bool isInternalCancel)
        {
            string result = string.Empty;

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

            //成交回报实体
            var hkDealrpt = new HK_TodayTradeInfo();

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

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

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

            hkDealrpt.EntrustNumber = tet.EntrustNumber;
            HK_TodayTradeDal hkTodayTradeDal = new HK_TodayTradeDal();

            hkTodayTradeDal.Add(hkDealrpt, tm);
            result = hkDealrpt.TradeNumber;

            trade = hkDealrpt;
            return(result);
        }
        /// <summary>
        /// 对象实体绑定数据
        ///<param name="dataReader"></param>
        /// </summary>
        public HK_TodayTradeInfo ReaderBind(IDataReader dataReader)
        {
            HK_TodayTradeInfo model = new HK_TodayTradeInfo();
            object            ojb;

            model.TradeNumber   = dataReader["TradeNumber"].ToString();
            model.EntrustNumber = dataReader["EntrustNumber"].ToString();
            model.PortfolioLogo = dataReader["PortfolioLogo"].ToString();
            ojb = dataReader["TradePrice"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradePrice = (decimal)ojb;
            }
            ojb = dataReader["TradeAmount"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeAmount = (int)ojb;
            }
            ojb = dataReader["EntrustPrice"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.EntrustPrice = (decimal)ojb;
            }
            ojb = dataReader["StampTax"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.StampTax = (decimal)ojb;
            }
            ojb = dataReader["Commission"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.Commission = (decimal)ojb;
            }
            ojb = dataReader["TransferAccountFee"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TransferAccountFee = (decimal)ojb;
            }
            ojb = dataReader["TradeProceduresFee"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeProceduresFee = (decimal)ojb;
            }
            ojb = dataReader["MonitoringFee"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.MonitoringFee = (decimal)ojb;
            }
            ojb = dataReader["TradingSystemUseFee"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradingSystemUseFee = (decimal)ojb;
            }
            ojb = dataReader["TradeCapitalAmount"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeCapitalAmount = (decimal)ojb;
            }
            ojb = dataReader["ClearingFee"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.ClearingFee = (decimal)ojb;
            }
            model.HoldAccount    = dataReader["HoldAccount"].ToString();
            model.CapitalAccount = dataReader["CapitalAccount"].ToString();
            model.Code           = dataReader["Code"].ToString();
            ojb = dataReader["TradeTypeId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeTypeId = (int)ojb;
            }
            ojb = dataReader["TradeUnitId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeUnitId = (int)ojb;
            }
            ojb = dataReader["BuySellTypeId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.BuySellTypeId = (int)ojb;
            }
            ojb = dataReader["CurrencyTypeId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CurrencyTypeId = (int)ojb;
            }
            ojb = dataReader["TradeTime"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeTime = (DateTime)ojb;
            }
            return(model);
        }