diff --git a/account_payment_blocking/__openerp__.py b/account_payment_blocking/__openerp__.py
index 14fcf7a9b..13218f460 100644
--- a/account_payment_blocking/__openerp__.py
+++ b/account_payment_blocking/__openerp__.py
@@ -22,7 +22,7 @@
##############################################################################
{
'name': 'account banking payment blocking',
- 'version': '8.0.0.1.0',
+ 'version': '8.0.1.0.0',
'category': 'Banking addons',
'summary': """
Prevent invoices under litigation to be proposed in payment orders.
diff --git a/account_payment_blocking/model/account_invoice.py b/account_payment_blocking/model/account_invoice.py
index c48621cae..717cfe6db 100644
--- a/account_payment_blocking/model/account_invoice.py
+++ b/account_payment_blocking/model/account_invoice.py
@@ -33,6 +33,21 @@ class account_invoice(orm.Model):
('invoice.id', '=', invoice_id)],
context=context)
+ def _update_blocked(self, cr, uid, invoice, value, context=None):
+ if context is None:
+ context = {}
+ else:
+ context = context.copy()
+ if invoice.move_id.id:
+ move_line_ids = self._get_move_line(cr, uid, invoice.id,
+ context=context)
+ assert len(move_line_ids) == 1
+ # work with account_constraints from OCA/AFT:
+ context.update({'from_parent_object': True})
+ self.pool.get('account.move.line')\
+ .write(cr, uid, move_line_ids, {'blocked': value},
+ context=context)
+
def _set_move_blocked(self, cr, uid, ids, name, field_value, arg,
context=None):
if context is None:
@@ -40,15 +55,16 @@ class account_invoice(orm.Model):
if isinstance(ids, (int, long)):
ids = [ids]
for invoice in self.browse(cr, uid, ids, context=context):
- if invoice.move_id.id:
- move_line_ids = self._get_move_line(cr, uid, invoice.id,
- context=context)
- assert len(move_line_ids) == 1
- # work with account_constraints from OCA/AFT:
- context.update({'from_parent_object': True})
- self.pool.get('account.move.line')\
- .write(cr, uid, move_line_ids, {'blocked': field_value},
- context=context)
+ self._update_blocked(cr, uid, invoice, field_value,
+ context=context)
+
+ def action_move_create(self, cr, uid, ids, context=None):
+ res = super(account_invoice, self).action_move_create(cr, uid, ids,
+ context=context)
+ for invoice in self.browse(cr, uid, ids, context=context):
+ self._update_blocked(cr, uid, invoice, invoice.draft_blocked,
+ context=context)
+ return res
def _get_move_blocked(self, cr, uid, ids, name, arg, context=None):
res = {}
@@ -72,4 +88,5 @@ class account_invoice(orm.Model):
type='boolean', string='No Follow Up',
states={'draft': [('readonly',
True)]}),
+ 'draft_blocked': fields.boolean(string='No Follow Up'),
}
diff --git a/account_payment_blocking/tests/test_account_banking_payment_blocking.py b/account_payment_blocking/tests/test_account_banking_payment_blocking.py
index 45c7fefe7..672d763cf 100644
--- a/account_payment_blocking/tests/test_account_banking_payment_blocking.py
+++ b/account_payment_blocking/tests/test_account_banking_payment_blocking.py
@@ -57,6 +57,8 @@ class TestAccountBankingPaymentBlocking(common.TransactionCase):
move_line_obj = self.registry('account.move.line')
invoice_id = create_simple_invoice(self, self.cr, self.uid,
context=self.context)
+ invoice_obj.write(self.cr, self.uid, [invoice_id],
+ {'draft_blocked': True})
workflow.trg_validate(self.uid, 'account.invoice', invoice_id,
'invoice_open', self.cr)
invoice = invoice_obj.browse(self.cr, self.uid, [invoice_id],
@@ -66,10 +68,11 @@ class TestAccountBankingPaymentBlocking(common.TransactionCase):
['payable', 'receivable']),
('invoice.id', '=', invoice.id)])
move_line = move_line_obj.browse(self.cr, self.uid, move_line_ids)[0]
+ self.assertTrue(move_line.blocked)
self.assertEqual(invoice.blocked, move_line.blocked,
'Blocked values are not equals')
move_line_obj.write(self.cr, self.uid, move_line_ids,
- {'blocked': True})
+ {'blocked': False})
invoice = invoice_obj.browse(self.cr, self.uid, [invoice_id],
context=self.context)[0]
move_line = move_line_obj.browse(self.cr, self.uid, move_line_ids)[0]
diff --git a/account_payment_blocking/view/account_invoice_view.xml b/account_payment_blocking/view/account_invoice_view.xml
index 09e6a1ba8..759dbf7a6 100644
--- a/account_payment_blocking/view/account_invoice_view.xml
+++ b/account_payment_blocking/view/account_invoice_view.xml
@@ -7,7 +7,8 @@
-
+
+