Docs

Модуль работы с платёжными документами.

Возможности

Установка

abills/libexec/config.pl

@MODULES = (
          'Docs'
          );

Работа с системой

Основные категории

  1. Счет (invoice) - платёжный документ на оплату
  2. Оплата (payment), после оплаты в в счете делается пометка что был оплачен
  3. Квитанция об оплате (receipts) - выписывается по факту оплаты с пометкой номера оплаты
  4. Налоговая (tax invoice) - для юридических лиц выписывается в конце месяца по факту оплаты

Счет на оплату и квитанция могут выписаться в момент оплаты. Также при оплате можно выбрать счет по которому была произведена оплата. Если сума оплаты отличается от сумы счета система может распределить суму по нескольким счетам

Управление абонетом

Отчёты

Настройка

$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_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. Система находит самый ранний по дате счёт в статусе «Не оплачен»
  2. Проверяет, какая сумма по данному счётy не оплачена
    1. Если неоплаченный остаток счёта+сумма оплаты = сумма счёта, то

то вся сумма оплаты распределяется на данный счёт (в записи об счёте появляется ссылка на номер записи об оплате, которая была внесена по этому счёту и гасимая сумма, а в записи об оплате появляется ссылка на счёт, который был оплачен и сумма оплаты, которая этот счёт закрывает), и счёт переходит в статус «Оплачен»

  1. Если неоплаченный остаток счёта+сумма оплаты < сумма счёта, то

вся сумма оплаты распределяется на данный счёт (в записи об счёте появляется ссылка на номер записи об оплате, которая была внесена по этому счёту и гасимая сумма, а в записи об оплате появляется ссылка на счёт, который был оплачен и сумма оплаты, которая этот счёт закрывает);

  1. Если неоплаченный остаток счёта+сумма оплаты > сумма счёта, то

вся сумма оплаты, равная неоплаченному остатку, распределяется на данный счёт, счёт переходит в статус «Оплачен», а для распределения оставшейся суммы оплаты система исполняет действия с шага 1.

Ручная привязка счетов
Пользователь из списка при оплате выбирает нужный счет

  1. Если неоплаченный остаток счёта+сумма оплаты = сумма счёта, то

то вся сумма оплаты распределяется на данный счёт, и счёт переходит в статус «Оплачен»

  1. Если неоплаченный остаток счёта+сумма оплаты < сумма счёта, то

вся сумма оплаты распределяется на данный счёт;

  1. Если неоплаченный остаток счёта+сумма оплаты > сумма счёта, то

вся сумма оплаты, равная неоплаченному остатку, распределяется на данный счёт, счёт переходит в статус «Оплачен». Также есть возможность вручную выбрать счёт для привязки оставшейся части оплаты к другому счёту. Данное действие производится через через журнал счетов. Администратор выбирает неоплаченный счет и переходит к журналу не прикреплённых оплат где он выбирает нужную оплату и указывает суму. Если сума больше чем счет система прикрепляет только суму со отсутствующею счету, а остальную помечает как не распределённую.
Если при ручном распределении счёт не выбран, то вся сумма оплаты считается не распределенной.

Если удаляется оплата или счет соответственно система удаляет и привязку

Групповая генерация счетов и квитанций на оплату

Генерацией счетов на оплату занимается программа multi_docs.pl

аргументы:

PERIODIC_INVOICE создать периодические счета и отправить их абонентов
PREPAID_INVOICES Создание и отправка счетов в начале периода на все услуги по которым произошли списания в текущем месяце
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'

(дата генерации счета указывается в настройках абонента / Клиенты / Логины / Информация / Сервисы / Документы / Настройки)

При автоматической генерации счет

  1. Система вытаскивает сумы всех начислений на поточный учётный период
  2. Показывает их списком
  3. добавляет суму задолженности отдельным пунктом, если она есть
  4. если счет выписан до даты учётного периода тогда депозит указывает без учёта начисления позиций счета