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);
}
Пример #2
0
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);
}
Пример #4
0
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;
}
Пример #5
0
void Scene_Order::Update() {
	window_left->Update();
	window_right->Update();
	window_confirm->Update();

	if (window_left->GetActive()) {
		UpdateOrder();
	} else if (window_confirm->GetActive()) {
		UpdateConfirm();
	}
}
Пример #6
0
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;
    }
}