Документация iSZN
pkReception.sql
Ошибки
Error_NoReceptionOrg
PROCEDURE Error_NoReceptionOrg(iRegionID PLS_INTEGER, iID PLS_INTEGER);
Описание
Вызывает exception “Организация, ведущая приём граждан, не существует”.
Error_NoWorkplace
PROCEDURE Error_NoWorkplace(iRegionID PLS_INTEGER, iID PLS_INTEGER);
Описание
Вызывает exception “Рабочее место не существует”.
Error_NoIntervalKind
PROCEDURE Error_NoIntervalKind(iID PLS_INTEGER);
Описание
Вызывает exception “Вид интервала не существует”.
Error_NoTimeSlotStatus
PROCEDURE Error_NoTimeSlotStatus(iID PLS_INTEGER);
Описание
Вызывает exception “Статус слота времени не существует”.
Error_NoTimeSlot
PROCEDURE Error_NoTimeSlot(iRegionID PLS_INTEGER, iID PLS_INTEGER);
Описание
Вызывает exception “Слот времени не найден”.
Error_NoTimeSlot
Описание
Вызывает exception “Слот времени не найден”.
Error_NoBooking
Описание
Вызывает exception “Бронь с идентификатором ... не найдена”.
Error_TimeSlotLocked
PROCEDURE Error_TimeSlotLocked(iRegionID PLS_INTEGER, iID PLS_INTEGER);
Описание
Вызывает exception “Слот времени заблокирован”.
Error_TimeSlotLocked
Описание
Вызывает exception “Слот времени заблокирован”.
Error_InvalidSlotState
PROCEDURE Error_InvalidSlotState(iStatusID PLS_INTEGER);
Описание
Вызывает exception “Операция над записью в состоянии ... не допускается”.
Проверки
CheckIsBooking
PROCEDURE CheckIsBooking(iKindID PLS_INTEGER);
Описание
Проверяет, что слот является слотом записи на приём. Если не является, возникает exception.
Параметры:
- iKindID - ID проверяемого вида слота.
Привилегии на работу с данными людей/коллективов
GetUserGroupPrivs
FUNCTION GetUserGroupPrivs(iUserGroupID PLS_INTEGER, iIsPermission PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает привилегии группы пользователей на работу с записью на приём.
Параметры:
- iUserGroupID - ID группы пользователей;
- iIsPermission - какой вид привилегий требуется получить: 0 - запрещение, 1 - разрешение.
Возвращает набор указанных привилегий в виде битовой маски. Если привилегии отсутствуют, возвращает 0.
SetUserGroupPrivs
PROCEDURE SetUserGroupPrivs(iUserGroupID PLS_INTEGER, iPermittedPrivs PLS_INTEGER, iRestrictedPrivs PLS_INTEGER);
Описание
Устанавливает привилегии группы пользователей на работу с записью на приём.
Параметры:
- iUserGroupID - ID группы пользователей;
- iPermittedPrivs - набор разрешений в виде битовой маски;
- iRestrictedPrivs - набор запрещений в виде битовой маски.
GetUserPrivs
FUNCTION GetUserPrivs(sUserName VARCHAR2 := USER) RETURN PLS_INTEGER;
Описание
Возвращает привилегии указанного пользователя на работу с записью на приём в виде битовой маски.
CheckPrivs
PROCEDURE CheckPrivs(iPrivs PLS_INTEGER, sOperation VARCHAR2 := NULL);
Описание
Проверяет, что у текущего пользователя есть все указанные привилегии на работу с записью на приём.
Параметры:
- iPrivs - сумма битовых флагов проверяемых привилегий.
CheckBookingPrivs
PROCEDURE CheckBookingPrivs;
Описание
Проверяет, что у текущего пользователя есть привилегии на просмотр записи на приём и выполнение записи.
CheckExtBookingPrivs
PROCEDURE CheckExtBookingPrivs;
Описание
Проверяет, что у текущего пользователя есть привилегии на просмотр записи на приём и выполнение записи, а также на расширенное редактирование записи.
Справочники и утилиты
DateToOffset
Описание
Переводит дату/время в смещение в минутах от начала дня.
OffsetToDate
FUNCTION OffsetToDate(dOrigin DATE, iOffset PLS_INTEGER) RETURN DATE deterministic;
Описание
Переводит смещение в минутах от заданной даты в дату с округлением до минуты.
GetIntervalKindName
FUNCTION GetIntervalKindName(iID PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает название вида интервала графика работы.
Параметры:
iID - ID вида интервала;
iStrict - определяет поведение при отсутствии такого вида интервала.
GetTimeSlotStatusName
FUNCTION GetTimeSlotStatusName(iID PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает название статуса слота времени.
Параметры:
iID - ID статуса;
iStrict - определяет поведение при отсутствии такого статуса.
Глобальные блокировки
RegionLockGetName
FUNCTION RegionLockGetName(iRegionID PLS_INTEGER) RETURN VARCHAR2 deterministic;
Описание
Возвращает имя блокировки записи на приём для заданного района.
Параметры:
- iRegionID - ID района, в котором устанавливается блокировка.
RegionLockSet
PROCEDURE RegionLockSet(iRegionID PLS_INTEGER, iExclusive PLS_INTEGER, iTimeout INTEGER := 3);
Описание
Устанавливает блокировку записи на приём в заданном районе.
При невозможности установить блокировку возникает Exception.
Параметры:
- iRegionID - район, в котором устанавливается блокировка.
- iExclusive - эксклюзивная блокировка (0/1);
- iTimeout - время ожидания при наличии блокировки, сек.
RegionLockRelease
PROCEDURE RegionLockRelease(iRegionID PLS_INTEGER);
Описание
Снимает блокировку записи на приём в заданном районе.
Параметры:
- iRegionID - район, в котором снимается блокировка.
Работа со слотами времени
GenerateBookID
FUNCTION GenerateBookID(iRegionID PLS_INTEGER) RETURN VARCHAR2;
Описание
Генерирует ID брони для заданного района.
AllocateNewTimeSlotID
FUNCTION AllocateNewTimeSlotID(iRegionID PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает новый ID слота времени.
GetTimeSlotKey
PROCEDURE GetTimeSlotKey(rGUID RAW, iStrict PLS_INTEGER, iRegionID OUT PLS_INTEGER, iID OUT PLS_INTEGER);
Описание
Возвращает ключ слота времени по его GUID.
Входные параметры:
- rGUID - GUID слота;
- iStrict - определяет поведение при отсутствии такого слота.
Выходные параметры:
- iRegionID, iID - ключ найденного слота.
GetTimeSlotGUID
FUNCTION GetTimeSlotGUID(iRegionID PLS_INTEGER, iID PLS_INTEGER, iStrict PLS_INTEGER) RETURN RAW;
Описание
Возвращает GUID слота времени по его ключу.
Параметры:
- iRegionID, iID - ключ слота времени;
- iStrict - определяет поведение при отсутствии такого слота.
GetTimeSlotKeyByBookID
PROCEDURE GetTimeSlotKeyByBookID(sBookID VARCHAR2, iStrict PLS_INTEGER, iRegionID OUT PLS_INTEGER, iID OUT PLS_INTEGER);
Описание
Возвращает ключ слота времени по ID брони.
Входные параметры:
- sBookID - ID брони;
- iStrict - определяет поведение при отсутствии такого слота.
Выходные параметры:
- iRegionID, iID - ключ найденного слота.
GetTimeSlotIDByBookID
FUNCTION GetTimeSlotIDByBookID(iRegionID PLS_INTEGER, sBookID VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает ID слота времени по ID брони в заданном районе.
Параметры:
- iRegionID - ID района поиска;
- sBookID - ID брони;
- iStrict - определяет поведение при неудачном поиске.
Если слот с таким BookID не существует или находится в другом районе, поведение определяется параметром iStrict.
GetTimeSlotData
FUNCTION GetTimeSlotData(iRegionID PLS_INTEGER, iID PLS_INTEGER, iLock PLS_INTEGER) RETURN TWorkdayTimeSlot;
Описание
Получает и возвращает данные слота записи на приём, опционально выполняя блокировку.
Параметры:
- iRegionID, iID - ключ слота;
- iLock - выполнять ли блокировку записи (select for update).
Если слот не существует или заблокирован в течение 3 секунд, возникает exception.
IsTimeSlotInFuture
FUNCTION IsTimeSlotInFuture(dSlotWorkday DATE, iSlotOffset PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает 1, если слот времени находится в будущем относительно текущей даты (ещё не наступил), иначе 0.
Параметры:
- dSlotWorkday - дата рабочего дня слота;
- iSlotOffset - смещение слота от начала дня в минутах.
Текущее время округляется с точностью до минуты в большую сторону.
IsTimeSlotNotifiable
FUNCTION IsTimeSlotNotifiable(Slot TWorkdayTimeSlot) RETURN PLS_INTEGER;
Описание
Определяет возможность отправки уведомлений регистратору об изменении статуса брони.
Параметры:
- Slot - забронированный слот времени.
Возвращает 1, если уведомление отправить можно, иначе 0.
ApplyWorktimeTemplate
PROCEDURE ApplyWorktimeTemplate(iRegionID PLS_INTEGER, iWorkplaceID PLS_INTEGER, dWorkday DATE, iTemplateRgnID PLS_INTEGER, iTemplateID PLS_INTEGER);
Описание
Выполняет планирование графика работы для указанного рабочего места, применяя шаблон.
Параметры:
- iRegionID, iWorkplaceID - ключ рабочего места;
- dWorkday - дата (округлённая до дня);
- iTemplateRgnID, iTemplateID - ключ применяемого шаблона.
Если пользователь не имеет прав на планирование графика работы для данного рабочего места, возникает exception.
ReserveTimeSlot
FUNCTION ReserveTimeSlot( iRegionID PLS_INTEGER, iID PLS_INTEGER, sBookID VARCHAR2, iPermanent PLS_INTEGER, iReservationTime PLS_INTEGER, sFirstName VARCHAR2, sMiddleName VARCHAR2, sLastName VARCHAR2, sSNILS VARCHAR2, sPhone VARCHAR2, sEmail VARCHAR2, sEsiaID VARCHAR2 := NULL, iRegistratorRgnID PLS_INTEGER := NULL, iRegistratorID PLS_INTEGER := NULL, sCaseNumber VARCHAR2 := NULL, sRegistratorData VARCHAR2 := NULL) RETURN VARCHAR2;
Описание
Выполняет предварительное или окончательное бронирование слота времени, а также изменение параметров бронирования.
Параметры:
- iRegionID, iID - ключ слота;
- sBookID - идентификатор брони; если не заполнен, генерируется автоматически;
- iPermanent - признак окончательного бронирования (0/1);
- iReservationTime - время в минутах, на которое резервируется слот (только для предварительного бронирования, иначе null);
- sFirstName - имя посетителя;
- sMiddleName - отчество посетителя;
- sLastName - фамилия посетителя;
- sSNILS - СНИЛС посетителя;
- sPhone - телефон посетителя;
- sEmail - адрес электронной почты посетителя;
- sEsiaID - идентификатор посетителя в ЕСИА;
- iRegistratorRgnID, iRegistratorID - ключ системы-участника обмена, от которой поступило заявление на регистрацию;
- sCaseNumber - номер личного дела в системе-участнике обмена;
- sRegistratorData - произвольные данные, записываемые системой-регистратором.
В случае успеха возвращает фактическое значение идентификатора брони.
Если забронировать слот не удалось, возвращает null.
Если слот времени не существует или заблокирован, возникает exception.
UpdateBookingInfo
PROCEDURE UpdateBookingInfo( iRegionID PLS_INTEGER, iID PLS_INTEGER, sFirstName VARCHAR2, sMiddleName VARCHAR2, sLastName VARCHAR2, sSNILS VARCHAR2, sPhone VARCHAR2, sEmail VARCHAR2); -- Привязывает слот записи на приём к обращению за предоставлением ГУ. -- Параметры: -- iRegionID, iSlotID - ключ слота; -- iStateSvcRequestID - ID записи обращения за предоставлением ГУ. -- Если слот времени не существует или заблокирован в течение трёх секунд, возникает exception. PROCEDURE SetSlotStateSvcRequestID(iRegionID PLS_INTEGER, iSlotID PLS_INTEGER, iStateSvcRequestID PLS_INTEGER); -- Отменяет ранее выполненное предварительное бронирование слота времени. -- Параметры: -- iRegionID, iID - ключ слота времени; -- iNotify - отправлять ли по возможности регистратору уведомление об отмене брони (0/1). -- Если слот времени не существует, имеет неподходящий вид или статус, возникает exception. -- Если слот заблокирован в течение трёх секунд, возникает exception. PROCEDURE CancelPreBooking(iRegionID PLS_INTEGER, iID PLS_INTEGER, iNotify PLS_INTEGER := 1); -- Отменяет бронирование указанного слота времени. -- Параметры: -- iRegionID, iID - ключ слота времени; -- iReasonID - код причины отмены; константа из числа IAbandonReason_xxx; -- sReason - текстовое описание причины отмены;
Описание
Обновляет данные посетителя у забронированного слота времени.
Параметры:
- iRegionID, iID - ключ слота;
- sFirstName - имя посетителя;
- sMiddleName - отчество посетителя;
- sLastName - фамилия посетителя;
- sSNILS - СНИЛС посетителя;
- sPhone - телефон посетителя;
- sEmail - адрес электронной почты посетителя.
Если слот времени не существует, или имеет неподходящий вид, возникает exception.
Если слот заблокирован в течение трёх секунд, возникает exception.
SetSlotStateSvcRequestID
PROCEDURE SetSlotStateSvcRequestID(iRegionID PLS_INTEGER, iSlotID PLS_INTEGER, iStateSvcRequestID PLS_INTEGER);
Описание
Привязывает слот записи на приём к обращению за предоставлением ГУ.
Параметры:
- iRegionID, iSlotID - ключ слота;
- iStateSvcRequestID - ID записи обращения за предоставлением ГУ.
Если слот времени не существует или заблокирован в течение трёх секунд, возникает exception.
CancelPreBooking
PROCEDURE CancelPreBooking(iRegionID PLS_INTEGER, iID PLS_INTEGER, iNotify PLS_INTEGER := 1);
Описание
Отменяет ранее выполненное предварительное бронирование слота времени.
Параметры:
- iRegionID, iID - ключ слота времени;
- iNotify - отправлять ли по возможности регистратору уведомление об отмене брони (0/1).
Если слот времени не существует, имеет неподходящий вид или статус, возникает exception.
Если слот заблокирован в течение трёх секунд, возникает exception.
AbandonBooking
PROCEDURE AbandonBooking(iRegionID PLS_INTEGER, iID PLS_INTEGER, iReasonID PLS_INTEGER, sReason VARCHAR2, iNotify PLS_INTEGER := 1);
Описание
Отменяет бронирование указанного слота времени.
Параметры:
- iRegionID, iID - ключ слота времени;
- iReasonID - код причины отмены; константа из числа IAbandonReason_xxx;
- sReason - текстовое описание причины отмены;
- iNotify - отправлять ли по возможности регистратору уведомление об отмене брони (0/1).
Если слот времени не существует или имеет неподходящий вид, возникает exception.
При слот заблокирован в течение трёх секунд, возникает exception.
Если до начала приёма осталось не менее минуты, вместо отменённого слота добавляется новый свободный.
При добавлении свободного слота для записи на приём в порядке очереди также возникает блокировка всех слотов,
входящих в данный интервал.
ReceptionComplete
PROCEDURE ReceptionComplete(iRegionID PLS_INTEGER, iID PLS_INTEGER);
Описание
Переводит слот времени записи на приём в состояние “Приём выполнен”.
Параметры:
- iRegionID, iID - ключ слота времени.
Если слот времени не существует или имеет неподходящий вид, возникает exception.
Если слот заблокирован в течение трёх секунд, возникает exception.
ReceptionNotPerformed
PROCEDURE ReceptionNotPerformed(iRegionID PLS_INTEGER, iID PLS_INTEGER, iReasonID PLS_INTEGER, sReason VARCHAR2);
Описание
Переводит слот времени записи на приём в состояние “Приём не выполнен”.
Параметры:
- iRegionID, iID - ключ слота времени;
- iReasonID - код причины отмены; константа из числа IAbandonReason_xxx;
- sReason - текстовое описание причины отмены.
Если слот времени не существует или имеет неподходящий вид, возникает exception.
Если слот заблокирован в течение трёх секунд, возникает exception.
UpdateAbandonedBookingInfo
PROCEDURE UpdateAbandonedBookingInfo(iRegionID PLS_INTEGER, iID PLS_INTEGER, iReasonID PLS_INTEGER, sReason VARCHAR2);
Описание
Обновляет параметры отмены бронирования слота времени.
Параметры:
- iRegionID, iID - ключ слота;
- iReasonID - код причины отмены; константа из числа IAbandonReason_xxx;
- sReason - текстовое описание причины отмены.
Если слот времени не существует, имеет неподходящий вид или статус, возникает exception.
Если слот заблокирован в течение трёх секунд, возникает exception.
Если изменений не требуется, ничего не происходит.
ActualizeBookingState
PROCEDURE ActualizeBookingState(iRegionID PLS_INTEGER, iID PLS_INTEGER);
Описание
Проверяет срок истечения предварительной брони для для отдельно взятого слота времени.
Параметры:
- iRegionID, iID - ключ обрабатываемого слота времени.
Если слот не существует, не является слотом записи на приём или заблокирован в течение 3 секунд, возникает
exception.
ActualizeBookingState
PROCEDURE ActualizeBookingState(iRegionID PLS_INTEGER, iWorkplaceID PLS_INTEGER, dWorkday DATE, iStrict PLS_INTEGER);
Описание
Массово аннулирует предварительно забронированные слоты времени с истёкшим сроком бронирования для конкретного
рабочего места в конкретный день.
Параметры:
- iRegionID, iWorkplaceID - ключ рабочего места;
- dWorkday - рабочий день;
- iStrict - определяет поведение при наличии сбоев.
Заблокированные записи игнорируются.
ActualizeBookingStateForRegion
PROCEDURE ActualizeBookingStateForRegion(iRegionID PLS_INTEGER, iStrict PLS_INTEGER);
Описание
Массово аннулирует предварительно забронированные слоты времени с истёкшим сроком бронирования для всего района.
Параметры:
- iRegionID - ID обрабатываемого района;
- iStrict - определяет поведение при наличии сбоев.
Заблокированные записи игнорируются.
UpdateExpiredSlots
PROCEDURE UpdateExpiredSlots(iRegionID PLS_INTEGER, dUpToDay DATE, iStrict PLS_INTEGER);
Описание
Переводит свободные слоты времени с истёкшим временем приёма в состояние “Просрочено”.
Параметры:
- iRegionID - район, в котором необходимо выполнить обработку;
- dUpToDay - рабочий день, по который включительно выполнять обработку;
- iStrict - определяет поведение при наличии сбоев.
Заблокированные записи игнорируются.