[Vtigercrm-commits] [Vtiger development] #7986: PATCH - getCVAdvFilterSQL gets 2+ filter groups wrong
Vtiger development
vtiger-tickets at trac.vtiger.com
Fri Mar 21 08:25:36 GMT 2014
#7986: PATCH - getCVAdvFilterSQL gets 2+ filter groups wrong
------------------------+------------------------
Reporter: autolive | Owner: developer
Type: patch | Status: new
Priority: unassigned | Milestone: Unassigned
Component: vtigercrm | Version: 5.4.0
Severity: Medium | Keywords:
------------------------+------------------------
Hi,
(you may want to read the patch first, it is 1 line of patch)
The problem occurs when the advanced filter has 2 (or more) groups of
conditions and when these 2+ groups have several conditions.
The symptom is that the conditions of the 2+ group are not joined with any
of [and|or] because the index of the the conditions of the 2+ group are
not reset.
In the 2nd group of condition, the $column index does not start at 0 but
is a continued numbering from the previous condition group.
for instance if you have this advanced filter:
(condition1 or condition2) and (condition3 or condition4)
this gets translated to sql into this:
(condition1 or condition2) and (condition3condition4)
because when processing group 2, the array of conditions is:
[
3 => condition3,
4 => condition4
]
and in the test (see patch) when processing the second group:
count($groupcolumns) = 2
$columnindex=3
2 is not < to 3 so the $columncondition is not added
The fix:
max(array_keys()) is better then count() because it is all about comparing
with the array_key [ => $columnindex ]
The patch: see attached file
--
Ticket URL: <http://trac.vtiger.com/cgi-bin/trac.cgi/ticket/7986>
Vtiger development <http://trac.vtiger.com/>
Vtiger CRM
More information about the vtigercrm-commits
mailing list