Показать сообщение отдельно
Старый 19.03.2007, 17:32   #1  
Rimantas is offline
Rimantas
Участник
 
304 / 16 (1) ++
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
SalesLine и ReqTrans
Здраствыйте !

Никак немогу найти решение для изменения SalesLinе SаlesQty поля . Дело в том , что как менеджер введет все данные для заказа , есть сделана такая мелочь как подсчитание % для увеличивания количеств ( ето из за своих нужд мы можем добавить к конракт несколько % .. ) .
Код:
         
         ttsbegin;
         while select forupdate salesLin
            index hint SalesLineIdx
            where salesLin.SalesId == salesTbl.SalesId
         {
            nDec = Unit::decimals(salesLin.SalesUnit);
            nOld = salesLin.SalesQty;
            nSkt = ( nOld * nProc ) / 100;
            nSkt = round(nSkt,nDec);
            nNew = nOld + nSkt;
            if ( nNew != nOld )
            {
               salesLin.SalesQty = nNew;
               SalesLine::modifySalesQty(salesLin,InventDim::find(salesLin.InventDimId));
               salesLin.update();
            }
         }
         ttscommit;
Всё хорошо - количества изменяеться . Но ... если посмотреть раядом SalesLinе в "Запросы" -> "Развертывание" , то там на "Требуемое количество" ( ReqTrans ) стоит старое значение .. . Если я в ручную поправляю количество в SalesLine , то тогда в "Развертываниях" "Требуемое кол." изменяеться . По моему всю работу для изменения етих данных должен быть SalesLine::modifySalesQty(salesLin,InventDim::find(salesLin.InventDimId)) метод , который используеться в методе "modified" для SаlesQty в SalesLine_ds . Но почему то в ручную он дейстует , а идя по цикл - нет ... Помогите пожалуйста , чего там нехватает в данном примере для того , чтобы достичь желаемого результата ...

С уважением , Римантас