← Back to team overview

c2c-oerpscenario team mailing list archive

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">['&amp;', '|', '&amp;',
> ('address_invoice_id.country_id.name', '=', 'Taiwan'),
> ('partner_id.name', '=', 'ASUStek'), '&amp;',
> ('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">['&amp;', '&amp;', '|', '&amp;',
> ('address_invoice_id.country_id.name', '=', 'Taiwan'),
> ('partner_id.name', '=', 'ASUStek'), '&amp;',
> ('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">['&amp;', '|', '&amp;',
  ('address_invoice_id.country_id.name', '=', 'Taiwan'),
  ('partner_id.name', '=', 'ASUStek'), '&amp;',
  ('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">['&amp;', '&amp;', '|', '&amp;',
  ('address_invoice_id.country_id.name', '=', 'Taiwan'),
  ('partner_id.name', '=', 'ASUStek'), '&amp;',
  ('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