forked from Wavyzz/dolibarr
Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into 19.0
This commit is contained in:
@@ -87,38 +87,17 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
$appli = $mysoc->name;
|
||||
|
||||
// Send email to assigned user
|
||||
$subject = '['.$appli.'] '.$langs->transnoentities('TicketAssignedToYou');
|
||||
$message = '<p>'.$langs->transnoentities('TicketAssignedEmailBody', $object->track_id, dolGetFirstLastname($user->firstname, $user->lastname))."</p>";
|
||||
$message .= '<ul><li>'.$langs->trans('Title').' : '.$object->subject.'</li>';
|
||||
$message .= '<li>'.$langs->trans('Type').' : '.$object->type_label.'</li>';
|
||||
$message .= '<li>'.$langs->trans('Category').' : '.$object->category_label.'</li>';
|
||||
$message .= '<li>'.$langs->trans('Severity').' : '.$object->severity_label.'</li>';
|
||||
// Extrafields
|
||||
if (is_array($object->array_options) && count($object->array_options) > 0) {
|
||||
foreach ($object->array_options as $key => $value) {
|
||||
$message .= '<li>'.$langs->trans($key).' : '.$value.'</li>';
|
||||
}
|
||||
}
|
||||
|
||||
$message .= '</ul>';
|
||||
$message .= '<p>'.$langs->trans('Message').' : <br>'.$object->message.'</p>';
|
||||
$message .= '<p><a href="'.dol_buildpath('/ticket/card.php', 2).'?track_id='.$object->track_id.'">'.$langs->trans('SeeThisTicketIntomanagementInterface').'</a></p>';
|
||||
|
||||
$sendto = $userstat->email;
|
||||
$from = dolGetFirstLastname($user->firstname, $user->lastname).'<'.$user->email.'>';
|
||||
|
||||
$message = dol_nl2br($message);
|
||||
$subject_assignee = 'TicketAssignedToYou';
|
||||
$body_assignee = 'TicketAssignedEmailBody';
|
||||
$see_ticket_assignee = 'SeeThisTicketIntomanagementInterface';
|
||||
|
||||
if (getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO')) {
|
||||
$old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO;
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
||||
}
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||
$mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, '', '', 0, -1);
|
||||
if ($mailfile->error) {
|
||||
setEventMessages($mailfile->error, $mailfile->errors, 'errors');
|
||||
} else {
|
||||
$result = $mailfile->sendfile();
|
||||
if (!empty($sendto)) {
|
||||
$this->composeAndSendAssigneeMessage($sendto, $subject_assignee, $body_assignee, $see_ticket_assignee, $object, $langs);
|
||||
}
|
||||
if (getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO')) {
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
||||
@@ -177,10 +156,15 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
|
||||
$subject_admin = 'TicketNewEmailSubjectAdmin';
|
||||
$body_admin = 'TicketNewEmailBodyAdmin';
|
||||
|
||||
$subject_customer = 'TicketNewEmailSubjectCustomer';
|
||||
$body_customer = 'TicketNewEmailBodyCustomer';
|
||||
$see_ticket_customer = 'TicketNewEmailBodyInfosTrackUrlCustomer';
|
||||
|
||||
$subject_assignee = 'TicketAssignedToYou';
|
||||
$body_assignee = 'TicketAssignedEmailBody';
|
||||
$see_ticket_assignee = 'SeeThisTicketIntomanagementInterface';
|
||||
|
||||
// Send email to notification email
|
||||
if (getDolGlobalString('TICKET_NOTIFICATION_EMAIL_TO') && empty($object->context['disableticketemail'])) {
|
||||
$sendto = !getDolGlobalString('TICKET_NOTIFICATION_EMAIL_TO') ? '' : $conf->global->TICKET_NOTIFICATION_EMAIL_TO;
|
||||
@@ -189,6 +173,34 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
}
|
||||
}
|
||||
|
||||
// Send email to assignee if an assignee was set at creation
|
||||
if ($object->fk_user_assign > 0 && $object->fk_user_assign != $user->id && empty($object->context['disableticketemail'])) {
|
||||
$userstat = new User($this->db);
|
||||
$res = $userstat->fetch($object->fk_user_assign);
|
||||
if ($res > 0) {
|
||||
// Send email to notification email
|
||||
if (!getDolGlobalString('TICKET_DISABLE_ALL_MAILS')) {
|
||||
// Send email to assigned user
|
||||
$sendto = $userstat->email;
|
||||
if (!getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO')) {
|
||||
$old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO;
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
||||
}
|
||||
|
||||
if (!empty($sendto)) {
|
||||
$this->composeAndSendAssigneeMessage($sendto, $subject_assignee, $body_assignee, $see_ticket_assignee, $object, $langs);
|
||||
}
|
||||
|
||||
if (!getDolUserString('TICKET_DISABLE_MAIL_AUTOCOPY_TO')) {
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->error = $userstat->error;
|
||||
$this->errors = $userstat->errors;
|
||||
}
|
||||
}
|
||||
|
||||
// Send email to customer
|
||||
if (!getDolGlobalString('TICKET_DISABLE_CUSTOMER_MAILS') && empty($object->context['disableticketemail']) && $object->notify_tiers_at_create) {
|
||||
$sendto = '';
|
||||
@@ -460,4 +472,72 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Composes and sends a message concerning a ticket, to be sent to user assigned to the ticket
|
||||
*
|
||||
* @param string $sendto Addresses to send the mail, format "first@address.net, second@address.net, " etc.
|
||||
* @param string $base_subject email subject. Non-translated string.
|
||||
* @param string $body email body (first line). Non-translated string.
|
||||
* @param string $see_ticket string indicating the ticket public address
|
||||
* @param Ticket $object the ticket thet the email refers to
|
||||
* @param Translate $langs the translation object
|
||||
* @return void
|
||||
*/
|
||||
private function composeAndSendAssigneeMessage($sendto, $base_subject, $body, $see_ticket, Ticket $object, Translate $langs)
|
||||
{
|
||||
global $conf, $user, $mysoc;
|
||||
|
||||
// Init to avoid errors
|
||||
$filepath = array();
|
||||
$filename = array();
|
||||
$mimetype = array();
|
||||
|
||||
// Send email to assigned user
|
||||
$appli = $mysoc->name;
|
||||
|
||||
$subject = '['.$appli.'] '.$langs->transnoentities($base_subject);
|
||||
$message = '<p>'.$langs->transnoentities($body, $object->track_id, dolGetFirstLastname($user->firstname, $user->lastname))."</p>";
|
||||
$message .= '<ul><li>'.$langs->trans('Title').' : '.$object->subject.'</li>';
|
||||
$message .= '<li>'.$langs->trans('Type').' : '.$object->type_label.'</li>';
|
||||
$message .= '<li>'.$langs->trans('Category').' : '.$object->category_label.'</li>';
|
||||
$message .= '<li>'.$langs->trans('Severity').' : '.$object->severity_label.'</li>';
|
||||
// Extrafields
|
||||
if (is_array($object->array_options) && count($object->array_options) > 0) {
|
||||
foreach ($object->array_options as $key => $value) {
|
||||
$message .= '<li>'.$langs->trans($key).' : '.$value.'</li>';
|
||||
}
|
||||
}
|
||||
|
||||
$message .= '</ul>';
|
||||
$message .= '<p>'.$langs->trans('Message').' : <br>'.$object->message.'</p>';
|
||||
$message .= '<p><a href="'.dol_buildpath('/ticket/card.php', 2).'?track_id='.$object->track_id.'">'.$langs->trans($see_ticket).'</a></p>';
|
||||
|
||||
$from = dolGetFirstLastname($user->firstname, $user->lastname).'<'.$user->email.'>';
|
||||
|
||||
$message = dol_nl2br($message);
|
||||
|
||||
$old_MAIN_MAIL_AUTOCOPY_TO = null;
|
||||
if (getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO')) {
|
||||
$old_MAIN_MAIL_AUTOCOPY_TO = getDolGlobalString('MAIN_MAIL_AUTOCOPY_TO');
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
||||
}
|
||||
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||
$mailfile = new CMailFile($subject, $sendto, $from, $message, $filepath, $mimetype, $filename, '', '', 0, -1);
|
||||
if ($mailfile->error) {
|
||||
setEventMessages($mailfile->error, $mailfile->errors, 'errors');
|
||||
} else {
|
||||
$result = $mailfile->sendfile();
|
||||
if ($result) {
|
||||
// update last_msg_sent date
|
||||
$object->fetch($object->id);
|
||||
$object->date_last_msg_sent = dol_now();
|
||||
$object->update($user);
|
||||
}
|
||||
}
|
||||
if (!getDolUserString('TICKET_DISABLE_MAIL_AUTOCOPY_TO')) {
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user