delivery_carrier_partner_account: make default the first account added to a partner
This commit is contained in:
parent
69faaec42f
commit
a273cde7ba
3 changed files with 49 additions and 1 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
from odoo import models, fields
|
from odoo import models, fields, api
|
||||||
|
|
||||||
|
|
||||||
class Partner(models.Model):
|
class Partner(models.Model):
|
||||||
|
|
@ -16,3 +16,20 @@ class Partner(models.Model):
|
||||||
tracking=1,
|
tracking=1,
|
||||||
ondelete="restrict",
|
ondelete="restrict",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def write(self, vals):
|
||||||
|
update_default_carrier = (
|
||||||
|
"carrier_account_ids" in vals and not self.default_carrier_account_id
|
||||||
|
)
|
||||||
|
res = super().write(vals)
|
||||||
|
if update_default_carrier:
|
||||||
|
self.default_carrier_account_id = self.carrier_account_ids[0]
|
||||||
|
return res
|
||||||
|
|
||||||
|
@api.model_create_multi
|
||||||
|
def create(self, vals_list):
|
||||||
|
res = super().create(vals_list)
|
||||||
|
for rec in res:
|
||||||
|
if not rec.default_carrier_account_id and rec.carrier_account_ids:
|
||||||
|
rec.default_carrier_account_id = rec.carrier_account_ids[0]
|
||||||
|
return res
|
||||||
|
|
|
||||||
|
|
@ -2,3 +2,4 @@ from . import test_carrier_account_common
|
||||||
from . import test_carrier_account_mixin
|
from . import test_carrier_account_mixin
|
||||||
from . import test_choose_delivery_carrier
|
from . import test_choose_delivery_carrier
|
||||||
from . import test_sale_order
|
from . import test_sale_order
|
||||||
|
from . import test_res_partner
|
||||||
|
|
|
||||||
30
delivery_carrier_partner_account/tests/test_res_partner.py
Normal file
30
delivery_carrier_partner_account/tests/test_res_partner.py
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
from odoo.tests import TransactionCase, tagged
|
||||||
|
from odoo import Command
|
||||||
|
|
||||||
|
|
||||||
|
@tagged("post_install", "-at_install")
|
||||||
|
class TestResPartner(TransactionCase):
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super().setUpClass()
|
||||||
|
|
||||||
|
def test_default_carrier_set_on_create(self):
|
||||||
|
partner = self.env["res.partner"].create(
|
||||||
|
{
|
||||||
|
"name": "Test Partner",
|
||||||
|
"carrier_account_ids": [
|
||||||
|
Command.create(
|
||||||
|
{
|
||||||
|
"delivery_carrier_id": self.env.ref(
|
||||||
|
"delivery.free_delivery_carrier"
|
||||||
|
).id,
|
||||||
|
"account_number": "1234567890",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
partner.carrier_account_ids[0], partner.default_carrier_account_id
|
||||||
|
)
|
||||||
Loading…
Reference in a new issue