Skip to content

Commit 698cebb

Browse files
committed
fixes group of technician - see #85
1 parent 9bc20f3 commit 698cebb

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

inc/ticket.class.php

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,61 @@ static function beforeAdd(Ticket $ticket) {
419419
}
420420
$ticket->input['_actors'] = $actors;
421421
}
422+
423+
if ($config->getField('use_assign_user_group') > 0) {
424+
425+
if (isset($ticket->input['_actors'])) {
426+
$actors = ($ticket->input['_actors'] ?? []);
427+
}
428+
429+
if (isset($actors['assign'])) {
430+
$assigns = $actors['assign'];
431+
// Select first group of this user
432+
$ko = 0;
433+
$grp = 0;
434+
$grps = [];
435+
foreach ($assigns as $assign) {
436+
if ($config->getField('use_assign_user_group') == 1) {
437+
// First group
438+
if ($assign['itemtype'] == 'User') {
439+
$grp = PluginBehaviorsUser::getTechnicianGroup($ticket->input['entities_id'],
440+
$assign['items_id'],
441+
true);
442+
}
443+
if ($grp > 0 && $assign['itemtype'] == 'Group'
444+
&& $assign['items_id'] == $grp) {
445+
$ko++;
446+
}
447+
if ($grp > 0 && $ko == 0) {
448+
$actors['assign'][] = ['itemtype' => 'Group',
449+
'items_id' => $grp,
450+
'use_notification' => "1",
451+
'alternative_email' => ""];
452+
}
453+
} else {
454+
// All groups
455+
if ($assign['itemtype'] == 'User') {
456+
$grps = PluginBehaviorsUser::getTechnicianGroup($ticket->input['entities_id'],
457+
$assign['items_id'],
458+
false);
459+
}
460+
if ($assign['itemtype'] == 'Group'
461+
&& in_array($assign['items_id'], $grps)) {
462+
unset($grps[$assign['items_id']]);
463+
}
464+
if (count($grps) > 0) {
465+
foreach ($grps as $grp) {
466+
$actors['assign'][] = ['itemtype' => 'Group',
467+
'items_id' => $grp,
468+
'use_notification' => "1",
469+
'alternative_email' => ""];
470+
}
471+
}
472+
}
473+
}
474+
}
475+
$ticket->input['_actors'] = $actors;
476+
}
422477
if ($config->getField('ticketsolved_updatetech')
423478
&& (isset($ticket->input['status'])
424479
&& in_array($ticket->input['status'], array_merge(Ticket::getSolvedStatusArray(),

0 commit comments

Comments
 (0)