Merge pull request #12964 from MJeanmotte/addSqlFilter

Add sql filter
This commit is contained in:
Laurent Destailleur 2020-01-29 22:53:28 +01:00 committed by GitHub
commit 7274fdd872
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -411,8 +411,9 @@ class BankAccounts extends DolibarrApi
* @throws RestException
*
* @url GET {id}/lines
* @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.import_key:<:'20160101')"
*/
public function getLines($id)
public function getLines($id, $sqlfilters = '')
{
$list = array();
@ -428,6 +429,18 @@ class BankAccounts extends DolibarrApi
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."bank ";
$sql .= " WHERE fk_account = ".$id;
// Add sql filters
if ($sqlfilters)
{
if (! DolibarrApi::_checkFilters($sqlfilters))
{
throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
}
$regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
$sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
}
$sql .= " ORDER BY rowid";
$result = $this->db->query($sql);