Fix status of tickets
This commit is contained in:
parent
26a7130376
commit
9954a0e4bb
@ -66,7 +66,7 @@ NeedMoreInformation=Waiting for reporter feedback
|
|||||||
NeedMoreInformationShort=Waiting for feedback
|
NeedMoreInformationShort=Waiting for feedback
|
||||||
Answered=Answered
|
Answered=Answered
|
||||||
Waiting=Waiting
|
Waiting=Waiting
|
||||||
Closed=Closed
|
SolvedClosed=Solved
|
||||||
Deleted=Deleted
|
Deleted=Deleted
|
||||||
|
|
||||||
# Dict
|
# Dict
|
||||||
@ -186,9 +186,11 @@ TicketSeverity=Severity
|
|||||||
ShowTicket=See ticket
|
ShowTicket=See ticket
|
||||||
RelatedTickets=Related tickets
|
RelatedTickets=Related tickets
|
||||||
TicketAddIntervention=Create intervention
|
TicketAddIntervention=Create intervention
|
||||||
CloseTicket=Close ticket
|
CloseTicket=Close|Solve ticket
|
||||||
CloseATicket=Close a ticket
|
AbandonTicket=Abandon ticket
|
||||||
|
CloseATicket=Close|Solve a ticket
|
||||||
ConfirmCloseAticket=Confirm ticket closing
|
ConfirmCloseAticket=Confirm ticket closing
|
||||||
|
ConfirmAbandonTicket=Do you confirm the closing of the ticket to status 'Abandonned'
|
||||||
ConfirmDeleteTicket=Please confirm ticket deleting
|
ConfirmDeleteTicket=Please confirm ticket deleting
|
||||||
TicketDeletedSuccess=Ticket deleted with success
|
TicketDeletedSuccess=Ticket deleted with success
|
||||||
TicketMarkedAsClosed=Ticket marked as closed
|
TicketMarkedAsClosed=Ticket marked as closed
|
||||||
|
|||||||
@ -426,10 +426,10 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == "confirm_close" && GETPOST('confirm', 'alpha') == 'yes' && $user->rights->ticket->write) {
|
if (($action == "confirm_close" || $action == "confirm_abandon") && GETPOST('confirm', 'alpha') == 'yes' && $user->rights->ticket->write) {
|
||||||
$object->fetch(GETPOST('id', 'int'), '', GETPOST('track_id', 'alpha'));
|
$object->fetch(GETPOST('id', 'int'), '', GETPOST('track_id', 'alpha'));
|
||||||
|
|
||||||
if ($object->close($user)) {
|
if ($object->close($user, ($action == "confirm_abandon" ? 1 : 0))) {
|
||||||
setEventMessages($langs->trans('TicketMarkedAsClosed'), null, 'mesgs');
|
setEventMessages($langs->trans('TicketMarkedAsClosed'), null, 'mesgs');
|
||||||
|
|
||||||
$url = 'card.php?action=view&track_id='.GETPOST('track_id', 'alpha');
|
$url = 'card.php?action=view&track_id='.GETPOST('track_id', 'alpha');
|
||||||
@ -749,7 +749,7 @@ if ($action == 'create' || $action == 'presend') {
|
|||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>'; */
|
print '</form>'; */
|
||||||
} elseif (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'dellink' || $action == 'presend' || $action == 'presend_addmessage' || $action == 'close' || $action == 'delete' || $action == 'editcustomer' || $action == 'progression' || $action == 'reopen'
|
} elseif (empty($action) || $action == 'view' || $action == 'addlink' || $action == 'dellink' || $action == 'presend' || $action == 'presend_addmessage' || $action == 'close' || $action == 'abandon' || $action == 'delete' || $action == 'editcustomer' || $action == 'progression' || $action == 'reopen'
|
||||||
|| $action == 'editsubject' || $action == 'edit_extras' || $action == 'update_extras' || $action == 'edit_extrafields' || $action == 'set_extrafields' || $action == 'classify' || $action == 'sel_contract' || $action == 'edit_message_init' || $action == 'set_status' || $action == 'dellink') {
|
|| $action == 'editsubject' || $action == 'edit_extras' || $action == 'update_extras' || $action == 'edit_extrafields' || $action == 'set_extrafields' || $action == 'classify' || $action == 'sel_contract' || $action == 'edit_message_init' || $action == 'set_status' || $action == 'dellink') {
|
||||||
if ($res > 0) {
|
if ($res > 0) {
|
||||||
// or for unauthorized internals users
|
// or for unauthorized internals users
|
||||||
@ -764,6 +764,13 @@ if ($action == 'create' || $action == 'presend') {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Confirmation abandon
|
||||||
|
if ($action == 'abandon') {
|
||||||
|
print $form->formconfirm($url_page_current."?track_id=".$object->track_id, $langs->trans("AbandonTicket"), $langs->trans("ConfirmAbandonTicket"), "confirm_abandon", '', '', 1);
|
||||||
|
if ($ret == 'html') {
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
}
|
||||||
// Confirmation delete
|
// Confirmation delete
|
||||||
if ($action == 'delete') {
|
if ($action == 'delete') {
|
||||||
print $form->formconfirm($url_page_current."?track_id=".$object->track_id, $langs->trans("Delete"), $langs->trans("ConfirmDeleteTicket"), "confirm_delete_ticket", '', '', 1);
|
print $form->formconfirm($url_page_current."?track_id=".$object->track_id, $langs->trans("Delete"), $langs->trans("ConfirmDeleteTicket"), "confirm_delete_ticket", '', '', 1);
|
||||||
@ -1296,8 +1303,13 @@ if ($action == 'create' || $action == 'presend') {
|
|||||||
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id='.$object->track_id.'&action=close">'.$langs->trans('CloseTicket').'</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id='.$object->track_id.'&action=close">'.$langs->trans('CloseTicket').'</a></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Abadon ticket if statut is read
|
||||||
|
if ($object->fk_statut > 0 && $object->fk_statut < Ticket::STATUS_CLOSED && $user->rights->ticket->write) {
|
||||||
|
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id='.$object->track_id.'&action=abandon">'.$langs->trans('AbandonTicket').'</a></div>';
|
||||||
|
}
|
||||||
|
|
||||||
// Re-open ticket
|
// Re-open ticket
|
||||||
if (!$user->socid && $object->fk_statut == Ticket::STATUS_CLOSED && !$user->socid) {
|
if (!$user->socid && ($object->fk_statut == Ticket::STATUS_CLOSED || $object->fk_statut == Ticket::STATUS_CANCELED) && !$user->socid) {
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id='.$object->track_id.'&action=reopen">'.$langs->trans('ReOpen').'</a></div>';
|
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?track_id='.$object->track_id.'&action=reopen">'.$langs->trans('ReOpen').'</a></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -218,8 +218,8 @@ class Ticket extends CommonObject
|
|||||||
const STATUS_IN_PROGRESS = 3;
|
const STATUS_IN_PROGRESS = 3;
|
||||||
const STATUS_NEED_MORE_INFO = 5;
|
const STATUS_NEED_MORE_INFO = 5;
|
||||||
const STATUS_WAITING = 7; // on hold
|
const STATUS_WAITING = 7; // on hold
|
||||||
const STATUS_CLOSED = 8;
|
const STATUS_CLOSED = 8; // Closed - Solved
|
||||||
const STATUS_CANCELED = 9;
|
const STATUS_CANCELED = 9; // Closed - Not solved
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -272,8 +272,8 @@ class Ticket extends CommonObject
|
|||||||
'message' => array('type'=>'text', 'label'=>'Message', 'visible'=>-2, 'enabled'=>1, 'position'=>540, 'notnull'=>-1,),
|
'message' => array('type'=>'text', 'label'=>'Message', 'visible'=>-2, 'enabled'=>1, 'position'=>540, 'notnull'=>-1,),
|
||||||
'email_msgid' => array('type'=>'varchar(255)', 'label'=>'EmailMsgID', 'visible'=>-2, 'enabled'=>1, 'position'=>540, 'notnull'=>-1, 'help'=>'EmailMsgIDDesc'),
|
'email_msgid' => array('type'=>'varchar(255)', 'label'=>'EmailMsgID', 'visible'=>-2, 'enabled'=>1, 'position'=>540, 'notnull'=>-1, 'help'=>'EmailMsgIDDesc'),
|
||||||
'progress' => array('type'=>'varchar(100)', 'label'=>'Progression', 'visible'=>-1, 'enabled'=>1, 'position'=>540, 'notnull'=>-1, 'css'=>'right', 'help'=>"", 'isameasure'=>1),
|
'progress' => array('type'=>'varchar(100)', 'label'=>'Progression', 'visible'=>-1, 'enabled'=>1, 'position'=>540, 'notnull'=>-1, 'css'=>'right', 'help'=>"", 'isameasure'=>1),
|
||||||
'resolution' => array('type'=>'integer', 'label'=>'Resolution', 'visible'=>-1, 'enabled'=>1, 'position'=>550, 'notnull'=>1),
|
//'resolution' => array('type'=>'integer', 'label'=>'Resolution', 'visible'=>-1, 'enabled'=>1, 'position'=>550, 'notnull'=>1),
|
||||||
'fk_statut' => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>600, 'notnull'=>1, 'index'=>1, 'arrayofkeyval'=>array(0 => 'Unread', 1 => 'Read', 3 => 'Answered', 4 => 'Assigned', 5 => 'InProgress', 6 => 'Waiting', 8 => 'Closed', 9 => 'Deleted')),
|
'fk_statut' => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>600, 'notnull'=>1, 'index'=>1, 'arrayofkeyval'=>array(0 => 'Unread', 1 => 'Read', 3 => 'Answered', 4 => 'Assigned', 5 => 'InProgress', 6 => 'Waiting', 8 => 'SolvedClosed', 9 => 'Deleted')),
|
||||||
'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>900),
|
'import_key' =>array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>1, 'visible'=>-2, 'position'=>900),
|
||||||
);
|
);
|
||||||
// END MODULEBUILDER PROPERTIES
|
// END MODULEBUILDER PROPERTIES
|
||||||
@ -295,7 +295,7 @@ class Ticket extends CommonObject
|
|||||||
self::STATUS_IN_PROGRESS => 'InProgress',
|
self::STATUS_IN_PROGRESS => 'InProgress',
|
||||||
self::STATUS_WAITING => 'OnHold',
|
self::STATUS_WAITING => 'OnHold',
|
||||||
self::STATUS_NEED_MORE_INFO => 'NeedMoreInformationShort',
|
self::STATUS_NEED_MORE_INFO => 'NeedMoreInformationShort',
|
||||||
self::STATUS_CLOSED => 'Closed',
|
self::STATUS_CLOSED => 'SolvedClosed',
|
||||||
self::STATUS_CANCELED => 'Canceled'
|
self::STATUS_CANCELED => 'Canceled'
|
||||||
);
|
);
|
||||||
$this->statuts = array(
|
$this->statuts = array(
|
||||||
@ -305,7 +305,7 @@ class Ticket extends CommonObject
|
|||||||
self::STATUS_IN_PROGRESS => 'InProgress',
|
self::STATUS_IN_PROGRESS => 'InProgress',
|
||||||
self::STATUS_WAITING => 'OnHold',
|
self::STATUS_WAITING => 'OnHold',
|
||||||
self::STATUS_NEED_MORE_INFO => 'NeedMoreInformation',
|
self::STATUS_NEED_MORE_INFO => 'NeedMoreInformation',
|
||||||
self::STATUS_CLOSED => 'Closed',
|
self::STATUS_CLOSED => 'SolvedClosed',
|
||||||
self::STATUS_CANCELED => 'Canceled'
|
self::STATUS_CANCELED => 'Canceled'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1748,20 +1748,21 @@ class Ticket extends CommonObject
|
|||||||
* Close a ticket
|
* Close a ticket
|
||||||
*
|
*
|
||||||
* @param User $user User that close
|
* @param User $user User that close
|
||||||
|
* @param int $mode 0=Close solved, 1=Close abandonned
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
public function close(User $user)
|
public function close(User $user, $mode = 0)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
if ($this->fk_statut != Ticket::STATUS_CLOSED) { // not closed
|
if ($this->fk_statut != Ticket::STATUS_CLOSED && $this->fk_statut != Ticket::STATUS_CANCELED) { // not closed
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."ticket";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."ticket";
|
||||||
$sql .= " SET fk_statut=".Ticket::STATUS_CLOSED.", progress=100, date_close='".$this->db->idate(dol_now())."'";
|
$sql .= " SET fk_statut=".($mode ? Ticket::STATUS_CANCELED : Ticket::STATUS_CLOSED).", progress=100, date_close='".$this->db->idate(dol_now())."'";
|
||||||
$sql .= " WHERE rowid = ".$this->id;
|
$sql .= " WHERE rowid = ".((int) $this->id);
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::close sql=".$sql);
|
dol_syslog(get_class($this)."::close mode=".$mode);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user