Docs
Модуль работы с платёжными документами.
Возможности
- Выписка счётов из пользовательского интерфейса
- Выписка счётов из интерфейса для администраторов
- Выписка счетов-фактур
- Автоматическая выписка счёта, кассового чека при занесении денег на аккаунт пользователя
- Формирование общего файла счетов для печати и рассылки всем пользователям.
- Формирование актов оказания услуг за определённый период.
- автоматическое формирование актов оказания услуг для всех компаний системы.
- Выписка налоговых накладных
- Формирование договора и его печать
- Возможность формировать несколько типов договоров в зависимости от предоставляемых услуг.
- Создание документов в PDF формате (нужен модуль PDF::API2)
Установка
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_ACCOUNT}=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] |
Шаблоны
Для правки шаблонов нужно использовать редактор шаблонов Настройка / Другое / Шаблоны
список шаблонов:
docs_invoice.tpl и docs_invoice_paid.tpl
Счёт (КВИТАНЦИЯ) для оплаты физическим лицами
docs_invoice.tpl - шаблон для неоплаченного счета
docs_invoice_paid.tpl - шаблон для оплаченного счета, если нет кастомно созданого шаблона используется docs_invoice.tpl
Заходите в нужном клиенте в / Клиенты/ Логины/ Информация/
в Оплаты
AVANCE | Аванс с предыдущего периода |
---|---|
INVOICE_NUM | Номер счёта |
FIO | Фио |
ADDRESS_FULL | Адрес |
CONTRACT_ID | контракт |
CONTRACT_DATE | дата контракта |
A_FIO | ФИО администратора |
TOTAL_SUM | Общая сума |
TOTAL_SUM_WITHOUT_VAT | общая сума без налога |
CUSTOMER | Пользователь |
AMOUNT_FOR_PAY | Полная Сума для оплаты сума счета плюс депозит |
DEPOSIT | Депозит абонента на момент выписки счета |
DEBT | Задолженость |
PAYMENT_ID | Номер в журнале платежей. Появляется после оплате по указанному счету |
MONTH | Поточный Месяц |
DATE | Поточная Дата |
TIME | Поточное Время |
FROM_DATE_LIT | $d $MONTH_LIT $y year |
DAY | день |
MONTH_LIT | Месяц прописью |
YEAR | |
DATE_EURO_STANDART | дата d.m.y |
A_FIO | ФИО админа |
SUM_LIT | Сума прописью |
CHARGED_SUM | Сума оплаченных услуг |
EXPIRE_DATE | Время действительности счета. Дата до которой нужно оплатить счет |
LAST_PAYMENT_SUM | Сума последней оплаты |
LAST_PAYMENT_DATE | Дата последней оплаты |
INVOICE_PERIOD | Период инвойсирования (yyyy-mm-dd-yyyy-mm-dd) |
Табличная часть
ORDER_NUM_1 | Номер услуги/товара в табличной части |
---|---|
ORDER_NAME_1 | Наименование услуги/товара в табличной части |
ORDER_COUNT_1 | Количество услуги/товара в табличной части |
ORDER_PRICE_1 | Цена услуги/товара в табличной части |
ORDER_SUM_1 | Сума услуги/товара в табличной части |
ORDER_PRICE_WITHOUT_VAT_1 | Цена товара без налога (НДС) |
ORDER_VAT_1 | Сума налога за товар (НДС) |
ORDER_SUM_WITHOUT_VAT_1 | Общая сума товаров без налога (НДС) Количество * суму товара без налога |
MONTH | Поточный Месяц |
DATE | Поточная Дата |
TIME | Поточное Время |
Отображение платежей по данному счету
PAYMENT_DATE_1 | Дата платежа |
---|---|
PAYMENT_COMMENTS_1 | Комментарий |
PAYMENT_SUM_1 | Сума |
PAYMENT_ALT_SUM_1 | Альтернативная сума |
PAYMENT_ID_1 | Номер оплаты |
PAYMENTS_TOTAL_SUM | Общая сума всех платежей |
переменные неоплаченных счетов
UNPAYMENT_INVOICE_NUM_1 | Номер счета |
---|---|
UNPAYMENT_INVOICE_DATE_1 | Дата счета |
UNPAYMENT_INVOICE_SUM_1 | Не погашенная сума счета |
UNPAYMENT_INVOICE_ALT_SUM_1 | Не погашенная альтернативная сума счета |
UNPAYMENT_TOTAL_SUM | Общая сума непогашенный счетов |
UNPAYMENT_TOTAL_ALT_SUM | Общая сума непогашенный счетов в альтернативной валюте |
TOTAL_REST_SUM | Сума к оплате по текущему счёте. Общая сума счета - сума оплаты по этому счету |
TOTAL_REST_ALT_SUM | Сума к оплате по текущему счёте. Общая сума счета - сума оплаты по этому счету в альтернативной валюте |
Значения табличной части при использовании альтернативной валюты. (смотрите опцию $conf{DOCS_CURRENCY})
EXCHANGE_RATE | Курс обмена |
---|---|
CURRENCY | ISO код альтернативной валюты |
ORDER_ALT_SUM_1 | Сума в альтернативной валюте |
ORDER_ALT_PRICE_1 | Цена в альтернативной валюте |
ORDER_ALT_VAT_1 | Сума налога |
ORDER_ALT_PRICE_WITHOUT_VAT_1 | Сума без налога в альтернативной валюте |
ORDER_ALT_SUM_WITHOUT_VAT_1 | Сума с налогом в альтернативной валюте |
TOTAL_ALT_SUM | ОБщая сума в альтернативной валюте |
SUM_ALT_LIT | Общая альтернативная сума прописью |
CHARGED_ALT_SUM | Общая сума уже оплаченных услуг в альтернативной валюте |
Информация о модулях
DOCS_TPNAME_DV | Название ТП для интернета |
---|---|
DOCS_ABON_DV | Сума Абон. платы для сервиса интернет |
DOCS_ABON_ABON_XX | Сума Абон. платы для периодических платежей |
DOCS_TPNAME_ABON_XX | Название ТП для периодических платежей |
DOCS_SERVICE_SUM_XX | Сума Абон. платы для периодических платежей услуги |
DOCS_SERVICE_NAME_XX | Название ТП для периодических платежей услуги |
docs_invoice_company.tpl
Счёт для оплаты юридическими лицами
Заходите в нужном клиенте в / Клиенты/ Логины/ Информация/ в Оплаты, данный документ выписывается пользователям принадлежащем определённой компании
В шаблоне используются параметры docs_invoice.tpl дополнительные параметры компании
REPRESENTATIVE | Представитель |
---|---|
COMPANY_NAME | Представитель |
COMPANY_PHONE | Телефон компании |
ADDRESS | адрес компании |
VAT | ставка налога (НДС) |
TAX_NUMBER | |
BANK_ACCOUNT | Счёт в банке |
BANK_NAME | Банк |
COR_BANK_ACCOUNT | Коресп. счет |
BANK_BIC | Банковский идентификационный код |
docs_act.tpl
Форма акта оказания услуг
Заходите в нужном клиенте в / Клиенты/ Компании/ Документы/ Акты
docs_receipt.tpl
Форма счёта фактуры (чека, квитанции оплаты), выставляется абоненту после внесения суммы на счёт
Заходите в нужном клиенте в / Клиенты/ Логины/ Информация/ в Оплаты Ставите галочку «Счет-Фактура»
RECEIPT_NUM | |
---|---|
DATE | |
CUSTOMER | |
TOTAL_SUM | |
PHONE | |
VAT | |
ADMIN | |
LOGIN | |
CREATED | |
BY_PROXY_SERIA | |
BY_PROXY_PERSON | |
BY_PROXY_DATE | |
DOC_ID | |
UID | |
EXPIRE_DATE | Время действительности счета |
PAYMENT_ID | |
DEPOSIT | |
DELIVERY_STATUS | |
EXCHANGE_RATE | |
CURRENCY} |
docs_tax_invoice.tpl
Налоговая накладная
Заходите в нужном клиенте в / Клиенты/ Компании/ Документы/ Налоговая накладная
docs_contract.tpl
Форма договора
Заходите в нужном клиенте в / Клиенты/ Логины/ Информация/ в Информации о пользователе есть поле «Номер контракта» и кнопка «печать»
переменные шаблона
UID | UID |
---|---|
LOGIN | Логин |
FIO | ФИО |
DEPOSIT | Депозит |
CREDIT | Сума кредита |
CREDIT_DATE | Дата кредита |
COMPANY_ID | Номер компании |
COMPANY_NAME | Название компании |
GID | Номер группы |
PHONE | Телефон |
PASPORT_NUM | Номер паспорта |
PASPORT_DATE | Дата выдачи паспорта |
PASPORT_GRANT | Паспорт выдан |
CONTRACT_ID | Номер контракта |
CONTRACT_DATE | Дата контракта |
CONTRACT_PREFIX | Префикс контракта |
ADDRESS_FULL | Полный адрес, Улица, дом/квартира |
ADDRESS_COUNTRY | Страна |
CITY | Город |
ADDRESS_DISTRICT | Регион |
ADDRESS_STREET | Улица |
ADDRESS_FLAT | Квартира |
CONTRACT_DATE_LIT | Дата прописью |
_информационные_поля | Объявление дополнительных информационных полей |
Информация о модулях
DOCS_TPNAME_DV | Название ТП для интернета |
---|---|
DOCS_ABON_DV | Сума Абон. платы для сервиса интернет |
DOCS_ABON_ABON_XX | Сума Абон. платы для периодических платежей |
DOCS_TPNAME_ABON_XX | Название ТП для периодических платежей |
DOCS_SERVICE_SUM_XX | Сума Абон. платы для периодических платежей услуги |
DOCS_SERVICE_NAME_XX | Название ТП для периодических платежей услуги |
docs_contract_company.tpl
Форма договора для корпоративных клиентов
Заходите в Компании выбираете / Клиенты/ Компании/ в Информации о пользователе есть поле «Номер контракта» и кнопка «печать»
Формировать индивидуально документы для каждого типа оплат
Также можно формировать индивидуально документы для каждого типа оплат (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 # файл описание переменных
Привязка оплат к счетам
В системе риализированна функция ручной и автоматической привязки оплат к счетам
Автоматическая привязка
- Система находит самый ранний по дате счёт в статусе «Не оплачен»
- Проверяет, какая сумма по данному счётy не оплачена
- Если неоплаченный остаток счёта+сумма оплаты = сумма счёта, то
то вся сумма оплаты распределяется на данный счёт (в записи об счёте появляется ссылка на номер записи об оплате, которая была внесена по этому счёту и гасимая сумма, а в записи об оплате появляется ссылка на счёт, который был оплачен и сумма оплаты, которая этот счёт закрывает), и счёт переходит в статус «Оплачен»
- Если неоплаченный остаток счёта+сумма оплаты < сумма счёта, то
вся сумма оплаты распределяется на данный счёт (в записи об счёте появляется ссылка на номер записи об оплате, которая была внесена по этому счёту и гасимая сумма, а в записи об оплате появляется ссылка на счёт, который был оплачен и сумма оплаты, которая этот счёт закрывает);
- Если неоплаченный остаток счёта+сумма оплаты > сумма счёта, то
вся сумма оплаты, равная неоплаченному остатку, распределяется на данный счёт, счёт переходит в статус «Оплачен», а для распределения оставшейся суммы оплаты система исполняет действия с шага 1.
Ручная привязка счетов
Пользователь из списка при оплате выбирает нужный счет
- Если неоплаченный остаток счёта+сумма оплаты = сумма счёта, то
то вся сумма оплаты распределяется на данный счёт, и счёт переходит в статус «Оплачен»
- Если неоплаченный остаток счёта+сумма оплаты < сумма счёта, то
вся сумма оплаты распределяется на данный счёт;
- Если неоплаченный остаток счёта+сумма оплаты > сумма счёта, то
вся сумма оплаты, равная неоплаченному остатку, распределяется на данный счёт, счёт переходит в статус «Оплачен». Также есть возможность вручную выбрать счёт для привязки оставшейся части оплаты к другому счёту. Данное действие производится через через журнал счетов. Администратор выбирает неоплаченный счет и переходит к журналу не прикреплённых оплат где он выбирает нужную оплату и указывает суму. Если сума больше чем счет система прикрепляет только суму со отсутствующею счету, а остальную помечает как не распределённую.
Если при ручном распределении счёт не выбран, то вся сумма оплаты считается не распределенной.
Если удаляется оплата или счет соответственно система удаляет и привязку
Групповая генерация счетов и квитанций на оплату
Генерацией счетов на оплату занимается программа multi_docs.pl
аргементы:
PERIODIC_INVOICE | создать переодические счета и отправить их абонентв |
PREPAID_INVOICES | Создание и отправка счетов в начале периода на все услуги по которым произошли списания в текущем месяце |
LOGIN | Логин абонента |
COMPANY_ID | ID компании |
DATE=YYYY-MM-DD | Дата создания документов |
SORT= | Порядок создания документов |
DEBUG=[1..7] | Режим отладки |
PREPAID_INVOICES
Создание и отправка счетов в начале периода на все услуги по которым произошли списания в текущем месяце. Если не указывается дата счета создаются на все услуги от текущего числа.
# /usr/abills/bin/multi_docs.pl PREPAID_INVOICES=1
Если в аргументах указывается параметр COMPANY_ID тогда запускаются только счета по компаниям указанным в параметре и соответственно LOGIN только по логинам не состоящим в компаниях
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'