Показать сообщение отдельно
Старый 10.02.2012, 15:33   #4  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Рабочий код. Суть джоба: резервация заказа (SalesLine) на складе 'KFG' с приоритетом в локейшене 'SQUARE'.

X++:
        if (salesLine && reserveQty)
        {
            inventMovement  = InventMovement::construct(salesLine);

            if (reserveQty)
            {
                //inventDim_KFG_SQUARE.InventSiteId       = 'KAB';
                inventDim_KFG_SQUARE.InventLocationId   = 'KFG';
                inventDim_KFG_SQUARE.wMSLocationId      = 'SQUARE';
                inventDim_KFG_SQUARE                    = InventDim::findDim(inventDim_KFG_SQUARE);

                //inventDim_KFG.InventSiteId              = 'KAB';
                inventDim_KFG.InventLocationId          = 'KFG';
                inventDim_KFG                           = InventDim::findDim(inventDim_KFG);

                inventDimParm.initFromInventDim(inventDim_KFG_SQUARE);
                qtyOnhand = InventOnHand::newParameters(salesLine.ItemId, inventDim_KFG_SQUARE, inventDimParm).availPhysical();

                if (qtyOnhand)
                {
                    reserveNow     = qtyOnhand >= reserveQty ? reserveQty : qtyOnhand;
                    reserveQty     -= reserveNow;

                    if(inventMovement)
                    {
                        InventUpd_Reservation::updateReserveFromForm(salesLine, inventDim_KFG_SQUARE, inventDimParm, reserveNow);
                    }
                }

                if (reserveQty)
                {
                    inventDimParm.initFromInventDim(inventDim_KFG);
                    qtyOnhand = InventOnHand::newParameters(salesLine.ItemId, inventDim_KFG, inventDimParm).availPhysical();
 
                    if (qtyOnhand)
                    {
                        reserveNow      = qtyOnhand >= reserveQty ? reserveQty : qtyOnhand;
                        reserveQty      -= reserveNow;
                        InventUpd_Reservation::updateReserveFromForm(salesLine, inventDim_KFG, inventDimParm, reserveNow);
                    }
                }

                if  (reserveQty)
                {
                    warning(strfmt('Qty \'%1\' not reserved for item \'%2\' Sales Order \'%3\'.', reserveQty, salesLine.itemId, salesLine.SalesId));
                }
                else
                {
                    info(strfmt('Reserved %1.', reserveStock.InventTransId));
                    reserveStock.Reserved = NoYes::Yes;
                    reserveStock.doUpdate();
                }
            }
        }
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.

Последний раз редактировалось Link; 10.02.2012 в 16:15.