Skip to content

Commit 7b4f99e

Browse files
committed
Merge PR #839 into 16.0
Signed-off-by simahawk
2 parents 1e38cbe + 686723f commit 7b4f99e

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

sale_order_import/tests/test_order_import.py

+27
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,30 @@ def test_with_order_buttons(self):
145145

146146
self.assertEqual(len(so.order_line), 2)
147147
self.assertEqual(so.order_line[0].product_uom_qty, 3)
148+
149+
def test_confirm_order(self):
150+
# Prepare test data
151+
order_file_data = base64.b64encode(
152+
b"<?xml version='1.0' encoding='utf-8'?><root><foo>baz</foo></root>"
153+
)
154+
order_filename = "test_order.xml"
155+
mock_parse_order = mock.patch.object(type(self.wiz_model), "parse_xml_order")
156+
# Create a new form
157+
with Form(
158+
self.wiz_model.with_context(
159+
default_order_filename=order_filename,
160+
default_confirm_order=True,
161+
)
162+
) as form:
163+
with mock_parse_order as mocked:
164+
# Return 'rfq' for doc_type
165+
mocked.return_value = "rfq"
166+
# Set values for the required fields
167+
form.import_type = "xml"
168+
form.order_file = order_file_data
169+
# Test the button with the simulated values
170+
mocked.return_value = self.parsed_order
171+
action = form.save().import_order_button()
172+
so = self.env["sale.order"].browse(action["res_id"])
173+
# Check the state of the order
174+
self.assertEqual(so.state, "sale")

sale_order_import/wizard/sale_order_import.py

+5
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ class SaleOrderImport(models.TransientModel):
5656
"res.partner", string="Shipping Address", readonly=True
5757
)
5858
sale_id = fields.Many2one("sale.order", string="Quotation to Update")
59+
# Confirm order after creating Sale Order
60+
confirm_order = fields.Boolean(default=False)
5961

6062
@api.onchange("order_file")
6163
def order_file_change(self):
@@ -320,6 +322,9 @@ def create_order(self, parsed_order, price_source, order_filename=None):
320322
order = soo.create(so_vals)
321323
bdio.post_create_or_update(parsed_order, order, doc_filename=order_filename)
322324
logger.info("Sale Order ID %d created", order.id)
325+
if self.confirm_order:
326+
order.action_confirm()
327+
logger.info("Sale Order ID %d confirmed", order.id)
323328
return order
324329

325330
@api.model

0 commit comments

Comments
 (0)