Инструменты пользователя

Инструменты сайта


receipts

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
receipts [2020/07/27 12:57]
bobr [Шаблон]
receipts [2020/07/27 15:50] (текущий)
bobr [Поддерживаемые переменные и макросы]
Строка 23: Строка 23:
  
  
-Начиная с релиза 1.0.9 стало возможным иметь неограниченное количество шаблонов,​ которые можно указывать прямо на форме печати квитанций. Например,​ если для разных предпренимателей должны быть разные бланки квитанций. Или если вы хотите печатать и не квитанции вовсе, а, скажем - уведомления(никто же вас не обязывает к тому, чтобы в шаблоне фигурировали суммы и оплаты). Просто разместите каталог с наименованием шаблона в **content/​documents/​receipt_template/​**,​ а уже в этот каталог положите файлы **heading**,​ **body**, **footer** - и ваш шаблон станет доступным в соответствующем выпадающем списке на форме модуля.+Начиная с релиза 1.0.9 стало возможным иметь неограниченное количество шаблонов,​ которые можно указывать прямо на форме печати квитанций. Например,​ если для разных предпренимателей должны быть разные бланки квитанций. Или если вы хотите печатать и не квитанции вовсе, а, скажем - уведомления(никто же вас не обязывает к тому, чтобы в шаблоне фигурировали суммы и оплаты). Просто разместите каталог с наименованием шаблона в **content/​documents/​receipt_template/​**,​ а уже в этот каталог положите файлы ​секций ​**heading**,​ **body**, **footer** - и ваш шаблон станет доступным в соответствующем выпадающем списке на форме модуля.
 ==== Поддерживаемые переменные и макросы ==== ==== Поддерживаемые переменные и макросы ====
 ----  ---- 
-\\  
 **{CURDATE}** - текущая дата \\ **{CURDATE}** - текущая дата \\
 +**{CURTIME}** - текущее время \\
 +**{CURDATENODELIMS}** - текущая дата без разделителей \\
 +**{CURDATETIMENODELIMS}** - текущее время без разделителей \\
 +**{INVOICE_NUM}** - номер квитанции. Генерируется как следующий ID в таблице //'​​invoices'//,​​ если квитанция в процессе генерации сохраняется в БД. \\ Или просто как {CURDATENODELIMS} + {CURDATETIMENODELIMS} + '​​-'​​ + "​​**текущий индекс массива** выбранных для печати абонентов"​​. \\ Или просто как {CURDATENODELIMS} + {CURDATETIMENODELIMS},​​ если в **heading**-секции указан макрос {INV_NUM_CURDATETIME}. \\
 +**{MONTH_COUNT}** - количество месяцев указанных для оплаты \\
 **{PAYFORPERIODSTR}** - оплата за период(месяцы),​ например:​ март 2019, апрель 2019 \\ **{PAYFORPERIODSTR}** - оплата за период(месяцы),​ например:​ март 2019, апрель 2019 \\
 **{PAYTILLMONTHYEAR}** - будет заменено на текущий год + следующий месяц(согласно формату даты, указанному в шаблоне) \\ **{PAYTILLMONTHYEAR}** - будет заменено на текущий год + следующий месяц(согласно формату даты, указанному в шаблоне) \\
Строка 33: Строка 37:
 **{SERVICENAME}** - наименование оплачиваемой услуги \\ **{SERVICENAME}** - наименование оплачиваемой услуги \\
 **{CONTRACT}** - номер договора пользователя \\ **{CONTRACT}** - номер договора пользователя \\
 +**{CONTRACTDATE}** - дата договора пользователя \\
 **{REALNAME}** - ФИО пользователя \\ **{REALNAME}** - ФИО пользователя \\
 **{CITY}** - город проживания пользователя \\ **{CITY}** - город проживания пользователя \\
Строка 38: Строка 43:
 **{BUILD}** - дом \\ **{BUILD}** - дом \\
 **{APT}** - квартира \\ **{APT}** - квартира \\
 +**{EXTADDR_POSTALCODE}** - почтовый индекс из дополнительных полей адреса. Требует включенной alter.ini опции ADDRESS_EXTENDED_ENABLED. \\
 +**{EXTADDR_TOWNDISTR}** - район/​​ПГТ/​​округ/​​етс из дополнительных полей адреса. Требует включенной alter.ini опции ADDRESS_EXTENDED_ENABLED. \\
 +**{EXTADDR_ADDREXT}** - дополнительная инфо по адресу из дополнительных полей адреса. Требует включенной alter.ini опции ADDRESS_EXTENDED_ENABLED. \\
 **{PHONE}** - телефон пользователя \\ **{PHONE}** - телефон пользователя \\
 **{MOBILE}** - мобильный пользователя \\ **{MOBILE}** - мобильный пользователя \\
Строка 47: Строка 55:
 **{SUMMCOINS}** - сумма к оплате выраженная в копейках \\ **{SUMMCOINS}** - сумма к оплате выраженная в копейках \\
 **{SUMMDECIMALS}** - сумма к оплате с двумя знаками после запятой \\ **{SUMMDECIMALS}** - сумма к оплате с двумя знаками после запятой \\
 +\\
  
 ==== QR-коды и специальные переменные и макросы ==== ==== QR-коды и специальные переменные и макросы ====
Строка 52: Строка 61:
 Для генерация QR-кодов предполагается использование JS-библиотеки **jquery.qrcode** и соответствующей минимальной "​обвязки"​ для нее. В шаблоне-примере уже имеются все минимально необходимые для этого скрипты.\\ ​ Для генерация QR-кодов предполагается использование JS-библиотеки **jquery.qrcode** и соответствующей минимальной "​обвязки"​ для нее. В шаблоне-примере уже имеются все минимально необходимые для этого скрипты.\\ ​
  
-Для корректной генерации и расположения QR-кодов используются следующие макросы ​(указываются только в **head**-секции):+Для корректной генерации и расположения QR-кодов используются следующие макросы:​
  
-**{QR_CODES_CNT}** - количество QR-кодов,​ по сути равное количеству абонентов. Используется JS-скриптом для обхода элементов DOM с соответствующими индексами.+**{QR_CODES_CNT}** - количество QR-кодов,​ по сути равное количеству абонентов(генерируемых документов). Используется JS-скриптом для обхода элементов DOM с соответствующими индексами. Располагать в **heading**-секции.
  
-**{QR_CODE_CONTENT}** - данные,​ которые нужно "​упаковать"​ в QR-код+**{QR_CODE_CONTENT}** - данные,​ которые нужно "​упаковать"​ в QR-код. Располагать в **body**-секции.
  
-**{QR_INDEX}** - индекс или порядковый номер QR-кода,​ по которому JS-скрипт будет находить элемент DOM, который будет содержать сам QR-код или же содержит данные,​ которые нужно "​упаковать"​ в QR-код+**{QR_INDEX}** - индекс или порядковый номер QR-кода,​ по которому JS-скрипт будет находить элемент DOM, который будет содержать сам QR-код или же содержит данные,​ которые нужно "​упаковать"​ в QR-код. Располагать в **body**-секции.
  
-**{QR_EMBED}** - наличие этого макроса указывает,​ что генерация QR-кодов должна производится на стороне сервера и готовый QR-код встраивается в документ в виде закодированного в Base64 изображения. Также **необходимо** не забыть добавить в секцию **head** скрытый инпут вида:+**{QR_EMBED}** - наличие этого макроса указывает,​ что генерация QR-кодов должна производится на стороне сервера и готовый QR-код встраивается в документ в виде закодированного в Base64 изображения. Также **необходимо** не забыть добавить в секцию **heading** скрытый инпут вида:
 <code html> <code html>
 <input id="​qr_embedded"​ type="​hidden"​ value="​0"​ /> <input id="​qr_embedded"​ type="​hidden"​ value="​0"​ />
 </​code>​ </​code>​
-со значением //"​value"​=1//​. Важно отметить,​ что, поскольку,​ делается это средствами гуглоАПИ http://​chart.apis.google.com/​chart - такая генерация занимает довольно много времени и не рекомендована для большого количества документов(хотя на тестах до 100 штук - вполне себе приемлемо).+со значением //"​value"​=1//​. ​Располагать в **heading**-секции.\\ ​Важно отметить,​ что, поскольку,​ делается это средствами гуглоАПИ http://​chart.apis.google.com/​chart - такая генерация занимает довольно много времени и не рекомендована для большого количества документов(хотя на тестах до 100 штук - вполне себе приемлемо ​- пара минут ожидания...).
  
 Вкратце,​ логика процесса генерации QR-кода следующая: ​ Вкратце,​ логика процесса генерации QR-кода следующая: ​
Строка 89: Строка 98:
 <​code>​ <​code>​
     {MONTHYEAR_FORMAT_START}m-Y{MONTHYEAR_FORMAT_END}     {MONTHYEAR_FORMAT_START}m-Y{MONTHYEAR_FORMAT_END}
 +</​code>​
 +  * Номера квитанций будут генерироваться по принципу {CURDATENODELIMS} + {CURDATETIMENODELIMS},​ если вы добавите указанный ниже макрос:​
 +<​code>​
 +{INV_NUM_CURDATETIME}
 </​code>​ </​code>​
receipts.1595843860.txt.gz · Последние изменения: 2020/07/27 12:57 — bobr