获取 POS 餐厅会话用户/收银员

问题描述 投票:0回答:1

您好!

在odoo v17 POS Resturant中,对于每个会话的多个员工如何获取POS会话用户并检查它是否属于基本权限或高级权限。

根据上述情况需要使按钮在付款屏幕中显示或隐藏。

在下面的屏幕中,我想检查 Manager1 在配置中是否具有基本权限或高级权限,并基于发票按钮应在付款屏幕中可见。

下面的代码对于 Odoo 登录用户运行良好,但我需要为 POS 会话用户或收银员用户实现它

enter image description hereenter image description here

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>
point-of-sale odoo-17
1个回答
0
投票

直接与组件中加载的值进行比较,下面的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>
© www.soinside.com 2019 - 2024. All rights reserved.