Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Видалення дублей гостей через веб-інтерфейс
По помилці до довідника можуть бути додані «однакові» клієнти. Наприклад, при прийомі замовлення оператор не шукав клієнта в довіднику, а додав нового.

Два і більше клієнти вважаються дублями, якщо вони мають такі властивості:
  • Нормалізовані множини їх телефонів перетинаються.
  • Їх імена збігаються з точністю до видалення прогалин та ігнорування регістру.
  • Їхні прізвища збігаються з точністю до видалення проблеми та регістру або прізвища не задані.
  • Наприклад (Іван Іванов дорівнює івану Іванову, Іван дорівнює Івану Іванову, але Іван Іванов не дорівнює Івану Петрову).
  • У них не встановлено ідентифікатор IikoNet (iikoNetId) або якщо заданий, то він повинен збігатися.

У разі знаходження дублів потрібно провести їхнє об'єднання, для цього потрібно знайти провідного клієнта:
  • Якщо у всіх клієнтів у групі, крім одного, не заданий iikoNetId, то ведучим беремо того клієнта, у якого iikoNetId заданий.
  • Інакше провідним клієнтом оголошується той, у кого найбільше оформлених доставок. Якщо є низка клієнтів з однаковою кількістю доставок, то провідним оголошуємо клієнта, у якого дата створення доставки є найпізнішою. Враховуємо лише закриті доставки. Скасовані не рахуємо.

Модифікуємо поля провідного клієнта в такий спосіб:
  • Різні телефони зливаємо в загальну колекцію телефонів, властивість isMain в 1 проставляємо тільки якщо воно дорівнювало 1 у вихідній колекції телефонів і цей телефон прийшов від провідного клієнта.
  • Різні адреси зливаємо до загальної колекції адрес.
  • Різні email-и зливаємо в загальну колекцію email-у
  • Прізвище об'єднуємо за принципом "прізвище ведучого або перше непусте прізвище у дублів, якщо у ведучого прізвище не задано"
  • Аналогічно прізвища варто надійти з коментарем, номером картки та ніком.
  • Чорний список визначається так - якщо хоча б 1 із набору знаходиться в НС, але ведучий теж стає в НС. Якщо кілька клієнтів у НС, їх причини конкатенуються і проставляються ведучому.
  • Зберігаємо ведучого до бази
  • Усіх ведених оголошуємо віддаленими та зберігаємо в базу.

Щоб очистити клієнтську базу від дублюючих записів, виконайте таке:
1) У адресному рядку браузера введіть :
http://localhost:port/resto/service/maintance/cleanDuplicateCustomers.jsp
*де localhost:port - адреса серверу

2) Введіть логін та пароль від Syrve
3) Відкриється екран Видалення дублікатів клієнтів доставки.
На ньому показано інформацію, з якими параметрами було складено останній запит до бази даних.
4) Вкажіть параметри нового запиту.
Скрипт може бути запущений в інформаційному режимі без збереження результатів у базі даних. Встановіть галочку Показати повну інформацію про знайдені дублікати, і НЕ встановлюйте Зберегти результати в БД.
5) Натисніть кнопку Надіслати.

Скрипт знаходить усі записи, що стосуються одного клієнта, наприклад, за збігом номера телефону, і об'єднує їх в один унікальний запис. При встановленій галочці Зберегти результати в БД зайві записи видаляються з клієнтської бази.
Наслідок, на котрий зверни увагу:

Коли колекція номерів телефонів дублікатів зливається в одного гостя, то скрипт не прибирає параметр "isMain" з номерів телефонів, які належали гостям-дублікатам, а так і записує ці номери в основного гостя.
Це приводить до помилки при формуванні замовлення на такого клієнта, бо система бачить що в нього є декілька "основних" номерів телефону, хоча число з точки зору логіки не може бути два основних телефона, тільки один.
Вирішення: видалити зайві номери телефонів
Аналогічна проблема виникає і з адресами електронної пошти і рішення - аналогічне