server-ux/barcode_action/models/res_partner.py
2021-03-23 20:15:27 +01:00

36 lines
1.2 KiB
Python

# Copyright 2018 Creu Blanca
# Copyright 2020 ForgeFlow S.L.
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
import json
from flectra import _, models
from flectra.tools.safe_eval import safe_eval
class ResPartner(models.Model):
_inherit = "res.partner"
def find_res_partner_by_ref_using_barcode(self, barcode):
partner = self.search([("ref", "=", barcode)], limit=1)
if not partner:
action = self.env.ref("barcode_action.res_partner_find")
result = action.read()[0]
context = safe_eval(result["context"])
context.update(
{
"default_state": "warning",
"default_status": _(
"Partner with Internal Reference " "%s cannot be found"
)
% barcode,
}
)
result["context"] = json.dumps(context)
return result
action = self.env.ref("base.action_partner_form")
result = action.read()[0]
res = self.env.ref("base.view_partner_form", False)
result["views"] = [(res and res.id or False, "form")]
result["res_id"] = partner.id
return result