Настройка и добавление шаблонов счетов

Настройка и добавление шаблонов счетов
S
Автор Sergiiy
Обновлено 1 год назад

Шаблоны http://antennahouse.com/ . Полученный документ XSL FO окончательно преобразуется в файл PDF с помощью Apache FOP . Начиная с FlySIP SoftSwitch 5.0 в качестве конвертера PDF используется версия wkhtmltopdf .   

Шаблоны счетов хранятся в базе данных, таблица invoice_templates. Шаблоны со значениями поля i_invoice_template в диапазоне от 1 до 1000 являются системными шаблонами, они дополнительно оформляются как: invoice_templates.is_system = True

Шаблоны счетов для счетов

Шаблон счета-фактуры является обязательным атрибутом Тарифного плана (billing_plans.i_invoice_template). Шаблон счета-фактуры имеет системное значение по умолчанию (см. ниже). Учетные записи имеют необязательные атрибуты для шаблонов счетов (accounts.i_invoice_template), которые могут переопределить настройку из плана обслуживания. Учетные записи также имеют настройки для включения генерации счетов. Счета могут быть отправлены по электронной почте на адреса, указанные в контактах аккаунта, в виде: account.invoicing_enabled  

В интерфейсе FlySIP Учетная запись может просмотреть тип счета, который включен, установив флажок «Выставление счетов включено» в его настройках (суб-Учетная запись после входа в систему может изменить его).

Шаблоны счетов можно выбрать из списка Шаблоны счетов после включения выставления счетов.

То же самое можно сделать, используя функцию массовой загрузки для нескольких учетных записей.

Текущие назначенные системные шаблоны

  • 1  - Шаблон счета по умолчанию для учетных записей

Создание пользовательского шаблона счета-фактуры

Рекомендуется избегать изменения шаблона счета по умолчанию. Используя следующую стратегию, вы всегда будете использовать один рабочий шаблон счета-фактуры по умолчанию и сможете настроить собственный шаблон по своему усмотрению.

  1. Войдите в свой коммутатор и откройте страницу со списком всех шаблонов счетов. Начиная с версии 5.2 FlySIP  страница доступна в меню Клиенты - Выставление счетов - Шаблоны счетов, в более ранних версиях она скрыта, поэтому вам нужно вручную набрать "invoice_templates.php" в адресной строке вашего браузера. Полная ссылка выглядит как https://11.22.33.44/c1/invoice_templates.php (где 11.22.33.44 — адрес или доменное имя вашего коммутатора).   
  2. По умолчанию доступен только один шаблон под названием "По умолчанию...". Откройте его и скопируйте HTML-содержимое шаблона счета-фактуры по умолчанию в буфер обмена или блокнот или нажмите кнопку «Добавить на основе существующих» на странице «Шаблоны счетов-фактур» ( начиная с версии 5.2 ).
  3. Затем вернитесь на страницу invoice_templates.php и нажмите «Добавить новый шаблон счета».
  4. Снова откройте HTML-редактор.
  5. Вставьте содержимое HTML, которое вы скопировали на шаге № 2.
  6. Сохраните шаблон. Теперь у вас есть полная копия шаблона рабочего счета по умолчанию, который вы можете настроить по своему усмотрению.

Список доступных макросов

Начиная с версии 5.0 FlySIP список доступных макросов доступен из редактора счетов:

Макросы, содержащие атрибуты учетной записи:

  • ${I_INVOICE} – уникальный идентификатор счета-фактуры.
  • ${I_ACCOUNT} – уникальный идентификатор учетной записи.
  • ${USERNAME} — имя учетной записи
  • ${SALUTATION} — приветствие из настроек аккаунта. Мистер Миссис.
  • ${FIRST_NAME} — имя из настроек аккаунта
  • ${LAST_NAME} — фамилия из настроек аккаунта.
  • ${CURRENCY} – базовая валюта аккаунта.
  • ${STREET_ADDR} — почтовый адрес из настроек аккаунта.
  • ${POSTAL_CODE} – почтовый индекс из настроек учетной записи.
  • ${CITY} – город из настроек аккаунта.
  • ${COMPANY_NAME} – название компании из настроек аккаунта. ( начиная с 5.1 )
  • ${COUNTRY} – страна из настроек аккаунта
  • ${STATE} — провинция/штат из настроек учетной записи. ( начиная с 5.3 )

Макросы, содержащие информацию о текущем счете:

${TOTAL_CHARGES} – общая сумма всех поминутных планов и списаний по тарифному плану.

${PAYMENTS_AMOUNT} - Сумма платежей за текущий расчетный период

${FORWARD_AMOUNT} - Невыплаченная сумма за предыдущий период

${LAST_BILL_AMOUNT} – сумма к оплате по предыдущему счету

${AMOUNT_DUE} – сумма, которую аккаунт должен заплатить в конце расчетного периода. Будет содержать ненулевые значения, только если баланс счета ниже нуля.

${TARIFF_CALLS_PRICE} - Суммарная сумма звонков, превышающих минуты тарифного плана.

${TARIFF_CALLS_DURATION} — общая продолжительность вызовов в счете, превышающая количество минут, предусмотренных тарифным планом. Формат продолжительности: [чч:]мм:сс ( начиная с 5.1 )

${PLAN_CALLS_DURATION} — общая оплачиваемая продолжительность звонков в минутах тарифного плана. Формат продолжительности: [чч:]мм:сс ( начиная с 5.1 )

${ALL_CALLS_DURATION} – общая оплачиваемая продолжительность всех звонков. Формат продолжительности: [чч:]мм:сс ( начиная с 5.1 )

${ADDITIONAL_CHARGES} — расходы, примененные в текущем расчетном периоде в дополнение к ${TOTAL_CHARGES}.

${BILL_DATE} - Дата на момент создания счета

${LAST_BILL_DATE} – дата выставления предыдущего счета.

${TOTAL_DID_CALLS_CHARGES} — общая сумма начислений на DID-звонки для аккаунта. ( начиная с 5.0 )

Таблицы:

  • ${TABLE:service_plan_charges} – содержит все поля из таблицы базы данных service_charges.
  • ${TABLE:service_plan_minutes} — содержит все поля из таблицы базы данных service_plans.
  • ${TABLE:charges} — содержит все платежи, примененные к аккаунту за расчетный период. Таблица, которая может включать плату за обслуживание, плату за минутный план, ежемесячную плату DID и плату за установку DID ( начиная с 5.0 ). Доступные поля в таблице:
  • charge_time - дата и время списания
  • date - дата только часть charge_time
  • сумма - положительное число применяемого начисления
  • валюта - валюта
  • name - название заряда
  • description - описание заряда
  • _num - Порядковый номер записи
  • ${TABLE:cdrs} — содержит все поля из таблицы cdrs, а также следующие дополнительные поля, которые должны быть помещены в макросы TABLE:
    • _num - Порядковый номер записи
    • date - часть даты поля connect_time
    • time - часть времени поля connect_time

Примеры макроса в ${TABLE:cdrs} :

  • ${TD:cld_in} - поле cld_in
  • ${TD:cost} - поле стоимости
  • ${TD:duration;fmt=duration} — формат «длительность» отображает значение в формате [чч:]мм:сс. Начиная с 4.5 
  • ${TD:country} - страна из пунктов назначения, разрешенных на основе префикса. Начиная с 5.3 
  • ${TD:description} — описание из пунктов назначения, разрешенное на основе префикса. Начиная с 5.3 

Таблица cdrs принимает два необязательных параметра:  

  • max_rows — максимальное количество CDR для отображения в счете, по умолчанию 100.
  • show_zero_cdrs — отображать CDR нулевой продолжительности в счете-фактуре, по умолчанию — false

Примеры:

  • ${TABLE:cdrs;max_rows=0} - получить неограниченное количество CDR
  • ${TABLE:cdrs;show_zero_cdrs=true;max_rows=10000} - отображать в счете cdrs нулевой продолжительности, не более 10000 записей

Замена макросов 

Шаблон счета может содержать макросы. Макросы могут быть двух типов — общие и зависящие от контекста.

  • Общие макросы 

  • Макросы для создания таблиц 

Для представления данных таблицы существуют макросы ${TABLE}, ${TD} и ${TABLE_END}, которые предназначены для использования, как показано в примере:

<table>
<tr>
<th>Звонок</th>
<th>Дата</th>
<th>Время</th>
<th>Номер звонка</th>
</tr><tr>
<td>$ {TABLE:cdrs}</td>
</tr><tr>
<td>${TD:_num}</td>
<td>${TD:date}</td>
<td>${TD:time }</td>
<td>${TD:cld_in}</td>
</tr><tr>
<td>${TABLE_END}</td>
</tr>
</table>

Все строки между макросами ${TABLE} и ${TABLE_END} повторяются столько раз, сколько строк необходимо отобразить, а строки таблицы HTML, содержащие эти макросы, всегда пропускаются и никогда не включаются в окончательный документ.

Макрос EVAL

С помощью этого макроса вы можете производить произвольные арифметические вычисления и размещать их на странице в нужном формате. Общий вид макроса:

${EVAL:<выражение>[;<формат>]}

Примеры:

Округлите результат до второго знака после точки:

${EVAL: (${TOTAL_CHARGES}) ; %.02f }

Выполните деление на 3 и округлите до второй цифры после точки:

${EVAL: (${LAST_BILL_AMOUNT} / 3.0) ; %.02f }

Некоторые арифметические операции:

${EVAL: (${TD:_num} + 15)/2}

Для редактирования шаблона счета используйте веб-приложения по прямым ссылкам:

/invoice_templates.php /images.php

Список поддерживаемых форматов изображений:

JPG, JPEG, PNG, GIF (статические)

Список поддерживаемых шрифтов:

Без засечек

Моноширинный

с засечками

Пользовательские CSS

Начиная с нашей версии FlySIP 5.0, наши пользователи теперь могут добавлять свой собственный CSS в свой собственный шаблон счета. Шаблон счета-фактуры будет иметь специальное поле для CSS, чтобы вы могли маркировать свои счета по мере необходимости. Таблицу стилей просто нужно скопировать в поле ниже. Ниже приведен очень простой пример и показан пример вывода.

**

Чтобы помочь вам использовать эту функцию, здесь обновлен пример шаблона счета-фактуры, который включает базовую таблицу стилей и результирующий шаблон счета-фактуры.

CSS

<code>body { background-color: #ffffff; } h2 { цвет: оранжевый; цвет фона: #ff9900; граница: 1px сплошная #544f4f; } p, em { цвет: оранжевый; цвет фона: #ff9900; граница: 1px сплошная #544f4f; } p, li { украшение текста: подчеркивание; }


Пример окончательного вывода:

Тест (подтверждение) шаблона счета-фактуры

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

Оцените эту статью