bemade-addons/delivery_carrier_partner_account/models/delivery_carrier_account.py
Marc Durepos 12274002fd Add better carrier linking for purchasing
delivery_carrier_partner_account and purchase_delivery_carrier
2025-01-17 13:48:50 -05:00

56 lines
1.5 KiB
Python

from odoo import models, fields, api, _
from odoo.exceptions import UserError
class DeliveryCarrierAccount(models.Model):
_name = "delivery.carrier.account"
_description = "Delivery Carrier Account"
_inherit = ["mail.thread", "mail.activity.mixin"]
delivery_carrier_id = fields.Many2one(
comodel_name="delivery.carrier",
string="Delivery Carriers",
required=True,
ondelete="restrict",
)
account_number = fields.Char(
required=True,
tracking=1,
)
partner_id = fields.Many2one(
comodel_name="res.partner",
required=True,
ondelete="cascade",
)
company_id = fields.Many2one(
comodel_name="res.company",
related="delivery_carrier_id.company_id",
)
active = fields.Boolean(
default=True,
)
@api.depends("account_number")
def _compute_display_name(self):
for record in self:
record.display_name = record.account_number
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