Документация 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

PROCEDURE Error_NoTimeSlot(rGUID RAW);

Описание

Вызывает exception “Слот времени не найден”.

Error_NoBooking

PROCEDURE Error_NoBooking(sBookID VARCHAR2);

Описание

Вызывает exception “Бронь с идентификатором ... не найдена”.

Error_TimeSlotLocked

PROCEDURE Error_TimeSlotLocked(iRegionID PLS_INTEGER, iID PLS_INTEGER);

Описание

Вызывает exception “Слот времени заблокирован”.

Error_TimeSlotLocked

PROCEDURE Error_TimeSlotLocked(rGUID RAW);

Описание

Вызывает 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

FUNCTION DateToOffset(d DATE) RETURN NUMBER deterministic;

Описание

Переводит дату/время в смещение в минутах от начала дня.

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 - определяет поведение при наличии сбоев.

Заблокированные записи игнорируются.