コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
3981 ビュー

Can anyone give me minimal code so that any method I can override for JS method? in pos odoo




changeMode(mode) { if (!this.hasPriceControlRights && mode === 'price' ) { return; } if (!this.hasManualDiscount && mode === 'discount') { return; } this.trigger('set-numpad-mode', { mode }); }


アバター
破棄
最善の回答

Hi,

In Odoo 15, you can override a JavaScript method by creating a custom module and using the patch utility from OWL. First, include your custom JS file in the point_of_sale.assets bundle in your module’s __manifest__.py. Inside the JS file, import the component you want to override (e.g., Numpad in POS) and use patch to extend its prototype. For example, to override the changeMode method, write:


/** @odoo-module **/

import { patch } from "@web/core/utils/patch";

import { Numpad } from "@point_of_sale/app/screens/numpad/numpad";


patch(Numpad.prototype, "my_pos_custom_numpad_patch", {

    changeMode(mode) {

        console.log("Custom logic for changeMode", mode);

        this.trigger('set-numpad-mode', { mode });

    },

});


After restarting Odoo and upgrading the module, your custom logic will replace or extend the original method. This is the clean and recommended way to override JS methods in Odoo 15.


Hope it helps


アバター
破棄
最善の回答

Inherits the class of the method,Rewriting method

アバター
破棄
関連投稿 返信 ビュー 活動
2
5月 22
14816
2
4月 22
4963
1
7月 25
4282
10
12月 24
32907
1
11月 23
10811