diff --git a/account_spread_cost_revenue/models/account_spread.py b/account_spread_cost_revenue/models/account_spread.py
index 158143fab..aba622fc8 100644
--- a/account_spread_cost_revenue/models/account_spread.py
+++ b/account_spread_cost_revenue/models/account_spread.py
@@ -114,6 +114,9 @@ class AccountSpread(models.Model):
'account.analytic.tag',
string='Analytic Tags')
move_line_auto_post = fields.Boolean('Auto-post lines', default=True)
+ display_create_all_moves = fields.Boolean(
+ compute='_compute_display_create_all_moves',
+ string='Display Button All Moves')
@api.model
def default_get(self, fields):
@@ -173,6 +176,14 @@ class AccountSpread(models.Model):
spread.posted_amount = posted_amount
spread.total_amount = total_amount
+ @api.multi
+ def _compute_display_create_all_moves(self):
+ for spread in self:
+ if any(not line.move_id for line in spread.line_ids):
+ spread.display_create_all_moves = True
+ else:
+ spread.display_create_all_moves = False
+
@api.multi
def _get_spread_entry_name(self, seq):
"""Use this method to customise the name of the accounting entry."""
@@ -409,8 +420,7 @@ class AccountSpread(models.Model):
spread_mls = spread.line_ids.mapped('move_id.line_ids')
spread_mls.remove_move_reconcile()
inv_link = '%s' % (
- spread.invoice_id.id, _("Invoice"))
+ 'data-oe-id=%d>%s' % (spread.invoice_id.id, _("Invoice"))
msg_body = _("Unlinked invoice line '%s' (view %s).") % (
spread.invoice_line_id.name, inv_link)
spread.message_post(body=msg_body)
@@ -477,6 +487,13 @@ class AccountSpread(models.Model):
do_reconcile.remove_move_reconcile()
do_reconcile.reconcile()
+ @api.multi
+ def create_all_moves(self):
+ for spread in self:
+ for line in spread.line_ids:
+ if not line.move_id:
+ line.create_move()
+
@api.multi
def _compute_deprecated_accounts(self):
for spread in self:
diff --git a/account_spread_cost_revenue/readme/ROADMAP.rst b/account_spread_cost_revenue/readme/ROADMAP.rst
deleted file mode 100644
index be52964ad..000000000
--- a/account_spread_cost_revenue/readme/ROADMAP.rst
+++ /dev/null
@@ -1 +0,0 @@
-* Add option to post all spread lines in one click
diff --git a/account_spread_cost_revenue/tests/test_account_invoice_spread.py b/account_spread_cost_revenue/tests/test_account_invoice_spread.py
index 49f5752ca..e06489878 100644
--- a/account_spread_cost_revenue/tests/test_account_invoice_spread.py
+++ b/account_spread_cost_revenue/tests/test_account_invoice_spread.py
@@ -724,3 +724,16 @@ class TestAccountInvoiceSpread(common.TransactionCase):
self.assertTrue(other_journal)
with self.assertRaises(ValidationError):
self.spread2.journal_id = other_journal
+
+ def test_14_create_all_moves(self):
+ self.spread.compute_spread_board()
+ spread_lines = self.spread.line_ids
+ self.assertEqual(len(spread_lines), 12)
+ for line in spread_lines:
+ self.assertFalse(line.move_id)
+
+ # create moves for all the spread lines
+ self.spread.create_all_moves()
+ spread_lines = self.spread.line_ids
+ for line in spread_lines:
+ self.assertTrue(line.move_id)
diff --git a/account_spread_cost_revenue/views/account_spread.xml b/account_spread_cost_revenue/views/account_spread.xml
index a64f8a885..fe40791b5 100644
--- a/account_spread_cost_revenue/views/account_spread.xml
+++ b/account_spread_cost_revenue/views/account_spread.xml
@@ -107,6 +107,9 @@
+
+