Skip to content

Commit fa3f816

Browse files
committed
fix(ticket): use default values to set actors of tickets
This fix solves issues with Behaiours plugin < 2.0.2 and creates tickets like GLPI does internally fix #629
1 parent ffead90 commit fa3f816

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

inc/targetticket.class.php

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,7 +1065,7 @@ public function save(PluginFormcreatorForm_Answer $formanswer) {
10651065
'_groups_id_assign' => [],
10661066
];
10671067

1068-
$data = [];
1068+
$data = Ticket::getDefaultValues();
10691069
$ticket = new Ticket();
10701070
$form = $formanswer->getForm();
10711071
$answer = new PluginFormcreatorAnswer();
@@ -1231,15 +1231,32 @@ public function save(PluginFormcreatorForm_Answer $formanswer) {
12311231
}
12321232

12331233
$data = $this->setTargetDueDate($data, $formanswer);
1234-
12351234
$data = $this->setTargetUrgency($data, $formanswer);
1236-
12371235
$data = $this->setTargetCategory($data, $formanswer);
1238-
12391236
$data = $this->setTargetLocation($data, $formanswer);
12401237

1241-
$data = $this->requesters + $this->observers + $this->assigned + $this->assignedSuppliers + $data;
1242-
$data = $this->requesterGroups + $this->observerGroups + $this->assignedGroups + $data;
1238+
// There is always at least one requester
1239+
$data = $data + $this->requesters;
1240+
1241+
// Overwrite default actors only if populated
1242+
if (count($this->observers['_users_id_observer']) > 0) {
1243+
$data = $data + $this->observers;
1244+
}
1245+
if (count($this->assigned['_users_id_assign']) > 0) {
1246+
$data = $data + $this->assigned;
1247+
}
1248+
if (count($this->assignedSuppliers['_suppliers_id_assign']) > 0) {
1249+
$data = $data + $this->assignedSuppliers;
1250+
}
1251+
if (count($this->requesterGroups['_groups_id_requester']) > 0) {
1252+
$data = $data + $this->requesterGroups;
1253+
}
1254+
if (count($this->observerGroups['_groups_id_observer']) > 0) {
1255+
$data = $data + $this->observerGroups;
1256+
}
1257+
if (count($this->assignedGroups['_groups_id_assign']) > 0) {
1258+
$data = $data + $this->assignedGroups;
1259+
}
12431260

12441261
// Create the target ticket
12451262
if (!$ticketID = $ticket->add($data)) {

0 commit comments

Comments
 (0)