CodUP

Руководство по локализации

Локализация OpenERP это процесс создания необходимой конфигурации и настроек, делающий OpenERP пригодной для использования в конкретной стране.

Обычно первый шаг по локализации (или L10n) заключается в конфигурировании одного (или более) Плана(ов) Счетов для страны, с соответствующими зависимостями: типы Счетов, Налоги и т.д.

Примечание

Для термина Локализация часто применяют сокращение «L10n». Здесь «L» и «n» это первая и последняя буквы английского слова Localization, а «10» - число букв между ними.

Это руководство дает несколько рекомендаций, помогающих создать корректный модуль l10n_XX. Как только новый модуль l10n будет отвечать нижеследующим требованиям, то он может рассматриваться на включение в официальный дистрибутив OpenERP через процесс предложения о слиянии (как описано в "Заявки на Слияние и Патчи").

Примечание

Для начала посмотрите на бельгийский модуль локализации (l10n_be), в качестве примера и образца структуры модуля локализации.

Содержимое модуля локализации

Чтобы модуль локализации был полным, в нем должны присутствовать:

  • планы бухгалтерских и налоговых счетов, которые являются обязательными и должны соответствовать правилам, определенным ниже (возможно включить несколько шаблонов планов в один модуль l10n)
  • банковские интерфейсы (импорт - экспорт)
  • регламентированные отчеты (не бизнес отчеты, которые могут быть в других модулях)

В большинстве случаев предпочтительнее, чтобы модули локализации не содержали код на Python, который будет мешать нормальному поведению ядра OpenERP (например наследование/переопределение методов). Также предпочтительно, чтобы они не повторяли существующие возможности (например, не добавляйте мастер создания плана счетов, а используйте существующий).

Если вы считаете, что движок бухгалтерской отчетности в OpenERP не соответствует требованиям законов вашей страны, то можете сделать предложение о слиянии (смотрите "Заявки на Слияние и Патчи") для улучшения ядра бухгалтерского движка.

В следующих разделах приводятся рекомендации по написанию важнейших компонентов для модулей l10n, в порядке предпочтения.

Общие принципы

  • Модуль должен называться l10n_XX, где XX это код страны в нижнем регистре, взятый из http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
  • Модуль l10n_XX должен быть размещен на Launchpad, подобно всем модулям OpenERP
  • Модуль l10n_XX должен быть в ветке BZR, которая:
    • или ветка lp:openobject-addons
    • или ветка, содержащая только этот модуль (в этом случае он должен быть добавлен в ветку lp:openobject-addons, чтобы сделать предложение о слиянии для включения его в официальные аддоны).
  • Модуль не должен определять планы, а только шаблоны планов
  • Полная локализация должна содержаться в одном и только одном модуле, который содержит требования законов:
    • план счетов
    • структура налогообложения
    • налоги
    • требуемая отчетность (отчеты), если таковая имеется
    • налоговые декларации, если таковые имеются
    • банковский импорт / экспорт, если таковой имеется

Дополнительные функции, которые не являются обязательными требованиями закона, но являются лучшими практиками в стране, могут быть в отдельных модулях (такие как специальные скидки, специальные налоги для очень специфических ситуаций и т. д.)

Типы счетов (account.account.type)

Пример
    Активы, Пассивы ...
Описание
    Тип содержит более подробную информацию о счете и его специфике.

Важно обратить внимание на поле метода отсрочки (названное close_method), поскольку оно определяет, будут или нет создаваться новые записи в ваших счетах после открытия нового финансового года. Вы должны выбрать:

  • detail для счетов, которые входят в полный отчет (даже сверяемые записи)
  • none для счетов, которые не входят в отчеты

Убедитесь также, что дали соответствующее значение для нового поля report_type (появилось в v6), так как оно определяет, в какой колонке его отображать в бухгалтерском балансе и отчете о прибылях и убытках. Вы должны иметь по крайней мере один счет с report_type '/' (чистая прибыль).


План счетов (account.account.template)

При создании плана счетов, основная информация о которой необходимо позаботиться, это поле внутреннего типа (названное type), потому что оно будет использоваться OpenERP во многих местах:

  • receivable используется для счетов заказчиков
  • payable используется для счетов поставщиков
  • view используется в корневых счетах, для организации плана счетов в соответствующее дерево счетов. OpenERP не будет делать никаких записей в счета view.
  • liquidity используется для наличных/банковских счетов (появился в v6)

Для любых других счетов (обычных), вы должны выбрать внутренний тип other.

Важно

Создавайте шаблоны планов счетов, а не реальные планы счетов, так как план счетов не является глобальным, это шаблон, который должен быть применен для каждой компании.

Здесь также вы должны будете сделать классификацию ваших счетов по типам счетов (как описано в предыдущем разделе), через поле user_type.

Убедитесь, что план счетов имеет иерархическую структуру в виде дерева.

План налоговых кодов (account.tax.code.template)

Этот объект одинаков в V5 и в V6. Иерархическая структура Плана Налоговых Кодов позволит вам легко вычислять суммы/итого, как требуется по закону в вашей стране.

Каждый налоговый код должен соответствовать законодательству.

Вот пример структуры минимального плана налоговых кодов:

  • Налоговый баланс к оплате
    • Налоговые выплаты
      • Налоговые выплаты 21%
      • Налоговые выплаты 0%
    • Налоговые вычеты
      • Налоговый вычет 21%
      • Налоговый вычет 0%
    • Налоговые базы
      • Налогооблагаемая база продаж
      • База налога с продаж 21%
      • Налогооблагаемая база покупки
      • База налога с покупки 21%

Каждый налоговый код должен быть кодом налогового раздела/элемента на эту же сумму в налоговой декларации за месяц/год . Оставьте налоговый код пустым, если вы не хотите, чтобы код появлялся в налоговой декларации (например, для целей структуры плана)

Шаблон плана (account.chart.template)

После того как все эти объекты будут созданы, вы можете сосредоточиться на шаблоне плана. Он определяет необходимую информацию для создания надлежащего плана счетов, налогов и т.д., при установке с помощью мастера установки плана счетов.

Эта информация включает в себя:

  • план счетов: поле account_root_id задает корневой счет (с parent_id = False) вашего плана
  • план налогов: поле tax_code_root_id задает корневой налоговый код (с parent_id = False) вашего плана
  • родитель банковских/наличных счетов: поле bank_account_view_id задает счет (в вашем плане), под которым банковские и наличные счета будут создаваться в OpenERP
  • дебиторский счет по умолчанию: поле property_account_receivable задает счет вашего плана, который будет использоваться по умолчанию, как счет заказчика для каждого нового партнера
  • кредиторский счет по умолчанию: поле property_account_payable задает счет вашего плана, который будет использоваться по умолчанию, как счет поставщика для новых партнеров
  • счет расходов по умолчанию: поле property_account_expense_categ задает счет вашего плана, который будет использоваться по умолчанию для счета расходов каждого нового продукта
  • счет доходов по умолчанию: поле property_account_income_categ задает счет вашего плана, который будет использоваться по умолчанию для счета доходов каждого нового продукта
  • В V6 было введено новое поле для учета резервов и прибылей/убытков, названное property_reserve_and_surplus_account. Это поле задает счет, используемый для переноса суммы из отчета о прибылях и убытках.

Налоги (account.tax.template)

Единственным изменением в этом объекте в v6 является удаление поля tax_group, которое не использовалось. При проверке налогов, вы должны убедиться, что:

  • бухгалтерские проводки для них созданы корректно: правильные счета, дебетовые и кредитовые
  • правильно заносятся суммы НДС в налоговые коды

Это должно быть проверено как для выставления счетов, так и для оплат.

Используйте chart_template_id для связывания налогов с объектом account.chart.template, определенным выше.

Убедитесь, что каждый налог связан со счетом, налоговым кодом и кодом налоговой базы.

Фискальные позиции (account.fiscal.position.template)

Объекты фискальных позиций остались такими же в v6. Они используются для автоматического сопоставления по умолчанию налогов/счетов товару в соответствии с ситуациями конкретного партнера (счета на оплату, заказы на продажу и заказы на закупку).

В Европе нам необходимы, по крайней мере, 3 фискальные позиции:

  • резиденты
  • зарубежные клиенты из Европы
  • зарубежные клиенты, за пределами Европы

Это сопоставление налогов и счетов позволит вам сохранить общий НДС, скажем 21% (бельгийский НДС), и соответствующий учет доходов "продано в Бельгии" для своей продукции. Когда делается счет на оплату клиенту, который имеет фискальную позицию "в Европе", эти значения будут автоматически изменены на (например) соответствующий НДС 0% и счет "продано в Европе".

Используйте поле chart_template_id, чтобы связать фискальную позицию с объектом account.chart.template, определенным выше.

Убедитесь, что каждый l10n модуль имеет, по крайней мере, две определенные фискальные позиции:

  • одна для резидентов
  • одна или более для иностранных клиентов

Зависимости модулей

Если модуль для европейской страны, то он должен зависеть от модуля base_vat.

Старайтесь избегать включения функций в модуль l10n_XX, если они не связаны с требованием законодательства. Новые возможности по учету (например, скидки на оплату и т.д.) должны быть в другом общем модуле, а не в модуле l10n_XX. Кроме того, модуль l10n_XX не должен зависеть (требуется) от этих других модулей, которые могут быть не включены в официальный список аддонов.

Для требований законодательства, которые являются специфическими для вашей страны (например, обязательные системы электронного декларирования налогов), вы можете добавить функции прямо в модуль l10n_XX.

Специфические отчеты

Если есть специфический отчет, требуемый по закону в вашей стране (например, отчет по НДС, который создается XML-файлом в l10n_be), то модуль локализации этой страны является правильным местом для него.

Напоминание: посмотрите на l10n_be в качестве примера или образца.

Copyright © 2010-2019 CodUP.com

Top Desktop version