diff --git a/addons/purchase_requisition/tests/test_purchase_requisition.py b/addons/purchase_requisition/tests/test_purchase_requisition.py index 26cd62f3d93..abd863a2b90 100644 --- a/addons/purchase_requisition/tests/test_purchase_requisition.py +++ b/addons/purchase_requisition/tests/test_purchase_requisition.py @@ -487,3 +487,25 @@ class TestPurchaseRequisition(TestPurchaseRequisitionCommon): self.bo_requisition.company_id = new_company self.bo_requisition.action_in_progress() self.assertTrue(self.bo_requisition.name.startswith("REQ_")) + + def test_taxes_for_alternative_po(self): + """ + Check that PO lines of PO generated by alternative compute taxes + """ + product = self.product_13 + vendor = self.res_partner_1 + po_form = Form(self.env['purchase.order']) + po_form.partner_id = vendor + with po_form.order_line.new() as line: + line.product_id = product + line.product_qty = 1 + orig_po = po_form.save() + # Creates an alternative PO + action = orig_po.action_create_alternative() + alt_po_wizard_form = Form(self.env['purchase.requisition.create.alternative'].with_context(**action['context'])) + alt_po_wizard_form.partner_id = vendor + alt_po_wizard_form.copy_products = True + alt_po_wizard = alt_po_wizard_form.save() + alt_po_id = alt_po_wizard.action_create_alternative()['res_id'] + alt_po = self.env['purchase.order'].browse(alt_po_id) + self.assertEqual(orig_po.order_line.taxes_id, alt_po.order_line.taxes_id) diff --git a/addons/purchase_requisition/wizard/purchase_requisition_create_alternative.py b/addons/purchase_requisition/wizard/purchase_requisition_create_alternative.py index f494a5ad294..31b7d8a95ff 100644 --- a/addons/purchase_requisition/wizard/purchase_requisition_create_alternative.py +++ b/addons/purchase_requisition/wizard/purchase_requisition_create_alternative.py @@ -60,6 +60,7 @@ class PurchaseRequisitionCreateAlternative(models.TransientModel): ) vals = self._get_alternative_values() alt_po = self.env['purchase.order'].with_context(origin_po_id=self.origin_po_id.id, default_requisition_id=False).create(vals) + alt_po.order_line._compute_tax_id() return { 'type': 'ir.actions.act_window', 'view_mode': 'form',