Tuesday, September 16, 2025
2 changes · saas-18.4
Enhancements to existing features
Italian fiscal position rules now distinguish services from goods more clearly. This prevents a single product tax from being replaced by multiple zero-rate EU taxes, helping invoices apply the correct tax treatment.
Original PR description
Due to service taxes missing from the domestic fiscal position, when using the base tax on a product and the intracom fiscal position, it is mapped to both the 0% EU G and 0% EU S taxes. This happens with multiple taxes. By adding service taxes and splitting the mapping from default to goods and from services to services, the fiscal position only ever applies one tax per origin. task-none Forward-Port-Of: odoo/odoo#226529
GST return reconciliation now more reliably matches draft and cancelled vendor bills using valid invoice references or IRNs. This reduces missed matches and helps businesses prepare more accurate GST-2B reconciliations during return periods.
Original PR description
Before this PR: - `line_ids.tax_ids` filter was applied too early, excluding some valid draft/cancelled bills. - Bill reference and IRN checks were not consistently combined, leading to missed matches in reconciliation. - Posted bills could be incorrectly excluded when the reconciliation status was not considered properly. After this PR: - Refined domain grouping so `line_ids.tax_ids` and GST treatment checks only apply for posted bills. - Draft/cancelled bills are matched if they have a valid IRN or bill reference. - Posted bills require bill reference, tax, reconciliation status, and GST treatment checks for accurate matching. This ensures more reliable matching of draft bills with GST-2 B during the GST return period reconciliation. Forward-Port-Of: odoo/enterprise#94384