NEW: make unicity for user assigned(responsible) on ticket from anyways

This commit is contained in:
Florian HENRY 2021-11-19 16:46:05 +01:00
parent 0ba7af0f68
commit ce651ff4f9
2 changed files with 27 additions and 2 deletions

View File

@ -8113,7 +8113,7 @@ function dol_getIdFromCode($db, $key, $tablename, $fieldkey = 'code', $fieldid =
if (!empty($entityfilter)) {
$sql .= " AND entity IN (".getEntity($tablename).")";
}
print $sql;
$resql = $db->query($sql);
if ($resql) {
$obj = $db->fetch_object($resql);

View File

@ -85,7 +85,32 @@ if ($action == 'addcontact' && $user->rights->ticket->write) {
if ($result > 0 && ($id > 0 || (!empty($track_id)))) {
$contactid = (GETPOST('userid', 'int') ? GETPOST('userid', 'int') : GETPOST('contactid', 'int'));
$typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type'));
$result = $object->add_contact($contactid, $typeid, GETPOST("source", 'aZ09'));
$error = 0;
$codecontact = dol_getIdFromCode($db, $typeid, 'c_type_contact', 'rowid', 'code');
if ($codecontact=='SUPPORTTEC') {
$internal_contacts = $object->listeContact(-1, 'internal', 0, 'SUPPORTTEC');
foreach ($internal_contacts as $key => $contact) {
if ($contact['id'] !== $contactid) {
//print "user à effacer : ".$useroriginassign;
$result = $object->delete_contact($contact['rowid']);
if ($result<0) {
$error ++;
setEventMessages($object->error, $object->errors, 'errors');
}
}
}
$ret = $object->assignUser($user, $contactid);
if ($ret < 0) {
$error ++;
setEventMessages($object->error, $object->errors, 'errors');
}
}
if (empty($error)) {
$result = $object->add_contact($contactid, $typeid, GETPOST("source", 'aZ09'));
}
}
if ($result >= 0) {