diff --git a/core/contacts/app_languages.php b/core/contacts/app_languages.php index e8825a4c77..0a86f3826a 100644 --- a/core/contacts/app_languages.php +++ b/core/contacts/app_languages.php @@ -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'] = "صوت"; diff --git a/core/contacts/contact_edit.php b/core/contacts/contact_edit.php index d8d1767eab..75e7caf809 100644 --- a/core/contacts/contact_edit.php +++ b/core/contacts/contact_edit.php @@ -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"]; diff --git a/core/contacts/contact_phone_edit.php b/core/contacts/contact_phone_edit.php index c999eb7aec..acb196b05f 100644 --- a/core/contacts/contact_phone_edit.php +++ b/core/contacts/contact_phone_edit.php @@ -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();