跳至内容
菜单
此问题已终结
2 回复
7601 查看

Hi, i want to add new field on product to show it on pos receipt in odoo v14, any help please

形象
丢弃
最佳答案

Hi,
First add the field by inheriting 'product.product' model.

class Product(models.Model):
    _inherit = 'product.product'
    new_field = fields.Char()

Then write Javascript function to add this new field to PoS model.

odoo.define('module_name.NewField', function(require){
    'use strict';
    var models = require('point_of_sale.models');
    var _super_product = models.PosModel.prototype;
    models.PosModel = models.PosModel.extend({
        initialize: function(session, attributes){
            var self = this;
            models.load_fields('product.product', ['new_field']);
            _super_product.initialize.apply(this, arguments);
        }
    });
});
Now we can pass this field to the receipt.

odoo.define('module_name.receipt', function(require){
    "use strict";
    var models = require('point_of_sale.models');
    models.load_fields('product.product', 'product_grade_id');
    var _super_orderline = models.Orderline.prototype;
    models.Orderline = models.Orderline.extend({
        export_for_printing: function(){
            var line = _super_orderline.export_for_printing.apply(this, arguments);
            line.new_field = this.get_product().new_field;
            return line;
        }
    });
});
Now you can inherit the OrderReceipt template to add the new field

https://ibb.co/3Yb3StF

Regards

形象
丢弃
编写者

Thanks...solved :)

最佳答案
First add the field by inheriting 'product.product' model.

this code is in which file? 

Then write Javascript function to add this new field to PoS model.

this code is into models.js file?

Sorry but i'm a newby. 

形象
丢弃
相关帖文 回复 查看 活动
0
11月 23
1884
1
8月 23
2839
0
5月 23
2625
0
12月 22
2449
0
10月 22
3644