Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

4

How to apply domain filter on Many2One field Using Odoo JS?

By
Ayaz Mansuri
on 3/8/16, 2:58 AM 1,517 views

Hello Community...!!!

Currently, I am Working on POS Customization. I've done almost but stuck in this issue. 

Py File:

class prescription(osv.osv):

_name = 'res.prescriptions'

_columns={

'prescription_id':fields.many2one('res.partner',"customer"),

}

class prescription_res_partner(osv.osv):

_inherit = 'res.partner'

_columns = {

'prescriptions_ids': fields.one2many('res.prescriptions','prescription_id','Prescriptions'),

}

What I would like to do, is that when the user select customer in POS, and click on Prescription Button, it shows only prescriptions that are related to particular selected customer.. For now, it displays all prescriptions as I am not able to set correctly the filter domain. Also.....

i've tried to solve my problem using .query(), .filter() in JS. but getting some errors, while if i put static partner_id then it will display prescriptions for given static partner_id. I want to solve this for dynamic partners. it shows only selected partner's prescriptions...!!!

In JS File: 

var def = new $.Deferred();

console.log("deffffffffffffff", def);

var fields = _.find(this.models,function(model){ return model.model === 'res.prescriptions'; });

new instance.web.Model('res.prescriptions')

.query(fields)

.filter([['prescription_id', '=', 51]]) // Here i pass static partner_id instead of this i want to pass dynamic partner_id

.limit(1000)

.all()

.then(function(prescriptions){

if (self.render_list_prescription(prescriptions)) { // Render selected partner's Prescription

def.resolve();

} else {

def.reject();

}

}, function(err,event){ event.preventDefault(); def.reject(); });

return def;

i've spend almost 3 days to overcome this problem but failed to Deliver it. please help me out from this. Again Many Thanks for your help..!!!

0
Thanh Loyal
On 3/8/16, 5:24 AM

Hello,

The first thing is in your prescription class, the field name should be customer_id instead of 'prescription_id'

And about current customer: My case, i call this from inside a Widget:


var client = this.pos_widget.clientlist_screen.new_client;

if it is not your case, search for 'clientlist_screen' in source code of point_of_sale module, you'll see it.

Hope this help.

Ya i know its a Mistake that field name should be customer_id or partner_id. but it doesn't matter at all. i just want to know that how can i filter dynamic partner_id & shows only selected partner's prescriptions. Thanks

Ayaz Mansuri
on 3/8/16, 5:35 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 3/8/16, 2:58 AM
Seen: 1517 times
Last updated: 4/1/16, 6:49 AM