c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #29335
Re: [Bug 816561] [NEW] Pb with complex domain expressions
On Tuesday 26 July 2011, you wrote:
> Public bug reported:
>
> I have a problem with complex domain expressions ; it may be a bug of
> the OpenERP server, but it may also be a bad domain expression due to a
> bad comprehension of the way it is supposed to work.
>
> In an ir.actions.act_window on the object account.invoice :
>
> 1) I want to filter on open invoice/refunds that are either from Asustek
> with country = Taiwan or from Direct PC with country = Belgium, so I
> write the following expression :
>
> <field name="domain">['&', '|', '&',
> ('address_invoice_id.country_id.name', '=', 'Taiwan'),
> ('partner_id.name', '=', 'ASUStek'), '&',
> ('address_invoice_id.country_id.name', '=', 'Belgium'),
> ('partner_id.name', '=', 'Distrib PC'), ('state', '=', 'open')]</field>
>
> Result : it works OK.
>
> 2) I want to filter on open customer invoices that are either from
> Asustek with country = Taiwan or from Direct PC with country = Belgium,
> so I write the following expression :
>
> <field name="domain">['&', '&', '|', '&',
> ('address_invoice_id.country_id.name', '=', 'Taiwan'),
> ('partner_id.name', '=', 'ASUStek'), '&',
> ('address_invoice_id.country_id.name', '=', 'Belgium'),
> ('partner_id.name', '=', 'Distrib PC'), ('state', '=', 'open'), ('type',
> '=', 'out_invoice')]</field>
>
> Result : NOT OK, I get ALL the invoices !
>
Strange, to me, it seems to be working fine with both of your
expressions:
BQI account.invoice> table id, partner_id, state from read([6,7,8,9])
id| partner_id | state
-----------------------------------------------------------------------------------------------------
9 |[7, 'Axelor'] |open
8 |[11, 'Distrib PC']|draft
7 |[11, 'Distrib PC']|open
6 |[2, 'ASUStek'] |open
BQI account.invoice> do search(['&', '|', '&',
('address_invoice_id.country_id.name', '=', 'Taiwan'), ('partner_id.name',
'=', 'ASUStek'), '&', ('address_invoice_id.country_id.name', '=', 'Belgium'),
('partner_id.name', '=', 'Distrib PC'), ('state', '=', 'open')])
Res: [7, 6]
BQI account.invoice> do search(['&', '&', '|', '&',
('address_invoice_id.country_id.name', '=', 'Taiwan'), ('partner_id.name',
'=', 'ASUStek'), '&', ('address_invoice_id.country_id.name', '=', 'Belgium'),
('partner_id.name', '=', 'Distrib PC'), ('state', '=', 'open'), ('type', '=',
'out_invoice')])
Res: [7, 6]
BQI> server get environment
execute: 'get_server_environment' ()
Result:
Environment Information :
System : Linux-3.0.0-rc4+-x86_64-with-mandrake-1-Official
OS Name : posix
LSB Version: *
Distributor ID: Mageia
Description: Mageia 1
Release: 1
Codename: valstar
Operating System Release : 3.0.0-rc4+
Operating System Version : #5 SMP Sat Jun 25 14:36:11 EEST 2011
Operating System Architecture : 64bit
Operating System Locale : el_GR.UTF-8
Python Version : 2.7.1
OpenERP-Server Version : 6.0.2
(also tested on pg-84 server)
Can you please test again or explain us more details about the way you are
trying to apply the domain? Is it on the tree view, with which client?
--
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/816561
Title:
Pb with complex domain expressions
Status in OpenERP Server:
New
Bug description:
I have a problem with complex domain expressions ; it may be a bug of
the OpenERP server, but it may also be a bad domain expression due to
a bad comprehension of the way it is supposed to work.
In an ir.actions.act_window on the object account.invoice :
1) I want to filter on open invoice/refunds that are either from
Asustek with country = Taiwan or from Direct PC with country =
Belgium, so I write the following expression :
<field name="domain">['&', '|', '&',
('address_invoice_id.country_id.name', '=', 'Taiwan'),
('partner_id.name', '=', 'ASUStek'), '&',
('address_invoice_id.country_id.name', '=', 'Belgium'),
('partner_id.name', '=', 'Distrib PC'), ('state', '=',
'open')]</field>
Result : it works OK.
2) I want to filter on open customer invoices that are either from
Asustek with country = Taiwan or from Direct PC with country =
Belgium, so I write the following expression :
<field name="domain">['&', '&', '|', '&',
('address_invoice_id.country_id.name', '=', 'Taiwan'),
('partner_id.name', '=', 'ASUStek'), '&',
('address_invoice_id.country_id.name', '=', 'Belgium'),
('partner_id.name', '=', 'Distrib PC'), ('state', '=', 'open'),
('type', '=', 'out_invoice')]</field>
Result : NOT OK, I get ALL the invoices !
I have this problem with OpenERP server branch 5.0 and branch 6.0 ; I
wanted to test on trunk, but I can't find the "Modules" menu entry to
install my module !
By the way, my source of information about complex domain expressions is this one :
http://christophe-simonis-at-tiny.blogspot.com/2008/08/new-new-domain-notation.html
plus wikipedia to understand "polish expressions" and "arity".
To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-server/+bug/816561/+subscriptions
References