diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php
index f1c06887..8f04e543 100644
--- a/www/lib/class.erpapi.php
+++ b/www/lib/class.erpapi.php
@@ -1508,6 +1508,39 @@ public function NavigationHooks(&$menu)
return "replace(trim($spalte)+0,'.',',')";
}
+ static function add_alias(string $text, $alias = false) {
+ if (empty($alias)) {
+ return($text);
+ }
+ else {
+ return ($text." as `$alias`");
+ }
+ }
+
+ // @refactor DbHelper Komponente
+ function FormatDate(string $spalte, string $alias = null)
+ {
+ return $this->add_alias("DATE_FORMAT($spalte,'%d.%m.%Y')", $alias);
+ }
+
+ // @refactor DbHelper Komponente
+ function FormatDateShort(string $spalte, string $alias = null)
+ {
+ return $this->add_alias("DATE_FORMAT($spalte,'%d.%m.%y')", $alias);
+ }
+
+ // @refactor DbHelper Komponente
+ function FormatDateTimeShort(string $spalte, string $alias = null)
+ {
+ return $this->add_alias("DATE_FORMAT($spalte,'%d.%m.%y %H:%i')", $alias);
+ }
+
+ // @refactor DbHelper Komponente
+ function FormatDateTime(string $spalte, string $alias = null)
+ {
+ return $this->add_alias("DATE_FORMAT($spalte,'%d.%m.%Y %H:%i:%s')", $alias);
+ }
+
public function XMLExportVorlage($id,$filter=array(), $cdata = false)
{
/** @var Api $obj */
diff --git a/www/pages/ticket.php b/www/pages/ticket.php
index d20e2ddc..c1e4ba51 100644
--- a/www/pages/ticket.php
+++ b/www/pages/ticket.php
@@ -48,11 +48,11 @@ class Ticket {
case "ticket_list":
$allowed['ticket_list'] = array('list');
- $heading = array('','','Ticket #', 'Letzte Aktion', 'Adresse', 'Betreff', 'Tags', 'Verant.', 'Nachr.', 'Status', 'Alter', 'Projekt', 'Menü');
- $width = array('1%','1%','5%', '5%', '5%', '30%', '1%', '5%', '1%', '1%', '1%', '1%', '1%');
+ $heading = array('','','Ticket #', 'Aktion','Adresse', 'Betreff', 'Tags', 'Verant.', 'Nachr.', 'Status', 'Projekt', 'Menü');
+ $width = array('1%','1%','5%', '5%', '5%', '30%', '1%', '5%', '1%', '1%', '1%', '1%');
- $findcols = array('t.id','t.zeit','t.schluessel', 't.zeit', 'a.name', 't.betreff', 't.tags', 'w.warteschlange', 'nachrichten_anz', 't.status','t.zeit', 't.projekt');
- $searchsql = array( 't.schluessel', 't.zeit', 'a.name', 't.betreff','t.notiz', 't.tags', 'w.warteschlange', 't.status', 't.projekt');
+ $findcols = array('t.id','t.id','t.schluessel', 't.zeit', 'a.name', 't.betreff', 't.tags', 'w.warteschlange', 'nachrichten_anz', 't.status', 'p.abkuerzung');
+ $searchsql = array( 't.schluessel', 't.zeit', 'a.name', 't.betreff','t.notiz', 't.tags', 'w.warteschlange', 't.status', 'p.abkuerzung','(SELECT mail FROM ticket_nachricht tn WHERE tn.ticket = t.schluessel AND tn.versendet <> 1 LIMIT 1)');
$defaultorder = 1;
$defaultorderdesc = 0;
@@ -65,27 +65,29 @@ class Ticket {
CONCAT(TIMESTAMPDIFF(hour, t.zeit, NOW()),'h'),
CONCAT(TIMESTAMPDIFF(day, t.zeit, NOW()), 'd ',MOD(TIMESTAMPDIFF(hour, t.zeit, NOW()),24),'h'))";
- $dropnbox = "'' AS `open`, CONCAT('') AS `auswahl`";
+ $dropnbox = "'
' AS `open`,
+ CONCAT('') AS `auswahl`";
$priobetreff = "if(t.prio!=1,t.betreff,CONCAT('',t.betreff,''))";
$anzahlnachrichten = "(SELECT COUNT(n.id) FROM ticket_nachricht n WHERE n.ticket = t.schluessel)";
+ $letztemail = $app->erp->FormatDateTimeShort("(SELECT MAX(n.zeit) FROM ticket_nachricht n WHERE n.ticket = t.schluessel AND n.zeit IS NOT NULL)");
+
$tagstart = "