Показать сообщение отдельно
Старый 03.07.2007, 13:13   #1  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
887 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Таблица LedgerJournalTrans, метод madeDisposable_RU() - баг !
3.0, сервис-пак 3

метод используется для переноса флага создания проводки ОС с удаляемой записи на первую попавшуюся из оставшихся по многострочной операции ОС (т.е. ваучер, код журнала и дата операции должны быть такими же как у удаляемой)

X++:
// valu FA
ledgerJournalTrans madeDisposable_ru()
{
    ledgerJournalTrans      ljt_new;
    ;

    if (this.AssetCanDisposal_ru)
    {
        select firstonly forupdate ljt_new
            where ljt_new.Voucher == this.Voucher &&
                  ! ljt_new.Invisible             &&
                  ! ljt_new.AssetCanDisposal_ru   &&
                  ! ljt_new.AssetToFromRecId_ru;
        if (ljt_new.RecId)
        {
            ljt_new.AssetCanDisposal_ru = true;
            ljt_new.AssetToFromRecId_ru = 0;
            ljt_new.update();
        }
        else
        {
            select firstonly forupdate ljt_new
                where ljt_new.Voucher == this.Voucher &&
                      ! ljt_new.Invisible             &&
                      ! ljt_new.AssetCanDisposal_ru;
            if (ljt_new.RecId)
            {
                ljt_new.AssetCanDisposal_ru = true;
                ljt_new.AssetToFromRecId_ru = ljt_new.RecId;
                ljt_new.update();
            }
        }
    }
    else
    {
        select firstonly  ljt_new
            where ljt_new.Voucher == this.Voucher &&
                  ! ljt_new.Invisible &&
                  ljt_new.AssetCanDisposal_ru &&
                  ! ljt_new.AssetToFromRecId_ru;
    }

    return ljt_new;
}
Поиск ведется исключительно по ваучеру без даты операции и кода журнала с возможностью выбора строк совершенно другого журнала за другую дату.
В случае переброса номерной серии ваучеров для данного типа журнала возможны страшные глюки, а именно потеря флага создания проводки ОС. Проводки ГК будут сформированы, проводка ОС и смена статуса ОС - нет.

Последний раз редактировалось TasmanianDevil; 03.07.2007 в 13:52.