Merge pull request #14559 from OPEN-DSI/v10-fix-societe-card-add-sales-representatives

FIX set sales representatives on create company card
This commit is contained in:
Laurent Destailleur 2020-08-27 20:14:31 +02:00 committed by GitHub
commit 593f3b81e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 11 deletions

View File

@ -539,7 +539,7 @@ if (empty($reshook))
// Links with users // Links with users
$salesreps = GETPOST('commercial', 'array'); $salesreps = GETPOST('commercial', 'array');
$result = $object->setSalesRep($salesreps); $result = $object->setSalesRep($salesreps, true);
if ($result < 0) if ($result < 0)
{ {
$error++; $error++;

View File

@ -4133,9 +4133,10 @@ class Societe extends CommonObject
* Sets sales representatives of the thirdparty * Sets sales representatives of the thirdparty
* *
* @param int[]|int $salesrep User ID or array of user IDs * @param int[]|int $salesrep User ID or array of user IDs
* @param bool $onlyAdd Only add (no delete before)
* @return int <0 if KO, >0 if OK * @return int <0 if KO, >0 if OK
*/ */
public function setSalesRep($salesrep) public function setSalesRep($salesrep, $onlyAdd = false)
{ {
global $user; global $user;
@ -4144,16 +4145,18 @@ class Societe extends CommonObject
$salesrep = array($salesrep); $salesrep = array($salesrep);
} }
// Get current users
$existing = $this->getSalesRepresentatives($user, 1);
// Diff $to_del = array(); // Nothing to delete
if (is_array($existing)) { $to_add = $salesrep;
$to_del = array_diff($existing, $salesrep); if ($onlyAdd === false) {
$to_add = array_diff($salesrep, $existing); // Get current users
} else { $existing = $this->getSalesRepresentatives($user, 1);
$to_del = array(); // Nothing to delete
$to_add = $salesrep; // Diff
if (is_array($existing)) {
$to_del = array_diff($existing, $salesrep);
$to_add = array_diff($salesrep, $existing);
}
} }
$error = 0; $error = 0;