Relative Shipping Cost Tax (Austrian/German accounting requirement) (Versandkostenaufteilung auf Basis der Steuersätze)
by it-fact GmbH https://github.com/OCA/partner-contact$ 92.19
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 192 |
| Technical Name |
relative_shipping_cost_tax |
| License | OPL-1 |
| Website | https://github.com/OCA/partner-contact |
| Versions | 18.0 19.0 |
Relative Shipping Cost Tax
Automatically split shipping costs across multiple VAT rates — proportionally, accurately, and at the click of a button. Versandkosten automatisch auf mehrere Steuersätze aufteilen – proportional, korrekt und per Knopfdruck.
📋 Example scenario 📋 Beispielszenario
A customer orders books (10% VAT, €200) and electronics (20% VAT, €800) with €50 shipping. The shipping must be split: €10 at 10% (20% of €50) and €40 at 20% (80% of €50). This module automates that calculation instantly. Ein Kunde bestellt Bücher (10% MwSt., €200) und Elektronik (20% MwSt., €800) mit €50 Versandkosten. Die Versandkosten müssen aufgeteilt werden: €10 zu 10% (20% von €50) und €40 zu 20% (80% von €50). Dieses Modul berechnet die Aufteilung automatisch.
One-click proportional split Proportionale Aufteilung per Klick
A scissors button appears directly on the shipping line. One click splits the amount across all tax groups proportionally by their net sales subtotal. Rounding is automatically corrected so totals always match. Ein Scheren-Symbol erscheint direkt auf der Versandzeile. Ein Klick teilt den Betrag proportional nach Nettoumsatz auf alle Steuergruppen auf. Rundungsfehler werden automatisch korrigiert, sodass die Summen immer übereinstimmen.
Smart confirm-time validation Intelligente Validierung beim Bestätigen
When confirming a sale order that has unsplit shipping, a clear warning dialog appears. The user can go back and split, or consciously choose to confirm anyway — full control, zero surprises. Beim Bestätigen eines Auftrags mit nicht aufgeteilten Versandkosten erscheint ein klarer Warndialog. Der Benutzer kann zurückgehen und aufteilen oder bewusst trotzdem bestätigen – volle Kontrolle, keine Überraschungen.
Per-line override flag Überschreibungs-Flag pro Zeile
An optional Ignore Warning checkbox on the shipping line lets you permanently suppress the validation for specific orders — ideal for orders where the standard split does not apply. Ein optionales Kontrollkästchen Warnung ignorieren auf der Versandzeile ermöglicht es, die Validierung für bestimmte Aufträge dauerhaft zu unterdrücken – ideal für Aufträge, bei denen die Standardaufteilung nicht zutrifft.
Fully tested Vollständig getestet
Ships with 21 automated tests covering split logic, proportional calculation, rounding edge cases, the validation wizard, ignore-flag bypass, and idempotent hook execution. Production-ready from day one. Enthält 21 automatisierte Tests, die Aufteilungslogik, proportionale Berechnung, Rundungsgrenzfälle, den Validierungsassistenten, die Umgehung des Ignore-Flags und idempotente Hook-Ausführung abdecken. Produktionsreif ab dem ersten Tag.
Before — scissors button on delivery line Vorher — Scheren-Symbol auf der Versandzeile
After — proportionally split delivery lines Nachher — proportional aufgeteilte Versandzeilen
Install the module Modul installieren
Two shipping products (10% Versandkosten and 20% Versandkosten), their product tags, and two pre-configured delivery carriers are created automatically. No manual setup required. Zwei Versandprodukte (10% Versandkosten und 20% Versandkosten), ihre Produkt-Tags und zwei vorkonfigurierte Versanddienstleister werden automatisch erstellt. Kein manuelles Setup erforderlich.
Create your sale order normally Verkaufsauftrag wie gewohnt anlegen
Add products with different VAT rates as usual. Add a shipping line via your preferred delivery carrier. The module is invisible until it's needed. Fügen Sie Produkte mit unterschiedlichen Steuersätzen wie gewohnt hinzu. Fügen Sie eine Versandzeile über Ihren bevorzugten Versanddienstleister hinzu. Das Modul bleibt unsichtbar, bis es benötigt wird.
Click ✂️ to split ✂️ klicken zum Aufteilen
The scissors icon appears on every shipping line. One click calculates the proportional amounts for each VAT group, removes the old line, and creates the correct split lines — with rounding automatically corrected. Das Scheren-Symbol erscheint auf jeder Versandzeile. Ein Klick berechnet die proportionalen Beträge für jede Steuergruppe, entfernt die alte Zeile und erstellt die korrekten Aufteilungszeilen – mit automatisch korrigierter Rundung.
Confirm the order Auftrag bestätigen
If the split is correct, the order confirms immediately. If not, a clear warning dialog lets you decide: go back to split, or confirm anyway. You can also tick Ignore Warning on the shipping line to permanently suppress the check for that order. Ist die Aufteilung korrekt, wird der Auftrag sofort bestätigt. Andernfalls ermöglicht ein klarer Warndialog die Entscheidung: zurückgehen und aufteilen oder trotzdem bestätigen. Sie können auch Warnung ignorieren auf der Versandzeile aktivieren, um die Prüfung für diesen Auftrag dauerhaft zu unterdrücken.
| ❌ Without module ❌ Ohne Modul | ✅ With module ✅ Mit Modul | |
|---|---|---|
| VAT allocation on shipping MwSt.-Zuordnung bei Versand | Manual, error-prone Manuell, fehleranfällig | Automated & proportional Automatisiert & proportional |
| Rounding accuracy Rundungsgenauigkeit | Depends on user Vom Benutzer abhängig | Always sums exactly Immer exakt |
| Confirm-time safety net Sicherheitsnetz beim Bestätigen | None Keines | Warning wizard Warnassistent |
| Pre-configured carriers Vorkonfigurierte Versanddienstleister | Must create manually Manuell anzulegen | Ready on install Bei Installation bereit |
| Flexibility to override Flexibilität zum Überschreiben | — | Per-line ignore flag Ignore-Flag pro Zeile |
| Automated test coverage Automatisierte Testabdeckung | — | 21 tests included 21 Tests enthalten |
sale.order, sale.order.line,
and delivery.carrier. No new database tables; no JavaScript.
Leichtgewichtig – erweitert nur sale.order, sale.order.line
und delivery.carrier. Keine neuen Datenbanktabellen; kein JavaScript.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module