Normalize separator variants in consult medicine SQL search

This commit is contained in:
DevSoftTech Server 2026-04-13 12:57:16 +05:30
parent 9e30d69487
commit 992fd83ff2

View File

@ -5046,6 +5046,18 @@ class Opd_prescription extends BaseController
if ($qFirstToken !== '' && mb_strlen($qFirstToken) >= 1) {
$builder->orLike($nameField, $qFirstToken, 'after');
}
// Normalize separators so variants like "utor", "u-tor", "u tor" match each other.
if ($qNormalized !== '') {
$qNormalizedSql = str_replace("'", "''", strtoupper($qNormalized));
$nameNormalizedSql = "REPLACE(REPLACE(UPPER(" . $nameField . "), '-', ''), ' ', '')";
$builder->orWhere($nameNormalizedSql . " LIKE '%" . $qNormalizedSql . "%'", null, false);
if ($formField !== null) {
$formNormalizedSql = "REPLACE(REPLACE(UPPER(" . $formField . "), '-', ''), ' ', '')";
$builder->orWhere($formNormalizedSql . " LIKE '%" . $qNormalizedSql . "%'", null, false);
}
}
$builder->groupEnd();
}