void YKBizMapManufactureDemand::DeleteRecreateOrder(YKManufactureDemandSPtr demand)
{
	if (demand->GetRelationOrder().ValidObj())
	{
		list<WorkInfor> newDemandList;
		YKOrderSPtr relaOrder = demand->GetRelationOrder();

		YK_UINT num = demand->GetRelaDemandList().Size();
		set<YK_ID> relationOrderList;
		relationOrderList.insert(relaOrder->GetID());
		if (1 == num)
		{
			DeleteOrder(relationOrderList);
		}

		else if(num>1)
		{
			demand->GetRelaDemandList().foreach([&newDemandList](YKManufactureDemandSPtr& demandt){
				WorkInfor temp;
				Assignment(demandt,temp);
				newDemandList.push_back(temp);
			});

			DeleteOrder(relationOrderList);
			ReCreateOrder(newDemandList);
		}
	}
}
void YKBizMapManufactureDemand::ModifyOrder(YKManufactureDemandSPtr demand)
{
	if(!demand->GetRelationOrder().ValidObj())
	{
		WorkInfor temp;
		Assignment(demand,temp);
		m_workinforList.push_back(temp);
	}
	else
	{
		list<WorkInfor> newDemandList;
		YKOrderSPtr relationOrderList = demand->GetRelationOrder();

		demand->GetRelaDemandList().foreach([&](YKManufactureDemandSPtr& demandt){
			WorkInfor temp;
			Assignment(demandt,temp);
			newDemandList.push_back(temp);
		});
		set<YK_ID> delList;
		delList.insert(relationOrderList->GetID());

		DeleteOrder(delList);
		ReCreateOrder(newDemandList);
	}
}
Example #3
0
void COrderManagerDlg::OnNMDblclkListOrdermgrOrders(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	CListCtrl* OrderList = (CListCtrl*)this->GetDlgItem(IDC_LIST_ORDERMGR_ORDERS);
	int index = pNMItemActivate->iItem;
	if (index != -1)
	{
		DeleteOrder(OrderList->GetItemText(index, 0));
	}
	*pResult = 0;
}