/// <summary> /// 从有效定单列表中移除指定的有效定单 /// </summary> /// <param name="orderData">要移除的有效定单</param> private void RemoveMarketOrderData(MarketOrderData orderData) { if (_dpObj.CheckAccess()) TradeOrderInfo.TdOrderList.Remove(orderData); else _dpObj.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new MarketOrderDataDelegate(RemoveMarketOrderData), orderData); }
/// <summary> /// 添加一个有效定单到有效定单列表,并为其赋值它所属的商品信息类 /// </summary> /// <param name="orderData">要添加的有效定单</param> private void AddMarketOrderData(MarketOrderData orderData) { ProductInformation productInfo = GetProductInfoByName(orderData.ProductName); orderData.OwnedProduct = productInfo; if (_dpObj.CheckAccess()) MarketOrderList.Add(orderData); else _dpObj.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new MarketOrderDataDelegate(AddMarketOrderData), orderData); }
/// <summary> /// 有效定单入库限制 马友春 /// </summary> /// <param name="selectedMarketOrder">选中的某个定单</param> public void ModifyOrderAllowStore(MarketOrderData selectedMarketOrder) { bool allowStoreFlag = selectedMarketOrder.AllowStore; ModifyOrderAllowStoreWindow wnd = new ModifyOrderAllowStoreWindow() { Owner = Application.Current.MainWindow, DataContext = selectedMarketOrder, }; wnd.Closed += (sender, args) => { if (wnd.DialogResult == true) { BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (s, e) => { int allowStore = selectedMarketOrder.AllowStore ? 1 : 0; e.Result = _businessService.ModifyOrderAllowStore((int)_accType, _loginID, selectedMarketOrder.TradeAccount, selectedMarketOrder.OrderID, allowStore); }; worker.RunWorkerCompleted += (s, e) => { ErrType err = e.Result as ErrType; if (err != GeneralErr.Success) { //Todo:重新窗口状态待处理 // wnd.RevertWindowState(); MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning); } else { wnd.Close(); string msg = "订单能否入库状态修改成功"; MessageBox.Show(msg, "提示", MessageBoxButton.OK, MessageBoxImage.Information); } }; worker.RunWorkerAsync(); } else { selectedMarketOrder.AllowStore = allowStoreFlag; } }; wnd.ShowDialog(); }
/// <summary> /// 有效定单入库 /// </summary> /// <param name="selectedMarketOrder">选中的某个有效定单</param> public void WarehousingMarketOrder(MarketOrderData selectedMarketOrder) { OrderChangedWindow wnd = new OrderChangedWindow(OrderChangedWindowType.Warehousing) { Owner = Application.Current.MainWindow, DataContext = selectedMarketOrder, }; wnd.OrderChanged += (sender, args) => { BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (s, e) => { //这里应该先获取该定单对应的用户,然后进行平仓信息的验证,主要是平仓数量有效数据位的判断 //ValidationResult result = ChargebackOrderValidation( args.OrderChangedInfo, 先获取该定单对应的用户 ); int userType = ToUserType(_accType); e.Result = _tradeService.WarehousingOrder(_loginID, userType, args.OrderChangedInfo); }; worker.RunWorkerCompleted += (s, e) => { ErrType err = e.Result as ErrType; if (err != GeneralErr.Success) { wnd.RevertWindowState(); MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning); } else { wnd.Close(); string msg = string.Format("入库操作成功,数量:{0}", args.OrderChangedInfo.Count); MessageBox.Show(msg, "提示", MessageBoxButton.OK, MessageBoxImage.Information); //根据结果对定单进行处理,如果定单数量为0,则移除该定单。 selectedMarketOrder.OrderQuantity -= args.OrderChangedInfo.Count; if (selectedMarketOrder.OrderQuantity == 0) RemoveMarketOrderData(selectedMarketOrder); } }; worker.RunWorkerAsync(); }; wnd.ShowDialog(); }
/// <summary> /// 有效定单平仓 /// </summary> /// <param name="selectedMarketOrder">选中的某个有效定单</param> public void ChargebackMarketOrder(MarketOrderData selectedMarketOrder) { OrderChangedWindow wnd = new OrderChangedWindow(OrderChangedWindowType.Chargeback) { Owner = Application.Current.MainWindow, DataContext = selectedMarketOrder, }; wnd.OrderChanged += (sender, args) => { BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (s, e) => { //这里应该先获取该定单对应的用户,然后进行平仓信息的验证,主要是平仓数量有效数据位的判断 //ValidationResult result = ChargebackOrderValidation( args.OrderChangedInfo, 先获取该定单对应的用户 ); int userType = ToUserType(_accType); e.Result = _tradeService.ChargebackOrder(_loginID, userType, args.OrderChangedInfo); }; worker.RunWorkerCompleted += (s, e) => { ErrType err = e.Result as ErrType; if (err != GeneralErr.Success) { MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Warning); wnd.RevertWindowState(); } else { wnd.Close(); StringBuilder sbStr = new StringBuilder(); string orderTypeStr = selectedMarketOrder.OrderType == TRANSACTION_TYPE.Order ? "买涨" : "买跌"; sbStr.Append("订单号\t\t\t商品\t类型\t订单价"); sbStr.Append(string.Format("{0}\t{1}\t{2}\t{3}", selectedMarketOrder.OrderID, selectedMarketOrder.ProductName, orderTypeStr, selectedMarketOrder.OrderPrice)); sbStr.Append("\r\n\r\n"); sbStr.Append(string.Format("平仓\t{0}\t于价位:{1}", args.OrderChangedInfo.Count, args.OrderChangedInfo.RealTimePrice)); MessageBox.Show(sbStr.ToString(), "提示", MessageBoxButton.OK, MessageBoxImage.Information); //根据结果对定单进行处理,如果定单数量为0,则移除该定单。 selectedMarketOrder.OrderQuantity -= args.OrderChangedInfo.Count; if (selectedMarketOrder.OrderQuantity == 0) RemoveMarketOrderData(selectedMarketOrder); } }; worker.RunWorkerAsync(); }; wnd.ShowDialog(); }
/// <summary> /// 买跌检测[买跌单] /// 定单类型为买跌时有效 /// </summary> /// <param name="selData"></param> public void RecordRealWeight(MarketOrderData selData) { RecordRealWeightWindow window = new RecordRealWeightWindow() { Owner = Application.Current.MainWindow, DataContext = this, }; if (window.ShowDialog() == true) { if (selData.TotalWeight < window.RealWeight) MessageBox.Show("您输入的重量大于您的库存", "提示信息", MessageBoxButton.OK, MessageBoxImage.Error); else { ErrType err = _businessService.RecordRealWeight(selData.OrderID, window.RealWeight, _loginID, (int)_accType); if (err.Err == ERR.SUCCESS) { selData.AllowStore = true; MessageBox.Show("您可以入库了", "提示信息", MessageBoxButton.OK, MessageBoxImage.Information); } else MessageBox.Show(err.ErrMsg, err.ErrTitle, MessageBoxButton.OK, MessageBoxImage.Information); } } }