Example #1
0
        private void BindTransferInfo()
        {
            if (_record == null)
            {
                _record = new StockPositionModel();
            }

            this.txtDealerFrom.Text          = _record.DealerName;
            this.txtAccountName.Text         = _record.AccountName;
            this.txtSecurityCompanyName.Text = _record.SecurityCompanyName;
            this.txtAttributeName.Text       = _record.AttributeName;
            this.txtStockCode.Text           = _record.StockFullCode;
            this.txtStockName.Text           = _record.StockName;
            this.txtHoldingVolume.Text       = _record.StockHoldingVolume.ToString();
            this.txtCurrentPrice.Text        = _record.CurrentPrice.ToString();

            this.txtTransferPrice.Text       = this.txtCurrentPrice.Text;
            this.txtTransferVolume.EditValue = this.txtHoldingVolume.Text;

            //var dealers = _userService.GetAllOperators(showDeleted: false).Where(x => x.Code != _record.DealerCode).OrderBy(x => x.Code).ToList();
            var dealers = _userService.GetAllOperators(showDeleted: true).OrderBy(x => x.Code).ToList();


            this.luReceiver.Initialize(dealers, "Code", "Name", enableSearch: true);
        }
Example #2
0
        private void DisplayEditDialog(StockPositionModel selectedRecord)
        {
            var dialog = this.CreateDialog <_dialogStockTransfer>();

            dialog.RefreshEvent += new _dialogStockTransfer.RefreshParentForm(RefreshForm);
            dialog.Record        = selectedRecord;
            dialog.Text          = "股票转移";

            dialog.ShowDialog();
        }
Example #3
0
        private void BindStockPosition(string dealerCode)
        {
            this.gridControl1.DataSource = null;

            var records = _tradeRecordService.GetDailyRecordsBySearchCondition(beneficiary: dealerCode, tradeDateFrom: _initDate);

            if (!records.Any())
            {
                return;
            }

            IList <StockPositionModel> userStockPositionInfos = new List <StockPositionModel>();

            var stockFullCodes = records.Select(x => x.StockCode).Distinct().ToArray();

            var today = DateTime.Now.Date;

            var currentClosePrices = this._tkLineService.GetStockClosePrices(today, stockFullCodes);

            var recordsByAccount = records.GroupBy(x => x.AccountId);

            var accountIds   = records.Select(x => x.AccountId).Distinct().ToArray();
            var accountInfos = _accountService.GetAccountInfos(accountIds: accountIds);

            foreach (var accountGroup in recordsByAccount)
            {
                var currentAccount = accountInfos.SingleOrDefault(x => x.Id == accountGroup.Key);

                if (currentAccount == null)
                {
                    continue;
                }

                var recordsByStock = accountGroup.GroupBy(x => x.StockCode);
                foreach (var stockGroup in recordsByStock)
                {
                    var holdingVolume = stockGroup.Sum(x => x.DealVolume);

                    if (holdingVolume == 0)
                    {
                        continue;
                    }

                    decimal closePrice = (currentClosePrices.SingleOrDefault(x => x.StockCode.Trim() == stockGroup.Key) ?? new TKLineToday()).Close;

                    decimal positionValue = holdingVolume * closePrice;

                    var userPositionModel = new StockPositionModel
                    {
                        AccountId           = currentAccount.Id,
                        AccountName         = currentAccount.Name,
                        SecurityCompanyName = currentAccount.SecurityCompanyName,
                        AttributeName       = currentAccount.AttributeName,
                        CurrentPrice        = closePrice,
                        DealerCode          = dealerCode,
                        DealerName          = this.luDealer.Text.Trim(),
                        PositionValue       = positionValue,
                        StockFullCode       = stockGroup.Key,
                        StockHoldingVolume  = holdingVolume,
                        StockName           = stockGroup.First().StockName,
                    };

                    userStockPositionInfos.Add(userPositionModel);
                }
            }

            userStockPositionInfos = userStockPositionInfos.OrderBy(x => x.AccountName).ThenBy(x => x.StockFullCode).ToList();

            this.gridControl1.DataSource = userStockPositionInfos;
        }