Функционал проверки дубликатов. Меняем условие с "И" на "ИЛИ"

Функционал проверки дубликатов. Меняем условие с "И" на "ИЛИ"

В Vtiger 7.3 есть один отличный функционал - проверка записей на дубликаты перед сохранением или изменением. Работает он следующим образом - вы идёте в настройки модуля (управление полями), в нём у вас будет доступна вкладка "Управление дубликатами" или Duplicate Prevention. При переходе на эту вкладку вы можете указать поля, которые вы будете проверять перед сохранением.

На скрине в нашем примере мы проверяем новые контакты на дубликаты по двум полям - Название организации и номер телефона. И система работает следующим образом - как только мы попытаемся создать новый контакт с такой же организацией и номером телефона, система нам не разрешит это сделать. Т.е. в этом случае работает условие "И". Контакт должен быть с такой же организацией И номером телефона.

Но что же делать, если мы хотим использовать условие "ИЛИ"? Т.е. мы хотим, например, проверять контакты на уникальность по email или номеру телефона. Иными словами, мы хотим добиться такого поведения, когда система проверяет на совпадение email, затем номер телефона и если что-то из них найдено, система запрещает сохранение записи.

К счастью, сделать это очень просто. Для этого идём в файл:

modules/Vtiger/handlers/CheckDuplicateHandler.php

Находим строчку в районе 165 (номер у вас может быть другой), которая выглядит вот так:

$conditionsSql = implode(" AND ", $conditions);

Удаляем её, вставляем вместо неё следующий текст:

$conditionsSql = implode(" OR ", $conditions);

Т.е. мы поменяли в ней только одно слово, AND заменили на OR.

Сохраняем файл и теперь мы можем искать дубликатов по условию ИЛИ.

Популярное

Самые популярные посты

Как быть максимально продуктивным на удалённой работе?
Business

Как быть максимально продуктивным на удалённой работе?

Я запустил собственный бизнес и намеренно сделал всё возможное, чтобы работать из любой точки мира. Иногда я сижу с своём кабинете с большим 27-дюймовым монитором в своей квартире в г. Чебоксары. Иногда я нахожусь в офисе или в каком-нибудь кафе в другом городе.

Привет! Меня зовут Сергей Емельянов и я трудоголик
Business PHP

Привет! Меня зовут Сергей Емельянов и я трудоголик

Я программист. В душе я предприниматель. Я начал зарабатывать деньги с 11 лет, в суровые 90-е годы, сдавая стеклотару в местный магазин и обменивая её на сладости. Я зарабатывал столько, что хватало на разные вкусняшки.

Акция! Профессиональный разработчик CRM за 2000 руб. в час

Выделю время под ваш проект. Знания технологий Vtiger CRM, SuiteCRM, Laravel, Vue.js, Golang, React.js. Предлагаю варианты сотрудничества, которые помогут вам воспользоваться преимуществами внешнего опыта, оптимизировать затраты и снизить риски. Полная прозрачность всех этапов работы и учёт временных затрат. Оплачивайте только рабочие часы разработки после приемки задачи. Экономьте на платежах по его содержанию разработчика в штате. Возможно заключение договора по ИП. С чего начать, чтобы нанять профессионального разработчика на full-time? Просто заполните форму!

Telegram
@sergeyem
Telephone
+4915211100235