I want to add some custom function or code in ProductScreen class in POS. But I didn't find any appropriate example. How can I extend odoo owl Component and override or add new function on it.
Этот вопрос был отмечен
2
Ответы
12455
Представления
odoo.define('uni_pos.ProductScreen_PosLineDiscount', function(require) {
'use strict';
const Registries = require('point_of_sale.Registries');
const ProductScreen = require('point_of_sale.ProductScreen');
const PosLineDiscount = (ProductScreen) => class extends ProductScreen {
async _clickProduct(event) {
if (!this.currentOrder) {
this.env.pos.add_new_order();
}
const product = event.detail;
const options = await this._getAddProductOptions(product);
// Do not add product if options is undefined.
if (!options) return;
// Add the product after having the extra information.
this.currentOrder.add_product(product, options);
// this.currentOrder.get_selected_orderline().set_discount(5)
console.log('Product Add')
try {
NumberBuffer.reset();
}
catch(err) {
console.log(err)
}
}
};
Registries.Component.extend(ProductScreen, PosLineDiscount);
return ProductScreen;
});
Here is the answer, for extending a OWL class and adding and overriding a function.
You can use "patch"
/** @odoo-module **/
import { ClassYouWantToModify } from "path";
import { patch } from "@web/core/utils/patch";
patch(ClassYouWantToModify.prototype, "ModuleName.ClassYouWantToModify", {
/**
* @override the function or add new one
*/
});
Не оставайтесь в стороне – присоединяйтесь к обсуждению!
Создайте аккаунт сегодня, чтобы получить доступ к эксклюзивным функциям и стать частью нашего замечательного сообщества!
Регистрация| Похожие посты | Ответы | Просмотры | Активность | |
|---|---|---|---|---|
|
|
1
мая 23
|
5940 | ||
|
|
1
дек. 22
|
5167 | ||
|
|
3
мар. 25
|
11090 | ||
|
|
0
янв. 24
|
3584 | ||
|
|
1
окт. 23
|
5739 |