diff --git a/modules/purchase_trade/duplicate.py b/modules/purchase_trade/duplicate.py
index 9e445a7..f5a99c3 100644
--- a/modules/purchase_trade/duplicate.py
+++ b/modules/purchase_trade/duplicate.py
@@ -7,7 +7,7 @@ from trytond.model import ModelView, fields
from trytond.pool import Pool
from trytond.pyson import Bool, Eval
from trytond.transaction import Transaction
-from trytond.wizard import Button, StateTransition, StateView, Wizard
+from trytond.wizard import Button, StateAction, StateTransition, StateView, Wizard
from trytond.modules.purchase_trade.service import ContractFactory
@@ -32,6 +32,7 @@ class TradeCustomDuplicateStart(ModelView):
('purchase.purchase', 'Purchase'),
('sale.sale', 'Sale'),
], readonly=True)
+ duplicated_record_id = fields.Integer("Duplicated Record ID", readonly=True)
party = fields.Many2One('party.party', "Counterparty", required=True)
currency = fields.Many2One('currency.currency', "Currency", required=True)
payment_term = fields.Many2One(
@@ -63,6 +64,8 @@ class TradeCustomDuplicate(Wizard):
Button("Duplicate", 'duplicate', 'tryton-ok', default=True),
])
duplicate = StateTransition()
+ open_purchase = StateAction('purchase.act_purchase_form')
+ open_sale = StateAction('sale.act_sale_form')
@staticmethod
def _trade_line(record):
@@ -219,9 +222,22 @@ class TradeCustomDuplicate(Wizard):
options = self.start
new_record = self._copy_contract(record, options)
new_line = self._apply_line_options(new_record, options)
+ self.start.duplicated_record_id = new_record.id
if options.create_matched_mirror:
self._create_matched_mirror(new_record, new_line, options)
- return 'end'
+ if new_record.__name__ == 'purchase.purchase':
+ return 'open_purchase'
+ return 'open_sale'
+
+ def _open_duplicated_record(self, action):
+ action['views'].reverse()
+ return action, {'res_id': self.start.duplicated_record_id}
+
+ def do_open_purchase(self, action):
+ return self._open_duplicated_record(action)
+
+ def do_open_sale(self, action):
+ return self._open_duplicated_record(action)
def end(self):
return 'reload'
diff --git a/modules/purchase_trade/view/trade_custom_duplicate_start_form.xml b/modules/purchase_trade/view/trade_custom_duplicate_start_form.xml
index 5e8c68c..a0f827c 100644
--- a/modules/purchase_trade/view/trade_custom_duplicate_start_form.xml
+++ b/modules/purchase_trade/view/trade_custom_duplicate_start_form.xml
@@ -27,4 +27,5 @@
+