| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Point of Sale (point_of_sale) • Discuss (mail) • Inventory (stock) |
| Lines of code | 1153 |
| Technical Name |
aminitech_pos_payment_correction |
| License | OPL-1 |
| Website | https://aminitechsolutions.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Point of Sale (point_of_sale) • Discuss (mail) • Inventory (stock) |
| Lines of code | 1153 |
| Technical Name |
aminitech_pos_payment_correction |
| License | OPL-1 |
| Website | https://aminitechsolutions.com |
POS Payment Correction
Fix the wrong payment method on a finalised order, split a single payment into many, or merge several into one — in one wizard, with a full audit trail. Open or closed session, invoiced or not.
A wrong payment method should not mean a cancelled day
When the cashier picks Cash but the customer paid by card — or recorded one tender when there were two — the standard fix is to reverse the order and re-key it. POS Payment Correction lets a manager fix the payment in place, keep the order intact, and leave a complete audit trail of who changed what, when, and why.
Change Payment Method
Switch a finalised payment line to a different method — the current method is hidden from the picker, so a no-op is impossible.
Restructure Payments
Split one tender into many, merge several into one, or redistribute amounts across methods — all in a single wizard that respects the order total.
Strict Balance Enforcement
The Apply button stays hidden until the corrected lines sum exactly to the order total — over-paying or under-paying is impossible.
No Duplicate Methods
Picking a method already used on another line surfaces an instant warning and clears the field — two lines on the same tender cannot slip through.
Immutable Audit Trail
Every correction writes a permanent log row with the reason, the user, and the linked journal entry — rows cannot be edited or deleted, even by managers.
Closed-Session Safe
A balanced journal transfer moves the cash from the old method's account to the new one — the original closing entry stays untouched.
Two wizards, one audit trail
Two manager-only buttons land on every finalised order — Change Payment Method for a one-line swap, Restructure Payments for splits and merges. Every action is logged.
Swap the wrong tender, keep the order
When the cashier picked the wrong payment method, open the order and switch it in seconds. The current method is hidden from the dropdown so a no-op change is impossible — if you somehow route an RPC with the same method, the server still refuses with a clear error.
- ✔One-click — pick the payment line and the new method, add a reason
- ✔No-op blocked — the current method never appears as a choice
- ✔Manager-only — cashiers do not see the button
- ✔Reason required — every change explains itself in the log
Split one payment into many — or the other way round
A single wizard handles every common split: one tender becomes two, two become one, or amounts redistribute across methods. Lines pre-populate from what was actually charged, so the manager edits from a known good starting point.
- ✔Split, merge, redistribute — all in one wizard
- ✔Pre-populated — starts from the order's current tenders
- ✔Live totals — sum of lines and variance update as you type
- ✔Delta labels — each line tags itself NEW or AMOUNT CHANGED
Apply stays hidden until the math works
If the corrected lines do not sum exactly to the order total, a red banner names both figures and the variance, and the Apply button disappears entirely. Over-paying or under-paying an order is structurally impossible — even a crafted RPC is rejected server-side with the same numbers in the error.
- ✔View-level — Apply hidden the instant lines diverge from the total
- ✔Variance banner — names sum, total, and the difference live
- ✔Server backstop — rejected even if the form is bypassed
- ✔Multi-currency aware — uses the order's currency rounding rules
One method per line, no surprises
If a manager picks a method that is already on another line, the wizard instantly pops a warning naming the tender and clears the field. Two lines on the same method — which would silently merge in the audit and confuse a reviewer — cannot happen.
- ✔Server-side check — runs the moment a method is picked
- ✔Clear message — names the conflict, suggests the next step
- ✔Field cleared — the line stays open for a different method
- ✔Editing in place — an existing line can still keep its method
Every correction, on the record
A dedicated Payment Method Changes menu lists every correction across every shop. Change-type rows show Old Method and New Method. Restructure rows show the Affected Method and per-tender delta amount. The Kind column tags each row so managers see at a glance what happened.
- ✔Kind-aware — change rows and restructure rows clearly distinguished
- ✔Searchable — filter by POS, user, method, date, kind, was-invoiced
- ✔Multi-company scoped — rules keep companies separated
- ✔Stat button on orders — jumps straight to that order's changes
Linked accounting, immutable record
Each log row records who changed what, on which session, with the operator's typed reason. When the change touches accounting — an invoiced order or a closed session — the linked journal entry is pinned to the row. Even a manager cannot edit or delete a posted log: the table is immutable at the access-control layer.
- ✔Journal entry pinned — closed-session transfers and invoice reversals linked
- ✔Reason captured — the operator's explanation lives with the row
- ✔State at change — order state, session state, invoiced flag all snapshotted
- ✔Immutable — perm_write=0 and perm_unlink=0 for every group
Right on the order, only for the right people
The two wizards live as header buttons on every finalised POS order, where the manager already works. A stat button shows how many corrections that order has seen and jumps straight to the log. Cashiers see none of it — the buttons are role-restricted at the view, the action method, and the access-control list.
- ✔Header buttons — Change Payment Method and Restructure Payments on every paid order
- ✔Stat button — per-order count of past corrections, one click to the log
- ✔POS Manager only — three layers of group restriction
- ✔Cashiers see nothing — the buttons disappear for non-managers
90 days of free support included
Free email support for 90 days from purchase — installation, configuration, and bug fixes. Real humans, one business day response time. Free lifetime v18.0.x updates continue forever.
Real help, from real people
We answer every email personally. No bots, no escalation queues.
Email Support
One business day response time. Real humans answering real questions about installation and configuration.
reach@aminitechsolutions.com →Documentation
A short installation and configuration guide ships in the module README — everything you need to get running.
Request the guide →Frequently asked questions
Which Odoo versions are supported?
Does this work after the POS session is closed?
What happens to the invoice if the order was invoiced?
Can a cashier use these wizards?
Can a manager edit or delete an audit log entry?
What if the corrected amounts do not match the order total?
Does it work for multi-currency setups?
Does the license cover multiple databases?
Beyond this module
If you need more than what this module ships, our team can build it. Eight years of Odoo work across East Africa retail, hospitality, and manufacturing.
Custom Development
Bespoke Odoo modules built to your exact workflow. Quote on scope.
Odoo Implementation
End-to-end deployment, data migration, training, and go-live support.
Module Customization
Extend any AminiTech module to fit your specific business rules.
SLA Support
Priority response, phone support, monthly health checks. Per-database plans.
Production-grade Odoo apps
AminiTech Solutions builds Odoo modules that ship only after running in real production environments. Clear documentation, real support, no gotchas.
- 📧 reach@aminitechsolutions.com
- 📞 +254 746 883809
- 🌐 Live demo — see "Live Preview" button at top of page
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