javascript - 添加客户搜索条件 Odoo13 的 POS

标签 javascript odoo customization pos odoo-13

我已将一些自定义字段添加到 res.partner 的模型中,并且我想将此字段添加到 POS 的搜索条件中。我在 models.js 文件中添加的字段可以在以下代码中理解:

odoo.define('my_module.models', function (require) {
    "use strict";

    var models = require('point_of_sale.models');

    models.load_fields('res.partner', [
        'billing_name',
        'partner_billing_number'
    ]);

    models.load_models([{
        model: 'res.partner',
        fields: ['billing_name', 'partner_billing_number'],
        loaded: function(self, partners){self.db.add_partners(partners)},
    }]);

});

然后我尝试使用以下代码将此字段添加到我的 db.js 文件的搜索条件中:

odoo.define('my_module.db', function (require) {
    "use strict";

    var core = require('web.core');

    var PosDB = core.Class.extend({
        _partner_search_string: function(partner){
            var str = partner.name || '';
            if(partner.billing_name){
                str += '|' + partner.billing_name;
            }
            if(partner.partner_billing_number){
                str += '|' + partner.partner_billing_number;
            }
            str = partner.id + ':' +str.replace(/:/g,'') + '\n';
            return str;
        },

        add_partners:function (partners) {
            for(let i=0, len=partners.length; i < len; i++){
                var partner = partners[i];
                var search_string = this._partner_search_string(partner);
                this.partner_search_string[partner] += search_string;
            }
        }
    });

    return PosDB;

});

到目前为止,我无法将两个搜索字段添加到搜索条件中,甚至有点破坏了代码。我的代码中缺少什么?我怎样才能实现这个目标?

最佳答案

odoo.define('my_module.models', function (require) {
    "use strict";

var PosDB = require('point_of_sale.DB');
var models = require('point_of_sale.models');
models.load_fields('res.partner', [
        'billing_name',
        'partner_billing_number'
    ]);

PosDB.include({
    _partner_search_string: function(partner){
        var str =  partner.name || '';
        if(partner.barcode){
            str += '|' + partner.barcode;
        }
        if(partner.address){
            str += '|' + partner.address;
        }
        if(partner.phone){
            str += '|' + partner.phone.split(' ').join('');
        }
        if(partner.mobile){
            str += '|' + partner.mobile.split(' ').join('');
        }
        if(partner.email){
            str += '|' + partner.email;
        }
        if(partner.vat){
            str += '|' + partner.vat;
        }
        if(partner.billing_name){
            str += '|' + partner.billing_name;
        }
        if(partner.partner_billing_number){
            str += '|' + partner.partner_billing_number;
        }
        str = '' + partner.id + ':' + str.replace(':','') + '\n';
        return str;
    },
});

});

仅使用一个文件,我希望您能获得所需的输出。

关于javascript - 添加客户搜索条件 Odoo13 的 POS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61375423/

相关文章:

javascript - 加载图像,然后使用 canvas/javascript 对其进行动画处理

javascript - 如何获取$(this)的eq()?

javascript - 将循环结果更改为在 javascript/Jquery 中反转顺序

python - 导入错误 : No module named psycopg2

odoo - 在 qweb 报告 odoo 中按日期 ASC 排序

visual-studio-2008 - 在 Visual Studio 2008 中自定义位置栏

javascript - 如何更改 recaptcha 中的 "Privacy & Terms"链接

javascript - 停止刷新表单

error-handling - 禁止从非 transient 模型到 transient 模型的 Many2One 关系

iOS - UISlider 的自定义图像