您好!
在odoo v17 POS Resturant中,对于每个会话的多个员工如何获取POS会话用户并检查它是否属于基本权限或高级权限。
根据上述情况需要使按钮在付款屏幕中显示或隐藏。
在下面的屏幕中,我想检查 Manager1 在配置中是否具有基本权限或高级权限,并基于发票按钮应在付款屏幕中可见。
下面的代码对于 Odoo 登录用户运行良好,但我需要为 POS 会话用户或收银员用户实现它
class pos_config(models.Model):
_inherit = 'pos.config'
show_invoice = fields.Boolean(string="Show Invoice", compute="_compute_invoice_button", store=True)
@api.depends('basic_employee_ids', 'advanced_employee_ids')
def _compute_invoice_button(self):
if self.env.user.employee_id in self.advanced_employee_ids:
self.write({'show_invoice': True})
else:
self.write({'show_invoice': False})
<t t-name="pos_button.PaymentScreenButtons" t-inherit="point_of_sale.PaymentScreenButtons" t-inherit-mode="extension">
<xpath expr="//button[hasclass('button') and hasclass('js_invoice')]" position="attributes">
<attribute name="t-att-hidden">!pos.config.show_invoice</attribute>
</xpath>
</t>
直接与组件中加载的值进行比较,下面的xpath足以满足您的要求。你可以简单地做到这一点,无需 python 继承和计算方法。
<t t-name="pos_button.PaymentScreenButtons" t-inherit="point_of_sale.PaymentScreenButtons" t-inherit-mode="extension">
<xpath expr="//button[hasclass('button') and hasclass('js_invoice')]" position="attributes">
<attribute name="t-att-hidden">!this.pos.config.advanced_employee_ids.includes(this.pos.cashier.id)</attribute>
</xpath>
</t>