Contact - Phone: Prevent duplicate speed dial numbers.

This commit is contained in:
fusionate 2025-01-28 15:54:35 -07:00
parent b8b796316e
commit 42a1625daa
No known key found for this signature in database
3 changed files with 78 additions and 1 deletions

View File

@ -1793,6 +1793,31 @@ $text['message-uploaded']['zh-cn'] = "文件已上传";
$text['message-uploaded']['ja-jp'] = "ファイルがアップロードされました";
$text['message-uploaded']['ko-kr'] = "업로드된 파일";
$text['message-speed_dial_exists']['en-us'] = "Speed Dial Number Already Exists";
$text['message-speed_dial_exists']['en-gb'] = "Speed Dial Number Already Exists";
$text['message-speed_dial_exists']['ar-eg'] = "رقم الاتصال السريع موجود بالفعل";
$text['message-speed_dial_exists']['de-at'] = "Kurzwahlnummer existiert bereits";
$text['message-speed_dial_exists']['de-ch'] = "Kurzwahlnummer existiert bereits";
$text['message-speed_dial_exists']['de-de'] = "Kurzwahlnummer existiert bereits";
$text['message-speed_dial_exists']['es-cl'] = "El número de marcación rápida ya existe";
$text['message-speed_dial_exists']['es-mx'] = "El número de marcación rápida ya existe";
$text['message-speed_dial_exists']['fr-ca'] = "Le numéro abrégé existe déjà";
$text['message-speed_dial_exists']['fr-fr'] = "Le numéro de numérotation rapide existe déjà";
$text['message-speed_dial_exists']['he-il'] = "מספר חיוג מהיר כבר קיים";
$text['message-speed_dial_exists']['it-it'] = "Il numero di selezione rapida esiste già";
$text['message-speed_dial_exists']['ka-ge'] = "სწრაფი აკრეფის ნომერი უკვე არსებობს";
$text['message-speed_dial_exists']['nl-nl'] = "Snelkiesnummer bestaat al";
$text['message-speed_dial_exists']['pl-pl'] = "Numer szybkiego wybierania już istnieje";
$text['message-speed_dial_exists']['pt-br'] = "Número de discagem rápida já existe";
$text['message-speed_dial_exists']['pt-pt'] = "O número de marcação rápida já existe";
$text['message-speed_dial_exists']['ro-ro'] = "Numărul de apelare rapidă există deja";
$text['message-speed_dial_exists']['ru-ru'] = "Номер быстрого набора уже существует";
$text['message-speed_dial_exists']['sv-se'] = "Snabbuppringningsnummer finns redan";
$text['message-speed_dial_exists']['uk-ua'] = "Номер швидкого набору вже існує";
$text['message-speed_dial_exists']['zh-cn'] = "快速拨号号码已存在";
$text['message-speed_dial_exists']['ja-jp'] = "短縮ダイヤル番号は既に存在します";
$text['message-speed_dial_exists']['ko-kr'] = "단축번호가 이미 존재합니다";
$text['label-voice']['en-us'] = "Voice";
$text['label-voice']['en-gb'] = "Voice";
$text['label-voice']['ar-eg'] = "صوت";

View File

@ -367,7 +367,33 @@
if (!empty($contact_phones)) {
foreach ($contact_phones as $row) {
if (!empty($row['phone_number'])) {
//add the speed dial
//if speed dial number already exists, empty before save
if (!empty($row["phone_speed_dial"])) {
$phone_speed_dial_exists = false;
if (is_numeric($row["phone_speed_dial"])) {
$sql = "select count(contact_phone_uuid) ";
$sql .= "from v_contact_phones ";
$sql .= "where phone_speed_dial = :phone_speed_dial ";
$sql .= "and domain_uuid = :domain_uuid ";
if ($action == "update" && is_uuid($row["contact_phone_uuid"])) {
$sql .= "and contact_phone_uuid <> :contact_phone_uuid ";
$parameters['contact_phone_uuid'] = $row["contact_phone_uuid"];
}
$parameters['phone_speed_dial'] = $row["phone_speed_dial"];
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
$database = new database;
if (!empty($database->execute($sql, $parameters, 'column'))) {
$phone_speed_dial_exists = true;
}
unset($sql, $parameters);
}
if (!is_numeric($row["phone_speed_dial"]) || $phone_speed_dial_exists) {
message::add($text['message-speed_dial_exists'],'negative');
unset($row["phone_speed_dial"]);
}
}
$array['contacts'][0]['contact_phones'][$y]['domain_uuid'] = $_SESSION['domain_uuid'];
$array['contacts'][0]['contact_phones'][$y]['contact_uuid'] = $contact_uuid;
$array['contacts'][0]['contact_phones'][$y]['contact_phone_uuid'] = $row["contact_phone_uuid"];

View File

@ -155,6 +155,32 @@
unset($sql, $parameters);
}
//if speed dial number already exists, empty before save
if (!empty($phone_speed_dial)) {
$phone_speed_dial_exists = false;
if (is_numeric($phone_speed_dial)) {
$sql = "select count(contact_phone_uuid) ";
$sql .= "from v_contact_phones ";
$sql .= "where phone_speed_dial = :phone_speed_dial ";
$sql .= "and domain_uuid = :domain_uuid ";
if ($action == "update") {
$sql .= "and contact_uuid <> :contact_uuid ";
$parameters['contact_uuid'] = $contact_uuid;
}
$parameters['phone_speed_dial'] = $phone_speed_dial;
$parameters['domain_uuid'] = $domain_uuid;
$database = new database;
if (!empty($database->execute($sql, $parameters, 'column'))) {
$phone_speed_dial_exists = true;
}
unset($sql, $parameters);
}
if (!is_numeric($phone_speed_dial) || $phone_speed_dial_exists) {
message::add($text['message-speed_dial_exists'],'negative');
unset($phone_speed_dial);
}
}
//add the phone
if ($action == "add" && permission_exists('contact_phone_add')) {
$contact_phone_uuid = uuid();