НАЧАЛО >> АРМ «Книговыдача» >> Функции модуля Bookland >> Bookland::GetDbBookByRdrOcc📄 Скачать в DOCX
Bookland::GetDbBookByRdrOcc(ObjectDataRecord $rdrRec, int $rdrOcc): ObjectDataDatabase определяет базу изданий по выбранному повторению выдачи в записи читателя.
Функция находится в файле modules/Bookland/__call/GetDbBookByRdrOcc.inc и вызывается как внешний метод модуля Bookland через механизм __call.
Функция используется, когда сценарий уже знает запись читателя и номер повторения поля книговыдачи, но должен определить, в какой базе изданий искать связанный экземпляр. Это важно для установок, где выдачи могут относиться к разным базам ЭК.
Типичный сценарий:
GetDbBookByRdrOcc() читает имя базы изданий из этого повторения.ObjectDataDatabase передается в функции, которые ищут запись издания и повторение экземпляра.| Параметр | Тип | Описание |
|---|---|---|
$rdrRec |
ObjectDataRecord |
Запись читателя, содержащая поле истории книговыдачи. |
$rdrOcc |
int |
Номер повторения выдачи в записи читателя. Нумерация повторений начинается с 1. |
Перед чтением данных функция вызывает CheckProfile(), поэтому для работы должен быть выбран действующий профиль книговыдачи.
Из профиля используются параметры группы «Настройка полей, подполей и поисковых префиксов»:
| Параметр профиля | Назначение | Значение по умолчанию |
|---|---|---|
rdrtagrequest |
Поле записи читателя с данными книговыдачи. | 40 |
rdrdelimdbname |
Подполе имени базы изданий в выбранном повторении. | G |
Функция возвращает объект ObjectDataDatabase для базы изданий, имя которой записано в подполе rdrdelimdbname выбранного повторения поля rdrtagrequest.
Если в выбранном повторении не указано имя базы изданий, функция прерывает выполнение с ошибкой:
Не указано имя БД каталога изданий
В текст ошибки добавляется контекст записи читателя: MFN, номер поля книговыдачи и номер повторения. Этот контекст помогает найти поврежденную или неполную выдачу в формуляре читателя.
GetDbBookByRdrOcc() только определяет базу изданий. Для полного сопоставления выдачи с экземпляром обычно используются также:
Bookland::GetBookRecordByRdrOcc() - получает запись издания по шифру, штрих-коду или инвентарному номеру из того же повторения выдачи;Bookland::GetBookOccByRdrOcc() - получает повторение экземпляра в найденной записи издания;Bookland::GetRdrOcc() - ищет повторение выдачи в записи читателя по данным экземпляра.