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