From 1cd0c627ec74cdc7549127ae2817c9c736d1e0b8 Mon Sep 17 00:00:00 2001 From: Saran440 Date: Wed, 21 Jun 2023 11:17:01 +0700 Subject: [PATCH 1/2] [IMP] add function update po field copy=False --- purchase_isolated_rfq/models/purchase_order.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/purchase_isolated_rfq/models/purchase_order.py b/purchase_isolated_rfq/models/purchase_order.py index 4cb985901e2..064560ee9e3 100644 --- a/purchase_isolated_rfq/models/purchase_order.py +++ b/purchase_isolated_rfq/models/purchase_order.py @@ -47,12 +47,18 @@ def _prepare_order_from_rfq(self): "quote_id": self.id, "partner_ref": self.partner_ref, } + + def _update_value_order_from_rfq(self, order): + return order def action_convert_to_order(self): self.ensure_one() if self.order_sequence: raise UserError(_("Only quotation can convert to order")) purchase_order = self.copy(self._prepare_order_from_rfq()) + # Some fields is copy=False. + # This function will hook for add it in PO + purchase_order = self._update_value_order_from_rfq(purchase_order) purchase_order.button_confirm() # Reference from this RFQ to Purchase Order self.purchase_order_id = purchase_order.id From 20e3cf64662192536da7dec2adc2c5d8641c01e9 Mon Sep 17 00:00:00 2001 From: Saran440 Date: Wed, 28 Jun 2023 16:26:24 +0700 Subject: [PATCH 2/2] [ENH] purchase_isolated_rfq: add send email in rfq state --- purchase_isolated_rfq/models/purchase_order.py | 10 +++++++++- purchase_isolated_rfq/views/purchase_views.xml | 9 +++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/purchase_isolated_rfq/models/purchase_order.py b/purchase_isolated_rfq/models/purchase_order.py index 064560ee9e3..958e23274ec 100644 --- a/purchase_isolated_rfq/models/purchase_order.py +++ b/purchase_isolated_rfq/models/purchase_order.py @@ -39,6 +39,14 @@ def create(self, vals): if not order_sequence and vals.get("name", "/") == "/": vals["name"] = self.env["ir.sequence"].next_by_code("purchase.rfq") or "/" return super().create(vals) + + def copy(self, default=None): + """Allow duplicate PO back to RFQ document""" + self.ensure_one() + if default is None: + default = dict(default or {}, order_sequence=False, name="/") + self = self.with_context(order_sequence=False) + return super().copy(default) def _prepare_order_from_rfq(self): return { @@ -62,7 +70,7 @@ def action_convert_to_order(self): purchase_order.button_confirm() # Reference from this RFQ to Purchase Order self.purchase_order_id = purchase_order.id - if self.state == "draft": + if self.state in ["draft", "sent"]: self.button_done() return self.open_duplicated_purchase_order() diff --git a/purchase_isolated_rfq/views/purchase_views.xml b/purchase_isolated_rfq/views/purchase_views.xml index e6c2fbb35c8..ce7873cb742 100644 --- a/purchase_isolated_rfq/views/purchase_views.xml +++ b/purchase_isolated_rfq/views/purchase_views.xml @@ -6,17 +6,19 @@ not context.get('order_sequence', False) + name="attrs" + >{'invisible': [('order_sequence','=',False)]}
+