Страница 1 из 1
Дубли записей заявок
Добавлено: 02 дек 2025, 15:51
vda81
Подскажите пожалуйста, как сделать проверку дублей заявок по номеру телефона. Есть сущность "Заявки", есть поле телефон с маской. Как можно сделать так, чтобы когда оператор заходил в заявку, у него появлялся список заявок с таким же номером телефона?
Re: Дубли записей заявок
Добавлено: 02 дек 2025, 16:50
support
Re: Дубли записей заявок
Добавлено: 02 дек 2025, 17:30
vda81
Супер, спасибо большое, но я не очень разбираюсь в программировании, подскажите, что нужно написать.
Re: Дубли записей заявок
Добавлено: 02 дек 2025, 22:47
Fait
vda81 писал(а): 02 дек 2025, 15:51
Подскажите пожалуйста, как сделать проверку дублей заявок по номеру телефона. Есть сущность "Заявки", есть поле телефон с маской. Как можно сделать так, чтобы когда оператор заходил в заявку, у него появлялся список заявок с таким же номером телефона?
Сделайте поле "PHP код" и вставьте туда этот код:
Код: Выделить всё
$phone = [777];
$res = []; $out = '';
if (strlen($phone) > 10) {
$check = db_query("select * from app_entity_33 where
REGEXP_REPLACE(field_888, '[^0-9]', '')=REGEXP_REPLACE('".preg_replace('/\D/', '', $phone)."', '[^0-9]', '')");
foreach ($check as $k => $value) {
//$res[] = ((int)$k + 1).') '.$value['field_999']; // Просто текст
$res[] = '<a target="_blank" href="index.php?module=items/info&path=33-'.$value['id'].'">'.((int)$k + 1).') '.$value['field_999'].'</a>'; // Ссылка на запись
}
if (empty($res)) {
$out = 'Сделок с таким номером нет';
}
else {
$out = 'Номер телефона встречается в таких сделках:<br>'.implode('<br>',$res);
}
}
//echo $out; // Ajax-запрос
$output_value = $out; // PHP-код
777 - id поля с номером телефона в форме
33 - id сущности "Заявки"
888 - id поля с номером телефона в сущности "Заявки"
999 - id поля "Наименование", чтобы вывести название заявки. Если не нужно отображать как ссылку, то раскомментируйте первую строку, а вторую удалите.
Если нужно отображать именно на странице записи, то используйте поле типа "PHP код", установив там в настройках галочку "Выполнять динамически".
Если нужно отображать список прямо на форме ввода, то используйте поле типа "Ajax-запрос", раскомментируйте соответствующую строку и удалите "$output_value =...".
Re: Дубли записей заявок
Добавлено: 02 дек 2025, 23:03
vda81
спасибо за помощь, но я сделал как то так. вроде все работает
Код: Выделить всё
e.id <> [id] and
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(e.field_213,'+',''),'-',''),' ',''),'(',''),')','') =
(
select
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(field_213,'+',''),'-',''),' ',''),'(',''),')','')
from app_entity_21
where id=[id]
)
field_213 - поле id телефон
app_entity_21 - id сущности
немного подкорректировал css для вывода ссылок дублей в одну строку
Код: Выделить всё
tr.form-group.form-group-326 ul {
display: flex;
gap: 7px;
padding: 0;
margin: 0;
list-style: none;
}
tr.form-group.form-group-326 li {
border-top:none;
padding: 0px;
}
tr.form-group.form-group-326 a {
text-decoration: underline;
}
вот так выводится на странице записи

Re: Дубли записей заявок
Добавлено: 03 дек 2025, 08:45
Fait
Как хотите)
Через REGEXP_REPLACE как-то компактнее получается.
И моя версия выводит информативнее, попробуйте)