![]() |
#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(); } |
|