Update Dominican withholding catalog

Apply the Article 309 rates introduced by Law 30-26 with dated historical templates and rules. Complete tax-code reversals, improve English terminology, harden migrations, and expand structural and functional tests.
This commit is contained in:
José Arturo García
2026-08-10 09:10:05 -04:00
parent e646947a6e
commit 1583dd3387
16 changed files with 765 additions and 154 deletions
+37 -13
View File
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- account_do: Reglas de impuestos - República Dominicana -->
<!-- account_do: Tax rules - Dominican Republic -->
<tryton>
<data language="en">
<!-- ===== Reglas de impuestos ===== -->
<!-- Regla customeres: al facturar aplica ITBIS 18% Ventas -->
<!-- ===== Tax rules ===== -->
<!-- Customer rule: use 18% sales ITBIS when invoicing -->
<record id="do_tax_rule_customer_en" model="account.tax.rule.template">
<field name="name">RD Customers Tax Rule</field>
<field name="kind">sale</field>
@@ -16,7 +16,7 @@
<field name="sequence" eval="10"/>
</record>
<!-- Regla proveedores: al recibir factura aplica ITBIS 18% Compras -->
<!-- Supplier rule: use 18% purchase ITBIS on incoming invoices -->
<record id="do_tax_rule_supplier_en" model="account.tax.rule.template">
<field name="name">RD Supplier Tax Rule</field>
<field name="kind">purchase</field>
@@ -29,7 +29,7 @@
<field name="sequence" eval="10"/>
</record>
<!-- Regla customeres exentos de ITBIS (art. 343-344 CT: salud, educación, etc.) -->
<!-- ITBIS-exempt customers (Tax Code Arts. 343-344) -->
<record id="do_tax_rule_customer_exento_en" model="account.tax.rule.template">
<field name="name">ITBIS Exempt Customers Rule (RD)</field>
<field name="kind">sale</field>
@@ -42,7 +42,7 @@
<field name="sequence" eval="10"/>
</record>
<!-- Regla customeres Zona Franca / Exportaciones (ITBIS tasa cero, NCF B14/E44) -->
<!-- Free-zone customers and exports (zero-rate ITBIS, NCF B14/E44) -->
<record id="do_tax_rule_customer_zf_en" model="account.tax.rule.template">
<field name="name">Free Zone Customers Rule / Exports (RD)</field>
<field name="kind">sale</field>
@@ -55,7 +55,7 @@
<field name="sequence" eval="10"/>
</record>
<!-- Regla proveedores no residentes (ISR pagos al exterior Art. 305-306 CT) -->
<!-- Non-resident suppliers (foreign-payment ISR, Tax Code Arts. 305-306) -->
<record id="do_tax_rule_supplier_ext_en" model="account.tax.rule.template">
<field name="name">Non-Resident Suppliers / Foreign Suppliers Rule (RD)</field>
<field name="kind">purchase</field>
@@ -80,7 +80,7 @@
<field name="sequence" eval="10"/>
</record>
<!-- Tasas especiales ITBIS -->
<!-- Special ITBIS rates -->
<record id="do_tax_rule_customer_itbis16_en" model="account.tax.rule.template">
<field name="name">ITBIS Customer Rule 16% Special Rate (RD)</field>
<field name="kind">sale</field>
@@ -104,7 +104,7 @@
<field name="sequence" eval="10"/>
</record>
<!-- Retenciones ITBIS que conservan el ITBIS base -->
<!-- ITBIS withholdings that preserve the original ITBIS -->
<record id="do_tax_rule_supplier_itbis_ret30_en" model="account.tax.rule.template">
<field name="name">Supplier Rule with ITBIS Withholding 30% (RD)</field>
<field name="kind">purchase</field>
@@ -141,8 +141,8 @@
<field name="keep_origin" eval="True"/>
<field name="sequence" eval="10"/>
</record>
<!-- Retenciones ISR por escenario. Estas reglas se aplican sobre impuestos
del grupo ISR; los impuestos ITBIS se mantienen separados. -->
<!-- Scenario-specific ISR withholdings. These rules apply to ISR-group
taxes; ITBIS taxes remain separate. -->
<record id="do_tax_rule_supplier_isr_pj_services_en" model="account.tax.rule.template">
<field name="name">ISR Rule Services Legal Entities 5% (RD)</field>
<field name="kind">purchase</field>
@@ -155,7 +155,7 @@
<field name="sequence" eval="10"/>
</record>
<record id="do_tax_rule_supplier_isr_pf_services_en" model="account.tax.rule.template">
<field name="name">ISR Rule Services Individuals 10% (RD)</field>
<field name="name">Individual Services ISR Rule (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
@@ -163,10 +163,18 @@
<field name="rule" ref="do_tax_rule_supplier_isr_pf_services_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_serv_10_en"/>
<field name="end_date" eval="datetime.date(2026, 6, 30)"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_trline_supp_isr_pf_services_15_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_pf_services_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_serv_15_en"/>
<field name="start_date" eval="datetime.date(2026, 7, 1)"/>
<field name="sequence" eval="20"/>
</record>
<record id="do_tax_rule_supplier_isr_rent_en" model="account.tax.rule.template">
<field name="name">Rent ISR Rule 10% (RD)</field>
<field name="name">Individual Rental ISR Rule (RD)</field>
<field name="kind">purchase</field>
<field name="account" ref="do_account_root_en"/>
</record>
@@ -174,8 +182,16 @@
<field name="rule" ref="do_tax_rule_supplier_isr_rent_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_alq_10_en"/>
<field name="end_date" eval="datetime.date(2026, 6, 30)"/>
<field name="sequence" eval="10"/>
</record>
<record id="do_trline_supp_isr_rent_15_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_isr_rent_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_alq_15_en"/>
<field name="start_date" eval="datetime.date(2026, 7, 1)"/>
<field name="sequence" eval="20"/>
</record>
<record id="do_tax_rule_customer_state_isr15_en" model="account.tax.rule.template">
<field name="name">Customer Rule State / Public Sector ISR 1.5% (RD)</field>
<field name="kind">sale</field>
@@ -281,8 +297,16 @@
<field name="rule" ref="do_tax_rule_supplier_informal_services_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_serv_10_en"/>
<field name="end_date" eval="datetime.date(2026, 6, 30)"/>
<field name="sequence" eval="20"/>
</record>
<record id="do_trline_supp_inf_isr15_en" model="account.tax.rule.line.template">
<field name="rule" ref="do_tax_rule_supplier_informal_services_en"/>
<field name="group" ref="do_tax_group_isr_en"/>
<field name="tax" ref="do_tax_ret_isr_serv_15_en"/>
<field name="start_date" eval="datetime.date(2026, 7, 1)"/>
<field name="sequence" eval="30"/>
</record>
<record id="do_tax_rule_supplier_rst_en" model="account.tax.rule.template">
<field name="name">RST Provider Rule with ITBIS Withholding (RD)</field>