Соответствие статусов в БД RQST
Пользователь:
А. Роман (IP-адрес скрыт)
Дата: 30, January, 2019 17:23
Транслирую обращение пользователя (J-ИРБИС с актуальным офлайн обновлением):
Можно ли попросить разработчика проверить в jirbis функцию получения статусов заказа на предмет соответствия статусам в АРМе Книговыдача:
0 - отправлен с места хранения на место выдачи
1 - получен с места хранения/находится по месту выдачи/предназначен для выдачи читателю
2 - получен от читателя/находится по месту выдачи/предназначен для выдачи читателю
3 - получен от читателя/находится по месту выдачи/предназначен для возврата по месту хранения
4 - отправлен с места выдачи по месту хранения
private static $status_descriptions=array(
self::ORDER_SENDED_TO_RESERV=>'Зарезервирован',
self::ORDER_RECIEVED_IN_ISSUE_PLACE=>'Отправлен в место выдачи',
self::ORDER_REFUSED=>'Отказ не может быть выполнен',
self::ORDER_ISSUED=>'Заказ выполнен',
self::ORDER_WAITING=>'Ожидает выполнения',
);
private static function get_order_status($rec){
if ($rec->GetSubField(910,1,'A')==='0' && $rec->GetField(43,1))
$status=self::ORDER_SENDED_TO_RESERV;
elseif($rec->GetSubField(910,1,'A')=='1' && $rec->GetField(43,1))
$status=self::ORDER_RECIEVED_IN_ISSUE_PLACE ;
elseif(!$rec->GetSubField(910,1,'A') && $rec->GetField(43,1))
$status=self::ORDER_SENDED_TO_RESERV;
elseif($rec->GetField(41,1))
$status=self::ORDER_ISSUED;
elseif($rec->GetField(44,1))
$status=self::ORDER_REFUSED;
else
$status=self::ORDER_WAITING;
return (int)$status;
}
В первых двух условиях, похоже, перепутали определения статусов. В результате при отправке книги на бронеполку со статусом 0 получаем вместо «отправлен с места хранения на место выдачи» статус «зарезервирован», и, соответственно, при установке статуса 1 вместо «получен с места хранения» читатель видит статус «отправлен в место выдачи».
Если заказ отправить на бронеполку, отказавшись от выбора статуса, он получит постоянный статус «зарезервирован», т.к. третье условие функции будет выполняться всегда, до проверки значения поля с датой выполнения заказа дело так и не дойдет.
Изменение статуса на 2, 3 или 4 может вернуть заказ на этап ожидания выполнения.