=====Docs===== Модуль работы с платёжными документами. ====Возможности==== * Выписка счётов из пользовательского интерфейса * Выписка счётов из интерфейса для администраторов * Выписка счетов-фактур * Автоматическая выписка счёта, кассового чека при занесении денег на аккаунт пользователя * Формирование общего файла счетов для печати и рассылки всем пользователям. * Формирование актов оказания услуг за определённый период. * автоматическое формирование актов оказания услуг для всех компаний системы. * Выписка налоговых накладных * Формирование договора и его печать * Возможность формировать несколько типов договоров в зависимости от предоставляемых услуг. * Создание документов в PDF формате (нужен модуль PDF::API2) * [[#formirovat_individualno_dokumenty_dlja_kazhdogo_tipa_oplat|Формировать индивидуально документы для каждого типа оплат]] * [[#privjazka_dokumentov_k_gruppam_polzovatelej|Привязка документов к группам пользователей]] * [[#privjazka_oplat_k_schetam|Привязка оплат к счетам]] * [[#gruppovaja_generacija_schetov_i_kvitancij_na_oplatu|Групповая генерация счетов и квитанций на оплату]] ====Установка==== **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 модуля [[abills:docs:manual:soft:pdf_api2|PDF::API2]] \\ \\ Смотрите также [[abills:docs:manual:system_configuration:system_configuration?&#template|Работа с шаблонами]] | ^$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] | \\ ====Шаблоны==== Для правки шаблонов нужно использовать [[abills:docs:manual:system_configuration:system_configuration#template|редактор шаблонов]] ''Настройка / Другое / Шаблоны'' \\ список шаблонов: \\ ===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 | Телефон | ^EMAIL | E-mail | ^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'**