void YKBizMapManufactureDemand::CreateInfoList() { YKManufactureDemandVec objvec = GetValue()->GetObjContainer(); for(YKManufactureDemandVec::iterator itor = objvec.begin(); itor != objvec.end(); ++itor) { YKManufactureDemandSPtr demand = objvec.GetObjSPtr(*itor); if(demand->GetExecuteDePart() == L"" && demand->GetDealFlg() == YKManufactureDemand::DealFlag_WaitSend) { WorkInfor temp; if (!demand->GetRelationOrder().ValidObj()) { Assignment(demand,temp); m_workinforList.push_back(temp); } demand->SetDealFlg(YKManufactureDemand::DealFlag_Sended); } } list<WorkInfor> workinforListA; list<WorkInfor> workinforListB; list<WorkInfor> workinforListC; list<WorkInfor> workinforListD; demanddivide(m_workinforList,workinforListA,workinforListB,workinforListC,workinforListD); ClearWorkinforList(); dodemand(workinforListA,workinforListB,workinforListC,workinforListD); UpdateOrder(workinforListA); UpdateOrder(workinforListB); UpdateOrder(workinforListC); UpdateOrder(workinforListD); }
QList<Transaction*> AccountTradeInfo::CreateTransaction(Order const*pOrder,QDateTime const& oTimestamp,size_t nQuantity,double dPrice) { QMutexLocker oLocker(&m_mLock); OrderOperator oOperator; QList<Transaction*> lTransactions; auto iPos = m_lPositions.begin(); while(iPos != m_lPositions.begin()) { Position *pPosition = *iPos; Transaction* pTransaction = oOperator.Close(pPosition,pOrder,oTimestamp,nQuantity,dPrice); lTransactions.append(pTransaction); if(pPosition->GetQuantity() == 0) { iPos = m_lPositions.erase(iPos); RemovePosition(pPosition); } else { break; } } m_lTradeDayTransactions.append(lTransactions); UpdateOrder(const_cast<Order*>(pOrder)); SaveTransaction(lTransactions); return lTransactions; }
void YKBizMapManufactureDemand::ReCreateOrder(list<WorkInfor> & demandList) { list<WorkInfor> listA; list<WorkInfor> listB; list<WorkInfor> listC; list<WorkInfor> listD; demanddivide(demandList,listA,listB,listC,listD); ClearWorkinforList(); dodemand(listA,listB,listC,listD); UpdateOrder(listA); UpdateOrder(listB); UpdateOrder(listC); UpdateOrder(listD); }
Position* AccountTradeInfo::CreatePosition(Order const*pOrder,QDateTime const& oTimestamp,size_t nQuantity,double dPrice) { QMutexLocker oLocker(&m_mLock); OrderOperator oOperator; Position *pPosition = oOperator.Open(pOrder,oTimestamp,nQuantity,dPrice); UpdateOrder(const_cast<Order*>(pOrder)); SavePosition(pPosition); m_lPositions.push_back(pPosition); return pPosition; }
void Scene_Order::Update() { window_left->Update(); window_right->Update(); window_confirm->Update(); if (window_left->GetActive()) { UpdateOrder(); } else if (window_confirm->GetActive()) { UpdateConfirm(); } }
void AccountTradeInfo::UpdateOrderStatus(Order const*pOrder,OrderStatus eStatus) { QMutexLocker oLocker(&m_mLock); OrderOperator oOperator; oOperator.UpdateOrderStatus(const_cast<Order*>(pOrder),eStatus); UpdateOrder(const_cast<Order*>(pOrder)); switch (eStatus) { case osCancelled: case osCancelledAndPartedTraded: case osError: { m_lRunningOrders.removeOne(const_cast<Order*>(pOrder)); } break; default: break; } }