[FIX] account: Fix matching rules with empty communication
The way to find a matching about structured communication is done by:
1 - making a filter to keep only numerical values.
2 - splitting the result into array.
3 - finding an intersect between the sets.
For example,
"Payment about +++123/456789+++ and +++987/654321+++" is matching "123456789 blablabla"?
1 - "123456789 987654321" is matching "123456789" ?
2 - ["123456789", "987654321"] is matching ["123456789"]
3 - YES because "123456789" intersects both sets.
This commit is about the check is always TRUE when both sets are empty.
In this specific case, the result must be FALSE.
-opw: 2008299
closes odoo/odoo#34115
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit is contained in:
@@ -442,6 +442,8 @@ class AccountReconcileModel(models.Model):
|
||||
(
|
||||
line_partner.partner_id = 0
|
||||
AND
|
||||
TRIM(REGEXP_REPLACE(st_line.name, '[^0-9|^\s]', '', 'g')) != ''
|
||||
AND
|
||||
(
|
||||
regexp_split_to_array(TRIM(REGEXP_REPLACE(move.name, '[^0-9|^\s]', '', 'g')),'\s+')
|
||||
&& regexp_split_to_array(TRIM(REGEXP_REPLACE(st_line.name, '[^0-9|^\s]', '', 'g')), '\s+')
|
||||
|
||||
Reference in New Issue
Block a user