Clean code of module ticket
This commit is contained in:
parent
2e1e6120ce
commit
5a9901e484
@ -670,7 +670,7 @@ class FormTicket
|
|||||||
/**
|
/**
|
||||||
* Return html list of tickets type
|
* Return html list of tickets type
|
||||||
*
|
*
|
||||||
* @param string|array $selected Id du type pre-selectionne
|
* @param string|array $selected Id of preselected field or array of Ids
|
||||||
* @param string $htmlname Nom de la zone select
|
* @param string $htmlname Nom de la zone select
|
||||||
* @param string $filtertype To filter on field type in llx_c_ticket_type (array('code'=>xx,'label'=>zz))
|
* @param string $filtertype To filter on field type in llx_c_ticket_type (array('code'=>xx,'label'=>zz))
|
||||||
* @param int $format 0=id+libelle, 1=code+code, 2=code+libelle, 3=id+code
|
* @param int $format 0=id+libelle, 1=code+code, 2=code+libelle, 3=id+code
|
||||||
@ -685,7 +685,7 @@ class FormTicket
|
|||||||
{
|
{
|
||||||
global $langs, $user;
|
global $langs, $user;
|
||||||
|
|
||||||
$selected = is_array($selected) ? $selected : (!empty($selected) ? implode(',', $selected) : array());
|
$selected = is_array($selected) ? $selected : (!empty($selected) ? array($selected) : array());
|
||||||
$ticketstat = new Ticket($this->db);
|
$ticketstat = new Ticket($this->db);
|
||||||
|
|
||||||
dol_syslog(get_class($this) . "::select_types_tickets " . implode(';', $selected) . ", " . $htmlname . ", " . $filtertype . ", " . $format . ", " . $multiselect, LOG_DEBUG);
|
dol_syslog(get_class($this) . "::select_types_tickets " . implode(';', $selected) . ", " . $htmlname . ", " . $filtertype . ", " . $format . ", " . $multiselect, LOG_DEBUG);
|
||||||
|
|||||||
@ -126,6 +126,8 @@ $permissiontoadd = $user->rights->ticket->write;
|
|||||||
|
|
||||||
$actionobject = new ActionsTicket($db);
|
$actionobject = new ActionsTicket($db);
|
||||||
|
|
||||||
|
$upload_dir = $conf->ticket->dir_output;
|
||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
|
|
||||||
@ -682,7 +684,6 @@ if (empty($reshook)) {
|
|||||||
include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once
|
include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once
|
||||||
|
|
||||||
// Actions to build doc
|
// Actions to build doc
|
||||||
$upload_dir = $conf->ticket->dir_output;
|
|
||||||
$permissiontoadd = $user->rights->ticket->write;
|
$permissiontoadd = $user->rights->ticket->write;
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
|
include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php';
|
||||||
//var_dump($action);exit;
|
//var_dump($action);exit;
|
||||||
|
|||||||
@ -181,36 +181,6 @@ class Tickets extends DolibarrApi
|
|||||||
$this->ticket->messages = $messages;
|
$this->ticket->messages = $messages;
|
||||||
}
|
}
|
||||||
|
|
||||||
// History
|
|
||||||
$history = array();
|
|
||||||
$this->ticket->loadCacheLogsTicket();
|
|
||||||
if (is_array($this->ticket->cache_logs_ticket) && count($this->ticket->cache_logs_ticket) > 0) {
|
|
||||||
$num = count($this->ticket->cache_logs_ticket);
|
|
||||||
$i = 0;
|
|
||||||
$user_action = new User($this->db);
|
|
||||||
|
|
||||||
while ($i < $num) {
|
|
||||||
$userstring = '';
|
|
||||||
if ($this->ticket->cache_logs_ticket[$i]['fk_user_create'] > 0) {
|
|
||||||
$user_action->fetch($this->ticket->cache_logs_ticket[$i]['fk_user_create']);
|
|
||||||
|
|
||||||
$userstring = dolGetFirstLastname($user_action->firstname, $user_action->lastname);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Now define messages
|
|
||||||
$history[] = array(
|
|
||||||
'id' => $this->ticket->cache_logs_ticket[$i]['id'],
|
|
||||||
'fk_user_author' => $this->ticket->cache_msgs_ticket[$i]['fk_user_author'],
|
|
||||||
'fk_user_action' => $this->ticket->cache_logs_ticket[$i]['fk_user_create'],
|
|
||||||
'fk_user_action_string' => $userstring,
|
|
||||||
'message' => $this->ticket->cache_logs_ticket[$i]['message'],
|
|
||||||
'datec' => $this->ticket->cache_logs_ticket[$i]['datec'],
|
|
||||||
);
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
$this->ticket->history = $history;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!DolibarrApi::_checkAccessToResource('ticket', $this->ticket->id)) {
|
if (!DolibarrApi::_checkAccessToResource('ticket', $this->ticket->id)) {
|
||||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1580,144 +1580,6 @@ class Ticket extends CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Send notification of changes by email
|
|
||||||
*
|
|
||||||
* @param User $user User that create
|
|
||||||
* @param string $message Log message
|
|
||||||
* @return int <0 if KO, >0 if OK (number of emails sent)
|
|
||||||
*/
|
|
||||||
private function sendLogByEmail($user, $message)
|
|
||||||
{
|
|
||||||
global $conf, $langs;
|
|
||||||
|
|
||||||
$nb_sent = 0;
|
|
||||||
|
|
||||||
$langs->load('ticket');
|
|
||||||
|
|
||||||
// Retrieve email of all contacts (internal and external)
|
|
||||||
$contacts = $this->listeContact(-1, 'internal');
|
|
||||||
$contacts = array_merge($contacts, $this->listeContact(-1, 'external'));
|
|
||||||
|
|
||||||
/* If origin_email and no socid, we add email to the list * */
|
|
||||||
if (!empty($this->origin_email) && empty($this->fk_soc)) {
|
|
||||||
$array_ext = array(array('firstname' => '', 'lastname' => '', 'email' => $this->origin_email, 'libelle' => $langs->transnoentities('TicketEmailOriginIssuer'), 'socid' => "-1"));
|
|
||||||
$contacts = array_merge($contacts, $array_ext);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($this->fk_soc)) {
|
|
||||||
$this->fetch_thirdparty($this->fk_soc);
|
|
||||||
$array_company = array(array('firstname' => '', 'lastname' => $this->client->name, 'email' => $this->client->email, 'libelle' => $langs->transnoentities('Customer'), 'socid' => $this->client->id));
|
|
||||||
$contacts = array_merge($contacts, $array_company);
|
|
||||||
}
|
|
||||||
|
|
||||||
// foreach contact send email with notification message
|
|
||||||
if (count($contacts) > 0) {
|
|
||||||
foreach ($contacts as $key => $info_sendto) {
|
|
||||||
$tmpmessage = '';
|
|
||||||
$subject = '['.$conf->global->MAIN_INFO_SOCIETE_NOM.'] '.$langs->transnoentities('TicketNotificationEmailSubject', $this->track_id);
|
|
||||||
$tmpmessage .= $langs->transnoentities('TicketNotificationEmailBody', $this->track_id)."\n\n";
|
|
||||||
$tmpmessage .= $langs->transnoentities('Title').' : '.$this->subject."\n";
|
|
||||||
|
|
||||||
$recipient_name = dolGetFirstLastname($info_sendto['firstname'], $info_sendto['lastname'], '-1');
|
|
||||||
$recipient = (!empty($recipient_name) ? $recipient_name : $info_sendto['email']).' ('.strtolower($info_sendto['libelle']).')';
|
|
||||||
$tmpmessage .= $langs->transnoentities('TicketNotificationRecipient').' : '.$recipient."\n";
|
|
||||||
$tmpmessage .= "\n";
|
|
||||||
$tmpmessage .= '* '.$langs->transnoentities('TicketNotificationLogMessage').' *'."\n";
|
|
||||||
$tmpmessage .= dol_html_entity_decode($message, ENT_QUOTES | ENT_HTML5)."\n";
|
|
||||||
|
|
||||||
if ($info_sendto['source'] == 'internal') {
|
|
||||||
$url_internal_ticket = dol_buildpath('/ticket/card.php', 2).'?track_id='.$this->track_id;
|
|
||||||
$tmpmessage .= "\n".$langs->transnoentities('TicketNotificationEmailBodyInfosTrackUrlinternal').' : <a href="'.$url_internal_ticket.'">'.$this->track_id.'</a>'."\n";
|
|
||||||
} else {
|
|
||||||
$url_public_ticket = ($conf->global->TICKET_URL_PUBLIC_INTERFACE ? $conf->global->TICKET_URL_PUBLIC_INTERFACE.'/view.php' : dol_buildpath('/public/ticket/view.php', 2)).'?track_id='.$this->track_id;
|
|
||||||
$tmpmessage .= "\n".$langs->transnoentities('TicketNewEmailBodyInfosTrackUrlCustomer').' : <a href="'.$url_public_ticket.'">'.$this->track_id.'</a>'."\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
$tmpmessage .= "\n";
|
|
||||||
$tmpmessage .= $langs->transnoentities('TicketEmailPleaseDoNotReplyToThisEmail')."\n";
|
|
||||||
|
|
||||||
$from = $conf->global->MAIN_INFO_SOCIETE_NOM.'<'.$conf->global->TICKET_NOTIFICATION_EMAIL_FROM.'>';
|
|
||||||
$replyto = $from;
|
|
||||||
|
|
||||||
// Init to avoid errors
|
|
||||||
$filepath = array();
|
|
||||||
$filename = array();
|
|
||||||
$mimetype = array();
|
|
||||||
|
|
||||||
$tmpmessage = dol_nl2br($tmpmessage);
|
|
||||||
|
|
||||||
if (!empty($conf->global->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';
|
|
||||||
$sendtocc = '';
|
|
||||||
$deliveryreceipt = 0;
|
|
||||||
$mailfile = new CMailFile($subject, $info_sendto['email'], $from, $tmpmessage, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, 0);
|
|
||||||
if ($mailfile->error || !empty($mailfile->errors)) {
|
|
||||||
setEventMessages($mailfile->error, $mailfile->errors, 'errors');
|
|
||||||
} else {
|
|
||||||
$result = $mailfile->sendfile();
|
|
||||||
if ($result > 0) {
|
|
||||||
$nb_sent++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) {
|
|
||||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setEventMessages($langs->trans('TicketNotificationNumberEmailSent', $nb_sent), null, 'mesgs');
|
|
||||||
}
|
|
||||||
|
|
||||||
return $nb_sent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Charge la liste des actions sur le ticket
|
|
||||||
*
|
|
||||||
* @return int Number of lines loaded, 0 if already loaded, <0 if KO
|
|
||||||
*/
|
|
||||||
public function loadCacheLogsTicket()
|
|
||||||
{
|
|
||||||
global $langs;
|
|
||||||
|
|
||||||
if (is_array($this->cache_logs_ticket) && count($this->cache_logs_ticket)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
// Cache deja charge
|
|
||||||
|
|
||||||
// TODO Read the table llx_actioncomm
|
|
||||||
/*
|
|
||||||
$sql = "SELECT rowid, fk_user_create, datec, message";
|
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "ticket_logs";
|
|
||||||
$sql .= " WHERE fk_track_id ='" . $this->db->escape($this->track_id) . "'";
|
|
||||||
$sql .= " ORDER BY datec DESC";
|
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
|
||||||
if ($resql) {
|
|
||||||
$num = $this->db->num_rows($resql);
|
|
||||||
$i = 0;
|
|
||||||
while ($i < $num) {
|
|
||||||
$obj = $this->db->fetch_object($resql);
|
|
||||||
$this->cache_logs_ticket[$i]['id'] = $obj->rowid;
|
|
||||||
$this->cache_logs_ticket[$i]['fk_user_create'] = $obj->fk_user_create;
|
|
||||||
$this->cache_logs_ticket[$i]['datec'] = $this->db->jdate($obj->datec);
|
|
||||||
$this->cache_logs_ticket[$i]['message'] = $obj->message;
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
return $num;
|
|
||||||
} else {
|
|
||||||
$this->error = "Error " . $this->db->lasterror();
|
|
||||||
dol_syslog(get_class($this) . "::loadCacheLogsTicket " . $this->error, LOG_ERR);
|
|
||||||
return -1;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add message into database
|
* Add message into database
|
||||||
*
|
*
|
||||||
@ -2869,9 +2731,11 @@ class Ticket extends CommonObject
|
|||||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$upload_dir_tmp = $conf->user->dir_output."/".$user->id;
|
||||||
|
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||||
$trackid = "tic".$this->id;
|
$trackid = "tic".$this->id;
|
||||||
$mailfile = new CMailFile($subject, $receiver, $from, $message, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, -1, '', '', $trackid, '', 'ticket');
|
$mailfile = new CMailFile($subject, $receiver, $from, $message, $filepath, $mimetype, $filename, $sendtocc, '', $deliveryreceipt, -1, '', '', $trackid, '', 'ticket', '', $upload_dir_tmp);
|
||||||
if ($mailfile->error) {
|
if ($mailfile->error) {
|
||||||
setEventMessages($mailfile->error, null, 'errors');
|
setEventMessages($mailfile->error, null, 'errors');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user