25require 
'../main.inc.php';
 
   26require_once DOL_DOCUMENT_ROOT.
'/ticket/class/actions_ticket.class.php';
 
   27require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formticket.class.php';
 
   28require_once DOL_DOCUMENT_ROOT.
'/core/lib/ticket.lib.php';
 
   29require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
 
   30require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
 
   31require_once DOL_DOCUMENT_ROOT.
'/core/class/extrafields.class.php';
 
   32require_once DOL_DOCUMENT_ROOT.
'/contact/class/contact.class.php';
 
   33if (isModEnabled(
'project')) {
 
   34  include_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
 
   35  include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formprojet.class.php';
 
   36  include_once DOL_DOCUMENT_ROOT.
'/core/lib/project.lib.php';
 
   40$langs->loadLangs(array(
'companies', 
'other', 
'ticket'));
 
   45$track_id = 
GETPOST(
'track_id', 
'alpha', 3);
 
   47$action   = 
GETPOST(
'action', 
'aZ09');
 
   50$url_page_current = DOL_URL_ROOT.
'/ticket/agenda.php';
 
   53$sortfield = 
GETPOST(
'sortfield', 
'aZ09comma');
 
   54$sortorder = 
GETPOST(
'sortorder', 
'aZ09comma');
 
   56$page = is_numeric($page) ? $page : 0;
 
   57$page = $page == -1 ? 0 : $page;
 
   59  $sortfield = 
"a.datep,a.id";
 
   64$offset = $limit * $page;
 
   68if (
GETPOST(
'actioncode', 
'array')) {
 
   69  $actioncode = 
GETPOST(
'actioncode', 
'array', 3);
 
   70  if (!count($actioncode)) {
 
   77$search_rowid = 
GETPOST(
'search_rowid');
 
   78$search_agenda_label = 
GETPOST(
'search_agenda_label');
 
   80$hookmanager->initHooks(array(
'ticketagenda', 
'globalcard')); 
 
   82$object->fetch($id, $ref, $track_id);
 
   86$extrafields->fetch_name_optionals_label(
$object->table_element);
 
   95if ($user->socid > 0) {
 
   96  $socid = $user->socid;
 
  101if ($user->socid > 0 && (
$object->fk_soc != $user->socid)) {
 
  105if (!$user->socid && (
getDolGlobalString(
'TICKET_LIMIT_VIEW_ASSIGNED_ONLY') && 
$object->fk_user_assign != $user->id) && !$user->hasRight(
'ticket', 
'manage')) {
 
  109$permissiontoadd = $user->hasRight(
'ticket', 
'write');
 
  116$parameters = array(
'id'=>$socid);
 
  117$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action); 
 
  122if (empty($reshook)) {
 
  124  $_SESSION[
'ticket-view-type'] = 
"list";
 
  128if (
GETPOST(
'button_removefilter_x', 
'alpha') || 
GETPOST(
'button_removefilter.x', 
'alpha') || 
GETPOST(
'button_removefilter', 
'alpha')) { 
 
  130  $search_agenda_label = 
'';
 
  134if ($action == 
'set_thirdparty' && $user->hasRight(
'ticket', 
'write')) {
 
  137    $url = $_SERVER[
"PHP_SELF"].
'?track_id='.
GETPOST(
'track_id', 
'alpha');
 
  138    header(
"Location: ".$url);
 
  148$form = 
new Form($db);
 
  149$userstat = 
new User($db);
 
  152$title = $langs->trans(
"Ticket").
' - '.
$object->ref.
' '.
$object->name;
 
  154  $title = 
$object->ref.
' '.
$object->name.
' - '.$langs->trans(
"Info");
 
  156$help_url = 
'EN:Module_Agenda_En|FR:Module_Agenda|DE:Modul_Terminplanung';
 
  158llxHeader(
'', $title, $help_url, 
'', 0, 0, 
'', 
'', 
'', 
'mod-ticket page-card_agenda');
 
  166  dol_banner_tab(
$object->thirdparty, 
'socid', 
'', ($user->socid ? 0 : 1), 
'rowid', 
'nom');
 
  172  $object->next_prev_filter = 
"te.fk_user_assign = ".((int) $user->id);
 
  173} elseif ($user->socid > 0) {
 
  174  $object->next_prev_filter = 
"te.fk_soc = ".((int) $user->socid);
 
  178print 
dol_get_fiche_head($head, 
'tabTicketLogs', $langs->trans(
"Ticket"), 0, 
'ticket');
 
  180$morehtmlref = 
'<div class="refidno">';
 
  181$morehtmlref .= 
$object->subject;
 
  183if (
$object->fk_user_create > 0) {
 
  184  $morehtmlref .= 
'<br>'.$langs->trans(
"CreatedBy").
' : ';
 
  186  $langs->load(
"users");
 
  187  $fuser = 
new User($db);
 
  188  $fuser->fetch(
$object->fk_user_create);
 
  189  $morehtmlref .= $fuser->getNomUrl(-1);
 
  190} elseif (!empty(
$object->email_msgid)) {
 
  191  $morehtmlref .= 
'<br>'.$langs->trans(
"CreatedBy").
' : ';
 
  192  $morehtmlref .= 
img_picto(
'', 
'email', 
'class="paddingrightonly"');
 
  193  $morehtmlref .= 
dol_escape_htmltag(
$object->origin_email).
' <small class="hideonsmartphone opacitymedium">('.$form->textwithpicto($langs->trans(
"CreatedByEmailCollector"), $langs->trans(
"EmailMsgID").
': '.
$object->email_msgid).
')</small>';
 
  194} elseif (!empty(
$object->origin_email)) {
 
  195  $morehtmlref .= 
'<br>'.$langs->trans(
"CreatedBy").
' : ';
 
  196  $morehtmlref .= 
img_picto(
'', 
'email', 
'class="paddingrightonly"');
 
  197  $morehtmlref .= 
dol_escape_htmltag(
$object->origin_email).
' <small class="hideonsmartphone opacitymedium">('.$langs->trans(
"CreatedByPublicPortal").
')</small>';
 
  201if (isModEnabled(
"societe")) {
 
  202  $morehtmlref .= 
'<br>';
 
  203  $morehtmlref .= 
img_picto($langs->trans(
"ThirdParty"), 
'company', 
'class="pictofixedwidth"');
 
  204  if ($action != 
'editcustomer' && $permissiontoadd) {
 
  205    $morehtmlref .= 
'<a class="editfielda" href="'.$url_page_current.
'?action=editcustomer&token='.
newToken().
'&track_id='.
$object->track_id.
'">'.
img_edit($langs->transnoentitiesnoconv(
'SetThirdParty'), 0).
'</a> ';
 
  207  $morehtmlref .= $form->form_thirdparty($url_page_current.
'?track_id='.
$object->track_id, 
$object->socid, $action == 
'editcustomer' ? 
'editcustomer' : 
'none', 
'', 1, 0, 0, array(), 1);
 
  211if (isModEnabled(
'project')) {
 
  212  $langs->load(
"projects");
 
  214    $morehtmlref .= 
'<br>';
 
  215    $morehtmlref .= 
img_picto($langs->trans(
"Project"), 
'project', 
'class="pictofixedwidth"');
 
  216    if ($action != 
'classify') {
 
  217      $morehtmlref .= 
'<a class="editfielda" href="'.$_SERVER[
'PHP_SELF'].
'?action=classify&token='.
newToken().
'&id='.
$object->id.
'">'.
img_edit($langs->transnoentitiesnoconv(
'SetProject')).
'</a> ';
 
  219    $morehtmlref .= $form->form_project($_SERVER[
'PHP_SELF'].
'?id='.
$object->id, 
$object->socid, 
$object->fk_project, ($action == 
'classify' ? 
'projectid' : 
'none'), 0, 0, 0, 1, 
'', 
'maxwidth300');
 
  221    if (!empty(
$object->fk_project)) {
 
  222      $morehtmlref .= 
'<br>';
 
  224      $proj->fetch(
$object->fk_project);
 
  225      $morehtmlref .= $proj->getNomUrl(1);
 
  227        $morehtmlref .= 
'<span class="opacitymedium"> - '.dol_escape_htmltag($proj->title).
'</span>';
 
  233$morehtmlref .= 
'</div>';
 
  235$linkback = 
'<a href="'.DOL_URL_ROOT.
'/ticket/list.php"><strong>'.$langs->trans(
"BackToList").
'</strong></a> ';
 
  237dol_banner_tab($object, 
'ref', $linkback, ($user->socid ? 0 : 1), 
'ref', 
'ref', $morehtmlref, 
'', 0, 
'', 
'', 1);
 
  245  $param = 
'&id='.$object->id;
 
  246  if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
 
  247    $param .= 
'&contextpage='.$contextpage;
 
  249  if ($limit > 0 && $limit != $conf->liste_limit) {
 
  250    $param .= 
'&limit='.$limit;
 
  255  $messagingUrl = DOL_URL_ROOT.
'/ticket/messaging.php?track_id='.
$object->track_id;
 
  256  $morehtmlright .= 
dolGetButtonTitle($langs->trans(
'ShowAsConversation'), 
'', 
'fa fa-comments imgforviewmode', $messagingUrl, 
'', 1);
 
  257  $messagingUrl = DOL_URL_ROOT.
'/ticket/agenda.php?track_id='.
$object->track_id;
 
  258  $morehtmlright .= 
dolGetButtonTitle($langs->trans(
'MessageListViewType'), 
'', 
'fa fa-bars imgforviewmode', $messagingUrl, 
'', 1, array(
'morecss'=>
'btnTitleSelected'));
 
  261  $btnstatus = 
$object->status < Ticket::STATUS_CLOSED && $action != 
"presend" && $action != 
"presend_addmessage";
 
  262  $url = 
'card.php?track_id='.$object->track_id.
'&action=presend_addmessage&mode=init&private_message=0&send_email=1&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?track_id='.
$object->track_id).
'#formmailbeforetitle';
 
  263  $morehtmlright .= 
dolGetButtonTitle($langs->trans(
'SendMail'), 
'', 
'fa fa-paper-plane', $url, 
'email-title-button', $btnstatus);
 
  266  $btnstatus = 
$object->status < Ticket::STATUS_CLOSED && $action != 
"presend" && $action != 
"presend_addmessage";
 
  267  $url = 
'card.php?track_id='.$object->track_id.
'&action=presend_addmessage&mode=init&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?track_id='.
$object->track_id).
'#formmailbeforetitle';
 
  268  $morehtmlright .= 
dolGetButtonTitle($langs->trans(
'TicketAddMessage'), 
'', 
'fa fa-comment-dots', $url, 
'add-new-ticket-title-button', $btnstatus);
 
  271  $btnstatus = 
$object->status < Ticket::STATUS_CLOSED && $action != 
"presend" && $action != 
"presend_addmessage";
 
  272  $url = DOL_URL_ROOT.
'/comm/action/card.php?action=create&datep=now&origin=ticket&originid='.
$object->id.
'&projectid='.
$object->fk_project.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?id='.
$object->id);
 
  273  $morehtmlright .= 
dolGetButtonTitle($langs->trans(
'AddAction'), 
'', 
'fa fa-plus-circle', $url, 
'add-new-ticket-even-button', $btnstatus);
 
  275  require_once DOL_DOCUMENT_ROOT.
'/core/lib/memory.lib.php';
 
  276  $cachekey = 
'count_events_ticket_'.$object->id;
 
  279  $titlelist = $langs->trans(
"ActionsOnTicket").(is_numeric($nbEvent) ? 
'<span class="opacitymedium colorblack paddingleft">('.$nbEvent.
')</span>' : 
'');
 
  281  print_barre_liste($titlelist, 0, $_SERVER[
"PHP_SELF"], 
'', $sortfield, $sortorder, 
'', 0, -1, 
'', 0, $morehtmlright, 
'', 0, 1, 0);
 
  285  $filters[
'search_agenda_label'] = $search_agenda_label;
 
  286  $filters[
'search_rowid'] = $search_rowid;
 
  288  show_actions_done($conf, $langs, $db, $object, 
null, 0, $actioncode, 
'', $filters, $sortfield, $sortorder);
 
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
 
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
 
Class to manage projects.
 
Class to manage Dolibarr users.
 
show_actions_done($conf, $langs, $db, $filterobj, $objcon=null, $noprint=0, $actioncode='', $donetodo='done', $filters=array(), $sortfield='a.datep, a.id', $sortorder='DESC', $module='')
Show html area with actions (done or not, ignore the name of function).
 
societe_prepare_head(Societe $object)
Return array of tabs to used on pages for third parties cards.
 
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
 
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
 
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
 
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
 
dol_get_fiche_end($notab=0)
Return tab footer of a card.
 
newToken()
Return the value of token currently saved into session with name 'newtoken'.
 
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
 
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
 
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
 
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
 
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
 
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
 
dol_getcache($memoryid)
Read a memory area shared by all users, all sessions on server.
 
Class to generate the form for creating a new ticket.
 
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.
 
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.
 
ticket_prepare_head($object)
Build tabs for a Ticket object.