Показать сообщение отдельно
Старый 02.06.2016, 18:00   #6  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
Обновил для AX2012 и оформил в функцию:
X++:
static void CreateReq(ItemId ItemId, Qty Qty, InventDimId InventDimId, ReqPOType ReqPOType,TransDate TransDate=today(), InventLocationId fromLoc="", ReqPlanId reqPlanId = ReqParameters::find().CurrentReqPlanIdSchedDynamic)
{
    ReqPO reqPO;
    ReqTrans ReqTrans;
    
    ReqPlan ReqPlan;
    ReqPlanData reqPlanData     = ReqPlanData::newReqPlanId(reqPlanId);
    
    reqTransPOCreate reqTransPOCreate;
    BOMVersion      bomVersion;
    
    InventTable InventTable=InventTable::find(ItemId);
    InventDim InventDim=InventDim::find(InventDimId);
    InventLocationId toLoc=InventDim.InventLocationId;
    ;
    reqPO.clear();
    reqTrans.clear();

    reqPlan = reqPlan::findReqPlanId(reqPlanId);
    if (!reqPlan.RecId) Error("@SYS28502");

    reqPO.PlanVersion = reqPlan.RecId;
    reqPO.initReqPOType( ReqPlanData.parmReqPlanVersionRefRecId(), reqPoType);
    reqPO.initFromItemId(ItemId);


    reqPO.Qty = Qty;
    reqPO.PurchQty = Qty;

    reqPO.CovInventDimId = inventDimId;
    reqPO.PurchUnit = inventTableModule::find(ItemId,moduleInventPurchSales::Invent).UnitId;
    reqPO.ReqDateDlv=TransDate;
    
    if(reqPO.validateFieldValue(fieldStr(ReqPO, ItemId))&&reqPO.validateWrite())
    {
        switch(reqPoType) 
        {
            case ReqPOType::Transfer:
                ReqTransFormPO::validateFromInventLocationId(fromLoc, toLoc,reqPO);
                break;
            case ReqPOType::Production: 
                reqPO.ItemBomId=InventTable.bomId(TransDate,Qty,InventDim);
                reqPO.ItemRouteId=InventTable.routeId(TransDate,Qty,InventDim);
                break;
            case ReqPOType::Purch: 
                reqPO.VendId=InventTable.PrimaryVendorId;
                break;
        }

    
    reqPO.insert();
    ReqPlannedOrder::construct().insertFromForm(reqPO,inventDim,fromLoc,toLoc,true,true);
    
    }
}
За это сообщение автора поблагодарили: AK-76 (1).