Документация iSZN

pkDed.sql

Сообщения об ошибках

Error_NoDeduction

PROCEDURE Error_NoDeduction(iRgnID PLS_INTEGER, iID PLS_INTEGER);

Описание

Генерирует exception «Удержание не найдено».

Error_NoDeductionPeriod

PROCEDURE Error_NoDeductionPeriod(iRgnID PLS_INTEGER, iID PLS_INTEGER);

Описание

Генерирует exception «Период удержания не найден».

Error_NoDedPeriodCondition

PROCEDURE Error_NoDedPeriodCondition(iRgnID PLS_INTEGER, iID PLS_INTEGER);

Описание

Генерирует exception «Условие срабатывания периода удержания не найдено».

Error_DedPeriodsIntersection

PROCEDURE Error_DedPeriodsIntersection(iRgnID PLS_INTEGER, iID PLS_INTEGER);

Описание

Генерирует exception «Обнаружено пересечение периодов удержания».

Error_TotalAmtDedDuplicates

PROCEDURE Error_TotalAmtDedDuplicates(iRegionID PLS_INTEGER, iPDocID PLS_INTEGER, iDuplicateCount PLS_INTEGER);

Описание

Генерирует exception «Обнаружено n удержаний по документу».

Error_DedIsControlledByPDoc

PROCEDURE Error_DedIsControlledByPDoc(iRgnID PLS_INTEGER, iID PLS_INTEGER);

Описание

Генерирует exception «Параметры удержания определяются персональным документом».

Проверки

CheckDeductionAsgPKPriv

PROCEDURE CheckDeductionAsgPKPriv(iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER, iPriv PLS_INTEGER);

Описание

Проверяет, что у текущего пользователя есть все указанные привилегии на вид выплаты назначения, по которому
производится удержание.
Параметры:

  • iRegionID, iDeductionID - ключ удержания;
  • iCheckPriv - сумма битовых флагов проверяемых привилегий на вид выплаты.

Если удержание не существует, возникает exception.

CheckNoDedPeriodsIntersection

PROCEDURE CheckNoDedPeriodsIntersection(iRgnID PLS_INTEGER, iID PLS_INTEGER);

Описание

Проверяет, что периоды указанного удержания не пересекаются; в противном случае вызывает Exception.

CheckNoTotalAmtDedDuplicates

PROCEDURE CheckNoTotalAmtDedDuplicates(iRegionID PLS_INTEGER, iPDocID PLS_INTEGER);

Описание

Проверяет, что существует не более одного удержания с заданной общей суммой по указанному персональному документу; в противном случае вызывает Exception.

Работа с данными удержаний, периодов удержаний и условий периодов удержаний

LoadDeduction

FUNCTION LoadDeduction(iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER, iCheckPriv PLS_INTEGER := NULL, iStrict PLS_INTEGER := 1) RETURN TPKDeductionRec;

Описание

Загружает и возвращает данные указанного удержания. Если iCheckPriv не null, попутно выполняется проверка на соответствующие привилегии пользователя. Если удержание не найдено, то при iStrict=1 возникает исключение, в противном случае возвращается null.

DeductionAddFromPDoc

FUNCTION DeductionAddFromPDoc(iRegionID PLS_INTEGER, iAssignedID PLS_INTEGER, iPDocID PLS_INTEGER, dReportDate DATE, nPostalFee NUMBER, iIsActive PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Создаёт удержание по персональному документу. Вновь создаваемое удержание помещается последним по приоритету. Перед добавлением проверяется право пользователя на данную операцию.

DeductionAddFromPDoc

PROCEDURE DeductionAddFromPDoc(iRegionID PLS_INTEGER, iAssignedID PLS_INTEGER, iPDocID PLS_INTEGER, dReportDate DATE, nPostalFee NUMBER, iIsActive PLS_INTEGER);

DeductionAdd

FUNCTION DeductionAdd(
    iRegionID PLS_INTEGER, iAssignedID PLS_INTEGER, dReportDate DATE, iKindID PLS_INTEGER,
    nTotalAmount NUMBER, nPostalFee NUMBER, iIsActive PLS_INTEGER,
    iIsAutoManagedOverpay PLS_INTEGER, iOverpayPKindRgnID PLS_INTEGER, iOverpayPKindID PLS_INTEGER,
    iOverpayItemRgnID PLS_INTEGER, iOverpayItemID PLS_INTEGER, iOverpayFinSrcRgnID PLS_INTEGER, iOverpayFinSrcID PLS_INTEGER,
    dDecisionDate DATE, sDecisionNum VARCHAR2) RETURN PLS_INTEGER;

Описание

Создаёт удержание переплаты с заданными параметрами. Вновь создаваемое удержание помещается последним по приоритету. Перед добавлением проверяется право пользователя на данную операцию.

DeductionAdd

PROCEDURE DeductionAdd(
    iRegionID PLS_INTEGER, iAssignedID PLS_INTEGER, dReportDate DATE, iKindID PLS_INTEGER,
    nTotalAmount NUMBER, nPostalFee NUMBER, iIsActive PLS_INTEGER,
    iIsAutoManagedOverpay PLS_INTEGER, iOverpayPKindRgnID PLS_INTEGER, iOverpayPKindID PLS_INTEGER,
    iOverpayItemRgnID PLS_INTEGER, iOverpayItemID PLS_INTEGER, iOverpayFinSrcRgnID PLS_INTEGER, iOverpayFinSrcID PLS_INTEGER,
    dDecisionDate DATE, sDecisionNum VARCHAR2);
-- Изменяет параметры удержания, делая его удержанием по персональному документу.
-- Перед изменением проверяется право пользователя на данную операцию.
PROCEDURE DeductionModifyFromPDoc(iRegionID PLS_INTEGER, iID PLS_INTEGER, iPDocID PLS_INTEGER, dReportDate DATE, nPostalFee NUMBER, iIsActive PLS_INTEGER);
-- Изменяет параметры удержания.
-- Перед изменением проверяется право пользователя на данную операцию.
PROCEDURE DeductionModify(
    iRegionID PLS_INTEGER, iID PLS_INTEGER, dReportDate DATE, iKindID PLS_INTEGER,
    nTotalAmount NUMBER, nPostalFee NUMBER, iIsActive PLS_INTEGER,
    iIsAutoManagedOverpay PLS_INTEGER, iOverpayPKindRgnID PLS_INTEGER, iOverpayPKindID PLS_INTEGER,
    iOverpayItemRgnID PLS_INTEGER, iOverpayItemID PLS_INTEGER, iOverpayFinSrcRgnID PLS_INTEGER, iOverpayFinSrcID PLS_INTEGER,
    dDecisionDate DATE, sDecisionNum VARCHAR2);
-- Делает удержание активным или неактивным.
-- Параметры:
--   iRegionID, iID - ключ удержания;
--   iActivate      - сделать ли удержание активным (0/1);

DeductionModifyFromPDoc

PROCEDURE DeductionModifyFromPDoc(iRegionID PLS_INTEGER, iID PLS_INTEGER, iPDocID PLS_INTEGER, dReportDate DATE, nPostalFee NUMBER, iIsActive PLS_INTEGER);

Описание

Изменяет параметры удержания, делая его удержанием по персональному документу. Перед изменением проверяется право пользователя на данную операцию.

DeductionModify

PROCEDURE DeductionModify(
    iRegionID PLS_INTEGER, iID PLS_INTEGER, dReportDate DATE, iKindID PLS_INTEGER,
    nTotalAmount NUMBER, nPostalFee NUMBER, iIsActive PLS_INTEGER,
    iIsAutoManagedOverpay PLS_INTEGER, iOverpayPKindRgnID PLS_INTEGER, iOverpayPKindID PLS_INTEGER,
    iOverpayItemRgnID PLS_INTEGER, iOverpayItemID PLS_INTEGER, iOverpayFinSrcRgnID PLS_INTEGER, iOverpayFinSrcID PLS_INTEGER,
    dDecisionDate DATE, sDecisionNum VARCHAR2);
-- Делает удержание активным или неактивным.
-- Параметры:
--   iRegionID, iID - ключ удержания;
--   iActivate      - сделать ли удержание активным (0/1);
--   dDecisionDate  - дата решения об удержании; может быть null, если удержание неактивно;
--   sDecisionNum   - номер решения об удержании; может быть null, если удержание неактивно.
-- Если удержание уже находится в требуемом состоянии, дата и номер решения не изменяются.
-- Перед изменением проверяется право пользователя на данную операцию.
-- Если удержание контролируется документом, то сохраняются дата и номер решения из документа.
-- Если дата или номер решения об удержании не заданы (в том числе в документе, если удержание контролируется
-- документом), то при попытке сделать удержание активным возникает exception.
PROCEDURE DeductionActivate(iRegionID PLS_INTEGER, iID PLS_INTEGER, iActivate PLS_INTEGER, dDecisionDate DATE, sDecisionNum VARCHAR2);
-- Удаляет указанное удержание; при этом проверяется право пользователя на данную операцию
PROCEDURE DeductionDelete(iRegionID PLS_INTEGER, iID PLS_INTEGER);
-- Изменяет приоритет удержаний, перемещая удержание iRegionID-iID перед удержанием iRegionID-iIDInsertBefore с

Описание

Изменяет параметры удержания. Перед изменением проверяется право пользователя на данную операцию.

DeductionActivate

PROCEDURE DeductionActivate(iRegionID PLS_INTEGER, iID PLS_INTEGER, iActivate PLS_INTEGER, dDecisionDate DATE, sDecisionNum VARCHAR2);

Описание

Делает удержание активным или неактивным.
Параметры:

  • iRegionID, iID - ключ удержания;
  • iActivate - сделать ли удержание активным (0/1);
  • dDecisionDate - дата решения об удержании; может быть null, если удержание неактивно;
  • sDecisionNum - номер решения об удержании; может быть null, если удержание неактивно.

Если удержание уже находится в требуемом состоянии, дата и номер решения не изменяются.
Перед изменением проверяется право пользователя на данную операцию.
Если удержание контролируется документом, то сохраняются дата и номер решения из документа.
Если дата или номер решения об удержании не заданы (в том числе в документе, если удержание контролируется
документом), то при попытке сделать удержание активным возникает exception.

DeductionDelete

PROCEDURE DeductionDelete(iRegionID PLS_INTEGER, iID PLS_INTEGER);

Описание

Удаляет указанное удержание; при этом проверяется право пользователя на данную операцию.

DeductionMove

PROCEDURE DeductionMove(iRegionID PLS_INTEGER, iID PLS_INTEGER, iIDInsertBefore PLS_INTEGER);

Описание

Изменяет приоритет удержаний, перемещая удержание iRegionID-iID перед удержанием iRegionID-iIDInsertBefore с учётом приоритета видов удержаний. Если iIDInsertBefore=null, удержание iRegionID-iID помещается последним среди удержаний с тем же приоритетом вида удержания. Если эти удержания относятся к разным назначениям, возникает exception.

DeductionPeriodAdd

FUNCTION DeductionPeriodAdd(iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER, dDateFrom DATE, dDateTo DATE, nMonthlyAmount NUMBER, nRate NUMBER, nMinMonthlyAmount NUMBER) RETURN PLS_INTEGER;

Описание

Создаёт период удержания с указанными параметрами; при этом проверяется право пользователя на данную операцию.

DeductionPeriodAdd

PROCEDURE DeductionPeriodAdd(iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER, dDateFrom DATE, dDateTo DATE, nMonthlyAmount NUMBER, nRate NUMBER, nMinMonthlyAmount NUMBER);

DeductionPeriodModify

PROCEDURE DeductionPeriodModify(iRegionID PLS_INTEGER, iID PLS_INTEGER, dDateFrom DATE, dDateTo DATE, nMonthlyAmount NUMBER, nRate NUMBER, nMinMonthlyAmount NUMBER);

Описание

Изменяет период удержания в соответствии с указанными параметрами; при этом проверяется право пользователя на данную операцию.

DeductionPeriodDelete

PROCEDURE DeductionPeriodDelete(iRegionID PLS_INTEGER, iID PLS_INTEGER);

Описание

Удаляет указанный период удержания; при этом проверяется право пользователя на данную операцию.

DedPeriodConditionAdd

FUNCTION DedPeriodConditionAdd(iRegionID PLS_INTEGER, iPeriodID PLS_INTEGER, iItemRgnID PLS_INTEGER, iItemID PLS_INTEGER, iFinSrcRgnID PLS_INTEGER, iFinSrcID PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Создаёт условие срабатывания периода удержания с указанными параметрами; при этом проверяется право пользователя на данную операцию.

DedPeriodConditionAdd

PROCEDURE DedPeriodConditionAdd(iRegionID PLS_INTEGER, iPeriodID PLS_INTEGER, iItemRgnID PLS_INTEGER, iItemID PLS_INTEGER, iFinSrcRgnID PLS_INTEGER, iFinSrcID PLS_INTEGER);

DedPeriodConditionModify

PROCEDURE DedPeriodConditionModify(iRegionID PLS_INTEGER, iID PLS_INTEGER, iItemRgnID PLS_INTEGER, iItemID PLS_INTEGER, iFinSrcRgnID PLS_INTEGER, iFinSrcID PLS_INTEGER);

Описание

Изменяет условие срабатывания периода удержания в соответствии с указанными параметрами; при этом проверяется право пользователя на данную операцию.

DedPeriodConditionDelete

PROCEDURE DedPeriodConditionDelete(iRegionID PLS_INTEGER, iID PLS_INTEGER);

Описание

Удаляет указанное условие срабатывания периода удержания; при этом проверяется право пользователя на данную операцию.

AdjustDeductionPriority

PROCEDURE AdjustDeductionPriority(iRegionID PLS_INTEGER, iAssignedID PLS_INTEGER);

Описание

Вызывает перенумерацию приоритета удержаний указанного назначения.

Работа с персональными документами

GetDeductionInfoFromPDoc

PROCEDURE GetDeductionInfoFromPDoc(
    iRegionID PLS_INTEGER, iDocInstanceID PLS_INTEGER,
    iKindID OUT PLS_INTEGER, nTotalAmount OUT NUMBER,
    iOverpayPKindRgnID OUT PLS_INTEGER, iOverpayPKindID OUT PLS_INTEGER,
    iOverpayItemRgnID OUT PLS_INTEGER, iOverpayItemID OUT PLS_INTEGER,
    iOverpayFinSrcRgnID OUT PLS_INTEGER, iOverpayFinSrcID OUT PLS_INTEGER,
    dDecisionDate OUT DATE, sDecisionNum OUT VARCHAR2,
    iStrict PLS_INTEGER);
PRAGMA restrict_references(GetDeductionInfoFromPDoc, WNDS);
-- Обновляет параметры указанного удержания в соответствии с данными, содержащимися в персональном документе.
PROCEDURE SyncDeductionWithPDoc(
    iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
-- Обновляет параметры всех удержаний, чьи параметры хранятся в указанном персональном документе.
PROCEDURE SyncAllDeductionsWithPDoc(
    iRegionID PLS_INTEGER, iDocInstanceID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
-- Сбрасывает в null pdoc_id у указанного удержания.
PROCEDURE ClearPDocForDeduction(
    iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);

Описание

Загружает информацию об общих параметрах удержания из персонального документа.
Параметры:

  • iRegionID, iDocInstanceID - ключ экземпляра персонального документа;
  • iKindID - ID вида удержания;
  • nTotalAmount - общая сумма удержания;
  • iOverpayPKindID, iOverpayPKindID - ключ вида выплаты, по которому возникла переплата;
  • iOverpayItemRgnID, iOverpayItemID - ключ предмета назначения, по которому возникла переплата;
  • iOverpayFinSrcRgnID, iOverpayFinSrcID - ключ источника финансирования, по которому возникла переплата;
  • dDecisionDate, sDecisionNum - дата и номер решения об удержании;
  • iStrict - определяет поведение при отсутствии документа, а также в случае, если документ содержит ошибочные данные.

SyncDeductionWithPDoc

PROCEDURE SyncDeductionWithPDoc(
    iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
-- Обновляет параметры всех удержаний, чьи параметры хранятся в указанном персональном документе.
PROCEDURE SyncAllDeductionsWithPDoc(
    iRegionID PLS_INTEGER, iDocInstanceID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
-- Сбрасывает в null pdoc_id у указанного удержания.
PROCEDURE ClearPDocForDeduction(
    iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
-- Сбрасывает в null pdoc_id у всех удержаний, ссылающихся на указанный персональный документ.
PROCEDURE ClearPDocForAllDeductions(
    iRegionID PLS_INTEGER, iDocInstanceID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
 
END;
 
/
CREATE OR REPLACE PACKAGE BODY uszn.pkDed IS

Описание

Обновляет параметры указанного удержания в соответствии с данными, содержащимися в персональном документе.

SyncAllDeductionsWithPDoc

PROCEDURE SyncAllDeductionsWithPDoc(
    iRegionID PLS_INTEGER, iDocInstanceID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
-- Сбрасывает в null pdoc_id у указанного удержания.
PROCEDURE ClearPDocForDeduction(
    iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
-- Сбрасывает в null pdoc_id у всех удержаний, ссылающихся на указанный персональный документ.
PROCEDURE ClearPDocForAllDeductions(
    iRegionID PLS_INTEGER, iDocInstanceID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
 
END;
 
/
CREATE OR REPLACE PACKAGE BODY uszn.pkDed IS
 
/********************************************************************************************************************/
PROCEDURE Error_NoDeduction(iRgnID PLS_INTEGER, iID PLS_INTEGER) IS
BEGIN
  Raise_Application_Error(-20000, 'Удержание '||iRgnID||'-'||iID||' не найдено.');

Описание

Обновляет параметры всех удержаний, чьи параметры хранятся в указанном персональном документе.

ClearPDocForDeduction

PROCEDURE ClearPDocForDeduction(
    iRegionID PLS_INTEGER, iDeductionID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
-- Сбрасывает в null pdoc_id у всех удержаний, ссылающихся на указанный персональный документ.
PROCEDURE ClearPDocForAllDeductions(
    iRegionID PLS_INTEGER, iDocInstanceID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
 
END;
 
/
CREATE OR REPLACE PACKAGE BODY uszn.pkDed IS
 
/********************************************************************************************************************/
PROCEDURE Error_NoDeduction(iRgnID PLS_INTEGER, iID PLS_INTEGER) IS
BEGIN
  Raise_Application_Error(-20000, 'Удержание '||iRgnID||'-'||iID||' не найдено.');
END;
 
/********************************************************************************************************************/
PROCEDURE Error_NoDeductionPeriod(iRgnID PLS_INTEGER, iID PLS_INTEGER) IS

Описание

Сбрасывает в null pdoc_id у указанного удержания.

ClearPDocForAllDeductions

PROCEDURE ClearPDocForAllDeductions(
    iRegionID PLS_INTEGER, iDocInstanceID PLS_INTEGER,
    iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL, iAudMassOpID PLS_INTEGER := NULL);
 
END;
 
/
CREATE OR REPLACE PACKAGE BODY uszn.pkDed IS
 
/********************************************************************************************************************/
PROCEDURE Error_NoDeduction(iRgnID PLS_INTEGER, iID PLS_INTEGER) IS
BEGIN
  Raise_Application_Error(-20000, 'Удержание '||iRgnID||'-'||iID||' не найдено.');
END;
 
/********************************************************************************************************************/
PROCEDURE Error_NoDeductionPeriod(iRgnID PLS_INTEGER, iID PLS_INTEGER) IS
BEGIN
  Raise_Application_Error(-20000, 'Период удержания '||iRgnID||'-'||iID||' не найден.');
END;

Описание

Сбрасывает в null pdoc_id у всех удержаний, ссылающихся на указанный персональный документ.