How to convert this expression : ((A & B) | ( C & D)) | (( E & F) | (G & H)) in OpenERP domain syntax
PostgreSQL query is :
SELECT
*
FROM
calendar_event
WHERE
(
(start_datetime <= '2020-01-07 09:00:00' and '2020-01-07 09:00:00' <= stop_datetime) or
(start_datetime <= '2020-01-07 11:00:00' and '2020-01-07 11:00:00' <= stop_datetime)
) or (
('2020-01-07 09:00:00' <= start_datetime and start_datetime <= '2020-01-07 11:00:00') or
('2020-01-07 09:00:00' <= stop_datetime and stop_datetime <= '2020-01-07 11:00:00')
)
I try to make like this but is not correct, where i'm wrong please?
inParams1.push([
"|",
"&",
["start_datetime", "<", '2020-01-07 09:00:00'],
['2020-01-07 09:00:00', "<=", "stop_datetime"],
"&",
["start_datetime", "<=", '2020-01-07 11:00:00'],
['2020-01-07 11:00:00', "<=", "stop_datetime"],
"|",
"&",
['2020-01-07 09:00:00', "<=", " start_datetime"],
["start_datetime", "<=",'2020-01-07 11:00:00'],
"&",
['2020-01-07 09:00:00', "<=", "stop_datetime"],
["stop_datetime", "<=",'2020-01-07 11:00:00']
]);
Please i need your help, i have many days working and i can't find a solution :(
You complicated the filter by parentheses:
(
(start_datetime <= '2020-01-07 09:00:00' and '2020-01-07 09:00:00' <= stop_datetime) or
(start_datetime <= '2020-01-07 11:00:00' and '2020-01-07 11:00:00' <= stop_datetime)
) or (
('2020-01-07 09:00:00' <= start_datetime and start_datetime <= '2020-01-07 11:00:00') or
('2020-01-07 09:00:00' <= stop_datetime and stop_datetime <= '2020-01-07 11:00:00')
)
Is the same as this:
(start_datetime <= '2020-01-07 09:00:00' and '2020-01-07 09:00:00' <= stop_datetime)
or
(start_datetime <= '2020-01-07 11:00:00' and '2020-01-07 11:00:00' <= stop_datetime)
or
('2020-01-07 09:00:00' <= start_datetime and start_datetime <= '2020-01-07 11:00:00')
or
('2020-01-07 09:00:00' <= stop_datetime and stop_datetime <= '2020-01-07 11:00:00')
So just try this:
[ '|'
"&",
["start_datetime", "<", '2020-01-07 09:00:00'],
["stop_datetime", ">=", '2020-01-07 09:00:00'],
'|',
"&",
["start_datetime", "<=", '2020-01-07 11:00:00'],
["stop_datetime", ">=", '2020-01-07 11:00:00'],
'|',
"&",
["start_datetime", ">=", '2020-01-07 09:00:00'],
["start_datetime", "<=",'2020-01-07 11:00:00'],
"&",
["stop_datetime", ">=", '2020-01-07 09:00:00'],
["stop_datetime", "<=",'2020-01-07 11:00:00']
]
let me know if it doesn't work for you.