Документация 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 у всех удержаний, ссылающихся на указанный персональный документ.