Compare commits
4
Commits
a740366693
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c42329379 | ||
|
|
b5cd05f5f5 | ||
|
|
22281ed4a6 | ||
|
|
d708024c58 |
@@ -1,4 +1,4 @@
|
||||
Version 8.0.1 - 2026-08-09
|
||||
Version 8.1.0 - 2026-08-10
|
||||
--------------------------
|
||||
* Initial release.
|
||||
* Document tax requirements and official source provenance.
|
||||
@@ -8,3 +8,9 @@ Version 8.0.1 - 2026-08-09
|
||||
(``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.
|
||||
* Add the 15% foreign-payment withholding introduced by Law 30-26 and keep
|
||||
technical assistance out of the 10% interest category.
|
||||
* Split tax rules whose duplicate match patterns made later alternatives
|
||||
unreachable.
|
||||
* Remove unused tax-group and tax-code records from the initial data set.
|
||||
* Translate every user-visible legal notice in the English tax catalog.
|
||||
|
||||
+10
-8
@@ -3,6 +3,15 @@
|
||||
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
|
||||
CHART_DEFAULT_ACCOUNTS = {
|
||||
'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'),
|
||||
}
|
||||
|
||||
|
||||
class CreateChart(metaclass=PoolMeta):
|
||||
__name__ = 'account.create_chart'
|
||||
@@ -12,14 +21,7 @@ class CreateChart(metaclass=PoolMeta):
|
||||
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')),
|
||||
]:
|
||||
for root, accounts in CHART_DEFAULT_ACCOUNTS.items():
|
||||
try:
|
||||
chart_defaults[ModelData.get_id(root)] = accounts
|
||||
except KeyError:
|
||||
|
||||
@@ -1716,13 +1716,19 @@
|
||||
<data language="en" grouped="1">
|
||||
<record id="do_account_21020701_en" model="account.account.template">
|
||||
<field name="code">21020701</field>
|
||||
<field name="name">Foreign ISR services and royalties 27% payable</field>
|
||||
<field name="name">Foreign ISR other taxable payments 27% payable</field>
|
||||
<field name="parent" ref="do_account_210207_en"/>
|
||||
<field name="type" ref="do_type_tax_payable_en"/>
|
||||
</record>
|
||||
<record id="do_account_21020702_en" model="account.account.template">
|
||||
<field name="code">21020702</field>
|
||||
<field name="name">Foreign ISR interest and assistance 10% payable</field>
|
||||
<field name="name">Foreign ISR interest 10% payable</field>
|
||||
<field name="parent" ref="do_account_210207_en"/>
|
||||
<field name="type" ref="do_type_tax_payable_en"/>
|
||||
</record>
|
||||
<record id="do_account_21020703_en" model="account.account.template">
|
||||
<field name="code">21020703</field>
|
||||
<field name="name">Foreign ISR royalties, software and online services 15% payable</field>
|
||||
<field name="parent" ref="do_account_210207_en"/>
|
||||
<field name="type" ref="do_type_tax_payable_en"/>
|
||||
</record>
|
||||
|
||||
@@ -1708,13 +1708,19 @@
|
||||
<data language="es_419" grouped="1">
|
||||
<record id="do_account_21020701_es_419" model="account.account.template">
|
||||
<field name="code">21020701</field>
|
||||
<field name="name">ISR exterior servicios y regalías 27% por pagar</field>
|
||||
<field name="name">ISR exterior otros pagos gravados 27% por pagar</field>
|
||||
<field name="parent" ref="do_account_210207_es_419" />
|
||||
<field name="type" ref="do_type_tax_payable_es_419" />
|
||||
</record>
|
||||
<record id="do_account_21020702_es_419" model="account.account.template">
|
||||
<field name="code">21020702</field>
|
||||
<field name="name">ISR exterior intereses y asistencia 10% por pagar</field>
|
||||
<field name="name">ISR exterior intereses 10% por pagar</field>
|
||||
<field name="parent" ref="do_account_210207_es_419" />
|
||||
<field name="type" ref="do_type_tax_payable_es_419" />
|
||||
</record>
|
||||
<record id="do_account_21020703_es_419" model="account.account.template">
|
||||
<field name="code">21020703</field>
|
||||
<field name="name">ISR exterior regalías, software y servicios en línea 15% por pagar</field>
|
||||
<field name="parent" ref="do_account_210207_es_419" />
|
||||
<field name="type" ref="do_type_tax_payable_es_419" />
|
||||
</record>
|
||||
@@ -2057,4 +2063,4 @@
|
||||
<field name="type" ref="do_type_tax_payable_es_419" />
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
</tryton>
|
||||
|
||||
@@ -19,7 +19,7 @@ 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
|
||||
The chart has 282 templates: 70 grouping nodes and 212 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,
|
||||
@@ -36,7 +36,7 @@ designed Tryton baseline using these objective inclusion rules:
|
||||
* 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
|
||||
282 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.
|
||||
|
||||
@@ -45,7 +45,7 @@ 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.
|
||||
282 codes are official would be incorrect.
|
||||
|
||||
Upstream Repository
|
||||
-------------------
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
Releases
|
||||
========
|
||||
|
||||
8.0.1
|
||||
8.1.0
|
||||
-----
|
||||
|
||||
Initial release with the Dominican chart of accounts, fiscal accounts, taxes,
|
||||
|
||||
+3
-1
@@ -56,8 +56,10 @@ Official References
|
||||
<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)
|
||||
* `Law 30-26 (foreign payments, bank checks and electronic transfers)
|
||||
<https://dgii.gov.do/transparencia/baseLegal/Documents/Leyes/30-26.pdf>`_
|
||||
* `DGII implementation calendar for Law 30-26
|
||||
<https://dgii.gov.do/publicacionesOficiales/avisosInformativos/Documents/2026/10-26.pdf>`_
|
||||
|
||||
Review Record
|
||||
-------------
|
||||
|
||||
@@ -87,6 +87,13 @@ 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.
|
||||
|
||||
Law 30-26 also introduced articles 305-1 and 305-2 of the Tax Code. From
|
||||
1 July 2026, royalties or rights, software licences, online advertising and
|
||||
the right to use or store data paid abroad are subject to a distinct 15%
|
||||
withholding. Other taxable payments abroad remain at 27%, while article 306
|
||||
interest remains at 10%. Technical assistance must therefore not be
|
||||
classified as article 306 interest.
|
||||
|
||||
Validation Boundary
|
||||
-------------------
|
||||
|
||||
|
||||
@@ -62,7 +62,8 @@ ISR Withholdings
|
||||
* ``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_27`` — 27% qualifying payment abroad not governed by a special rate.
|
||||
* ``do_tax_ret_isr_ext_15`` — 15% royalties or rights, software licences, online advertising and data use or storage paid abroad from 1 July 2026.
|
||||
* ``do_tax_ret_isr_ext_10`` — 10% qualifying interest paid abroad.
|
||||
|
||||
Selective and Sector Charges
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
# 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',
|
||||
|
||||
+16
-5
@@ -14,11 +14,6 @@
|
||||
<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>
|
||||
@@ -740,6 +735,22 @@
|
||||
<field name="type">credit</field>
|
||||
</record>
|
||||
|
||||
<!-- ISR Exterior 15% -->
|
||||
<record id="do_tcl_isr_ext15_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_15_en"/>
|
||||
<field name="amount">tax</field>
|
||||
<field name="type">invoice</field>
|
||||
</record>
|
||||
<record id="do_tcl_isr_ext15_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_15_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"/>
|
||||
|
||||
+15
-5
@@ -1,10 +1,6 @@
|
||||
<?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" />
|
||||
@@ -661,6 +657,20 @@
|
||||
<field name="amount">tax</field>
|
||||
<field name="type">credit</field>
|
||||
</record>
|
||||
<record id="do_tcl_isr_ext15_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_15_es_419" />
|
||||
<field name="amount">tax</field>
|
||||
<field name="type">invoice</field>
|
||||
</record>
|
||||
<record id="do_tcl_isr_ext15_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_15_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>
|
||||
@@ -872,4 +882,4 @@
|
||||
<field name="type">credit</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
</tryton>
|
||||
|
||||
+66
-59
@@ -12,11 +12,6 @@
|
||||
<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>
|
||||
@@ -53,7 +48,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Arts. 335-392; Law 253-12 Art. 10; Decree 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>
|
||||
@@ -64,7 +59,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 345, amended by Law 253-12 — special 16% rate</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>
|
||||
@@ -75,7 +70,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Arts. 349-357 — ITBIS input tax credit; Decree 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>
|
||||
@@ -86,7 +81,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 345 — input tax credit at the special 16% rate</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>
|
||||
@@ -94,7 +89,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Arts. 343-344; Law 288-04; DGII General Rule 12-22</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>
|
||||
@@ -105,7 +100,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 342; Laws 557-05 and 8-90; DGII General Rule 05-19</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">
|
||||
@@ -117,7 +112,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII General Rule 01-11; Tax Code Arts. 309 and 337 — large taxpayers</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">
|
||||
@@ -129,7 +124,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 309; Decree 95-12 — fees paid to legal entities</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>
|
||||
@@ -140,7 +135,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 309; Decree 95-12 — fees paid to individuals</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>
|
||||
@@ -151,7 +146,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 308; Decree 95-12; DGII Form 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>
|
||||
@@ -162,7 +157,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII General Rule 07-19; Tax Code Art. 306 bis — interest paid to individuals</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>
|
||||
@@ -173,7 +168,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 309; DGII General Rule 08-11 — rentals and leases</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>
|
||||
@@ -184,7 +179,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 309; Decree 95-12; DGII Form 623 — public sector</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>
|
||||
@@ -195,7 +190,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 309, amended by Law 253-12 — 5% on state payments</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>
|
||||
@@ -207,7 +202,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII General Rule 04-2025 Arts. 2, 4, 5 and 11 — 1% of billed amount</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>
|
||||
@@ -218,7 +213,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII General Rule 15-07 — 2.5% on exporters' domestic sales</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>
|
||||
@@ -229,7 +224,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII General Rule 07-19; Tax Code Art. 306 bis — interest paid to legal entities</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>
|
||||
@@ -240,7 +235,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 321; Decree 95-12 — prizes and lotteries, final payment</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>
|
||||
@@ -251,7 +246,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 309, amended by Law 253-12 — prizes from RD$100,001 to RD$500,000</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>
|
||||
@@ -262,7 +257,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 309, amended by Law 253-12 — prizes from RD$500,001 to RD$1,000,000</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>
|
||||
@@ -273,7 +268,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 309, amended by Law 253-12 — slot-machine prizes</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>
|
||||
@@ -284,30 +279,42 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 309, amended by Law 253-12 — other income not covered</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="name">ISR Withholding 27% — Other Taxable Payments Abroad (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="group" ref="do_tax_group_isr_ext_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>
|
||||
<field name="legal_notice">Tax Code Art. 305 — taxable payments not subject to a special rate</field>
|
||||
</record>
|
||||
<record id="do_tax_ret_isr_ext_15_en" model="account.tax.template">
|
||||
<field name="name">ISR Withholding 15% — Foreign Royalties, Software and Online Services</field>
|
||||
<field name="description">Foreign ISR Withholding 15%</field>
|
||||
<field name="type">percentage</field>
|
||||
<field name="rate" eval="Decimal('-15')/100" />
|
||||
<field name="start_date" eval="datetime.date(2026, 7, 1)" />
|
||||
<field name="group" ref="do_tax_group_isr_ext_en" />
|
||||
<field name="account" ref="do_account_root_en" />
|
||||
<field name="invoice_account" ref="do_account_21020703_en" />
|
||||
<field name="credit_note_account" ref="do_account_21020703_en" />
|
||||
<field name="legal_notice">Arts. 305-1 and 305-2 CT, introduced by Law 30-26 — royalties or rights, software licences, online advertising and data use or storage</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="name">ISR Withholding 10% — Interest Paid Abroad (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="group" ref="do_tax_group_isr_ext_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>
|
||||
<field name="legal_notice">Art. 306 CT — interest paid or credited abroad</field>
|
||||
</record>
|
||||
<!-- ══════ ITBIS ADICIONAL — Retenciones especiales DGII ══════ -->
|
||||
<!-- Servicios gravados con retención del 100% del ITBIS según NG 01-11. -->
|
||||
@@ -320,7 +327,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII General Rule 01-11 — 100% of ITBIS on taxable services</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%. -->
|
||||
@@ -333,7 +340,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII General Rule 08-10 — 75% of ITBIS on informal-supplier purchases</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>
|
||||
@@ -344,7 +351,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII Form IT-1 box 57; General Rules 08-10 and 05-19 — 75% at the 16% rate</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>
|
||||
@@ -355,7 +362,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII Form IT-1 box 56 — goods supported by a purchase receipt, 100% withholding</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>
|
||||
@@ -366,7 +373,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII Form IT-1 box 57 — goods supported by a purchase receipt, 100% withholding</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>
|
||||
@@ -377,7 +384,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII Form IT-1 box 53 — ITBIS withheld from RST taxable transactions at 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>
|
||||
@@ -388,7 +395,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII Form IT-1 box 54 — ITBIS withheld from RST taxable transactions at 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>
|
||||
@@ -399,7 +406,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII General Rule 04-13 — insurers withhold 100% of billed ITBIS</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>
|
||||
@@ -410,7 +417,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII Form IT-1 box 28; General Rule 02-05 — ITBIS withheld by airlines</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>
|
||||
@@ -421,7 +428,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII Form IT-1 box 29; General Rules 02-05 and 07-09 — ITBIS withheld by companies</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>
|
||||
@@ -432,7 +439,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII Form IT-1 box 30; General Rule 02-05 — ITBIS withheld by hotels on commissions</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>
|
||||
@@ -443,7 +450,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII Form IT-1 box 31 — ITBIS withheld by state institutions</field>
|
||||
</record>
|
||||
<!-- ══════ ISC — IMPUESTO SELECTIVO AL CONSUMO — Arts. 393-441 CT ══════ -->
|
||||
<record id="do_tax_isc_bebidas_alc_en" model="account.tax.template">
|
||||
@@ -455,7 +462,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Law 253-12, amending Tax Code Art. 375 — 10% ad valorem ISC on alcoholic beverages</field>
|
||||
</record>
|
||||
<record id="do_tax_isc_tabaco_en" model="account.tax.template">
|
||||
<field name="name">ISC 20% — Tobacco, Cigarettes and Derivatives</field>
|
||||
@@ -466,7 +473,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Arts. 393-441 — 20% ad valorem ISC on tobacco and cigarettes</field>
|
||||
</record>
|
||||
<record id="do_tax_isc_telecom_en" model="account.tax.template">
|
||||
<field name="name">ISC 10% — Telecommunications Services</field>
|
||||
@@ -477,7 +484,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Arts. 393-441; Law 253-12 — 10% ISC on telecommunications services</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>
|
||||
@@ -488,7 +495,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Law 253-12, amending Tax Code Art. 367 — 16% ISC on fossil fuels</field>
|
||||
</record>
|
||||
<record id="do_tax_isc_avtur_65_en" model="account.tax.template">
|
||||
<field name="name">ISC 6.5% — Avtur Reduced Rate</field>
|
||||
@@ -499,7 +506,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Law 253-12 Art. 23 — reduced 6.5% ad valorem rate for Avtur</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>
|
||||
@@ -510,7 +517,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Law 253-12 Art. 20 — additional RD$2.00 per gallon of gasoline or diesel</field>
|
||||
</record>
|
||||
<record id="do_tax_ret_isc_insurance_100_en" model="account.tax.template">
|
||||
<field name="name">ISC Withholding 100% — Insurance Companies</field>
|
||||
@@ -521,7 +528,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">DGII General Rule 04-13 — insurers withhold 100% of billed ISC</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. -->
|
||||
@@ -534,7 +541,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Law 557-05 Art. 22 — 17% of CIF value on first registration</field>
|
||||
</record>
|
||||
<!-- ══════ CDT — CONTRIBUCIÓN INDOTEL (LEY 153-98) ══════ -->
|
||||
<!-- CDT: Contribución para el Desarrollo de las Telecomunicaciones.
|
||||
@@ -549,7 +556,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Telecommunications Law 153-98 Art. 26 — INDOTEL CDT at 2% of gross revenue</field>
|
||||
</record>
|
||||
<!-- ══════ OTROS IMPUESTOS Y CONTRIBUCIONES ══════ -->
|
||||
<!-- Propina legal: cargo obligatorio para hoteles, restaurantes, cafés, barras
|
||||
@@ -563,7 +570,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Labour Code, Law 16-92 Art. 228 — mandatory 10% service charge</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. -->
|
||||
@@ -577,7 +584,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Art. 382-D, amended by Law 288-04 — 1.5 per thousand on checks and debits</field>
|
||||
</record>
|
||||
<!-- 0.20% sobre valor de cheques y transferencias bancarias desde
|
||||
2026-07-03. Se mantiene separado del 0.15% histórico. -->
|
||||
@@ -591,7 +598,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Law 30-26, effective 2026-07-03 — 2.0 per thousand on checks and transfers</field>
|
||||
</record>
|
||||
<!-- Impuesto anual sobre los activos imponibles. Su liquidación y crédito
|
||||
contra ISR no se automatizan mediante esta plantilla contable. -->
|
||||
@@ -604,7 +611,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Tax Code Arts. 401-405; Art. 404 — 1% annually</field>
|
||||
</record>
|
||||
<!-- ITI: aplica a transferencias de bienes inmuebles. Las exenciones y la
|
||||
valoración deben revisarse al liquidar cada operación. -->
|
||||
@@ -617,7 +624,7 @@
|
||||
<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>
|
||||
<field name="legal_notice">Law 288-04 Art. 20, amended by Law 173-07 Art. 7 — 3% rate</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
|
||||
+19
-12
@@ -11,11 +11,6 @@
|
||||
<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>
|
||||
@@ -279,26 +274,38 @@
|
||||
<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="name">Retención ISR 27% — Otros Pagos Gravados al Exterior (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="group" ref="do_tax_group_isr_ext_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>
|
||||
<field name="legal_notice">Art. 305 CT Ley 11-92 — pagos gravados no sujetos a una tasa especial</field>
|
||||
</record>
|
||||
<record id="do_tax_ret_isr_ext_15_es_419" model="account.tax.template">
|
||||
<field name="name">Retención ISR 15% — Regalías, Software y Servicios en Línea al Exterior</field>
|
||||
<field name="description">Retención ISR Exterior 15%</field>
|
||||
<field name="type">percentage</field>
|
||||
<field name="rate" eval="Decimal('-15')/100" />
|
||||
<field name="start_date" eval="datetime.date(2026, 7, 1)" />
|
||||
<field name="group" ref="do_tax_group_isr_ext_es_419" />
|
||||
<field name="account" ref="do_account_root_es_419" />
|
||||
<field name="invoice_account" ref="do_account_21020703_es_419" />
|
||||
<field name="credit_note_account" ref="do_account_21020703_es_419" />
|
||||
<field name="legal_notice">Arts. 305-1 y 305-2 CT, introducidos por Ley 30-26 — regalías o derechos, licencias de software, publicidad en línea y uso o almacenamiento de datos</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="name">Retención ISR 10% — Intereses Pagados al Exterior (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="group" ref="do_tax_group_isr_ext_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>
|
||||
<field name="legal_notice">Art. 306 CT — intereses pagados o acreditados al exterior</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>
|
||||
@@ -589,4 +596,4 @@
|
||||
<field name="legal_notice">Art. 20 Ley 288-04, mod. art. 7 Ley 173-07 — tasa 3%</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
</tryton>
|
||||
|
||||
+44
-12
@@ -63,10 +63,22 @@
|
||||
</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="group" ref="do_tax_group_isr_ext_en"/>
|
||||
<field name="tax" ref="do_tax_ret_isr_ext_27_en"/>
|
||||
<field name="sequence" eval="10"/>
|
||||
</record>
|
||||
<record id="do_tax_rule_supplier_ext_digital_en" model="account.tax.rule.template">
|
||||
<field name="name">Foreign Royalties, Software and Online Services 15% Rule (RD)</field>
|
||||
<field name="kind">purchase</field>
|
||||
<field name="account" ref="do_account_root_en"/>
|
||||
</record>
|
||||
<record id="do_trline_supp_ext_isr15_en" model="account.tax.rule.line.template">
|
||||
<field name="rule" ref="do_tax_rule_supplier_ext_digital_en"/>
|
||||
<field name="group" ref="do_tax_group_isr_ext_en"/>
|
||||
<field name="tax" ref="do_tax_ret_isr_ext_15_en"/>
|
||||
<field name="start_date" eval="datetime.date(2026, 7, 1)"/>
|
||||
<field name="sequence" eval="10"/>
|
||||
</record>
|
||||
|
||||
<!-- Tasas especiales ITBIS -->
|
||||
<record id="do_tax_rule_customer_itbis16_en" model="account.tax.rule.template">
|
||||
@@ -219,11 +231,16 @@
|
||||
<field name="tax" ref="do_tax_isc_combustibles_16_en"/>
|
||||
<field name="sequence" eval="10"/>
|
||||
</record>
|
||||
<record id="do_tax_rule_customer_isc_fuel_rd2_en" model="account.tax.rule.template">
|
||||
<field name="name">ISC Rule Additional RD$2 per Gallon of Fuel (RD)</field>
|
||||
<field name="kind">sale</field>
|
||||
<field name="account" ref="do_account_root_en"/>
|
||||
</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="rule" ref="do_tax_rule_customer_isc_fuel_rd2_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"/>
|
||||
<field name="sequence" eval="10"/>
|
||||
</record>
|
||||
|
||||
<record id="do_tax_rule_bank_check_transfer_en" model="account.tax.rule.template">
|
||||
@@ -299,38 +316,53 @@
|
||||
<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>
|
||||
<record id="do_tax_rule_customer_sectorial_society_en" model="account.tax.rule.template">
|
||||
<field name="name">ITBIS Withheld by Companies 30% Customer Rule (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="rule" ref="do_tax_rule_customer_sectorial_society_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_tax_rule_customer_sectorial_airline_en" model="account.tax.rule.template">
|
||||
<field name="name">ITBIS Withheld by Airlines Customer Rule (RD)</field>
|
||||
<field name="kind">sale</field>
|
||||
<field name="account" ref="do_account_root_en"/>
|
||||
</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="rule" ref="do_tax_rule_customer_sectorial_airline_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"/>
|
||||
<field name="sequence" eval="10"/>
|
||||
</record>
|
||||
<record id="do_tax_rule_customer_sectorial_hotel_en" model="account.tax.rule.template">
|
||||
<field name="name">ITBIS Withheld by Hotels Customer Rule (RD)</field>
|
||||
<field name="kind">sale</field>
|
||||
<field name="account" ref="do_account_root_en"/>
|
||||
</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="rule" ref="do_tax_rule_customer_sectorial_hotel_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"/>
|
||||
<field name="sequence" eval="10"/>
|
||||
</record>
|
||||
<record id="do_tax_rule_customer_sectorial_state_en" model="account.tax.rule.template">
|
||||
<field name="name">ITBIS Withheld by State Entities Customer Rule (RD)</field>
|
||||
<field name="kind">sale</field>
|
||||
<field name="account" ref="do_account_root_en"/>
|
||||
</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="rule" ref="do_tax_rule_customer_sectorial_state_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"/>
|
||||
<field name="sequence" eval="10"/>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
|
||||
+45
-13
@@ -52,10 +52,22 @@
|
||||
</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="group" ref="do_tax_group_isr_ext_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_supplier_ext_digital_es_419" model="account.tax.rule.template">
|
||||
<field name="name">Regla Regalías, Software y Servicios en Línea al Exterior 15% (RD)</field>
|
||||
<field name="kind">purchase</field>
|
||||
<field name="account" ref="do_account_root_es_419" />
|
||||
</record>
|
||||
<record id="do_trline_supp_ext_isr15_es_419" model="account.tax.rule.line.template">
|
||||
<field name="rule" ref="do_tax_rule_supplier_ext_digital_es_419" />
|
||||
<field name="group" ref="do_tax_group_isr_ext_es_419" />
|
||||
<field name="tax" ref="do_tax_ret_isr_ext_15_es_419" />
|
||||
<field name="start_date" eval="datetime.date(2026, 7, 1)" />
|
||||
<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>
|
||||
@@ -202,11 +214,16 @@
|
||||
<field name="tax" ref="do_tax_isc_combustibles_16_es_419" />
|
||||
<field name="sequence" eval="10" />
|
||||
</record>
|
||||
<record id="do_tax_rule_customer_isc_fuel_rd2_es_419" model="account.tax.rule.template">
|
||||
<field name="name">Regla ISC Adicional RD$2 por Galón de Combustible (RD)</field>
|
||||
<field name="kind">sale</field>
|
||||
<field name="account" ref="do_account_root_es_419" />
|
||||
</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="rule" ref="do_tax_rule_customer_isc_fuel_rd2_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" />
|
||||
<field name="sequence" eval="10" />
|
||||
</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>
|
||||
@@ -277,38 +294,53 @@
|
||||
<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>
|
||||
<record id="do_tax_rule_customer_sectorial_society_es_419" model="account.tax.rule.template">
|
||||
<field name="name">Regla Cliente ITBIS Retenido por Sociedades 30% (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="rule" ref="do_tax_rule_customer_sectorial_society_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_tax_rule_customer_sectorial_airline_es_419" model="account.tax.rule.template">
|
||||
<field name="name">Regla Cliente ITBIS Retenido por Aerolíneas (RD)</field>
|
||||
<field name="kind">sale</field>
|
||||
<field name="account" ref="do_account_root_es_419" />
|
||||
</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="rule" ref="do_tax_rule_customer_sectorial_airline_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" />
|
||||
<field name="sequence" eval="10" />
|
||||
</record>
|
||||
<record id="do_tax_rule_customer_sectorial_hotel_es_419" model="account.tax.rule.template">
|
||||
<field name="name">Regla Cliente ITBIS Retenido por Hoteles (RD)</field>
|
||||
<field name="kind">sale</field>
|
||||
<field name="account" ref="do_account_root_es_419" />
|
||||
</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="rule" ref="do_tax_rule_customer_sectorial_hotel_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" />
|
||||
<field name="sequence" eval="10" />
|
||||
</record>
|
||||
<record id="do_tax_rule_customer_sectorial_state_es_419" model="account.tax.rule.template">
|
||||
<field name="name">Regla Cliente ITBIS Retenido por Instituciones del Estado (RD)</field>
|
||||
<field name="kind">sale</field>
|
||||
<field name="account" ref="do_account_root_es_419" />
|
||||
</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="rule" ref="do_tax_rule_customer_sectorial_state_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" />
|
||||
<field name="sequence" eval="10" />
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
</tryton>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
|
||||
+143
-36
@@ -1,5 +1,5 @@
|
||||
import unittest
|
||||
import datetime
|
||||
import unittest
|
||||
from collections import Counter
|
||||
from configparser import ConfigParser
|
||||
from decimal import Decimal
|
||||
@@ -75,15 +75,18 @@ IFRS_ACCOUNT_TYPE_AUDIT = {
|
||||
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 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'},
|
||||
'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 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'},
|
||||
@@ -198,7 +201,8 @@ class AccountDoTestCase(ModuleTestCase):
|
||||
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')
|
||||
self.skipTest(
|
||||
'The es_419 chart is loaded only for es_419 databases')
|
||||
template = AccountTemplate(template_id)
|
||||
|
||||
session_id, _start, _end = CreateChart.create()
|
||||
@@ -302,7 +306,8 @@ class AccountDoTestCase(ModuleTestCase):
|
||||
'210218', '210219',
|
||||
'21020101', '21020102', '21020103', '21020104',
|
||||
'21020105', '21020201', '21020501', '21020502',
|
||||
'21020601', '21020701', '21020702', '21020801',
|
||||
'21020601', '21020701', '21020702', '21020703',
|
||||
'21020801',
|
||||
'21020802', '21020803', '21020804', '21020805',
|
||||
'21020901', '21021001', '21021101', '21021201',
|
||||
'21021301', '21021302', '21021401', '21021501',
|
||||
@@ -358,14 +363,23 @@ class AccountDoTestCase(ModuleTestCase):
|
||||
], limit=1))
|
||||
self.assertTrue(Tax.search([
|
||||
('company', '=', company.id),
|
||||
('description', '=', 'ITBIS Withholding Large Taxpayer 30%'),
|
||||
('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%'),
|
||||
('description', '=',
|
||||
'ITBIS Withholding Informal Supplier 75%'),
|
||||
('rate', '=', Decimal('-0.135')),
|
||||
], limit=1))
|
||||
foreign_15, = Tax.search([
|
||||
('company', '=', company.id),
|
||||
('description', '=', 'Foreign ISR Withholding 15%'),
|
||||
], limit=1)
|
||||
self.assertEqual(foreign_15.rate, Decimal('-0.15'))
|
||||
self.assertEqual(
|
||||
foreign_15.start_date, datetime.date(2026, 7, 1))
|
||||
check_015, = Tax.search([
|
||||
('company', '=', company.id),
|
||||
('description', '=', 'Checks and Transfers Tax 0.15%'),
|
||||
@@ -392,6 +406,43 @@ class AccountDoTestCase(ModuleTestCase):
|
||||
'date': datetime.date(2026, 7, 3),
|
||||
}),
|
||||
[check_020.id])
|
||||
foreign_27, = Tax.search([
|
||||
('company', '=', company.id),
|
||||
('description', '=', 'Foreign ISR Withholding 27%'),
|
||||
], limit=1)
|
||||
foreign_rule, = TaxRule.search([
|
||||
('company', '=', company.id),
|
||||
('name', '=', (
|
||||
'Foreign Royalties, Software and Online '
|
||||
'Services 15% Rule (RD)')),
|
||||
], limit=1)
|
||||
self.assertEqual(
|
||||
foreign_rule.apply(foreign_27, {
|
||||
'date': datetime.date(2026, 6, 30),
|
||||
}),
|
||||
[foreign_27.id])
|
||||
self.assertEqual(
|
||||
foreign_rule.apply(foreign_27, {
|
||||
'date': datetime.date(2026, 7, 1),
|
||||
}),
|
||||
[foreign_15.id])
|
||||
itbis_sale, = Tax.search([
|
||||
('company', '=', company.id),
|
||||
('description', '=', 'ITBIS 18% Sales'),
|
||||
], limit=1)
|
||||
society_withholding, = Tax.search([
|
||||
('company', '=', company.id),
|
||||
('description', '=', 'ITBIS Withheld Companies 30%'),
|
||||
], limit=1)
|
||||
society_rule, = TaxRule.search([
|
||||
('company', '=', company.id),
|
||||
('name', '=', (
|
||||
'ITBIS Withheld by Companies 30% Customer '
|
||||
'Rule (RD)')),
|
||||
], limit=1)
|
||||
self.assertEqual(
|
||||
society_rule.apply(itbis_sale, {}),
|
||||
[society_withholding.id, itbis_sale.id])
|
||||
real_tax_code_signs = {
|
||||
('ITBIS 18% Sales', 'invoice'): '+',
|
||||
('ITBIS 18% Sales', 'credit'): '-',
|
||||
@@ -434,7 +485,8 @@ class SpanishAccountDoTestCase(ModuleTestCase):
|
||||
language = 'es_419'
|
||||
|
||||
test_spanish_chart_creates_spanish_accounts_and_taxes = (
|
||||
AccountDoTestCase.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):
|
||||
@@ -485,7 +537,7 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
if line.strip()
|
||||
]
|
||||
|
||||
self.assertEqual(config.get('tryton', 'version'), '8.0.1')
|
||||
self.assertEqual(config.get('tryton', 'version'), '8.1.0')
|
||||
self.assertEqual(
|
||||
set(lines('tryton', 'depends')),
|
||||
{'account', 'ir'})
|
||||
@@ -550,35 +602,35 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
expected = {
|
||||
'account_chart_do_en.xml': {
|
||||
'account.account.type.template': 36,
|
||||
'account.account.template': 281,
|
||||
'account.account.template': 282,
|
||||
},
|
||||
'tax_do_en.xml': {
|
||||
'account.tax.group': 7,
|
||||
'account.tax.template': 50,
|
||||
'account.tax.group': 6,
|
||||
'account.tax.template': 51,
|
||||
},
|
||||
'tax_code_do_en.xml': {
|
||||
'account.tax.code.template': 44,
|
||||
'account.tax.code.line.template': 93,
|
||||
'account.tax.code.template': 43,
|
||||
'account.tax.code.line.template': 95,
|
||||
},
|
||||
'tax_rule_do_en.xml': {
|
||||
'account.tax.rule.template': 23,
|
||||
'account.tax.rule.line.template': 30,
|
||||
'account.tax.rule.template': 28,
|
||||
'account.tax.rule.line.template': 31,
|
||||
},
|
||||
'account_chart_do_es_419.xml': {
|
||||
'account.account.type.template': 36,
|
||||
'account.account.template': 281,
|
||||
'account.account.template': 282,
|
||||
},
|
||||
'tax_do_es_419.xml': {
|
||||
'account.tax.group': 7,
|
||||
'account.tax.template': 50,
|
||||
'account.tax.group': 6,
|
||||
'account.tax.template': 51,
|
||||
},
|
||||
'tax_code_do_es_419.xml': {
|
||||
'account.tax.code.template': 44,
|
||||
'account.tax.code.line.template': 93,
|
||||
'account.tax.code.template': 43,
|
||||
'account.tax.code.line.template': 95,
|
||||
},
|
||||
'tax_rule_do_es_419.xml': {
|
||||
'account.tax.rule.template': 23,
|
||||
'account.tax.rule.line.template': 30,
|
||||
'account.tax.rule.template': 28,
|
||||
'account.tax.rule.line.template': 31,
|
||||
},
|
||||
}
|
||||
for filename, expected_counts in expected.items():
|
||||
@@ -609,7 +661,8 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
with self.subTest(filename=filename):
|
||||
self.assertTrue(root.findall('data'))
|
||||
self.assertEqual(
|
||||
{data.get('language') for data in root.findall('data')},
|
||||
{data.get('language')
|
||||
for data in root.findall('data')},
|
||||
{language})
|
||||
|
||||
def test_english_accounting_terminology_is_consistent(self):
|
||||
@@ -621,13 +674,17 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
'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)
|
||||
if field.get('name') in {
|
||||
'name', 'description', 'legal_notice'} 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',
|
||||
' aseguradoras ', ' bienes ', ' casilla ',
|
||||
' combustibles ', ' intereses ', ' ley ', ' pagos ',
|
||||
' personas ', ' premios ', ' retención ', ' tasa ',
|
||||
]:
|
||||
with self.subTest(phrase=phrase):
|
||||
self.assertNotIn(phrase, text.lower())
|
||||
@@ -710,9 +767,23 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
ref = field.get('ref')
|
||||
if ref and '.' not in ref and ref not in ids:
|
||||
missing.append(
|
||||
(filename, record.get('id'), field.get('name'), ref))
|
||||
(filename, record.get('id'),
|
||||
field.get('name'), ref))
|
||||
self.assertEqual(missing, [])
|
||||
|
||||
def test_every_tax_group_is_used(self):
|
||||
"""Do not install tax groups that no tax template can produce."""
|
||||
records = list(_iter_xml_records('tax_do_en.xml'))
|
||||
groups = {
|
||||
record_id for _, record_id, model, _values in records
|
||||
if model == 'account.tax.group'
|
||||
}
|
||||
used_groups = {
|
||||
values['group'] for _, _, model, values in records
|
||||
if model == 'account.tax.template' and values.get('group')
|
||||
}
|
||||
self.assertEqual(groups, used_groups)
|
||||
|
||||
def test_chart_template_codes_are_unique(self):
|
||||
accounts = [
|
||||
values for _, _, model, values in _iter_xml_records(
|
||||
@@ -804,12 +875,14 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
for _, record_id, _, _ in _iter_xml_records(
|
||||
'tax_do_en.xml', 'tax_code_do_en.xml')
|
||||
}
|
||||
self.assertFalse([record_id for record_id in ids if 'otros' in record_id])
|
||||
self.assertFalse([
|
||||
record_id for record_id in ids if 'otros' in record_id])
|
||||
|
||||
def test_tax_templates_are_complete(self):
|
||||
taxes = {
|
||||
record_id: values
|
||||
for _, record_id, model, values in _iter_xml_records('tax_do_en.xml')
|
||||
for _, record_id, model, values
|
||||
in _iter_xml_records('tax_do_en.xml')
|
||||
if model == 'account.tax.template'
|
||||
}
|
||||
accounts = {
|
||||
@@ -818,7 +891,7 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
'account_chart_do_en.xml')
|
||||
if model == 'account.account.template'
|
||||
}
|
||||
self.assertEqual(len(taxes), 50)
|
||||
self.assertEqual(len(taxes), 51)
|
||||
for record_id, values in taxes.items():
|
||||
with self.subTest(record_id=record_id):
|
||||
self.assertEqual(
|
||||
@@ -853,17 +926,27 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
self.assertIn(
|
||||
"Decimal('10')/100",
|
||||
taxes['do_tax_isc_bebidas_alc']['rate'])
|
||||
self.assertEqual(
|
||||
taxes['do_tax_ret_isr_hon_5']['group'], 'do_tax_group_isr')
|
||||
self.assertEqual(
|
||||
taxes['do_tax_ret_isr_serv_10']['group'], 'do_tax_group_isr')
|
||||
self.assertEqual(
|
||||
taxes['do_tax_ret_isr_ext_27']['group'],
|
||||
'do_tax_group_isr_ext')
|
||||
self.assertEqual(
|
||||
taxes['do_tax_ret_isr_ext_10']['group'],
|
||||
'do_tax_group_isr_ext')
|
||||
self.assertEqual(
|
||||
taxes['do_tax_ret_isr_bovine_1']['start_date'],
|
||||
'datetime.date(2025, 6, 20)')
|
||||
self.assertIn(
|
||||
'arts. 401-405; art. 404',
|
||||
'Tax Code Arts. 401-405; Art. 404',
|
||||
taxes['do_tax_activos_1']['legal_notice'])
|
||||
self.assertIn(
|
||||
'art. 7 Ley 173-07',
|
||||
'Law 173-07 Art. 7',
|
||||
taxes['do_tax_iti_3']['legal_notice'])
|
||||
self.assertIn(
|
||||
'art. 228', taxes['do_tax_propina_10']['legal_notice'])
|
||||
'Art. 228', taxes['do_tax_propina_10']['legal_notice'])
|
||||
self.assertEqual(
|
||||
taxes['do_tax_isc_vehiculos']['group'],
|
||||
'do_tax_group_others')
|
||||
@@ -967,6 +1050,15 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
if model == 'account.tax.rule.line.template'
|
||||
}
|
||||
self.assertIn('do_tax_rule_bank_check_transfer', rules)
|
||||
self.assertEqual(
|
||||
lines['do_trline_supp_ext_isr27']['group'],
|
||||
'do_tax_group_isr_ext')
|
||||
self.assertEqual(
|
||||
lines['do_trline_supp_ext_isr15']['tax'],
|
||||
'do_tax_ret_isr_ext_15')
|
||||
self.assertEqual(
|
||||
lines['do_trline_supp_ext_isr15']['start_date'],
|
||||
'datetime.date(2026, 7, 1)')
|
||||
self.assertEqual(
|
||||
lines['do_trline_bank_check_transfer_015']['origin_tax'],
|
||||
'do_tax_cheques_015')
|
||||
@@ -986,4 +1078,19 @@ class AccountDoUnitTestCase(unittest.TestCase):
|
||||
lines['do_trline_bank_check_transfer_020']['start_date'],
|
||||
'datetime.date(2026, 7, 3)')
|
||||
|
||||
def test_tax_rule_lines_have_reachable_match_patterns(self):
|
||||
"""A rule must not contain two lines with the same match pattern."""
|
||||
patterns = {}
|
||||
for _, record_id, model, values in _iter_xml_records(
|
||||
'tax_rule_do_en.xml'):
|
||||
if model != 'account.tax.rule.line.template':
|
||||
continue
|
||||
pattern = tuple(values.get(field) for field in [
|
||||
'rule', 'group', 'origin_tax', 'start_date', 'end_date'])
|
||||
self.assertNotIn(
|
||||
pattern, patterns,
|
||||
msg=f'{record_id} is shadowed by {patterns.get(pattern)}')
|
||||
patterns[pattern] = record_id
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
[tryton]
|
||||
version=8.0.1
|
||||
version=8.1.0
|
||||
depends:
|
||||
account
|
||||
ir
|
||||
|
||||
Reference in New Issue
Block a user