Экстакторы

Зачастую в системе присутствуют большое количество однотипных списаний и абонентских плат. В этом случае конфигурирование под каждую отдельной позиции достаточно обременительно и могут использоваться экстракторы. Позиция с экстрактором заводится в конфигурации модуля.

  • Параметры title и unit имеют значение, аналогичные обычным позициям. В параметр extractor может быть подставлен один из перечисленных ниже макросов. Вместо <month> могут быть подставлены значения $month, $nextmonth, $prevmonth, $prev2month, $prev3month, означающие в данном контексте месяц, за который производится выборка. Вместо <mid> подставляется код экземпляра соответствующего модуля.

  • KERNEL_CHARGES(<month>, <коды типов расх>) - расходы договора в каком-то месяце. Тип расхода становится названием позиции, количество расходов данного типа - количеством. При не указании кодов типов расходов выбираются все типы расходов;

  • KERNEL_CHARGES_EXCEPT(<month>, <коды типов расходов, которые исключаются>) - аналогичен предыдущему, но указываются коды типов расходов, которые не выбираются;

  • NPAY_SERVICES(<mid>, <month>, <коды услуг>) - начисления абонплат в каком-то месяце. Название услуги абонплаты становится названием позиции, количество абонплат данного типа, установленных в договоре на данный месяц - количеством. При не указании кодов услуг выбираются все начисленные на договор абонплаты;

  • NPAY_SERVICES_EXCEPT(<mid>, <month>, <коды услуг, которые исключаются>) - аналогичен предыдущему, но указываются коды услуг, которые не выбираются;

  • NPAY_SERVICES_DETAIL(<mid>, <month>, <коды услуг>) - детализация начислений абонплат в каком-то месяце. Аналогичен NPAY_SERVICES, но данные берутся из таблицы npay_detail_<mid>_yyyymm, то есть данные будут разнесены по кодам сущностей других модулей( например поинты модуля телефонии );

  • RSCM_SERVICES(<mid>, <month>, <коды услуг>) - начисления по услугам RSCM в каком-то месяце. Название услуги RSCM становится названием позиции, количество услуги - количеством оказанной услуги . Единица измерения услуги - единица измерения счета При не указании кодов услуг выбираются все услуги RSCM оказанные для данного договора;

  • RSCM_SERVICES_EXCEPT(<mid>, <month>, <коды услуг, которые исключаются>) - аналогичен предыдущему, но указываются коды услуг, которые не выбираются;

  • EXT-экстракторы (KERNEL_CHARGES_EXT, KERNEL_CHARGES_EXT_EXCEPT, NPAY_SERVICES_EXT, NPAY_SERVICES_EXT_EXCEPT и т.д.) - расширенные (EXTended) экстракторы, которые в отдельную позицию выделяют каждый расход (для ядра) и каждую услугу (для модулей), даже если они имею одинаковый тип (код). Аргументы для экстрактора те же, что и для аналогичных нерасширенных.

Позиция экстрактора "распадается" в момент генерации документа на множество позиций в зависимости от реального количества начислений на договоре.

В unit указывается единица измерения - простая строка.

Пример экстрактора

Получение всех расходов за месяц:

bill.pos.3.title=Расходы
bill.pos.3.name=Расход
bill.pos.3.extractor=KERNEL_CHARGES($month)

NPay экстракторы

Отдельно стоит отметить, что экстракторы модуля NPay поддерживают следующие макросы в имени позиции( name ):

  • $title - название услуги

  • $period - период услуги

  • $month, $nextmonth, {$month,date,MMMM yyyy г.} итд - стандартные макросы даты счета

И только расширенные(EXT) еще следующие:

  • $comment - комментарий услуги

  • $oid.name - название объекта, если таковой имеется у услуги

Если в конфигурации отсутствует параметр bill.pos.<№ позиции>.name, то для обычных экстракторов будет использовано название услуги, а для расширенных название услуги и комментарий.