Hi,

I have gone through the forum and found few posts regarding many2many domain 
(filtering), unfortunately none helped much.

Below are the objects:
class billing_service(osv.osv):
        """Services"""
        _name = 'billing.service'
        _columns = {
                'name': fields.char('Service Name', size=64, required=True),
                'product_id': fields.many2one('product.product', 'Service 
Product', required=True, ondelete='cascade', domain="[('type','=','service')]"),
                'bill_type': 
fields.selection([('schedule','Schedule'),('usage','Usage')], 'Billing Type', 
required=True, help="Specify whether the service will be billed based on 
schedule or by usage import entries"),
                'schedule_id': fields.many2one('billing.schedule', 'Schedule 
Name'),
                'note': fields.text('Note'),
        }
billing_service()

class billing_member(osv.osv):
        """Members"""
        _name = 'billing.member'
        _columns = {
                'name': fields.char('Member Name', size=64, required=True),
                'partner_id': fields.many2one('res.partner', 'Partner', 
required=True, ondelete='cascade'),
                'joining_date': fields.date('Joining Date'),
                'active': fields.boolean('Active'),
                'services': fields.many2many('billing.service', 
'billing_member_service_rel', 'member_id', 'service_id', 'Services'),
        }
billing_member()

class billing_susage(osv.osv):
        """Usage Entry"""
        _name = 'billing.susage'
        _columns = {
                'name': fields.char('Description', size=64, required=True),
                'udate': fields.date('Usage Date'),
                'member_id': fields.many2one('billing.member', 'Member Name'),
                'service_id': fields.many2one('billing.service', 'Service 
Name'), # only show services linked with member
                'quantity': fields.float('Quantity', digits=(12,2)),
                'unitprice': fields.float('Unit Price', digits=(12,2)),
                'override': fields.boolean('Override Unit Price'),
                'billed': fields.boolean('Billed', readonly=True),
        }
billing_susage()

In billing_susage, I want to to only show the service_id which are linked to 
the member (many2many relation between member and service). 

I tried 
'service_id': fields.many2one('billing.service', 'Service Name', 
domain="[('id','in','ANY(SELECT  service_id FROM billing_member_service_rel 
where member_id = %d)'%(member_id))]")
... and also try to hardcode in order to test...
'service_id': fields.many2one('billing.service', 'Service Name' 
domain="[('type','in','ANY(SELECT  service_id FROM billing_member_service_rel 
where member_id = 1)')]") 
... both gave me ... list index out of range error

when i try:
'service_id': fields.many2one('billing.service', 'Service Name', 
domain="[('id','=','ANY(SELECT  service_id FROM billing_member_service_rel 
where member_id = %d)'%(member_id))]")
... it gives me error .... DataError: invalid input syntax for integer: 
"ANY(SELECT  service_id FROM billing_member_service_rel where member_id = 1)"
LINE 1: ...from "billing_service" where billing_service.id = E'ANY(SELE...

Any help??

Thanks
Khalid




-------------------- m2f --------------------

--
http://www.openobject.com/forum/viewtopic.php?p=50553#50553

-------------------- m2f --------------------


_______________________________________________
Tinyerp-users mailing list
http://tiny.be/mailman2/listinfo/tinyerp-users

Reply via email to