@@ -12,17 +12,33 @@ def setUpClass(cls):
1212 super ().setUpClass ()
1313 cls .revision_model = cls .env ["sale.order" ]
1414 cls .partner = cls .env ["res.partner" ].create ({"name" : "Mr Odoo" })
15- cls .product = cls .env ["product.product" ].create ({"name" : "Test product" })
15+ cls .product = cls .env ["product.product" ].create (
16+ {"name" : "Test product" , "invoice_policy" : "order" }
17+ )
1618
1719 def _create_tester (self ):
1820 sale_form = Form (self .revision_model )
1921 sale_form .partner_id = self .partner
2022 with sale_form .order_line .new () as line_form :
2123 line_form .product_id = self .product
24+ line_form .product_uom_qty = 10
25+ line_form .price_unit = 10
2226 return sale_form .save ()
2327
28+ def _create_sale_invoice (self , sale ):
29+ SaleInv = self .env ["sale.advance.payment.inv" ].with_context (active_ids = sale .ids )
30+ popup = SaleInv .create ({"advance_payment_method" : "delivered" })
31+ popup .create_invoices ()
32+
2433 def test_action_cancel_create_revision (self ):
2534 sale = self ._create_tester ()
35+ sale .action_confirm ()
36+ self ._create_sale_invoice (sale )
2637 sale .action_cancel_create_revision ()
2738 self .assertEqual (sale .state , "cancel" , "Original SO was cancelled" )
2839 self .assertTrue (sale .current_revision_id , "A new SO version was created" )
40+ self .assertEqual (
41+ sale .current_revision_id .invoice_ids ,
42+ sale .invoice_ids ,
43+ "The Sale Order revision keeps a link to the original invoices" ,
44+ )
0 commit comments