Ejemplo n.º 1
0
 /**
  * Import value maps.
  */
 protected function processValueMaps()
 {
     if (!$this->options['valueMaps']['createMissing'] && !$this->options['valueMaps']['updateExisting']) {
         return;
     }
     $all_valuemaps = $this->getFormattedValueMaps();
     if (!$all_valuemaps) {
         return;
     }
     $valuemaps_to_create = [];
     $valuemaps_to_update = [];
     foreach ($all_valuemaps as $valuemap) {
         $valuemapid = $this->referencer->resolveValueMap($valuemap['name']);
         if ($valuemapid) {
             $valuemap['valuemapid'] = $valuemapid;
             $valuemaps_to_update[] = $valuemap;
         } else {
             $valuemaps_to_create[] = $valuemap;
         }
     }
     if ($this->options['valueMaps']['createMissing'] && $valuemaps_to_create) {
         $valuemapids = API::ValueMap()->create($valuemaps_to_create);
         foreach ($valuemaps_to_create as $key => $valuemap) {
             $this->referencer->addValueMapRef($valuemap['name'], $valuemapids['valuemapids'][$key]);
         }
     }
     if ($this->options['valueMaps']['updateExisting'] && $valuemaps_to_update) {
         API::ValueMap()->update($valuemaps_to_update);
     }
 }