Показать сообщение отдельно
Старый 24.03.2015, 15:15   #3  
byte is offline
byte
Участник
 
36 / 31 (2) +++
Регистрация: 21.08.2007
В общем нашел я причину. После обновления проводок по получению на транзитный склад, делается 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();
    }