Показать сообщение отдельно
Старый 04.02.2016, 16:00   #1  
kitty is offline
kitty
Участник
 
383 / 30 (2) +++
Регистрация: 24.05.2005
Как найти непромаркированное количество по закупке
Есть строка закупки purchLine. Сделан marking
Нужно узнать, целиком ли она промаркирована
Есть что-то похожее на форме InventMarking-> InventTrans_ds->qtyRemain().

Но, мне подозрительно, что в системе не нахожу методов на таблицах, которые бы это возвращали этот рассчет . (Есть только purchLine.qtyMarked(), который промаркированное количество возвращает)
Отсюда вопрос : если заведомо метода нет, то, наверное. есть какие-то тонкости в вычислениях.
Достаточно ли вычислять как в нижепреведенном коде, или есть еще что-то, что надо учитывать?

На PurchLine сделаю такой метод :

X++:
 if (this.isStocked())
    {
        inventTransOriginId = InventTransOriginPurchLine::findInventTransOriginId(this.DataAreaId, this.InventTransId);
        if (inventTransOriginId)
        {
            inventQtyMarked = InventTransOrigin::qtyMarked(inventTransOriginId);
            while select MarkingRefInventTransOrigin, sum(Qty), sum(QtySettled)
                from inventTrans        
                where inventTrans.InventTransOrigin == inventTransOriginId           
            {        
                openQty  += inventTrans.openQty();        
            }
        }
    }

    return openQty - inventQtyMarked;

AX2012 R2