继承 Odoo 10 中的 POS Javascript 函数
Inherit POS Javascript function in Odoo 10
我正在尝试继承和修改point_of_sale
模块已有的js功能。
这是我需要继承的功能
models.js
exports.Orderline = Backbone.Model.extend({
set_quantity: function(quantity){
console.log('quantity',quantity);
this.order.assert_editable();
if(quantity === 'remove'){
this.order.remove_orderline(this);
return;
}else{
var quant = parseFloat(quantity) || 0;
var unit = this.get_unit();
if(unit){
if (unit.rounding) {
this.quantity = round_pr(quant, unit.rounding);
var decimals = this.pos.dp['Product Unit of Measure'];
this.quantityStr = formats.format_value(round_di(this.quantity, decimals), { type: 'float', digits: [69, decimals]});
} else {
this.quantity = round_pr(quant, 1);
this.quantityStr = this.quantity.toFixed(0);
}
}else{
this.quantity = quant;
this.quantityStr = '' + this.quantity;
}
}
this.trigger('change',this);
},
});
这是我的代码:
pos_model.js
odoo.define('point_of_sale.models_inherit', function (require) {
"use strict";
var module = require('point_of_sale.models');
module.include({
set_quantity: function(quantity){
console.log('initialize');
}
});
});
现在我在控制台中收到一个错误,例如,
`module.include is not a function`
我如何继承它?
我认为您需要使用 module.Orderline.include
而不是 module.include
[source], as point_of_sale.models
is an object.
odoo.define('point_of_sale.models_inherit', function (require) {
"use strict";
var module = require('point_of_sale.models');
module.Orderline.include({
set_quantity: function(quantity) {
console.log('initialize');
}
});
});
试试下面的代码片段!!已在 Odoo v10.0
中测试
odoo.define('point_of_sale.models', function (require) {
"use strict";
var models = require('point_of_sale.models');
var _super_orderline = models.Orderline.prototype;
models.Orderline = models.Orderline.extend({
set_quantity: function(quantity){
// Call SUPER method!!
_super_orderline.set_quantity.apply(this,arguments);
// =============
// DO YOUR STUFF
// =============
}
});
});
顺便说一句,您可以在 odoo 10 中找到相同的示例...
检查 multiprint.js 个文件!!
我正在尝试继承和修改point_of_sale
模块已有的js功能。
这是我需要继承的功能
models.js
exports.Orderline = Backbone.Model.extend({
set_quantity: function(quantity){
console.log('quantity',quantity);
this.order.assert_editable();
if(quantity === 'remove'){
this.order.remove_orderline(this);
return;
}else{
var quant = parseFloat(quantity) || 0;
var unit = this.get_unit();
if(unit){
if (unit.rounding) {
this.quantity = round_pr(quant, unit.rounding);
var decimals = this.pos.dp['Product Unit of Measure'];
this.quantityStr = formats.format_value(round_di(this.quantity, decimals), { type: 'float', digits: [69, decimals]});
} else {
this.quantity = round_pr(quant, 1);
this.quantityStr = this.quantity.toFixed(0);
}
}else{
this.quantity = quant;
this.quantityStr = '' + this.quantity;
}
}
this.trigger('change',this);
},
});
这是我的代码:
pos_model.js
odoo.define('point_of_sale.models_inherit', function (require) {
"use strict";
var module = require('point_of_sale.models');
module.include({
set_quantity: function(quantity){
console.log('initialize');
}
});
});
现在我在控制台中收到一个错误,例如,
`module.include is not a function`
我如何继承它?
我认为您需要使用 module.Orderline.include
而不是 module.include
[source], as point_of_sale.models
is an object.
odoo.define('point_of_sale.models_inherit', function (require) {
"use strict";
var module = require('point_of_sale.models');
module.Orderline.include({
set_quantity: function(quantity) {
console.log('initialize');
}
});
});
试试下面的代码片段!!已在 Odoo v10.0
odoo.define('point_of_sale.models', function (require) {
"use strict";
var models = require('point_of_sale.models');
var _super_orderline = models.Orderline.prototype;
models.Orderline = models.Orderline.extend({
set_quantity: function(quantity){
// Call SUPER method!!
_super_orderline.set_quantity.apply(this,arguments);
// =============
// DO YOUR STUFF
// =============
}
});
});
顺便说一句,您可以在 odoo 10 中找到相同的示例... 检查 multiprint.js 个文件!!