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