Модуль работы с платёжными документами.
abills/libexec/config.pl
@MODULES = ( 'Docs' );
Основные категории
Счет на оплату и квитанция могут выписаться в момент оплаты. Также при оплате можно выбрать счет по которому была произведена оплата. Если сума оплаты отличается от сумы счета система может распределить суму по нескольким счетам
$conf{DOCS_ACCOUNT_EXPIRE_PERIOD}=10; | Время действительности счета. По умолчанию 30 дней |
---|---|
$conf{DOCS_ACCOUNT_EXPIRE_DAY}=20; | Дата действия счета. Имеет более высокий приоритет чем $conf{DOCS_ACCOUNT_EXPIRE_PERIOD} |
$conf{MONEY_UNIT_NAMES}=['грн','коп']; | Название денежной еденицы большая меньшая часть |
$conf{DOCS_PDF_PRINT}=1; | Вывод печатных документов в формате PDF. Шаблоны документов помещать в папку шаблонов $conf{TPL_DIR}. Функция работает только при наличии установленого Perl модуля PDF::API2 Смотрите также Работа с шаблонами |
$conf{DOCS_VAT_INCLUDE}=20; | Процентов включенного налога |
$conf{DOCS_ORDERS}=['Услуги связи', 'Тех. поддержка']; | Виды товаров для счёта |
$conf{DOCS_LANGUAGE}='russian'; | Язык печатных документов. По умолчанию равен $conf{default_language} |
$conf{DOCS_PAYMENT_METHODS}='-' | Описание типов платежей для бухгалтерских документов. При указании данной переменной типы оплат берутся с данной переменной, а не из системных типов оплат. Если нет типа указанного в данной переменной используется тип с номером 0. По этому рекомендовано всегда иметь описание оплаты с типом 0. Формат $conf{DOCS_PAYMENT_METHODS}='номер:тип; номер:тип;'; Пример 0:оплата с расчётного счёта; 1:Наличка; 2:Поступление с терминалов |
$conf{DOCS_CURRENCY}='980'; | Валюта выписываемых документов. Если опция указана и отличается от системной $conf{SYSTEM_CURRENCY}, документы выписываются в двух валютах в системной и в валюте документов. Коды нужно вводить соответственно с стандартом ISO 4217. Также нужно заводить валюты в меню конвертации / Система/ Курс обмена/ Таблица кодов http://index.minfin.com.ua/code/ |
$conf{DOCS_SKIP_NEXT_PERIOD_INVOICE}=1; | Не отображать в пользовательском интерфейсе форму выписки счета на следующий учётный период |
$conf{DOCS_PAYMENT_SYSTEM_CURRENCY}=1; | При оплате заполнять поля оплаты системной валютой |
$conf{DOCS_PRE_INVOICE_PERIOD}=10; | Количество дней до начала учётного периода для генерации счетов. ( По умолчанию 10 ) |
$conf{DOCS_INVOICE_ORDERS}=12; | Количество позиций в счете. По умолчанию 12 |
$conf{DOCS_CONTRACT_TYPES}=':Д:физические лица:contract_1; :В:выделенка для юр. лиц (Ethernet, ADSL):contract_2; :ВО:оптика для организаций:contract_3;'; | Задания списка типов договоров для работы с клиентами. Формат: ПРЕФИКС_ДОГОВОРА:CУФИКС_ДОГОВОРА:НАЗВАНИЕ_ДОГОВОРА:ШАБЛОН Для шаблона contract_1 система будет искать файл /usr/abills/Abills/templates/Docs_docs_contract_1.tpl или его альтернативный pdf шаблон. Если не заполнено поле Номер договора и дата система автоматически подставляет следующий нужный номер в эти поля. |
$conf{DOCS_INVOICE_ALT_TPL}=1; | Включить возможность вести 2 шаблона счетов. Основной и дополнительный |
$conf{DOCS_INVOICE_PAID_TPL}=1; | Выводить для оплаченых счетов другой шаблон. шаблон для оплаченных счетов docs_invoice_paid.[tpl|dsc|pdf] |
$conf{DOCS_FEES_METHOD_ORDERS}=1; | Выводит типы услуг в счетах с типов начислений |
$conf{DOCS_SKIP_USER_MENU}=1; | Не отображать меню документов в портале абонента |
---|---|
$conf{DOCS_USERPORTAL_INVOICE}=1; | Cписок квитанций в портале абонентов |
$conf{DOCS_PAYMENT_RECEIPT_SKIP}=1; | Не создавать квитанцию после оплаты |
$conf{DOCS_PAYMENT_SENDMAIL}=1; | Отправлять создданные после оплаты документы почтой: счет и квитанцию. |
$conf{DOCS_PAYMENT_DOCS_SKIP}=1; | Не формировать и не показывать форму документов |
$conf{DOCS_ACCOUNT_EXPIRE_PERIOD_MULTIPLIER}=2; | Множитель для удаления неоплаченных счетов. Если Время действительности счета кончилось и он не оплачен. Счет будет удален через («Дата действия счета» * «Множитель»). Пример: DOCS_ACCOUNT_EXPIRE_DAY(DOCS_ACCOUNT_EXPIRE_PERIOD)=30; DOCS_ACCOUNT_EXPIRE_PERIOD_MULTIPLIER=3; 30 * 3 = 90 дней |
Также можно формировать индивидуально документы для каждого типа оплат (docs_account.tpl, docs_account_company.tpl, docs_invoice.tpl).
Формат таких шаблонов в каталоге abills/Abills/templates:
[название модуля]_[название шаблон]_[тип оплаты].tpl Docs_docs_account_1.tpl
Данная функция доступна только для документов в формате PDF
Например Если Вам нужно для оплат наличными выдавать кассовый чек, а для оплат банком от юридических лиц акт оказания услуг
формируем два дополнительных шаблона:
1. Будет выдаваться по умолчанию для всех платежей
abills/Abills/templates/Docs_docs_account.tpl # признак индивидуального шаблона abills/Abills/templates/Docs_docs_account.pdf # сам шаблон abills/Abills/templates/Docs_docs_account.dsc # файл описание переменных
2 Будет выписываться для оплат с типом банк
abills/Abills/templates/Docs_docs_account_1.tpl # признак индивидуального шаблона abills/Abills/templates/Docs_docs_account.pdf # abills/Abills/templates/Docs_docs_account.dsc #
Список типов пополнения можно расширять по вашему желанию, переменная для расширения этого списка указана в расширенной документации
docs_receipt_email.tpl
Шаблон тела письма отправки квитанции
docs_invoice_email.tpl
Шаблон тела письма отправки счета
Для групп имеющих флаг Собственные Бух. документы можно создавать индивидуальные шаблоны документов.
шаблоны создаются в папке abills/Abills/templates/ по принципу индивидуальных шаблонов и в конце названия файла через два нижних подчеркивания указывается номер группы. Если нужно использовать тип услуги указанный в оплатах и индивидуальные групповые документы тогда через одно подчёркивание (Docs_[название шаблона]_[Номер типа услуги]_[номер группы].tpl).
Пример:
для группы 99
abills/Abills/templates/Docs_docs_account__99.tpl # признак индивидуального шаблона abills/Abills/templates/Docs_docs_account__99.pdf # сам шаблон abills/Abills/templates/Docs_docs_account__99.dsc # файл описание переменных
В системе реализована функция ручной и автоматической привязки оплат к счетам
Автоматическая привязка
то вся сумма оплаты распределяется на данный счёт (в записи об счёте появляется ссылка на номер записи об оплате, которая была внесена по этому счёту и гасимая сумма, а в записи об оплате появляется ссылка на счёт, который был оплачен и сумма оплаты, которая этот счёт закрывает), и счёт переходит в статус «Оплачен»
вся сумма оплаты распределяется на данный счёт (в записи об счёте появляется ссылка на номер записи об оплате, которая была внесена по этому счёту и гасимая сумма, а в записи об оплате появляется ссылка на счёт, который был оплачен и сумма оплаты, которая этот счёт закрывает);
вся сумма оплаты, равная неоплаченному остатку, распределяется на данный счёт, счёт переходит в статус «Оплачен», а для распределения оставшейся суммы оплаты система исполняет действия с шага 1.
Ручная привязка счетов
Пользователь из списка при оплате выбирает нужный счет
то вся сумма оплаты распределяется на данный счёт, и счёт переходит в статус «Оплачен»
вся сумма оплаты распределяется на данный счёт;
вся сумма оплаты, равная неоплаченному остатку, распределяется на данный счёт, счёт переходит в статус «Оплачен». Также есть возможность вручную выбрать счёт для привязки оставшейся части оплаты к другому счёту. Данное действие производится через через журнал счетов. Администратор выбирает неоплаченный счет и переходит к журналу не прикреплённых оплат где он выбирает нужную оплату и указывает суму. Если сума больше чем счет система прикрепляет только суму со отсутствующею счету, а остальную помечает как не распределённую.
Если при ручном распределении счёт не выбран, то вся сумма оплаты считается не распределенной.
Если удаляется оплата или счет соответственно система удаляет и привязку
Генерацией счетов на оплату занимается программа multi_docs.pl
аргументы:
PERIODIC_INVOICE | создать периодические счета и отправить их абонентов |
PREPAID_INVOICES | Создание и отправка счетов в начале периода на все услуги по которым произошли списания в текущем месяце |
MULTIPOSITION_INVOICE=1 | Разбиение услуг компании для инвойсирования по позициям. По умолчанию все услуги идут одной позицией |
LOGIN | Логин абонента |
COMPANY_ID | ID компании |
DATE=YYYY-MM-DD | Дата создания документов |
SORT= | Порядок создания документов |
DEBUG=[1..7] | Режим отладки |
PREPAID_INVOICES
Создание и отправка счетов в начале периода на все услуги по которым произошли списания в текущем месяце. Если не указывается дата счета создаются на все услуги от текущего числа. Также генерируются счета за неинвойсированные услуги прошлого периода, отлючение выписки неинвойсированных платежей SKIP_NOT_INVOICED_FEES=1
# /usr/abills/bin/multi_docs.pl PREPAID_INVOICES=1
Если в аргументах указывается параметр COMPANY_ID тогда запускаются только счета по компаниям указанным в параметре и соответственно LOGIN только по логинам не состоящим в компаниях. При генерации счета для компании он приходит администратору компании за все логины и услуги компании.
Для компании счета нужно генерировать 1 числа. В счет будут включатся задолженность компании и сума услуг всех абонентов на поточный месяц. Если у Компании нет администратора по счетам счеты не будут формироваться. Параметры генерации счета указанные в абонентов компании не влияют на генерацию счета.
PERIODIC_INVOICE
Создание счетом на следующие учётные периоды.
# /usr/abills/bin/multi_docs.pl PERIODIC_INVOICE DATE="2012-08-18/2012-09-20"
Счета создаются для пользователей у которых в параметрах документ оборота включено «Автоматическая генерация счёта» и наступила дата создания счетов (по умолчанию: за 10 дней до начала учётного периода).
Также можно указывать дату за которую нужно обработать счета DATE='2012-08-18' или период дат через косую черту DATE='2012-08-18/2012-09-20'
(дата генерации счета указывается в настройках абонента / Клиенты / Логины / Информация / Сервисы / Документы / Настройки
)
При автоматической генерации счет
TOTAL COMPANIES: 2 DOCS: 0
у администратора компании не отмечена опция в личных настройках документов ( / Клиенты / Логины / Информация / Сервисы / Документы / Настройки
) «Автоматическая генерерация счёта»