account.move.line check is too strict
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Odoo Addons (MOVED TO GITHUB) |
Won't Fix
|
Wishlist
|
OpenERP R&D Addons Team 3 |
Bug Description
account.move.line checks some fields are not updated if the line is reconciled or the move is not in draft state. There is a problem, though, that forbids users from removing unreconciled entries of a draft account moves.
When the user wants to remove a couple of lines of a draft move (leaving the move still in valid state), the system will call account.move validate() function. This function calls account.move.line write() for all account move lines of the move, forbiding the removal if there are move lines in reconciled state. The problem is that account.move's validate() function is not necessarily changing any of the forbiden values, it simply ensures they're properly set. As account.move.line's write() function doesn't check if those values are really changing it always raises an exception.
The attached patch fixes this problem by checking if any of the fields that must not be changed are really changing and only calls _update_check() function if necessary. This results in the described scenario to be usable again and thus letting users modify unreconciled move lines as expected.
Related branches
- OpenERP Community Committers: Pending requested
-
Diff: 50 lines (+23/-4)1 file modifiedaccount/account_move_line.py (+23/-4)
Changed in openobject-addons: | |
importance: | Undecided → Low |
status: | New → Triaged |
+1
I always hated having an invoice with multiple payment terms, one of those payments already reconciled, and not being able to alter the other (non-reconciled) payment dates on the account move because "some lines have been already reconciled".