|
|
#1 |
|
Участник
|
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; . Если я в ручную поправляю количество в SalesLine , то тогда в "Развертываниях" "Требуемое кол." изменяеться . По моему всю работу для изменения етих данных должен быть SalesLine::modifySalesQty(salesLin,InventDim::find(salesLin.InventDimId)) метод , который используеться в методе "modified" для SаlesQty в SalesLine_ds . Но почему то в ручную он дейстует , а идя по цикл - нет ... Помогите пожалуйста , чего там нехватает в данном примере для того , чтобы достичь желаемого результата ...С уважением , Римантас |
|
|
|
|
#2 |
|
MCTS
|
Не уверен, но вы попробуйте сначала сделать salesLin.update(), а потом SalesLine::modifySalesQty().
Мне кажется, должно помочь. Последний раз редактировалось e@gle; 19.03.2007 в 18:56. |
|
|
|
|
#3 |
|
MCTS
|
Я был не прав.
SalesLine::modifySalesQty() - делать вообще не надо. Развертывание обновится на update() строки заказа. А вот что надо сделать обязательно - это изменить поля salesLine.QtyOrdered и salesLine.RemainInventPhysical Развертывание обновляется в соответствии с полем salesLine.RemainInventPhysical. |
|
|
|
|
#4 |
|
Участник
|
Цитата:
Сообщение от e@gle
Я был не прав.
SalesLine::modifySalesQty() - делать вообще не надо. Развертывание обновится на update() строки заказа. А вот что надо сделать обязательно - это изменить поля salesLine.QtyOrdered и salesLine.RemainInventPhysical Развертывание обновляется в соответствии с полем salesLine.RemainInventPhysical. Вы на всех 110 % прав ! С уважением , Римантас |
|
|
|
|
#5 |
|
Участник
|
Цитата:
Сообщение от e@gle
Я был не прав.
SalesLine::modifySalesQty() - делать вообще не надо. Развертывание обновится на update() строки заказа. А вот что надо сделать обязательно - это изменить поля salesLine.QtyOrdered и salesLine.RemainInventPhysical Развертывание обновляется в соответствии с полем salesLine.RemainInventPhysical. Почему не надо делать SalesLine::modifySalesQty()? А как же пересчет суммы по строке? Пересчет "К поставке" (и по складу, и по заказу) можно сделать так: InventMovement::bufferSetRemainQty(salesLine)
__________________
Ivanhoe as is.. |
|
|
|
|
#6 |
|
MCTS
|
Цитата:
Можно уточнить?
Почему не надо делать SalesLine::modifySalesQty()? А как же пересчет суммы по строке? Цитата:
Пересчет "К поставке" (и по складу, и по заказу) можно сделать так:InventMovement::bufferSetRemainQty(salesLine)
|
|
|