Шаблоны xls документов

Мы добавили возможность создавать собственные шаблоны документов в формате XLS. На данный момент доступно создание документов для следующих объектов

  • Заказы
  • Накладные
  • Счета
  • Возвраты
  • Упаковочные листы

Для создания своего шаблона переходим в раздел Служебные - Шаблоны документов. Там отображаются стандартные шаблоны, предустановленные нами, и ваши собственные. Для создания собственного шаблона скачайте один из стандартных шаблонов, подходящего типа, и нажмите кнопку Создать

Шаблоны xls документов иллюстрация №1

В форме редактирования заполняем поля

  • Название - как он будет называться в списке для выбора документа
  • Группа - для какого объекта он будет доступен (Заказ, Накладная, Счет, Возврат, Упаковочный лист)
  • Активен - будет ли шаблон отображаться в списке на печать
  • Показывать в клиентской части - может ли клиент сформировать документ по данному шаблону (актуально для счетов и накладных)
  • Регион - в каком регионе показывать шаблон
  • Тип клиента - можно сделать разные шаблоны для Юр. лиц и Физ. лиц
  • Файл шаблона - загружаем скачанный вами файл. Файл строго формата xls 97-2003, другие форматы не поддерживаются и будут приводить к ошибке формирования документа.

Нажимаем сохранить.

Теперь шаблон появится среди списка доступных на печать в разделе Накладные и Заказы - По группам. 

Шаблоны xls документов иллюстрация №2

В результате получаем сформированный файл

Шаблоны xls документов иллюстрация №3

Технические подробности о переменных

В каждом типе документа доступен корневой объект

  • Заказы - 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 клиента)
  • email - адрес электронной почты
  • balance - баланс
  • compileName - имя клиента
  • contractComment - Основание (договор, доверенность)
  • urType - тип клиента 0 - юр. лицо, 1 - физ. лицо
  • contact - ссылка на объект contact (Контакты)
  • essential - ссылка на объект essential (Реквизиты)
  • deliveryAddress - ссылка на объект address (адрес доставки)
  • officialAddress - ссылка на объект address (юр. адрес / адрес регистрации)
  • clientCoef - клиентскией коэффициент наценки

contact - контакты

  • phone - основной номер телефона
  • cellPhone - добавочный номер телефона
  • skype - скайп
  • email - email (только для регион)

address - адрес

  • shortAddress - адрес краткий
  • fullAddress - адрес полный

region - регион

  • name - название региона
  • nds - уровень НДС в регионе
  • contact - ссылка на объект contact (Контакты)
  • essential - ссылка на объект essential (Реквизиты)
  • deliveryAddress - ссылка на объект address (Адрес Доставки)
  • officialAddress - ссылка на объект address (Юр. адрес)

essential - реквизиты

  • companyName - название компании
  • ceoName - ФИО директора
  • buhName - ФИО бухгалтера
  • inn - инн
  • kpp - кпп
  • bik - бик
  • bank - Наименование банка
  • cityBank - Год банка
  • loroAccount - Счет
  • ogrn - ОГРН
  • okpo - ОКПО
  • korrSchet - Корр счет банка
  • shortEssential - краткие реквизиты

order - заказ

  • id - ID заказа
  • customer - ссылка на объект customer (Клиент)
  • region - ссылка на объект region (Регион)
  • createdAt - дата создания
  • orderId - ID заказа в разрезе клиента
  • sum - сумма
  • qnt - количество
  • currentQnt - количетсво актуальное
  • sumRublej - сумма в рублях
  • sumGriven - сумма в гривнах
  • sumTenge - сумма в тенге
  • dateWords - дата словами (17 декабря 2017)
  • monthWord - месяц словами
  • monthNum - месяц номер (v1.1)
  • year - год
  • day - день
  • positionCount - количество позиций
  • positionCountWord - количество позиций словами
  • orderItems - ссылка на массив объектов orderItems
  • deliveryType - ссылка на объект deliveryType
  • deliveryPoint - ссылка на объект deliveryPoint
  • orderAddress - ссылка на объект adress
  • loadOrderClientNumber - номер заказа из файла заказа клиента
  • clientFileCells - двухмерный массив ячеек файла оптового заказа (если подгружался). Пример вызова ${order.clientFileCells[2][4]}

deliveryType - тип доставки

  • id - ID типа доставки
  • name - название типа доставки

deliveryPoint - точка выдачи

  • id - ID типа доставки
  • name - название типа доставки
  • title - описание

orderItem - позиции заказа

  • id - ID позиции
  • cost - цена продажи
  • sum - сумма
  • firstCost - цена закупки
  • qnt - количество заказано
  • currentQnt - текущее актуальное количество
  • qntConfirmed - количество подтвердили
  • qntAccept  - количество подтвердили накладной
  • 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.dateWords} - выводим дату заказа словами
  • ${order.customer.shortEssential} - выводим реквизиты пользователя
  • ${order.region.essential.companyName} - выводим название компании
  • ${order.sumRublej} - выводим сумму заказов в рублях

Как выводить список позиций?

Для этого используется оператор цикла <jx:forEach items="${order.orderItems}" var="order_item"  varStatus="status"> где

  • order.orderItems массив переменных для перебора
  • order_item - наименование переменной в цикле
  • status - переменная информации о цикле

Цикл необходимо закрыть оператором </jx:forEach> . Операторы начала цикла и конца цикла должны быть проставлены в пустых строках до и после строки шаблона таблицы списка.

Шаблоны xls документов иллюстрация №4

Для тех кому удобней посмотреть