Показать сообщение отдельно
Старый 31.10.2005, 19:22   #1  
PMS is offline
PMS
Участник
 
54 / 29 (1) +++
Регистрация: 25.02.2005
Адрес: Санкт-Петербург
Проверка количества в заказе
В версии 3.0 SP3 CU1 в классе SalesTableType есть метод checkSalesQty, в котором можно найти while (он там один):
PHP код:
    while select salesLine
        index hint SalesLineIdx
        where salesLine
.salesId     == salesTable.salesId
         
&& (salesLine.salesStatus != SalesStatus::Invoiced && salesLine.salesStatus != SalesStatus::Canceled)
         || (
salesLine.SalesDeliverNow 0
Если присмотреться, то видно, что если когда-то были строки заказа с отрицательным количеством немедленной поставки (не в проверяемом заказе, а гораздо раньше), то будут выбраны эти строки, а вовсе не те что относятся к проверяемому заказу.
На мой взгляд просто перепутаны скобки, и должно быть написано:
PHP код:
    while select salesLine
        index hint SalesLineIdx
        where salesLine
.salesId     == salesTable.salesId
         
&& ((salesLine.salesStatus != SalesStatus::Invoiced && salesLine.salesStatus != SalesStatus::Canceled)
         || (
salesLine.SalesDeliverNow 0)) 
Если кто-то сталкивался с этим, как вы считаете, я прав?
Просто хочется удостовериться, на всякий случай