diff --git a/IMPUESTOS_RD.md b/IMPUESTOS_RD.md
index d6f8ff9..b401cd4 100644
--- a/IMPUESTOS_RD.md
+++ b/IMPUESTOS_RD.md
@@ -77,7 +77,7 @@ se determina al cierre del año y se aplica al año siguiente.
| Tasa | 18% |
| Tipo de operación | Ventas (débito fiscal) |
| Aplica a | Personas Jurídicas y Personas Físicas |
-| Cuenta contable | 210201 — ITBIS cobrado por pagar |
+| Cuenta contable | 21020101 — ITBIS cobrado por pagar 18% |
| Formulario | IT-1 (plazo día 20) |
**Base legal:**
@@ -110,7 +110,7 @@ lo requieran. No se marcan como inactivas.
| ID plantilla | `do_tax_itbis_16_venta` |
| Tasa | 16% |
| Estado | Tasa especial disponible |
-| Cuenta contable | 210201 — ITBIS cobrado por pagar |
+| Cuenta contable | 21020102 — ITBIS cobrado por pagar 16% |
**Base legal:** Art. 345 CT (Ley 11-92), modificado por Ley 253-12.
@@ -127,7 +127,7 @@ tasa especial distinta del 18% general.
| Tasa | 18% |
| Tipo de operación | Compras (crédito fiscal) |
| Aplica a | Personas Jurídicas y Personas Físicas |
-| Cuenta contable | 110401 — ITBIS adelantado en compras |
+| Cuenta contable | 11040101 — ITBIS adelantado en compras 18% |
| Formulario | IT-1 (plazo día 20) |
**Base legal:** Arts. 349-357 CT (Ley 11-92) — Crédito fiscal ITBIS | Decreto 293-11.
@@ -156,7 +156,7 @@ Los exportadores (tasa cero) pueden solicitar devolución mediante formulario IT
| ID plantilla | `do_tax_itbis_16_compra` |
| Tasa | 16% |
| Estado | Tasa especial disponible |
-| Cuenta contable | 110401 — ITBIS adelantado en compras |
+| Cuenta contable | 11040102 — ITBIS adelantado en compras 16% |
**Base legal:** Art. 345 CT (Ley 11-92), modificado por Ley 253-12.
@@ -173,7 +173,7 @@ tasa especial distinta del 18% general. Ver nota en [ITBIS 16% Ventas](#itbis-16
| Tasa | 8% |
| Tipo de operación | Ventas — tasa reducida (débito fiscal) |
| Aplica a | Personas Jurídicas y Personas Físicas |
-| Cuenta contable | 210201 — ITBIS cobrado por pagar |
+| Cuenta contable | 21020104 — ITBIS cobrado por pagar 8% |
| Formulario | IT-1 (plazo día 20) |
**Base legal:** Art. 345 CT (Ley 11-92) | Ley 253-12 | Decreto 293-11 | NG 12-22.
@@ -201,13 +201,13 @@ reducida (8%) o exento (0%). Una clasificación incorrecta puede generar ajustes
| Tasa | 8% |
| Tipo de operación | Compras — tasa reducida (crédito fiscal) |
| Aplica a | Personas Jurídicas y Personas Físicas |
-| Cuenta contable | 110401 — ITBIS adelantado en compras |
+| Cuenta contable | 11040104 — ITBIS adelantado en compras 8% |
| Formulario | IT-1 (plazo día 20) |
**Base legal:** Arts. 349-357 CT (Ley 11-92) | Ley 253-12 | Decreto 293-11.
El ITBIS al 8% pagado en compras de bienes con tasa reducida genera crédito fiscal acreditable
-contra el débito ITBIS de ventas. Se registra en la misma cuenta 110401 junto con el crédito al 18%.
+contra el débito ITBIS de ventas. Se registra en la subcuenta 11040104 para mantener separación por tasa y permitir reportes fiscales consistentes.
Aplican las mismas reglas de proporcionalidad del Art. 352 CT en caso de operaciones mixtas.
---
@@ -262,7 +262,7 @@ derecho a crédito fiscal (ver sección siguiente).
| Tasa | 0% |
| Tipo de operación | Ventas exportación / Zona Franca |
| Aplica a | Personas Jurídicas y Personas Físicas |
-| Cuenta contable | 210201 — ITBIS cobrado por pagar (registra $0) |
+| Cuenta contable | 21020105 — ITBIS tasa cero ventas y exportaciones |
| NCF aplicable | B14 / e-CF E44 (Zonas Francas) | B16 / e-CF E46 (Exportaciones) |
**Base legal:** Art. 342 CT (Ley 11-92) | Ley 557-05 | Ley 8-90 (Zonas Francas) | NG 05-19 DGII.
@@ -1006,7 +1006,7 @@ servicio de telecom.
| ID plantilla | `do_tax_propina_10` |
| Tasa | 10% |
| Aplica a | Restaurantes, bares, hoteles, servicios de catering |
-| Cuenta contable | 210205 — Otros impuestos por pagar |
+| Cuenta contable | 21021901 — impuesto 0.15% histórico; 21021902 — impuesto 0.20% vigente |
**Base legal:** Ley 4-11 y Resoluciones del Ministerio de Trabajo.
@@ -1043,12 +1043,12 @@ debe incluirse en la base del ITBIS. Consultar con asesor fiscal.
| ID plantilla histórica | `do_tax_cheques_015` |
| ID plantilla vigente/alternativa | `do_tax_cheques_020` |
| Tasa histórica | 0.15% (1.5 por mil) |
-| Tasa vigente/alternativa | 0.20% (2.0 por mil) |
+| Tasa vigente | 0.20% (2.0 por mil) desde 2026-07-03 |
| Quién lo paga | El titular de la cuenta bancaria (empresa o persona) |
| Quién lo recauda | El banco, de forma automática |
-| Cuenta contable | 210205 — Otros impuestos por pagar |
+| Cuenta contable | 21021901 — impuesto 0.15% histórico; 21021902 — impuesto 0.20% vigente |
-**Base legal:** Art. 382-D CT (Ley 11-92, modificado por Ley 288-04).
+**Base legal:** Art. 382-D CT (Ley 11-92, modificado por Ley 288-04); Ley 30-26 Art. 40 y aviso DGII de implementación para la tasa 0.20% desde 2026-07-03.
**Descripción:** Impuesto que el banco descuenta automáticamente sobre:
- Cada cheque emitido
diff --git a/README.rst b/README.rst
index d8fd117..ecaa64d 100644
--- a/README.rst
+++ b/README.rst
@@ -10,7 +10,9 @@ Cobertura funcional
* Catálogo de impuestos y códigos fiscales.
* Reglas fiscales de venta, compra, tasas especiales y retenciones para escenarios dominicanos comunes.
* Campo ``tax_kind`` para clasificar ITBIS, retenciones, ISC, CDT, propina legal y otros impuestos.
-* Campos ``tax_fiscal_type`` y ``tax_application`` para clasificar fiscalmente cada impuesto con mayor granularidad sin romper integraciones que usan ``tax_kind``.
+* Campos ``tax_fiscal_type``, ``tax_application`` y metadata DGII para clasificar fiscalmente cada impuesto con mayor granularidad sin romper integraciones que usan ``tax_kind``.
+* Vigencias fiscales nativas en plantillas de impuesto y reglas, incluyendo impuesto de cheques/transferencias 0.15% histórico y 0.20% vigente desde 2026-07-03.
+* Las casillas y formularios DGII no se duplican aquí: ``account_do`` define cuentas/impuestos/reglas base y ``dgii_reports`` consume esa base para 606, 607, IT-1, IR-17, IR-2, ACT, ISC y formularios relacionados.
* Cuentas fiscales auxiliares para retenciones ITBIS, retenciones ISR, adquirencias, pagos al exterior, ISC, CDT e impuestos especiales.
* Documentación técnica en ``doc/index.rst`` y escenario funcional en ``tests/scenario_account_do.rst``.
diff --git a/locale/es.po b/locale/es.po
index 79269ad..4061208 100644
--- a/locale/es.po
+++ b/locale/es.po
@@ -34,6 +34,78 @@ msgctxt "field:account.tax.template,tax_application:"
msgid "Tax Application"
msgstr "Aplicación del impuesto"
+msgctxt "field:account.tax,dgii_fiscal_status:"
+msgid "DGII Fiscal Status"
+msgstr "Estado fiscal DGII"
+
+msgctxt "field:account.tax.template,dgii_fiscal_status:"
+msgid "DGII Fiscal Status"
+msgstr "Estado fiscal DGII"
+
+msgctxt "field:account.tax,dgii_form_hint:"
+msgid "DGII Form Hint"
+msgstr "Formulario DGII sugerido"
+
+msgctxt "field:account.tax.template,dgii_form_hint:"
+msgid "DGII Form Hint"
+msgstr "Formulario DGII sugerido"
+
+msgctxt "field:account.tax,dgii_legal_article:"
+msgid "DGII Legal Article"
+msgstr "Artículo/base legal DGII"
+
+msgctxt "field:account.tax.template,dgii_legal_article:"
+msgid "DGII Legal Article"
+msgstr "Artículo/base legal DGII"
+
+msgctxt "field:account.tax,dgii_legal_reference:"
+msgid "DGII Legal Reference"
+msgstr "Referencia legal DGII"
+
+msgctxt "field:account.tax.template,dgii_legal_reference:"
+msgid "DGII Legal Reference"
+msgstr "Referencia legal DGII"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:current"
+msgid "Vigente"
+msgstr "Vigente"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:deprecated"
+msgid "Derogado"
+msgstr "Derogado"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:future"
+msgid "Futuro"
+msgstr "Futuro"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:historical"
+msgid "Histórico"
+msgstr "Histórico"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:special"
+msgid "Especial"
+msgstr "Especial"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:current"
+msgid "Vigente"
+msgstr "Vigente"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:deprecated"
+msgid "Derogado"
+msgstr "Derogado"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:future"
+msgid "Futuro"
+msgstr "Futuro"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:historical"
+msgid "Histórico"
+msgstr "Histórico"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:special"
+msgid "Especial"
+msgstr "Especial"
+
msgctxt "selection:account.tax,tax_application:"
msgid "Annual Declaration"
msgstr "Declaración anual"
diff --git a/locale/es_419.po b/locale/es_419.po
index 96ec3a8..b6b5e6c 100644
--- a/locale/es_419.po
+++ b/locale/es_419.po
@@ -26,6 +26,78 @@ msgctxt "field:account.tax.template,tax_application:"
msgid "Tax Application"
msgstr "Aplicación del impuesto"
+msgctxt "field:account.tax,dgii_fiscal_status:"
+msgid "DGII Fiscal Status"
+msgstr "Estado fiscal DGII"
+
+msgctxt "field:account.tax.template,dgii_fiscal_status:"
+msgid "DGII Fiscal Status"
+msgstr "Estado fiscal DGII"
+
+msgctxt "field:account.tax,dgii_form_hint:"
+msgid "DGII Form Hint"
+msgstr "Formulario DGII sugerido"
+
+msgctxt "field:account.tax.template,dgii_form_hint:"
+msgid "DGII Form Hint"
+msgstr "Formulario DGII sugerido"
+
+msgctxt "field:account.tax,dgii_legal_article:"
+msgid "DGII Legal Article"
+msgstr "Artículo/base legal DGII"
+
+msgctxt "field:account.tax.template,dgii_legal_article:"
+msgid "DGII Legal Article"
+msgstr "Artículo/base legal DGII"
+
+msgctxt "field:account.tax,dgii_legal_reference:"
+msgid "DGII Legal Reference"
+msgstr "Referencia legal DGII"
+
+msgctxt "field:account.tax.template,dgii_legal_reference:"
+msgid "DGII Legal Reference"
+msgstr "Referencia legal DGII"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:current"
+msgid "Vigente"
+msgstr "Vigente"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:deprecated"
+msgid "Derogado"
+msgstr "Derogado"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:future"
+msgid "Futuro"
+msgstr "Futuro"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:historical"
+msgid "Histórico"
+msgstr "Histórico"
+
+msgctxt "selection:account.tax,dgii_fiscal_status:special"
+msgid "Especial"
+msgstr "Especial"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:current"
+msgid "Vigente"
+msgstr "Vigente"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:deprecated"
+msgid "Derogado"
+msgstr "Derogado"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:future"
+msgid "Futuro"
+msgstr "Futuro"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:historical"
+msgid "Histórico"
+msgstr "Histórico"
+
+msgctxt "selection:account.tax.template,dgii_fiscal_status:special"
+msgid "Especial"
+msgstr "Especial"
+
msgctxt "selection:account.tax,tax_application:"
msgid "Annual Declaration"
msgstr "Declaración anual"
diff --git a/tax.py b/tax.py
index 3dd3594..4c21d18 100644
--- a/tax.py
+++ b/tax.py
@@ -84,6 +84,15 @@ TAX_APPLICATION = [
('asset_transfer', 'Transferencia de activos'),
]
+DGII_FISCAL_STATUS = [
+ ('', ''),
+ ('current', 'Vigente'),
+ ('special', 'Especial'),
+ ('historical', 'Histórico'),
+ ('future', 'Futuro'),
+ ('deprecated', 'Derogado'),
+]
+
MODEL_DATA_RENAMES = {
'do_tax_group_otros': 'do_tax_group_others',
'do_tc_otros': 'do_tc_others',
@@ -122,6 +131,11 @@ class TaxTemplate(metaclass=PoolMeta):
TAX_FISCAL_TYPE, 'Fiscal Tax Type', sort=False)
tax_application = fields.Selection(
TAX_APPLICATION, 'Tax Application', sort=False)
+ dgii_legal_reference = fields.Char('DGII Legal Reference')
+ dgii_legal_article = fields.Char('DGII Legal Article')
+ dgii_form_hint = fields.Char('DGII Form Hint')
+ dgii_fiscal_status = fields.Selection(
+ DGII_FISCAL_STATUS, 'DGII Fiscal Status', sort=False)
@classmethod
def __register__(cls, module_name):
@@ -137,7 +151,10 @@ class TaxTemplate(metaclass=PoolMeta):
def _get_tax_value(self, tax=None):
values = super()._get_tax_value(tax=tax)
- for field in ['tax_kind', 'tax_fiscal_type', 'tax_application']:
+ for field in [
+ 'tax_kind', 'tax_fiscal_type', 'tax_application',
+ 'dgii_legal_reference', 'dgii_legal_article',
+ 'dgii_form_hint', 'dgii_fiscal_status']:
if not tax or getattr(tax, field) != getattr(self, field):
values[field] = getattr(self, field)
return values
@@ -151,6 +168,11 @@ class Tax(metaclass=PoolMeta):
TAX_FISCAL_TYPE, 'Fiscal Tax Type', sort=False)
tax_application = fields.Selection(
TAX_APPLICATION, 'Tax Application', sort=False)
+ dgii_legal_reference = fields.Char('DGII Legal Reference')
+ dgii_legal_article = fields.Char('DGII Legal Article')
+ dgii_form_hint = fields.Char('DGII Form Hint')
+ dgii_fiscal_status = fields.Selection(
+ DGII_FISCAL_STATUS, 'DGII Fiscal Status', sort=False)
@classmethod
def __register__(cls, module_name):
diff --git a/tax_do.xml b/tax_do.xml
index 00e7cb0..1f82590 100644
--- a/tax_do.xml
+++ b/tax_do.xml
@@ -1,5 +1,4 @@
-
-
+
@@ -44,172 +43,203 @@
-
-
ITBIS 18% — Ventas (Personas Jurídicas y Físicas)
ITBIS 18% Ventas
percentage
-
-
-
-
-
+
+
+
+
+
Arts. 335-392 CT Ley 11-92; Ley 253-12 Art. 10; Decreto 293-11
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ Arts. 335-392 CT Ley 11-92; Ley 253-12 Art. 10; Decreto 293-11
+ IT-1 / 606 / 607
+ current
itbis
itbis_sale_18
sale_invoice
-
ITBIS 16% — Ventas Tasa Especial (Personas Jurídicas y Físicas)
ITBIS 16% Ventas
percentage
-
-
-
-
-
+
+
+
+
+
Art. 345 CT Ley 11-92 mod. Ley 253-12 — tasa especial 16%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ Art. 345 CT Ley 11-92 mod. Ley 253-12 — tasa especial 16%
+ IT-1 / 606 / 607
+ special
itbis
itbis_sale_16
sale_invoice
-
ITBIS 9% — Ventas Tasa Especial Ley 690-16
ITBIS 9% Ventas
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII 2020; Ley 690-16 — tasa especial ITBIS 9%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII 2020; Ley 690-16 — tasa especial ITBIS 9%
+ IT-1 / 606 / 607
+ special
itbis
itbis_sale_9
sale_invoice
-
ITBIS 18% — Compras / Crédito Fiscal (Personas Jurídicas y Físicas)
ITBIS 18% Compras
percentage
-
-
-
-
-
+
+
+
+
+
Arts. 349-357 CT Ley 11-92 — Crédito fiscal ITBIS; Decreto 293-11
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ Arts. 349-357 CT Ley 11-92 — Crédito fiscal ITBIS; Decreto 293-11
+ IT-1 / 606 / 607
+ current
itbis
itbis_purchase_18
purchase_invoice
-
ITBIS 16% — Compras / Crédito Fiscal Tasa Especial
ITBIS 16% Compras
percentage
-
-
-
-
-
+
+
+
+
+
Art. 345 CT Ley 11-92 — Crédito fiscal tasa especial 16%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ Art. 345 CT Ley 11-92 — Crédito fiscal tasa especial 16%
+ IT-1 / 606 / 607
+ special
itbis
itbis_purchase_16
purchase_invoice
-
ITBIS 9% — Compras / Crédito Fiscal Tasa Especial Ley 690-16
ITBIS 9% Compras
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII 2020; Ley 690-16 — crédito fiscal tasa especial 9%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII 2020; Ley 690-16 — crédito fiscal tasa especial 9%
+ IT-1 / 606 / 607
+ special
itbis
itbis_purchase_9
purchase_invoice
-
ITBIS 8% — Ventas Tasa Reducida (Personas Jurídicas y Físicas)
ITBIS 8% Ventas
percentage
-
-
-
-
-
+
+
+
+
+
Art. 345 CT; Ley 253-12; Decreto 293-11 — Tasa reducida 8%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ Art. 345 CT; Ley 253-12; Decreto 293-11 — Tasa reducida 8%
+ IT-1 / 606 / 607
+ special
itbis
itbis_sale_8
sale_invoice
-
ITBIS 8% — Compras Tasa Reducida / Crédito Fiscal (Personas Jurídicas y Físicas)
ITBIS 8% Compras
percentage
-
-
-
-
-
+
+
+
+
+
Arts. 349-357 CT — Crédito fiscal tasa reducida 8%; Decreto 293-11
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ Arts. 349-357 CT — Crédito fiscal tasa reducida 8%; Decreto 293-11
+ IT-1 / 606 / 607
+ special
itbis
itbis_purchase_8
purchase_invoice
-
ITBIS Exento — Bienes y Servicios Exentos (Personas Jurídicas y Físicas)
ITBIS Exento
none
-
-
+
+
Arts. 343-344 CT Ley 11-92; Ley 288-04; NG 12-22 DGII
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ Arts. 343-344 CT Ley 11-92; Ley 288-04; NG 12-22 DGII
+ IT-1 / 606 / 607
+ current
itbis
itbis_exempt
sale_invoice
-
ITBIS Tasa Cero — Exportaciones y Zona Franca (Personas Jurídicas y Físicas)
ITBIS 0% Exportaciones / Zona Franca
percentage
-
-
-
-
-
+
+
+
+
+
Art. 342 CT; Ley 557-05; Ley 8-90 Zonas Francas; NG 05-19 DGII
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ Art. 342 CT; Ley 557-05; Ley 8-90 Zonas Francas; NG 05-19 DGII
+ IT-1 / 606 / 607
+ current
itbis
itbis_zero_rate
sale_invoice
-
Retención ITBIS 30% — Agente Gran Contribuyente (Personas Jurídicas y Físicas)
Retención ITBIS Gran Contribuyente 30%
percentage
-
-
-
-
-
+
+
+
+
+
NG 01-11 DGII 2011; Arts. 309 y 337 CT — Grandes Contribuyentes
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ NG 01-11 DGII 2011; Arts. 309 y 337 CT — Grandes Contribuyentes
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_30
purchase_invoice
-
@@ -217,587 +247,696 @@
Retención ITBIS 2% — Adquirencias Tarjetas de Crédito y Débito (NG 06-23)
Retención ITBIS Adquirencias 2%
percentage
-
-
-
-
-
+
+
+
+
+
NG 06-23 DGII 2023; Art. 337 CT — Adquirencias tarjetas débito/crédito
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ NG 06-23 DGII 2023; Art. 337 CT — Adquirencias tarjetas débito/crédito
+ IT-1 / 606 / 607
+ current
itbis_withholding_acquirer
itbis_withholding_acquirer_2
payment_withholding
-
-
Retención ISR 5% — Honorarios y Servicios a Personas Jurídicas
Retención ISR Persona Jurídica 5%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas jurídicas
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas jurídicas
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_legal_entity_services_5
purchase_invoice
-
Retención ISR 10% — Honorarios y Servicios a Personas Físicas
Retención ISR Persona Física 10%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas físicas
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 309 CT Ley 11-92; Decreto 95-12 — Honorarios personas físicas
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_individual_services_10
purchase_invoice
-
Retención ISR 10% — Dividendos y Utilidades Distribuidas (Personas Físicas y Jurídicas)
Retención ISR Dividendos 10%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 308 CT Ley 11-92; Decreto 95-12; Formulario IR-18
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 308 CT Ley 11-92; Decreto 95-12; Formulario IR-18
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_dividends_10
payment_withholding
-
Retención ISR 10% — Intereses a Personas Físicas (NG 07-19)
Retención ISR Intereses Persona Física 10%
percentage
-
-
-
-
-
+
+
+
+
+
NG 07-19 DGII; Art. 306 bis CT — Intereses personas físicas, definitivo
+ DGII ISR; Código Tributario Ley 11-92
+ NG 07-19 DGII; Art. 306 bis CT — Intereses personas físicas, definitivo
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_interest_individual_10
payment_withholding
-
Retención ISR 10% — Alquileres y Arrendamientos (Personas Físicas y Jurídicas)
Retención ISR Alquileres 10%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 309 CT; NG 08-11 DGII — Alquileres personas físicas y jurídicas
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 309 CT; NG 08-11 DGII — Alquileres personas físicas y jurídicas
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_rent_10
purchase_invoice
-
Retención ISR 1.5% — Pagos del Estado / Sector Público (Personas Físicas y Jurídicas)
Retención ISR Estado 1.5%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 309 CT; Decreto 95-12; Formulario 623 DGII — Sector público
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 309 CT; Decreto 95-12; Formulario 623 DGII — Sector público
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_state_1_5
sale_invoice
-
Retención ISR 5% — Pagos del Estado / Sector Público (Personas Físicas y Jurídicas)
Retención ISR Estado 5%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 309 CT mod. Ley 253-12 — retención pagos del Estado 5%
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 309 CT mod. Ley 253-12 — retención pagos del Estado 5%
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_state_5
sale_invoice
-
Retención ISR 1% — Sector Ganadería y Carne Bovina
Retención ISR Ganadería/Carne Bovina 1%
percentage
-
-
-
-
-
+
+
+
+
+
NG 04-25 DGII — retención 1% sobre facturas sector carne bovina
+ DGII ISR; Código Tributario Ley 11-92
+ NG 04-25 DGII — retención 1% sobre facturas sector carne bovina
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_bovine_meat_1
purchase_invoice
-
Retención ISR 2.5% — Exportadores en Ventas al Mercado Local
Retención ISR Exportadores 2.5%
percentage
-
-
-
-
-
+
+
+
+
+
NG 15-07 DGII — retención 2.5% ventas locales de exportadores
+ DGII ISR; Código Tributario Ley 11-92
+ NG 15-07 DGII — retención 2.5% ventas locales de exportadores
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_exporter_sales_2_5
sale_invoice
-
Retención ISR 1% — Intereses a Personas Jurídicas (NG 07-19)
Retención ISR Intereses Persona Jurídica 1%
percentage
-
-
-
-
-
+
+
+
+
+
NG 07-19 DGII 2019; Art. 306 bis CT — Intereses personas jurídicas
+ DGII ISR; Código Tributario Ley 11-92
+ NG 07-19 DGII 2019; Art. 306 bis CT — Intereses personas jurídicas
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_interest_legal_entity_1
payment_withholding
-
Retención ISR 25% — Premios de Lotería, Sorteos y Rifas (Personas Físicas y Jurídicas)
Retención ISR Premios 25%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 321 CT Ley 11-92; Decreto 95-12 — Premios y loterías, definitivo
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 321 CT Ley 11-92; Decreto 95-12 — Premios y loterías, definitivo
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_prizes_25
payment_withholding
-
Retención ISR 10% — Premios RD$100,001 a RD$500,000
Retención ISR Premios 10%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 309 CT mod. Ley 253-12 — premios RD$100,001 a RD$500,000 10%
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 309 CT mod. Ley 253-12 — premios RD$100,001 a RD$500,000 10%
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_prizes_10
payment_withholding
-
Retención ISR 15% — Premios RD$500,001 a RD$1,000,000
Retención ISR Premios 15%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 309 CT mod. Ley 253-12 — premios RD$500,001 a RD$1,000,000 15%
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 309 CT mod. Ley 253-12 — premios RD$500,001 a RD$1,000,000 15%
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_prizes_15
payment_withholding
-
Retención ISR 10% — Premios Máquinas Tragamonedas
Retención ISR Máquinas Tragamonedas 10%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 309 CT mod. Ley 253-12 — premios máquinas tragamonedas 10%
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 309 CT mod. Ley 253-12 — premios máquinas tragamonedas 10%
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_slot_machine_prizes_10
payment_withholding
-
Retención ISR 10% — Otras Rentas no Contempladas
Retención ISR Otras Rentas 10%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 309 CT mod. Ley 253-12 — otras rentas no contempladas 10%
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 309 CT mod. Ley 253-12 — otras rentas no contempladas 10%
+ IR-17 / IR-3 / IR-2 segun operación
+ current
isr_withholding
isr_other_income_10
purchase_invoice
-
-
Retención ISR 27% — Pagos al Exterior: Servicios y Regalías (No Residentes)
Retención ISR Exterior 27%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 305 CT Ley 11-92 — Servicios y regalías a no residentes 27%
+ DGII ISR; Código Tributario Ley 11-92
+ Art. 305 CT Ley 11-92 — Servicios y regalías a no residentes 27%
+ 609 / IR-17
+ current
isr_withholding
isr_foreign_services_27
purchase_invoice
-
Retención ISR 10% — Pagos al Exterior: Intereses y Asistencia Técnica (No Residentes)
Retención ISR Exterior 10%
percentage
-
-
-
-
-
+
+
+
+
+
Arts. 305-306 CT — Intereses y asistencia técnica a no residentes
+ DGII ISR; Código Tributario Ley 11-92
+ Arts. 305-306 CT — Intereses y asistencia técnica a no residentes
+ 609 / IR-17
+ current
isr_withholding
isr_foreign_interest_10
purchase_invoice
-
-
Retención ITBIS 100% — Servicios Gravados Sujetos a Retención
Retención ITBIS Servicios 100%
percentage
-
-
-
-
-
+
+
+
+
+
NG 01-11 DGII — Retención 100% ITBIS en servicios gravados
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ NG 01-11 DGII — Retención 100% ITBIS en servicios gravados
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_100_services
purchase_invoice
-
Retención ITBIS 75% — Bienes de Proveedor Informal (B11 / e-CF E41)
Retención ITBIS Proveedor Informal 75%
percentage
-
-
-
-
-
+
+
+
+
+
NG 08-10 DGII — Retención 75% ITBIS compras a proveedores informales
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ NG 08-10 DGII — Retención 75% ITBIS compras a proveedores informales
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_75_informal
purchase_invoice
-
Retención ITBIS 75% — Bienes Proveedor Informal Tasa 16%
Retención ITBIS Proveedor Informal 75% Tasa 16%
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII casilla 57; NG 08-10/05-19 — 75% de ITBIS tasa 16%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII casilla 57; NG 08-10/05-19 — 75% de ITBIS tasa 16%
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_75_informal_16
purchase_invoice
-
Retención ITBIS 100% — Bienes Proveedor Informal Tasa 18%
Retención ITBIS Proveedor Informal 100% Tasa 18%
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII casilla 56 — bienes comprobante de compras, retención 100%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII casilla 56 — bienes comprobante de compras, retención 100%
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_100_informal_goods_18
purchase_invoice
-
Retención ITBIS 100% — Bienes Proveedor Informal Tasa 16%
Retención ITBIS Proveedor Informal 100% Tasa 16%
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII casilla 57 — bienes comprobante de compras, retención 100%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII casilla 57 — bienes comprobante de compras, retención 100%
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_100_informal_goods_16
purchase_invoice
-
Retención ITBIS 100% — Contribuyentes RST Tasa 18%
Retención ITBIS RST 18%
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII casilla 53 — ITBIS retenido RST operaciones gravadas 18%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII casilla 53 — ITBIS retenido RST operaciones gravadas 18%
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_rst_18
purchase_invoice
-
Retención ITBIS 100% — Contribuyentes RST Tasa 16%
Retención ITBIS RST 16%
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII casilla 54 — ITBIS retenido RST operaciones gravadas 16%
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII casilla 54 — ITBIS retenido RST operaciones gravadas 16%
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_rst_16
purchase_invoice
-
Retención ITBIS 100% — Compañías de Seguros
Retención ITBIS Seguros 100%
percentage
-
-
-
-
-
+
+
+
+
+
NG 04-13 DGII — aseguradoras retienen 100% del ITBIS facturado
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ NG 04-13 DGII — aseguradoras retienen 100% del ITBIS facturado
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_insurance_100
purchase_invoice
-
ITBIS Retenido por Aerolíneas 100% — BSP/IATA
ITBIS Retenido Aerolíneas 100%
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII casilla 28; NG 02-05 — ITBIS retenido por aerolíneas
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII casilla 28; NG 02-05 — ITBIS retenido por aerolíneas
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_airline_100
sale_invoice
-
ITBIS Retenido por Sociedades 30% — Retención Sufrida
ITBIS Retenido Sociedades 30%
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII casilla 29; NG 02-05/07-09 — sociedades retienen ITBIS
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII casilla 29; NG 02-05/07-09 — sociedades retienen ITBIS
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_society_30_suffered
sale_invoice
-
ITBIS Retenido por Hoteles 100% — Comisiones Paquetes
ITBIS Retenido Hoteles 100%
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII casilla 30; NG 02-05 — hoteles retienen ITBIS en comisiones
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII casilla 30; NG 02-05 — hoteles retienen ITBIS en comisiones
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_hotel_100
sale_invoice
-
ITBIS Retenido por Entidades del Estado 100%
ITBIS Retenido Estado 100%
percentage
-
-
-
-
-
+
+
+
+
+
IT-1 DGII casilla 31 — ITBIS retenido por instituciones del Estado
+ DGII ITBIS; Código Tributario Ley 11-92; Decreto 293-11
+ IT-1 DGII casilla 31 — ITBIS retenido por instituciones del Estado
+ IT-1 / 606 / 607
+ current
itbis_withholding
itbis_withholding_state_100
sale_invoice
-
-
ISC 10% — Bebidas Alcohólicas (Vinos, Ron, Whisky y Destilados)
ISC Bebidas Alcohólicas 10%
percentage
-
-
-
-
-
+
+
+
+
+
Ley 253-12 mod. Art. 375 CT — ISC bebidas alcohólicas ad valorem 10%
+ DGII ISC; Código Tributario Ley 11-92
+ Ley 253-12 mod. Art. 375 CT — ISC bebidas alcohólicas ad valorem 10%
+ ISC / 606 / 607 segun operación
+ current
isc
isc_alcohol_10
sale_invoice
-
ISC 20% — Tabaco, Cigarrillos y Derivados
ISC Tabaco y Cigarrillos 20%
percentage
-
-
-
-
-
+
+
+
+
+
Arts. 393-441 CT Ley 11-92 — ISC tabaco y cigarrillos, ad valorem 20%
+ DGII ISC; Código Tributario Ley 11-92
+ Arts. 393-441 CT Ley 11-92 — ISC tabaco y cigarrillos, ad valorem 20%
+ ISC / 606 / 607 segun operación
+ current
isc
isc_tobacco_20
sale_invoice
-
ISC 10% — Servicios de Telecomunicaciones
ISC Telecomunicaciones 10%
percentage
-
-
-
-
-
+
+
+
+
+
Arts. 393-441 CT; Ley 253-12 — ISC servicios telecomunicaciones 10%
+ DGII ISC; Código Tributario Ley 11-92
+ Arts. 393-441 CT; Ley 253-12 — ISC servicios telecomunicaciones 10%
+ ISC / 606 / 607 segun operación
+ current
isc
isc_telecom_10
sale_invoice
-
ISC 16% — Combustibles Fósiles y Derivados del Petróleo
ISC Combustibles Fósiles 16%
percentage
-
-
-
-
-
+
+
+
+
+
Ley 253-12 mod. Art. 367 CT — ISC combustibles fósiles 16%
+ DGII ISC; Código Tributario Ley 11-92
+ Ley 253-12 mod. Art. 367 CT — ISC combustibles fósiles 16%
+ ISC / 606 / 607 segun operación
+ current
isc
isc_fossil_fuel_16
sale_invoice
-
ISC 6.5% — Avtur Tasa Reducida
ISC Avtur 6.5%
percentage
-
-
-
-
-
+
+
+
+
+
Ley 253-12 Art. 23 — tasa reducida Avtur 6.5% ad valorem
+ DGII ISC; Código Tributario Ley 11-92
+ Ley 253-12 Art. 23 — tasa reducida Avtur 6.5% ad valorem
+ ISC / 606 / 607 segun operación
+ current
isc
isc_avtur_6_5
sale_invoice
-
ISC RD$2.00 — Adicional por Galón Gasolina/Gasoil
ISC Combustibles RD$2/Galón
fixed
-
-
-
-
-
+
+
+
+
+
Ley 253-12 Art. 20 — adicional RD$2.00 por galón gasolina/gasoil
+ DGII ISC; Código Tributario Ley 11-92
+ Ley 253-12 Art. 20 — adicional RD$2.00 por galón gasolina/gasoil
+ ISC / 606 / 607 segun operación
+ current
isc
isc_fuel_rd2_gallon
sale_invoice
-
Retención ISC 100% — Compañías de Seguros
Retención ISC Seguros 100%
percentage
-
-
-
-
-
+
+
+
+
+
NG 04-13 DGII — aseguradoras retienen 100% del ISC facturado
+ DGII ISC; Código Tributario Ley 11-92
+ NG 04-13 DGII — aseguradoras retienen 100% del ISC facturado
+ ISC / 606 / 607 segun operación
+ current
isc
isc_insurance_withholding_100
purchase_invoice
-
ISC 17% — Vehículos de Motor (Referencial, hasta 2,000 cc)
ISC Vehículos 17%
percentage
-
-
-
-
-
+
+
+
+
+
Arts. 393-441 CT — ISC vehículos ad valorem (tasa varía por cilindrada/CIF)
+ DGII ISC; Código Tributario Ley 11-92
+ Arts. 393-441 CT — ISC vehículos ad valorem (tasa varía por cilindrada/CIF)
+ ISC / 606 / 607 segun operación
+ current
isc
isc_vehicle_17
asset_transfer
-
-
@@ -805,19 +944,21 @@
CDT 2% — Contribución para el Desarrollo de las Telecomunicaciones (INDOTEL)
CDT INDOTEL 2%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 26 Ley 153-98 Telecomunicaciones — CDT INDOTEL 2% ingresos brutos
+ Ley 153-98 INDOTEL
+ Art. 26 Ley 153-98 Telecomunicaciones — CDT INDOTEL 2% ingresos brutos
+ 607 / reportes telecomunicaciones
+ current
cdt
cdt_indotel_2
sale_invoice
-
-
@@ -825,83 +966,101 @@
Propina Legal 10% — Restaurantes, Bares y Hoteles (Personas Físicas y Jurídicas)
Propina Legal 10%
percentage
-
-
-
-
-
+
+
+
+
+
Ley 4-11 y Resolución Ministerio Trabajo — Propina obligatoria 10%
+ Ley 4-11; Ministerio de Trabajo
+ Ley 4-11 y Resolución Ministerio Trabajo — Propina obligatoria 10%
+ 607 / Nómina interna propina legal
+ current
tip
legal_tip_10
sale_invoice
-
Impuesto sobre Cheques y Transferencias Bancarias 0.15% (Personas Físicas y Jurídicas)
Impuesto Cheques y Transferencias 0.15%
percentage
-
-
-
-
-
+
+
+
+
+
+
Art. 382-D CT Ley 11-92 mod. Ley 288-04 — 1.5 por mil cheques/débitos
+ Impuesto emisión de cheques y transferencias electrónicas
+ Art. 382-D CT Ley 11-92 mod. Ley 288-04; vigente hasta 2026-07-02
+ Cargo bancario / contabilidad financiera
+ historical
others
check_transfer_tax_015
bank_charge
-
Impuesto sobre Cheques y Transferencias Bancarias 0.20% (Personas Físicas y Jurídicas)
Impuesto Cheques y Transferencias 0.20%
percentage
-
-
-
-
-
+
+
+
+
+
+
Ley 30-26, vig. 2026-07-03 — 2.0 por mil cheques/transferencias
+ Impuesto emisión de cheques y transferencias electrónicas
+ Ley 30-26 Art. 40; vigente desde 2026-07-03; aviso DGII calendario Ley 30-26
+ Cargo bancario / contabilidad financiera
+ current
others
check_transfer_tax_020
bank_charge
-
Impuesto Mínimo a los Activos 1% (Personas Jurídicas)
Impuesto a los Activos 1%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 296-A CT Ley 11-92 — Mínimo ISR 1% activos totales, anual (IR-2)
+ DGII Impuesto sobre Activos; Código Tributario Ley 11-92
+ Art. 296-A CT Ley 11-92 — Mínimo ISR 1% activos totales, anual (IR-2)
+ ACT / IR-2
+ current
others
asset_tax_1
annual_declaration
-
Impuesto sobre Transferencia Inmobiliaria 3% (Personas Físicas y Jurídicas)
Transferencia Inmobiliaria ITI 3%
percentage
-
-
-
-
-
+
+
+
+
+
Art. 11 Ley 288-04; Arts. 27 ss. Ley 18-88 — ITI 3% valor inmueble
+ DGII Transferencias Inmobiliarias
+ Art. 11 Ley 288-04; Arts. 27 ss. Ley 18-88 — ITI 3% valor inmueble
+ Transferencia inmobiliaria
+ current
others
real_estate_transfer_3
asset_transfer
-
+
\ No newline at end of file
diff --git a/tax_rule_do.xml b/tax_rule_do.xml
index bd42068..9101233 100644
--- a/tax_rule_do.xml
+++ b/tax_rule_do.xml
@@ -283,6 +283,28 @@
+
+ Regla Bancaria Cheques / Transferencias Electrónicas (RD)
+ both
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Regla Proveedor Informal Servicios (RD)
purchase
diff --git a/tests/test_module.py b/tests/test_module.py
index 9882f24..8e0ac81 100644
--- a/tests/test_module.py
+++ b/tests/test_module.py
@@ -1,11 +1,12 @@
import unittest
+import datetime
from collections import Counter
from decimal import Decimal
from pathlib import Path
from xml.etree import ElementTree as ET
from trytond.modules.account_do.tax import (
- TAX_APPLICATION, TAX_FISCAL_TYPE, TAX_KIND)
+ DGII_FISCAL_STATUS, TAX_APPLICATION, TAX_FISCAL_TYPE, TAX_KIND)
from trytond.pool import Pool
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
from trytond.transaction import Transaction
@@ -151,6 +152,34 @@ class AccountDoTestCase(ModuleTestCase):
('tax_fiscal_type', '=', 'itbis_withholding_75_informal'),
('rate', '=', Decimal('-0.135')),
], limit=1))
+ check_015, = Tax.search([
+ ('company', '=', company.id),
+ ('description', '=', 'Impuesto Cheques y Transferencias 0.15%'),
+ ], limit=1)
+ check_020, = Tax.search([
+ ('company', '=', company.id),
+ ('description', '=', 'Impuesto Cheques y Transferencias 0.20%'),
+ ], limit=1)
+ bank_rule, = TaxRule.search([
+ ('company', '=', company.id),
+ ('name', '=', (
+ 'Regla Bancaria Cheques / Transferencias '
+ 'Electrónicas (RD)')),
+ ], limit=1)
+ self.assertEqual(check_015.end_date, datetime.date(2026, 7, 2))
+ self.assertEqual(check_015.dgii_fiscal_status, 'historical')
+ self.assertEqual(check_020.start_date, datetime.date(2026, 7, 3))
+ self.assertEqual(check_020.dgii_fiscal_status, 'current')
+ 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])
chart.properties.company = company
chart.properties.account_receivable = receivable
@@ -248,6 +277,15 @@ class AccountDoUnitTestCase(unittest.TestCase):
self.assertFalse([
record_id for record_id, values in taxes.items()
if not values.get('tax_application')])
+ for field_name in [
+ 'dgii_legal_reference',
+ 'dgii_legal_article',
+ 'dgii_form_hint',
+ 'dgii_fiscal_status',
+ ]:
+ self.assertFalse([
+ record_id for record_id, values in taxes.items()
+ if not values.get(field_name)])
self.assertEqual(
taxes['do_tax_itbis_18_venta']['invoice_account'],
'do_account_21020101')
@@ -354,6 +392,18 @@ class AccountDoUnitTestCase(unittest.TestCase):
'isc_fossil_fuel_16')
self.assertEqual(
taxes['do_tax_cheques_020']['tax_kind'], 'others')
+ self.assertEqual(
+ taxes['do_tax_cheques_015']['end_date'],
+ 'datetime.date(2026, 7, 2)')
+ self.assertEqual(
+ taxes['do_tax_cheques_015']['dgii_fiscal_status'],
+ 'historical')
+ self.assertEqual(
+ taxes['do_tax_cheques_020']['start_date'],
+ 'datetime.date(2026, 7, 3)')
+ self.assertEqual(
+ taxes['do_tax_cheques_020']['dgii_fiscal_status'],
+ 'current')
self.assertEqual(
taxes['do_tax_cheques_020']['invoice_account'],
'do_account_21021902')
@@ -416,6 +466,39 @@ class AccountDoUnitTestCase(unittest.TestCase):
self.assertEqual(lines['do_tcl_isc_comb_inv']['operator'], '+')
self.assertEqual(lines['do_tcl_prop_inv']['code'], 'do_tc_others_tip')
+ 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.xml')
+ if model == 'account.tax.rule.template'
+ }
+ lines = {
+ record_id: values
+ for _, record_id, model, values in _iter_xml_records(
+ 'tax_rule_do.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)')
+
def test_tax_kind_contains_dominican_tax_categories(self):
codes = {code for code, _ in TAX_KIND}
self.assertEqual(codes, {
@@ -437,8 +520,10 @@ class AccountDoUnitTestCase(unittest.TestCase):
def test_fiscal_classification_codes_are_unique(self):
fiscal_codes = [code for code, _ in TAX_FISCAL_TYPE]
application_codes = [code for code, _ in TAX_APPLICATION]
+ status_codes = [code for code, _ in DGII_FISCAL_STATUS]
self.assertEqual(len(fiscal_codes), len(set(fiscal_codes)))
self.assertEqual(len(application_codes), len(set(application_codes)))
+ self.assertEqual(len(status_codes), len(set(status_codes)))
del ModuleTestCase
diff --git a/view/tax_form.xml b/view/tax_form.xml
index a950fca..2efd4ca 100644
--- a/view/tax_form.xml
+++ b/view/tax_form.xml
@@ -7,5 +7,13 @@
+
+
+
+
+
+
+
+