diff --git a/delivery_carrier_partner_account/__manifest__.py b/delivery_carrier_partner_account/__manifest__.py index ac5261a..08c316f 100644 --- a/delivery_carrier_partner_account/__manifest__.py +++ b/delivery_carrier_partner_account/__manifest__.py @@ -19,7 +19,7 @@ # { "name": "Carrier Accounts by Partner", - "version": "18.0.0.1.2", + "version": "18.0.0.1.3", "summary": "Add one or many carrier accounts per partner", "category": "Delivery", "author": "Bemade Inc.", diff --git a/delivery_carrier_partner_account/models/carrier_account_mixin.py b/delivery_carrier_partner_account/models/carrier_account_mixin.py index 52168af..75a0df8 100644 --- a/delivery_carrier_partner_account/models/carrier_account_mixin.py +++ b/delivery_carrier_partner_account/models/carrier_account_mixin.py @@ -250,9 +250,6 @@ class CarrierAccountMixin(models.AbstractModel): "carrier_account_ids.delivery_carrier_id" ) - def _on_carrier_fields_changed(self): - pass - @api.constrains("delivery_billing_mode", "carrier_id", "carrier_account_id") def _check_carrier_account(self): for rec in self: @@ -285,4 +282,4 @@ class CarrierAccountMixin(models.AbstractModel): elif rec.delivery_billing_mode == "third party": raise UserError( f"Third party carrier account cannot belong to sender or recipient. Current object: {rec}" - ) + ) \ No newline at end of file diff --git a/delivery_carrier_partner_account/models/sales_order.py b/delivery_carrier_partner_account/models/sales_order.py index be8ef38..13fa378 100644 --- a/delivery_carrier_partner_account/models/sales_order.py +++ b/delivery_carrier_partner_account/models/sales_order.py @@ -46,3 +46,14 @@ class SalesOrder(models.Model): ), } ) + + def action_confirm(self): + res = super().action_confirm() + self.picking_ids.write( + { + "delivery_billing_mode": self.delivery_billing_mode, + "carrier_account_id": self.carrier_account_id + and self.carrier_account_id.id, + } + ) + return res diff --git a/delivery_carrier_partner_account/tests/test_sale_order.py b/delivery_carrier_partner_account/tests/test_sale_order.py index c8c1a90..4c13adb 100644 --- a/delivery_carrier_partner_account/tests/test_sale_order.py +++ b/delivery_carrier_partner_account/tests/test_sale_order.py @@ -1,6 +1,6 @@ from .test_carrier_account_common import TestCarrierAccountCommon from odoo.tests import Form -from odoo import Command +from odoo import Command, api class TestSalesOrder(TestCarrierAccountCommon): @@ -76,6 +76,30 @@ class TestSalesOrder(TestCarrierAccountCommon): "The carrier account should belong to the recipient (sale order shipping address)", ) + def test_stock_picking_inherits_carrier_info(self): + order = self.env["sale.order"].create( + { + "partner_id": self.client_partner.id, + "partner_shipping_id": self.client_partner.id, + "order_line": [ + Command.create( + {"product_id": self.env.ref("product.product_delivery_01").id} + ) + ], + "carrier_id": self.delivery_carrier_1.id, + "delivery_billing_mode": "collect", + "carrier_account_id": self.client_account_1.id, + } + ) + order.action_confirm() + self.env.flush_all() + + picking = order.picking_ids + self.assertEqual(picking.carrier_id, order.carrier_id) + self.assertEqual(picking.delivery_billing_mode, order.delivery_billing_mode) + self.assertEqual(picking.carrier_account_id, order.carrier_account_id) + + @api.returns("delivery.carrier.wizard") def _get_shipping_wizard(self, order): wizard_action = order.action_open_delivery_wizard() return (