delivery_carrier_partner_account: added some test cases and fixed some bugs relating default accounts
This commit is contained in:
parent
5e4a818fc1
commit
2a1be1885e
2 changed files with 85 additions and 0 deletions
|
|
@ -44,3 +44,19 @@ class DeliveryCarrierAccount(models.Model):
|
|||
for rec in self:
|
||||
if rec.partner_id.company_id != rec.delivery_carrier_id.company_id:
|
||||
raise UserError(_("Partner and Carrier must be in the same company."))
|
||||
|
||||
def write(self, vals):
|
||||
res = super().write(vals)
|
||||
for partner in self.partner_id.filtered(
|
||||
lambda partner: not partner.default_carrier_account_id
|
||||
):
|
||||
partner.default_carrier_account_id = partner.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.partner_id.default_carrier_account_id:
|
||||
rec.partner_id.default_carrier_account_id = rec
|
||||
return res
|
||||
|
|
|
|||
|
|
@ -28,3 +28,72 @@ class TestResPartner(TransactionCase):
|
|||
self.assertEqual(
|
||||
partner.carrier_account_ids[0], partner.default_carrier_account_id
|
||||
)
|
||||
|
||||
def test_default_carrier_set_on_update(self):
|
||||
partner = self.env["res.partner"].create(
|
||||
{
|
||||
"name": "Test Partner",
|
||||
}
|
||||
)
|
||||
partner.write(
|
||||
{
|
||||
"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
|
||||
)
|
||||
|
||||
def test_no_change_to_default_account_id_on_update_if_already_set(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",
|
||||
}
|
||||
)
|
||||
],
|
||||
}
|
||||
)
|
||||
new_account = self.env["delivery.carrier.account"].create(
|
||||
{
|
||||
"partner_id": partner.id,
|
||||
"delivery_carrier_id": self.env.ref(
|
||||
"delivery.delivery_local_delivery"
|
||||
).id,
|
||||
"account_number": "1234567890",
|
||||
}
|
||||
)
|
||||
self.assertNotEqual(partner.default_carrier_account_id, new_account)
|
||||
|
||||
def test_carrier_set_if_account_created_from_other_side(self):
|
||||
partner = self.env["res.partner"].create(
|
||||
{
|
||||
"name": "Test Partner",
|
||||
}
|
||||
)
|
||||
new_account = self.env["delivery.carrier.account"].create(
|
||||
{
|
||||
"partner_id": partner.id,
|
||||
"delivery_carrier_id": self.env.ref(
|
||||
"delivery.free_delivery_carrier"
|
||||
).id,
|
||||
"account_number": "1234567890",
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(partner.default_carrier_account_id, new_account)
|
||||
|
|
|
|||
Loading…
Reference in a new issue