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

pkStat.sql

Сервисные функции общего назначения

AnalyzeStatsRKeysTable

PROCEDURE AnalyzeStatsRKeysTable;

Описание

Выполняет расчёт статистики по таблице R$_STATS_RKEYS.

Учёт выплаты

LoadPKAcctAmounts

FUNCTION LoadPKAcctAmounts(iRegionID PLS_INTEGER, iPKID PLS_INTEGER, iPKRgnID PLS_INTEGER, dDate DATE, sFilterInner VARCHAR2 := NULL, sFilterOuter VARCHAR2 := NULL) RETURN TPKAcctAmounts;

Описание

Загружает базовые (элементарные) суммы для учёта выплаты на дату dDate sFilterInner - фильтр (без слова where) для фильтрации внутреннего запроса по r_po_items (i) и r_po_amounts (a) sFilterOuter - фильтр (без слова where) для фильтрации внешнего запроса (вставляется перед группировкой).

PKAcctAmountsToRecs

FUNCTION PKAcctAmountsToRecs(Amts IN TPKAcctAmounts) RETURN uszn.TPKAccountingRecs;

Описание

Преобразует базовые (элементарные) суммы для учёта выплаты в таблицу учёта выплаты.

GetPKAccounting

FUNCTION GetPKAccounting(iRegionID PLS_INTEGER, iPKID PLS_INTEGER, iPKRgnID PLS_INTEGER, dDate DATE, sFilterInner VARCHAR2 := NULL, sFilterOuter VARCHAR2 := NULL) RETURN TPKAccountingRecs;

Описание

Получает таблицу учёта выплаты на дату; параметры sFilterInner и sFilterOuter - как в LoadPKAcctAmounts.

GetPKStatistics

FUNCTION GetPKStatistics(iRegionID PLS_INTEGER, iPKID PLS_INTEGER, iPKRgnID PLS_INTEGER, dRDate DATE := NULL) RETURN uszn.TPKStatRecs;

Описание

Получает таблицу статистики по виду выплаты на текущую отчётную дату. Если отчётная дата не задана, возникает

  • Exception

dRDate - задаваемая дата выборки.

Прочее

GetCategoryCount

FUNCTION GetCategoryCount(iRegionID PLS_INTEGER, iCatID PLS_INTEGER, iCatRgnID PLS_INTEGER, dDate DATE := NULL, iMonthsFrom PLS_INTEGER := NULL, iMonthsTo PLS_INTEGER := NULL, iIncludeFrom PLS_INTEGER := 1, iIncludeTo PLS_INTEGER := 1, sCatsExtra VARCHAR2 := NULL) RETURN PLS_INTEGER;

Описание

Вычисляет количество людей, имеющих заданную категорию на указанную дату.
Если категория не указана, берутся все категории, выбранные в таблице r$_pc_categories_to_compute.
Если дата не указана, берётся текущая системная дата.
Если указан возраст, то он также учитывается
Можно также указать дополнительный набор категорий в виде строкового выражения sCatsExtra:

  • номера категорий задаются в виде region_id*1000000+id;
  • допустимые операции: + = или = or, * = и = and, ! = не = not, а также скобки;
  • вычисления производятся справа налево с учётом старшинства «не» > «и» > «или», например: (325+326)*(407*!408) = (есть 325 или 326) и (есть 407 и нет 408).

GetPCWithCatInPeriodCount

FUNCTION GetPCWithCatInPeriodCount(iRegionID PLS_INTEGER, dDateFrom DATE, dDateTo DATE, iCatSlurps uszn.TIntegerList, iCheckSubset PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Возвращает количество людей или коллективов, обладающих ЛЮБОЙ из заданных категорий («or») в пределах заданного периода («за отчётный период»), либо на одну из дат («срез») - iCheckSubset: если >0, проверять наличие ключа человека/коллектива в r$_stats_rkeys с kind_id=iCheckSubset - iCheckSubset: если <0, проверять отсутствие ключа человека/коллектива в r$_stats_rkeys с kind_id=Abs(iCheckSubset).

GetPCWithCatsInPeriodCount

FUNCTION GetPCWithCatsInPeriodCount(iRegionID PLS_INTEGER, dDateFrom DATE, dDateTo DATE, iCatSlurp1 PLS_INTEGER, iCatSlurp2 PLS_INTEGER := NULL, iCatSlurp3 PLS_INTEGER := NULL, iCatSlurp4 PLS_INTEGER := NULL, iCatSlurp5 PLS_INTEGER := NULL, iCheckSubset PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Возвращает количество людей или коллективов, обладающих заданной категорией или их СОЧЕТАНИЕМ («and») В остальном аналогична предыдущей функции.

GetPDocOwnersCount

FUNCTION GetPDocOwnersCount(iRegionID PLS_INTEGER, dDateFrom DATE, dDateTo DATE, iDateFromClsID PLS_INTEGER, iDateToClsID PLS_INTEGER, sValue VARCHAR2, iValueClsID PLS_INTEGER, iMonthsFrom PLS_INTEGER := NULL, iMonthsTo PLS_INTEGER := NULL, iIncludeFrom PLS_INTEGER := 1, iIncludeTo PLS_INTEGER := 1, sValuesExtra VARCHAR2 := NULL, sCertExtra VARCHAR2 := NULL, iAddClsID PLS_INTEGER := NULL, sAddValue VARCHAR2 := NULL, iCountFrom PLS_INTEGER := 1, iCountTo PLS_INTEGER := 0) RETURN PLS_INTEGER;

Описание

Вычисляет количество людей, имеющих заданные реквизиты таблиц.
Параметры:

  • iRegionID - район, люди в котором считаются. Если null, то считается по всем районам.
  • dDateFrom, dDateTo - диапазон дат, на который требуется наличие документа. Они могут отсутствовать или совпадать; может быть указана только одна из них
  • iDateFromClsID, iDateToClsID - class_id реквизитов, содержащих соответствующие даты. если соответствующая дата указана, а class_id - нет, то эта дата будет влиять только на дополнительные ДПК отсутствие в документе реквизита с датой «По» трактуется как отсутствие ограничения по сроку окончания
  • sValue, iValueClsID - значение и class_id «базового» реквизита; если указаны, то будут считаться только обладатели документа с соответствующим значением этого реквизита.
  • iMonthsFrom, iMonthsTo - возрастной диапазон человека. Если не указан, то не учитывается. Необязательно указывать обе границы.
  • iIncludeFrom, iIncludeTo - включительно или нет считается соответствующий возраст (1=да) если указана дата «С», то возраст берётся на неё; если нет, но дата «По», то возраст берётся на неё; в противном случае возраст считается на текущую системную дату.
  • sValuesExtra - дополнительные проверяемые реквизиты документа: условия на значения реквизитов задаются в виде class_id=value для простых реквизитов class_id записывается в виде #№№№№ для вложенных таблиц в виде ##№№№№ допустимые операции: + = или = or, * = и = and, ! = не = not, а также скобки; вычисления производятся справа налево с учётом старшинства «не» > «и» > «или», например: (#3492=1)*(##3126=25) - ДПК выдан (class_id=3492) и подкатегория равна 25 (class_id=3126)
  • sCertExtra - дополнительно проверяемые реквизиты ДПК: правила составления выражения те же самые, class_id должны соответствовать class_id соответствующих реквизитов ДПК если указаны даты, то они также распространяются и на ДПК наличие реквизита «Отметка о выдаче» также необходимо указывать в условии.

Статистика по ЖКУ

GetHCS26Table1

FUNCTION GetHCS26Table1(iRegionID PLS_INTEGER, dFrom DATE, dTo DATE) RETURN uszn.TStatTbl;

Описание

Форма 26-ЖКХ. Таблица 1. «Распределение численности граждан, пользующихся социальной поддержкой по оплате жилья
и коммунальных услуг». Возвращает в виде uszn.TStatTbl, где
n1 - равняется 1, если это группа признаков учёта; 0, если это папка групп признаков учёта
n2 - id группы (или папки групп) признаков учёта
n3 - region_id группы (или папки групп) признаков учёта
n4 - количество субъектов назначения с членами семей, на которых распространились суммы
n5 - количество субъектов назначения
n6 - сумма выделенных средств.

GetHCS26Table2

FUNCTION GetHCS26Table2(iRegionID PLS_INTEGER, dFrom DATE, dTo DATE) RETURN uszn.TStatTbl;

Описание

Формы 26-ЖКХ. Таблица 2. «Распределение численности граждан, пользующихся социальной поддержкой по оплате жилья
и коммунальных услуг, и средств, затраченных организациями на их предоставление, по видам услуг». Возвращает в
виде uszn.TStatTbl, где
n1 - жилищные
n2 - отопление
n3 - водоснабжение горячее
n4 - водоснабжение холодное
n5 - водоотведение (канализация)
n6 - газоснабжение
n7 - электроснабжение
n8 - порядковый номер строки в форме.

GetHCS26Table1New

FUNCTION GetHCS26Table1New(iRegionID PLS_INTEGER, dFrom DATE, dTo DATE) RETURN uszn.TStatTbl;

Описание

Форма 26-ЖКХ. Таблица 1 - для формы, действующей с 2007 года.
Значения столбцов:

  • name - description папки для итогов и подитогов, abbr группы - для групп признаков учёта;
  • n1 - 1 для итогов и подитогов, 0 для групп признаков учёта;
  • n2 - ID папки групп признаков учёта (для итогов и подитогов) или группы признаков учёта (для групп);
  • n3 - ID района папки групп признаков учёта (для итогов и подитогов) или группы признаков учёта (для групп);
  • n4-n11 - показатели численности граждан;
  • n12 - сумма МСП по ЖКУ (руб).;
  • n13 - сумма МСП по ЖКУ (руб). из бюджета субъекта РФ;
  • n50 - признак первой строки подитогов или первой группы признаков учёта в папке: 0 - не первая, 1 - первая, null - общий итог.