Мы добавили возможность создавать собственные шаблоны документов в формате XLS. На данный момент доступно создание документов для следующих объектов
Заказы
Накладные
Счета
Возвраты
Упаковочные листы
Для создания своего шаблона переходим в раздел Служебные - Шаблоны документов. Там отображаются стандартные шаблоны, предустановленные нами, и ваши собственные. Для создания собственного шаблона скачайте один из стандартных шаблонов, подходящего типа, и нажмите кнопку Создать
В форме редактирования заполняем поля
Название - как он будет называться в списке для выбора документа
Группа - для какого объекта он будет доступен (Заказ, Накладная, Счет, Возврат, Упаковочный лист)
Активен - будет ли шаблон отображаться в списке на печать
Показывать в клиентской части - может ли клиент сформировать документ по данному шаблону (актуально для счетов и накладных)
Регион - в каком регионе показывать шаблон
Тип клиента - можно сделать разные шаблоны для Юр. лиц и Физ. лиц
Файл шаблона - загружаем скачанный вами файл. Файл строго формата xls 97-2003, другие форматы не поддерживаются и будут приводить к ошибке формирования документа.
Нажимаем сохранить.
Теперь шаблон появится среди списка доступных на печать в разделе Накладные и Заказы - По группам.
В результате получаем сформированный файл
Технические подробности о переменных
В каждом типе документа доступен корневой объект
Заказы - order
Накладные - invoice
Счета - bill
Возврат - productReturnReasonRequest
ПКО - balancePko
У этих объектов есть зависимые объекты и собственные поля, ниже подробно опишем каждый из типов объектов
invoice - накладная
id - ID документа в системе
createdAt - дата создания
sum - сумма
sumNds - сумма НДС
sumWithoutNds - сумма без НДС
qnt - количество единиц товара, не путать с количеством позиций документа
weight - сумма веса позиций по накладной
positionCount - количество позиций заказа
positionCountWord - количество позиций документа словами
monthNum - месяц номер (v1.1)
monthWord - месяц создания документа словами
year - год создания документа
day - день создания документа
ndsPercent - процент ндс
no - номер документа
sumRublej - сумма словами рублей
sumGriven - сумма словами гривен
sumTenge - сумма словами тенге
dateWords - дата словами, наприме 12 декабря 2017 года
documentCreatedAt - дата документов по данным поставщика
documentCreatedAtWords - дата документов по данным поставщика словами
customer - ссылка на объект типа customer (Пользователь)
region - ссылка на объект типа region (Регион)
invoiceItems - список позиций документа
invoiceItem - позиция накладной
oem - номер детали
makeName - производитель детали
detailName - название детали
price - цена за единицу
priceWithoutNds - цена без НДС
qnt - количество
sum - сумма
sumWithoutNds - сумма без ндс
ndsSum - сумма с ндс
gtd - номер накладной
countryDigitalCode - код страны
countryCode - буквенный код
countryShortName - короткое наименование страны
countryFullName - полное наименование страны
weight - вес детали
tnvdCode - код ТНВД
currency - код валюты (накладные поставщиков)
currencyCode - цифровой код валюты (накладные поставщиков)
unit - единица измерения (накладные поставщиков)
orderItemComment - комментарий позиции клиентского заказа (добавлено 03.11.2021)
customer - клиент
id - ID клиента
updCompileName - имя клиента для УПД (без ID клиента)
qntAcceptOrConfirmed - если есть количество подтверждено накладной - выдается оно, если нет - количесто подтвержденое через веб-сервис/файлом ответа/через ответ на сайте
qntIncome - количество выдали
answereQnt - количество для ответа клиенту
status - статус текстом
statusCode - код группы статуса
comment - комментарий клиента
oem - номер детали
makeName - бренд
detailName - название
minDeliveryDay - минимальный срок доставки
maxDeliveryDay - максимальный срок доставки
customerTitle - название клиента
lastStatusChangeAt - дата последнего изменения статуса
createdAt - дата создания позиции
userCommitId - ID менеджера отправившего в статус В работе
commitUserName - имя менеджера отправившего в работу
userOrderId - ID менеджера создавшего заказ
userOrderName - имя менеджера создавшего заказ
column(1-20) - если заказ подгружался из excel, то в этих ячейках значения столбцов строки заказа.
bill - счет
customer - ссылка на объект customer (Клиент)
region - ссылка на объект region (Регион)
id - ID счета
ndsPercent - ндс процентов
sumNds - сумма ндс
createdAt - дата создания
sum - сумма
qnt - количество единиц товара
sumRublej - сумма словами в рублях
sumGriven - сумма словами в гривнах
sumTenge - сумма словами в тенге
dateWords - дата словами
monthNum - месяц номер (v1.1)
monthWord - месяц
year - год
day - день
positionCount - количество строк
positionCountWord - количество строк словами
billItems - массив элементов счета объекты billItem
order - объект типа Order (если счет привязан к заказу)
billItem - позиции счета
id - ID позиции
sum - сумма
ndsSum - сумма ндс
sumWithoutNds - сумма без ндс
cost - цена за единицу
qnt - количество
oem - номер
makeName - бренд
detailName - название
productReturnReasonRequest - документ возврата
id - ID возврата
customer - ссылка на объект customer (Клиент сделавший возврат)
region - ссылка на объект region (Регион оформления возврата)
productReturnReason - ссылка на объект productReturnReason (Тип причины возврата)
orderItem - ссылка на объект orderItem (Позиция на возврат)
invoices - накладные по которым был выдан товар (может быть несколько)
returnSum - сумма к возврату с учетом процента удержания
returnCost - возврат за одну позицию с учетом процента удержания
returnQnt - количество к возврату
dateWords - дата словами
monthNum - месяц номер (v1.1)
monthWord - месяц
year - год
day - день
productReturnReason - тип возврата
id - ID типа возврата
name - название
percentRetention - процент удержания
basketBundle - корзина на печать (v 1.07)
region - ссылка на объект region (Регион печати корзины)
user - ссылка на объект user (Менеджер печатающий корзину)
baskets - позиции корзины, массив объектов basket
sum - сумма число
qnt - сумма единиц товара
sumRublej - сумма словами в рублях
sumGriven - сумма словами в гривнах
sumTenge - сумма словами в тенге
dateWords - дата словами
monthNum - месяц номер (v1.1)
monthWord - месяц
year - год
day - день
positionCount - количество строк
positionCountWord - количество строк прописью
basket - элементы корзины (v 1.07)
oem - номер детали
oemMask - номер скрытый
makeName - бренд
detailName - название
cost - цена
qnt - количество
minDeliveryDay - минимальный срок доставки
maxDeliveryDay - максимальны срок доставки
sum - сумма позиций
balancePko - документ ПКО
region - ссылка на объект region (Регион клиента)
user - ссылка на объект user (Менеджер выполневший внесение на баланс)
customer - ссылка на объект customer (Клиент сделавший пополнение баланса)
sum - сумма число
sumRublej - сумма словами в рублях
sumGriven - сумма словами в гривнах
sumTenge - сумма словами в тенге
dateWords - дата словами
monthNum - месяц номер (v1.1)
monthWord - месяц
year - год
day - день
description - описание пополнения
incomeType - источник пополнения
ruble - целая часть суммы
penny - копейки
id - ID документа
createdAt - дата создания документа
Примеры вывода переменных
${order.orderId} - выводим номер заказа в разрезе пользователя
${order.region.essential.companyName} - выводим название компании
${order.sumRublej} - выводим сумму заказов в рублях
Как выводить список позиций?
Для этого используется оператор цикла <jx:forEach items="${order.orderItems}" var="order_item" varStatus="status"> где
order.orderItems массив переменных для перебора
order_item - наименование переменной в цикле
status - переменная информации о цикле
Цикл необходимо закрыть оператором </jx:forEach> . Операторы начала цикла и конца цикла должны быть проставлены в пустых строках до и после строки шаблона таблицы списка.