public function checkLine($line)
 {
     $errors = "";
     if (!FleximportTable::findOneByName("fleximport_semiro_course_import")) {
         return "Tabelle fleximport_semiro_course_import existiert nicht. ";
     }
     $dilp_kennung_feld = FleximportConfig::get("SEMIRO_DILP_KENNUNG_FIELD");
     if (!$dilp_kennung_feld) {
         $dilp_kennung_feld = "dilp_teilnehmer";
     }
     if (!$line[$dilp_kennung_feld]) {
         $errors .= "Teilnehmer hat keinen Wert für '{$dilp_kennung_feld}''. ";
     } else {
         $datafield = Datafield::findOneByName(FleximportConfig::get("SEMIRO_USER_DATAFIELD_NAME"));
         if (!$datafield) {
             $errors .= "System hat kein Datenfeld " . FleximportConfig::get("SEMIRO_USER_DATAFIELD_NAME") . ", womit die Nutzer identifiziert werden. ";
         } else {
             $entry = DatafieldEntryModel::findOneBySQL("datafield_id = ? AND content = ? ", array($datafield->getId(), $line[$dilp_kennung_feld]));
             if (!$entry || !User::find($entry['range_id'])) {
                 $errors .= "Nutzer konnte nicht durch id_teilnehmer identifiziert werden. ";
             }
         }
     }
     if (!$line['teilnehmergruppe']) {
         $errors .= "Keine Teilnehmergruppe. ";
     } else {
         $statement = DBManager::get()->prepare("\n                SELECT 1\n                FROM fleximport_semiro_course_import\n                WHERE teilnehmergruppe = ?\n            ");
         $statement->execute(array($line['teilnehmergruppe']));
         if (!$statement->fetch()) {
             $errors .= "Nicht verwendete Teilnehmergruppe. ";
         }
     }
     return $errors;
 }
Example #2
0
 public function export_action($id)
 {
     $this->table = FleximportTable::find($id);
     if (Request::option("secret") !== $this->table->getExportSecret()) {
         throw new AccessDeniedException();
     }
     $this->table->fetchData();
     $this->render_csv();
 }
Example #3
0
 public function overview_action()
 {
     PageLayout::addScript($this->plugin->getPluginURL() . "/assets/jquery.elastic.source.js");
     $this->configs = FleximportConfig::all();
     $this->possibleConfigs = array();
     foreach (FleximportTable::findAll() as $table) {
         $this->possibleConfigs = array_merge($this->possibleConfigs, $table->neededConfigs());
     }
     $this->possibleConfigs = array_unique($this->possibleConfigs);
 }
Example #4
0
 public function targetdetails_action($id)
 {
     $this->table = FleximportTable::findOneByName(Request::get("table"));
     $this->line = $this->table->getLine($id);
     $this->data = $this->table->getMappedData($this->line);
     $pk = $this->table->getPrimaryKey($this->data);
     $classname = $this->table['import_type'];
     if ($classname) {
         $this->object = new $classname($pk);
     }
 }
 public function mapField($field, $line)
 {
     if ($field === 'user_id') {
         $db = DBManager::get();
         if ($line['fp_idnr']) {
             //get user-ID by checking fp_idnr:
             $userId = $this->getUserIdByDatafield($db, 'fp_idnr', $line['fp_idnr']);
             if (!$userId) {
                 //datafield not found: check for safo_key:
                 $userId = $this->getUserIdByDatafield($db, 'safo_key', $line['safo_key']);
                 if (!$userId) {
                     return false;
                 } else {
                     return $userId;
                 }
             } else {
                 return $userId;
             }
         } elseif ($line['safo_key']) {
             $userId = $this->getUserIdByDatafield($db, 'safo_key', $line['safo_key']);
             if (!$userId) {
                 return false;
             } else {
                 return $userId;
             }
         }
     } elseif ($field === 'username') {
         $db = DBManager::get();
         $userName = strtolower(str_replace(" ", ".", FleximportTable::reduceDiakritikaFromIso88591($line['vorname'])) . "." . str_replace(" ", "", FleximportTable::reduceDiakritikaFromIso88591($line['nachname'])));
         $user_id = $this->getUserIdByDatafield($db, 'fp_idnr', $line['fp_idnr']);
         if (!$user_id) {
             //datafield not found: check for safo key:
             $userId = $this->getUserIdByDatafield($db, 'safo_key', $line['safo_key']);
         }
         $pureUsername = $userName;
         if (!$user_id) {
             $i = 1;
             while ($db->query("SELECT 1 FROM auth_user_md5 WHERE username = "******"SELECT username FROM auth_user_md5 WHERE user_id = " . $db->quote($user_id))->fetch(PDO::FETCH_BOTH);
             return $userName[0];
         }
     } elseif ($field === 'geschlecht') {
         if (strtolower($line['geschlecht']) == 'm') {
             return 1;
         } elseif (strtolower($line['geschlecht']) == 'w') {
             return 2;
         } else {
             return 0;
             //undefined
         }
     }
     return false;
 }