Skip to content

Commit c93def8

Browse files
committed
[IMP] sale_order_revision: 'New Revision' quick button on confirmed Sales Orders
1 parent 10871f7 commit c93def8

3 files changed

Lines changed: 19 additions & 0 deletions

File tree

sale_order_revision/models/sale_order.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,10 @@ def action_view_revisions(self):
4242
"default_current_revision_id": self.id,
4343
}
4444
return result
45+
46+
def action_cancel_create_revision(self):
47+
for sale in self:
48+
sale.action_cancel()
49+
action = sale.create_revision()
50+
if len(self) == 1:
51+
return action

sale_order_revision/tests/test_sale_order_revision.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,9 @@ def _create_tester(self):
2020
with sale_form.order_line.new() as line_form:
2121
line_form.product_id = self.product
2222
return sale_form.save()
23+
24+
def test_action_cancel_create_revision(self):
25+
sale = self._create_tester()
26+
sale.action_cancel_create_revision()
27+
self.assertEqual(sale.state, "cancel", "Original SO was cancelled")
28+
self.assertTrue(sale.current_revision_id, "A new SO version was created")

sale_order_revision/view/sale_order.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@
2323
string="New Revision of Quotation"
2424
type="object"
2525
/>
26+
<button
27+
name="action_cancel_create_revision"
28+
states="sale"
29+
string="New Revision"
30+
type="object"
31+
/>
2632
</xpath>
2733
<xpath expr="//button[@name='action_view_invoice']" position="after">
2834
<button

0 commit comments

Comments
 (0)