23.03.2015, 18:00 | #1 |
Участник
|
Проблемы с обнуленим кол-ва в строке заказа на перемещение
Добрый день!
Сложилась странная ситуация. Когда кол-во в строке заказ на перемещение обнуляется вручную, остаются 2 складские проводки - с транзитного склада и на конечный склад. Метод updateEstimated таблицы InventTransferLine X++: movementFrom = InventMovement::construct(this);
estimatedFrom = InventUpd_Estimated::newInventMovement(movementFrom);
estimatedFrom.updateNow();
estimatedTransitTo = InventUpd_Estimated::newInventMovement(InventMovement::construct(this,InventMovSubType::TransferOrderTransitTo));
estimatedTransitTo.updateNow();
info1(this.orig().QtyRemainShip); // выводится 0, хотя должно быть обнуляемое кол-во
movementTransitFrom = InventMovement::construct(this,InventMovSubType::TransferOrderTransitFrom);
estimatedTransitFrom = InventUpd_Estimated::newInventMovement(movementTransitFrom); Буду благодарен за помощь. Ax2009 Последний раз редактировалось byte; 23.03.2015 в 18:23. |
|
24.03.2015, 13:30 | #2 |
Участник
|
Коллеги, проверьте, пжл, воспроизводится ли ситуация, у нас вроде все стандартное, ax2009.
|
|
24.03.2015, 15:15 | #3 |
Участник
|
В общем нашел я причину. После обновления проводок по получению на транзитный склад, делается update строки и orig затирается, хотя он продолжает использоваться далее. Сделал следующую заплатку под этот случай:
X++: if (! _dropEstimated) { origReceiveQty = this.orig().QtyRemainReceive; movementFrom = InventMovement::construct(this); estimatedFrom = InventUpd_Estimated::newInventMovement(movementFrom); estimatedFrom.updateNow(); estimatedTransitTo = InventUpd_Estimated::newInventMovement(InventMovement::construct(this,InventMovSubType::TransferOrderTransitTo)); estimatedTransitTo.updateNow(); movementTransitFrom = InventMovement::construct(this,InventMovSubType::TransferOrderTransitFrom); estimatedTransitFrom = InventUpd_Estimated::newInventMovement(movementTransitFrom); // --> if( !this.QtyRemainReceive && !this.orig().QtyRemainReceive && origReceiveQty ) { estimatedTransitFrom.parmPreEstimated(-origReceiveQty); estimatedTransitFrom.parmTransEstimated(0); estimatedTransitFrom.parmEstimated(origReceiveQty); } // <-- // <GEEU> //if return receipt only specialMarking should be made while create Estimated if (!estimatedFrom.updEstimated() && estimatedTransitFrom.parmEstimated()) movementTransitFrom.parmInventRefTransId_RU(this.InventTransIdTransitFrom); // </GEEU> estimatedTransitFrom.updateNow(); estimatedTo = InventUpd_Estimated::newInventMovement(InventMovement::construct(this,InventMovSubType::TransferOrderTo)); // --> if( !this.QtyRemainReceive && !this.orig().QtyRemainReceive && origReceiveQty ) { estimatedTo.parmPreEstimated(origReceiveQty); estimatedTo.parmTransEstimated(0); estimatedTo.parmEstimated(-origReceiveQty); } // <-- estimatedTo.updateNow(); } |
|