Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
8097 Vistas

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

Avatar
Descartar
Mejor respuesta

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

Avatar
Descartar
Autor

Thanks...solved :)

Mejor respuesta
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. 

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
0
nov 23
2413
1
ago 23
3384
0
may 23
3111
0
dic 22
2904
0
oct 22
4137