Fix PHPUnit for Ticket

This commit is contained in:
Laurent Destailleur 2018-03-12 12:54:48 +01:00
parent 0dfaa14d6e
commit 591b0993af
2 changed files with 76 additions and 62 deletions

View File

@ -20,16 +20,11 @@
/**
* \file htdocs/core/triggers/interface_50_modTicketsup_TicketEmail.class.php
* \ingroup core
* \brief Fichier
* \remarks Son propre fichier d'actions peut etre cree par recopie de celui-ci:
* - Le nom du fichier doit etre: interface_99_modMymodule_Mytrigger.class.php
* ou: interface_99_all_Mytrigger.class.php
* - Le fichier doit rester stocke dans core/triggers
* - Le nom de la classe doit etre InterfaceMytrigger
* - Le nom de la propriete name doit etre Mytrigger
* \brief File of trigger for ticket module
*/
require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php';
/**
* Class of triggers for ticketsup module
*/
@ -110,12 +105,12 @@ class InterfaceTicketEmail extends DolibarrTriggers
public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
{
$ok = 0;
switch ($action) {
case 'TICKET_ASSIGNED':
dol_syslog("Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id);
if ($object->fk_user_assign != $user->id) {
if ($object->fk_user_assign > 0 && $object->fk_user_assign != $user->id) {
$userstat = new User($this->db);
$res = $userstat->fetch($object->fk_user_assign);
if ($res) {
@ -132,11 +127,11 @@ class InterfaceTicketEmail extends DolibarrTriggers
$message .= '<li>' . $langs->trans($key) . ' : ' . $value . '</li>';
}
}
$message .= '</ul>';
$message .= '<p>' . $langs->trans('Message') . ' : <br>' . $object->message . '</p>';
$message .= '<p><a href="' . dol_buildpath('/ticketsup/card.php', 2) . '?track_id=' . $object->track_id . '">' . $langs->trans('SeeThisTicketIntomanagementInterface') . '</a></p>';
$sendto = $userstat->email;
$from = dolGetFirstLastname($user->firstname, $user->lastname) . '<' . $user->email . '>';
@ -166,20 +161,20 @@ class InterfaceTicketEmail extends DolibarrTriggers
}
}
break;
case 'TICKET_CREATE':
dol_syslog("Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id);
// Init to avoid errors
$filepath = array();
$filename = array();
$mimetype = array();
$langs->load('ticketsup');
$object->fetch('', $object->track_id);
/* Send email to admin */
$sendto = $conf->global->TICKETS_NOTIFICATION_EMAIL_TO;
$subject = '['.$conf->global->MAIN_INFO_SOCIETE_NOM.'] '.$langs->transnoentities('TicketNewEmailSubjectAdmin');
@ -196,15 +191,15 @@ class InterfaceTicketEmail extends DolibarrTriggers
}
}
$message_admin.='</ul>';
if ($object->fk_soc > 0) {
$object->fetch_thirdparty();
$message_admin.='<p>'.$langs->trans('Company'). ' : '.$object->thirdparty->name.'</p>';
}
$message_admin.='<p>'.$langs->trans('Message').' : <br>'.$object->message.'</p>';
$message_admin.='<p><a href="'.dol_buildpath('/ticketsup/card.php', 2).'?track_id='.$object->track_id.'">'.$langs->trans('SeeThisTicketIntomanagementInterface').'</a></p>';
$from = $conf->global->MAIN_INFO_SOCIETE_NOM.'<'.$conf->global->TICKETS_NOTIFICATION_EMAIL_FROM.'>';
$replyto = $from;
@ -233,7 +228,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
} else {
$sendto = $user->email;
}
if ($sendto && $object->notify_tiers_at_create) {
$subject = '['.$conf->global->MAIN_INFO_SOCIETE_NOM.'] '.$langs->transnoentities('TicketNewEmailSubjectCustomer');
$message_customer= $langs->transnoentities('TicketNewEmailBodyCustomer', $object->track_id)."\n\n";
@ -254,11 +249,11 @@ class InterfaceTicketEmail extends DolibarrTriggers
$url_public_ticket = ($conf->global->TICKETS_URL_PUBLIC_INTERFACE?$conf->global->TICKETS_URL_PUBLIC_INTERFACE.'/':dol_buildpath('/ticketsup/public/view.php', 2)).'?track_id='.$object->track_id;
$message_customer.='<p>' . $langs->trans('TicketNewEmailBodyInfosTrackUrlCustomer') . ' : <a href="'.$url_public_ticket.'">'.$url_public_ticket.'</a></p>';
$message_customer.='<p>'.$langs->trans('TicketEmailPleaseDoNotReplyToThisEmail').'</p>';
$from = $conf->global->MAIN_INFO_SOCIETE_NOM.'<'.$conf->global->TICKETS_NOTIFICATION_EMAIL_FROM.'>';
$replyto = $from;
// Init to avoid errors
$filepath = array();
$filename = array();
@ -282,26 +277,26 @@ class InterfaceTicketEmail extends DolibarrTriggers
}
}
$ok = 1;
break;
case 'TICKET_DELETE':
dol_syslog("Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id);
break;
case 'TICKET_MODIFY':
dol_syslog("Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id);
break;
case 'TICKET_MARK_READ':
dol_syslog("Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id);
break;
case 'TICKET_CLOSED':
case 'TICKET_CLOSE':
dol_syslog("Trigger '" . $this->name . "' for action '$action' launched by " . __FILE__ . ". id=" . $object->id);
break;
}
return $ok;
}

View File

@ -892,6 +892,26 @@ class Ticketsup extends CommonObject
if ($res < 0) $error++;
}
if (!$error) {
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "ticketsup_logs";
$sql .= " WHERE rowid=" . $this->id;
$resql = $this->db->query($sql);
}
if (!$error) {
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "ticketsup_mesgs";
$sql .= " WHERE rowid=" . $this->id;
$resql = $this->db->query($sql);
}
// Removed extrafields
if (!$error) {
$result = $this->deleteExtraFields();
if ($result < 0) {
$error++;
dol_syslog(get_class($this) . "::delete error -3 " . $this->error, LOG_ERR);
}
}
if (!$error) {
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "ticketsup";
$sql .= " WHERE rowid=" . $this->id;
@ -904,15 +924,6 @@ class Ticketsup extends CommonObject
}
}
// Removed extrafields
if (!$error) {
$result = $this->deleteExtraFields();
if ($result < 0) {
$error++;
dol_syslog(get_class($this) . "::delete error -3 " . $this->error, LOG_ERR);
}
}
// Commit or rollback
if ($error) {
foreach ($this->errors as $errmsg) {
@ -1385,13 +1396,13 @@ class Ticketsup extends CommonObject
* @param User $user Object user
* @param int $id_assign_user ID of user assigned
* @param int $notrigger Disable trigger
* @return int <0 if KO, >0 if OK
* @return int <0 if KO, 0=Nothing done, >0 if OK
*/
public function assignUser($user, $id_assign_user, $notrigger = 0)
{
global $conf, $langs;
if ($id_assign_user > 0) { // no closed
if ($id_assign_user > 0) {
$this->db->begin();
$sql = "UPDATE " . MAIN_DB_PREFIX . "ticketsup";
@ -1401,7 +1412,10 @@ class Ticketsup extends CommonObject
dol_syslog(get_class($this) . "::assignUser sql=" . $sql);
$resql = $this->db->query($sql);
if ($resql) {
if ($resql)
{
$this->fk_user_assign = $id_assign_user; // May be used by trigger
if (!$notrigger) {
// Call trigger
$result=$this->call_trigger('TICKET_ASSIGNED', $user);
@ -1427,6 +1441,8 @@ class Ticketsup extends CommonObject
return -1;
}
}
return 0;
}
/**
@ -1756,27 +1772,30 @@ class Ticketsup extends CommonObject
// Valid and close fichinter linked
$this->fetchObjectLinked($this->id, $this->element, null, 'fichinter');
foreach ($this->linkedObjectsIds['fichinter'] as $fichinter_id) {
$fichinter = new Fichinter($this->db);
$fichinter->fetch($fichinter_id);
if($fichinter->statut == 0) {
$result = $fichinter->setValid($user);
if (!$result) {
$this->errors[] = $fichinter->error;
$error++;
}
}
if ($fichinter->statut < 3) {
$result = $fichinter->setStatut(3);
if (!$result) {
$this->errors[] = $fichinter->error;
$error++;
}
}
if ($this->linkedObjectsIds)
{
foreach ($this->linkedObjectsIds['fichinter'] as $fichinter_id) {
$fichinter = new Fichinter($this->db);
$fichinter->fetch($fichinter_id);
if($fichinter->statut == 0) {
$result = $fichinter->setValid($user);
if (!$result) {
$this->errors[] = $fichinter->error;
$error++;
}
}
if ($fichinter->statut < 3) {
$result = $fichinter->setStatut(3);
if (!$result) {
$this->errors[] = $fichinter->error;
$error++;
}
}
}
}
// Call trigger
$result=$this->call_trigger('TICKET_CLOSED', $user);
$result=$this->call_trigger('TICKET_CLOSE', $user);
if ($result < 0) {
$error++;
}