/**
  * Set lock fields for a record.
  *
  * @param $p_itemtype Table id.
  * @param $p_items_id Line id.
  * @param $p_fieldsToLock Array of fields to lock.
  *TODO:  check rights and entity
  *
  * @return nothing
  **/
 static function setLockArray($p_itemtype, $p_items_id, $p_fieldsToLock, $massiveaction = '')
 {
     global $DB;
     $pfl = new PluginFusioninventoryLock();
     $tableName = getTableForItemType($p_itemtype);
     $result = PluginFusioninventoryLock::getLock($tableName, $p_items_id);
     if ($DB->numrows($result)) {
         $a_lines = $pfl->find("`tablename`='" . $tableName . "' AND `items_id`='" . $p_items_id . "'");
         $a_line = current($a_lines);
         $pfl->getFromDB($a_line['id']);
         if ($massiveaction == 'addLock') {
             $a_lockfieldsDB = importArrayFromDB($pfl->fields['tablefields']);
             foreach ($p_fieldsToLock as $fieldtoadd) {
                 if (!in_array($fieldtoadd, $a_lockfieldsDB)) {
                     $a_lockfieldsDB[] = $fieldtoadd;
                 }
             }
             $pfl->fields['tablefields'] = exportArrayToDB($a_lockfieldsDB);
             $pfl->update($pfl->fields);
         } else {
             if ($massiveaction == 'deleteLock') {
                 $a_lockfieldsDB = importArrayFromDB($pfl->fields['tablefields']);
                 foreach ($p_fieldsToLock as $fieldtoadd) {
                     if (in_array($fieldtoadd, $a_lockfieldsDB)) {
                         $key = array_search($fieldtoadd, $a_lockfieldsDB);
                         unset($a_lockfieldsDB[$key]);
                     }
                 }
                 $pfl->fields['tablefields'] = exportArrayToDB($a_lockfieldsDB);
                 $pfl->update($pfl->fields);
             } else {
                 if (count($p_fieldsToLock)) {
                     // old locks --> new locks
                     $pfl->fields['tablefields'] = exportArrayToDB($p_fieldsToLock);
                     $pfl->update($pfl->fields);
                 } else {
                     // old locks --> no locks any more
                     $pfl->delete($pfl->fields);
                 }
             }
         }
     } elseif (count($p_fieldsToLock)) {
         // no locks --> new locks
         $input = array();
         $input['tablename'] = $tableName;
         $input['items_id'] = $p_items_id;
         $input['tablefields'] = exportArrayToDB($p_fieldsToLock);
         $pfl->add($input);
     }
 }