Hilfe

0

How to add new field to pos receipt

Avatar
Sahar Dagher

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

Avatar
Verwerfen
1 Antwort
3
Best Answer

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

1 Kommentar
Avatar
Verwerfen
Avatar
Sahar Dagher
-

Thanks...solved :)