Показать сообщение отдельно
Старый 11.11.2008, 12:04   #7  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
AX 4
X++:
void checkFixSettlement(InventConsistencyCheck_Trans inventConsistencyCheck_Trans)
{
    InventSettlement    inventSettlement;

    setprefix("@SYS55578");

    while select forupdate inventSettlement
        where inventSettlement.TransRecId == this.RecId &&
              inventSettlement.InventTransCurrency_RU == InventTransCurrency_RU::PrimaryCur
    {
        setprefix(#prefixField(inventSettlement,RecId));

        if (inventSettlement.ItemId         != this.ItemId                  ||
            inventSettlement.InventTransId  != this.InventTransId)
        {
            checkFailed("@SYS67934",'', SysInfoAction_TableField::newBufferField(inventSettlement, fieldnum(InventSettlement, RecId)));
            if (inventConsistencyCheck_Trans.checkFix() == CheckFix::Fix)
            {
                inventSettlement.doDelete();
                inventConsistencyCheck_Trans.updateCorrected();
            }
            else
                inventConsistencyCheck_Trans.updateNotCorrected();
        }
    }

    select sum(QtySettled),sum(CostAmountSettled),sum(CostAmountAdjustment) from inventSettlement
        where inventSettlement.TransRecId             == this.RecId                       &&
              inventSettlement.Cancelled              == NoYes::No                        &&
              inventSettlement.SettleModel            != InventSettleModel::PhysicalValue &&
              inventSettlement.InventTransCurrency_RU == InventTransCurrency_RU::PrimaryCur;

    if (inventSettlement.QtySettled != this.QtySettled)
    {
        checkFailed("@SYS67938",'', SysInfoAction_TableField::newBufferField(this, fieldnum(InventTrans, QtySettled)));
        if(inventConsistencyCheck_Trans.checkFix() == CheckFix::Fix)
        {
            this.QtySettled = inventSettlement.QtySettled;
            this.doUpdate();

            inventConsistencyCheck_Trans.updateCorrected();
        }
        else
            inventConsistencyCheck_Trans.updateNotCorrected();
    }

    if (inventSettlement.CostAmountSettled != this.CostAmountSettled)
    {
        checkFailed("@SYS67939",'', SysInfoAction_TableField::newBufferField(this, fieldnum(InventTrans, CostAmountSettled)));
        if (inventConsistencyCheck_Trans.checkFix() == CheckFix::Fix)
        {
            this.CostAmountSettled = inventSettlement.CostAmountSettled;
            this.doUpdate();

            inventConsistencyCheck_Trans.updateCorrected();
        }
        else
            inventConsistencyCheck_Trans.updateNotCorrected();
    }


    if (inventSettlement.CostAmountAdjustment != this.CostAmountAdjustment)
    {
        checkFailed("@SYS67940",'', SysInfoAction_TableField::newBufferField(this, fieldnum(InventTrans, CostAmountAdjustment)));
        if (inventConsistencyCheck_Trans.checkFix() == CheckFix::Fix)
        {
            this.CostAmountAdjustment = inventSettlement.CostAmountAdjustment;
            this.doUpdate();

            inventConsistencyCheck_Trans.updateCorrected();
        }
        else
            inventConsistencyCheck_Trans.updateNotCorrected();
    }
}
За это сообщение автора поблагодарили: miklenew (2).