Добрый день! В Axapta 3 на таблице inventTrans есть статический метод calcMarkedCostValue, который был немного модифицирован. При тестировании данного кода проявляется такая ошибка - при первом запросе условие if выполняется и в отладчике печатается "123", однако при выполнении второго запроса не выбирается ни одной строки. Что это - глюк? Или я не вижу здесь разницу в запросах?
PHP код:
// по этому запросу выбирается строка, которая удовлетворяет условию if
select inventTrans
where inventTrans.inventTransId == _refTransId &&
inventTrans.ItemId == _itemId;
if ((inventTrans.statusIssue == StatusIssue::None &&
inventTrans.statusReceipt == StatusReceipt::Purchased) ||
(inventTrans.StatusReceipt == StatusReceipt::None &&
inventTrans.statusIssue == StatusIssue::Sold))
{
debug::printDebug('123');
}
// запрос не возвращает ни одной строки
while select inventTrans
where inventTrans.inventTransId == _refTransId &&
inventTrans.ItemId == _itemId &&
((inventTrans.statusIssue == StatusIssue::None &&
inventTrans.statusReceipt == StatusReceipt::Purchased) ||
(inventTrans.StatusReceipt == StatusReceipt::None &&
inventTrans.statusIssue == StatusIssue::Sold))
{
qty += inventTrans.qty;
value += inventTrans.costValue();
}