Не понятно работают позиции и экстракторы, когда встречают расходы на договоре с одинаковым типом. Попробую пояснить на картинках.
На первом скриншоте можно увидеть список расходов, добавленных на договор. Расходы пронумерованы по-порядку для удобной ссылки на них. Расходы образуют пары в соответствии с их типом. В каждой паре сумма расхода может совпадать, а может быть разной.
При генерировании счёта расходы 3-4, 7-8 попадают в счёт с помощью обычных позиций с таким конфигом:
Код:
#
invoice.pos.20.title=Расходы на подключение к услуге
invoice.pos.20.name=Расходы на подключение к услуге
invoice.pos.20.summ=CHARGE($month, 1)
invoice.pos.20.qtynums=2
invoice.pos.20.unit=шт.
invoice.pos.20.unitCode=796
invoice.pos.20.insum=1
invoice.pos.20.awlz=0
#
invoice.pos.25.title=Расходы на диагностику
invoice.pos.25.name=Расходы на диагностику
invoice.pos.25.summ=CHARGE($month, 3)
invoice.pos.25.qtynums=2
invoice.pos.25.unit=шт.
invoice.pos.25.unitCode=796
invoice.pos.25.insum=1
invoice.pos.25.awlz=0
#
Расходы 1-2, 5-6 попадают в счёт с помощью экстрактора с таким конфигом:
Код:
#
invoice.pos.35.title=Прочие расходы
invoice.pos.35.name=Прочие расходы
invoice.pos.35.extractor=KERNEL_CHARGES_EXCEPT($month, 1, 3, 4, 7, 9, 14)
invoice.pos.35.qtynums=2
invoice.pos.35.unit=шт.
invoice.pos.35.unitCode=796
invoice.pos.35.insum=1
#
Просматривая результирующие позиции в счёте можно обнаружить следующую картину:
Выводы, которые можно заключить из скриншотов:
1. Позиции сгруппированы по типу расхода - собственно, так и должно быть согласно документации.
2. Позиции образованные обычными позициями всегда с количеством 1 даже если расходов с одним типом больше одного.
3. Позиции образованные экстрактором всегда с количеством, соответствующим количеству расходов одного типа (в данном случае 2).
Вопросы:
1. Почему экстракторы и обычные позиции по-разному вычисляют количество?
2. Можно ли сказать модулю Bill, чтобы он не объединял расходы с одним типом в одну строку?