Skip to Content
Menu
This question has been flagged
1 Reply
1653 Views

Hello, 
I am trying to inherit Odoo 16 pos _getSearchFields js function and add a search field by the name Order Reference. It should appear as shown in the dropdown of the searchbar below.



How can I go about this?

Thanks in advance.

Here is my code.

oo.define('pos_customizations.TicketScreen', function (require) {
"use strict";
var TicketScreen = require("point_of_sale.TicketScreen");
TicketScreen.include({
/**
* @returns {Record string, displayName: string, modelField: string }>}
*/
_getSearchFields() {
const fields = {
RECEIPT_NUMBER: {
repr: (order) => order.name,
displayName: this.env._t('Receipt Number'),
modelField: 'pos_reference',
},
DATE: {
repr: (order) => moment(order.creation_date).format('YYYY-MM-DD hh:mm A'),
displayName: this.env._t('Date'),
modelField: 'date_order',
},
PARTNER: {
repr: (order) => order.get_partner_name(),
displayName: this.env._t('Customer'),
modelField: 'partner_id.display_name',
},
NAME: {
repr: (order) => order.name(),
displayName: this.env._t('Order Ref'),
modelField: 'name',
},
};
return fields;
}

})
return TicketScreen;
});


Avatar
Discard
Author Best Answer

I found the solution to my question and here is the answer.

/** @odoo-module **/
odoo.define('pos_customizations.TicketScreen', function (require) {
'use strict';

const TicketScreen = require('point_of_sale.TicketScreen');
const Registries = require('point_of_sale.Registries');

const CustomTicketScreen = (TicketScreen) =>
class extends TicketScreen {
_getSearchFields() {
const fields = super._getSearchFields(name);
fields.ORDER_REF = {
repr: (order) => order.name,
displayName: this.env._t('Order Ref'),
modelField: 'name',
}
return fields;
}
};

Registries.Component.extend(TicketScreen, CustomTicketScreen);
return TicketScreen;
});


Avatar
Discard
Related Posts Replies Views Activity
1
Feb 25
1532
1
Mar 24
1560
2
Jun 24
2322
1
Feb 24
1299
0
Nov 23
1294