Compare commits

..
10 Commits
Author SHA1 Message Date
José Arturo García a740366693 Prepare Dominican accounting localization for core review 2026-08-10 00:08:55 -04:00
José Arturo García 85dc8ec2b3 Align account_do with core localization structure
Add CreateChart defaults for the Dominican receivable and payable accounts, following the pattern used by official Tryton localization modules.

Register the chart wizard extension, add core-style documentation files, and protect the structure with transactional and static tests.
2026-08-09 13:44:20 -04:00
José Arturo García 5595296401 Use non-editable CI install for account_do
Hatchling cannot build editable installs when project sources rewrite a prefix.

Install the package normally with test extras in Gitea Actions and keep the workflow coverage test aligned with that supported install path.
2026-08-09 13:27:38 -04:00
José Arturo García fc5cef658f Strengthen account_do tests and publishing checks
Add static coverage for module configuration, XML inventory, tax views, translations, migration metadata, and the Gitea publishing workflow.

Make Gitea Actions run install, compileall, unittest, build, and twine check before publishing packages from series branches.

Fix packaging documentation and RST rendering issues so package validation passes before upload.
2026-08-09 13:24:59 -04:00
José Arturo García 1e05afd8bb Complete Dominican IFRS base localization
Align the Dominican chart with the reviewed NIIF documentation by typing impairment and control accounts correctly, adding off-balance closing/control account types, and documenting the structural IFRS coverage boundary. Extend tests with fiscal audit matrices, IFRS account/type coverage, policy coverage, tax code signs, date-sensitive rules, and real chart validations.
2026-08-09 13:13:22 -04:00
José Arturo García fa3712bbfc Complete Dominican tax localization metadata 2026-08-09 12:19:52 -04:00
José Arturo García dfd6fa48fd Revert "Formalize DGII tax form mapping"
This reverts commit c05a15e671.
2026-08-09 11:53:55 -04:00
José Arturo García c05a15e671 Formalize DGII tax form mapping 2026-08-09 11:42:00 -04:00
José Arturo García 59b4f0e53d Merge complete Dominican localization into 8.0 2026-08-08 20:56:32 -04:00
José Arturo García 71fdabefcf Fase produccion: sincronizar traducciones es_419
Sincroniza locale/es_419.po con las traducciones espanolas para que la instancia configurada en espanol latinoamericano cargue textos completos. Valida carga con trytond-admin -l es_419 y build del paquete.
2026-07-23 18:47:26 -04:00
41 changed files with 9476 additions and 5941 deletions
-191
View File
@@ -1,191 +0,0 @@
name: Publish Package
on:
push:
branches:
- "**"
workflow_dispatch:
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Detect package branch
run: |
python - <<'PY'
import os
import re
branch = (
os.environ.get('GITHUB_REF_NAME')
or os.environ.get('GITHUB_HEAD_REF')
or '')
publish = bool(re.fullmatch(r'\d+\.\d+', branch))
with open(os.environ['GITHUB_ENV'], 'a') as env:
env.write(f'PUBLISH_PACKAGE={"true" if publish else "false"}\n')
if publish:
env.write(f'PACKAGE_SERIES={branch}\n')
if publish:
print(f'Publishing package series: {branch}')
else:
print(f'Skipping package publish for branch: {branch}')
PY
- name: Set up Python
if: env.PUBLISH_PACKAGE == 'true'
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install build tools
if: env.PUBLISH_PACKAGE == 'true'
run: |
python -m pip install --upgrade pip
python -m pip install build twine
- name: Check publishing credentials
if: env.PUBLISH_PACKAGE == 'true'
env:
TWINE_USERNAME: ${{ secrets.REGISTRY_USER }}
TWINE_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
test -n "$TWINE_USERNAME" || { echo "Missing REGISTRY_USER secret"; exit 1; }
test -n "$TWINE_PASSWORD" || { echo "Missing REGISTRY_PASSWORD secret"; exit 1; }
- name: Set CI package version
if: env.PUBLISH_PACKAGE == 'true'
env:
TWINE_USERNAME: ${{ secrets.REGISTRY_USER }}
TWINE_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
python - <<'PY'
from pathlib import Path
from urllib.error import HTTPError
from urllib.parse import urlencode
from urllib.request import Request, urlopen
import base64
import json
import os
import re
import tomllib
OWNER = 'tryton-do'
PACKAGE_TYPE = 'pypi'
API_ROOT = 'https://gitea.joseagrc.com/api/v1'
def normalize(name):
return re.sub(r'[-_.]+', '-', name).lower()
cfg_path = Path('tryton.cfg')
cfg_text = cfg_path.read_text()
cfg_match = re.search(r'(?m)^version=(.+)$', cfg_text)
if not cfg_match:
raise SystemExit('tryton.cfg has no version entry')
series = os.environ['PACKAGE_SERIES']
major, minor = map(int, series.split('.'))
pyproject = tomllib.loads(Path('pyproject.toml').read_text())
package_name = pyproject['project']['name']
normalized_name = normalize(package_name)
username = os.environ['TWINE_USERNAME']
password = os.environ['TWINE_PASSWORD']
token = base64.b64encode(
f'{username}:{password}'.encode()).decode()
def request_json(path, params=None, missing_ok=False):
url = f'{API_ROOT}{path}'
if params:
url = f'{url}?{urlencode(params)}'
request = Request(url, headers={
'Accept': 'application/json',
'Authorization': f'Basic {token}',
})
try:
with urlopen(request, timeout=30) as response:
return json.load(response)
except HTTPError as error:
if missing_ok and error.code == 404:
return []
raise
def collect_versions(payload, package_specific=False):
versions = []
if isinstance(payload, list):
for item in payload:
versions.extend(collect_versions(item, package_specific))
elif isinstance(payload, dict):
item_name = payload.get('name') or payload.get('package_name')
item_type = payload.get('type') or payload.get('package_type')
item_version = payload.get('version')
if item_version and (
package_specific
or (item_type == PACKAGE_TYPE
and normalize(item_name or '') == normalized_name)):
versions.append(str(item_version))
for value in payload.values():
if isinstance(value, (list, dict)):
versions.extend(collect_versions(value, package_specific))
return versions
versions = []
for page in range(1, 11):
payload = request_json(
f'/packages/{OWNER}/{PACKAGE_TYPE}/{package_name}',
{'page': page, 'limit': 100},
missing_ok=True)
page_versions = collect_versions(payload, package_specific=True)
versions.extend(page_versions)
if not page_versions:
break
for page in range(1, 11):
payload = request_json(
f'/packages/{OWNER}',
{'page': page, 'limit': 100, 'type': PACKAGE_TYPE,
'q': package_name})
page_versions = collect_versions(payload)
versions.extend(page_versions)
if not page_versions:
break
patch_pattern = re.compile(rf'^{major}\.{minor}\.(\d+)$')
patches = []
for version in set(versions):
match = patch_pattern.fullmatch(version)
if match:
patches.append(int(match.group(1)))
next_patch = max(patches) + 1 if patches else 0
ci_version = f'{major}.{minor}.{next_patch}'
cfg_text = re.sub(
r'(?m)^version=.+$', f'version={ci_version}', cfg_text)
cfg_path.write_text(cfg_text)
print(f'Package name: {package_name}')
print(f'Published versions found: {sorted(set(versions))}')
print(f'Package version: {ci_version}')
PY
- name: Build package
if: env.PUBLISH_PACKAGE == 'true'
run: |
python -m build
- name: Check package
if: env.PUBLISH_PACKAGE == 'true'
run: |
python -m twine check dist/*
- name: Publish to Gitea PyPI registry
if: env.PUBLISH_PACKAGE == 'true'
env:
TWINE_USERNAME: ${{ secrets.REGISTRY_USER }}
TWINE_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
python -m twine upload \
--repository-url https://gitea.joseagrc.com/api/packages/tryton-do/pypi \
dist/*
+10
View File
@@ -0,0 +1,10 @@
Version 8.0.1 - 2026-08-09
--------------------------
* Initial release.
* Document tax requirements and official source provenance.
* Correct asset, real-estate transfer, legal-tip, vehicle and bovine tax data.
* Remove unsupported or unsafe ITBIS templates and their dependent records.
* Provide complete independent English and Latin American Spanish
(``es_419``) accounting charts, pending availability of ``es_DO``.
* Preserve 8.0.0 chart records when migrating to language-scoped identifiers.
* Normalize the English chart to standard accounting terminology.
-1178
View File
File diff suppressed because it is too large Load Diff
+54 -9
View File
@@ -1,18 +1,63 @@
account_do
==========
Localización contable dominicana para Tryton.
Dominican Republic accounting localization for Tryton.
Cobertura funcional
Functional Coverage
-------------------
* Plan de cuentas base para República Dominicana.
* Catálogo de impuestos y códigos fiscales.
* Reglas fiscales de venta y compra para escenarios dominicanos comunes.
* Campo ``tax_kind`` para clasificar ITBIS, retenciones, ISC, CDT, propina legal y otros impuestos.
* Documentación técnica en ``doc/index.rst`` y escenario funcional en ``tests/scenario_account_do.rst``.
The module provides:
Pruebas
* a base chart of accounts for Dominican companies;
* an IFRS-oriented account structure;
* Dominican tax groups, tax templates, tax codes, and tax rules;
* fiscal accounts for ITBIS, ISR withholdings, ISC, CDT, legal tip, check and
electronic transfer tax, asset tax, and real estate transfer tax;
* tax validity dates, including the historical 0.15% and current 0.20% check
and electronic transfer tax rates;
* chart creation defaults for the Dominican receivable and payable accounts.
The module defines accounting and tax data. It does not duplicate DGII form
box mappings, electronic fiscal document processing, NCF management, invoice
customizations, party fiscal validation, payroll, or reporting logic.
The account codes form a proposed general-purpose baseline, not an official
Dominican chart. IFRS does not prescribe account numbers, and regulated
entities may be required to use a sector-specific chart. Tax templates are
accounting aids; users remain responsible for checking applicability and
current law. See ``doc/sources.rst`` and ``doc/tax_blueprint.rst``.
Testing
-------
Las pruebas validan la instalación del módulo, la creación del plan para una compañía, la integridad de referencias XML, la clasificación contable principal, los códigos fiscales y las categorías fiscales dominicanas.
The tests validate module installation, chart creation, wizard defaults, XML
reference integrity, tax account mapping, tax validity, tax code signs, tax
rules, translations, and package structure.
Languages
---------
Tryton treats account and tax template names as static accounting data. The
module therefore provides two complete selectable charts instead of relying on
runtime translation:
* ``IFRS Chart of Accounts - Dominican Republic`` in English;
* ``Plan de Cuentas NIIF - República Dominicana`` in Latin American Spanish
(``es_419``), used until Tryton provides ``es_DO``.
Each chart has its own account types, accounts, taxes, tax codes and tax rules.
The language is selected when the chart is created and changing the user
language does not rename existing accounting records.
IFRS-Oriented Structure
-----------------------
The chart includes structural accounts for current and non-current
presentation, inventories, financial instruments, revenue contracts, leases,
deferred tax, property, plant and equipment, impairment, provisions,
intangibles, investment property, other comprehensive income, and assets held
for sale.
IFRS measurement, estimates, closing procedures, financial statements, notes,
and disclosures depend on company accounting policies and complementary
operational modules.
+2
View File
@@ -0,0 +1,2 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
+35
View File
@@ -0,0 +1,35 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.pool import Pool, PoolMeta
class CreateChart(metaclass=PoolMeta):
__name__ = 'account.create_chart'
def default_properties(self, fields):
pool = Pool()
ModelData = pool.get('ir.model.data')
defaults = super().default_properties(fields)
chart_defaults = {}
for root, accounts in [
('account_do.do_account_root_en', (
'account_do.do_account_110201_en',
'account_do.do_account_210101_en')),
('account_do.do_account_root_es_419', (
'account_do.do_account_110201_es_419',
'account_do.do_account_210101_es_419')),
]:
try:
chart_defaults[ModelData.get_id(root)] = accounts
except KeyError:
# Language-scoped chart data is not loaded for this database.
pass
account_template = self.account.account_template.id
if account_template in chart_defaults:
receivable, payable = chart_defaults[account_template]
defaults['account_receivable'] = self.get_account(
receivable)
defaults['account_payable'] = self.get_account(
payable)
return defaults
-1573
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+110
View File
@@ -0,0 +1,110 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
import os
base_url = os.environ.get('DOC_BASE_URL')
if base_url:
modules_url = base_url + '/modules-{module}/'
trytond_url = base_url + '/server/'
else:
modules_url = 'https://docs.tryton.org/{series}/modules-{module}/'
trytond_url = 'https://docs.tryton.org/{series}/server/'
def get_info():
import configparser
import json
import subprocess
module_dir = os.path.dirname(os.path.dirname(__file__))
config = configparser.ConfigParser()
config.read_file(open(os.path.join(module_dir, 'tryton.cfg')))
info = dict(config.items('tryton'))
metadata_cmd = 'python3 -m build -qq --metadata'
if os.environ.get('DOC_NO_ISOLATION'):
metadata_cmd += ' --no-isolation'
metadata = subprocess.check_output(
metadata_cmd, shell=True, encoding='utf-8', cwd=module_dir).strip()
metadata = json.loads(metadata)
info['name'] = metadata['name']
info['description'] = metadata['summary']
major_version, minor_version, _ = metadata['version'].split('.', 2)
major_version = int(major_version)
minor_version = int(minor_version)
if minor_version % 2:
info['series'] = 'latest'
info['branch'] = 'branch/default'
else:
info['series'] = '.'.join(metadata['version'].split('.', 2)[:2])
info['branch'] = 'branch/' + info['series']
for key in {'depends', 'extras_depend'}:
info[key] = info.get(key, '').strip().splitlines()
info['modules'] = set(info['depends'] + info['extras_depend'])
info['modules'] -= {'ir', 'res'}
return info
info = get_info()
html_theme = 'sphinx_book_theme'
html_theme_options = {
'logo': {
'alt_text': "Tryton Documentation",
'image_light': 'https://docs.tryton.org/logo-light.svg',
'image_dark': 'https://docs.tryton.org/logo-dark.svg',
'link': base_url,
},
'home_page_in_toc': True,
'repository_provider': 'gitlab',
'repository_url': 'https://code.tryton.org/tryton',
'repository_branch': info['branch'],
'use_source_button': True,
'use_edit_page_button': True,
'use_repository_button': True,
'use_download_button': False,
'path_to_docs': 'modules/account_do/doc',
}
html_title = info['description']
master_doc = 'index'
project = info['name']
release = version = info['series']
default_role = 'ref'
highlight_language = 'none'
exclude_patterns = ['**/*.inc.rst']
extensions = [
'sphinx_copybutton',
'sphinx.ext.intersphinx',
]
intersphinx_mapping = {
'trytond': (trytond_url.format(series=version), None),
}
intersphinx_mapping.update({
module: (modules_url.format(
module=module.replace('_', '-'), series=version), None)
for module in info['modules']
})
linkcheck_ignore = [r'/.*', r'https://demo.tryton.org/*']
linkcheck_request_headers = {
'User-Agent': (
'TrytonBot/0.0 (https://www.tryton.org/foundation) '
'sphinx-linkcheck/0.0'),
'Accept-Encoding': 'gzip',
}
linkcheck_workers = 1
try:
with open(os.path.join(
os.path.dirname(__file__),
'linkcheck_ignore.json'), 'r') as file:
import json
linkcheck_ignore.extend(json.load(file))
del json
except FileNotFoundError:
pass
del get_info, info, base_url, modules_url, trytond_url
+71
View File
@@ -0,0 +1,71 @@
Core Inclusion Readiness
========================
Tax Review
----------
All tax-template identifiers are inventoried in :doc:`tax_validation`; the
test suite enforces an exact match with ``tax_do_en.xml``. Known unsupported,
historical or unsafe calculations are excluded. Sources and functional limits
are documented in :doc:`sources` and :doc:`tax_blueprint`.
A software change cannot replace professional responsibility for a legal
opinion. Therefore professional Dominican review is a governance prerequisite,
not an unresolved implementation defect. If upstream maintainers do not
require formal sign-off, the documented primary-source review is the evidence
available to code review. If they do require it, the merge request must name
the reviewer and review date rather than claiming certification in module data.
Chart Size and Provenance
-------------------------
The chart has 281 templates: 70 grouping nodes and 211 posting leaves. Of the
posting leaves, 61 are tax control accounts (45 payable and 16 recoverable).
Those controls deliberately provide stable identifiers for accounting and
reporting modules. The remaining leaves cover cash, receivables, payables,
inventory, cost of sales, assets, depreciation, deposits, leases, financial
instruments, provisions, equity, revenue, expenses, OCI and closing accounts.
The chart is not justified as a statutory catalogue. It is justified as a
designed Tryton baseline using these objective inclusion rules:
* a Tryton property or optional accounting module needs the account;
* a materially different account type, party requirement or reconciliation
behaviour is needed;
* separate debit or credit control is needed for a supported Dominican tax; or
* separate presentation is needed for a documented IFRS accounting policy.
Grouping nodes are closed and cannot receive postings. The test suite checks
281 unique templates, required optional-module accounts, account types and the
IFRS policy coverage map. This is a transparent functional justification,
which is the appropriate evidence where no official general chart exists.
There is still a maintainership choice: upstream may prefer fewer tax control
accounts. That is not decidable from Dominican law because no mandatory
general catalogue supplies a target count. If requested during review, the
safe reduction is to merge control accounts only after confirming that
``dgii_reports`` does not depend on their stable identifiers; claiming that
281 codes are official would be incorrect.
Upstream Repository
-------------------
The current Git repository is a review and staging repository. Tryton's
upstream repository is Mercurial and contributions are based on its ``default``
branch. Repository placement is therefore a delivery step, not a defect in the
module implementation.
The reproducible upstream procedure is:
#. clone or update ``https://foss.heptapod.net/tryton/tryton`` with Mercurial;
#. update to ``default`` and create a feature bookmark;
#. copy this reviewed module into the module directory used by that checkout;
#. use the development-series version specified by upstream ``default``;
#. run the monorepository formatting, XML, module and scenario tests;
#. create one Tryton-style commit referencing the localization work item;
#. submit one focused merge request containing the blueprint and official
source links.
This checkout does not contain Mercurial or a Tryton monorepository, so claiming
that the transplant has already been performed would be false. The module is
ready to transplant once that repository is supplied or Mercurial is installed.
+21
View File
@@ -0,0 +1,21 @@
Design
======
``account_do`` is a base accounting localization module. It follows the same
shape as Tryton chart modules such as ``account_fr``, ``account_be``, and
``account_syscohada``:
* chart, tax, tax code, and tax rule data are declarative XML records;
* Python code extends only the chart creation wizard to provide Dominican
defaults;
* the chart creation wizard proposes the Dominican receivable and payable
control accounts when either Dominican chart is selected;
* English and Latin American Spanish (``es_419``) charts are separate static
datasets because Tryton does
not translate account and tax template names at runtime;
* fiscal report classifications and form box mapping remain outside this
module and are owned by reporting modules such as ``dgii_reports``.
The module deliberately avoids replacing posting, tax computation, or invoice
logic from Tryton's ``account`` module. Complementary Dominican modules should
consume the accounts, taxes, and tax codes defined here.
+63 -5
View File
@@ -4,15 +4,73 @@ Account DO
The ``account_do`` module provides Dominican Republic accounting data for
Tryton.
.. toctree::
:maxdepth: 2
design
requirements
tax_blueprint
tax_validation
sources
core_readiness
reference
releases
It includes:
* An IFRS-oriented chart of accounts for Dominican companies;
* IFRS structural coverage for current/non-current presentation, financial
instruments, revenue contracts, leases, deferred tax, PPE, impairment,
provisions, intangibles, investment property, OCI, and held-for-sale items;
* Dominican tax groups and tax templates for ITBIS, ISR withholdings, ISC,
CDT, legal tip, and other taxes;
* tax code templates for DGII-oriented fiscal balances;
* sale and purchase tax rules for common Dominican fiscal situations;
* a ``tax_kind`` classification field on tax templates and taxes.
* sale, purchase, reduced-rate, zero-rate, informal supplier, acquirer, and
withholding tax rules for common Dominican fiscal situations;
* legal notices and validity dates on tax templates;
* tax rules for common sale, purchase, and withholding situations.
The chart is intended as a base localization. Companies should review account
names, inactive historical taxes, and sector-specific taxes before using it in
production.
The chart is intended as a proposed base localization. It provides the account
structure and Tryton account types required to operate under IFRS in the
Dominican Republic, but it does not replace accounting policies, measurement
models, estimates, closing procedures, financial statements, notes, or
disclosures. Companies should review account names, sector-specific taxes, and
DGII filing mappings before using it in production. The reduced 16% ITBIS
templates apply only to the goods enumerated by article 345 of the Tax Code.
Unsubstantiated 9% templates and the historical 8% transitional rate are not
included in a newly created chart.
IFRS base coverage
------------------
The base chart covers the structural account requirements identified in the
NIIF documentation reviewed for the Dominican Republic:
* IAS/NIC 1: current and non-current presentation, equity, OCI, and separate
closing/control accounts;
* IAS/NIC 2: inventories, cost of sales, and inventory impairment;
* IFRS/NIIF 9, IFRS/NIIF 7, and IAS/NIC 32: receivables, expected credit
losses, financial assets, fair value through profit or loss, fair value
through OCI, and OCI reserves;
* IFRS/NIIF 15: revenue, discounts, contract assets, and contract liabilities;
* IFRS/NIIF 16: right-of-use assets, lease liabilities, depreciation, and
finance expense;
* IAS/NIC 12: current income tax and deferred tax assets/liabilities;
* IAS/NIC 16: property, plant and equipment, accumulated depreciation, and
impairment;
* IAS/NIC 36: impairment accounts for held-for-sale assets, PPE, ROU assets,
investment property, and intangibles;
* IAS/NIC 37: current and non-current provisions;
* IAS/NIC 38: intangible assets, amortization, and impairment;
* IAS/NIC 40 and IFRS/NIIF 13: investment property and fair value effects;
* IFRS/NIIF 5: held-for-sale assets and associated liabilities.
DGII account mapping
--------------------
In this localization, "DGII account mapping" means the link between accounting
accounts and fiscal forms or fiscal boxes. For example, the ITBIS payable,
ITBIS credit, ISR withholding, ITBIS withholding, ISC payable, CDT payable,
asset tax, and transfer tax accounts are separated so reporting modules can map
balances and movements to IT-1, IR-17, IR-2, ACT, ISC, and related DGII
outputs without parsing account names.
-34
View File
@@ -1,34 +0,0 @@
Publishing
==========
Every pushed commit builds, validates, and publishes the package to the Gitea
PyPI-compatible package registry. The workflow intentionally does not use
``actions/upload-artifact`` because current Gitea Actions runners do not support
the GitHub artifact API required by ``upload-artifact@v4``.
The publishing workflow creates a CI-only package version by appending the run
number to the module version from ``tryton.cfg``. For example, a module version
of ``8.0.0`` is published as ``8.0.0.post123`` on run number ``123``.
This is necessary because Gitea's PyPI-compatible registry is a custom package
repository for Twine and does not support ``twine upload --skip-existing``.
Required repository secrets:
* ``GITEA_PACKAGE_USER``
* ``GITEA_PACKAGE_TOKEN``
Publish a release branch:
.. code-block:: console
git switch -c 8.0.0
git push origin 8.0.0
Install from Gitea:
.. code-block:: console
pip install \
--index-url https://gitea.joseagrc.com/api/packages/tryton-do/pypi/simple \
trytond_account_do
+35
View File
@@ -0,0 +1,35 @@
Reference
=========
Chart Setup
-----------
The module provides two complete chart roots:
* ``account_do.do_account_root_en`` for English accounting data;
* ``account_do.do_account_root_es_419`` for Dominican Spanish accounting data,
using Tryton's ``es_419`` language until ``es_DO`` is available.
When the English chart is selected, the chart creation wizard proposes:
* ``account_do.do_account_110201_en`` as the default receivable account;
* ``account_do.do_account_210101_en`` as the default payable account.
For the Spanish chart, the corresponding defaults are
``account_do.do_account_110201_es_419`` and
``account_do.do_account_210101_es_419``.
The selected language is permanent accounting data. Changing a user's
interface language does not rename an existing chart.
Taxes
-----
The module defines Dominican tax groups, tax templates, tax codes, and tax
rules using the standard models from :mod:`account`. Each tax template keeps
its legal basis in ``legal_notice`` and uses ``start_date`` and ``end_date``
when a rate has a limited period of validity.
DGII form classifications and form-box mappings are intentionally outside the
accounting localization. Reporting modules can derive fiscal totals from the
stable tax and tax-code identifiers provided by this module.
+15
View File
@@ -0,0 +1,15 @@
Releases
========
8.0.1
-----
Initial release with the Dominican chart of accounts, fiscal accounts, taxes,
tax codes, tax rules, translations, and chart creation defaults. The tax
requirements and source provenance are documented, unsupported historical
rates are excluded, and identified legal references are corrected.
Complete English and Latin American Spanish (``es_419``) chart variants are
available because account and
tax template names are static accounting data in Tryton.
Existing 8.0.0 identifiers are migrated to ``es_419`` without replacing the
referenced templates or the accounts and taxes already created from them.
+66
View File
@@ -0,0 +1,66 @@
Accounting Requirements
=======================
The Dominican accounting localization provides the accounting templates needed
to configure a company without changing Tryton's posting or tax calculation
behaviour.
Chart of Accounts
-----------------
The chart supplies a general-purpose structure for Dominican companies. It
includes receivable and payable control accounts, inventory and cost accounts,
property and depreciation accounts, financial instruments, provisions,
deferred taxes, equity, income, expenses, and closing accounts.
There is no mandatory general-purpose Dominican account-code catalogue for
ordinary entities. IFRS prescribes presentation and recognition requirements,
not account numbers. The supplied codes are therefore localization data
designed to satisfy Tryton's operational account properties and common IFRS
presentation classes; they must not be described as an official Dominican
chart. Regulated entities, including financial institutions, must use their
sector regulator's chart instead.
Companies remain responsible for adapting the chart to their sector and
accounting policies. The localization does not implement measurement,
valuation, closing, or financial-statement procedures. The provenance and
review boundary are documented in :doc:`sources`.
Taxes
-----
The module represents Dominican taxes with standard ``account`` models:
* tax groups classify ITBIS, ISR withholdings, ISC, CDT, legal tips, and other
taxes;
* tax templates define rates, accounting accounts, legal notices, and periods
of validity;
* tax codes aggregate debit and credit amounts;
* tax rules select or replace taxes for supported sale and purchase patterns.
Only rates supported by an identified legal source belong in a newly created
chart. The unsupported 9% ITBIS templates were removed. The 8% reduced rate
was transitional for 2013 and was also removed because a new chart does not
need it. The current reduced 16% rate is limited to the goods enumerated by
article 345; it is not a generic alternative rate.
The subject, taxable event, base, accounting treatment and reporting limits of
the supported taxes are described in :doc:`tax_blueprint`. A standard tax
rule can select a tax but cannot determine taxpayer registration, industry,
thresholds or other external facts. Such rules are manual accounting aids,
not a legal eligibility engine.
Scope
-----
The localization does not manage fiscal receipt numbers, electronic fiscal
documents, taxpayer registry lookups, invoice document classes, payroll, or
DGII return files. Those features belong to separate modules and may consume
the stable account, tax, and tax-code identifiers defined here.
Optional Accounting Modules
---------------------------
The test suite installs the localization together with ``account_asset``,
``account_deposit``, and ``account_stock_continental`` to detect registration
and chart-creation incompatibilities with common accounting extensions.
+68
View File
@@ -0,0 +1,68 @@
Sources and Provenance
======================
Source Policy
-------------
The module uses public primary legislation and regulator publications to
justify tax data. A form label, community answer or private accounting manual
is not by itself sufficient authority for a rate. IFRS publications are used
only to explain the structure of account types; copyrighted IFRS text is not
redistributed.
Chart of Accounts
-----------------
Dominican ordinary companies apply full IFRS or IFRS for SMEs according to the
rules adopted by the Instituto de Contadores Públicos Autorizados. Neither
framework prescribes account numbers. Consequently ``account_chart_do_en.xml``
is a proposed interoperable baseline, not a transcription of an official
general-purpose catalogue. Its reviewable design criteria are:
* receivable and payable control accounts required by Tryton;
* separate current and non-current presentation classes;
* inventory, fixed-asset, depreciation, deposit and stock accounts needed by
optional Tryton accounting modules;
* separate tax control accounts so reporting modules can map movements without
parsing translated account names;
* no claim that an account code is required by an IFRS paragraph.
The Superintendencia de Bancos publishes a mandatory accounting manual for
supervised financial institutions. It is evidence that a sector chart exists,
not a source for this general chart. A future proposal should either obtain
maintainer agreement for this designed baseline or reduce it further; exact
correspondence with a nonexistent general statutory chart cannot be asserted.
Official References
-------------------
* `Dominican Republic IFRS jurisdiction profile
<https://www.ifrs.org/use-around-the-world/use-of-ifrs-standards-by-jurisdiction/view-jurisdiction/dominican-republic/>`_
* `ICPARD international financial reporting standards
<https://icpard.org/normativa/normas-internacionales-de-informacion-financiera/>`_
* `DGII Tax Code, Law 11-92
<https://dgii.gov.do/transparencia/marcoLegal/Documents/Leyes/11-92.pdf>`_
* `DGII ITBIS overview
<https://dgii.gov.do/cicloContribuyente/obligacionesTributarias/principalesImpuestos/Paginas/Itbis.aspx>`_
* `Law 253-12, article 23 (ITBIS rates and enumerated reduced-rate goods)
<https://dgii.gov.do/legislacion/leyesTributarias/Documents/Codigo%20Tributario%20y%20Leyes%20que%20lo%20modifican%20y%20complementan/253-12.pdf>`_
* `Tax Code Title V, articles 401-405 (asset tax)
<https://dgii.gov.do/legislacion/codigoTributario/Cdigo%20Tributario/Titulo5.pdf>`_
* `Law 173-07, article 7 (real-estate transfer tax)
<https://dgii.gov.do/legislacion/leyesTributarias/Documents/Codigo%20Tributario%20y%20Leyes%20que%20lo%20modifican%20y%20complementan/173-07.pdf>`_
* `Labour Code, Law 16-92, article 228 (legal tip)
<https://mt.gob.do/transparencia/images/docs/publicaciones/codigo-de-trabajo.pdf>`_
* `General Rule 06-12 (vehicle first registration and CO2 distinction)
<https://dgii.gov.do/legislacion/normasGenerales/Documents/NG%20sobre%20Veh%C3%ADculos%20de%20Motor/norma06-12.pdf>`_
* `General Rule 04-2025 (bovine subsector withholding)
<https://dgii.gov.do/legislacion/normasGenerales/Documents/Normas%20Sectoriales/Norma04-25.pdf>`_
* `Law 30-26 (bank checks and electronic transfers)
<https://dgii.gov.do/transparencia/baseLegal/Documents/Leyes/30-26.pdf>`_
Review Record
-------------
Every change to a rate, validity date or legal notice should cite a primary
source in the commit and update :doc:`tax_blueprint`. Before an upstream
proposal, a Dominican tax professional should sign off the remaining
sector-specific templates against the law effective on the review date.
+98
View File
@@ -0,0 +1,98 @@
Tax Requirements Blueprint
==========================
Accounting Model
----------------
Taxes use Tryton's standard tax templates, tax-code templates and tax rules.
Positive rates create a tax charge. Negative rates represent a withholding.
Sales taxes credit a liability account; recoverable purchase ITBIS debits a
tax-credit account; suffered withholdings debit a receivable; practiced
withholdings credit a payable. Reporting modules aggregate the resulting
movements into DGII forms.
The rules do not inspect RNC status, economic activity, informality, thresholds,
vehicle emissions or product tariff codes. A user must select a rule only
after establishing those facts. Conditional automation belongs in a dedicated
fiscal module with the required party and product metadata.
General ITBIS
-------------
The taxable events are transfers and imports of industrialized goods and the
provision or lease of services. The general rate is 18% of the taxable amount.
The 16% rate is restricted to the goods enumerated by article 345 of the Tax
Code; a generic product must not use it. Articles 343 and 344 define exempt
goods and services, while exports use zero-rate treatment. Purchase ITBIS is
recoverable only when the statutory credit requirements are met. The module
records invoice tax; ``dgii_reports`` owns IT-1 box mapping and filing output.
Historical 8% and Unsupported 9%
--------------------------------
Article 23 of Law 253-12 made 8% the reduced rate for enumerated goods only in
2013, followed by 11% in 2014, 13% in 2015 and 16% from 2016. A chart created
now does not need an isolated 8% template, so it is excluded. No primary
source was found for a current general 9% ITBIS rate; the former 9% templates,
rules and codes are excluded until a precise taxable event and legal source are
provided.
Withholdings
------------
ISR and ITBIS withholding templates record amounts retained by the payer or
suffered by the recipient. Their applicability depends on the parties and
operation. In particular:
* the 2% acquirer withholding under General Rule 06-23 is excluded. It is
payment based and depends on registration status, activity and thresholds;
an invoice tax on the untaxed base would calculate the wrong amount. It
belongs in a payment-aware Dominican fiscal module;
* the bovine 1% template applies when a legal entity buys live cattle for
slaughter or bovine meat from a non-registered natural person. It is 1% of
the invoiced amount, reported through IR-17, under articles 2, 4 and 5 of
General Rule 04-2025. The rule is dated 20 March 2025 and article 11 makes it
effective three months later, represented as 20 June 2025.
Selective and Sector Taxes
--------------------------
ISC templates are sector-specific and must be selected only for the products
or services covered by the cited provision. Alcohol and tobacco may also
carry specific amounts that change periodically; a percentage template does
not replace the current DGII specific-amount table. The CDT template applies
to telecommunications revenue under article 26 of Law 153-98.
The vehicle 17% template represents the first-registration charge on CIF value
under article 22 of Law 557-05. It is not ISC and is classified with other
taxes. The separate CO2 charge under Law 253-12 and General Rule 06-12 ranges
with emissions and is deliberately not automated.
Other Charges
-------------
The legal 10% tip applies only to hotels, restaurants, cafés, bars and similar
establishments that serve food or drink, under article 228 of the Labour Code.
It is not a general sales tax.
The annual asset tax is 1% of taxable assets under articles 401-405 of the Tax
Code, with the rate in article 404. The template supports accounting of a
manual assessment; it does not compute exemptions or its interaction with ISR.
The real-estate transfer tax is 3% under article 20 of Law 288-04 as amended by
article 7 of Law 173-07. Valuation and exemptions are outside invoice-tax
automation and must be checked when the transfer is assessed.
The check and electronic-transfer templates preserve 0.15% through 2 July
2026 and 0.20% from 3 July 2026 under Law 30-26. Their tax rule switches rates
by accounting date.
Validation Boundary
-------------------
This blueprint resolves the identified citation and scope defects. It is not
a professional opinion. Before upstream submission, all sector-specific ISR,
ITBIS and ISC templates must receive a line-by-line review recording subject,
event, base, rate, effective dates, exemptions, posting direction and DGII
return. Any template that fails that review should be removed from the core
proposal and maintained in a specialized Dominican module instead.
+109
View File
@@ -0,0 +1,109 @@
Tax Template Validation Register
================================
Purpose and Status
------------------
This register makes the review population explicit and prevents a tax template
from being added without appearing in the functional documentation. The module
test suite checks that the identifiers below exactly match the XML.
``Documented`` means that the template has an identified statutory or regulator
source, an accounting direction and a stated functional boundary. It does not
mean that a software author has issued a Dominican tax opinion. Professional
sign-off remains a release-governance control because legal authority and
professional responsibility cannot be created by code or automated tests.
General ITBIS
-------------
* ``do_tax_itbis_18_venta`` — general 18% output ITBIS.
* ``do_tax_itbis_16_venta`` — 16% output ITBIS, restricted to article 345 goods.
* ``do_tax_itbis_18_compra`` — potentially creditable 18% input ITBIS.
* ``do_tax_itbis_16_compra`` — potentially creditable 16% input ITBIS on article 345 goods.
* ``do_tax_itbis_exento`` — operations covered by articles 343 and 344.
* ``do_tax_itbis_tasa_cero`` — zero-rated exports and qualifying free-zone operations.
ITBIS Withholdings
------------------
These templates are manual selections. Party status and the legal nature of
the service must be established outside the tax rule.
* ``do_tax_ret_itbis_30`` — 30% of 18% ITBIS, represented as -5.4% of base.
* ``do_tax_ret_itbis_100_inf`` — 100% of 18% ITBIS on qualifying services.
* ``do_tax_ret_itbis_75_inf`` — 75% of 18% ITBIS, represented as -13.5%.
* ``do_tax_ret_itbis_75_inf_16`` — 75% of reduced 16% ITBIS, represented as -12%.
* ``do_tax_ret_itbis_100_goods_18`` — 100% of 18% on qualifying informal purchases.
* ``do_tax_ret_itbis_100_goods_16`` — 100% of reduced 16% on qualifying purchases.
* ``do_tax_ret_itbis_rst_18`` — 100% of 18% for a qualifying RST operation.
* ``do_tax_ret_itbis_rst_16`` — 100% of reduced 16% for a qualifying RST operation.
* ``do_tax_ret_itbis_insurance_100`` — insurance-sector withholding.
* ``do_tax_ret_itbis_airline_100`` — BSP/IATA airline withholding suffered.
* ``do_tax_ret_itbis_society_30_suf`` — 30% withholding suffered from a company.
* ``do_tax_ret_itbis_hotel_100`` — hotel commission withholding suffered.
* ``do_tax_ret_itbis_state_100`` — state-entity withholding suffered.
ISR Withholdings
----------------
* ``do_tax_ret_isr_hon_5`` — 5% legal-entity service case.
* ``do_tax_ret_isr_serv_10`` — 10% natural-person professional service case.
* ``do_tax_ret_isr_div_10`` — 10% dividends and distributed profits.
* ``do_tax_ret_isr_int_10`` — 10% interest paid to a natural person.
* ``do_tax_ret_isr_alq_10`` — 10% qualifying rent paid to a natural person.
* ``do_tax_ret_isr_est_15`` — historical or specific 1.5% public-sector case.
* ``do_tax_ret_isr_est_5`` — 5% public-sector payment case.
* ``do_tax_ret_isr_bovine_1`` — 1% qualifying bovine purchase from an unregistered natural person.
* ``do_tax_ret_isr_exporter_25`` — 2.5% qualifying local sale by an exporter.
* ``do_tax_ret_isr_int_pj_1`` — 1% interest paid to a legal entity.
* ``do_tax_ret_isr_premios_25`` — 25% qualifying lottery, raffle or draw prize.
* ``do_tax_ret_isr_premios_10`` — 10% qualifying prize band.
* ``do_tax_ret_isr_premios_15`` — 15% qualifying prize band.
* ``do_tax_ret_isr_tragamonedas_10`` — 10% slot-machine prize case.
* ``do_tax_ret_isr_other_income_10`` — 10% residual income case under article 309.
* ``do_tax_ret_isr_ext_27`` — 27% qualifying service or royalty paid abroad.
* ``do_tax_ret_isr_ext_10`` — 10% qualifying interest paid abroad.
Selective and Sector Charges
----------------------------
* ``do_tax_isc_bebidas_alc`` — 10% alcohol ad-valorem component; specific amount excluded.
* ``do_tax_isc_tabaco`` — 20% tobacco ad-valorem component; specific amount excluded.
* ``do_tax_isc_telecom`` — 10% telecommunications ISC.
* ``do_tax_isc_combustibles_16`` — 16% fossil-fuel charge.
* ``do_tax_isc_avtur_65`` — 6.5% qualifying Avtur charge.
* ``do_tax_isc_fuel_rd2_gallon`` — fixed RD$2 per qualifying gallon.
* ``do_tax_ret_isc_insurance_100`` — insurance-sector ISC withholding.
* ``do_tax_isc_vehiculos`` — 17% first-registration charge on CIF, not ISC despite the stable legacy identifier.
* ``do_tax_cdt_indotel`` — 2% telecommunications development contribution.
Other Charges
-------------
* ``do_tax_propina_10`` — 10% legal tip under Labour Code article 228.
* ``do_tax_cheques_015`` — 0.15% bank charge through 2 July 2026.
* ``do_tax_cheques_020`` — 0.20% bank charge from 3 July 2026.
* ``do_tax_activos_1`` — manual accounting of the annual 1% asset-tax assessment.
* ``do_tax_iti_3`` — manual accounting of the 3% real-estate transfer assessment.
Rejected Templates
------------------
The following cases are intentionally absent:
* 8% ITBIS: transitional 2013 rate, not appropriate for a newly created chart;
* 9% ITBIS: no precise current primary source and taxable event established;
* 2% acquirer withholding: payment-based and conditional, so an invoice-base
percentage would be materially misleading;
* vehicle CO2 charge: its rate depends on vehicle emissions;
* changing specific alcohol and tobacco amounts: maintained by DGII tables and
unsuitable as undated static data.
Sign-off Record
---------------
For an upstream submission, record the reviewer name, professional capacity,
review date and source versions in the merge request. Until that occurs, the
correct claim is “complete documented technical review”, not “certified tax
advice”.
+74
View File
@@ -0,0 +1,74 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from sql import Table
from trytond.pool import PoolMeta
from trytond.transaction import Transaction
LEGACY_OBSOLETE_IDS = {
'do_tax_itbis_8_compra', 'do_tax_itbis_8_venta',
'do_tax_itbis_9_compra', 'do_tax_itbis_9_venta',
'do_tax_ret_itbis_2_adq',
'do_tax_rule_customer_card_acquirer',
'do_tax_rule_customer_itbis8', 'do_tax_rule_customer_itbis9',
'do_tax_rule_supplier_itbis8', 'do_tax_rule_supplier_itbis9',
'do_tc_itbis_compras_8', 'do_tc_itbis_compras_9',
'do_tc_itbis_retenido_adq',
'do_tc_itbis_ventas_8', 'do_tc_itbis_ventas_9',
'do_tcl_itbis8c_cr', 'do_tcl_itbis8c_inv',
'do_tcl_itbis8v_cr', 'do_tcl_itbis8v_inv',
'do_tcl_itbis9c_cr', 'do_tcl_itbis9c_inv',
'do_tcl_itbis9v_cr', 'do_tcl_itbis9v_inv',
'do_tcl_ret_itbis_adq_cr', 'do_tcl_ret_itbis_adq_inv',
'do_trline_cust_card_acquirer',
'do_trline_cust_itbis8', 'do_trline_cust_itbis9',
'do_trline_supp_itbis8', 'do_trline_supp_itbis9',
}
LOCALIZATION_MODELS = {
'account.account.template',
'account.account.type.template',
'account.tax.code.line.template',
'account.tax.code.template',
'account.tax.group',
'account.tax.rule.line.template',
'account.tax.rule.template',
'account.tax.template',
}
class ModelData(metaclass=PoolMeta):
__name__ = 'ir.model.data'
@classmethod
def __register__(cls, module_name):
super().__register__(module_name)
if module_name != 'account_do': # pragma: no cover
return # Defensive guard for composite PoolMeta classes.
cls._migrate_localization_identifiers()
@classmethod
def _migrate_localization_identifiers(cls):
"Preserve pre-language identifiers when upgrading from 8.0.0."
cursor = Transaction().connection.cursor()
table = Table(cls._table)
cursor.execute(*table.select(
table.id, table.fs_id,
where=(table.module == 'account_do')
& table.model.in_(tuple(LOCALIZATION_MODELS))))
obsolete = []
for record_id, fs_id in cursor.fetchall():
if fs_id in LEGACY_OBSOLETE_IDS:
obsolete.append(record_id)
elif not fs_id.endswith(('_en', '_es_419')):
cursor.execute(*table.update(
[table.fs_id], [fs_id + '_es_419'],
where=table.id == record_id))
if obsolete:
# Retain referenced historical templates as user-owned records.
cursor.execute(*table.delete(where=table.id.in_(obsolete)))
-1351
View File
File diff suppressed because it is too large Load Diff
-89
View File
@@ -1,89 +0,0 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
# Class: TaxTemplate
# Model: account.tax.template
msgctxt "field:account.tax.template,tax_kind:"
msgid "Tax Kind"
msgstr "Tipo de Impuesto"
msgctxt "selection:account.tax.template,tax_kind:"
msgid ""
msgstr ""
msgctxt "selection:account.tax.template,tax_kind:"
msgid "ITBIS"
msgstr "ITBIS"
msgctxt "selection:account.tax.template,tax_kind:"
msgid "Retención ITBIS"
msgstr "Retención ITBIS"
msgctxt "selection:account.tax.template,tax_kind:"
msgid "Retención ITBIS Adquirentes"
msgstr "Retención ITBIS Adquirentes"
msgctxt "selection:account.tax.template,tax_kind:"
msgid "Retención ISR"
msgstr "Retención ISR"
msgctxt "selection:account.tax.template,tax_kind:"
msgid "ISC — Selectivo al Consumo"
msgstr "ISC — Selectivo al Consumo"
msgctxt "selection:account.tax.template,tax_kind:"
msgid "CDT INDOTEL"
msgstr "CDT INDOTEL"
msgctxt "selection:account.tax.template,tax_kind:"
msgid "Propina Legal"
msgstr "Propina Legal"
msgctxt "selection:account.tax.template,tax_kind:"
msgid "Other Taxes"
msgstr "Otros Impuestos"
# Class: Tax
# Model: account.tax
msgctxt "field:account.tax,tax_kind:"
msgid "Tax Kind"
msgstr "Tipo de Impuesto"
msgctxt "selection:account.tax,tax_kind:"
msgid ""
msgstr ""
msgctxt "selection:account.tax,tax_kind:"
msgid "ITBIS"
msgstr "ITBIS"
msgctxt "selection:account.tax,tax_kind:"
msgid "Retención ITBIS"
msgstr "Retención ITBIS"
msgctxt "selection:account.tax,tax_kind:"
msgid "Retención ITBIS Adquirentes"
msgstr "Retención ITBIS Adquirentes"
msgctxt "selection:account.tax,tax_kind:"
msgid "Retención ISR"
msgstr "Retención ISR"
msgctxt "selection:account.tax,tax_kind:"
msgid "ISC — Selectivo al Consumo"
msgstr "ISC — Selectivo al Consumo"
msgctxt "selection:account.tax,tax_kind:"
msgid "CDT INDOTEL"
msgstr "CDT INDOTEL"
msgctxt "selection:account.tax,tax_kind:"
msgid "Propina Legal"
msgstr "Propina Legal"
msgctxt "selection:account.tax,tax_kind:"
msgid "Other Taxes"
msgstr "Otros Impuestos"
+12 -11
View File
@@ -7,12 +7,12 @@ name = 'trytond_account_do'
dynamic = ['version', 'dependencies', 'optional-dependencies', 'authors', 'readme']
requires-python = '>=3.10'
maintainers = [
{name = "Solutema"},
{name = "Fundación Un País Mejor"},
]
description = "Dominican Republic accounting for Tryton"
license = 'GPL-3.0-or-later'
license-files = ["LICENSE", "COPYRIGHT"]
keywords = ["tryton", "accounting", "dominican-republic"]
license-files = ['LICENSE', 'COPYRIGHT']
keywords = ["tryton", "accounting", "coa", "dominican-republic"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Plugins",
@@ -26,31 +26,32 @@ classifiers = [
account_do = 'trytond.modules.account_do'
[project.urls]
homepage = "https://www.tryton.org/"
repository = "https://gitea.joseagrc.com/tryton-do/account_do"
homepage = "https://www.unpaismejor.org.do"
documentation = "https://docs.tryton.org/modules-account-do/"
changelog = "https://docs.tryton.org/modules-account-do/releases.html"
forum = "https://www.tryton.org/forum"
issues = "https://bugs.tryton.org/tryton"
repository = "https://code.unpaismejor.org.do/tryton-do/account_do"
funding = "https://www.tryton.org/donate"
[tool.hatch.build]
include = [
'COPYRIGHT',
'LICENSE',
'README.rst',
'IMPUESTOS_RD.md',
'**/tryton.cfg',
'**/*.py',
'**/*.xml',
'view/**/*.xml',
'locale/**/*.po',
'doc/**/*.rst',
'**/*.fodt',
'icons/**/*.svg',
'tests/**/*.rst',
'tests/**/*.json',
]
exclude = ['doc']
[tool.hatch.build.targets.wheel.sources]
"" = "trytond/modules/account_do"
[tool.hatch.metadata.hooks.tryton]
dependencies = []
copyright = 'COPYRIGHT'
readme = 'README.rst'
-133
View File
@@ -1,133 +0,0 @@
from trytond.model import fields
from trytond.pool import PoolMeta
from trytond.transaction import Transaction
from sql import Null, Table
TAX_KIND = [
('', ''),
('itbis', 'ITBIS'),
('itbis_withholding', 'Retención ITBIS'),
('itbis_withholding_acquirer', 'Retención ITBIS Adquirentes'),
('isr_withholding', 'Retención ISR'),
('isc', 'ISC — Selectivo al Consumo'),
('cdt', 'CDT INDOTEL'),
('tip', 'Propina Legal'),
('others', 'Other Taxes'),
]
MODEL_DATA_RENAMES = {
'do_tax_group_otros': 'do_tax_group_others',
'do_tc_otros': 'do_tc_others',
'do_tc_otros_propina': 'do_tc_others_tip',
'do_tc_otros_cheques': 'do_tc_others_checks',
'do_tc_otros_activos': 'do_tc_others_assets',
'do_tc_otros_iti': 'do_tc_others_iti',
}
ROOT_TAX_CODE_CHILDREN = [
'ITBIS — Balance Neto (Débito Crédito)',
'ISR - Retenciones',
'ISR - Retenciones en la Fuente',
'ISC - Impuesto Selectivo al Consumo',
'CDT INDOTEL 2% (Ley 153-98)',
'Otros Impuestos y Contribuciones',
]
def migrate_model_data_names(cursor, module_name):
if module_name != 'account_do':
return
model_data = Table('ir_model_data')
for old, new in MODEL_DATA_RENAMES.items():
cursor.execute(*model_data.update(
[model_data.fs_id], [new],
where=(model_data.module == module_name)
& (model_data.fs_id == old)))
class TaxTemplate(metaclass=PoolMeta):
__name__ = 'account.tax.template'
tax_kind = fields.Selection(TAX_KIND, 'Tax Kind', sort=False)
@classmethod
def __register__(cls, module_name):
cursor = Transaction().connection.cursor()
table = cls.__table__()
super().__register__(module_name)
migrate_model_data_names(cursor, module_name)
cursor.execute(*table.update(
[table.tax_kind], ['others'],
where=table.tax_kind == 'otros'))
def _get_tax_value(self, tax=None):
values = super()._get_tax_value(tax=tax)
if not tax or tax.tax_kind != self.tax_kind:
values['tax_kind'] = self.tax_kind
return values
class Tax(metaclass=PoolMeta):
__name__ = 'account.tax'
tax_kind = fields.Selection(TAX_KIND, 'Tax Kind', sort=False)
@classmethod
def __register__(cls, module_name):
cursor = Transaction().connection.cursor()
table = cls.__table__()
super().__register__(module_name)
cursor.execute(*table.update(
[table.tax_kind], ['others'],
where=table.tax_kind == 'otros'))
class TaxCode(metaclass=PoolMeta):
__name__ = 'account.tax.code'
@classmethod
def __register__(cls, module_name):
cursor = Transaction().connection.cursor()
super().__register__(module_name)
if module_name != 'account_do':
return
table = cls.__table__()
cursor.execute(*table.update(
[table.name], ['ISR - Retenciones'],
where=table.name == 'ISR - Retenciones en la Fuente'))
cursor.execute(*table.update(
[table.parent], [None],
where=table.name.in_(ROOT_TAX_CODE_CHILDREN)
& table.parent.in_(table.select(table.id,
where=table.name == 'Impuestos República Dominicana'))))
class TaxCodeLine(metaclass=PoolMeta):
__name__ = 'account.tax.code.line'
@classmethod
def __register__(cls, module_name):
cursor = Transaction().connection.cursor()
super().__register__(module_name)
if module_name != 'account_do':
return
line = cls.__table__()
code = Table('account_tax_code')
tax = Table('account_tax')
cursor.execute(*line.delete(
where=(line.template == Null)
& line.code.in_(code.select(code.id,
where=code.name == (
'Retención ISR Intereses 1% '
'(Personas Jurídicas, NG 07-19)')))
& line.tax.in_(tax.select(tax.id,
where=tax.description == (
'Retención ISR Intereses Persona Física 10%')))))
-693
View File
@@ -1,693 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- account_do: Plantillas de códigos de impuesto (DGII) - República Dominicana -->
<!--
CONVENCIÓN DE OPERADORES:
Débitos / obligaciones a DGII → invoice="+", credit="-"
Créditos / reducciones al saldo → invoice="-", credit="+"
Excepción: ITBIS retención GC 30% (do_tax_ret_itbis_30) tiene rate=-5.4%,
por lo que el monto ya llega negativo al código; se usa invoice="+", credit="-".
Lógica del árbol ITBIS:
Padre "ITBIS" = Ventas (+) + Compras (-) + Retenciones recibidas (-) = Neto a pagar
-->
<tryton>
<data>
<!-- ===== Árbol de códigos de impuesto ===== -->
<record id="do_tc_root" model="account.tax.code.template">
<field name="name">Impuestos República Dominicana</field>
<field name="account" ref="do_account_root"/>
</record>
<!-- ── ITBIS ───────────────────────────────────────────── -->
<record id="do_tc_itbis" model="account.tax.code.template">
<field name="name">ITBIS — Balance Neto (Débito Crédito)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" eval="None"/>
</record>
<record id="do_tc_itbis_ventas" model="account.tax.code.template">
<field name="name">ITBIS Facturado en Ventas (Débito Fiscal)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis"/>
</record>
<record id="do_tc_itbis_ventas_18" model="account.tax.code.template">
<field name="name">ITBIS Facturado 18%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis_ventas"/>
</record>
<record id="do_tc_itbis_ventas_16" model="account.tax.code.template">
<field name="name">ITBIS Facturado 16%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis_ventas"/>
</record>
<record id="do_tc_itbis_ventas_8" model="account.tax.code.template">
<field name="name">ITBIS Facturado 8% (Tasa Reducida)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis_ventas"/>
</record>
<!-- Compras con operadores inversos: las líneas usan "-" en invoice para que
este código sume en negativo y reste del padre ITBIS. -->
<record id="do_tc_itbis_compras" model="account.tax.code.template">
<field name="name">ITBIS Soportado en Compras (Crédito Fiscal)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis"/>
</record>
<record id="do_tc_itbis_compras_18" model="account.tax.code.template">
<field name="name">ITBIS Soportado 18%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis_compras"/>
</record>
<record id="do_tc_itbis_compras_16" model="account.tax.code.template">
<field name="name">ITBIS Soportado 16%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis_compras"/>
</record>
<record id="do_tc_itbis_compras_8" model="account.tax.code.template">
<field name="name">ITBIS Soportado 8% (Tasa Reducida)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis_compras"/>
</record>
<!-- Retención GC: rate ya es -5.4%, el monto llega negativo → resta del padre con invoice="+" -->
<record id="do_tc_itbis_retenido" model="account.tax.code.template">
<field name="name">ITBIS Retenido por Gran Contribuyente (30%)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis"/>
</record>
<!-- Adquirencias: rate=2% positivo, se usa invoice="-" para que reste del padre -->
<record id="do_tc_itbis_retenido_adq" model="account.tax.code.template">
<field name="name">ITBIS Retenido por Adquirencias (NG 06-23, 2%)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis"/>
</record>
<!-- Informal 100%: agrega obligación al balance → invoice="+" -->
<record id="do_tc_itbis_ret_informal" model="account.tax.code.template">
<field name="name">ITBIS Retenido 100% Proveedor Informal (B11/E41)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis"/>
</record>
<!-- Tasa cero: seguimiento informativo de la base imponible (amount=base) -->
<record id="do_tc_itbis_tasa_cero" model="account.tax.code.template">
<field name="name">ITBIS Tasa Cero — Base Imponible (Exportaciones / Zona Franca)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_itbis"/>
</record>
<!-- ── ISR Retenciones ─────────────────────────────────── -->
<record id="do_tc_isr" model="account.tax.code.template">
<field name="name">ISR - Retenciones</field>
<field name="account" ref="do_account_root"/>
<field name="parent" eval="None"/>
</record>
<record id="do_tc_isr_honorarios" model="account.tax.code.template">
<field name="name">Retención ISR Honorarios/Servicios 5% (Personas Jurídicas)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isr"/>
</record>
<record id="do_tc_isr_servicios" model="account.tax.code.template">
<field name="name">Retención ISR Honorarios 10% (Personas Físicas)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isr"/>
</record>
<record id="do_tc_isr_dividendos" model="account.tax.code.template">
<field name="name">Retención ISR Dividendos 10% (Art. 308 CT)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isr"/>
</record>
<record id="do_tc_isr_intereses_pf" model="account.tax.code.template">
<field name="name">Retención ISR Intereses 10% (Personas Físicas, NG 07-19)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isr"/>
</record>
<record id="do_tc_isr_intereses" model="account.tax.code.template">
<field name="name">Retención ISR Intereses 1% (Personas Jurídicas, NG 07-19)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isr"/>
</record>
<record id="do_tc_isr_alquileres" model="account.tax.code.template">
<field name="name">Retención ISR Alquileres 10%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isr"/>
</record>
<record id="do_tc_isr_gobierno" model="account.tax.code.template">
<field name="name">Retención ISR Estado/Sector Público 1.5%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isr"/>
</record>
<record id="do_tc_isr_premios" model="account.tax.code.template">
<field name="name">Retención ISR Premios y Loterías 25% (Art. 321 CT)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isr"/>
</record>
<record id="do_tc_isr_ext" model="account.tax.code.template">
<field name="name">ISR Pagos al Exterior (Art. 305-306 CT)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isr"/>
</record>
<!-- ── ISC ────────────────────────────────────────────── -->
<record id="do_tc_isc" model="account.tax.code.template">
<field name="name">ISC - Impuesto Selectivo al Consumo</field>
<field name="account" ref="do_account_root"/>
<field name="parent" eval="None"/>
</record>
<record id="do_tc_isc_bebidas" model="account.tax.code.template">
<field name="name">ISC Bebidas Alcohólicas 20%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isc"/>
</record>
<record id="do_tc_isc_tabaco" model="account.tax.code.template">
<field name="name">ISC Tabaco y Cigarrillos 20%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isc"/>
</record>
<record id="do_tc_isc_telecom" model="account.tax.code.template">
<field name="name">ISC Servicios de Telecomunicaciones 10%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isc"/>
</record>
<record id="do_tc_isc_vehiculos" model="account.tax.code.template">
<field name="name">ISC Vehículos de Motor (ad valorem)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_isc"/>
</record>
<!-- ── CDT INDOTEL ───────────────────────────────────── -->
<record id="do_tc_cdt" model="account.tax.code.template">
<field name="name">CDT INDOTEL 2% (Ley 153-98)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" eval="None"/>
</record>
<!-- ── Otros impuestos ───────────────────────────────── -->
<record id="do_tc_others" model="account.tax.code.template">
<field name="name">Otros Impuestos y Contribuciones</field>
<field name="account" ref="do_account_root"/>
<field name="parent" eval="None"/>
</record>
<record id="do_tc_others_tip" model="account.tax.code.template">
<field name="name">Propina Legal 10% (Restaurantes/Hoteles)</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_others"/>
</record>
<record id="do_tc_others_checks" model="account.tax.code.template">
<field name="name">Impuesto Cheques y Transferencias 0.15%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_others"/>
</record>
<record id="do_tc_others_checks_020" model="account.tax.code.template">
<field name="name">Impuesto Cheques y Transferencias 0.20%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_others"/>
</record>
<record id="do_tc_others_assets" model="account.tax.code.template">
<field name="name">Impuesto Mínimo a los Activos 1%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_others"/>
</record>
<record id="do_tc_others_iti" model="account.tax.code.template">
<field name="name">Transferencia Inmobiliaria ITI 3%</field>
<field name="account" ref="do_account_root"/>
<field name="parent" ref="do_tc_others"/>
</record>
<!-- ===== Líneas: enlace impuesto → código =====
ITBIS Ventas: invoice="+", credit="-" (débito fiscal, crédito revierte)
ITBIS Compras: invoice="-", credit="+" (crédito resta del padre; nd. proveedor revierte)
ITBIS GC Ret.: invoice="+", credit="-" (rate 5.4% → monto ya negativo → resta)
ITBIS Adq.: invoice="-", credit="+" (rate +2%, debemos restar del padre explícitamente)
ITBIS Informal: invoice="+", credit="-" (obligación al padre)
ISR / ISC / CDT / Otros: invoice="+", credit="-" (obligaciones)
===== -->
<!-- ITBIS Ventas 18% -->
<record id="do_tcl_itbis18v_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_18"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_18_venta"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis18v_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_18"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_18_venta"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Ventas 16% -->
<record id="do_tcl_itbis16v_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_16"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_16_venta"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis16v_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_16"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_16_venta"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Ventas 8% -->
<record id="do_tcl_itbis8v_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_8"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_8_venta"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis8v_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_8"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_8_venta"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Compras 18%: invoice="-" para restar del padre -->
<record id="do_tcl_itbis18c_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_18"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_18_compra"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis18c_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_18"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_18_compra"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Compras 16% -->
<record id="do_tcl_itbis16c_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_16"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_16_compra"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis16c_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_16"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_16_compra"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Compras 8% -->
<record id="do_tcl_itbis8c_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_8"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_8_compra"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis8c_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_8"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_8_compra"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Retención GC 30%: rate=-5.4% → monto ya negativo; invoice="+" basta -->
<record id="do_tcl_ret_itbis_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_retenido"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_30"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_retenido"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_30"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Retención Adquirencias 2%: rate positivo → invoice="-" para restar del padre -->
<record id="do_tcl_ret_itbis_adq_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_retenido_adq"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_2_adq"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_adq_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_retenido_adq"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_2_adq"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Retención 100% Proveedor Informal: agrega obligación al padre -->
<record id="do_tcl_ret_itbis_inf_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_100_inf"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_inf_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_100_inf"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Tasa Cero: seguimiento de base imponible (informativo) -->
<record id="do_tcl_itbis_tc_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_tasa_cero"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_tasa_cero"/>
<field name="amount">base</field>
<field name="type">invoice</field>
</record>
<!-- ISR Honorarios Personas Jurídicas 5% -->
<record id="do_tcl_isr_hon_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_honorarios"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_hon_5"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_hon_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_honorarios"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_hon_5"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Honorarios Personas Físicas 10% -->
<record id="do_tcl_isr_serv_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_servicios"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_serv_10"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_serv_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_servicios"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_serv_10"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Dividendos 10% -->
<record id="do_tcl_isr_div_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_dividendos"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_div_10"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_div_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_dividendos"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_div_10"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Intereses Persona Física 10% -->
<record id="do_tcl_isr_int_pf_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_pf"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_int_10"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_int_pf_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_pf"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_int_10"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Intereses Persona Jurídica 1% -->
<record id="do_tcl_isr_int_pj_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_int_pj_1"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_int_pj_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_int_pj_1"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Alquileres 10% -->
<record id="do_tcl_isr_alq_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_alquileres"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_alq_10"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_alq_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_alquileres"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_alq_10"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Estado 1.5% -->
<record id="do_tcl_isr_est_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_est_15"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_est_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_est_15"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Premios 25% -->
<record id="do_tcl_isr_prem_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_premios_25"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_prem_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_premios_25"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Exterior 27% -->
<record id="do_tcl_isr_ext27_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_ext_27"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_ext27_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_ext_27"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Exterior 10% -->
<record id="do_tcl_isr_ext10_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_ext_10"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_ext10_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_ext_10"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISC Bebidas alcohólicas -->
<record id="do_tcl_isc_beb_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_bebidas"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_bebidas_alc"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_beb_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_bebidas"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_bebidas_alc"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISC Tabaco -->
<record id="do_tcl_isc_tab_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_tabaco"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_tabaco"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_tab_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_tabaco"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_tabaco"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISC Telecomunicaciones -->
<record id="do_tcl_isc_tel_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_telecom"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_telecom"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_tel_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_telecom"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_telecom"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISC Vehículos -->
<record id="do_tcl_isc_veh_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_vehiculos"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_vehiculos"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_veh_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_vehiculos"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_vehiculos"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- CDT INDOTEL -->
<record id="do_tcl_cdt_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_cdt"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_cdt_indotel"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_cdt_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_cdt"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_cdt_indotel"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- Propina Legal -->
<record id="do_tcl_prop_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_tip"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_propina_10"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_prop_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_tip"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_propina_10"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- Impuesto Cheques y Transferencias -->
<record id="do_tcl_chq_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_cheques_015"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_chq_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_cheques_015"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_chq020_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_020"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_cheques_020"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_chq020_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_020"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_cheques_020"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- Impuesto Mínimo a los Activos -->
<record id="do_tcl_act_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_assets"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_activos_1"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_act_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_assets"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_activos_1"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- Impuesto sobre Transferencia Inmobiliaria -->
<record id="do_tcl_iti_inv" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_iti"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_iti_3"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_iti_cr" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_iti"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_iti_3"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
</data>
</tryton>
+976
View File
@@ -0,0 +1,976 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- account_do: Plantillas de códigos de impuesto (DGII) - República Dominicana -->
<!--
CONVENCIÓN DE OPERADORES:
Débitos / obligaciones a DGII → invoice="+", credit="-"
Créditos / reducciones al saldo → invoice="-", credit="+"
Retenciones practicadas por la compañía usan tasa negativa y operador "-"
para presentar la obligación fiscal como valor positivo.
Lógica del árbol ITBIS:
Padre "ITBIS" = Ventas (+) + Compras (-) + Retenciones recibidas (-) = Neto a pagar
-->
<tryton>
<data language="en">
<!-- ===== Árbol de códigos de impuesto ===== -->
<record id="do_tc_root_en" model="account.tax.code.template">
<field name="name">Dominican Republic Taxes</field>
<field name="account" ref="do_account_root_en"/>
</record>
<!-- ── ITBIS ───────────────────────────────────────────── -->
<record id="do_tc_itbis_en" model="account.tax.code.template">
<field name="name">ITBIS — Net Balance (Debit Credit)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" eval="None"/>
</record>
<record id="do_tc_itbis_ventas_en" model="account.tax.code.template">
<field name="name">ITBIS Billed in Sales (Tax Debit)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_en"/>
</record>
<record id="do_tc_itbis_ventas_18_en" model="account.tax.code.template">
<field name="name">ITBIS Billed 18%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_ventas_en"/>
</record>
<record id="do_tc_itbis_ventas_16_en" model="account.tax.code.template">
<field name="name">ITBIS Billed 16%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_ventas_en"/>
</record>
<!-- Compras con operadores inversos: las líneas usan "-" en invoice para que
este código sume en negativo y reste del padre ITBIS. -->
<record id="do_tc_itbis_compras_en" model="account.tax.code.template">
<field name="name">Input ITBIS on Purchases (Tax Credit)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_en"/>
</record>
<record id="do_tc_itbis_compras_18_en" model="account.tax.code.template">
<field name="name">Input ITBIS at 18%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_compras_en"/>
</record>
<record id="do_tc_itbis_compras_16_en" model="account.tax.code.template">
<field name="name">Input ITBIS at 16%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_compras_en"/>
</record>
<!-- Retención GC: rate=-5.4%; operador "-" presenta obligación positiva. -->
<record id="do_tc_itbis_retenido_en" model="account.tax.code.template">
<field name="name">ITBIS Withheld by Large Taxpayer (30%)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_en"/>
</record>
<!-- Retenciones ITBIS proveedor informal / servicios: obligaciones fiscales -->
<record id="do_tc_itbis_ret_informal_en" model="account.tax.code.template">
<field name="name">ITBIS Withheld 100% Taxed Services</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_en"/>
</record>
<record id="do_tc_itbis_ret_informal_75_en" model="account.tax.code.template">
<field name="name">ITBIS Withheld 75% Informal Provider (B11/E41)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_en"/>
</record>
<record id="do_tc_itbis_ret_rst_en" model="account.tax.code.template">
<field name="name">ITBIS Withheld from RST Suppliers</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_en"/>
</record>
<record id="do_tc_itbis_ret_insurance_en" model="account.tax.code.template">
<field name="name">ITBIS Withheld in Insurance Services</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_en"/>
</record>
<record id="do_tc_itbis_ret_sectorial_en" model="account.tax.code.template">
<field name="name">ITBIS Withheld by Sector-specific Third Parties</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_en"/>
</record>
<!-- Tasa cero: seguimiento informativo de la base imponible (amount=base) -->
<record id="do_tc_itbis_tasa_cero_en" model="account.tax.code.template">
<field name="name">ITBIS Zero Rate — Tax Base (Exports / Free Trade Zone)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_itbis_en"/>
</record>
<!-- ── ISR Retenciones ─────────────────────────────────── -->
<record id="do_tc_isr_en" model="account.tax.code.template">
<field name="name">ISR: Withholdings</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" eval="None"/>
</record>
<record id="do_tc_isr_honorarios_en" model="account.tax.code.template">
<field name="name">ISR Withholding Fees/Services 5% (Legal Entities)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_servicios_en" model="account.tax.code.template">
<field name="name">ISR Withholding Fees 10% (Individuals)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_dividendos_en" model="account.tax.code.template">
<field name="name">ISR Withholding Dividends 10% (Art. 308 CT)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_intereses_pf_en" model="account.tax.code.template">
<field name="name">ISR Withholding Interest 10% (Individuals, NG 07-19)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_intereses_en" model="account.tax.code.template">
<field name="name">ISR Withholding Interest 1% (Legal Entities, NG 07-19)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_alquileres_en" model="account.tax.code.template">
<field name="name">ISR Rental Withholding 10%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_gobierno_en" model="account.tax.code.template">
<field name="name">State/Public Sector ISR Withholding 1.5%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_gobierno_5_en" model="account.tax.code.template">
<field name="name">State/Public Sector ISR Withholding 5%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_bovine_en" model="account.tax.code.template">
<field name="name">ISR Withholding Livestock/Beef 1%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_exporter_en" model="account.tax.code.template">
<field name="name">ISR Withholding Exporters Local Market 2.5%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_premios_en" model="account.tax.code.template">
<field name="name">ISR Withholding Prizes and Lotteries 25% (Art. 321 CT)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_premios_tramos_en" model="account.tax.code.template">
<field name="name">ISR Withholding Prizes 10% / 15% and Slots</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_other_income_en" model="account.tax.code.template">
<field name="name">ISR Withholding Other Income 10%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<record id="do_tc_isr_ext_en" model="account.tax.code.template">
<field name="name">ISR Payments Abroad (Art. 305-306 CT)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isr_en"/>
</record>
<!-- ── ISC ────────────────────────────────────────────── -->
<record id="do_tc_isc_en" model="account.tax.code.template">
<field name="name">ISC - Selective Consumption Tax</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" eval="None"/>
</record>
<record id="do_tc_isc_bebidas_en" model="account.tax.code.template">
<field name="name">ISC Alcoholic Beverages 10%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isc_en"/>
</record>
<record id="do_tc_isc_tabaco_en" model="account.tax.code.template">
<field name="name">ISC Tobacco and Cigarettes 20%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isc_en"/>
</record>
<record id="do_tc_isc_telecom_en" model="account.tax.code.template">
<field name="name">ISC Telecommunications Services 10%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isc_en"/>
</record>
<record id="do_tc_isc_combustibles_en" model="account.tax.code.template">
<field name="name">ISC Fossil Fuels 16%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isc_en"/>
</record>
<record id="do_tc_isc_ret_insurance_en" model="account.tax.code.template">
<field name="name">ISC Withholding Insurance Services</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isc_en"/>
</record>
<record id="do_tc_isc_vehiculos_en" model="account.tax.code.template">
<field name="name">ISC Motor Vehicles (ad valorem)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_isc_en"/>
</record>
<!-- ── CDT INDOTEL ───────────────────────────────────── -->
<record id="do_tc_cdt_en" model="account.tax.code.template">
<field name="name">CDT INDOTEL 2% (Law 153-98)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" eval="None"/>
</record>
<!-- ── Otros impuestos ───────────────────────────────── -->
<record id="do_tc_others_en" model="account.tax.code.template">
<field name="name">Other Taxes and Contributions</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" eval="None"/>
</record>
<record id="do_tc_others_tip_en" model="account.tax.code.template">
<field name="name">Legal Tip 10% (Restaurants/Hotels)</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_others_en"/>
</record>
<record id="do_tc_others_checks_en" model="account.tax.code.template">
<field name="name">Checks and Transfers Tax 0.15%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_others_en"/>
</record>
<record id="do_tc_others_checks_020_en" model="account.tax.code.template">
<field name="name">Checks and Transfers Tax 0.20%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_others_en"/>
</record>
<record id="do_tc_others_assets_en" model="account.tax.code.template">
<field name="name">Minimum Asset Tax 1%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_others_en"/>
</record>
<record id="do_tc_others_iti_en" model="account.tax.code.template">
<field name="name">ITI Real Estate Transfer 3%</field>
<field name="account" ref="do_account_root_en"/>
<field name="parent" ref="do_tc_others_en"/>
</record>
<!-- ===== Líneas: enlace impuesto → código =====
ITBIS Ventas: invoice="+", credit="-" (débito fiscal, crédito revierte)
ITBIS Compras: invoice="-", credit="+" (crédito resta del padre; nd. proveedor revierte)
Retenciones practicadas: invoice="-", credit="+" (rate negativo → obligación positiva)
Retenciones sufridas: invoice="+", credit="-" (rate negativo → crédito/anticipo)
ISC / CDT / Otros: invoice="+", credit="-" (obligaciones)
===== -->
<!-- ITBIS Ventas 18% -->
<record id="do_tcl_itbis18v_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_18_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_18_venta_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis18v_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_18_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_18_venta_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Ventas 16% -->
<record id="do_tcl_itbis16v_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_16_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_16_venta_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis16v_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_16_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_16_venta_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Compras 18%: invoice="-" para restar del padre -->
<record id="do_tcl_itbis18c_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_18_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_18_compra_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis18c_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_18_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_18_compra_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Compras 16% -->
<record id="do_tcl_itbis16c_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_16_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_16_compra_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis16c_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_16_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_16_compra_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Retención GC 30%: retención practicada, rate=-5.4% -->
<record id="do_tcl_ret_itbis_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_retenido_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_30_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_retenido_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_30_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Retención 100% Servicios: retención practicada -->
<record id="do_tcl_ret_itbis_inf_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_100_inf_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_inf_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_100_inf_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ITBIS Retención 75% Proveedor Informal: retención practicada -->
<record id="do_tcl_ret_itbis_inf75_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_75_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_75_inf_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_inf75_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_75_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_75_inf_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_inf75_16_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_75_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_75_inf_16_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_inf75_16_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_75_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_75_inf_16_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_goods18_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_100_goods_18_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_goods18_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_100_goods_18_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_goods16_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_100_goods_16_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_goods16_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_100_goods_16_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_rst18_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_rst_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_rst_18_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_rst18_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_rst_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_rst_18_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_rst16_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_rst_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_rst_16_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_rst16_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_rst_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_rst_16_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_ins_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_insurance_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_insurance_100_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_ins_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_insurance_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_insurance_100_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_air_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_sectorial_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_airline_100_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_soc_suf_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_sectorial_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_society_30_suf_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_hot_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_sectorial_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_hotel_100_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_state_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_sectorial_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_state_100_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<!-- ITBIS Tasa Cero: seguimiento de base imponible (informativo) -->
<record id="do_tcl_itbis_tc_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_tasa_cero_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_tasa_cero_en"/>
<field name="amount">base</field>
<field name="type">invoice</field>
</record>
<!-- ISR Honorarios Personas Jurídicas 5% -->
<record id="do_tcl_isr_hon_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_honorarios_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_hon_5_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_hon_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_honorarios_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_hon_5_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Honorarios Personas Físicas 10% -->
<record id="do_tcl_isr_serv_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_servicios_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_serv_10_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_serv_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_servicios_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_serv_10_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Dividendos 10% -->
<record id="do_tcl_isr_div_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_dividendos_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_div_10_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_div_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_dividendos_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_div_10_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Intereses Persona Física 10% -->
<record id="do_tcl_isr_int_pf_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_pf_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_int_10_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_int_pf_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_pf_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_int_10_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Intereses Persona Jurídica 1% -->
<record id="do_tcl_isr_int_pj_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_int_pj_1_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_int_pj_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_int_pj_1_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Alquileres 10% -->
<record id="do_tcl_isr_alq_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_alquileres_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_alq_10_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_alq_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_alquileres_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_alq_10_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Estado 1.5% -->
<record id="do_tcl_isr_est_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_est_15_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_est_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_est_15_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Estado 5%: retención sufrida -->
<record id="do_tcl_isr_est5_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno_5_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_est_5_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_est5_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno_5_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_est_5_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Ganadería/Carne Bovina 1%: retención practicada -->
<record id="do_tcl_isr_bovine_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_bovine_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_bovine_1_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_bovine_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_bovine_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_bovine_1_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Exportadores 2.5%: retención sufrida -->
<record id="do_tcl_isr_exporter_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_exporter_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_exporter_25_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_exporter_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_exporter_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_exporter_25_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Premios 25% -->
<record id="do_tcl_isr_prem_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_premios_25_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_prem_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_premios_25_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_prem10_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_premios_10_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_prem10_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_premios_10_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_prem15_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_premios_15_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_prem15_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_premios_15_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_trag10_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_tragamonedas_10_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_trag10_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_tragamonedas_10_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_other10_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_other_income_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_other_income_10_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_other10_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_other_income_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_other_income_10_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Exterior 27% -->
<record id="do_tcl_isr_ext27_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_ext_27_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_ext27_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_ext_27_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISR Exterior 10% -->
<record id="do_tcl_isr_ext10_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_ext_10_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_ext10_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_ext_10_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISC Bebidas alcohólicas -->
<record id="do_tcl_isc_beb_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_bebidas_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_bebidas_alc_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_beb_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_bebidas_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_bebidas_alc_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISC Tabaco -->
<record id="do_tcl_isc_tab_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_tabaco_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_tabaco_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_tab_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_tabaco_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_tabaco_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISC Telecomunicaciones -->
<record id="do_tcl_isc_tel_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_telecom_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_telecom_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_tel_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_telecom_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_telecom_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISC Combustibles Fósiles -->
<record id="do_tcl_isc_comb_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_combustibles_16_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_comb_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_combustibles_16_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isc_avtur_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_avtur_65_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_avtur_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_avtur_65_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isc_fuel_rd2_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_fuel_rd2_gallon_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_fuel_rd2_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_fuel_rd2_gallon_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_isc_ins_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_ret_insurance_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isc_insurance_100_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_isc_ins_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_ret_insurance_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isc_insurance_100_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- ISC Vehículos -->
<record id="do_tcl_isc_veh_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_vehiculos_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_vehiculos_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_veh_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_vehiculos_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_vehiculos_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- CDT INDOTEL -->
<record id="do_tcl_cdt_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_cdt_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_cdt_indotel_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_cdt_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_cdt_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_cdt_indotel_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- Propina Legal -->
<record id="do_tcl_prop_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_tip_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_propina_10_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_prop_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_tip_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_propina_10_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- Impuesto Cheques y Transferencias -->
<record id="do_tcl_chq_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_cheques_015_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_chq_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_cheques_015_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_chq020_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_020_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_cheques_020_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_chq020_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_020_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_cheques_020_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- Impuesto Mínimo a los Activos -->
<record id="do_tcl_act_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_assets_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_activos_1_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_act_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_assets_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_activos_1_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<!-- Impuesto sobre Transferencia Inmobiliaria -->
<record id="do_tcl_iti_inv_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_iti_en"/>
<field name="operator">+</field>
<field name="tax" ref="do_tax_iti_3_en"/>
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_iti_cr_en" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_iti_en"/>
<field name="operator">-</field>
<field name="tax" ref="do_tax_iti_3_en"/>
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
</data>
</tryton>
+875
View File
@@ -0,0 +1,875 @@
<?xml version='1.0' encoding='utf-8'?>
<tryton>
<data language="es_419">
<record id="do_tc_root_es_419" model="account.tax.code.template">
<field name="name">Impuestos República Dominicana</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_tc_itbis_es_419" model="account.tax.code.template">
<field name="name">ITBIS — Balance Neto (Débito Crédito)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" eval="None" />
</record>
<record id="do_tc_itbis_ventas_es_419" model="account.tax.code.template">
<field name="name">ITBIS Facturado en Ventas (Débito Fiscal)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_es_419" />
</record>
<record id="do_tc_itbis_ventas_18_es_419" model="account.tax.code.template">
<field name="name">ITBIS Facturado 18%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_ventas_es_419" />
</record>
<record id="do_tc_itbis_ventas_16_es_419" model="account.tax.code.template">
<field name="name">ITBIS Facturado 16%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_ventas_es_419" />
</record>
<record id="do_tc_itbis_compras_es_419" model="account.tax.code.template">
<field name="name">ITBIS Soportado en Compras (Crédito Fiscal)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_es_419" />
</record>
<record id="do_tc_itbis_compras_18_es_419" model="account.tax.code.template">
<field name="name">ITBIS Soportado 18%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_compras_es_419" />
</record>
<record id="do_tc_itbis_compras_16_es_419" model="account.tax.code.template">
<field name="name">ITBIS Soportado 16%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_compras_es_419" />
</record>
<record id="do_tc_itbis_retenido_es_419" model="account.tax.code.template">
<field name="name">ITBIS Retenido por Gran Contribuyente (30%)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_es_419" />
</record>
<record id="do_tc_itbis_ret_informal_es_419" model="account.tax.code.template">
<field name="name">ITBIS Retenido 100% Servicios Gravados</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_es_419" />
</record>
<record id="do_tc_itbis_ret_informal_75_es_419" model="account.tax.code.template">
<field name="name">ITBIS Retenido 75% Proveedor Informal (B11/E41)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_es_419" />
</record>
<record id="do_tc_itbis_ret_rst_es_419" model="account.tax.code.template">
<field name="name">ITBIS Retenido a Proveedores RST</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_es_419" />
</record>
<record id="do_tc_itbis_ret_insurance_es_419" model="account.tax.code.template">
<field name="name">ITBIS Retenido en Servicios de Seguro</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_es_419" />
</record>
<record id="do_tc_itbis_ret_sectorial_es_419" model="account.tax.code.template">
<field name="name">ITBIS Retenido por Terceros Sectoriales</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_es_419" />
</record>
<record id="do_tc_itbis_tasa_cero_es_419" model="account.tax.code.template">
<field name="name">ITBIS Tasa Cero — Base Imponible (Exportaciones / Zona Franca)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_itbis_es_419" />
</record>
<record id="do_tc_isr_es_419" model="account.tax.code.template">
<field name="name">ISR - Retenciones</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" eval="None" />
</record>
<record id="do_tc_isr_honorarios_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Honorarios/Servicios 5% (Personas Jurídicas)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_servicios_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Honorarios 10% (Personas Físicas)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_dividendos_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Dividendos 10% (Art. 308 CT)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_intereses_pf_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Intereses 10% (Personas Físicas, NG 07-19)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_intereses_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Intereses 1% (Personas Jurídicas, NG 07-19)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_alquileres_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Alquileres 10%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_gobierno_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Estado/Sector Público 1.5%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_gobierno_5_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Estado/Sector Público 5%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_bovine_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Ganadería/Carne Bovina 1%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_exporter_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Exportadores Mercado Local 2.5%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_premios_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Premios y Loterías 25% (Art. 321 CT)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_premios_tramos_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Premios 10% / 15% y Tragamonedas</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_other_income_es_419" model="account.tax.code.template">
<field name="name">Retención ISR Otras Rentas 10%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isr_ext_es_419" model="account.tax.code.template">
<field name="name">ISR Pagos al Exterior (Art. 305-306 CT)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isr_es_419" />
</record>
<record id="do_tc_isc_es_419" model="account.tax.code.template">
<field name="name">ISC - Impuesto Selectivo al Consumo</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" eval="None" />
</record>
<record id="do_tc_isc_bebidas_es_419" model="account.tax.code.template">
<field name="name">ISC Bebidas Alcohólicas 10%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isc_es_419" />
</record>
<record id="do_tc_isc_tabaco_es_419" model="account.tax.code.template">
<field name="name">ISC Tabaco y Cigarrillos 20%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isc_es_419" />
</record>
<record id="do_tc_isc_telecom_es_419" model="account.tax.code.template">
<field name="name">ISC Servicios de Telecomunicaciones 10%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isc_es_419" />
</record>
<record id="do_tc_isc_combustibles_es_419" model="account.tax.code.template">
<field name="name">ISC Combustibles Fósiles 16%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isc_es_419" />
</record>
<record id="do_tc_isc_ret_insurance_es_419" model="account.tax.code.template">
<field name="name">Retención ISC Servicios de Seguro</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isc_es_419" />
</record>
<record id="do_tc_isc_vehiculos_es_419" model="account.tax.code.template">
<field name="name">ISC Vehículos de Motor (ad valorem)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_isc_es_419" />
</record>
<record id="do_tc_cdt_es_419" model="account.tax.code.template">
<field name="name">CDT INDOTEL 2% (Ley 153-98)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" eval="None" />
</record>
<record id="do_tc_others_es_419" model="account.tax.code.template">
<field name="name">Otros Impuestos y Contribuciones</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" eval="None" />
</record>
<record id="do_tc_others_tip_es_419" model="account.tax.code.template">
<field name="name">Propina Legal 10% (Restaurantes/Hoteles)</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_others_es_419" />
</record>
<record id="do_tc_others_checks_es_419" model="account.tax.code.template">
<field name="name">Impuesto Cheques y Transferencias 0.15%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_others_es_419" />
</record>
<record id="do_tc_others_checks_020_es_419" model="account.tax.code.template">
<field name="name">Impuesto Cheques y Transferencias 0.20%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_others_es_419" />
</record>
<record id="do_tc_others_assets_es_419" model="account.tax.code.template">
<field name="name">Impuesto Mínimo a los Activos 1%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_others_es_419" />
</record>
<record id="do_tc_others_iti_es_419" model="account.tax.code.template">
<field name="name">Transferencia Inmobiliaria ITI 3%</field>
<field name="account" ref="do_account_root_es_419" />
<field name="parent" ref="do_tc_others_es_419" />
</record>
<record id="do_tcl_itbis18v_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_18_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_18_venta_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis18v_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_18_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_18_venta_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_itbis16v_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_16_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_16_venta_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis16v_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ventas_16_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_16_venta_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_itbis18c_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_18_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_18_compra_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis18c_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_18_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_18_compra_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_itbis16c_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_16_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_itbis_16_compra_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis16c_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_compras_16_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_16_compra_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_retenido_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_30_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_retenido_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_30_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_inf_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_100_inf_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_inf_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_100_inf_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_inf75_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_75_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_75_inf_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_inf75_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_75_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_75_inf_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_inf75_16_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_75_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_75_inf_16_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_inf75_16_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_75_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_75_inf_16_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_goods18_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_100_goods_18_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_goods18_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_100_goods_18_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_goods16_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_100_goods_16_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_goods16_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_informal_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_100_goods_16_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_rst18_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_rst_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_rst_18_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_rst18_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_rst_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_rst_18_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_rst16_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_rst_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_rst_16_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_rst16_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_rst_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_rst_16_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_ins_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_insurance_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_itbis_insurance_100_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_ins_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_insurance_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_insurance_100_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_itbis_air_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_sectorial_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_airline_100_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_soc_suf_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_sectorial_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_society_30_suf_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_hot_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_sectorial_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_hotel_100_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_itbis_state_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_ret_sectorial_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_itbis_state_100_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_itbis_tc_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_itbis_tasa_cero_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_itbis_tasa_cero_es_419" />
<field name="amount">base</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_hon_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_honorarios_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_hon_5_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_hon_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_honorarios_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_hon_5_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_serv_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_servicios_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_serv_10_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_serv_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_servicios_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_serv_10_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_div_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_dividendos_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_div_10_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_div_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_dividendos_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_div_10_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_int_pf_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_pf_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_int_10_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_int_pf_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_pf_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_int_10_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_int_pj_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_int_pj_1_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_int_pj_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_intereses_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_int_pj_1_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_alq_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_alquileres_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_alq_10_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_alq_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_alquileres_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_alq_10_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_est_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_est_15_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_est_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_est_15_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_est5_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno_5_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_est_5_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_est5_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_gobierno_5_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_est_5_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_bovine_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_bovine_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_bovine_1_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_bovine_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_bovine_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_bovine_1_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_exporter_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_exporter_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_exporter_25_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_exporter_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_exporter_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_exporter_25_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_prem_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_premios_25_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_prem_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_premios_25_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_prem10_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_premios_10_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_prem10_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_premios_10_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_prem15_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_premios_15_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_prem15_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_premios_15_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_trag10_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_tragamonedas_10_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_trag10_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_premios_tramos_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_tragamonedas_10_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_other10_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_other_income_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_other_income_10_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_other10_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_other_income_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_other_income_10_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_ext27_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_ext_27_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_ext27_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_ext_27_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isr_ext10_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isr_ext_10_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isr_ext10_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isr_ext_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isr_ext_10_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isc_beb_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_bebidas_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_bebidas_alc_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_beb_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_bebidas_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_bebidas_alc_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isc_tab_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_tabaco_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_tabaco_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_tab_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_tabaco_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_tabaco_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isc_tel_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_telecom_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_telecom_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_tel_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_telecom_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_telecom_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isc_comb_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_combustibles_16_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_comb_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_combustibles_16_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isc_avtur_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_avtur_65_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_avtur_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_avtur_65_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isc_fuel_rd2_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_fuel_rd2_gallon_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_fuel_rd2_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_combustibles_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_fuel_rd2_gallon_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_ret_isc_ins_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_ret_insurance_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_ret_isc_insurance_100_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_ret_isc_ins_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_ret_insurance_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_ret_isc_insurance_100_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_isc_veh_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_vehiculos_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_isc_vehiculos_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_isc_veh_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_isc_vehiculos_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_isc_vehiculos_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_cdt_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_cdt_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_cdt_indotel_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_cdt_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_cdt_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_cdt_indotel_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_prop_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_tip_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_propina_10_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_prop_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_tip_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_propina_10_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_chq_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_cheques_015_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_chq_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_cheques_015_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_chq020_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_020_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_cheques_020_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_chq020_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_checks_020_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_cheques_020_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_act_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_assets_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_activos_1_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_act_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_assets_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_activos_1_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
<record id="do_tcl_iti_inv_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_iti_es_419" />
<field name="operator">+</field>
<field name="tax" ref="do_tax_iti_3_es_419" />
<field name="amount">tax</field>
<field name="type">invoice</field>
</record>
<record id="do_tcl_iti_cr_es_419" model="account.tax.code.line.template">
<field name="code" ref="do_tc_others_iti_es_419" />
<field name="operator">-</field>
<field name="tax" ref="do_tax_iti_3_es_419" />
<field name="amount">tax</field>
<field name="type">credit</field>
</record>
</data>
</tryton>
-485
View File
@@ -1,485 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- account_do: Grupos e Impuestos - República Dominicana -->
<tryton>
<data>
<!-- ===== Grupos de impuestos ===== -->
<record id="do_tax_group_itbis" model="account.tax.group">
<field name="name">ITBIS</field>
<field name="code">ITBIS</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_isr" model="account.tax.group">
<field name="name">ISR - Retenciones</field>
<field name="code">ISR</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_exempt" model="account.tax.group">
<field name="name">Exento / Tasa Cero</field>
<field name="code">EX0</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_isc" model="account.tax.group">
<field name="name">ISC - Selectivo al Consumo</field>
<field name="code">ISC</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_isr_ext" model="account.tax.group">
<field name="name">ISR - Pagos al Exterior</field>
<field name="code">ISREXT</field>
<field name="kind">purchase</field>
</record>
<record id="do_tax_group_cdt" model="account.tax.group">
<field name="name">CDT - Telecomunicaciones INDOTEL</field>
<field name="code">CDT</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_others" model="account.tax.group">
<field name="name">Otros Impuestos y Contribuciones</field>
<field name="code">OTROS</field>
<field name="kind">both</field>
</record>
</data>
<data>
<!-- ===== Impuestos ===== -->
<!-- invoice_account / credit_note_account → cuentas de account_chart_do.xml -->
<!-- description: texto corto visible en líneas de factura -->
<!-- legal_notice: cita legal (~72 caracteres) — ver IMPUESTOS_RD.md -->
<!-- ══════ ITBIS — Arts. 335-392 CT Ley 11-92; Decreto 293-11 ══════ -->
<record id="do_tax_itbis_18_venta" model="account.tax.template">
<field name="name">ITBIS 18% — Ventas (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS 18% Ventas</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('18')/100"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210201"/>
<field name="credit_note_account" ref="do_account_210201"/>
<field name="legal_notice">Arts. 335-392 CT Ley 11-92; Ley 253-12 Art. 10; Decreto 293-11</field>
<field name="tax_kind">itbis</field>
</record>
<record id="do_tax_itbis_16_venta" model="account.tax.template">
<field name="name">ITBIS 16% — Ventas (Histórico, No Vigente)</field>
<field name="description">ITBIS 16% Ventas</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('16')/100"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210201"/>
<field name="credit_note_account" ref="do_account_210201"/>
<field name="legal_notice">Art. 345 CT Ley 11-92 mod. Ley 253-12 — tasa histórica no vigente</field>
<field name="tax_kind">itbis</field>
</record>
<record id="do_tax_itbis_18_compra" model="account.tax.template">
<field name="name">ITBIS 18% — Compras / Crédito Fiscal (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS 18% Compras</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('18')/100"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_110401"/>
<field name="credit_note_account" ref="do_account_110401"/>
<field name="legal_notice">Arts. 349-357 CT Ley 11-92 — Crédito fiscal ITBIS; Decreto 293-11</field>
<field name="tax_kind">itbis</field>
</record>
<record id="do_tax_itbis_16_compra" model="account.tax.template">
<field name="name">ITBIS 16% — Compras / Crédito Fiscal (Histórico, No Vigente)</field>
<field name="description">ITBIS 16% Compras</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('16')/100"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_110401"/>
<field name="credit_note_account" ref="do_account_110401"/>
<field name="legal_notice">Art. 345 CT Ley 11-92 — Crédito fiscal histórico, tasa no vigente</field>
<field name="tax_kind">itbis</field>
</record>
<record id="do_tax_itbis_8_venta" model="account.tax.template">
<field name="name">ITBIS 8% — Ventas Tasa Reducida (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS 8% Ventas</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('8')/100"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210201"/>
<field name="credit_note_account" ref="do_account_210201"/>
<field name="legal_notice">Art. 345 CT; Ley 253-12; Decreto 293-11 — Tasa reducida 8%</field>
<field name="tax_kind">itbis</field>
</record>
<record id="do_tax_itbis_8_compra" model="account.tax.template">
<field name="name">ITBIS 8% — Compras Tasa Reducida / Crédito Fiscal (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS 8% Compras</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('8')/100"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_110401"/>
<field name="credit_note_account" ref="do_account_110401"/>
<field name="legal_notice">Arts. 349-357 CT — Crédito fiscal tasa reducida 8%; Decreto 293-11</field>
<field name="tax_kind">itbis</field>
</record>
<record id="do_tax_itbis_exento" model="account.tax.template">
<field name="name">ITBIS Exento — Bienes y Servicios Exentos (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS Exento</field>
<field name="type">none</field>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="legal_notice">Arts. 343-344 CT Ley 11-92; Ley 288-04; NG 12-22 DGII</field>
<field name="tax_kind">itbis</field>
</record>
<record id="do_tax_itbis_tasa_cero" model="account.tax.template">
<field name="name">ITBIS Tasa Cero — Exportaciones y Zona Franca (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS 0% Exportaciones / Zona Franca</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('0')"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210201"/>
<field name="credit_note_account" ref="do_account_210201"/>
<field name="legal_notice">Art. 342 CT; Ley 557-05; Ley 8-90 Zonas Francas; NG 05-19 DGII</field>
<field name="tax_kind">itbis</field>
</record>
<!-- Retención ITBIS 30% Gran Contribuyente: tasa negativa (-5.4%) = 30% × 18% sobre la base -->
<record id="do_tax_ret_itbis_30" model="account.tax.template">
<field name="name">Retención ITBIS 30% — Agente Gran Contribuyente (Personas Jurídicas y Físicas)</field>
<field name="description">Retención ITBIS Gran Contribuyente 30%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-5.4')/100"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210202"/>
<field name="credit_note_account" ref="do_account_210202"/>
<field name="legal_notice">NG 01-11 DGII 2011; Arts. 309 y 337 CT — Grandes Contribuyentes</field>
<field name="tax_kind">itbis_withholding</field>
</record>
<!-- Retención ITBIS 2% adquirencias (NG 06-23): la norma aplica el 2% sobre el monto TOTAL
de la transacción (base + ITBIS). En facturas se registra sobre la base como aproximación;
el ajuste exacto se realiza al contabilizar el cobro bancario. -->
<record id="do_tax_ret_itbis_2_adq" model="account.tax.template">
<field name="name">Retención ITBIS 2% — Adquirencias Tarjetas de Crédito y Débito (NG 06-23)</field>
<field name="description">Retención ITBIS Adquirencias 2%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('2')/100"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_110406"/>
<field name="credit_note_account" ref="do_account_110406"/>
<field name="legal_notice">NG 06-23 DGII 2023; Art. 337 CT — Adquirencias tarjetas débito/crédito</field>
<field name="tax_kind">itbis_withholding_acquirer</field>
</record>
<!-- ══════ ISR RETENCIONES — Arts. 307-309 CT Ley 11-92; Decreto 95-12 ══════ -->
<record id="do_tax_ret_isr_hon_5" model="account.tax.template">
<field name="name">Retención ISR 5% — Honorarios y Servicios a Personas Jurídicas</field>
<field name="description">Retención ISR Persona Jurídica 5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('5')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210203"/>
<field name="credit_note_account" ref="do_account_210203"/>
<field name="legal_notice">Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas jurídicas</field>
<field name="tax_kind">isr_withholding</field>
</record>
<record id="do_tax_ret_isr_serv_10" model="account.tax.template">
<field name="name">Retención ISR 10% — Honorarios y Servicios a Personas Físicas</field>
<field name="description">Retención ISR Persona Física 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210203"/>
<field name="credit_note_account" ref="do_account_210203"/>
<field name="legal_notice">Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas físicas</field>
<field name="tax_kind">isr_withholding</field>
</record>
<record id="do_tax_ret_isr_div_10" model="account.tax.template">
<field name="name">Retención ISR 10% — Dividendos y Utilidades Distribuidas (Personas Físicas y Jurídicas)</field>
<field name="description">Retención ISR Dividendos 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210206"/>
<field name="credit_note_account" ref="do_account_210206"/>
<field name="legal_notice">Art. 308 CT Ley 11-92; Decreto 95-12; Formulario IR-18</field>
<field name="tax_kind">isr_withholding</field>
</record>
<record id="do_tax_ret_isr_int_10" model="account.tax.template">
<field name="name">Retención ISR 10% — Intereses a Personas Físicas (NG 07-19)</field>
<field name="description">Retención ISR Intereses Persona Física 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210203"/>
<field name="credit_note_account" ref="do_account_210203"/>
<field name="legal_notice">NG 07-19 DGII; Art. 306 bis CT — Intereses personas físicas, definitivo</field>
<field name="tax_kind">isr_withholding</field>
</record>
<record id="do_tax_ret_isr_alq_10" model="account.tax.template">
<field name="name">Retención ISR 10% — Alquileres y Arrendamientos (Personas Físicas y Jurídicas)</field>
<field name="description">Retención ISR Alquileres 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210203"/>
<field name="credit_note_account" ref="do_account_210203"/>
<field name="legal_notice">Art. 309 CT; NG 08-11 DGII — Alquileres personas físicas y jurídicas</field>
<field name="tax_kind">isr_withholding</field>
</record>
<record id="do_tax_ret_isr_est_15" model="account.tax.template">
<field name="name">Retención ISR 1.5% — Pagos del Estado / Sector Público (Personas Físicas y Jurídicas)</field>
<field name="description">Retención ISR Estado 1.5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('1.5')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210203"/>
<field name="credit_note_account" ref="do_account_210203"/>
<field name="legal_notice">Art. 309 CT; Decreto 95-12; Formulario 623 DGII — Sector público</field>
<field name="tax_kind">isr_withholding</field>
</record>
<record id="do_tax_ret_isr_int_pj_1" model="account.tax.template">
<field name="name">Retención ISR 1% — Intereses a Personas Jurídicas (NG 07-19)</field>
<field name="description">Retención ISR Intereses Persona Jurídica 1%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('1')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210203"/>
<field name="credit_note_account" ref="do_account_210203"/>
<field name="legal_notice">NG 07-19 DGII 2019; Art. 306 bis CT — Intereses personas jurídicas</field>
<field name="tax_kind">isr_withholding</field>
</record>
<record id="do_tax_ret_isr_premios_25" model="account.tax.template">
<field name="name">Retención ISR 25% — Premios de Lotería, Sorteos y Rifas (Personas Físicas y Jurídicas)</field>
<field name="description">Retención ISR Premios 25%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('25')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210203"/>
<field name="credit_note_account" ref="do_account_210203"/>
<field name="legal_notice">Art. 321 CT Ley 11-92; Decreto 95-12 — Premios y loterías, definitivo</field>
<field name="tax_kind">isr_withholding</field>
</record>
<!-- ══════ ISR PAGOS AL EXTERIOR — Arts. 305-306 CT Ley 11-92 ══════ -->
<record id="do_tax_ret_isr_ext_27" model="account.tax.template">
<field name="name">Retención ISR 27% — Pagos al Exterior: Servicios y Regalías (No Residentes)</field>
<field name="description">Retención ISR Exterior 27%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('27')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210207"/>
<field name="credit_note_account" ref="do_account_210207"/>
<field name="legal_notice">Art. 305 CT Ley 11-92 — Servicios y regalías a no residentes 27%</field>
<field name="tax_kind">isr_withholding</field>
</record>
<record id="do_tax_ret_isr_ext_10" model="account.tax.template">
<field name="name">Retención ISR 10% — Pagos al Exterior: Intereses y Asistencia Técnica (No Residentes)</field>
<field name="description">Retención ISR Exterior 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210207"/>
<field name="credit_note_account" ref="do_account_210207"/>
<field name="legal_notice">Arts. 305-306 CT — Intereses y asistencia técnica a no residentes</field>
<field name="tax_kind">isr_withholding</field>
</record>
<!-- ══════ ITBIS ADICIONAL — Retención 100% Proveedor Informal ══════ -->
<!-- Cuando se compra a proveedor sin RNC (NCF B11/E41), el comprador retiene
el 100% del ITBIS que debería haberse cobrado y lo paga directamente a DGII.
No genera crédito fiscal para el comprador — el ITBIS es costo adicional. -->
<record id="do_tax_ret_itbis_100_inf" model="account.tax.template">
<field name="name">Retención ITBIS 100% — Compras a Proveedor Informal (B11 / e-CF E41)</field>
<field name="description">Retención ITBIS Proveedor Informal 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('18')/100"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210202"/>
<field name="credit_note_account" ref="do_account_210202"/>
<field name="legal_notice">Art. 337 CT; NG 08-10 DGII — Retención 100% ITBIS comprador B11/E41</field>
<field name="tax_kind">itbis_withholding</field>
</record>
<!-- ══════ ISC — IMPUESTO SELECTIVO AL CONSUMO — Arts. 393-441 CT ══════ -->
<record id="do_tax_isc_bebidas_alc" model="account.tax.template">
<field name="name">ISC 20% — Bebidas Alcohólicas (Vinos, Ron, Whisky y Destilados)</field>
<field name="description">ISC Bebidas Alcohólicas 20%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('20')/100"/>
<field name="group" ref="do_tax_group_isc"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210208"/>
<field name="credit_note_account" ref="do_account_210208"/>
<field name="legal_notice">Arts. 393-441 CT Ley 11-92 — ISC bebidas alcohólicas, ad valorem 20%</field>
<field name="tax_kind">isc</field>
</record>
<record id="do_tax_isc_tabaco" model="account.tax.template">
<field name="name">ISC 20% — Tabaco, Cigarrillos y Derivados</field>
<field name="description">ISC Tabaco y Cigarrillos 20%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('20')/100"/>
<field name="group" ref="do_tax_group_isc"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210208"/>
<field name="credit_note_account" ref="do_account_210208"/>
<field name="legal_notice">Arts. 393-441 CT Ley 11-92 — ISC tabaco y cigarrillos, ad valorem 20%</field>
<field name="tax_kind">isc</field>
</record>
<record id="do_tax_isc_telecom" model="account.tax.template">
<field name="name">ISC 10% — Servicios de Telecomunicaciones</field>
<field name="description">ISC Telecomunicaciones 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100"/>
<field name="group" ref="do_tax_group_isc"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210208"/>
<field name="credit_note_account" ref="do_account_210208"/>
<field name="legal_notice">Arts. 393-441 CT; Ley 253-12 — ISC servicios telecomunicaciones 10%</field>
<field name="tax_kind">isc</field>
</record>
<!-- Tasa referencial 17% para vehículos hasta 2,000 cc — varía por cilindrada,
año de fabricación y valor CIF. Verificar tabla vigente DGII/DGA al aplicar. -->
<record id="do_tax_isc_vehiculos" model="account.tax.template">
<field name="name">ISC 17% — Vehículos de Motor (Referencial, hasta 2,000 cc)</field>
<field name="description">ISC Vehículos 17%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('17')/100"/>
<field name="group" ref="do_tax_group_isc"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210208"/>
<field name="credit_note_account" ref="do_account_210208"/>
<field name="legal_notice">Arts. 393-441 CT — ISC vehículos ad valorem (tasa varía por cilindrada/CIF)</field>
<field name="tax_kind">isc</field>
</record>
<!-- ══════ CDT — CONTRIBUCIÓN INDOTEL (LEY 153-98) ══════ -->
<!-- CDT: Contribución para el Desarrollo de las Telecomunicaciones.
Lo recaudan las empresas de telecom de sus clientes y lo remiten a INDOTEL.
Aparece como línea separada en facturas de telefonía e internet. -->
<record id="do_tax_cdt_indotel" model="account.tax.template">
<field name="name">CDT 2% — Contribución para el Desarrollo de las Telecomunicaciones (INDOTEL)</field>
<field name="description">CDT INDOTEL 2%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('2')/100"/>
<field name="group" ref="do_tax_group_cdt"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210209"/>
<field name="credit_note_account" ref="do_account_210209"/>
<field name="legal_notice">Art. 26 Ley 153-98 Telecomunicaciones — CDT INDOTEL 2% ingresos brutos</field>
<field name="tax_kind">cdt</field>
</record>
<!-- ══════ OTROS IMPUESTOS Y CONTRIBUCIONES ══════ -->
<!-- Propina legal: cargo de servicio obligatorio del 10% en restaurantes, bares
y hoteles. Distribución: 85% empleados de servicio, 15% establecimiento.
ITBIS aplica sobre la base SIN propina (la propina no es ingreso gravado). -->
<record id="do_tax_propina_10" model="account.tax.template">
<field name="name">Propina Legal 10% — Restaurantes, Bares y Hoteles (Personas Físicas y Jurídicas)</field>
<field name="description">Propina Legal 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100"/>
<field name="group" ref="do_tax_group_others"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210205"/>
<field name="credit_note_account" ref="do_account_210205"/>
<field name="legal_notice">Ley 4-11 y Resolución Ministerio Trabajo — Propina obligatoria 10%</field>
<field name="tax_kind">tip</field>
</record>
<!-- 0.15% sobre valor de cheques y débitos bancarios electrónicos.
Lo recauda el banco automáticamente; es un costo financiero para la empresa. -->
<record id="do_tax_cheques_015" model="account.tax.template">
<field name="name">Impuesto sobre Cheques y Transferencias Bancarias 0.15% (Personas Físicas y Jurídicas)</field>
<field name="description">Impuesto Cheques y Transferencias 0.15%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('0.15')/100"/>
<field name="group" ref="do_tax_group_others"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210205"/>
<field name="credit_note_account" ref="do_account_210205"/>
<field name="legal_notice">Art. 382-D CT Ley 11-92 mod. Ley 288-04 — 1.5 por mil cheques/débitos</field>
<field name="tax_kind">others</field>
</record>
<!-- 0.20% sobre valor de cheques y transferencias bancarias.
Se mantiene separado del 0.15% histórico para conservar trazabilidad. -->
<record id="do_tax_cheques_020" model="account.tax.template">
<field name="name">Impuesto sobre Cheques y Transferencias Bancarias 0.20% (Personas Físicas y Jurídicas)</field>
<field name="description">Impuesto Cheques y Transferencias 0.20%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('0.20')/100"/>
<field name="group" ref="do_tax_group_others"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210205"/>
<field name="credit_note_account" ref="do_account_210205"/>
<field name="legal_notice">Impuesto sobre cheques y transferencias bancarias — 2.0 por mil</field>
<field name="tax_kind">others</field>
</record>
<!-- Impuesto mínimo anual: si ISR calculado < 1% activos totales, se paga
la diferencia. Se declara en el IR-2 anual. No aplica en facturas. -->
<record id="do_tax_activos_1" model="account.tax.template">
<field name="name">Impuesto Mínimo a los Activos 1% (Personas Jurídicas)</field>
<field name="description">Impuesto a los Activos 1%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('1')/100"/>
<field name="group" ref="do_tax_group_others"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210205"/>
<field name="credit_note_account" ref="do_account_210205"/>
<field name="legal_notice">Art. 296-A CT Ley 11-92 — Mínimo ISR 1% activos totales, anual (IR-2)</field>
<field name="tax_kind">others</field>
</record>
<!-- ITI: aplica al comprador en transferencias de bienes inmuebles.
Base: valor de mercado o valor catastral, el mayor de los dos. -->
<record id="do_tax_iti_3" model="account.tax.template">
<field name="name">Impuesto sobre Transferencia Inmobiliaria 3% (Personas Físicas y Jurídicas)</field>
<field name="description">Transferencia Inmobiliaria ITI 3%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('3')/100"/>
<field name="group" ref="do_tax_group_others"/>
<field name="account" ref="do_account_root"/>
<field name="invoice_account" ref="do_account_210210"/>
<field name="credit_note_account" ref="do_account_210210"/>
<field name="legal_notice">Art. 11 Ley 288-04; Arts. 27 ss. Ley 18-88 — ITI 3% valor inmueble</field>
<field name="tax_kind">others</field>
</record>
</data>
</tryton>
+623
View File
@@ -0,0 +1,623 @@
<?xml version='1.0' encoding='utf-8'?>
<tryton>
<data language="en">
<!-- ===== Grupos de impuestos ===== -->
<record id="do_tax_group_itbis_en" model="account.tax.group">
<field name="name">ITBIS</field>
<field name="code">ITBIS</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_isr_en" model="account.tax.group">
<field name="name">ISR: Withholdings</field>
<field name="code">ISR</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_exempt_en" model="account.tax.group">
<field name="name">Exempt / Zero Rate</field>
<field name="code">EX0</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_isc_en" model="account.tax.group">
<field name="name">ISC - Selective Consumer</field>
<field name="code">ISC</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_isr_ext_en" model="account.tax.group">
<field name="name">ISR - Foreign Payments</field>
<field name="code">ISREXT</field>
<field name="kind">purchase</field>
</record>
<record id="do_tax_group_cdt_en" model="account.tax.group">
<field name="name">CDT - INDOTEL Telecommunications</field>
<field name="code">CDT</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_others_en" model="account.tax.group">
<field name="name">Other Taxes and Contributions</field>
<field name="code">OTROS</field>
<field name="kind">both</field>
</record>
</data>
<data language="en">
<!-- ===== Impuestos ===== -->
<!-- invoice_account / credit_note_account → accounts from account_chart_do_en.xml -->
<!-- description: texto corto visible en líneas de factura -->
<!-- legal_notice: cita legal (~72 caracteres) — ver IMPUESTOS_RD.md -->
<!-- ══════ ITBIS — Arts. 335-392 CT Ley 11-92; Decreto 293-11 ══════ -->
<record id="do_tax_itbis_18_venta_en" model="account.tax.template">
<field name="name">ITBIS 18% — Sales (Legal and Natural Persons)</field>
<field name="description">ITBIS 18% Sales</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('18')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020101_en" />
<field name="credit_note_account" ref="do_account_21020101_en" />
<field name="legal_notice">Arts. 335-392 CT Ley 11-92; Ley 253-12 Art. 10; Decreto 293-11</field>
</record>
<record id="do_tax_itbis_16_venta_en" model="account.tax.template">
<field name="name">ITBIS 16% — Special Rate Sales (Legal and Natural Persons)</field>
<field name="description">ITBIS 16% Sales</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('16')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020102_en" />
<field name="credit_note_account" ref="do_account_21020102_en" />
<field name="legal_notice">Art. 345 CT Ley 11-92 mod. Ley 253-12 — tasa especial 16%</field>
</record>
<record id="do_tax_itbis_18_compra_en" model="account.tax.template">
<field name="name">ITBIS 18% — Purchases / Tax Credit (Legal and Natural Persons)</field>
<field name="description">ITBIS 18% Purchases</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('18')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_11040101_en" />
<field name="credit_note_account" ref="do_account_11040101_en" />
<field name="legal_notice">Arts. 349-357 CT Ley 11-92 — Crédito fiscal ITBIS; Decreto 293-11</field>
</record>
<record id="do_tax_itbis_16_compra_en" model="account.tax.template">
<field name="name">ITBIS 16% — Purchases / Tax Credit Special Rate</field>
<field name="description">ITBIS 16% Purchases</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('16')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_11040102_en" />
<field name="credit_note_account" ref="do_account_11040102_en" />
<field name="legal_notice">Art. 345 CT Ley 11-92 — Crédito fiscal tasa especial 16%</field>
</record>
<record id="do_tax_itbis_exento_en" model="account.tax.template">
<field name="name">Exempt ITBIS — Exempt Goods and Services (Legal and Natural Persons)</field>
<field name="description">Exempt ITBIS</field>
<field name="type">none</field>
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="legal_notice">Arts. 343-344 CT Ley 11-92; Ley 288-04; NG 12-22 DGII</field>
</record>
<record id="do_tax_itbis_tasa_cero_en" model="account.tax.template">
<field name="name">ITBIS Zero Rate — Exports and Free Zone (Legal and Natural Persons)</field>
<field name="description">ITBIS 0% Exports / Free Trade Zone</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('0')" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020105_en" />
<field name="credit_note_account" ref="do_account_21020105_en" />
<field name="legal_notice">Art. 342 CT; Ley 557-05; Ley 8-90 Zonas Francas; NG 05-19 DGII</field>
</record>
<!-- Retención ITBIS 30% Gran Contribuyente: tasa negativa (-5.4%) = 30% × 18% sobre la base -->
<record id="do_tax_ret_itbis_30_en" model="account.tax.template">
<field name="name">ITBIS Withholding 30% — Large Taxpayer Agent (Legal and Natural Persons)</field>
<field name="description">ITBIS Withholding Large Taxpayer 30%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-5.4')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021101_en" />
<field name="credit_note_account" ref="do_account_21021101_en" />
<field name="legal_notice">NG 01-11 DGII 2011; Arts. 309 y 337 CT — Grandes Contribuyentes</field>
</record>
<!-- ══════ ISR RETENCIONES — Arts. 307-309 CT Ley 11-92; Decreto 95-12 ══════ -->
<record id="do_tax_ret_isr_hon_5_en" model="account.tax.template">
<field name="name">ISR Withholding 5% — Fees and Services to Legal Entities</field>
<field name="description">ISR Withholding Legal Entity 5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-5')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021301_en" />
<field name="credit_note_account" ref="do_account_21021301_en" />
<field name="legal_notice">Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas jurídicas</field>
</record>
<record id="do_tax_ret_isr_serv_10_en" model="account.tax.template">
<field name="name">ISR Withholding 10% — Fees and Services to Individuals</field>
<field name="description">ISR Withholding Individual 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021302_en" />
<field name="credit_note_account" ref="do_account_21021302_en" />
<field name="legal_notice">Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas físicas</field>
</record>
<record id="do_tax_ret_isr_div_10_en" model="account.tax.template">
<field name="name">ISR Withholding 10% — Dividends and Distributed Profits (Individuals and Legal Entities)</field>
<field name="description">ISR Withholding Dividends 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020601_en" />
<field name="credit_note_account" ref="do_account_21020601_en" />
<field name="legal_notice">Art. 308 CT Ley 11-92; Decreto 95-12; Formulario IR-18</field>
</record>
<record id="do_tax_ret_isr_int_10_en" model="account.tax.template">
<field name="name">ISR Withholding 10% — Interest to Individuals (NG 07-19)</field>
<field name="description">ISR Withholding Interest Individual 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021501_en" />
<field name="credit_note_account" ref="do_account_21021501_en" />
<field name="legal_notice">NG 07-19 DGII; Art. 306 bis CT — Intereses personas físicas, definitivo</field>
</record>
<record id="do_tax_ret_isr_alq_10_en" model="account.tax.template">
<field name="name">ISR Withholding 10% — Rentals and Leases (Natural and Legal Persons)</field>
<field name="description">ISR Rental Withholding 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021401_en" />
<field name="credit_note_account" ref="do_account_21021401_en" />
<field name="legal_notice">Art. 309 CT; NG 08-11 DGII — Alquileres personas físicas y jurídicas</field>
</record>
<record id="do_tax_ret_isr_est_15_en" model="account.tax.template">
<field name="name">ISR Withholding 1.5% — State/Public Sector Payments (Natural and Legal Persons)</field>
<field name="description">ISR Withholding State 1.5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-1.5')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_11040801_en" />
<field name="credit_note_account" ref="do_account_11040801_en" />
<field name="legal_notice">Art. 309 CT; Decreto 95-12; Formulario 623 DGII — Sector público</field>
</record>
<record id="do_tax_ret_isr_est_5_en" model="account.tax.template">
<field name="name">ISR Withholding 5% — State/Public Sector Payments (Natural and Legal Persons)</field>
<field name="description">State ISR Withholding 5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-5')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_11040802_en" />
<field name="credit_note_account" ref="do_account_11040802_en" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — retención pagos del Estado 5%</field>
</record>
<record id="do_tax_ret_isr_bovine_1_en" model="account.tax.template">
<field name="name">ISR Withholding 1% — Bovine Purchases from Unregistered Individuals</field>
<field name="description">ISR Withholding Informal Bovine Purchases 1%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-1')/100" />
<field name="start_date" eval="datetime.date(2025, 6, 20)" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021801_en" />
<field name="credit_note_account" ref="do_account_21021801_en" />
<field name="legal_notice">NG 04-2025 arts. 2, 4, 5 y 11 — 1% del monto facturado</field>
</record>
<record id="do_tax_ret_isr_exporter_25_en" model="account.tax.template">
<field name="name">ISR Withholding 2.5% — Exporters in Sales to the Local Market</field>
<field name="description">ISR Withholding Exporters 2.5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-2.5')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_11040803_en" />
<field name="credit_note_account" ref="do_account_11040803_en" />
<field name="legal_notice">NG 15-07 DGII — retención 2.5% ventas locales de exportadores</field>
</record>
<record id="do_tax_ret_isr_int_pj_1_en" model="account.tax.template">
<field name="name">ISR Withholding 1% — Interest to Legal Entities (NG 07-19)</field>
<field name="description">ISR Withholding Interest Legal Entity 1%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-1')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021502_en" />
<field name="credit_note_account" ref="do_account_21021502_en" />
<field name="legal_notice">NG 07-19 DGII 2019; Art. 306 bis CT — Intereses personas jurídicas</field>
</record>
<record id="do_tax_ret_isr_premios_25_en" model="account.tax.template">
<field name="name">ISR Withholding 25% — Lottery Prizes, Draws and Raffles (Natural and Legal Persons)</field>
<field name="description">ISR Withholding on Prizes 25%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-25')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021701_en" />
<field name="credit_note_account" ref="do_account_21021701_en" />
<field name="legal_notice">Art. 321 CT Ley 11-92; Decreto 95-12 — Premios y loterías, definitivo</field>
</record>
<record id="do_tax_ret_isr_premios_10_en" model="account.tax.template">
<field name="name">ISR Withholding 10% — Awards RD$100,001 to RD$500,000</field>
<field name="description">ISR Withholding on Prizes 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021702_en" />
<field name="credit_note_account" ref="do_account_21021702_en" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — premios RD$100,001 a RD$500,000 10%</field>
</record>
<record id="do_tax_ret_isr_premios_15_en" model="account.tax.template">
<field name="name">ISR Withholding 15% — Awards RD$500,001 to RD$1,000,000</field>
<field name="description">ISR Withholding on Prizes 15%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-15')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021703_en" />
<field name="credit_note_account" ref="do_account_21021703_en" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — premios RD$500,001 a RD$1,000,000 15%</field>
</record>
<record id="do_tax_ret_isr_tragamonedas_10_en" model="account.tax.template">
<field name="name">ISR Withholding 10% — Slot Machine Prizes</field>
<field name="description">ISR Withholding Slot Machines 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021704_en" />
<field name="credit_note_account" ref="do_account_21021704_en" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — premios máquinas tragamonedas 10%</field>
</record>
<record id="do_tax_ret_isr_other_income_10_en" model="account.tax.template">
<field name="name">ISR Withholding 10% — Other Income Not Covered</field>
<field name="description">ISR Withholding Other Income 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020301_en" />
<field name="credit_note_account" ref="do_account_21020301_en" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — otras rentas no contempladas 10%</field>
</record>
<!-- ══════ ISR PAGOS AL EXTERIOR — Arts. 305-306 CT Ley 11-92 ══════ -->
<record id="do_tax_ret_isr_ext_27_en" model="account.tax.template">
<field name="name">ISR Withholding 27% — Payments Abroad: Services and Royalties (Non-Residents)</field>
<field name="description">Foreign ISR Withholding 27%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-27')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020701_en" />
<field name="credit_note_account" ref="do_account_21020701_en" />
<field name="legal_notice">Art. 305 CT Ley 11-92 — Servicios y regalías a no residentes 27%</field>
</record>
<record id="do_tax_ret_isr_ext_10_en" model="account.tax.template">
<field name="name">ISR Withholding 10% — Payments Abroad: Interest and Technical Assistance (Non-Residents)</field>
<field name="description">Foreign ISR Withholding 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020702_en" />
<field name="credit_note_account" ref="do_account_21020702_en" />
<field name="legal_notice">Arts. 305-306 CT — Intereses y asistencia técnica a no residentes</field>
</record>
<!-- ══════ ITBIS ADICIONAL — Retenciones especiales DGII ══════ -->
<!-- Servicios gravados con retención del 100% del ITBIS según NG 01-11. -->
<record id="do_tax_ret_itbis_100_inf_en" model="account.tax.template">
<field name="name">ITBIS Withholding 100% — Taxable Services Subject to Withholding</field>
<field name="description">ITBIS Withholding Services 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020201_en" />
<field name="credit_note_account" ref="do_account_21020201_en" />
<field name="legal_notice">NG 01-11 DGII — Retención 100% ITBIS en servicios gravados</field>
</record>
<!-- Proveedor informal de bienes gravados: la NG 08-10 establece retención
del 75% del ITBIS. La tasa contable es -13.5% = 75% × 18%. -->
<record id="do_tax_ret_itbis_75_inf_en" model="account.tax.template">
<field name="name">ITBIS Withholding 75% — Informal Supplier Goods (B11 / e-CF E41)</field>
<field name="description">ITBIS Withholding Informal Supplier 75%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-13.5')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021201_en" />
<field name="credit_note_account" ref="do_account_21021201_en" />
<field name="legal_notice">NG 08-10 DGII — Retención 75% ITBIS compras a proveedores informales</field>
</record>
<record id="do_tax_ret_itbis_75_inf_16_en" model="account.tax.template">
<field name="name">ITBIS Withholding 75% — Goods Informal Supplier Rate 16%</field>
<field name="description">ITBIS Withholding Informal Supplier 75% Rate 16%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-12')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021202_en" />
<field name="credit_note_account" ref="do_account_21021202_en" />
<field name="legal_notice">IT-1 DGII casilla 57; NG 08-10/05-19 — 75% de ITBIS tasa 16%</field>
</record>
<record id="do_tax_ret_itbis_100_goods_18_en" model="account.tax.template">
<field name="name">ITBIS Withholding 100% — Goods Informal Supplier Rate 18%</field>
<field name="description">ITBIS Withholding Informal Supplier 100% Rate 18%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021203_en" />
<field name="credit_note_account" ref="do_account_21021203_en" />
<field name="legal_notice">IT-1 DGII casilla 56 — bienes comprobante de compras, retención 100%</field>
</record>
<record id="do_tax_ret_itbis_100_goods_16_en" model="account.tax.template">
<field name="name">ITBIS Withholding 100% — Goods Informal Supplier Rate 16%</field>
<field name="description">ITBIS Withholding Informal Supplier 100% Rate 16%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-16')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021204_en" />
<field name="credit_note_account" ref="do_account_21021204_en" />
<field name="legal_notice">IT-1 DGII casilla 57 — bienes comprobante de compras, retención 100%</field>
</record>
<record id="do_tax_ret_itbis_rst_18_en" model="account.tax.template">
<field name="name">ITBIS Withholding 100% — RST Taxpayers Rate 18%</field>
<field name="description">ITBIS RST withholding 18%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020202_en" />
<field name="credit_note_account" ref="do_account_21020202_en" />
<field name="legal_notice">IT-1 DGII casilla 53 — ITBIS retenido RST operaciones gravadas 18%</field>
</record>
<record id="do_tax_ret_itbis_rst_16_en" model="account.tax.template">
<field name="name">ITBIS Withholding 100% — RST Taxpayers Rate 16%</field>
<field name="description">ITBIS RST withholding 16%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-16')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020203_en" />
<field name="credit_note_account" ref="do_account_21020203_en" />
<field name="legal_notice">IT-1 DGII casilla 54 — ITBIS retenido RST operaciones gravadas 16%</field>
</record>
<record id="do_tax_ret_itbis_insurance_100_en" model="account.tax.template">
<field name="name">ITBIS Withholding 100% — Insurance Companies</field>
<field name="description">ITBIS Insurance Withholding 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020204_en" />
<field name="credit_note_account" ref="do_account_21020204_en" />
<field name="legal_notice">NG 04-13 DGII — aseguradoras retienen 100% del ITBIS facturado</field>
</record>
<record id="do_tax_ret_itbis_airline_100_en" model="account.tax.template">
<field name="name">ITBIS Withheld by Airlines 100% — BSP/IATA</field>
<field name="description">ITBIS Withheld Airlines 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_11040701_en" />
<field name="credit_note_account" ref="do_account_11040701_en" />
<field name="legal_notice">IT-1 DGII casilla 28; NG 02-05 — ITBIS retenido por aerolíneas</field>
</record>
<record id="do_tax_ret_itbis_society_30_suf_en" model="account.tax.template">
<field name="name">ITBIS Withheld by Companies 30% — Withholding Suffered</field>
<field name="description">ITBIS Withheld Companies 30%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-5.4')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_11040702_en" />
<field name="credit_note_account" ref="do_account_11040702_en" />
<field name="legal_notice">IT-1 DGII casilla 29; NG 02-05/07-09 — sociedades retienen ITBIS</field>
</record>
<record id="do_tax_ret_itbis_hotel_100_en" model="account.tax.template">
<field name="name">ITBIS Withheld by Hotels 100% — Package Commissions</field>
<field name="description">ITBIS Withheld Hotels 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_11040703_en" />
<field name="credit_note_account" ref="do_account_11040703_en" />
<field name="legal_notice">IT-1 DGII casilla 30; NG 02-05 — hoteles retienen ITBIS en comisiones</field>
</record>
<record id="do_tax_ret_itbis_state_100_en" model="account.tax.template">
<field name="name">ITBIS Withheld by State Entities 100%</field>
<field name="description">ITBIS Withheld by State Entities 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_11040704_en" />
<field name="credit_note_account" ref="do_account_11040704_en" />
<field name="legal_notice">IT-1 DGII casilla 31 — ITBIS retenido por instituciones del Estado</field>
</record>
<!-- ══════ ISC — IMPUESTO SELECTIVO AL CONSUMO — Arts. 393-441 CT ══════ -->
<record id="do_tax_isc_bebidas_alc_en" model="account.tax.template">
<field name="name">ISC 10% — Alcoholic Beverages (Wines, Rum, Whiskey and Spirits)</field>
<field name="description">ISC Alcoholic Beverages 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100" />
<field name="group" ref="do_tax_group_isc_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020801_en" />
<field name="credit_note_account" ref="do_account_21020801_en" />
<field name="legal_notice">Ley 253-12 mod. Art. 375 CT — ISC bebidas alcohólicas ad valorem 10%</field>
</record>
<record id="do_tax_isc_tabaco_en" model="account.tax.template">
<field name="name">ISC 20% — Tobacco, Cigarettes and Derivatives</field>
<field name="description">ISC Tobacco and Cigarettes 20%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('20')/100" />
<field name="group" ref="do_tax_group_isc_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020802_en" />
<field name="credit_note_account" ref="do_account_21020802_en" />
<field name="legal_notice">Arts. 393-441 CT Ley 11-92 — ISC tabaco y cigarrillos, ad valorem 20%</field>
</record>
<record id="do_tax_isc_telecom_en" model="account.tax.template">
<field name="name">ISC 10% — Telecommunications Services</field>
<field name="description">ISC Telecommunications 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100" />
<field name="group" ref="do_tax_group_isc_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020803_en" />
<field name="credit_note_account" ref="do_account_21020803_en" />
<field name="legal_notice">Arts. 393-441 CT; Ley 253-12 — ISC servicios telecomunicaciones 10%</field>
</record>
<record id="do_tax_isc_combustibles_16_en" model="account.tax.template">
<field name="name">ISC 16% — Fossil Fuels and Petroleum Derivatives</field>
<field name="description">ISC Fossil Fuels 16%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('16')/100" />
<field name="group" ref="do_tax_group_isc_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020804_en" />
<field name="credit_note_account" ref="do_account_21020804_en" />
<field name="legal_notice">Ley 253-12 mod. Art. 367 CT — ISC combustibles fósiles 16%</field>
</record>
<record id="do_tax_isc_avtur_65_en" model="account.tax.template">
<field name="name">ISC 6.5% — Avtur Reduced Rate</field>
<field name="description">ISC Avtur 6.5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('6.5')/100" />
<field name="group" ref="do_tax_group_isc_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020807_en" />
<field name="credit_note_account" ref="do_account_21020807_en" />
<field name="legal_notice">Ley 253-12 Art. 23 — tasa reducida Avtur 6.5% ad valorem</field>
</record>
<record id="do_tax_isc_fuel_rd2_gallon_en" model="account.tax.template">
<field name="name">ISC RD$2.00 — Additional per Gallon Gasoline/Diesel</field>
<field name="description">ISC Fuels RD$2/Gallon</field>
<field name="type">fixed</field>
<field name="amount" eval="Decimal('2')" />
<field name="group" ref="do_tax_group_isc_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020808_en" />
<field name="credit_note_account" ref="do_account_21020808_en" />
<field name="legal_notice">Ley 253-12 Art. 20 — adicional RD$2.00 por galón gasolina/gasoil</field>
</record>
<record id="do_tax_ret_isc_insurance_100_en" model="account.tax.template">
<field name="name">ISC Withholding 100% — Insurance Companies</field>
<field name="description">ISC Insurance Withholding 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isc_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020806_en" />
<field name="credit_note_account" ref="do_account_21020806_en" />
<field name="legal_notice">NG 04-13 DGII — aseguradoras retienen 100% del ISC facturado</field>
</record>
<!-- Impuesto de primera placa. El impuesto por emisiones de CO2 es distinto y
no se modela aquí porque su tasa depende de las emisiones del vehículo. -->
<record id="do_tax_isc_vehiculos_en" model="account.tax.template">
<field name="name">First Vehicle Registration 17% — Imported Vehicles</field>
<field name="description">First Vehicle Plate 17%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('17')/100" />
<field name="group" ref="do_tax_group_others_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020805_en" />
<field name="credit_note_account" ref="do_account_21020805_en" />
<field name="legal_notice">Art. 22 Ley 557-05 — 17% sobre valor CIF para primera placa</field>
</record>
<!-- ══════ CDT — CONTRIBUCIÓN INDOTEL (LEY 153-98) ══════ -->
<!-- CDT: Contribución para el Desarrollo de las Telecomunicaciones.
Lo recaudan las empresas de telecom de sus customeres y lo remiten a INDOTEL.
Aparece como línea separada en facturas de telefonía e internet. -->
<record id="do_tax_cdt_indotel_en" model="account.tax.template">
<field name="name">CDT 2% — Contribution for the Development of Telecommunications (INDOTEL)</field>
<field name="description">CDT INDOTEL 2%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('2')/100" />
<field name="group" ref="do_tax_group_cdt_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020901_en" />
<field name="credit_note_account" ref="do_account_21020901_en" />
<field name="legal_notice">Art. 26 Ley 153-98 Telecomunicaciones — CDT INDOTEL 2% ingresos brutos</field>
</record>
<!-- ══════ OTROS IMPUESTOS Y CONTRIBUCIONES ══════ -->
<!-- Propina legal: cargo obligatorio para hoteles, restaurantes, cafés, barras
y establecimientos que expenden alimentos o bebidas. No es general. -->
<record id="do_tax_propina_10_en" model="account.tax.template">
<field name="name">Legal Tip 10% — Restaurants, Bars and Hotels (Natural and Legal Persons)</field>
<field name="description">Legal Tip 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100" />
<field name="group" ref="do_tax_group_others_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020501_en" />
<field name="credit_note_account" ref="do_account_21020501_en" />
<field name="legal_notice">Código de Trabajo, Ley 16-92, art. 228 — propina obligatoria 10%</field>
</record>
<!-- 0.15% sobre valor de cheques y débitos bancarios electrónicos.
Lo recauda el banco automáticamente; es un costo financiero para la empresa. -->
<record id="do_tax_cheques_015_en" model="account.tax.template">
<field name="name">Tax on Checks and Bank Transfers 0.15% (Natural and Legal Persons)</field>
<field name="description">Checks and Transfers Tax 0.15%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('0.15')/100" />
<field name="end_date" eval="datetime.date(2026, 7, 2)" />
<field name="group" ref="do_tax_group_others_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021901_en" />
<field name="credit_note_account" ref="do_account_21021901_en" />
<field name="legal_notice">Art. 382-D CT Ley 11-92 mod. Ley 288-04 — 1.5 por mil cheques/débitos</field>
</record>
<!-- 0.20% sobre valor de cheques y transferencias bancarias desde
2026-07-03. Se mantiene separado del 0.15% histórico. -->
<record id="do_tax_cheques_020_en" model="account.tax.template">
<field name="name">Tax on Checks and Bank Transfers 0.20% (Natural and Legal Persons)</field>
<field name="description">Checks and Transfers Tax 0.20%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('0.20')/100" />
<field name="start_date" eval="datetime.date(2026, 7, 3)" />
<field name="group" ref="do_tax_group_others_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021902_en" />
<field name="credit_note_account" ref="do_account_21021902_en" />
<field name="legal_notice">Ley 30-26, vig. 2026-07-03 — 2.0 por mil cheques/transferencias</field>
</record>
<!-- Impuesto anual sobre los activos imponibles. Su liquidación y crédito
contra ISR no se automatizan mediante esta plantilla contable. -->
<record id="do_tax_activos_1_en" model="account.tax.template">
<field name="name">Asset Tax 1% (Legal Entities)</field>
<field name="description">Asset Tax 1%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('1')/100" />
<field name="group" ref="do_tax_group_others_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21020502_en" />
<field name="credit_note_account" ref="do_account_21020502_en" />
<field name="legal_notice">Código Tributario, arts. 401-405; art. 404 — 1% anual</field>
</record>
<!-- ITI: aplica a transferencias de bienes inmuebles. Las exenciones y la
valoración deben revisarse al liquidar cada operación. -->
<record id="do_tax_iti_3_en" model="account.tax.template">
<field name="name">Real Estate Transfer Tax 3% (Natural and Legal Persons)</field>
<field name="description">ITI Real Estate Transfer 3%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('3')/100" />
<field name="group" ref="do_tax_group_others_en" />
<field name="account" ref="do_account_root_en" />
<field name="invoice_account" ref="do_account_21021001_en" />
<field name="credit_note_account" ref="do_account_21021001_en" />
<field name="legal_notice">Art. 20 Ley 288-04, mod. art. 7 Ley 173-07 — tasa 3%</field>
</record>
</data>
</tryton>
+592
View File
@@ -0,0 +1,592 @@
<?xml version='1.0' encoding='utf-8'?>
<tryton>
<data language="es_419">
<record id="do_tax_group_itbis_es_419" model="account.tax.group">
<field name="name">ITBIS</field>
<field name="code">ITBIS</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_isr_es_419" model="account.tax.group">
<field name="name">ISR - Retenciones</field>
<field name="code">ISR</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_exempt_es_419" model="account.tax.group">
<field name="name">Exento / Tasa Cero</field>
<field name="code">EX0</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_isc_es_419" model="account.tax.group">
<field name="name">ISC - Selectivo al Consumo</field>
<field name="code">ISC</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_isr_ext_es_419" model="account.tax.group">
<field name="name">ISR - Pagos al Exterior</field>
<field name="code">ISREXT</field>
<field name="kind">purchase</field>
</record>
<record id="do_tax_group_cdt_es_419" model="account.tax.group">
<field name="name">CDT - Telecomunicaciones INDOTEL</field>
<field name="code">CDT</field>
<field name="kind">both</field>
</record>
<record id="do_tax_group_others_es_419" model="account.tax.group">
<field name="name">Otros Impuestos y Contribuciones</field>
<field name="code">OTROS</field>
<field name="kind">both</field>
</record>
</data>
<data language="es_419">
<record id="do_tax_itbis_18_venta_es_419" model="account.tax.template">
<field name="name">ITBIS 18% — Ventas (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS 18% Ventas</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('18')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020101_es_419" />
<field name="credit_note_account" ref="do_account_21020101_es_419" />
<field name="legal_notice">Arts. 335-392 CT Ley 11-92; Ley 253-12 Art. 10; Decreto 293-11</field>
</record>
<record id="do_tax_itbis_16_venta_es_419" model="account.tax.template">
<field name="name">ITBIS 16% — Ventas Tasa Especial (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS 16% Ventas</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('16')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020102_es_419" />
<field name="credit_note_account" ref="do_account_21020102_es_419" />
<field name="legal_notice">Art. 345 CT Ley 11-92 mod. Ley 253-12 — tasa especial 16%</field>
</record>
<record id="do_tax_itbis_18_compra_es_419" model="account.tax.template">
<field name="name">ITBIS 18% — Compras / Crédito Fiscal (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS 18% Compras</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('18')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_11040101_es_419" />
<field name="credit_note_account" ref="do_account_11040101_es_419" />
<field name="legal_notice">Arts. 349-357 CT Ley 11-92 — Crédito fiscal ITBIS; Decreto 293-11</field>
</record>
<record id="do_tax_itbis_16_compra_es_419" model="account.tax.template">
<field name="name">ITBIS 16% — Compras / Crédito Fiscal Tasa Especial</field>
<field name="description">ITBIS 16% Compras</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('16')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_11040102_es_419" />
<field name="credit_note_account" ref="do_account_11040102_es_419" />
<field name="legal_notice">Art. 345 CT Ley 11-92 — Crédito fiscal tasa especial 16%</field>
</record>
<record id="do_tax_itbis_exento_es_419" model="account.tax.template">
<field name="name">ITBIS Exento — Bienes y Servicios Exentos (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS Exento</field>
<field name="type">none</field>
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="legal_notice">Arts. 343-344 CT Ley 11-92; Ley 288-04; NG 12-22 DGII</field>
</record>
<record id="do_tax_itbis_tasa_cero_es_419" model="account.tax.template">
<field name="name">ITBIS Tasa Cero — Exportaciones y Zona Franca (Personas Jurídicas y Físicas)</field>
<field name="description">ITBIS 0% Exportaciones / Zona Franca</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('0')" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020105_es_419" />
<field name="credit_note_account" ref="do_account_21020105_es_419" />
<field name="legal_notice">Art. 342 CT; Ley 557-05; Ley 8-90 Zonas Francas; NG 05-19 DGII</field>
</record>
<record id="do_tax_ret_itbis_30_es_419" model="account.tax.template">
<field name="name">Retención ITBIS 30% — Agente Gran Contribuyente (Personas Jurídicas y Físicas)</field>
<field name="description">Retención ITBIS Gran Contribuyente 30%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-5.4')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021101_es_419" />
<field name="credit_note_account" ref="do_account_21021101_es_419" />
<field name="legal_notice">NG 01-11 DGII 2011; Arts. 309 y 337 CT — Grandes Contribuyentes</field>
</record>
<record id="do_tax_ret_isr_hon_5_es_419" model="account.tax.template">
<field name="name">Retención ISR 5% — Honorarios y Servicios a Personas Jurídicas</field>
<field name="description">Retención ISR Persona Jurídica 5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-5')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021301_es_419" />
<field name="credit_note_account" ref="do_account_21021301_es_419" />
<field name="legal_notice">Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas jurídicas</field>
</record>
<record id="do_tax_ret_isr_serv_10_es_419" model="account.tax.template">
<field name="name">Retención ISR 10% — Honorarios y Servicios a Personas Físicas</field>
<field name="description">Retención ISR Persona Física 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021302_es_419" />
<field name="credit_note_account" ref="do_account_21021302_es_419" />
<field name="legal_notice">Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas físicas</field>
</record>
<record id="do_tax_ret_isr_div_10_es_419" model="account.tax.template">
<field name="name">Retención ISR 10% — Dividendos y Utilidades Distribuidas (Personas Físicas y Jurídicas)</field>
<field name="description">Retención ISR Dividendos 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020601_es_419" />
<field name="credit_note_account" ref="do_account_21020601_es_419" />
<field name="legal_notice">Art. 308 CT Ley 11-92; Decreto 95-12; Formulario IR-18</field>
</record>
<record id="do_tax_ret_isr_int_10_es_419" model="account.tax.template">
<field name="name">Retención ISR 10% — Intereses a Personas Físicas (NG 07-19)</field>
<field name="description">Retención ISR Intereses Persona Física 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021501_es_419" />
<field name="credit_note_account" ref="do_account_21021501_es_419" />
<field name="legal_notice">NG 07-19 DGII; Art. 306 bis CT — Intereses personas físicas, definitivo</field>
</record>
<record id="do_tax_ret_isr_alq_10_es_419" model="account.tax.template">
<field name="name">Retención ISR 10% — Alquileres y Arrendamientos (Personas Físicas y Jurídicas)</field>
<field name="description">Retención ISR Alquileres 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021401_es_419" />
<field name="credit_note_account" ref="do_account_21021401_es_419" />
<field name="legal_notice">Art. 309 CT; NG 08-11 DGII — Alquileres personas físicas y jurídicas</field>
</record>
<record id="do_tax_ret_isr_est_15_es_419" model="account.tax.template">
<field name="name">Retención ISR 1.5% — Pagos del Estado / Sector Público (Personas Físicas y Jurídicas)</field>
<field name="description">Retención ISR Estado 1.5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-1.5')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_11040801_es_419" />
<field name="credit_note_account" ref="do_account_11040801_es_419" />
<field name="legal_notice">Art. 309 CT; Decreto 95-12; Formulario 623 DGII — Sector público</field>
</record>
<record id="do_tax_ret_isr_est_5_es_419" model="account.tax.template">
<field name="name">Retención ISR 5% — Pagos del Estado / Sector Público (Personas Físicas y Jurídicas)</field>
<field name="description">Retención ISR Estado 5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-5')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_11040802_es_419" />
<field name="credit_note_account" ref="do_account_11040802_es_419" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — retención pagos del Estado 5%</field>
</record>
<record id="do_tax_ret_isr_bovine_1_es_419" model="account.tax.template">
<field name="name">Retención ISR 1% — Compras Bovinas a Personas Físicas no Formalizadas</field>
<field name="description">Retención ISR Compras Bovinas Informales 1%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-1')/100" />
<field name="start_date" eval="datetime.date(2025, 6, 20)" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021801_es_419" />
<field name="credit_note_account" ref="do_account_21021801_es_419" />
<field name="legal_notice">NG 04-2025 arts. 2, 4, 5 y 11 — 1% del monto facturado</field>
</record>
<record id="do_tax_ret_isr_exporter_25_es_419" model="account.tax.template">
<field name="name">Retención ISR 2.5% — Exportadores en Ventas al Mercado Local</field>
<field name="description">Retención ISR Exportadores 2.5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-2.5')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_11040803_es_419" />
<field name="credit_note_account" ref="do_account_11040803_es_419" />
<field name="legal_notice">NG 15-07 DGII — retención 2.5% ventas locales de exportadores</field>
</record>
<record id="do_tax_ret_isr_int_pj_1_es_419" model="account.tax.template">
<field name="name">Retención ISR 1% — Intereses a Personas Jurídicas (NG 07-19)</field>
<field name="description">Retención ISR Intereses Persona Jurídica 1%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-1')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021502_es_419" />
<field name="credit_note_account" ref="do_account_21021502_es_419" />
<field name="legal_notice">NG 07-19 DGII 2019; Art. 306 bis CT — Intereses personas jurídicas</field>
</record>
<record id="do_tax_ret_isr_premios_25_es_419" model="account.tax.template">
<field name="name">Retención ISR 25% — Premios de Lotería, Sorteos y Rifas (Personas Físicas y Jurídicas)</field>
<field name="description">Retención ISR Premios 25%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-25')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021701_es_419" />
<field name="credit_note_account" ref="do_account_21021701_es_419" />
<field name="legal_notice">Art. 321 CT Ley 11-92; Decreto 95-12 — Premios y loterías, definitivo</field>
</record>
<record id="do_tax_ret_isr_premios_10_es_419" model="account.tax.template">
<field name="name">Retención ISR 10% — Premios RD$100,001 a RD$500,000</field>
<field name="description">Retención ISR Premios 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021702_es_419" />
<field name="credit_note_account" ref="do_account_21021702_es_419" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — premios RD$100,001 a RD$500,000 10%</field>
</record>
<record id="do_tax_ret_isr_premios_15_es_419" model="account.tax.template">
<field name="name">Retención ISR 15% — Premios RD$500,001 a RD$1,000,000</field>
<field name="description">Retención ISR Premios 15%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-15')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021703_es_419" />
<field name="credit_note_account" ref="do_account_21021703_es_419" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — premios RD$500,001 a RD$1,000,000 15%</field>
</record>
<record id="do_tax_ret_isr_tragamonedas_10_es_419" model="account.tax.template">
<field name="name">Retención ISR 10% — Premios Máquinas Tragamonedas</field>
<field name="description">Retención ISR Máquinas Tragamonedas 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021704_es_419" />
<field name="credit_note_account" ref="do_account_21021704_es_419" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — premios máquinas tragamonedas 10%</field>
</record>
<record id="do_tax_ret_isr_other_income_10_es_419" model="account.tax.template">
<field name="name">Retención ISR 10% — Otras Rentas no Contempladas</field>
<field name="description">Retención ISR Otras Rentas 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020301_es_419" />
<field name="credit_note_account" ref="do_account_21020301_es_419" />
<field name="legal_notice">Art. 309 CT mod. Ley 253-12 — otras rentas no contempladas 10%</field>
</record>
<record id="do_tax_ret_isr_ext_27_es_419" model="account.tax.template">
<field name="name">Retención ISR 27% — Pagos al Exterior: Servicios y Regalías (No Residentes)</field>
<field name="description">Retención ISR Exterior 27%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-27')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020701_es_419" />
<field name="credit_note_account" ref="do_account_21020701_es_419" />
<field name="legal_notice">Art. 305 CT Ley 11-92 — Servicios y regalías a no residentes 27%</field>
</record>
<record id="do_tax_ret_isr_ext_10_es_419" model="account.tax.template">
<field name="name">Retención ISR 10% — Pagos al Exterior: Intereses y Asistencia Técnica (No Residentes)</field>
<field name="description">Retención ISR Exterior 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020702_es_419" />
<field name="credit_note_account" ref="do_account_21020702_es_419" />
<field name="legal_notice">Arts. 305-306 CT — Intereses y asistencia técnica a no residentes</field>
</record>
<record id="do_tax_ret_itbis_100_inf_es_419" model="account.tax.template">
<field name="name">Retención ITBIS 100% — Servicios Gravados Sujetos a Retención</field>
<field name="description">Retención ITBIS Servicios 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020201_es_419" />
<field name="credit_note_account" ref="do_account_21020201_es_419" />
<field name="legal_notice">NG 01-11 DGII — Retención 100% ITBIS en servicios gravados</field>
</record>
<record id="do_tax_ret_itbis_75_inf_es_419" model="account.tax.template">
<field name="name">Retención ITBIS 75% — Bienes de Proveedor Informal (B11 / e-CF E41)</field>
<field name="description">Retención ITBIS Proveedor Informal 75%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-13.5')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021201_es_419" />
<field name="credit_note_account" ref="do_account_21021201_es_419" />
<field name="legal_notice">NG 08-10 DGII — Retención 75% ITBIS compras a proveedores informales</field>
</record>
<record id="do_tax_ret_itbis_75_inf_16_es_419" model="account.tax.template">
<field name="name">Retención ITBIS 75% — Bienes Proveedor Informal Tasa 16%</field>
<field name="description">Retención ITBIS Proveedor Informal 75% Tasa 16%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-12')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021202_es_419" />
<field name="credit_note_account" ref="do_account_21021202_es_419" />
<field name="legal_notice">IT-1 DGII casilla 57; NG 08-10/05-19 — 75% de ITBIS tasa 16%</field>
</record>
<record id="do_tax_ret_itbis_100_goods_18_es_419" model="account.tax.template">
<field name="name">Retención ITBIS 100% — Bienes Proveedor Informal Tasa 18%</field>
<field name="description">Retención ITBIS Proveedor Informal 100% Tasa 18%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021203_es_419" />
<field name="credit_note_account" ref="do_account_21021203_es_419" />
<field name="legal_notice">IT-1 DGII casilla 56 — bienes comprobante de compras, retención 100%</field>
</record>
<record id="do_tax_ret_itbis_100_goods_16_es_419" model="account.tax.template">
<field name="name">Retención ITBIS 100% — Bienes Proveedor Informal Tasa 16%</field>
<field name="description">Retención ITBIS Proveedor Informal 100% Tasa 16%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-16')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021204_es_419" />
<field name="credit_note_account" ref="do_account_21021204_es_419" />
<field name="legal_notice">IT-1 DGII casilla 57 — bienes comprobante de compras, retención 100%</field>
</record>
<record id="do_tax_ret_itbis_rst_18_es_419" model="account.tax.template">
<field name="name">Retención ITBIS 100% — Contribuyentes RST Tasa 18%</field>
<field name="description">Retención ITBIS RST 18%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020202_es_419" />
<field name="credit_note_account" ref="do_account_21020202_es_419" />
<field name="legal_notice">IT-1 DGII casilla 53 — ITBIS retenido RST operaciones gravadas 18%</field>
</record>
<record id="do_tax_ret_itbis_rst_16_es_419" model="account.tax.template">
<field name="name">Retención ITBIS 100% — Contribuyentes RST Tasa 16%</field>
<field name="description">Retención ITBIS RST 16%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-16')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020203_es_419" />
<field name="credit_note_account" ref="do_account_21020203_es_419" />
<field name="legal_notice">IT-1 DGII casilla 54 — ITBIS retenido RST operaciones gravadas 16%</field>
</record>
<record id="do_tax_ret_itbis_insurance_100_es_419" model="account.tax.template">
<field name="name">Retención ITBIS 100% — Compañías de Seguros</field>
<field name="description">Retención ITBIS Seguros 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020204_es_419" />
<field name="credit_note_account" ref="do_account_21020204_es_419" />
<field name="legal_notice">NG 04-13 DGII — aseguradoras retienen 100% del ITBIS facturado</field>
</record>
<record id="do_tax_ret_itbis_airline_100_es_419" model="account.tax.template">
<field name="name">ITBIS Retenido por Aerolíneas 100% — BSP/IATA</field>
<field name="description">ITBIS Retenido Aerolíneas 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_11040701_es_419" />
<field name="credit_note_account" ref="do_account_11040701_es_419" />
<field name="legal_notice">IT-1 DGII casilla 28; NG 02-05 — ITBIS retenido por aerolíneas</field>
</record>
<record id="do_tax_ret_itbis_society_30_suf_es_419" model="account.tax.template">
<field name="name">ITBIS Retenido por Sociedades 30% — Retención Sufrida</field>
<field name="description">ITBIS Retenido Sociedades 30%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-5.4')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_11040702_es_419" />
<field name="credit_note_account" ref="do_account_11040702_es_419" />
<field name="legal_notice">IT-1 DGII casilla 29; NG 02-05/07-09 — sociedades retienen ITBIS</field>
</record>
<record id="do_tax_ret_itbis_hotel_100_es_419" model="account.tax.template">
<field name="name">ITBIS Retenido por Hoteles 100% — Comisiones Paquetes</field>
<field name="description">ITBIS Retenido Hoteles 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_11040703_es_419" />
<field name="credit_note_account" ref="do_account_11040703_es_419" />
<field name="legal_notice">IT-1 DGII casilla 30; NG 02-05 — hoteles retienen ITBIS en comisiones</field>
</record>
<record id="do_tax_ret_itbis_state_100_es_419" model="account.tax.template">
<field name="name">ITBIS Retenido por Entidades del Estado 100%</field>
<field name="description">ITBIS Retenido Estado 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-18')/100" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_11040704_es_419" />
<field name="credit_note_account" ref="do_account_11040704_es_419" />
<field name="legal_notice">IT-1 DGII casilla 31 — ITBIS retenido por instituciones del Estado</field>
</record>
<record id="do_tax_isc_bebidas_alc_es_419" model="account.tax.template">
<field name="name">ISC 10% — Bebidas Alcohólicas (Vinos, Ron, Whisky y Destilados)</field>
<field name="description">ISC Bebidas Alcohólicas 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020801_es_419" />
<field name="credit_note_account" ref="do_account_21020801_es_419" />
<field name="legal_notice">Ley 253-12 mod. Art. 375 CT — ISC bebidas alcohólicas ad valorem 10%</field>
</record>
<record id="do_tax_isc_tabaco_es_419" model="account.tax.template">
<field name="name">ISC 20% — Tabaco, Cigarrillos y Derivados</field>
<field name="description">ISC Tabaco y Cigarrillos 20%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('20')/100" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020802_es_419" />
<field name="credit_note_account" ref="do_account_21020802_es_419" />
<field name="legal_notice">Arts. 393-441 CT Ley 11-92 — ISC tabaco y cigarrillos, ad valorem 20%</field>
</record>
<record id="do_tax_isc_telecom_es_419" model="account.tax.template">
<field name="name">ISC 10% — Servicios de Telecomunicaciones</field>
<field name="description">ISC Telecomunicaciones 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020803_es_419" />
<field name="credit_note_account" ref="do_account_21020803_es_419" />
<field name="legal_notice">Arts. 393-441 CT; Ley 253-12 — ISC servicios telecomunicaciones 10%</field>
</record>
<record id="do_tax_isc_combustibles_16_es_419" model="account.tax.template">
<field name="name">ISC 16% — Combustibles Fósiles y Derivados del Petróleo</field>
<field name="description">ISC Combustibles Fósiles 16%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('16')/100" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020804_es_419" />
<field name="credit_note_account" ref="do_account_21020804_es_419" />
<field name="legal_notice">Ley 253-12 mod. Art. 367 CT — ISC combustibles fósiles 16%</field>
</record>
<record id="do_tax_isc_avtur_65_es_419" model="account.tax.template">
<field name="name">ISC 6.5% — Avtur Tasa Reducida</field>
<field name="description">ISC Avtur 6.5%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('6.5')/100" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020807_es_419" />
<field name="credit_note_account" ref="do_account_21020807_es_419" />
<field name="legal_notice">Ley 253-12 Art. 23 — tasa reducida Avtur 6.5% ad valorem</field>
</record>
<record id="do_tax_isc_fuel_rd2_gallon_es_419" model="account.tax.template">
<field name="name">ISC RD$2.00 — Adicional por Galón Gasolina/Gasoil</field>
<field name="description">ISC Combustibles RD$2/Galón</field>
<field name="type">fixed</field>
<field name="amount" eval="Decimal('2')" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020808_es_419" />
<field name="credit_note_account" ref="do_account_21020808_es_419" />
<field name="legal_notice">Ley 253-12 Art. 20 — adicional RD$2.00 por galón gasolina/gasoil</field>
</record>
<record id="do_tax_ret_isc_insurance_100_es_419" model="account.tax.template">
<field name="name">Retención ISC 100% — Compañías de Seguros</field>
<field name="description">Retención ISC Seguros 100%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('-10')/100" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020806_es_419" />
<field name="credit_note_account" ref="do_account_21020806_es_419" />
<field name="legal_notice">NG 04-13 DGII — aseguradoras retienen 100% del ISC facturado</field>
</record>
<record id="do_tax_isc_vehiculos_es_419" model="account.tax.template">
<field name="name">Primera Placa 17% — Vehículos Importados</field>
<field name="description">Primera Placa Vehículos 17%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('17')/100" />
<field name="group" ref="do_tax_group_others_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020805_es_419" />
<field name="credit_note_account" ref="do_account_21020805_es_419" />
<field name="legal_notice">Art. 22 Ley 557-05 — 17% sobre valor CIF para primera placa</field>
</record>
<record id="do_tax_cdt_indotel_es_419" model="account.tax.template">
<field name="name">CDT 2% — Contribución para el Desarrollo de las Telecomunicaciones (INDOTEL)</field>
<field name="description">CDT INDOTEL 2%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('2')/100" />
<field name="group" ref="do_tax_group_cdt_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020901_es_419" />
<field name="credit_note_account" ref="do_account_21020901_es_419" />
<field name="legal_notice">Art. 26 Ley 153-98 Telecomunicaciones — CDT INDOTEL 2% ingresos brutos</field>
</record>
<record id="do_tax_propina_10_es_419" model="account.tax.template">
<field name="name">Propina Legal 10% — Restaurantes, Bares y Hoteles (Personas Físicas y Jurídicas)</field>
<field name="description">Propina Legal 10%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('10')/100" />
<field name="group" ref="do_tax_group_others_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020501_es_419" />
<field name="credit_note_account" ref="do_account_21020501_es_419" />
<field name="legal_notice">Código de Trabajo, Ley 16-92, art. 228 — propina obligatoria 10%</field>
</record>
<record id="do_tax_cheques_015_es_419" model="account.tax.template">
<field name="name">Impuesto sobre Cheques y Transferencias Bancarias 0.15% (Personas Físicas y Jurídicas)</field>
<field name="description">Impuesto Cheques y Transferencias 0.15%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('0.15')/100" />
<field name="end_date" eval="datetime.date(2026, 7, 2)" />
<field name="group" ref="do_tax_group_others_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021901_es_419" />
<field name="credit_note_account" ref="do_account_21021901_es_419" />
<field name="legal_notice">Art. 382-D CT Ley 11-92 mod. Ley 288-04 — 1.5 por mil cheques/débitos</field>
</record>
<record id="do_tax_cheques_020_es_419" model="account.tax.template">
<field name="name">Impuesto sobre Cheques y Transferencias Bancarias 0.20% (Personas Físicas y Jurídicas)</field>
<field name="description">Impuesto Cheques y Transferencias 0.20%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('0.20')/100" />
<field name="start_date" eval="datetime.date(2026, 7, 3)" />
<field name="group" ref="do_tax_group_others_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021902_es_419" />
<field name="credit_note_account" ref="do_account_21021902_es_419" />
<field name="legal_notice">Ley 30-26, vig. 2026-07-03 — 2.0 por mil cheques/transferencias</field>
</record>
<record id="do_tax_activos_1_es_419" model="account.tax.template">
<field name="name">Impuesto sobre los Activos 1% (Personas Jurídicas)</field>
<field name="description">Impuesto a los Activos 1%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('1')/100" />
<field name="group" ref="do_tax_group_others_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21020502_es_419" />
<field name="credit_note_account" ref="do_account_21020502_es_419" />
<field name="legal_notice">Código Tributario, arts. 401-405; art. 404 — 1% anual</field>
</record>
<record id="do_tax_iti_3_es_419" model="account.tax.template">
<field name="name">Impuesto sobre Transferencia Inmobiliaria 3% (Personas Físicas y Jurídicas)</field>
<field name="description">Transferencia Inmobiliaria ITI 3%</field>
<field name="type">percentage</field>
<field name="rate" eval="Decimal('3')/100" />
<field name="group" ref="do_tax_group_others_es_419" />
<field name="account" ref="do_account_root_es_419" />
<field name="invoice_account" ref="do_account_21021001_es_419" />
<field name="credit_note_account" ref="do_account_21021001_es_419" />
<field name="legal_notice">Art. 20 Ley 288-04, mod. art. 7 Ley 173-07 — tasa 3%</field>
</record>
</data>
</tryton>
-71
View File
@@ -1,71 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- account_do: Reglas de impuestos - República Dominicana -->
<tryton>
<data>
<!-- ===== Reglas de impuestos ===== -->
<!-- Regla clientes: al facturar aplica ITBIS 18% Ventas -->
<record id="do_tax_rule_customer" model="account.tax.rule.template">
<field name="name">Regla de Impuestos Clientes RD</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root"/>
</record>
<record id="do_trline_cust_itbis18" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="tax" ref="do_tax_itbis_18_venta"/>
<field name="sequence" eval="10"/>
</record>
<!-- Regla proveedores: al recibir factura aplica ITBIS 18% Compras -->
<record id="do_tax_rule_supplier" model="account.tax.rule.template">
<field name="name">Regla de Impuestos Proveedores RD</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root"/>
</record>
<record id="do_trline_supp_itbis18" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="tax" ref="do_tax_itbis_18_compra"/>
<field name="sequence" eval="10"/>
</record>
<!-- Regla clientes exentos de ITBIS (art. 343-344 CT: salud, educación, etc.) -->
<record id="do_tax_rule_customer_exento" model="account.tax.rule.template">
<field name="name">Regla Clientes Exentos ITBIS (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root"/>
</record>
<record id="do_trline_cust_exento" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_exento"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="tax" ref="do_tax_itbis_exento"/>
<field name="sequence" eval="10"/>
</record>
<!-- Regla clientes Zona Franca / Exportaciones (ITBIS tasa cero, NCF B14/E44) -->
<record id="do_tax_rule_customer_zf" model="account.tax.rule.template">
<field name="name">Regla Clientes Zona Franca / Exportaciones (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root"/>
</record>
<record id="do_trline_cust_zf_itbis" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_zf"/>
<field name="group" ref="do_tax_group_itbis"/>
<field name="tax" ref="do_tax_itbis_tasa_cero"/>
<field name="sequence" eval="10"/>
</record>
<!-- Regla proveedores no residentes (ISR pagos al exterior Art. 305-306 CT) -->
<record id="do_tax_rule_supplier_ext" model="account.tax.rule.template">
<field name="name">Regla Proveedores No Residentes / Exterior (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root"/>
</record>
<record id="do_trline_supp_ext_isr27" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_ext"/>
<field name="group" ref="do_tax_group_isr"/>
<field name="tax" ref="do_tax_ret_isr_ext_27"/>
<field name="sequence" eval="10"/>
</record>
</data>
</tryton>
+336
View File
@@ -0,0 +1,336 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- account_do: Reglas de impuestos - República Dominicana -->
<tryton>
<data language="en">
<!-- ===== Reglas de impuestos ===== -->
<!-- Regla customeres: al facturar aplica ITBIS 18% Ventas -->
<record id="do_tax_rule_customer_en" model="account.tax.rule.template">
<field name="name">RD Customers Tax Rule</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_cust_itbis18_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_itbis_18_venta_en"/>
<field name="sequence" eval="10"/>
</record>
<!-- Regla proveedores: al recibir factura aplica ITBIS 18% Compras -->
<record id="do_tax_rule_supplier_en" model="account.tax.rule.template">
<field name="name">RD Supplier Tax Rule</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_itbis18_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_itbis_18_compra_en"/>
<field name="sequence" eval="10"/>
</record>
<!-- Regla customeres exentos de ITBIS (art. 343-344 CT: salud, educación, etc.) -->
<record id="do_tax_rule_customer_exento_en" model="account.tax.rule.template">
<field name="name">ITBIS Exempt Customers Rule (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_cust_exento_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_exento_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_itbis_exento_en"/>
<field name="sequence" eval="10"/>
</record>
<!-- Regla customeres Zona Franca / Exportaciones (ITBIS tasa cero, NCF B14/E44) -->
<record id="do_tax_rule_customer_zf_en" model="account.tax.rule.template">
<field name="name">Free Zone Customers Rule / Exports (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_cust_zf_itbis_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_zf_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_itbis_tasa_cero_en"/>
<field name="sequence" eval="10"/>
</record>
<!-- Regla proveedores no residentes (ISR pagos al exterior Art. 305-306 CT) -->
<record id="do_tax_rule_supplier_ext_en" model="account.tax.rule.template">
<field name="name">Non-Resident Suppliers / Foreign Suppliers Rule (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_ext_isr27_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_ext_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_ext_27_en"/>
<field name="sequence" eval="10"/>
</record>
<!-- Tasas especiales ITBIS -->
<record id="do_tax_rule_customer_itbis16_en" model="account.tax.rule.template">
<field name="name">ITBIS Customer Rule 16% Special Rate (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_cust_itbis16_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_itbis16_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_itbis_16_venta_en"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_supplier_itbis16_en" model="account.tax.rule.template">
<field name="name">ITBIS Suppliers Rule 16% Special Rate (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_itbis16_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_itbis16_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_itbis_16_compra_en"/>
<field name="sequence" eval="10"/>
</record>
<!-- Retenciones ITBIS que conservan el ITBIS base -->
<record id="do_tax_rule_supplier_itbis_ret30_en" model="account.tax.rule.template">
<field name="name">Supplier Rule with ITBIS Withholding 30% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_itbis_ret30_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_itbis_ret30_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_30_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_supplier_informal_goods_en" model="account.tax.rule.template">
<field name="name">Informal Supplier Rule ITBIS Goods 75% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_informal_goods_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_informal_goods_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_75_inf_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_supplier_services_itbis100_en" model="account.tax.rule.template">
<field name="name">Taxable Services Rule ITBIS Withholding 100% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_services_itbis100_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_services_itbis100_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_100_inf_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="10"/>
</record>
<!-- Retenciones ISR por escenario. Estas reglas se aplican sobre impuestos
del grupo ISR; los impuestos ITBIS se mantienen separados. -->
<record id="do_tax_rule_supplier_isr_pj_services_en" model="account.tax.rule.template">
<field name="name">ISR Rule Services Legal Entities 5% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_isr_pj_services_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_pj_services_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_hon_5_en"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_supplier_isr_pf_services_en" model="account.tax.rule.template">
<field name="name">ISR Rule Services Individuals 10% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_isr_pf_services_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_pf_services_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_serv_10_en"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_supplier_isr_rent_en" model="account.tax.rule.template">
<field name="name">Rent ISR Rule 10% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_isr_rent_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_rent_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_alq_10_en"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_customer_state_isr15_en" model="account.tax.rule.template">
<field name="name">Customer Rule State / Public Sector ISR 1.5% (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_cust_state_isr15_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_state_isr15_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_est_15_en"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_customer_state_isr5_en" model="account.tax.rule.template">
<field name="name">Customer Rule State / Public Sector ISR 5% (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_cust_state_isr5_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_state_isr5_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_est_5_en"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_supplier_isr_bovine_en" model="account.tax.rule.template">
<field name="name">Livestock ISR Rule / Beef 1% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_isr_bovine_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_bovine_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_bovine_1_en"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_customer_isr_exporter_en" model="account.tax.rule.template">
<field name="name">ISR Rule Exporters Local Market 2.5% (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_cust_isr_exporter_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_isr_exporter_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_exporter_25_en"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_customer_isc_fuel_en" model="account.tax.rule.template">
<field name="name">ISC Rule Fossil Fuels 16% (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_cust_isc_fuel_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_isc_fuel_en"/>
<field name="group" ref="do_tax_group_isc_en"/>
<field name="tax" ref="do_tax_isc_combustibles_16_en"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_trline_cust_isc_fuel_rd2_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_isc_fuel_en"/>
<field name="group" ref="do_tax_group_isc_en"/>
<field name="tax" ref="do_tax_isc_fuel_rd2_gallon_en"/>
<field name="sequence" eval="20"/>
</record>
<record id="do_tax_rule_bank_check_transfer_en" model="account.tax.rule.template">
<field name="name">Banking Rule Checks / Electronic Transfers (RD)</field>
<field name="kind">both</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_bank_check_transfer_015_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_bank_check_transfer_en"/>
<field name="group" ref="do_tax_group_others_en"/>
<field name="origin_tax" ref="do_tax_cheques_015_en"/>
<field name="tax" ref="do_tax_cheques_015_en"/>
<field name="end_date" eval="datetime.date(2026, 7, 2)"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_trline_bank_check_transfer_020_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_bank_check_transfer_en"/>
<field name="group" ref="do_tax_group_others_en"/>
<field name="origin_tax" ref="do_tax_cheques_015_en"/>
<field name="tax" ref="do_tax_cheques_020_en"/>
<field name="start_date" eval="datetime.date(2026, 7, 3)"/>
<field name="sequence" eval="20"/>
</record>
<record id="do_tax_rule_supplier_informal_services_en" model="account.tax.rule.template">
<field name="name">Informal Service Provider Rule (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_inf_itbis75_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_informal_services_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_75_inf_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_trline_supp_inf_isr10_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_informal_services_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_serv_10_en"/>
<field name="sequence" eval="20"/>
</record>
<record id="do_tax_rule_supplier_rst_en" model="account.tax.rule.template">
<field name="name">RST Provider Rule with ITBIS Withholding (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_rst_itbis18_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_rst_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_rst_18_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_supplier_insurance_en" model="account.tax.rule.template">
<field name="name">Insurance Services Provider Rule (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_supp_ins_itbis_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_insurance_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_insurance_100_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_trline_supp_ins_isc_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_insurance_en"/>
<field name="group" ref="do_tax_group_isc_en"/>
<field name="tax" ref="do_tax_ret_isc_insurance_100_en"/>
<field name="sequence" eval="20"/>
</record>
<record id="do_tax_rule_customer_sectorial_retention_en" model="account.tax.rule.template">
<field name="name">Customer Rule with ITBIS Sectoral Withholding (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_en"/>
</record>
<record id="do_trline_cust_sectorial_society_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_sectorial_retention_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_society_30_suf_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_trline_cust_sectorial_airline_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_sectorial_retention_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_airline_100_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="20"/>
</record>
<record id="do_trline_cust_sectorial_hotel_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_sectorial_retention_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_hotel_100_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="30"/>
</record>
<record id="do_trline_cust_sectorial_state_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_sectorial_retention_en"/>
<field name="group" ref="do_tax_group_itbis_en"/>
<field name="tax" ref="do_tax_ret_itbis_state_100_en"/>
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="40"/>
</record>
</data>
</tryton>
+314
View File
@@ -0,0 +1,314 @@
<?xml version='1.0' encoding='utf-8'?>
<tryton>
<data language="es_419">
<record id="do_tax_rule_customer_es_419" model="account.tax.rule.template">
<field name="name">Regla de Impuestos Clientes RD</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_cust_itbis18_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_itbis_18_venta_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_es_419" model="account.tax.rule.template">
<field name="name">Regla de Impuestos Proveedores RD</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_itbis18_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_itbis_18_compra_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_customer_exento_es_419" model="account.tax.rule.template">
<field name="name">Regla Clientes Exentos ITBIS (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_cust_exento_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_exento_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_itbis_exento_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_customer_zf_es_419" model="account.tax.rule.template">
<field name="name">Regla Clientes Zona Franca / Exportaciones (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_cust_zf_itbis_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_zf_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_itbis_tasa_cero_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_ext_es_419" model="account.tax.rule.template">
<field name="name">Regla Proveedores No Residentes / Exterior (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_ext_isr27_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_ext_es_419" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="tax" ref="do_tax_ret_isr_ext_27_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_customer_itbis16_es_419" model="account.tax.rule.template">
<field name="name">Regla Clientes ITBIS 16% Tasa Especial (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_cust_itbis16_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_itbis16_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_itbis_16_venta_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_itbis16_es_419" model="account.tax.rule.template">
<field name="name">Regla Proveedores ITBIS 16% Tasa Especial (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_itbis16_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_itbis16_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_itbis_16_compra_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_itbis_ret30_es_419" model="account.tax.rule.template">
<field name="name">Regla Proveedores con Retención ITBIS 30% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_itbis_ret30_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_itbis_ret30_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_30_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_informal_goods_es_419" model="account.tax.rule.template">
<field name="name">Regla Proveedor Informal Bienes ITBIS 75% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_informal_goods_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_informal_goods_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_75_inf_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_services_itbis100_es_419" model="account.tax.rule.template">
<field name="name">Regla Servicios Gravados Retención ITBIS 100% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_services_itbis100_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_services_itbis100_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_100_inf_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_isr_pj_services_es_419" model="account.tax.rule.template">
<field name="name">Regla ISR Servicios Personas Jurídicas 5% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_isr_pj_services_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_pj_services_es_419" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="tax" ref="do_tax_ret_isr_hon_5_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_isr_pf_services_es_419" model="account.tax.rule.template">
<field name="name">Regla ISR Servicios Personas Físicas 10% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_isr_pf_services_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_pf_services_es_419" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="tax" ref="do_tax_ret_isr_serv_10_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_isr_rent_es_419" model="account.tax.rule.template">
<field name="name">Regla ISR Alquileres 10% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_isr_rent_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_rent_es_419" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="tax" ref="do_tax_ret_isr_alq_10_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_customer_state_isr15_es_419" model="account.tax.rule.template">
<field name="name">Regla Cliente Estado / Sector Público ISR 1.5% (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_cust_state_isr15_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_state_isr15_es_419" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="tax" ref="do_tax_ret_isr_est_15_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_customer_state_isr5_es_419" model="account.tax.rule.template">
<field name="name">Regla Cliente Estado / Sector Público ISR 5% (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_cust_state_isr5_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_state_isr5_es_419" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="tax" ref="do_tax_ret_isr_est_5_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_isr_bovine_es_419" model="account.tax.rule.template">
<field name="name">Regla ISR Ganadería / Carne Bovina 1% (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_isr_bovine_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_bovine_es_419" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="tax" ref="do_tax_ret_isr_bovine_1_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_customer_isr_exporter_es_419" model="account.tax.rule.template">
<field name="name">Regla ISR Exportadores Mercado Local 2.5% (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_cust_isr_exporter_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_isr_exporter_es_419" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="tax" ref="do_tax_ret_isr_exporter_25_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_customer_isc_fuel_es_419" model="account.tax.rule.template">
<field name="name">Regla ISC Combustibles Fósiles 16% (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_cust_isc_fuel_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_isc_fuel_es_419" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="tax" ref="do_tax_isc_combustibles_16_es_419" />
<field name="sequence" eval="10" />
</record>
<record id="do_trline_cust_isc_fuel_rd2_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_isc_fuel_es_419" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="tax" ref="do_tax_isc_fuel_rd2_gallon_es_419" />
<field name="sequence" eval="20" />
</record>
<record id="do_tax_rule_bank_check_transfer_es_419" model="account.tax.rule.template">
<field name="name">Regla Bancaria Cheques / Transferencias Electrónicas (RD)</field>
<field name="kind">both</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_bank_check_transfer_015_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_bank_check_transfer_es_419" />
<field name="group" ref="do_tax_group_others_es_419" />
<field name="origin_tax" ref="do_tax_cheques_015_es_419" />
<field name="tax" ref="do_tax_cheques_015_es_419" />
<field name="end_date" eval="datetime.date(2026, 7, 2)" />
<field name="sequence" eval="10" />
</record>
<record id="do_trline_bank_check_transfer_020_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_bank_check_transfer_es_419" />
<field name="group" ref="do_tax_group_others_es_419" />
<field name="origin_tax" ref="do_tax_cheques_015_es_419" />
<field name="tax" ref="do_tax_cheques_020_es_419" />
<field name="start_date" eval="datetime.date(2026, 7, 3)" />
<field name="sequence" eval="20" />
</record>
<record id="do_tax_rule_supplier_informal_services_es_419" model="account.tax.rule.template">
<field name="name">Regla Proveedor Informal Servicios (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_inf_itbis75_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_informal_services_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_75_inf_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="10" />
</record>
<record id="do_trline_supp_inf_isr10_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_informal_services_es_419" />
<field name="group" ref="do_tax_group_isr_es_419" />
<field name="tax" ref="do_tax_ret_isr_serv_10_es_419" />
<field name="sequence" eval="20" />
</record>
<record id="do_tax_rule_supplier_rst_es_419" model="account.tax.rule.template">
<field name="name">Regla Proveedor RST con Retención ITBIS (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_rst_itbis18_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_rst_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_rst_18_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="10" />
</record>
<record id="do_tax_rule_supplier_insurance_es_419" model="account.tax.rule.template">
<field name="name">Regla Proveedor Servicios de Seguro (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_supp_ins_itbis_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_insurance_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_insurance_100_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="10" />
</record>
<record id="do_trline_supp_ins_isc_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_insurance_es_419" />
<field name="group" ref="do_tax_group_isc_es_419" />
<field name="tax" ref="do_tax_ret_isc_insurance_100_es_419" />
<field name="sequence" eval="20" />
</record>
<record id="do_tax_rule_customer_sectorial_retention_es_419" model="account.tax.rule.template">
<field name="name">Regla Cliente con Retención Sectorial ITBIS (RD)</field>
<field name="kind">sale</field>
<field name="account" ref="do_account_root_es_419" />
</record>
<record id="do_trline_cust_sectorial_society_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_sectorial_retention_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_society_30_suf_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="10" />
</record>
<record id="do_trline_cust_sectorial_airline_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_sectorial_retention_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_airline_100_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="20" />
</record>
<record id="do_trline_cust_sectorial_hotel_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_sectorial_retention_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_hotel_100_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="30" />
</record>
<record id="do_trline_cust_sectorial_state_es_419" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_customer_sectorial_retention_es_419" />
<field name="group" ref="do_tax_group_itbis_es_419" />
<field name="tax" ref="do_tax_ret_itbis_state_100_es_419" />
<field name="keep_origin" eval="True" />
<field name="sequence" eval="40" />
</record>
</data>
</tryton>
-25
View File
@@ -1,25 +0,0 @@
<?xml version="1.0"?>
<tryton>
<data>
<record model="ir.ui.view" id="tax_template_view_form">
<field name="model">account.tax.template</field>
<field name="inherit" ref="account.tax_template_view_form"/>
<field name="name">tax_form</field>
</record>
<record model="ir.ui.view" id="tax_view_form">
<field name="model">account.tax</field>
<field name="inherit" ref="account.tax_view_form"/>
<field name="name">tax_form</field>
</record>
<record model="ir.ui.view" id="tax_template_view_list">
<field name="model">account.tax.template</field>
<field name="inherit" ref="account.tax_template_view_list"/>
<field name="name">tax_list</field>
</record>
<record model="ir.ui.view" id="tax_view_list">
<field name="model">account.tax</field>
<field name="inherit" ref="account.tax_view_list"/>
<field name="name">tax_list</field>
</record>
</data>
</tryton>
+5 -4
View File
@@ -3,6 +3,7 @@ Account DO Scenario
Imports::
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.account.tests.tools import create_chart
>>> from trytond.modules.company.tests.tools import create_company, get_company
@@ -18,7 +19,7 @@ Get the test company::
Create the Dominican chart of accounts::
>>> _ = create_chart(company, chart='account_do.do_account_root')
>>> _ = create_chart(company, chart='account_do.do_account_root_en')
>>> Account = Model.get('account.account')
>>> receivable, = Account.find([
... ('company', '=', company.id),
@@ -40,12 +41,12 @@ Validate fiscal objects::
>>> TaxRule = Model.get('account.tax.rule')
>>> bool(Tax.find([
... ('company', '=', company.id),
... ('description', '=', 'ITBIS 18% Ventas'),
... ('tax_kind', '=', 'itbis')]))
... ('description', '=', 'ITBIS 18% Sales'),
... ('rate', '=', Decimal('0.18'))]))
True
>>> bool(TaxCode.find([
... ('company', '=', company.id),
... ('name', '=', 'Otros Impuestos y Contribuciones')]))
... ('name', '=', 'Other Taxes and Contributions')]))
True
>>> bool(TaxRule.find([
... ('company', '=', company.id),
+747 -64
View File
@@ -1,41 +1,236 @@
import unittest
import datetime
from collections import Counter
from configparser import ConfigParser
from decimal import Decimal
from pathlib import Path
from xml.etree import ElementTree as ET
from trytond.modules.account_do.tax import TAX_KIND
from trytond.pool import Pool
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
from trytond.transaction import Transaction
MODULE_DIR = Path(__file__).resolve().parent.parent
TAX_CODE_LINE_AUDIT = {
'do_tcl_itbis18v_inv': '+',
'do_tcl_itbis18v_cr': '-',
'do_tcl_itbis18c_inv': '-',
'do_tcl_itbis18c_cr': '+',
'do_tcl_ret_itbis_inv': '-',
'do_tcl_ret_itbis_cr': '+',
'do_tcl_ret_itbis_inf75_inv': '-',
'do_tcl_ret_itbis_inf75_cr': '+',
'do_tcl_isr_hon_inv': '-',
'do_tcl_isr_hon_cr': '+',
'do_tcl_isr_est_inv': '+',
'do_tcl_isr_est_cr': '-',
'do_tcl_isc_comb_inv': '+',
'do_tcl_isc_comb_cr': '-',
'do_tcl_chq_inv': '+',
'do_tcl_chq_cr': '-',
'do_tcl_chq020_inv': '+',
'do_tcl_chq020_cr': '-',
}
IFRS_REQUIRED_ACCOUNT_CODES = {
'1', '11', '12',
'1101', '1102', '1103', '1104', '1105', '1106', '1107', '1110',
'110101', '110103', '110104', '110201', '110205', '110301',
'110305', '110601', '110701', '110702', '110703', '111001',
'111002',
'1201', '1205', '1206', '1207', '1208', '1209',
'120101', '120191', '120192', '120501', '120591', '120592',
'120601', '120701', '120702', '120703', '120801', '120891',
'120892', '120901', '120991', '120992',
'2', '21', '22', '23',
'2101', '2104', '2105', '2106', '2201', '2301', '2302', '2303',
'2304',
'210101', '210401', '210501', '210601', '220101', '230201',
'230202', '230301', '230401',
'3', '31', '3101', '3104', '3105', '3106', '310601', '310604',
'4', '41', '42', '4101', '4102', '4103', '4104', '4201', '4208',
'4209', '4210',
'5', '51', '5101', '5102', '5106',
'6', '61', '62', '63', '6101', '6103', '6111', '6112', '6115',
'6116', '6117', '6118', '6119', '6120', '6201', '6203', '6206',
'6207', '6301', '6302', '6303',
'7', '7101', '7102',
}
IFRS_ACCOUNT_TYPE_AUDIT = {
'111002': 'do_type_current_asset',
'120192': 'do_type_fixed_asset',
'120292': 'do_type_fixed_asset',
'120392': 'do_type_fixed_asset',
'120591': 'do_type_rou_asset',
'120592': 'do_type_rou_asset',
'120891': 'do_type_investment_property',
'120892': 'do_type_investment_property',
'120992': 'do_type_intangible',
'7101': 'do_type_control',
'7102': 'do_type_control',
}
IFRS_POLICY_COVERAGE = {
'NIC 1': {'11', '12', '21', '23', '3106', '7101', '7102'},
'NIC 2': {'1103', '110305', '5101', '5106'},
'NIIF 9': {'110205', '110701', '110702', '110703', '120701',
'120702', '120703', '4208', '6206', '310604'},
'NIIF 15': {'110601', '210501', '4101', '4102', '4103', '4104'},
'NIIF 16': {'120501', '120591', '120592', '230201', '230202',
'6112', '6203'},
'NIC 12': {'120601', '230301', '6301', '6302', '6303'},
'NIC 16': {'120101', '120191', '120192', '6110', '6116'},
'NIC 36': {'111002', '120192', '120292', '120392', '120592',
'120892', '120992', '6116', '6117', '4206'},
'NIC 37': {'220101', '230401', '6118', '4207'},
'NIC 38': {'120901', '120991', '120992', '6111', '6117'},
'NIC 40': {'120801', '120891', '120892', '4209', '6207'},
'NIIF 5': {'111001', '111002', '210601', '4210', '6120'},
}
def _iter_xml_records(*filenames):
for filename in filenames:
path = MODULE_DIR / filename
root = ET.parse(path).getroot()
for record in root.findall('.//record'):
english = filename.endswith('_en.xml')
values = {
field.get('name'): (
field.get('ref') or field.get('eval') or field.text or '')
for field in record.findall('field')
}
yield filename, record.get('id'), record.get('model'), values
record_id = record.get('id')
if english:
record_id = record_id.removesuffix('_en')
values = {
name: value.removesuffix('_en')
if name not in {'name', 'description'} else value
for name, value in values.items()
}
yield filename, record_id, record.get('model'), values
class AccountDoTestCase(ModuleTestCase):
"Test account_do module"
module = 'account_do'
extras = [
'account_asset',
'account_deposit',
'account_stock_continental',
]
@with_transaction()
def test_chart_template_is_loaded_by_default(self):
'Test Dominican chart template is loaded without Spanish language setup'
'Test English Dominican chart is loaded in an English database'
pool = Pool()
ModelData = pool.get('ir.model.data')
self.assertTrue(ModelData.get_id('account_do', 'do_account_root'))
self.assertTrue(ModelData.get_id('account_do', 'do_account_root_en'))
@with_transaction()
def test_default_properties_ignore_unrelated_chart(self):
'Test account_do does not override defaults for another chart'
pool = Pool()
AccountTemplate = pool.get('account.account.template')
Company = pool.get('company.company')
Currency = pool.get('currency.currency')
ModelData = pool.get('ir.model.data')
Party = pool.get('party.party')
CreateChart = pool.get('account.create_chart', type='wizard')
currency, = Currency.create([{
'name': 'Test Currency',
'code': 'TST',
'symbol': 'T',
'digits': 2,
'rounding': '0.01',
}])
party, = Party.create([{'name': 'Unrelated Chart Company'}])
company, = Company.create([{
'party': party.id,
'currency': currency.id,
}])
template = AccountTemplate(ModelData.get_id(
'account', 'account_template_root_en'))
session_id, _start, _end = CreateChart.create()
chart = CreateChart(session_id)
chart.account.account_template = template
chart.account.company = company
defaults = chart.default_properties([
'company', 'account_receivable', 'account_payable'])
self.assertEqual(defaults['company'], company.id)
self.assertIsNone(defaults['account_receivable'])
self.assertIsNone(defaults['account_payable'])
CreateChart.delete(session_id)
@with_transaction()
def test_spanish_chart_creates_spanish_accounts_and_taxes(self):
'Test the es_419 chart creates a complete independent chart'
pool = Pool()
Account = pool.get('account.account')
AccountTemplate = pool.get('account.account.template')
Company = pool.get('company.company')
Currency = pool.get('currency.currency')
ModelData = pool.get('ir.model.data')
Party = pool.get('party.party')
Tax = pool.get('account.tax')
TaxCode = pool.get('account.tax.code')
CreateChart = pool.get('account.create_chart', type='wizard')
currency, = Currency.create([{
'name': 'Peso dominicano',
'code': 'DOP',
'symbol': 'RD$',
'digits': 2,
'rounding': '0.01',
}])
party, = Party.create([{'name': 'Empresa Dominicana'}])
company, = Company.create([{
'party': party.id,
'currency': currency.id,
}])
try:
template_id = ModelData.get_id(
'account_do', 'do_account_root_es_419')
except KeyError:
self.skipTest('The es_419 chart is loaded only for es_419 databases')
template = AccountTemplate(template_id)
session_id, _start, _end = CreateChart.create()
chart = CreateChart(session_id)
chart.account.account_template = template
chart.account.company = company
chart.transition_create_account()
receivable, = Account.search([
('company', '=', company.id),
('code', '=', '110201'),
], limit=1)
payable, = Account.search([
('company', '=', company.id),
('code', '=', '210101'),
], limit=1)
defaults = chart.default_properties([
'company', 'account_receivable', 'account_payable'])
self.assertEqual(receivable.name, 'Cuentas por cobrar clientes')
self.assertEqual(payable.name, 'Cuentas por pagar proveedores')
self.assertEqual(defaults['account_receivable'], receivable.id)
self.assertEqual(defaults['account_payable'], payable.id)
self.assertTrue(Tax.search([
('company', '=', company.id),
('description', '=', 'ITBIS 18% Ventas'),
('rate', '=', Decimal('0.18')),
], limit=1))
self.assertTrue(TaxCode.search([
('company', '=', company.id),
('name', '=', 'Otros Impuestos y Contribuciones'),
], limit=1))
CreateChart.delete(session_id)
@with_transaction()
def test_chart_creates_company_accounts_and_taxes(self):
@@ -49,6 +244,7 @@ class AccountDoTestCase(ModuleTestCase):
Party = pool.get('party.party')
Tax = pool.get('account.tax')
TaxCode = pool.get('account.tax.code')
TaxCodeLine = pool.get('account.tax.code.line')
TaxRule = pool.get('account.tax.rule')
CreateChart = pool.get('account.create_chart', type='wizard')
@@ -67,7 +263,7 @@ class AccountDoTestCase(ModuleTestCase):
'currency': currency.id,
}])
template = AccountTemplate(ModelData.get_id(
'account_do', 'do_account_root'))
'account_do', 'do_account_root_en'))
session_id, _start, _end = CreateChart.create()
chart = CreateChart(session_id)
@@ -89,15 +285,53 @@ class AccountDoTestCase(ModuleTestCase):
('party_required', '=', True),
('closed', '!=', True),
], limit=1)
defaults = chart.default_properties([
'company', 'account_receivable', 'account_payable'])
self.assertEqual(defaults['company'], company.id)
self.assertEqual(defaults['account_receivable'], receivable.id)
self.assertEqual(defaults['account_payable'], payable.id)
for code in [
'110401', '110406', '210201', '210202', '210203',
'210206', '210207', '210208', '210209', '210210']:
'111002', '120192', '120292', '120392', '120591',
'120592', '120891', '120892', '120992', '7101', '7102',
'110401', '110406', '110407', '110408',
'11040101', '11040102', '11040103', '11040104',
'11040601', '11040801', '11040802', '11040803',
'210201', '210202', '210203', '210206', '210207',
'210208', '210209', '210210', '210211', '210212',
'210213', '210214', '210215', '210216', '210217',
'210218', '210219',
'21020101', '21020102', '21020103', '21020104',
'21020105', '21020201', '21020501', '21020502',
'21020601', '21020701', '21020702', '21020801',
'21020802', '21020803', '21020804', '21020805',
'21020901', '21021001', '21021101', '21021201',
'21021301', '21021302', '21021401', '21021501',
'21021502', '21021701', '21021801', '21021901',
'21021902', '6208']:
with self.subTest(code=code):
self.assertTrue(Account.search([
('company', '=', company.id),
('code', '=', code),
('closed', '!=', True),
], limit=1))
company_ifrs_types = {
'111002': 'Current Assets',
'120591': 'Right-of-use Assets',
'120592': 'Right-of-use Assets',
'120891': 'Investment Property',
'120892': 'Investment Property',
'120992': 'Intangible assets',
'7101': 'Closing and control accounts',
'7102': 'Closing and control accounts',
}
for code, account_type in company_ifrs_types.items():
with self.subTest(code=code, account_type=account_type):
account, = Account.search([
('company', '=', company.id),
('code', '=', code),
('closed', '!=', True),
], limit=1)
self.assertEqual(account.type.name, account_type)
self.assertGreaterEqual(len(Account.search([
('company', '=', company.id),
@@ -107,7 +341,7 @@ class AccountDoTestCase(ModuleTestCase):
])), 25)
self.assertTrue(TaxCode.search([
('company', '=', company.id),
('name', '=', 'ITBIS — Balance Neto (Débito Crédito)'),
('name', '=', 'ITBIS — Net Balance (Debit Credit)'),
], limit=1))
self.assertTrue(TaxRule.search([
('company', '=', company.id),
@@ -119,16 +353,71 @@ class AccountDoTestCase(ModuleTestCase):
], limit=1))
self.assertTrue(Tax.search([
('company', '=', company.id),
('description', '=', 'ITBIS 18% Ventas'),
('tax_kind', '=', 'itbis'),
('description', '=', 'ITBIS 18% Sales'),
('rate', '=', Decimal('0.18')),
], limit=1))
self.assertTrue(Tax.search([
('company', '=', company.id),
('description', '=', 'Retención ITBIS Gran Contribuyente 30%'),
('tax_kind', '=', 'itbis_withholding'),
('description', '=', 'ITBIS Withholding Large Taxpayer 30%'),
('rate', '=', Decimal('-0.054')),
], limit=1))
self.assertTrue(Tax.search([
('company', '=', company.id),
('description', '=', 'ITBIS Withholding Informal Supplier 75%'),
('rate', '=', Decimal('-0.135')),
], limit=1))
check_015, = Tax.search([
('company', '=', company.id),
('description', '=', 'Checks and Transfers Tax 0.15%'),
], limit=1)
check_020, = Tax.search([
('company', '=', company.id),
('description', '=', 'Checks and Transfers Tax 0.20%'),
], limit=1)
bank_rule, = TaxRule.search([
('company', '=', company.id),
('name', '=', (
'Banking Rule Checks / Electronic Transfers '
'(RD)')),
], limit=1)
self.assertEqual(check_015.end_date, datetime.date(2026, 7, 2))
self.assertEqual(check_020.start_date, datetime.date(2026, 7, 3))
self.assertEqual(
bank_rule.apply(check_015, {
'date': datetime.date(2026, 7, 2),
}),
[check_015.id])
self.assertEqual(
bank_rule.apply(check_015, {
'date': datetime.date(2026, 7, 3),
}),
[check_020.id])
real_tax_code_signs = {
('ITBIS 18% Sales', 'invoice'): '+',
('ITBIS 18% Sales', 'credit'): '-',
('ITBIS 18% Purchases', 'invoice'): '-',
('ITBIS 18% Purchases', 'credit'): '+',
('ITBIS Withholding Large Taxpayer 30%', 'invoice'): '-',
('ITBIS Withholding Large Taxpayer 30%', 'credit'): '+',
('ISR Withholding Individual 10%', 'invoice'): '-',
('ISR Withholding Individual 10%', 'credit'): '+',
('ISR Withholding State 1.5%', 'invoice'): '+',
('ISR Withholding State 1.5%', 'credit'): '-',
('Checks and Transfers Tax 0.20%', 'invoice'): '+',
('Checks and Transfers Tax 0.20%', 'credit'): '-',
}
for (description, line_type), operator in real_tax_code_signs.items():
with self.subTest(description=description, line_type=line_type):
tax, = Tax.search([
('company', '=', company.id),
('description', '=', description),
], limit=1)
line, = TaxCodeLine.search([
('tax', '=', tax.id),
('type', '=', line_type),
('amount', '=', 'tax'),
], limit=1)
self.assertEqual(line.operator, operator)
chart.properties.company = company
chart.properties.account_receivable = receivable
@@ -138,22 +427,282 @@ class AccountDoTestCase(ModuleTestCase):
CreateChart.delete(session_id)
class SpanishAccountDoTestCase(ModuleTestCase):
"Test the Latin American Spanish account_do data set"
module = 'account_do'
extras = AccountDoTestCase.extras
language = 'es_419'
test_spanish_chart_creates_spanish_accounts_and_taxes = (
AccountDoTestCase.test_spanish_chart_creates_spanish_accounts_and_taxes)
@with_transaction()
def test_migrate_pre_language_identifiers(self):
'Test 8.0.0 identifiers migrate without deleting referenced records'
pool = Pool()
AccountTemplate = pool.get('account.account.template')
ModelData = pool.get('ir.model.data')
root_id = ModelData.get_id(
'account_do', 'do_account_root_es_419')
root_data, = ModelData.search([
('module', '=', 'account_do'),
('fs_id', '=', 'do_account_root_es_419'),
])
ModelData.write([root_data], {'fs_id': 'do_account_root'})
legacy, = AccountTemplate.create([{
'name': 'Legacy Obsolete Tax Placeholder',
'parent': root_id,
}])
ModelData.create([{
'module': 'account_do',
'fs_id': 'do_tax_itbis_8_venta',
'model': 'account.account.template',
'db_id': legacy.id,
'noupdate': False,
}])
ModelData._migrate_localization_identifiers()
self.assertEqual(
ModelData.get_id('account_do', 'do_account_root_es_419'),
root_id)
self.assertFalse(ModelData.search([
('module', '=', 'account_do'),
('fs_id', '=', 'do_tax_itbis_8_venta'),
]))
class AccountDoUnitTestCase(unittest.TestCase):
def test_static_project_configuration_is_complete(self):
config = ConfigParser()
config.read(MODULE_DIR / 'tryton.cfg', encoding='utf-8')
def lines(section, option):
return [
line.strip()
for line in config.get(section, option).splitlines()
if line.strip()
]
self.assertEqual(config.get('tryton', 'version'), '8.0.1')
self.assertEqual(
set(lines('tryton', 'depends')),
{'account', 'ir'})
self.assertEqual(
lines('tryton', 'xml'),
[
'account_chart_do_en.xml',
'tax_do_en.xml',
'tax_code_do_en.xml',
'tax_rule_do_en.xml',
'account_chart_do_es_419.xml',
'tax_do_es_419.xml',
'tax_code_do_es_419.xml',
'tax_rule_do_es_419.xml',
])
self.assertEqual(lines('register', 'model'), ['ir.ModelData'])
self.assertEqual(lines('register', 'wizard'), ['account.CreateChart'])
for filename in lines('tryton', 'xml'):
self.assertTrue((MODULE_DIR / filename).is_file())
self.assertTrue((MODULE_DIR / 'account.py').is_file())
pyproject = (MODULE_DIR / 'pyproject.toml').read_text(encoding='utf-8')
self.assertIn("name = 'trytond_account_do'", pyproject)
self.assertIn(
"account_do = 'trytond.modules.account_do'", pyproject)
self.assertIn(
'{name = "Fundación Un País Mejor"}', pyproject)
self.assertIn(
'homepage = "https://www.unpaismejor.org.do"', pyproject)
self.assertIn(
('repository = "https://code.unpaismejor.org.do/'
'tryton-do/account_do"'), pyproject)
self.assertIn("exclude = ['doc']", pyproject)
for package_file in ['**/*.xml', 'tests/**/*.rst']:
self.assertIn(package_file, pyproject)
for filename in [
'__init__.py',
'account.py',
'doc/conf.py',
'tests/test_scenario.py',
]:
with self.subTest(filename=filename):
source = (MODULE_DIR / filename).read_text(encoding='utf-8')
self.assertIn('This file is part of Tryton.', source)
account = (MODULE_DIR / 'account.py').read_text(encoding='utf-8')
self.assertIn("class CreateChart(metaclass=PoolMeta):", account)
self.assertIn(
"'account_do.do_account_110201_en'", account)
self.assertIn(
"'account_do.do_account_210101_en'", account)
readme = (MODULE_DIR / 'README.rst').read_text(encoding='utf-8')
self.assertNotIn('100% de la base estructural', readme)
self.assertNotIn('catalogo_cuentas_niif_rd_tryton_completo', readme)
for filename in [
'doc/conf.py',
'doc/design.rst',
'doc/reference.rst',
'doc/releases.rst',
]:
self.assertTrue((MODULE_DIR / filename).is_file())
def test_xml_record_inventory_is_explicit(self):
expected = {
'account_chart_do_en.xml': {
'account.account.type.template': 36,
'account.account.template': 281,
},
'tax_do_en.xml': {
'account.tax.group': 7,
'account.tax.template': 50,
},
'tax_code_do_en.xml': {
'account.tax.code.template': 44,
'account.tax.code.line.template': 93,
},
'tax_rule_do_en.xml': {
'account.tax.rule.template': 23,
'account.tax.rule.line.template': 30,
},
'account_chart_do_es_419.xml': {
'account.account.type.template': 36,
'account.account.template': 281,
},
'tax_do_es_419.xml': {
'account.tax.group': 7,
'account.tax.template': 50,
},
'tax_code_do_es_419.xml': {
'account.tax.code.template': 44,
'account.tax.code.line.template': 93,
},
'tax_rule_do_es_419.xml': {
'account.tax.rule.template': 23,
'account.tax.rule.line.template': 30,
},
}
for filename, expected_counts in expected.items():
records = list(_iter_xml_records(filename))
with self.subTest(filename=filename):
self.assertEqual(
dict(Counter(model for _, _, model, _ in records)),
expected_counts)
self.assertFalse([
(record_id, model)
for _, record_id, model, _ in records
if not record_id or not model])
duplicate_ids = [
record_id
for record_id, count in Counter(
record_id for _, record_id, _, _ in records).items()
if count > 1]
self.assertEqual(duplicate_ids, [])
def test_xml_data_is_scoped_to_its_language(self):
'Every data section follows the language-specific chart convention'
for language in ['en', 'es_419']:
for stem in [
'account_chart_do', 'tax_do', 'tax_code_do',
'tax_rule_do']:
filename = f'{stem}_{language}.xml'
root = ET.parse(MODULE_DIR / filename).getroot()
with self.subTest(filename=filename):
self.assertTrue(root.findall('data'))
self.assertEqual(
{data.get('language') for data in root.findall('data')},
{language})
def test_english_accounting_terminology_is_consistent(self):
'English datasets avoid literal Spanish accounting translations'
text = '\n'.join(
field.text.strip()
for filename in [
'account_chart_do_en.xml', 'tax_do_en.xml',
'tax_code_do_en.xml', 'tax_rule_do_en.xml']
for field in ET.parse(MODULE_DIR / filename).getroot().findall(
'.//field')
if field.get('name') in {'name', 'description'} and field.text)
for phrase in [
'advance itbis', 'assets for right of use',
'charged for paying', 'clients tax rule',
'collected to pay', 'deterioration', 'in favor',
'itbis supported', 'other income and profits',
'physical persons', 'retention', 'withheld status',
]:
with self.subTest(phrase=phrase):
self.assertNotIn(phrase, text.lower())
def test_spanish_chart_has_complete_parallel_identifiers(self):
pairs = [
('account_chart_do_en.xml', 'account_chart_do_es_419.xml'),
('tax_do_en.xml', 'tax_do_es_419.xml'),
('tax_code_do_en.xml', 'tax_code_do_es_419.xml'),
('tax_rule_do_en.xml', 'tax_rule_do_es_419.xml'),
]
for english_file, spanish_file in pairs:
english = {
record_id: model
for _, record_id, model, _ in _iter_xml_records(english_file)
}
spanish = {
record_id: model
for _, record_id, model, _ in _iter_xml_records(spanish_file)
}
with self.subTest(spanish_file=spanish_file):
self.assertEqual(
spanish,
{record_id + '_es_419': model
for record_id, model in english.items()})
spanish_accounts = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'account_chart_do_es_419.xml')
if model == 'account.account.template'
}
spanish_taxes = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'tax_do_es_419.xml')
if model == 'account.tax.template'
}
self.assertEqual(
spanish_accounts['do_account_root_es_419']['name'],
'Plan de Cuentas NIIF - República Dominicana')
self.assertEqual(
spanish_accounts['do_account_110201_es_419']['name'],
'Cuentas por cobrar clientes')
self.assertEqual(
spanish_taxes['do_tax_itbis_18_venta_es_419']['description'],
'ITBIS 18% Ventas')
def test_xml_references_are_resolved_inside_module(self):
records = list(_iter_xml_records(
'account_chart_do.xml',
'tax_do.xml',
'tax_code_do.xml',
'tax_rule_do.xml',
'account_chart_do_en.xml',
'tax_do_en.xml',
'tax_code_do_en.xml',
'tax_rule_do_en.xml',
'account_chart_do_es_419.xml',
'tax_do_es_419.xml',
'tax_code_do_es_419.xml',
'tax_rule_do_es_419.xml',
))
ids = {record_id for _, record_id, _, _ in records}
ids = set()
for filename in {
filename for filename, _record_id, _model, _values in records}:
root = ET.parse(MODULE_DIR / filename).getroot()
ids.update(
record.get('id') for record in root.findall('.//record'))
missing = []
for filename in [
'account_chart_do.xml',
'tax_do.xml',
'tax_code_do.xml',
'tax_rule_do.xml',
'account_chart_do_en.xml',
'tax_do_en.xml',
'tax_code_do_en.xml',
'tax_rule_do_en.xml',
'account_chart_do_es_419.xml',
'tax_do_es_419.xml',
'tax_code_do_es_419.xml',
'tax_rule_do_es_419.xml',
]:
root = ET.parse(MODULE_DIR / filename).getroot()
for record in root.findall('.//record'):
@@ -167,7 +716,7 @@ class AccountDoUnitTestCase(unittest.TestCase):
def test_chart_template_codes_are_unique(self):
accounts = [
values for _, _, model, values in _iter_xml_records(
'account_chart_do.xml')
'account_chart_do_en.xml')
if model == 'account.account.template'
]
codes = [values['code'] for values in accounts if values.get('code')]
@@ -179,13 +728,13 @@ class AccountDoUnitTestCase(unittest.TestCase):
accounts = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'account_chart_do.xml')
'account_chart_do_en.xml')
if model == 'account.account.template'
}
types = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'account_chart_do.xml')
'account_chart_do_en.xml')
if model == 'account.account.type.template'
}
@@ -202,53 +751,164 @@ class AccountDoUnitTestCase(unittest.TestCase):
self.assertEqual(
accounts['do_account_210101']['type'], 'do_type_payable')
def test_ifrs_chart_is_complete_and_typed(self):
accounts = {
values['code']: values
for _, _, model, values in _iter_xml_records(
'account_chart_do_en.xml')
if model == 'account.account.template' and values.get('code')
}
types = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'account_chart_do_en.xml')
if model == 'account.account.type.template'
}
self.assertLessEqual(IFRS_REQUIRED_ACCOUNT_CODES, set(accounts))
self.assertEqual(types['do_type_control']['statement'], 'off-balance')
self.assertEqual(
types['do_type_deferred_tax_asset']['statement'], 'balance')
self.assertEqual(
types['do_type_deferred_tax_liability']['statement'], 'balance')
self.assertEqual(types['do_type_rou_asset']['statement'], 'balance')
self.assertEqual(
types['do_type_investment_property']['statement'], 'balance')
self.assertEqual(types['do_type_intangible']['statement'], 'balance')
missing_type = [
(code, values['name'])
for code, values in accounts.items()
if values.get('closed') != 'True' and not values.get('type')
]
self.assertEqual(missing_type, [])
for code, account_type in IFRS_ACCOUNT_TYPE_AUDIT.items():
with self.subTest(code=code):
self.assertEqual(accounts[code]['type'], account_type)
def test_ifrs_policy_matrix_is_represented_in_chart(self):
accounts = {
values['code']
for _, _, model, values in _iter_xml_records(
'account_chart_do_en.xml')
if model == 'account.account.template' and values.get('code')
}
for standard, codes in IFRS_POLICY_COVERAGE.items():
with self.subTest(standard=standard):
self.assertLessEqual(codes, accounts)
def test_no_spanish_technical_other_tax_ids_remain(self):
ids = {
record_id
for _, record_id, _, _ in _iter_xml_records(
'tax_do.xml', 'tax_code_do.xml')
'tax_do_en.xml', 'tax_code_do_en.xml')
}
self.assertFalse([record_id for record_id in ids if 'otros' in record_id])
def test_tax_templates_are_classified(self):
def test_tax_templates_are_complete(self):
taxes = {
record_id: values
for _, record_id, model, values in _iter_xml_records('tax_do.xml')
for _, record_id, model, values in _iter_xml_records('tax_do_en.xml')
if model == 'account.tax.template'
}
self.assertEqual(len(taxes), 31)
self.assertFalse([
record_id for record_id, values in taxes.items()
if not values.get('tax_kind')])
self.assertEqual(
taxes['do_tax_itbis_18_venta']['invoice_account'],
'do_account_210201')
self.assertEqual(
taxes['do_tax_itbis_18_compra']['invoice_account'],
'do_account_110401')
self.assertEqual(
taxes['do_tax_ret_itbis_30']['tax_kind'],
'itbis_withholding')
accounts = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'account_chart_do_en.xml')
if model == 'account.account.template'
}
self.assertEqual(len(taxes), 50)
for record_id, values in taxes.items():
with self.subTest(record_id=record_id):
self.assertEqual(
values.get('credit_note_account'),
values.get('invoice_account'))
account_id = values.get('invoice_account')
if values['type'] != 'none':
self.assertTrue(account_id)
self.assertIn(account_id, accounts)
self.assertTrue(
values.get('rate') or values.get('amount'))
else:
self.assertFalse(values.get('rate'))
self.assertTrue(values.get('legal_notice'))
self.assertIn(
"Decimal('-5.4')/100",
taxes['do_tax_ret_itbis_30']['rate'])
self.assertIn(
"Decimal('-13.5')/100",
taxes['do_tax_ret_itbis_75_inf']['rate'])
for record_id in [
'do_tax_ret_isr_hon_5',
'do_tax_ret_isr_serv_10',
'do_tax_ret_isr_alq_10',
'do_tax_ret_isr_est_5',
'do_tax_ret_isr_bovine_1',
'do_tax_ret_isr_exporter_25',
'do_tax_ret_isr_ext_27',
]:
self.assertIn("Decimal('-", taxes[record_id]['rate'])
self.assertIn(
"Decimal('10')/100",
taxes['do_tax_isc_bebidas_alc']['rate'])
self.assertEqual(
taxes['do_tax_cheques_020']['tax_kind'], 'others')
taxes['do_tax_ret_isr_bovine_1']['start_date'],
'datetime.date(2025, 6, 20)')
self.assertIn(
'arts. 401-405; art. 404',
taxes['do_tax_activos_1']['legal_notice'])
self.assertIn(
'art. 7 Ley 173-07',
taxes['do_tax_iti_3']['legal_notice'])
self.assertIn(
'art. 228', taxes['do_tax_propina_10']['legal_notice'])
self.assertEqual(
taxes['do_tax_isc_vehiculos']['group'],
'do_tax_group_others')
self.assertNotIn('do_tax_itbis_8_venta', taxes)
self.assertNotIn('do_tax_itbis_9_venta', taxes)
self.assertEqual(
taxes['do_tax_cheques_015']['end_date'],
'datetime.date(2026, 7, 2)')
self.assertEqual(
taxes['do_tax_cheques_020']['start_date'],
'datetime.date(2026, 7, 3)')
self.assertEqual(
taxes['do_tax_cheques_020']['invoice_account'],
'do_account_21021902')
self.assertIn(
"Decimal('0.20')/100",
taxes['do_tax_cheques_020']['rate'])
def test_tax_validation_register_is_complete(self):
'Every tax template is inventoried in the validation register'
taxes = {
record_id
for _, record_id, model, _ in _iter_xml_records('tax_do_en.xml')
if model == 'account.tax.template'
}
documentation = (MODULE_DIR / 'doc' / 'tax_validation.rst').read_text(
encoding='utf-8')
documented = {
token.strip('`')
for token in documentation.split()
if token.startswith('``do_tax_') and token.endswith('``')
}
self.assertEqual(documented, taxes)
def test_tax_code_templates_use_expected_signs(self):
codes = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'tax_code_do.xml')
'tax_code_do_en.xml')
if model == 'account.tax.code.template'
}
lines = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'tax_code_do.xml')
'tax_code_do_en.xml')
if model == 'account.tax.code.line.template'
}
for record_id in [
@@ -259,7 +919,7 @@ class AccountDoUnitTestCase(unittest.TestCase):
'do_tc_others',
]:
self.assertEqual(codes[record_id].get('parent'), 'None')
self.assertEqual(codes['do_tc_isr']['name'], 'ISR - Retenciones')
self.assertEqual(codes['do_tc_isr']['name'], 'ISR: Withholdings')
self.assertEqual(
lines['do_tcl_isr_int_pf_inv']['code'],
'do_tc_isr_intereses_pf')
@@ -278,29 +938,52 @@ class AccountDoUnitTestCase(unittest.TestCase):
self.assertEqual(
lines['do_tcl_chq020_cr']['code'],
'do_tc_others_checks_020')
for record_id, operator in TAX_CODE_LINE_AUDIT.items():
with self.subTest(record_id=record_id):
self.assertEqual(lines[record_id]['operator'], operator)
self.assertEqual(lines['do_tcl_itbis18v_inv']['operator'], '+')
self.assertEqual(lines['do_tcl_itbis18c_inv']['operator'], '-')
self.assertEqual(lines['do_tcl_ret_itbis_inv']['operator'], '+')
self.assertEqual(lines['do_tcl_ret_itbis_adq_inv']['operator'], '-')
self.assertEqual(lines['do_tcl_ret_itbis_inv']['operator'], '-')
self.assertEqual(lines['do_tcl_ret_itbis_inf75_inv']['operator'], '-')
self.assertEqual(lines['do_tcl_isr_hon_inv']['operator'], '-')
self.assertEqual(lines['do_tcl_isr_est_inv']['operator'], '+')
self.assertEqual(lines['do_tcl_isr_est5_inv']['operator'], '+')
self.assertEqual(lines['do_tcl_isr_bovine_inv']['operator'], '-')
self.assertEqual(lines['do_tcl_isr_exporter_inv']['operator'], '+')
self.assertEqual(lines['do_tcl_isc_comb_inv']['operator'], '+')
self.assertEqual(lines['do_tcl_prop_inv']['code'], 'do_tc_others_tip')
def test_tax_kind_contains_dominican_tax_categories(self):
codes = {code for code, _ in TAX_KIND}
self.assertEqual(codes, {
'',
'itbis',
'itbis_withholding',
'itbis_withholding_acquirer',
'isr_withholding',
'isc',
'cdt',
'tip',
'others',
})
def test_tax_kind_codes_are_unique(self):
codes = [code for code, _ in TAX_KIND]
self.assertEqual(len(codes), len(set(codes)))
def test_tax_rule_templates_include_date_sensitive_bank_tax(self):
rules = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'tax_rule_do_en.xml')
if model == 'account.tax.rule.template'
}
lines = {
record_id: values
for _, record_id, model, values in _iter_xml_records(
'tax_rule_do_en.xml')
if model == 'account.tax.rule.line.template'
}
self.assertIn('do_tax_rule_bank_check_transfer', rules)
self.assertEqual(
lines['do_trline_bank_check_transfer_015']['origin_tax'],
'do_tax_cheques_015')
self.assertEqual(
lines['do_trline_bank_check_transfer_015']['tax'],
'do_tax_cheques_015')
self.assertEqual(
lines['do_trline_bank_check_transfer_015']['end_date'],
'datetime.date(2026, 7, 2)')
self.assertEqual(
lines['do_trline_bank_check_transfer_020']['origin_tax'],
'do_tax_cheques_015')
self.assertEqual(
lines['do_trline_bank_check_transfer_020']['tax'],
'do_tax_cheques_020')
self.assertEqual(
lines['do_trline_bank_check_transfer_020']['start_date'],
'datetime.date(2026, 7, 3)')
del ModuleTestCase
+24
View File
@@ -0,0 +1,24 @@
[tox]
envlist = {py310,py311,py312,py313,py314}-{sqlite,postgresql}
[testenv]
changedir = {env_site_packages_dir}
extras = test
commands =
coverage run --rcfile={toxinidir}/tox.ini --source=trytond.modules.account_do --omit=*/tests/* -m xmlrunner discover -s trytond.modules.account_do {posargs}
commands_post =
coverage report --rcfile={toxinidir}/tox.ini
coverage xml --rcfile={toxinidir}/tox.ini -o {package_root}/coverage.xml
deps =
coverage
unittest-xml-reporting
postgresql: psycopg[pool,binary] >= 3
passenv = *
setenv =
sqlite: TRYTOND_DATABASE_URI={env:SQLITE_URI:sqlite://}
postgresql: TRYTOND_DATABASE_URI={env:POSTGRESQL_URI:postgresql://}
sqlite: DB_NAME={env:DB_NAME::memory:}
postgresql: DB_NAME={env:DB_NAME:test}
[coverage:run]
relative_files = true
+13 -12
View File
@@ -1,19 +1,20 @@
[tryton]
version=8.0.0
version=8.0.1
depends:
account
company
currency
ir
xml:
account_chart_do.xml
tax_do.xml
tax_view.xml
tax_code_do.xml
tax_rule_do.xml
account_chart_do_en.xml
tax_do_en.xml
tax_code_do_en.xml
tax_rule_do_en.xml
account_chart_do_es_419.xml
tax_do_es_419.xml
tax_code_do_es_419.xml
tax_rule_do_es_419.xml
[register]
model:
tax.TaxTemplate
tax.Tax
tax.TaxCode
tax.TaxCodeLine
ir.ModelData
wizard:
account.CreateChart
-7
View File
@@ -1,7 +0,0 @@
<?xml version="1.0"?>
<data>
<xpath expr="//field[@name='type']" position="after">
<label name="tax_kind"/>
<field name="tax_kind"/>
</xpath>
</data>
-6
View File
@@ -1,6 +0,0 @@
<?xml version="1.0"?>
<data>
<xpath expr="//field[@name='type']" position="after">
<field name="tax_kind" optional="1"/>
</xpath>
</data>