Merge pull request #23852 from Easya-Solutions/14.0_fix-ticket-send-email-at-same-recipient

FIX several email sent to the same recipient when adding message from ticket
This commit is contained in:
Laurent Destailleur 2023-02-09 14:42:38 +01:00 committed by GitHub
commit 3da79a677f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2576,24 +2576,24 @@ class Ticket extends CommonObject
$assigned_user = new User($this->db); $assigned_user = new User($this->db);
$assigned_user->fetch($this->fk_user_assign); $assigned_user->fetch($this->fk_user_assign);
if (!empty($assigned_user->email)) { if (!empty($assigned_user->email)) {
$sendto[] = $assigned_user->getFullName($langs)." <".$assigned_user->email.">"; $sendto[$assigned_user->email] = $assigned_user->getFullName($langs)." <".$assigned_user->email.">";
} else { } else {
$assigned_user_dont_have_email = $assigned_user->getFullName($langs); $assigned_user_dont_have_email = $assigned_user->getFullName($langs);
} }
} }
if (empty($sendto)) { if (empty($sendto)) {
if (!empty($conf->global->TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL)) { if (!empty($conf->global->TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL)) {
$sendto[] = $conf->global->TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL; $sendto[$conf->global->TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL] = $conf->global->TICKET_PUBLIC_NOTIFICATION_NEW_MESSAGE_DEFAULT_EMAIL;
} elseif (!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO)) { } elseif (!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO)) {
$sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO; $sendto[$conf->global->TICKET_NOTIFICATION_EMAIL_TO] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO;
} }
} }
// Add global email address recipient // Add global email address recipient
if (!empty($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS) && if (!empty($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS) &&
!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO) && !in_array($conf->global->TICKET_NOTIFICATION_EMAIL_TO, $sendto) !empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO) && !array_key_exists($conf->global->TICKET_NOTIFICATION_EMAIL_TO, $sendto)
) { ) {
$sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO; $sendto[$conf->global->TICKET_NOTIFICATION_EMAIL_TO] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO;
} }
if (!empty($sendto)) { if (!empty($sendto)) {
@ -2677,7 +2677,7 @@ class Ticket extends CommonObject
if ($info_sendto['email'] != '') { if ($info_sendto['email'] != '') {
if (!empty($info_sendto['email'])) { if (!empty($info_sendto['email'])) {
$sendto[] = trim($info_sendto['firstname']." ".$info_sendto['lastname'])." <".$info_sendto['email'].">"; $sendto[$info_sendto['email']] = trim($info_sendto['firstname']." ".$info_sendto['lastname'])." <".$info_sendto['email'].">";
} }
//Contact type //Contact type
@ -2693,9 +2693,9 @@ class Ticket extends CommonObject
$message .= '<br>'.$langs->trans('TicketNotificationEmailBodyInfosTrackUrlinternal').' : <a href="'.$url_internal_ticket.'">'.$object->track_id.'</a><br>'; $message .= '<br>'.$langs->trans('TicketNotificationEmailBodyInfosTrackUrlinternal').' : <a href="'.$url_internal_ticket.'">'.$object->track_id.'</a><br>';
// Add global email address recipient // Add global email address recipient
if ($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS && !in_array($conf->global->TICKET_NOTIFICATION_EMAIL_TO, $sendto)) { if ($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS && !array_key_exists($conf->global->TICKET_NOTIFICATION_EMAIL_TO, $sendto)) {
if (!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO)) { if (!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO)) {
$sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO; $sendto[$conf->global->TICKET_NOTIFICATION_EMAIL_TO] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO;
} }
} }
@ -2755,7 +2755,7 @@ class Ticket extends CommonObject
if ($info_sendto['email'] != '' && $info_sendto['email'] != $object->origin_email) { if ($info_sendto['email'] != '' && $info_sendto['email'] != $object->origin_email) {
if (!empty($info_sendto['email'])) { if (!empty($info_sendto['email'])) {
$sendto[] = trim($info_sendto['firstname']." ".$info_sendto['lastname'])." <".$info_sendto['email'].">"; $sendto[$info_sendto['email']] = trim($info_sendto['firstname']." ".$info_sendto['lastname'])." <".$info_sendto['email'].">";
} }
$recipient = dolGetFirstLastname($info_sendto['firstname'], $info_sendto['lastname'], '-1').' ('.strtolower($info_sendto['libelle']).')'; $recipient = dolGetFirstLastname($info_sendto['firstname'], $info_sendto['lastname'], '-1').' ('.strtolower($info_sendto['libelle']).')';
@ -2775,21 +2775,21 @@ class Ticket extends CommonObject
$message .= '<br>'.$message_signature; $message .= '<br>'.$message_signature;
if (!empty($object->origin_email)) { if (!empty($object->origin_email)) {
$sendto[] = $object->origin_email; $sendto[$object->origin_email] = $object->origin_email;
} }
if ($object->fk_soc > 0 && !in_array($object->origin_email, $sendto)) { if ($object->fk_soc > 0 && !array_key_exists($object->origin_email, $sendto)) {
$object->socid = $object->fk_soc; $object->socid = $object->fk_soc;
$object->fetch_thirdparty(); $object->fetch_thirdparty();
if (!empty($object->thirdparty->email)) { if (!empty($object->thirdparty->email)) {
$sendto[] = $object->thirdparty->email; $sendto[$object->thirdparty->email] = $object->thirdparty->email;
} }
} }
// altairis: Add global email address reciepient // altairis: Add global email address reciepient
if ($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS && !in_array($conf->global->TICKET_NOTIFICATION_EMAIL_TO, $sendto)) { if ($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS && !array_key_exists($conf->global->TICKET_NOTIFICATION_EMAIL_TO, $sendto)) {
if (!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO)) { if (!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO)) {
$sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO; $sendto[$conf->global->TICKET_NOTIFICATION_EMAIL_TO] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO;
} }
} }