summaryrefslogtreecommitdiff
path: root/addons/account
diff options
context:
space:
mode:
authorCedric Snauwaert <csn@openerp.com>2016-03-31 10:31:25 +0200
committerCedric Snauwaert <csn@openerp.com>2016-03-31 10:31:29 +0200
commit90650245d0e62706bb0d0e1dc809b8e10ec537f4 (patch)
treeffe650cf8b09b7bda99dbfa0566e38301643cbf3 /addons/account
parentfd8570770ddc6546a07a1b9876acf58510d31679 (diff)
[FIX] account: update-check should allow aml with debit=credit=0
Problem: if we try to validate an invoice with a line with a discount of 100%, this will create an aml with debit=credit=0 and reconciled flag as True. So when trying to cancel invoice, it is not possible because the check tell us that there is an entry which is reconciled and we can't unreconcile that entry, so the check should just ignore line with debit-credit=0. Also add readonly to general_account_id related field on account.analytic.line. This is to prevent a write while creating the account_move_line in the case of an invoice with analytic account.
Diffstat (limited to 'addons/account')
-rw-r--r--addons/account/models/account_analytic_line.py2
-rw-r--r--addons/account/models/account_move.py2
2 files changed, 2 insertions, 2 deletions
diff --git a/addons/account/models/account_analytic_line.py b/addons/account/models/account_analytic_line.py
index 39ea202796c..83faccaa15c 100644
--- a/addons/account/models/account_analytic_line.py
+++ b/addons/account/models/account_analytic_line.py
@@ -11,7 +11,7 @@ class AccountAnalyticLine(models.Model):
amount = fields.Monetary(currency_field='company_currency_id')
product_uom_id = fields.Many2one('product.uom', string='Unit of Measure')
product_id = fields.Many2one('product.product', string='Product')
- general_account_id = fields.Many2one('account.account', string='Financial Account', ondelete='restrict',
+ general_account_id = fields.Many2one('account.account', string='Financial Account', ondelete='restrict', readonly=True,
related='move_id.account_id', store=True, domain=[('deprecated', '=', False)])
move_id = fields.Many2one('account.move.line', string='Move Line', ondelete='cascade', index=True)
code = fields.Char(size=8)
diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py
index 59ae9883a9c..fcc0460691a 100644
--- a/addons/account/models/account_move.py
+++ b/addons/account/models/account_move.py
@@ -1074,7 +1074,7 @@ class AccountMoveLine(models.Model):
err_msg = _('Move name (id): %s (%s)') % (line.move_id.name, str(line.move_id.id))
if line.move_id.state != 'draft':
raise UserError(_('You cannot do this modification on a posted journal entry, you can just change some non legal fields. You must revert the journal entry to cancel it.\n%s.') % err_msg)
- if line.reconciled:
+ if line.reconciled and not (line.debit == 0 and line.credit == 0):
raise UserError(_('You cannot do this modification on a reconciled entry. You can just change some non legal fields or you must unreconcile first.\n%s.') % err_msg)
if line.move_id.id not in move_ids:
move_ids.add(line.move_id.id)