示例#1
0
        private void LoadCommandSummary(CommandManagementItem cmdMngItem)
        {
            //var user = _userBLL.GetById(tradeCommand.SubmitPerson);
            this.tbCommandId.Text    = string.Format("{0}", cmdMngItem.CommandId);
            this.tbFundName.Text     = cmdMngItem.FundDisplay;
            this.tbPortName.Text     = cmdMngItem.PortfolioDisplay;// string.Format("{0}--{1}", tradeCommand.PortfolioCode, tradeCommand.PortfolioName);
            this.tbSecuName.Text     = "N/A";
            this.tbPriceMode.Text    = "N/A";
            this.tbCommandPrice.Text = "N/A";
            //this.tbCommandAmount.Text = string.Format("{0}", tradeCommand.CommandNum);
            //TODO:get the deal amount
            this.tbDealAmount.Text    = "0";
            this.tbAveragePrice.Text  = "N/A";
            this.tbSubmitDate.Text    = cmdMngItem.CommandSubmitDate;
            this.tbSubmitTime.Text    = cmdMngItem.CommandSubmitTime;
            this.tbStartDate.Text     = cmdMngItem.StartDate;
            this.tbStartTime.Text     = cmdMngItem.StartTime;
            this.tbEndDate.Text       = cmdMngItem.EndDate;
            this.tbEndTime.Text       = cmdMngItem.EndTime;
            this.tbCommandStatus.Text = cmdMngItem.CommandStatus;
            this.tbEntrustStatus.Text = cmdMngItem.EntrustExecuteStatus;// CommandStatusHelper.GetEntrustName(tradeCommand.EEntrustStatus);
            this.tbDealStatus.Text    = CommandStatusHelper.GetDealName(cmdMngItem.EDealStatus);

            this.tbSubmitPerson.Text = cmdMngItem.CommandSubmitPerson;
            this.tbModifyPerson.Text = cmdMngItem.ModifyOperator;
            this.tbCancelPerson.Text = cmdMngItem.ModifyOperator;

            this.tbModifyTime.Text  = DateFormat.Format(cmdMngItem.DModifiedDate, ConstVariable.TimeFormat);
            this.tbCancelTime.Text  = DateFormat.Format(cmdMngItem.DCancelDate, ConstVariable.TimeFormat);
            this.tbNotes.Text       = cmdMngItem.Notes;
            this.tbModifyCause.Text = cmdMngItem.ModifiedCause;
            this.tbCancelCause.Text = cmdMngItem.CancelCause;
        }
示例#2
0
 private void LoadCommandSecurities(CommandManagementItem cmdMngItem)
 {
     ClearCommandDetailData();
     LoadSecurityItems(cmdMngItem);
     LoadEntrustItems(cmdMngItem);
     LoadDealItems(cmdMngItem);
 }
示例#3
0
        private void LoadCommandDetail(CommandManagementItem cmdMngItem)
        {
            LoadCommandSummary(cmdMngItem);

            //TODO: load the security/entrust/deal information
            LoadCommandSecurities(cmdMngItem);
        }
示例#4
0
        private void GridView_Command_UpdateRelatedDataGridHandler(UpdateDirection direction, int rowIndex, int columnIndex)
        {
            if (rowIndex < 0 || rowIndex >= _dataSource.Count)
            {
                return;
            }

            CommandManagementItem cmdMngItem = _dataSource[rowIndex];

            switch (direction)
            {
            case UpdateDirection.Select:
            {
                LoadCommandSecurities(cmdMngItem);

                var firstCmdItem = _dataSource.First(p => p.Selection);
                if (firstCmdItem != null)
                {
                    LoadCommandSummary(firstCmdItem);
                }
            }
            break;

            case UpdateDirection.UnSelect:
            {
                var secuItems = _secuDataSource.Where(p => p.CommandId == cmdMngItem.CommandId).ToList();
                foreach (var secuItem in secuItems)
                {
                    _secuDataSource.Remove(secuItem);
                }

                var entrustItems = _entrustDataSource.Where(p => p.CommandId == cmdMngItem.CommandId).ToList();
                foreach (var entrustItem in entrustItems)
                {
                    _entrustDataSource.Remove(entrustItem);
                }

                var dealItems = _dealDataSource.Where(p => p.CommandId == cmdMngItem.CommandId).ToList();
                foreach (var dealItem in dealItems)
                {
                    _dealDataSource.Remove(dealItem);
                }

                var selectedItems = _dataSource.Where(p => p.Selection).ToList();
                if (selectedItems != null && selectedItems.Count > 0)
                {
                    LoadCommandSummary(selectedItems[0]);
                }
                else
                {
                    LoadCommandSummary(_dataSource[0]);
                }
            }
            break;

            default:
                break;
            }
        }
示例#5
0
        private void LoadDealItems(CommandManagementItem cmdMngItem)
        {
            var dealItems = _commandManagementBLL.GetDealItems(cmdMngItem);

            if (dealItems != null)
            {
                dealItems.ForEach(p => _dealDataSource.Add(p));
            }
        }
示例#6
0
        private void LoadEntrustItems(CommandManagementItem cmdMngItem)
        {
            var entrustItems = _commandManagementBLL.GetEntrustItems(cmdMngItem);

            if (entrustItems != null)
            {
                entrustItems.ForEach(p => _entrustDataSource.Add(p));
            }
        }
示例#7
0
        private void LoadSecurityItems(CommandManagementItem cmdMngItem)
        {
            var secuItems = _commandManagementBLL.GetSecurityItems(cmdMngItem);

            if (secuItems != null)
            {
                secuItems.ForEach(p => _secuDataSource.Add(p));
            }
        }
 private void FillEdit(CommandManagementItem cmdMngItem)
 {
     this.tbBasisPoint.Text = "0";
     this.tbTemplate.Text   = string.Format("{0}--{1}", cmdMngItem.TemplateId, cmdMngItem.TemplateName);
     //TODO: submit person
     this.tbFutures.Text       = cmdMngItem.BearContract;
     this.tbStartDate.Text     = DateFormat.Format(cmdMngItem.DStartDate, ConstVariable.DateFormat1);
     this.tbEndDate.Text       = DateFormat.Format(cmdMngItem.DEndDate, ConstVariable.DateFormat1);
     this.tbStartTime.Text     = DateFormat.Format(cmdMngItem.DStartDate, ConstVariable.TimeFormat1);
     this.tbEndTime.Text       = DateFormat.Format(cmdMngItem.DEndDate, ConstVariable.TimeFormat1);
     this.tbAdjProportion.Text = "100";
     //TODO: operation level
     this.tbNotes.Text = cmdMngItem.Notes;
 }
        public List <CommandManagementEntrustItem> GetEntrustItems(CommandManagementItem cmdMngItem)
        {
            var entrustItems     = new List <CommandManagementEntrustItem>();
            var entrustSecuItems = _entrustSecurityBLL.GetByCommandId(cmdMngItem.CommandId);

            if (entrustSecuItems != null && entrustSecuItems.Count > 0)
            {
                var validItems = entrustSecuItems.Where(p => p.EntrustAmount > 0).ToList();
                if (validItems.Count > 0)
                {
                    foreach (var validItem in validItems)
                    {
                        var entrustItem = new CommandManagementEntrustItem
                        {
                            SecuCode          = validItem.SecuCode,
                            SecuType          = validItem.SecuType,
                            EntrustNo         = validItem.EntrustNo,
                            EDirection        = validItem.EntrustDirection,
                            EntrustPrice      = validItem.EntrustPrice,
                            EEntrustPriceType = validItem.EntrustPriceType,
                            EEntrustStatus    = validItem.EntrustStatus,
                            TodayDealAmount   = validItem.TotalDealAmount,
                            TodayDealMoney    = validItem.TotalDealBalance,
                            DEntrustDate      = validItem.CreatedDate,
                            FundName          = cmdMngItem.FundName,
                            PortfolioName     = cmdMngItem.PortfolioName,
                            CommandId         = cmdMngItem.CommandId,
                        };

                        if (entrustItem.EntrustAmount > 0)
                        {
                            entrustItem.DealPercent = entrustItem.TodayDealAmount / entrustItem.EntrustAmount;
                        }

                        var secuItem = SecurityInfoManager.Instance.Get(entrustItem.SecuCode, entrustItem.SecuType);
                        if (secuItem != null)
                        {
                            entrustItem.SecuName = secuItem.SecuName;
                        }

                        entrustItems.Add(entrustItem);
                    }
                }
            }
            return(entrustItems);
        }
        private void FillSummary(CommandManagementItem cmdMngItem)
        {
            if (cmdMngItem == null)
            {
                return;
            }

            this.tbCommandId.Text     = string.Format("{0}", cmdMngItem.CommandId);
            this.tbFundName.Text      = string.Format("{0}--{1}", cmdMngItem.FundCode, cmdMngItem.FundName);
            this.tbPortfolioName.Text = string.Format("{0}--{1}", cmdMngItem.PortfolioCode, cmdMngItem.PortfolioName);
            this.tbCommandType.Text   = string.Empty;
            this.tbArbType.Text       = string.Empty;
            this.tbExecuteStage.Text  = string.Empty;
            this.tbInstNo.Text        = string.Format("{0}", cmdMngItem.InstanceId);
            this.tbInstCode.Text      = string.Format("{0}", cmdMngItem.InstanceCode);
            this.tbSubmitDate.Text    = DateFormat.Format(cmdMngItem.DDate, ConstVariable.DateFormat);
            this.tbSubmitTime.Text    = DateFormat.Format(cmdMngItem.DDate, ConstVariable.TimeFormat);
        }
        public List <CommandManagementDealItem> GetDealItems(CommandManagementItem cmdMngItem)
        {
            var dealItems        = new List <CommandManagementDealItem>();
            var entrustSecuItems = _entrustSecurityBLL.GetByCommandId(cmdMngItem.CommandId);

            if (entrustSecuItems != null && entrustSecuItems.Count > 0)
            {
                var validItems = entrustSecuItems.Where(p => p.TotalDealAmount > 0).ToList();
                if (validItems.Count > 0)
                {
                    foreach (var validItem in validItems)
                    {
                        var dealItem = new CommandManagementDealItem
                        {
                            SecuCode   = validItem.SecuCode,
                            SecuType   = validItem.SecuType,
                            EDirection = validItem.EntrustDirection,
                            DealAmount = validItem.TotalDealAmount,
                            DealMoney  = validItem.TotalDealBalance,
                            //PriceType = validItem.EntrustPriceType,

                            FundName      = cmdMngItem.FundName,
                            PortfolioName = cmdMngItem.PortfolioName,
                            CommandId     = cmdMngItem.CommandId,
                        };

                        if (dealItem.DealAmount > 0)
                        {
                            dealItem.DealPrice = dealItem.DealMoney / dealItem.DealAmount;
                        }

                        var secuItem = SecurityInfoManager.Instance.Get(dealItem.SecuCode, dealItem.SecuType);
                        if (secuItem != null)
                        {
                            dealItem.SecuName = secuItem.SecuName;
                        }

                        dealItems.Add(dealItem);
                    }
                }
            }

            return(dealItems);
        }
        public int Update(CommandManagementItem cmdMngItem)
        {
            DateTime startDate = DateUtil.GetStartDate(cmdMngItem.DStartDate);
            DateTime endDate   = DateUtil.GetEndDate(cmdMngItem.DEndDate, startDate);

            Model.Database.TradeCommand cmdItem = new Model.Database.TradeCommand
            {
                CommandId      = cmdMngItem.CommandId,
                ECommandStatus = Model.EnumType.CommandStatus.Canceled,
                ModifiedDate   = DateTime.Now,
                DStartDate     = startDate,
                DEndDate       = endDate,
                Notes          = cmdMngItem.Notes ?? string.Empty,
                ModifiedCause  = cmdMngItem.ModifiedCause,
                CancelCause    = cmdMngItem.CancelCause,
            };

            return(_tradeCommandBLL.Update(cmdItem));
        }
        private bool Form_LoadData(object sender, object data)
        {
            if (data == null || !(data is CommandManagementItem))
            {
                return(false);
            }

            _cmdMgnItem = data as CommandManagementItem;

            //Load the child top panel
            FillSummary(_cmdMgnItem);

            //load the bottom panel
            FillEdit(_cmdMgnItem);

            //load the grid view
            FillGridView(_cmdMgnItem);

            return(true);
        }
        public List <CommandManagementItem> GetCommandItems()
        {
            var commandItems      = new List <CommandManagementItem>();
            var tradeCommandItems = _tradeCommandBLL.GetAll();

            foreach (var item in tradeCommandItems)
            {
                CommandManagementItem cmdItem = new CommandManagementItem
                {
                    DDate                = item.CreatedDate,
                    CommandId            = item.CommandId,
                    ECommandStatus       = item.ECommandStatus,
                    ArbitrageCopies      = item.CommandNum,
                    DStartDate           = item.DStartDate,
                    DEndDate             = item.DEndDate,
                    EExecutype           = item.EExecuteType,
                    EDealStatus          = item.EDealStatus,
                    EEntrustStatus       = item.EEntrustStatus,
                    CommandModifiedTimes = item.ModifiedTimes,
                    //DDispatchDate = item.d
                    InstanceId    = item.InstanceId,
                    InstanceCode  = item.InstanceCode,
                    PortfolioId   = item.PortfolioId,
                    PortfolioCode = item.PortfolioCode,
                    PortfolioName = item.PortfolioName,
                    TemplateId    = item.TemplateId,
                    TemplateName  = item.TemplateName,
                    BearContract  = item.BearContract,
                    FundCode      = item.AccountCode,
                    FundName      = item.AccountName,
                    Notes         = item.Notes,
                    ModifiedCause = item.ModifiedCause,
                    CancelCause   = item.CancelCause,
                };

                commandItems.Add(cmdItem);
            }

            return(commandItems);
        }
        private void FillGridView(CommandManagementItem cmdMngItem)
        {
            //TODO: query the trading instance security to get the position amount and available amount
            var securities    = _tradeCommandSecurityBLL.GetTradeCommandSecurities(cmdMngItem.CommandId);
            var instSecuItems = _tradeInstanceSecurityBLL.Get(cmdMngItem.InstanceId);

            foreach (var security in securities)
            {
                var item = new ModifySecurityItem
                {
                    Selection           = true,
                    SecuCode            = security.SecuCode,
                    SecuType            = security.SecuType,
                    Fund                = cmdMngItem.FundName,
                    Portfolio           = cmdMngItem.PortfolioDisplay,
                    OriginCommandAmount = security.CommandAmount,
                    EDirection          = security.EDirection,
                    OriginCommandPrice  = security.CommandPrice,
                    EntrustDirection    = string.Format("{0}", (int)security.EDirection),
                    NewCommandAmount    = security.CommandAmount,
                };

                if (instSecuItems != null)
                {
                    var findItem = instSecuItems.Find(p => p.SecuCode.Equals(item.SecuCode) && p.SecuType == item.SecuType);
                    if (findItem != null)
                    {
                        item.AvailableAmount = findItem.AvailableAmount;
                    }
                }

                _dataSource.Add(item);
            }

            QueryQuote();

            this.gridView.Invalidate();
        }
        private int UpdateItem(CommandManagementItem cmdMngItem, List <ModifySecurityItem> modifiedSecuItems, DateTime startDate, DateTime endDate, string notes)
        {
            //var oldInstance = _tradeInstanceBLL.GetInstance(cmdMngItem.InstanceId);
            //if (oldInstance == null || oldInstance.InstanceId != cmdMngItem.InstanceId)
            //{
            //    return -1;
            //}

            //TODO: add the StartDate, EndDate
            TradeCommand cmdItem = new TradeCommand
            {
                CommandId      = cmdMngItem.CommandId,
                ECommandStatus = Model.EnumType.CommandStatus.Modified,
                DStartDate     = startDate,
                DEndDate       = endDate,
                ModifiedDate   = DateTime.Now,
                Notes          = !string.IsNullOrEmpty(notes)?notes: cmdMngItem.Notes,
            };

            List <TradeCommandSecurity> tradeModifiedSecuItems = new List <TradeCommandSecurity>();
            List <TradeCommandSecurity> tradeCancelSecuItems   = new List <TradeCommandSecurity>();
            var selectedModifiedSecuItems = modifiedSecuItems.Where(p => p.Selection).ToList();

            foreach (var secuItem in selectedModifiedSecuItems)
            {
                TradeCommandSecurity tradeSecuItem = new TradeCommandSecurity
                {
                    CommandId     = cmdItem.CommandId,
                    SecuCode      = secuItem.SecuCode,
                    SecuType      = secuItem.SecuType,
                    EDirection    = secuItem.EDirection,
                    CommandAmount = secuItem.NewCommandAmount,
                    CommandPrice  = secuItem.NewCommandPrice,
                    CurrentPrice  = secuItem.LastPrice,
                };

                if (secuItem.Selection)
                {
                    tradeModifiedSecuItems.Add(tradeSecuItem);
                }
                else
                {
                    tradeCancelSecuItems.Add(tradeSecuItem);
                }
            }

            int result = _tradeCommandBLL.Update(cmdItem, tradeModifiedSecuItems, tradeCancelSecuItems);

            if (result > 0)
            {
                //TODO: add more parameters
                TradeInstance tradeInstance = new TradeInstance
                {
                    InstanceId      = cmdMngItem.InstanceId,
                    InstanceCode    = cmdMngItem.InstanceCode,
                    FuturesContract = cmdMngItem.BearContract,
                    //MonitorUnitId = oldInstance.MonitorUnitId,
                    //StockDirection = oldInstance.StockDirection,
                    //FuturesDirection = oldInstance.FuturesDirection,
                    //FuturesPriceType = oldInstance.FuturesPriceType,
                };

                List <TradeInstanceSecurity> modifiedInstSecuItems = new List <TradeInstanceSecurity>();
                List <TradeInstanceSecurity> cancelInstSecuItems   = new List <TradeInstanceSecurity>();
                foreach (var secuItem in selectedModifiedSecuItems)
                {
                    int modifiedAmount = secuItem.NewCommandAmount - secuItem.OriginCommandAmount;

                    TradeInstanceSecurity tradeInstSecuItem = new TradeInstanceSecurity
                    {
                        SecuCode           = secuItem.SecuCode,
                        SecuType           = secuItem.SecuType,
                        InstructionPreBuy  = 0,
                        InstructionPreSell = 0,
                    };

                    //TODO::::::how to handle the case???
                    switch (secuItem.EDirection)
                    {
                    case Model.EnumType.EntrustDirection.BuySpot:
                    {
                        tradeInstSecuItem.InstructionPreBuy = modifiedAmount;
                    }
                    break;

                    case Model.EnumType.EntrustDirection.SellSpot:
                    {
                        tradeInstSecuItem.InstructionPreSell = modifiedAmount;
                    }
                    break;

                    case Model.EnumType.EntrustDirection.SellOpen:
                    {
                        tradeInstSecuItem.InstructionPreSell = modifiedAmount;
                    }
                    break;

                    case Model.EnumType.EntrustDirection.BuyClose:
                    {
                        tradeInstSecuItem.InstructionPreBuy = modifiedAmount;
                    }
                    break;
                    }

                    if (secuItem.Selection)
                    {
                        modifiedInstSecuItems.Add(tradeInstSecuItem);
                    }
                    else
                    {
                        cancelInstSecuItems.Add(tradeInstSecuItem);
                    }
                }

                result = _tradeInstanceBLL.Update(tradeInstance, modifiedInstSecuItems, cancelInstSecuItems);
            }

            return(result);
        }
        public List <CommandManagementSecurityItem> GetSecurityItems(CommandManagementItem cmdMngItem)
        {
            var cmdMngSecuItems  = new List <CommandManagementSecurityItem>();
            var cmdSecuItems     = _tradeCommandSecurityBLL.GetTradeCommandSecurities(cmdMngItem.CommandId);
            var entrustSecuItems = _entrustSecurityBLL.GetByCommandId(cmdMngItem.CommandId);

            foreach (var secuItem in cmdSecuItems)
            {
                var cmdMngSecuItem = new CommandManagementSecurityItem
                {
                    SecuCode      = secuItem.SecuCode,
                    SecuType      = secuItem.SecuType,
                    CommandAmount = secuItem.CommandAmount,
                    EDirection    = secuItem.EDirection,
                    FundName      = cmdMngItem.FundName,
                    PortfolioName = cmdMngItem.PortfolioName,
                    CommandId     = cmdMngItem.CommandId,
                };

                //计算累积委托数量和金额
                var entrustedItems = entrustSecuItems.Where(p => p.SecuCode.Equals(secuItem.SecuCode) &&
                                                            p.SecuType == secuItem.SecuType &&
                                                            p.EntrustStatus == Model.EnumType.EntrustStatus.Completed)
                                     .ToList();
                if (entrustedItems.Count > 0)
                {
                    cmdMngSecuItem.TotalEntrustAmount = entrustedItems.Sum(p => p.EntrustAmount);
                    cmdMngSecuItem.TotalEntrustMoney  = entrustedItems.Sum(p => p.EntrustAmount * p.EntrustPrice);
                }

                //计算累积成交数量和金额
                var dealItems = entrustSecuItems.Where(p => p.SecuCode.Equals(secuItem.SecuCode) &&
                                                       p.SecuType == secuItem.SecuType &&
                                                       (p.DealStatus == Model.EnumType.DealStatus.PartDeal || p.DealStatus == Model.EnumType.DealStatus.Completed))
                                .ToList();
                if (dealItems.Count > 0)
                {
                    cmdMngSecuItem.TotalDealAmount = dealItems.Sum(p => p.TotalDealAmount);
                    cmdMngSecuItem.TotalDealMoney  = dealItems.Sum(p => p.TotalDealBalance);
                }

                cmdMngSecuItem.UnentrustAmount = cmdMngSecuItem.CommandAmount - cmdMngSecuItem.TotalEntrustAmount;
                cmdMngSecuItem.UndealAmount    = cmdMngSecuItem.TotalEntrustAmount - cmdMngSecuItem.TotalDealAmount;

                if (cmdMngSecuItem.UnentrustAmount == 0)
                {
                    cmdMngSecuItem.EEntrustStatus = Model.EnumType.EntrustStatus.Completed;
                }
                else if (cmdMngSecuItem.TotalEntrustAmount > 0)
                {
                    cmdMngSecuItem.EEntrustStatus = Model.EnumType.EntrustStatus.PartExecuted;
                }
                else
                {
                    cmdMngSecuItem.EEntrustStatus = Model.EnumType.EntrustStatus.NoExecuted;
                }

                if (cmdMngSecuItem.UndealAmount == 0 && cmdMngSecuItem.EEntrustStatus == Model.EnumType.EntrustStatus.Completed)
                {
                    cmdMngSecuItem.EDealStatus = Model.EnumType.DealStatus.Completed;
                }
                else if (cmdMngSecuItem.TotalDealAmount > 0)
                {
                    cmdMngSecuItem.EDealStatus = Model.EnumType.DealStatus.PartDeal;
                }
                else
                {
                    cmdMngSecuItem.EDealStatus = Model.EnumType.DealStatus.NoDeal;
                }

                var findItem = SecurityInfoManager.Instance.Get(secuItem.SecuCode, secuItem.SecuType);
                if (findItem != null)
                {
                    cmdMngSecuItem.SecuName = findItem.SecuName;
                }

                cmdMngSecuItems.Add(cmdMngSecuItem);
            }

            return(cmdMngSecuItems);
        }