Создать шаблон для документов или отчётов

В АСР LANBilling все документы и отчёты формируются по тому или иному шаблону. В системе уже есть основные шаблоны: счёт на оплату, акт, счёт-фактура, отчёты по списаниям и др. Также есть возможность добавить свои шаблоны. Менеджер сможет одинаково работать как со встроенными шаблонами, так и с добавленными.

Сначала подготовьте файл с шаблоном, а затем загрузите его в АСР LANBilling.

Подготовить файл с шаблоном

Вы можете создать файл тремя разными способами:

  • в формате XML;
  • в формате HTML;
  • в формате PDF.

Продолжите работу в зависимости от выбранного способа.

В качестве примера создадим шаблон для детализации услуг за месяц. Для работы понадобится программа XMLPad. В этой инструкции мы рассмотрим действия с шаблоном на примере файла testOrder.xml. Вы можете назвать свой шаблон иначе.

  1. В редакторе создайте форму шаблона. Строки вида %имя% используются в качестве идентификаторов переменных. При формировании счёта они будут заменены на реальные значения из вашей базы данных. В качестве уникального идентификатора документа выступает значение orders.order_id, дополненное слева нулями до десяти символов.

    Если в документе нужно напечатать штрихкод, используйте шрифт code39h. Согласно спецификации Code 39 команды «старт» и «стоп» обозначаются символом «*„.

  2. Сохраните форму как Microsoft Word 2003 XML. В результате получится файл: testOrder0.xml.

  3. Откройте xml-файл с помощью XMLPad. Добавьте теги <!-- start_row --> и <!-- end_row -->.

    image

    Проверьте идентификаторы переменных. Теги могут сбиться и выглядеть, например, так:

    <w:t>%</w:t><w:t>serv</w:t><w:t>%</w:t>
    

    ``

    В этом случае приведите их к правильному виду:

    <w:t>%serv%</w:t>
    

    ``

    В результате получится готовый xml-шаблон testOrder.xml.

  4. Создайте файл testOrder.sqlв кодировке UTF-8. Он нужен для подстановки значений из базы данных в переменные шаблона.

    На вход sql-файла подаётся параметр @ORDER_ID, который соответствует значению orders.order_id из базы данных.

    В документе можно вывести данные о менеджере, запустившем его формирование. Для этого используйте переменную @logged_person_id. Например, так:

    %man%:select fio from managers where person_id = @logged_person_i
    

    ``

  5. Скопируйте в директорию /usr/local/billing/templates два файла: testOrder.xml и testOrder.sql.

В качестве примера создадим шаблон для детализации услуг за месяц. Для работы понадобится программа OpenOffice или MSWord. В этой инструкции мы рассмотрим действия с шаблоном на примере файла testOrder.html. Вы можете назвать свой шаблон иначе.

  1. В редакторе создайте форму шаблона. Строки вида %имя% используются в качестве идентификаторов переменных. При формировании счёта они будут заменены на реальные значения из вашей базы данных. В качестве уникального идентификатора документа выступает значение orders.order_id, дополненное слева нулями до десяти символов.

    Если в документе нужно напечатать штрихкод, используйте шрифт code39h. Согласно спецификации Code 39 команды «старт» и «стоп» обозначаются символом «*».

  2. Сохраните форму как html-документ. В результате получится файл testOrder0.html.

  3. Откройте html-документ в любом текстовом редакторе. Добавьте теги <!-- start_row --> и <!-- end_row -->.

    Замените ссылку: вместо локального изображения testOrder0_html_m4276a87.gif нужно указать путь до внешней картинки, например https://docs.lanbilling.ru/files/add_template/logo.gif.

    Проверьте, что в заголовке установлена кодировка UTF-8.

    <META http-equiv="content-type" content="text/html"; charset=utf-8>
    

    ``

    Сохраните файл в кодировке UTF-8. В результате получится html-шаблон testOrder.html.

  4. Создайте файл testOrder.sql в кодировке UTF-8. Он нужен для подстановки значений из базы данных в переменные шаблона.

    На вход sql-файла подаётся параметр @ORDER_ID, который соответствует значению orders.order_id из базы данных.

    В документе можно вывести данные о менеджере, запустившем его формирование. Для этого используйте переменную @logged_person_id. Например, так:

    %man%:select fio from managers where person_id = @logged_person_i
    

    ``

  5. Скопируйте в директорию /usr/local/billing/templates два файла: testOrder.html и testOrder.sql.

В качестве примера создадим шаблон для счёта на оплату. Для работы понадобится любой текстовый редактор. В этой инструкции мы рассмотрим действия с шаблоном на примере файла inv_test.pdf. Вы можете назвать свой шаблон иначе.

  1. В редакторе создайте форму шаблона с помощью языка разметки HTML. Обратите внимание, содержание шаблона нужно обернуть в тег <thtml></thtml>. Всё, что находится внутри этого тега, будет передано в php-переменную и преобразуется в формат pdf.

  2. Сохраните файл как pdf-документ. В результате получится файл inv_test.pdf. Обратите внимание, в примере дополнительно есть тег <qrtx></qrtx>. Он содержит данные для формирования QR кода, передаваемые от sql-файла.

  3. Создайте файл inv_test.post, который нужен для обработки html-тегов в форме шаблона.

  4. Создайте файл inv_test.sql в кодировке UTF-8. Он нужен для подстановки значений из базы данных в переменные шаблона.

    На вход sql-файла подаётся параметр @ORDER_ID, который соответствует значению orders.order_id из базы данных.

    В отчёте можно вывести данные о менеджере, запустившем его формирование. Для этого используйте переменную @logged_person_id. Например, так:

    %man%:select fio from managers where person_id = @logged_person_i
    

    ``

  5. Скопируйте в директорию /usr/local/billing/templates три файла: inv_test.pdf, inv_test.post и inv_test.sql.

Далее нужно добавить шаблон в административном интерфейсе АСР LANBilling.

Добавить шаблон в АСР LANBilling

  1. Перейдите в раздел «Опции» — «Шаблоны документов».

    image
  2. Нажмите «Добавить».

    image

  1. Выберите, будут ли сформированные документы доступны абонентам в личном кабинете.

    image
  2. Введите название шаблона.

  3. Выберите валюту.

    image
  4. Укажите xml-, html- или pdf-файл, который вы создали ранее.

    image
  5. Выберите шаблон автонумерации. Система применит его при формировании документов.

    image
  6. Выберите класс документа.

    Список классов
  7. При выборе классов «Отчётный документ» и «Отчёт по платежам» можно задать значение периода, за который формируется документ.

    • Месяц — отчётный период.
    • Период — произвольный период.
    • День — конкретная дата.
    image
  8. В блоке «Автоматическое формирование документов» выберите, для кого система ежемесячно будет создавать документы:

    • ни для кого — такой документ можно будет создать только вручную;
    • для всех;
    • для подписавшихся — документы будут формироваться только для абонентов, у которых в карточке установлен флаг «Получение счёта по электронной почте». Установить флаг может менеджер или сам абонент в личном кабинете.
    • для группы пользователей;
    • для группы учётных записей;

    image
  9. Нажмите «Сохранить».

    image

Шаблон добавлен в систему. Теперь по нему можно формировать документы или отчёты. Примеры документов, созданных на основе тестовых шаблонов из инструкции: example.xml, example.html и example.pdf.